Region 선택
- 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터
- AWS는 전 세계적으로 다양한 Region을 보유
- 사용자의 위치와 애플리케이션을 실행시키고 있는 컴퓨터와 위치가 멀면 멀수록 속도가 느려짐
- 애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리
EC2
- 인스턴스 시작
- 이름 및 태그 세팅
- Application and OS Images
- OS 세팅 단계
- ubuntu (용량 효율을 위함) => mac, windows는 편의를 위한 기능이 많이 들어가 있어서 성능저하를 만듬
- 인스턴스 유형
- 인스턴스: EC2에서 빌리는 컴퓨터 한대를 의미하는 단위
- 컴퓨터 사양을 의미
- 키페어
- EC2 컴퓨터에 아무나 접근하면 안됌 => 접근키
- 새 키페어 생성 : 키 페어 이름은 직관적으로
- 키페어 다운 파일 잘 관리
- 네트워크 설정
- VPC - 필수 : 뒤늦게 추가해도 ㄱㅊ?
- 보안 그룹: AWS 클라우드에서의 네트워크 보안
인바운드 트래픽: 외부에서 EC2 인스턴스로 보내는 트래픽, 어떤 트래픽만 허용할 지 설정 가능
아웃바운드 트래픽: EC2 인스턴스에서 외부로 나가는 트래픽, 어떤 트래픽만 허용할지 설정 가능- 보안 그룹 생성
- 보안 그룹 이름 설정
- 인바운드 보안 그룹 규칙
- Security Group rule2: HTTP 추가 설정 위치 무관
- 스토리지 구성
- EBS(Elastic Block Storage): EC2 안에 부탁되어 있는 일종의 하드디스크 (스토리지)
- 30G (프리티어) gp3
- 인스턴스 시작
- 퍼블릭 IPv4 주소
- 외부에서 접속할 수 있는 하나의 IP주소
- 인스턴스 종료 => 인스턴스 자체를 삭제
탄력적 IP 연결하기
필요한 이유
- EC2 인스턴스를 잠깐 중지시켰다가 다시 실행시켜 보면 IP가 바뀌어있음
- IP 개수를 아끼기 위해
- 중지후 다시 실행시켜도 바뀌지 않는 고정 IP를 할당받아야 함
설정 방법
- 탄력적 IP 주소 할당
- 기본값 후 할당
- 작업 => 탄력적 IP 주소 연결
- 인스턴스 선택
- 연결
Spring Boot 서버를 EC2에 배포하기
- JDK 17 설정
sudo apt update && /
sudo apt install openjdk-17-jdk -y - git clone 레포지터리URL
- cd 로 들어감
- cd /src/main/resources
- vi application.yml
- 세팅
- cd ..
- ./gradlew clean build
- cd libs
- sudo java -jar ec2-~~~-SNAPSHOT.jar
참고 [종료]
- 인스턴스 종료
- 탄력적 IP 삭제
- 탄력적 주소 릴리스
RDS 세팅
보안그룹 설정
- 보안 그룹 생성
- 인바운드 규칙
- 규칙 추가: MYSQL, Any IPv4
- 아웃바운드 규칙 디폴트
- 생성
- rds 이동
- db 인스턴스 수정
- 연결 => 보안 그룹 설정 => 계속 => 즉시설정
파라미터 그룹
- 파라미터 그룹 생성
- 파라미터 그룹 패밀리 mysql8.0
- 유형 DB Parameter Group
- 그룹이름
- 생성
- 파라미터 그룹
- 편집
- character
- utf9mb4설정
- collation
- collattion_connection 체크
- utf8mb4_unicode_ci 설정
- 저장
- time_zone
- Asia/Seoul
- RDS 추가 구성에 적용해줌
S3
- 정적 웹 사이트 호스팅
- 파일 저장
- 버킷 만들기
- 모든 퍼블릭 엑세스 차단 풀기
- 버킷 만들기
- 권한
- 버킷 정책 작성
- S3 GetObject
- 리소스 추가
- 리소스 ARN: arn:aws:s3:::blahblah/*
- Principle *
- 버킷
- html 업로드
- 속성
정적 웹사이트 호스팅 활성화
인덱스 문서: Index.html (파일명)
CloudFront
- 컨텐츠를 빠르게 전송하게 해주는 서비스
- 전 세계 곳곳에 있는 컨텐츠의 복사본을 저장해놓을 수 있는 임시 저장소
- 컨텐츠 전송 받는 성능을 향상시키기 위해 사용
- .HTTPS를 적용하기 위해서 사용
- 배포 생성
- 원본 도메인 S3 세팅
- Redirect HTTP to HTTPS
- WAF 비활성화
- 아시아로 범위 세팅
- 기본값 루트 객체 index.html
Certificate Manager
- 미국 동부 버지니아 북부에서 인증서를 받아야함
- 요청
- api.link
- Route 53 레코드 생성
- CloudFront 이동
- 일반에 편집
- 대체 도메인 이름 추가 api.link
- 인증서 추가
- Route53
- 호스팅 영역
- 생성된 호스팅
- 레코드 생성
- 별칭
- CloudFront 배포에 대한 별칭