비전공자도 이해할 수 있는 AWS 중급/실전 (보안 가용성편)
💡
목표 : 프라이빗 서브넷에 데이터베이스 서비스인 EC2 인스턴스를 배치하기
✅ 프라이빗 서브넷을 사용하기 위해 필요한 셋팅
이전 강의에서 퍼블릭 서브넷으로 사용하기 위해 인터넷 게이트웨이랑 라우팅 테이블을 추가로 셋팅했어야 했다.
하지만 프라이빗 서브넷에서는 퍼블릭 서브넷과 달리 인터넷 게이트웨이를 셋팅하면 안 된다. 왜냐하면 인터넷 게이트웨이는 VPC와 외부 인터넷 간에 통신할 수 있게 해주는 장치이기 때문이다. 프라이빗 서브넷은 보안을 위해 외부에서 접근이 불가능하게 만들어야 한다.
따라서 프라이빗 서브넷은 인터넷 게이트웨이 대신에 NAT 게이트웨이를 셋팅해야 한다. 그럼 지금부터 NAT 게이트웨이가 뭔지 알아보자.
✅ NAT 게이트웨이란?
NAT 게이트웨이는 외부 인터넷에서 서브넷으로 접근할 수는 없지만 서브넷에서 외부 인터넷으로 접근할 수 있게 해주는 장치다.
인터넷 게이트웨이는 ‘외부 인터넷 → 서브넷’의 방향으로도 통신이 가능했고, ‘서브넷 → 외부 인터넷’의 방향으로도 통신이 가능했다. 반면 NAT 게이트웨이는 ‘서브넷 → 외부 인터넷’의 방향으로만 통신이 가능하다는 뜻이다.
[예시]
- ‘외부 인터넷 → 서브넷’ 방향의 통신
- 서브넷에 포함된 EC2 인스턴스의 백엔드 서버로 API 요청
- 서브넷에 포함된 EC2 인스턴스에 SSH로 접속
- ‘서브넷 → 외부 인터넷’ 방향의 통신
- 서브넷에 포함된 EC2 인스턴스에서 외부 API(ex. 날씨 API, OpenAI API 등) 호출
- 서브넷에 포함된 EC2 인스턴스에서 소프트웨어(ex. Nginx, git 등) 설치
✅ NAT 게이트웨이의 직관적인 이해
NAT 게이트웨이는 내부에서 외부로만 나갈 수 있는 출입구라고 생각하면 이해하기 편하다.
NAT 게이트웨이가 한 방향(내부 → 외부)로만 트래픽을 보낼 수 있다보니 외부의 해커 침입으로부터 안전하게 보호할 수 있다는 장점이 있다. 즉, 보안적으로 훨씬 안전하다.
✅ NAT 게이트웨이를 추가한 AWS 아키텍처 그림
NAT 게이트웨이를 어떻게 추가해야 하는 지 그림으로 살펴보자. 특이하게도 NAT 게이트웨이는 VPC에 연결하는 것도 아니고, 프라이빗 서브넷에 연결하는 것도 아니다. NAT 게이트웨이는 퍼블릭 서브넷에 연결을 한다.
프라이빗 서브넷을 외부 인터넷에 직접적으로 노출시키지 않으면서도, 인터넷에 접근은 할 수 있게 만들어야 해서 나온 구조로 예상된다.
그럼 다음 강의에서 NAT 게이트웨이를 활용해 외부 인터넷에서 접근할 수 없는 프라이빗 서브넷을 만들어보자.