728x90
개요
- NAT, IGW가 없는 VPC의 EC2를 외부에 노출시키기 위한 작전
- EC2는 Private Subnet에 있고 IGW, NAT도 없어서 인터넷에서 다운로드가 불가능하다. 이를 위해 TGW를 이용해 인터넷을 사용할 수 있게 할 수 있음
- 추가로 EC2에 설치된 애플리케이션인 nginx를 외부에 노출시키기 위해 A VPC에 ALB - Endpoint, B VPC에 internal NLB - EC2 이런 구조로 만드는 것이다.
준비물
- NAT, IGW 없는 B VPC의 Private Subnet에 위치한 Private IP를 단 EC2

- 리스너는 80 포트로 ec2 대상그룹으로 전달하기

- internal NLB는 B VPC의 Private Subnet에 위치한다.
- 보안그룹으로는 A VPC CIDR 대역을 80 포트 허용한다

- 교차 영역 로드 밸런싱은 꼭 켜둬야한다. 그래야 추후 ALB의 타겟그룹에서 NLB의 엔드포인트 서비스가 지정되었을 때 상태 검사 fail이 안 뜬다


엔드포인트 서비스 생성
- VPC > 엔드포인트 서비스 로 접근하기
- 로드밸런서 유형에서 네트워크 선택하면 연결 가능한 internal NLB가 나타난다
- 지원 리전을 굳이 설정 안 해도 됨.

4. 생성 완료되면 서비스 이름을 기록해둔다.

5. 승인이 필요하다면 엔드포인트 서비스의 <엔드포인트 연결> 탭에서 진행하면 된다. 이미 승인해서 선택할 수 없지만, <엔드포인트 연결 요청 수락>을 선택하면 됨.

엔드포인트
- 엔드포인트 생성하기 에서 NLB 및 GWLB를 사용하는 엔드포인트 서비스 선택
- 서비스 설정에 엔드포인트 서비스 이름 복사한 거 붙여넣기

3. 서브넷은 A VPC의 Public Subnet, Private Subnet 모두 가능하다.

4. 보안그룹은 아래에서 만들 ALB의 보안그룹을 HTTP 80으로 허용 하면 된다.

5. 그리고 서브넷 연결된 IPv4 주소를 미리 적어둔다. 이제 이 IP주소가 A VPC의 ALB 타겟이 될 IP이다.

ALB 생성
- 이제 A VPC에 External ALB를 만들면 된다.
- 보안그룹은 일반적으로 하는 HTTP 80 0.0.0.0/0으로 열면 된다.

타겟그룹
- 사용할 포트는 nginx여서 HTTP:80으로 했고, 타겟그룹은 위에서 적어둔 IP 주소로 타겟이 되는 것이다.
- 대상 유형은 반드시 IP로 설정하기

결과
- ALB DNS로 들어가면 웹 페이지가 정상적으로 나타난다. EC2가 있는 VPC는 IGW도 NAT도 없지만, endpoint service와 인터넷과 연결되는 외부 ALB를 통해 EC2의 nginx 애플리케이션이 외부로 노출이 가능한 것이다.

정리
ALB

NLB

728x90