우리는 프로젝트에서 ec2 서버를 private subnet에 두었기 때문에 외부 api 사용을 하려면 인터넷 연결이 필요하다. 그러나 private subnet에서는 바로 인터넷 연결이 안되기 때문에 NAT gateway를 사용하기로 했다.
NAT Gateway
NAT Gateway(Network Address Transliation): 네트워크 주소 변환 서비스이다. 프라이빗 서브넷의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서는 이러한 인스턴스와의 연결을 할 수 없도록 하는 기능이다.
NAT Gateway를 생성하기 위해서는 다음 4가지 요소가 필요하다.
내용 | 값 |
이름 | myNat |
서브넷 | 사용하고자 하는 VPC의 Public Subnet |
연결 유형 | 퍼블릭 / 프라이빗 |
탄력적 IP 할당 | 탄력적 IP 할당 |
- VPC의 public Subnet?
aws에서 미리 생성해둔 VPC public subnet으로 설정하면 된다. 이를 생성하거나 확인하기 위해서는 aws 콘솔에 vpc를 검색하고 생성/확인하면 된다. 나는 팀원이 미리 설정을 해두셨기에 이름 변경만 요청하고 바로 작업할 수 있었다.
💡 원활한 협업을 위해서는 vpc의 name을 잘 지정해두는 것도 중요하다. 보통 이름은 이름-리전-public/private-route로 짓는다.
Private Subnet의 라우팅 테이블 수정
이렇게 nat gateway를 생성한 뒤에는 Private Subnet의 라우팅 테이블을 수정해야 한다.
서브넷에서 Private Subnet의 라우팅을 확인해보자.
대상이 local로 되어있다. 라우팅 추가를 통해 다음과 같이 세팅하자.
이때 라우팅 테이블 추가에서 좀 헤맸는데 나와 같은 사람이 없길 바라며 정리해보자면
1. 연결하고자 하는 private subnet을 클릭한 후 해당 브라우저에 접속한다.
2. 라우팅 테이블 태그가 아닌 링크를 선택한다. (세부 정보란의 가용 영역 밑에 있는 라우팅 테이블)
3. 아래 라우팅 편집을 누르면 추가 버튼을 찾을 수 있다.
이제 외부 API 검증을 할 준비가 완료되었다.
이번주 내에 검증 코드 구현을 하고 테스트 해보도록 하자.
Reference
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-nat-gateway.html
https://kimjingo.tistory.com/180
'DevOps > DevOps' 카테고리의 다른 글
[GCP] Docker와 Artifact Registry (3) | 2023.10.25 |
---|---|
[Docker] Docker와 Docker hub, Docker hub push (1) | 2023.10.23 |
[Docker&DB] Docker와 PyMySQL (0) | 2023.06.08 |
[DevOps] serverless 프로젝트 | 아키텍처, lambda, API GW, helloLambda (2) | 2023.03.29 |
[Docker] 도커 기본, 가상화(Virtualizaion)와 컨테이너 (0) | 2023.03.29 |