잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻
시리즈
1. 이전 글 : AWS Route 53에서 Domain name(root) 구입하기
2. 이전 글 : CloudFront에 SubDomain 연결하여 HTTPS 통신하기
3. 현재 글 : 로드 밸런서에 SubDomain 연결하여 HTTPS 통신하기
이전 글에서 파란색, CloudFront에 서브 도메인을 연결하여 HTTPS 통신하는 방법에 대해 알아보았습니다.
이번 글에서는 초록색, ALB에 SubDomain 연결하여 HTTPS 통신하는 방법에 대해 알아보려 합니다. 로드 밸런서는 AWS ALB를 사용합니다. (본문에서 나온 용어(RootDomain, SubDomain)들은 이전 글을 참고해주세요.)
(+a ALB란 Application Load Balancer으로 현재 백엔드 서버를 가리키고 있는 엔트리 포인트입니다. 보다 자세한 아키텍처는 프로젝트 README.md를 참고해주세요.)
글 순서는 아래와 같습니다.
1. ALB에서 사용할 SSL 인증서 생성 (with ACM)
2. Route 53, Root Domain 레코드에 BE Server가 사용할 SubDomain 추가
3. ALB에 인증서 등록
4. 결과
1. ALB에서 사용할 SSL 인증서 생성 (with ACM)
이전 글과 마찬가지로 ALB가 HTTPS 때 사용할 SSL 인증서를 생성합니다. 이전 CloudFront이 사용한 인증서는 버지니아에서 만들었지만, 현재 ALB는 서울 리전에 있기 때문에 서울 리전에서 만들도록 하겠습니다.
SubDomain 이름은 백엔드 서버가 사용할 api.jjikmuk.com으로 생성하겠습니다.
위 과정을 통해 ALB에서 사용할 SSL 인증서를 생성하였고, Route 53에서 인증서에 대한 레코드도 추가하였습니다.
2. Route 53, Root Domain 레코드에 BE Server가 사용할 SubDomain 추가
Root Domain 레코드에 SubDomain을 추가합니다.
레코드 이름 : api.jjikmuk.com
레코드 유형 : A
별칭 : on
트래픽 라우팅 대상 : ALB / 서울 리전 / 해당 ALB
3. ALB에 인증서 등록
SSL 인증서도 생성하였고 Root Domain에 서브 도메인 레코드도 등록하였습니다. 이제 ALB에 인증서를 연결하여 HTTPS 통신하도록 연결하면 됩니다.
HTTPS 프로토콜과 443 포트 번호를 선택합니다. 이 뜻은 로드 밸런서(ALB)이 HTTPS/443으로 요청을 받아 actions으로 넘겨줍니다.
이제 actions 을 추가합니다. actions는 forward to으로 지정하여 ALB가 가리킬 Target group을 지정합니다. (글 예시는 ALB의 Target group은 ECS로 연결되어있습니다)
생성한 SSL을 선택하고 리스너를 Add 합니다.
+a) 로드 밸런서에 HTTP 요청이 왔을 때 HTTPS로 리다이렉트 할 수 있습니다.
3.4 ~ 3.7 작업을 통해 로드 밸런서에 HTTP 요청이 온다면 HTTPS으로 리다이렉트 되도록 설정하였습니다.
4. 결과
# curl로 http 요청 확인 -> 301 리다이렉트 확인(https)
> curl -I http://api.jjikmuk.com
HTTP/1.1 301 Moved Permanently
Server: awselb/2.0
Date: Tue, 13 Sep 2022 11:06:06 GMT
Content-Type: text/html
Content-Length: 134
Connection: keep-alive
Location: https://api.jjikmuk.com:443/
마치며
이번 글을 끝으로 로드밸런서에 SubDomain을 연결하여 HTTPS 통신하는 방법까지 알아보았습니다.
읽어주셔서 감사합니다. 🙇♂️
⛓ Reference
서브 도메인을 활용하여 AWS 서비스에 연결하기 1. Route 53에서 도메인 네임 구입 방법
서브 도메인을 활용하여 AWS 서비스에 연결하기 2. CloudFront에 SubDomain 연결하여 HTTPS 통신하기
'👾 Server > ☁️AWS' 카테고리의 다른 글
REST API Response(JSON)를 CDN을 활용하여 캐싱하기 (0) | 2023.05.05 |
---|---|
AWS SDK for Java 1.x가 AWS credentials를 가져오는 5가지 방법 (0) | 2023.04.23 |
서브 도메인과 AWS 서비스 연결하기 2. CloudFront에 SubDomain 연결하여 HTTPS 통신하기 (1) | 2022.09.13 |
서브 도메인과 AWS 서비스 연결하기 1. Route 53에서 도메인 네임 구입 방법 (0) | 2022.09.13 |
S3에 이미지 업로드 기능 아키텍처 비교 (서버에 직접 전송, presigned URL 활용) (0) | 2022.09.04 |
댓글