AWS EC2 HTTPS

song yuheon·2023년 9월 18일
2

Spring

목록 보기
68/93
post-thumbnail
post-custom-banner

전체 구현 흐름 와이어 프레임

이미지를 참고하여 전체 구현 흐름을 파악한다.

와이어 프레임 이미지


Client - Amazon Route 53

역할

클라이언트가 브라우저를 통해 도메인 주소로 요청을 할 때, DNS 서버가 이 요청을 Amazon Route 53으로 전달한다. Route 53은 요청한 도메인에 대응하는 ALB(Application Load Balancer) IP 주소를 반환한다.

구현

1. 도메인 주소 구매

AWS Route53 도메인 등록 혹은 Gabia 도메인 등록을 통해 도메인 주소를 구매한다.
도메인 구매 이미지

2. 도메인 인증
  • 호스팅 영역 생성

    • 도메인 이름: 등록한 도메인 주소 사용
    • 유형: public hosting 영역 선택
    • 생성은 '호스팅 생성' 버튼을 클릭하여 수행한다.
      호스팅 영역 이미지
  • 레코드 생성

    • 값: EC2의 Public IPv4 주소 입력
    • '레코드 생성' 버튼을 클릭하여 생성한다.
      레코드 생성 이미지
  • 레코드 NS 유형 확인

    • Gabia: 'My Gabia'에서 '도메인 관리'로 이동, '네임서버 설정'에서 NS 유형 값을 입력한다.
    • AWS: AWS는 해당 과정을 자동으로 수행한다.

AWS Certificate Manager

역할

서버와 클라이언트 사이의 통신을 암호화하며, HTTPS 통신을 위해 SSL/TLS 인증서를 생성한다.

구현

  • 인증서 요청
    • 인증서 유형: 퍼블릭 인증서 요청 선택
    • 도메인 이름: 등록한 도메인 이름 입력
    • Route 53에서 '레코드 생성' 버튼을 클릭하여 레코드를 생성한다.
      인증서 요청 이미지

EC2 Load Balancer

역할

HTTP/HTTPS 트래픽을 처리하며, HTTP 요청을 HTTPS로 리다이렉트한다. 이 리다이렉션은 301 상태 코드를 사용하여, 리소스가 영구적으로 이동하였음을 알린다.

구현

  • 대상 그룹 생성

    • 유형: 인스턴스 선택
    • 포트: Application service port 설정
    • VPC: 타겟 그룹을 선택한다.
    • 'Create target group' 버튼을 클릭하여 대상 그룹을 생성한다.
  • 로드 밸런서 생성

    • 유형: Application Load Balancer 선택
    • 이름: 원하는 이름을 지정한다.
    • 네트워크 매핑: 인스턴스의 가용 영역을 선택한다(

기타 옵션은 선택적으로 설정 가능).

  • 보안 그룹: 인스턴스가 사용하는 보안 그룹을 선택한다(80, 443 포트는 허용되어야 한다).
  • 리스너: HTTP와 HTTPS 리스너를 동일한 대상 그룹에 설정한다.
  • HTTP 작업 유형: URL로 리디렉션, HTTPS (포트 443)로 설정한다.
  • Secure listener settings: ACM에서 생성한 인증서를 등록한다.
    로드 밸런서 생성 이미지

로드 밸런서 등록

이전 단계에서 생성한 도메인 호스팅 영역에서 레코드를 생성하고, 별칭을 설정한 후 로드 밸런서를 등록한다. 설정 완료 후, HTTP로 해당 도메인에 접근하면 HTTPS로 자동 전환된다.

로드 밸런서 등록 이미지1
로드 밸런서 등록 이미지2


클라이언트 요청시 동작

  1. 클라이언트 요청 (HTTP/HTTPS)

    • 사용자는 웹 브라우저에서 도메인을 입력하여 웹 사이트에 접속을 시도한다. 브라우저는 먼저 DNS 조회를 통해 도메인 이름을 IP 주소로 변환한다. 이 때 AWS Route 53 서비스가 이 역할을 한다.
  2. Amazon Route 53

    • AWS Route 53은 사용자의 DNS 조회 요청을 받아 설정된 Route 53 호스팅 영역의 레코드에서 ALB(Application Load Balancer)의 IP 주소를 찾아 반환한다.
  3. ALB (Application Load Balancer)

    • ALB는 받은 요청을 처리하여 적절한 EC2 인스턴스로 라우팅한다. 여기에서 HTTP 요청이 들어온 경우, 설정된 리스너 규칙에 따라 HTTP 요청을 HTTPS 요청으로 리다이렉트(301 리다이렉션)한다.
  4. AWS Certificate Manager

    • HTTPS 요청이 들어오면, ALB는 AWS Certificate Manager에서 발급받은 SSL/TLS 인증서를 사용하여 클라이언트와 서버 간의 통신을 암호화한다.
  5. EC2 인스턴스

    • 이제 안전하게 암호화된 연결이 이루어졌다. ALB는 요청을 대상 그룹에 있는 EC2 인스턴스 중 하나로 라우팅한다.
  6. 응답 반환

    • EC2 인스턴스는 요청을 처리한 후, 응답을 ALB로 반환한다. ALB는 이 응답을 클라이언트(웹 브라우저)로 반환하여 웹 페이지가 사용자에게 표시된다.
profile
backend_Devloper
post-custom-banner

0개의 댓글