[GCP] NAT Gateways_ 고가용성 및 고대역폭의 NAT Gateway 구축하기

Hailey·2020년 9월 1일
1

GCP

목록 보기
16/29

1. NAT Gateway란?

NAT 게이트웨이는 프라이빗서브넷이 인터넷과 통신하기위한 아웃바운드 인스턴스이다. 프라이빗 네트워크가 외부에서 요청되는 인바운드는 필요없더라도 인스턴스의 펌웨어나 혹은 주기적인 업데이트가 필요하여 아웃바운드 트래픽만 허용되야할 경우가 있다. 이때 퍼블릭 서브넷상에서 동작하는 NAT 게이트웨이는 프라이빗서브넷에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷게이트웨이와 연결한다.

2. Building High Availability and High Bandwidth NAT Gateways

  1. Preparing the Network

1-1. Create the VPC Network

gcloud compute networks create example-vpc --subnet-mode custom
gcloud compute networks subnets create example-east \
--network example-vpc --range 10.0.1.0/24 --region us-east1


커스텀 VPC를 생성해주었다. (이하 사진은 이해를 돕기 위하여 AWS사진을 사용하였다.)

1-2. Create the subnet within VPC Network

VPC 내에 서브넷을 생성해주고 리전과 IP범위를 지정해주었다. IP범위는 10.0.1.0/24를 리전은us-east1을 사용하였다.

  1. Create a Bastion Host and Isolated Test VM

Cloud Shell을 사용하여 점프 박스라고도하는 Bastion Host와 NAT의 기능을 테스트하기위한 Isolated vm을 만든다. 이 Isolated Test VM은 퍼블릭 IP 주소로 구성되어 있지 않으며 처음에는 인터넷에 액세스 할 수 없다. Bastion Host에는 커스텀 VPC 네트워크 외부에서 SSH를 통해 액세스 할 수 있는 퍼블릭 IP 주소가 있으므로 Bastion Host는 테스트를 위해 Test VM에 연결하는 데 사용할 수 있다. Bastion Host에도 내부 IP 주소가 있으므로 Bastion Host에 대한 원격 SSH 세션을 사용하여 커스텀 VPC 네트워크 내부의 Isolated Test VM에 연결할 수 있다.

2-1. Create the Bastion Host

2-2. Create the Isolated Test VM

2-3. Create firewall rules to allow SSH access from the internet and to enable all internal traffic within the VPC


3. Click the SSH button on the bastion host VM instance

3-1. ssh [STUDENT_NAME]@[ISOLATED-HOST-IP]
3-2. ping 8.8.8.8
-> 지금은 ping 커맨드가 성공하지 못할 것이다.

4. Reserve and store three static IP addresses

실습 중에 생성할 3개의 NAT 노드에는 3개의 예약된 IP 주소가 필요하다.

세 개의 NAT IP 주소를 성공적으로 생성했는지 테스트한다. 성공적으로 생성되었따.

  1. Create the NAT Instance Templates and configure Instance Groups

먼저 시작 구성을 만들어준 후에 예약된 IP로 3개의 인스턴스 템플릿을 만든다.

3개의 인스턴스 템플릿이 성공적으로 만들어졌는지 테스트한다.

  1. Create a health check to monitor responsiveness

6-1. Create the health check


6-2. Allow the health check through the firewall

  1. Create an instance group for each NAT gateway

3개의 인스턴스 그룹을 성공적으로 만들었는지 테스트한다. 성공적으로 만들었당

  1. Set up autohealing to restart unresponsive NAT gateways

응답하지 않는 NAT 게이트웨이를 다시 시작하도록 자동 복구를 설정한다. 각 NAT 인스턴스 그룹에 대해 이전에 구성한 Health Check를 사용하도록 오토힐링을 구성한다.

  1. Store the Instance Names in Environment Variables

  1. Add default routes to your instances

NAT 트래픽을 올바르게 라우팅하도록 각 인스턴스에 대한 기본 경로를 구성한다.

11. Test your High Availability NAT
이제 격리된 인스턴스를 다시 테스트하여 NAT 게이트웨이를 사용하고 있으며 인터넷 주소에 액세스 할 수 있는지 확인한다.

ping 명령이 성공해야한다! 성공했다! 테스트 VM은 no-ip네트워크 태그가 구성된 상태 로 생성되었으므로 동일한 태그로 NAT 경로를 생성하면 격리된 테스트 VM에 자동으로 적용되어 NAT를 통해 인터넷에 액세스 할 수 있다.

profile
Cloud Solution Architect - Customer Success in security💗🌎

0개의 댓글