필요성

AMI를 만들어서 카피를 한 EC2 인스턴스에 테스트로 nginx를 설치해볼려고 시도하였다.

→ private subnet에 있는 EC2 인스턴스였기 때문에 외부의 인터넷과 연결이 불가한 상황

→ 당연히 패키지를 다운받는 과정에서 오류가 발생하였다.

Q: 그렇다면 docker와 다른 docker 이미지는 어떻게 pull을 했을 수 있었는가?

AMI를 만들면서 기존 EC2에 있었던 이미지 파일들이 같이 저장되었던 것으로 볼 수 있다.

즉, 우리는 인터넷이 차단된 상태에서 외부로 패키지 업데이트를 위해서 인터넷과 연결될 필요성이 있다. 이를 위해서 아웃바운드 자원인 NAT Gateway를 설치하게 된다.

NAT Gateway


설치 순서

  1. NAT Gateway를 설치할 VPC로 들어가서 **[NAT 게이트웨이 생성]**을 클릭

    이름은 nat-gateway-dev-airflow로 짓는다.

  2. NAT Gateway가 위치할 public subnet을 설치한다.

    인터넷과 연결이 되야하기 때문에 반드시 public subnet과 연결을 시켜주어야 한다.

하지만 NAT를 설치하였다고 해서 외부로의 접속이 자동으로 실행되는 것이 아니다.

→ private subnet에 있는 EC2와 연결을 해주어야 한다.

아웃바운드 규칙 바꾸기

apt-get install nginx와 같은 명령어를 입력하였을 경우, 이는 외부의 인터넷에 특정 패키지를 다운로드 하겠다는 아웃바운드 요청이 된다.

이를 위해서 private subnet에 있는 EC2의 outboud 요청을 수정할 필요가 있다.

Untitled

즉 인터넷으로 요처하는 모든 주소(0.0.0.0/32)를 NAT와 연결을 하자는 의미를 가진다.

Untitled