Route53 & ACM & LoadBalacner 개념
1. Route 53

Route 53은 AWS에서 제공하는 확장 가능한 DNS(도메인 네임 시스템) 웹 서비스다.
- 기능: 도메인 이름을 IP 주소로 변환하며, 트래픽 라우팅 및 도메인 이름 등록, 헬스 체크 기능을 제공한다.
- 사용 사례: 웹사이트 도메인 설정, 트래픽 라우팅 정책 설정, 헬스 체크를 통한 가용성 관리.
- 장점: 트래픽을 다양한 리소스로 유연하게 라우팅할 수 있다.
2. ACM (AWS Certificate Manager)

ACM은 SSL/TLS 인증서를 쉽게 요청, 관리, 배포할 수 있도록 지원하는 서비스다.
- 기능: SSL/TLS 인증서를 자동으로 갱신하고 관리한다.
- 사용 사례: HTTPS를 통해 웹사이트와 클라이언트 간의 트래픽을 암호화하는 데 사용된다.
- 장점: 몇 번의 클릭만으로 SSL 인증서를 생성하고 AWS 서비스에 배포할 수 있다.
3. 로드 밸런서 (Load Balancer)

로드 밸런서는 여러 서버(EC2 인스턴스)로 들어오는 트래픽을 분산시켜 애플리케이션의 가용성과 성능을 높이는 데 사용된다.
- 주요 유형:
- Application Load Balancer (ALB): HTTP/HTTPS 트래픽을 처리하며, URL 경로나 호스트 이름에 따라 트래픽을 라우팅한다.
- Network Load Balancer (NLB): TCP/UDP 트래픽을 처리하며, 초당 수백만 건의 요청을 처리할 수 있는 고성능 로드 밸런서다.
- Classic Load Balancer: 기존 애플리케이션을 지원하기 위한 로드 밸런서로, 현재는 ALB와 NLB가 더 자주 사용된다.
- 사용 사례: 웹 애플리케이션 트래픽 분산, 서버 과부하 방지, 가용성 및 성능 향상.
- HTTPS 적용 시 로드밸런서를 사용하는 이유?
- 단일 IP(로드밸런서 IP)로 여러 트래픽을 처리할 수 있다.
- 각 EC2 인스턴스마다 HTTPS을 적용하는 것보다, 하나의 로드 밸런스에 HTTPS를 적요한느게 낫다.
4. VPC (Virtual Private Cloud)
VPC는 AWS에서 제공하는 가상 네트워크로, 사용자가 AWS 리소스를 격리된 네트워크 환경에서 운영할 수 있게 한다.
- 기능: IP 주소 범위 정의, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 설정.
- 사용 사례: 네트워크 보안 강화, 트래픽 관리, 격리된 네트워크 환경 제공.
- 장점: 세밀한 네트워크 보안과 트래픽 제어가 가능하며, 필요에 따라 외부와 연결할 수 있다.
로드 밸런서는 특정 VPC에 배치되고. 트래픽을 해당 VPC의 인스턴스에게 분산시켜준다.
HTTPS 적용 절차
prerequisite
- EC2에 웹서버가 구축되어 있다.
- Route 53을 사용하여 도메인이 구축되어 있다.
www.example.com
로 구축이 되어 있다고 가정한다.
1. ACM을 통한 SSL 인증서 생성
SSL 인증서 요청
- ACM 콘솔에서 요청 시작: AWS Certificate Manager(ACM) 콘솔로 이동하여 새 SSL 인증서를 요청한다.
- 인증서 요청 → 퍼블릭 인증서 요청
- 도메인 입력
- HTTPS를 적용할 도메인을 입력한다.
- DNS 검증, RSA 2048의 권장 옵션을 선택하여 퍼블릭 인증서를 요청한다.
- DNS 검증은 도메인 소유권을 확인하는 방법으로, Route 53을 사용하는 경우 매우 간편하다.

DNS 설정을 통한 도메인 검증
- 인증서 ID 선택 → Route 53에서 레코드 생성
- 사용하고 싶은 도메인을 클릭하여, 해당 도메인에 ACM 인증서를 적용한다.
- 몇분 후, 발급됨 상태가 되면 정상적으로 ACM이 등록된 것을 확인할 수 있다.

2. 대상 그룹 설정
- 로드 밸런서는 요청을 대상 그룹으로 라우팅한다.
- 로드 밸런서를 생성하기 전에 대상 그룹을 먼저 생성해주자.
- 대상 유형 선택 → 인스턴스
- 대상 그룹 이름 지정
- 프로토콜 : 포트
- 직접 사용하는 포트를 입력한다.
- 8080 포트를 사용한다면 8080으로 작성한다.


- IP 주소 유형 - IPv4
- VPC 그룹 선택
- 프로토콜 버전 - HTTP 1
- 상태 검사
- 상태 검사는 로드 밸랜서가 타겟그룹의 상태 테스트를 위해 주기적으로 요청을 보내 확인하는 것이다.

