Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

develog

AWS EC2에 HTTPS 적용하기 #3 (로드밸런서 및 ACM) 본문

백엔드

AWS EC2에 HTTPS 적용하기 #3 (로드밸런서 및 ACM)

LineGu 2022. 2. 2. 17:34

이번 포스팅에선 이미 HTTP로 배포되어 있는 서버에 HTTPS를 적용시킬 것이다.

현재 도메인이 연결되어있어야한다.

1. 인증서 발급

AWS ACM에서 인증서를 발급받자.

인증서 요청 버튼을 눌러 인증서를 받으러 가보자.

퍼블릭 인증서를 선택하고 다음 버튼을 누르면 된다.

자신의 도메인을 입력하면 된다.

Route53에서 생성해준 A레코드 형식대로 추가해주면 된다.

필자는 A레코드를 googoo.blog로 열어줬으므로 googoo.blog로 입력했다.

검증 방법은 DNS 검증 방법을 권장하고 있다.

빠르게 검증하고 싶다면 이메일 검증을 진행해도 무방하다.

필자는 DNS 검증 방식을 선택하겠다.

필자는 googoo.blog에 대한 인증서가 발급되었다.

인증서에 들어가서 Route 53에서 레코드 생성 버튼을 눌러보자.

체크해주고 레코드를 생성해주면 된다.

인증서 발급은 끝났다.

현재까지는 내 도메인으로 인증서를 발급 받은 것이다.

2. 로드밸런서 설정

AWS 로드밸런서 페이지로 가보자.

복잡할 수 있으니 천천히 잘 따라가자.

필자처럼 아무것도 없을 것이다. 로드 밸런서 생성 버튼을 누르자.

Application Load Balancer를 선택해서 만들어주면 된다.

기본 설정에서는 적절한 이름을 넣고, 위와 같이 설정해주면 된다.

네트워크 매핑 설정에서는 자신의 VPC를 선택하고 (대부분 하나만 있을 것이므로 디폴트로 되어 있는 것을 따라가면 된다.)

Subnet은 네개를 모두 체크해주면 된다. 서브넷은 두개 이상 필수로 체크해줘야한다.

보안 그룹 선택에선 자신의 인스턴스에 적용된 보안그룹을 선택하면 된다.

아래 Add Listener로 HTTPS 443포트 리스너를 추가하자.

디폴트액션으로 Forward to가 되어있고, 타겟을 지정하라고 한다.

이는 해당 포트로 요청이 들어왔을 때, 어떤 액션을 취할지 정해주는 것으로, Forward to는 특정 타겟으로 전달시켜겠다는 것이다.

현재는 모두 타겟이 없을 것이다.

Create target group으로 타겟을 만들러 가자.

이 타겟이 중요하다.

우선 intances를 선택하고

protocol과 port를 HTTP / {자신이 서버를 연 port} 로 지정해주자.

이대로 생성해주면 된다.

지금 이 설정은 요청이 들어왔을 때, 우리 인스턴스의 8080포트로 보내버리겠다는 것이다.

여기서 HTTP 80 포트로 전달시키고, 인스턴스 내에서 Nginx를 이용해서 8080포트로 돌리는 방법도 있다.

생성을 해주면 위 사진과 같은 페이지로 넘어갈 것이다.

필자는 내 타겟이 건강한지 체크를 하기위해서 review target에 넣어줬다.

필자처럼 하려면 타겟을 체크한 후 Include as pending below 버튼을 눌러주면 된다.

이제 Create target group을 누르자.

타겟이 잘 생겼다.

다시 로드밸런서 페이지로 돌아가자.

새로고침 버튼을 누르면 방금 만든 타겟이 나올 것이다.

선택해주고 넘어가자.

여기선 우리가 아까 ACM으로 만들어준 인증서를 연결하면 된다.

From ACM을 선택하고 드랍다운을 눌러보자.

우리가 만든 인증서가 있을 것이다. 선택하자.

이제 쭉 아래로 내려서 로드밸런서 생성 버튼을 누르자!

로드밸런서가 성공적으로 생성됐다.

이제 리스너 설정을 살짝 변경해줘야한다.

저 아래의 리스너 탭을 눌러보자.

우리는 HTTP로 요청이 들어왔을 때, HTTPS로 요청을 리다이렉트 시킬 것이다.

HTTP의 규칙을 바꿔보자.

HTTP의 규칙 보기/ 편집 버튼을 누르자.

저 위에 연필모양의 수정 버튼을 누르고

규칙 옆에 연필 모양을 눌러 수정해보자.

기존에 있던 Forward to 액션은 삭제하면 된다.

삭제 후, 작업 추가 버튼을 눌러 리다렉션 대상을 선택하고 사진처럼 설정해주면 된다.

설정 후, V 체크 버튼을 누르고 업데이트 버튼을 누르자.

로드밸런서 설정은 끝났다.

이제 하나만 남았다.

3. Route53에서 레코드 변경

다시 AWS Route53 페이지로 가보자.

호스팅 영역에서 자신의 도메인을 클릭하자.

레코드에서 A레코드를 선택하여, 레코드 편집 버튼을 누르면 위 사진 처럼 나올 것이다.

거기서 별칭 토글을 클릭하면, 트래픽 라우팅 대상을 선택할 수 있다.

  1. Application/Classic Load Balancer 선택
  2. 서울 리젼 선택
  3. 자신의 로드밸런서 선택

후에 저장을 눌러주면된다. (대상 평가는 자유)

이때에도 적용되는데 시간이 걸린다.

상태보기 버튼을 통해서 진행상황을 볼 수 있다.

이제 끝이다.

  1. https://{도메인}
  2. http://{도메인}

두가지 경우 모두 들어가보자.

1번의 경우 포트를 따로 입력하지 않아도 결과가 잘 나올 것이다. https 적용이 잘 된 것이다.
(오히려 포트를 입력하면 안될 것이다. 우리가 로드밸런서 리스너에서 443과 80포트만 열어줬기 때문이다.)

2번의 경우 https로 자동으로 변경 될 것이다.

우리가 로드밸런서 리스너에서 https로 리다이렉트 시켜줬기 때문이다.

이로써 https 적용이 끝났다.

허접하지만 지금까지 우리가 적용한 것을 그림으로 나타내면 다음과 같다.

Comments