Code States/TIL

[0418] (페어) AWS - 도메인 연결과 CDN 및 HTTPS 적용

ki1111m2 2023. 4. 18. 17:20

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 적용 참고 (스프린트와 비슷한 내용)

https://velog.io/@seeh_h/%EB%B0%B0%ED%8F%AC-AWS-S3%EB%A1%9C-%EB%B0%B0%ED%8F%AC%ED%95%9C-%EC%95%B1%EC%97%90-HTTPS-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

 

ELB 생성 참고

https://jforj.tistory.com/278

 


인증서 발급이나 이런 것들 과정 캡쳐 떠놓을 걸 그랬다.. 

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