Prerequisite
- Sprint1인 HTTP 배포를 완료해야 합니다.
- HTTPS에 대한 이해와 학습이 선행되어야 합니다.
- AWS Route53을 통해 구매한 도메인이 있어야 합니다.
Bare Minimum Requirements
- HTTPS로 웹 애플리케이션을 배포할 수 있어야 합니다.
- CloudFront, Certificate Manager, Elastic Load Balancer, Route53 등의 서비스에 대해서 이해합니다.
- 모든 테스트를 통과하고, 제출해야 합니다.
Getting Started
- HTTPS를 적용하기 위해서는 어떤 아키텍처와 어떤 AWS 서비스가 필요한지 구상합니다.
- 구상한 내용을 draw.io 등을 이용해 다이어그램으로 그리고, 해당 이미지파일을 S3에 httpsdiagram 이라는 이름으로 업로드합니다.
- 이때 해당 객체에 대한 퍼블릭 액세스를 허용해야 테스트를 통과할 수 있습니다.
- .env파일에 HTTPS 적용을 위한 환경설정으로 적절하게 작성합니다.
- npm run test2 명령을 사용해 테스트가 통과하는지 확인합니다.
- 실제로 웹 애플리케이션이 브라우저 상에서 HTTPS 프로토콜로 작동하는지 확인합니다.
1. Certificate Manager를 통한 도메인 인증서 발급
- 구매한 도메인을 기준으로 인증서를 발급 받습니다.
- 인증서는 프론트엔드 Cloudfront 사용 리전인 us-east-1과 백엔드 Load Balancer 사용리전인 ap-northeast-2에서 발급 받아야 합니다.
- 발급 시, DNS 검증 가이드로 레퍼런스를 참고하세요.
- 이후에 DNS 공급자로 Route53을 이용합니다. Route53에 레코드 생성과정을 반드시 거쳐야합니다.
- 인증까지 최소 30분의 시간이 소요될 수 있습니다.
2. 백엔드 HTTPS 적용
- 애플리케이션 로드밸런서(Application Load Balancer)를 생성합니다.
- ALB의 리스너, 가용영역, 인증서를 설정합니다.
- 대상 그룹(target group)을 등록합니다.
- 로드밸런서 DNS 주소로 접속해, 테스트를 진행합니다.
- 아래 레퍼런스를 참조하여, 스프린트를 진행합니다.
npm run test2 실행
ELB 적용 완료 확인
생성한 ELB로 접속했을 때, 서버에 정상 접속 되는 것을 확인
HTTPS 적용 참고 (스프린트와 비슷한 내용)
ELB 생성 참고
인증서 발급이나 이런 것들 과정 캡쳐 떠놓을 걸 그랬다..
ELB도 완료된거 캡쳐 안뜨고 삭제해서 ㅠ 아쉽..
ELB 만들 때 리스너로 80 포트와 443 포트 둘 다 넣었는데, 443 포트만 생성해도 되는 것 같다
unhealty 뜨는 이유는 상태코드를 무조건 200으로 받도록 되어있어서라고 하니 내일 생성할때는 201로 바꿔봐야겠다
'Code States > TIL' 카테고리의 다른 글
[0420] 지속적 통합 - 지속적 통합 (0) | 2023.04.20 |
---|---|
[0419] (페어) AWS - 도메인 연결과 CDN 및 HTTPS 적용 (2) | 2023.04.19 |
[0418] AWS - 보안 (0) | 2023.04.18 |
[0418] AWS - 서비스 노출 (0) | 2023.04.18 |
[0418] AWS - 수평 확장 (0) | 2023.04.18 |