3. 로드 밸런서 설정
로드 밸런서 생성
- EC2 → 로드 밸런서 → 로드 밸런서 생성 → Application Load Balancer 생성
- Application Load Balancer
- Layer 7에서 동작하는 로드 밸런서로, HTTP와 HTTPS 트래픽을 처리하는 데 최적화되어 있다.
- Network Load Balancer
- Layer 4에서 동작하며, TCP, UDP, TLS 트래픽을 처리하는 데 최적화되어 있다.
- 매우 낮은 지연 시간과 높은 처리량이 요구되는 경우에 적합하다.
- Gateway Load Balancer
- Layer 3에서 동작하며, 주요 목적은 네트워크 보안 장비와 같은 장비를 확장 가능하게 만드는
- Application Load Balancer 생성
- 기본 구성
- 로드 밸런서 이름
- 체계(인터넷 경계), 로드 밸런서 IP 주소 유형(IPv4) 선택
- 네트워크 매핑
- VPC : 로드밸런싱 할 VPC를 선택한다.
- 가용 영역 : 2개의 가용영역을 선택한다.
- 보안 그룹
- 로드 밸런서에 대한 트래픽의 보안 그룹을 지정한다. 자신의 인스턴스가 사용중인 보안 그룹으로 설정해준다.
- 리스너 및 라우팅
- HTTP, HTTPS에 대한 포트 설정을 해준다.
- HTTP의 경우 웹서버가 8080 포트를 사용하고 있다면, 8080으로 세팅해 주어야 한다!
- HTTPS는 보안 리스너 설정에서 ACM에서 발급한 인증서를 선택해준다.
- 로드 밸런서 생성 버튼을 누르면, 몇분 후 로드 밸런서가 활성 상태가 된다.



4. Route 53에서 도메인 라우팅 설정
도메인 네임을 로드 밸런서와 연결
- Route 53 → 호스팅 영역 → 호스팅 영역 이름 클릭 → 레코드 생성
- 레코드 이름, 유형 선택
- 트래픽 라우팅 대상
- Application/Classic Load Balancer에 대한 별칭 선택
- Region 선택
- 생성한 로드 밸런서 선택
- 라우팅 정책 → 단순 라우팅

5. 테스트 및 배포
HTTPS 연결 테스트
- 도메인 접속: 웹 브라우저에서 도메인을 입력하여 HTTPS로 접속한다.
- SSL 인증서 확인: 웹 브라우저에서 SSL 인증서가 올바르게 적용되었는지 확인한다.
- 리디렉션 확인: HTTP로 접속할 경우 HTTPS로 자동 리디렉션되는지 확인한다.
- 리디렉션 설정
- 로드 밸런서 → 리스너 및 규칙에서 HTTP 프로토콜 선택 → 리스너 편집
- 리스너 구성
- 프로토콜 : HTTP, 80
- 라우팅 액션 : URL로 리디렉션
- 프로토콜 : HTTPS, 433


정리
1. 도메인 요청
- 사용자가 웹 브라우저에서
https://www.example.com
과 같은 도메인에 접속하려고 요청을 보낸다.
2. Route 53에서 도메인 이름 해석
- AWS Route 53이 도메인 이름(
www.example.com
)을 해석하여 해당 도메인이 연결된 Load Balancer의 DNS 이름 또는 IP 주소를 반환한다.
3. Load Balancer로 요청 전달
- 사용자의 요청은 Route 53이 반환한 Load Balancer의 DNS 이름 또는 IP 주소로 전달된다.
- 요청이 HTTP로 들어오면, Load Balancer는 이를 HTTPS로 리디렉션할 수 있다.
4. SSL/TLS 인증서 적용
- Load Balancer는 ACM(AWS Certificate Manager)에 의해 제공된 SSL/TLS 인증서를 사용하여 HTTPS 연결을 설정한다.
- 이 인증서로 인해 사용자의 브라우저와 Load Balancer 간의 통신이 암호화된다.
5. 트래픽 분산
- Load Balancer는 요청을 처리하기 위해 연결된 EC2 인스턴스 중 하나로 트래픽을 분산시킨다.
- Load Balancer는 대상 그룹(Target Group)에 설정된 EC2 인스턴스의 상태를 확인하고, 정상적으로 동작하는 인스턴스로 요청을 전달한다.
6. EC2 인스턴스에서 요청 처리
- EC2 인스턴스는 사용자가 요청한 웹 페이지나 API 호출 등을 처리하고, 그 결과를 다시 Load Balancer로 반환한다.
7. HTTPS 응답 반환
- Load Balancer는 EC2 인스턴스로부터 받은 응답을 다시 SSL/TLS로 암호화하여 사용자에게 반환한다.
- 사용자의 웹 브라우저는 HTTPS로 암호화된 응답을 해독하고, 사용자에게 웹 페이지나 데이터를 표시한다.
8. 세션 종료
- HTTPS 세션이 종료되면, 브라우저와 Load Balancer 간의 연결이 안전하게 종료된다.
Share article