HTTP -> HTTPS (feat. AWS)

Falcon·2021년 6월 3일
1

aws

목록 보기
10/33

🎯 Goal

  • SSL / TLS 인증서를 발급받기 위한 선결조건을 알아본다.
    다른 블로그보다 화가나서 쓴다. 인증서 발급해서 실제로 적용하는 모습을 AtoZ로 보여줘야하는데 자기들이 쓰는 서비스 화면 일부를 대충 스샷찍어놓고 ~~케 하면된다. 라고 ㅡㅡ
  • AWS Route53 을 통해 도메인을 발급할 수 있다.
  • AWS ACM을 통해 SSL/TLS 인증서 발급할 수 있다.
  • AWS ELB 에 SSL 인증서를 적용하여 HTTPS 를 사용할 수 있다.

Route 53

DNS Web Service
EC2 instance 같은 AWS resources 와 함께 쓸 수 있도록.
ex) EC2를 클라우드 서버 컴퓨터로 쓸 때 Public IPv4에 도메인 부여

도메인 발급

순서는 다음과 같다.

  1. AWS Route 53 Console 접속
  2. 등록된 도메인 탭 이동
  3. 도메인 등록
  4. 원하는 도메인 입력
  5. 개인||조직 정보 입력
  6. 결제
  7. 도메인을 타겟 리소스에 연결 (여기서는 EC2)


    원하는 도메인 이름을 입력한다.

근데 뜬금없이 왜 도메인을 발급받냐고?
HTTPS를 쓰기 위해선 SSL/TLS 인증서가 필요하고
인증서 발급을 위해선 IPv4 192.168.0.x 같은 주소가 아닌
example.com 같은 사용자 도메인이 필요하기 때문이다.

외부 도메인 등록시

Route 53 - 호스팅 영역
값/트래픽 라우팅 대상 4개 주소를
DNS 서버 주소 목록에 추가

ACM

Amazon Certificate Manager
SSL/TLS 인증서를 발급하고 관리하는 서비스
보통 ELB (Elastic Load Balancer)와 함께 쓰인다.

발급완료 상태

ELB

Application Layer level (L7) HTTP(S) 프로토콜상의 로드벨런싱을 위한 서비스다.
로드벨런싱이 뭔지 모르겠다고...? 그럼 아마 이 포스트를 읽어도 이해가 가지 않을텐데...

SSL 인증서는 각각의 EC2 Instance가 아닌
ELB에 적용된다! => 서버의 부하를 줄인다.

Configuration

Elastic Load Balancer 생성

  1. Application Load Balancer 선택

  2. 로드밸런서 구성
    Load Balancer Configuration

  1. ACM으로 발급받은 SSL 인증서 적용
    SSL Configuraiton

이로써 ELB로 들어오는 모든 HTTP, HTTPS 요청에 SSL 인증서가 적용되어 HTTP => HTTPS 리다이렉션이 일어난다.

👉🏻 HTTPS 적용 완료

  1. 보안 그룹 지정
    Security Group Configuration

  2. 라우팅 지정
    Routing Configuration

    Elastic Load Balancer 에 할당된 URL 로 요청시 자동으로 대상 인스턴스(엔드포인트)에 지정한 '프로토콜'로 요청 된다.
    나의 EC2 인스턴스는 HTTP 80포트를 사용중이므로 여기서 80포트로 라우팅되도록 설정했다.

  1. 대상 등록
    Enroll Target Instance

    반드시 대상 인스턴스를 '등록된 항목에 추가' 버튼을 눌러 추가해야한다.
    ⚠ 이 과정을 생략하면 대상 인스턴스를 찾을 수 없어 503 Service Unavailable 을 반환한다.

항시 가동되고 있는 EC2 인스턴스를 대상으로 등록했다. 이 인스턴스는 Auto-Sclaing Group 의 메인 인스턴스로 트레픽이 급증하면 Scale-out 이 일어난다.


Route 53

다시 돌아와서
등록했던 도메인주소와 등록한 ELB 를 연결해주어야한다.

  1. Route53 - 호스팅 영역
    Domain - ELB Route
    유형 'A' 레코드 편집
  1. 별칭 활성화 => 트래픽 라우팅 대상 ELB 지정
    Record Target ELB Configuraiton

이제 발급받은 특정 도메인 URI에 대해 모든 요청이 ELB 를 경유하게된다. 😏

EC2 AutoScaling - ELB 연결

  1. EC2 -> Auto Scaling 그룹

  2. 대상 ELB 추가


📝 결론

ELB에 SSL 인증서를 적용하고 EC2 Auto scaling 에 연결하면
대규모 트레픽을 감당할 수 있을 뿐만 아니라 HTTPS 프로토콜 사용으로 더 안전한 서비스를 구성할 수 있다.

☹️ 실제 회사 서비스에 적용하면서 작성한 포스팅이라 결과화면은 업로드하기 어렵다.

🔗 Reference

profile
I'm still hungry

0개의 댓글