[AWS] EC2 HTTPS 및 로드밸런서

박수민·2024년 4월 11일
0

도메인 구매

  • 먼저 Route 53에서 도메인을 구매하여 줍니다.
    (다른 대행 사이트들이 존재하지만 저희는 AWS에서 도메인을 구매하였습니다.)

1년 기준으로 가격이 측정되며 도메인 주소를 정해서 들어가면 몇가지 정보(주소, 번호, 이름 등)를 작성하라고 하는데 따라서 작성 후 결제를 해주시면됩니다. (결제는 선 결제...일시불..수수료..)

도메인 인증 및 인증서 발급

  • 도메인을 생성하고나면 먼저 인증서를 발급 받아줍니다. (Requset a certificate 클릭)

  • 구매한 도메인을 입력하여 줍니다.

  • 아래와 같이 설정(기본값임)하고 요청을 클릭합니다.

  • DNS 검증(권장)은 이메일 검증보다 빠르고 간편하다고 합니다. (자동 갱신도 지원)

  • 인증서 발급 후에는 View certificate 클릭합니다.

  • Domain부분의 Create recodes in Route 53 클릭합니다.

  • 시간이 지나면 자동으로 생성이 되지만 들어가서 도메인을 체크해주시고 creat records클릭
    (저는 생성이 된 상태라 버튼이 비활성화 되어있습니다.)

  • Route 53 > Host zones > 도메인에 들어가면 Records에 처음 도메인을 구매하였을때 생긴 type NS, SOA가 기본으로 생성되어있고 저희가 방금 생성한 CNAME이 추가로 생성되어있는걸 확인할 수 있습니다.

시간이 좀 지나고 나면 인증서가 발급된 모습을 ACM > Certificates에서 확인할 수 있습니다.

  • 평균 20~30분 정도 소요되고, 길면 2시간까지도 걸린다는 것 같습니다.
  • 그 이상 소요된다면, 과정을 점검해서 다시 요청해볼 필요가 있을 것 같습니다.

지금까지 EC2와 HTTPS 연결을 위해, 도메인을 구매하고, 호스팅 영역을 생성해 도메인을 인증하고, ACM으로 SSL 인증서를 발급받았습니다.

아래 내용을 따라가실 때는, 다음 사항을 기억해주셔야 합니다.
1. 네트워크는 연결할 EC2의 설정을 따를 것(VPC 등)

  1. 보안그룹은 연결할 EC2의 설정을 따를 것

  2. 나의 웹 서버에서 사용하는 포트 번호를 사용할 것 --> 본 포스팅에서는 8080

또한, EC2에서 사용하는 보안 그룹을 아래와 같이 수정해주셔야 합니다.
연결할 EC2 인스턴스의 정보 탭에 들어가서, 사용 중인 보안 그룹을 클릭 -> 인바운드 룰을 수정 -> 8080(웹 서버에서 사용 중인 포트 번호 / 아래에서는 설명 생략), https연결을 위한 443번 포트에 대해 Anywhere-IPv4등록 -> 규칙 저장

로드 밸런서 생성 및 타겟 그룹 생성

  • 먼저 로드밸런서 생성을 해줍니다.

  • Application Load Balancer -> Create

  • 로드 밸런서의 이름을 정해줍니다.

아래 설정으로는

네트워크 매핑은, 최소 2개의 AZ(Available Zone)을 설정해야 합니다.

반드시 확인하셔야 할 것은, EC2가 사용하는 VPC, 서브넷과 매핑되어야 한다는 것입니다.

헷갈리신다면, EC2 인스턴스 정보를 확인하셔서 인스턴스의 VPC, 서브넷(혹은 가용 영역)을 포함하도록 네트워크 매핑을 진행해주세요.

참고로 위에서 Scheme 설정을 Internet-facing으로 정했기에,

Private subnet은 매핑할 수 없습니다.

Public subnet으로 매핑해주세요.

  • 보안 그룹은 EC2 인스턴스와 동일하게 설정합니다.

  • Listeners and routing에서는 Add listener을 눌러 HTTPS를 추가해 줍니다.
    HTTP 80, HTTPS 443 에 대한 리스너를 생성합니다.

  • 타겟 그룹 생성 위 사진에서 보이는 Create target group을 클릭합니다.
    타겟 유형은 인스턴스를 선택합니다.

  • 타겟 그룹의 이름을 정해주시고, 포트 번호를 사용하는 포트번호로 바꿔주고(저는 위에서 8080을 사용하기떄문에 8080으로 해주었습니다), VPC를 EC2와 동일하게 설정합니다. (default VPC면 default 그대로)

  • Health check는 타겟 그룹의 EC2 인스턴스가 건강한지 확인하는 방법을 말합니다.
    Unhealthy하다면, 로드 밸런서가 해당 타겟 그룹으로 요청(부하)을 보내지 않습니다.
    디폴트를 유지하고 넘어가겠습니다.

  • 사용할 ec2인스턴스를 체크하고, 포트 번호를 확인한 후 Include as pending below버튼을눌러 아래에 포함합니다.

  • 타겟 그룹을 만들고 나면 다시 로드밸런서로 돌아가 오른쪽 새로고침을 누른 후 Forward to를 위에서 생성한 타겟 그룹으로 지정합니다.

  • 이전 포스팅에서 생성한 인증서를 적용 해줍니다.

Load Balancer가 생성이 끝났습니다!!!

도메인 레코드 생성

Route 53을 통해 생성한 호스팅 영역의 레코드 4개(A, NS, SOA, CNAME) 중 아직 생성하지 않은 A만 추가로 생성해주겠습니다.

  • Route 53 > Hosted zones > 도메인에 들어와 Create record를 클립해줍니다.

  • 레코드 이름(서브 도메인)은 사용해도 되고, 안해도 됩니다. 저는 안하고 넘어가겠습니다.
    레코드 타입 A를 확인해 주시고, Alias 체크 -> 트래픽 라우팅 대상을 아래 사진처럼 설정
    -> 위에서 생성한 로드밸런서를 지정 -> 레코드를 생성합니다.

여기까지 진행하고 나면 ec2 인스턴스에서 프로젝트를 실행시킨뒤 도메인을 url창에 입력해보면 연결되는걸 확인할 수 있습니다. 진행하시면서 궁금증이나 부족한 부분이 있다면 추가해보겠습니다.

0개의 댓글