
AWS Route 53 - 호스팅 영역 생성

도메인 이름을 설정하고 생성한다.

기본으로 두 개의 레코드가 생성되어있고, 레코드 생성을 클릭해서

값안에 탄력적 IP주소 삽입

그리고 NS 유형에 생성된 4개의 값을 복사해서 호스팅 케이알로 이동한다.

그리고 네임서버 부분을 NS 유형의 값으로 변경해준다.


완전히 정규화된 도메인 이름 입력하고

처음엔 검증대기중으로 완료가 안된다. Route 53에서 레코드 생성 눌러준다.

조회된 DNS 레코드 선택하고 레코드 생성 클릭하면

발급 중 으로 바뀐다.
✔️ 여기서 완전히 정규화된 도메인 이름 이랑 Routh 53에 입력되어있는 도메인명이 같아야한다. 5분 정도 기다리면 성공으로 바뀐다.
아래 보류 중으로 포함
EC2 인스턴스에서 좌측 카테고리 하단 로드밸런서 클릭 후, 생성

Application Load Balancer 생성

이름 정해주고,

가용 영역은 EC2 스턴스와 동일한 가용 영역이 포함된 것으로 2개 이상 선택한다.(인스턴스 정보에서 확인한다.)


보안그룹도 마찬가지로 인스턴스와 동일하게 설정

리스너 설정에서 HTTP와 HTTPS의 보안 그룹으로 아까 생성했던 보안그룹을 넣어준다.

A 유형의 레코드를 선택하고 레코드 편집 - 별칭 - 트래픽 라우팅 대상에서 캡쳐와 같이 선택하고 방금 생성했던 로드밸런서를 선택하고 저장한다.

위에서 설정했던 HTTP:80 리스너 - 편집으로 들어간다.

HTTP로 들어온 요청을 HTTPS 로 보낼 수 있게 위와 같이 설정한다.

대상 그룹(soramTargetGroup)에는 오직 Nginx가 응답하는 포트(80)만 등록해야 한다.
❌ 기존에는 HTTPS 443 대상을 추가했었는데, 그러면 Unhealthy 나옴.
로드밸런서가 HTTPS(443) 요청을 받아 암호화를 해독한 뒤, EC2 서버에는 일반 HTTP(80) 트래픽을 보낸다. (이것을 'SSL/TLS 종료'라고 함)
따라서, 대상 그룹은 EC2의 80 포트만 바라보고 있어야함.

그리고 health-check (상태 검사) 설정을 변경하지 않았다면, 기본 설정인 /로 되어 있을텐데, 이것을 /health 로 수정
# HTTP로 접근하는 모든 요청을 HTTPS로 리디렉션
server {
listen 80;
server_name 탄력적IP주소;
# 헬스 체크를 위한 경로
location /health {
access_log off;
return 200 'OK';
add_header Content-Type text/plain;
}
# 리디렉션 설정
location / {
return 301 https://도메인주소$request_uri;
}
}
# 없어도 됨
# server {
# listen 443;
# server_name https://도메인주소;
# root /var/www/html;
# 헬스 체크를 위한 경로
# location /health {
# access_log off;
# return 200 'OK';
# add_header Content-Type text/plain;
# }
... 생략
❓ 대상 그룹에서 80포트를 없애고 이거에 맞춰서 80 포트를 읽는 server블록을 없애니 오류가 계속 발생
✅ ALB가 모든 트래픽(HTTPS 포함)을 EC2의 80 포트로 보내주기 때문에, Nginx는 80 포트에서 모든 요청을 받을 준비를 해야 한다.
✅ 그래서 80포트를 IP주소와 함께 유지
ALB(HTTPS:443, HTTP:80) → 대상 그룹(EC2:80) → Nginx(Listen 80) → 백엔드(backend_blue:3001)