NAT인스턴스
이전포스팅에서 이어지는 내용으로 NAT인스턴스 설정을 통해서 프라이빗인스턴스의 인터넷연결을 해보도록 하겠습니다.
(https://byban.tistory.com/28)
NAT(Network Address Translation) 인스턴스는 사설 서브넷의 EC2 인스턴스가 인터넷에 연결될 수 있도록 허용하는 장치입니다. 이 인스턴스는 공용 서브넷에서 실행되며, 공용 및 사설 서브넷을 연결합니다. NAT 인스턴스는 소스/목적지 확인(Source/Destination Check)을 비활성화해야 하며, 고정된 탄력적 IP(Elastic IP)를 연결해야 합니다.
- NAT 인스턴스 구성 요소
공용 서버 및 IP
사설 서브넷에서의 액세스
NAT 인스턴스 설정 - NAT 인스턴스의 한계
지원 종료: Amazon Linux AMI의 표준 지원이 2020년 12월 31일 종료됨
가용성 문제: NAT 인스턴스는 높은 가용성을 제공하지 않으며, 초기화 설정으로 복원할 수 없음
복잡한 설정: 여러 AZ에 ASG를 생성하고 사용자 데이터 스크립트를 사용해야 함
대역폭 제한: 작은 인스턴스는 큰 인스턴스에 비해 대역폭이 더 작음
보안 그룹 및 규칙 관리 필요보안 그룹 및 규칙 관리 필요
위의 한계들 때문에 더 좋은 설루션인 NAT Gateway가 존재하기 때문에 요즘에는 잘 사용하지 않는
기술이라고 합니다.
실습
이전포스팅에 썼던 자원들을 이어서 사용하도록 하겠습니다.
NAT Instance라 설정하고 AMI이미지에서 nat인스턴스 이미지를 찾도록 하겠습니다.
AMI검색하기에 들어가서 nat를 검색 > 커뮤니티 AMI 중 x86_64라고 명칭 된 것 중 최신버전으로 적용시켜 주겠습니다.
선택 이후 키페어설정을 하는 이전에 만들었던 키페어를 이어서 사용하겠습니다.
네트워크 설정에서 편집에 들어가서 퍼블릭서브넷 A를 설정
nat-instance-sg라는 새로운 보안그룹을 생성해 주도록 하겠습니다.
규칙추가는
위처럼 http와 https에 10.0.0.0/16의 트래픽을 허용해 주었습니다.
그 후 인스턴스를 생성해 줍니다.
그 후 nat인스턴스선택 우클릭> 네트워킹> 소스/대상확인변경을 클릭 후 중지 시켜줍니다.
다시 프라이빗인스턴스로 이동하겠습니다.
배스천호스트인스턴스를 통해서 다시 내부로 이동후 명령어를 통해 인터넷통신이 되는지 확인합니다.
역시나 아직 통신이 이루어지지 않습니다.
이번엔 vpc > 라우팅테이블로 이동하겠습니다.
프라이빗서브넷라우팅테이블을 클릭하고 라우팅편집을 해줍니다.
대상은 0.0.0.0/0으로 설정 인스턴스 방금 만들었던 nat인스턴스로 설정하고 변경사항을 저장해 줍니다.
이 서브넷 내에서 라우팅 테이블에 연결된 모든 EC2 인스턴스에서 인터넷으로 트래픽을 보낼 경우
EC2 인스턴스를 통과하게 됩니다.
아직은 프라이빗인스턴스가 ping을 보내도 작동하지 않습니다. 설정을 마저 해주도록 하겠습니다.
nat인스턴스의 보안그룹으로 이동해서 인바운드규칙을 수정해 주겠습니다.
모든 ICMP-IPv4를 선택 10.0.0.0/16을 설정해 주고 규칙을 저장해 줍니다.
그 후 배스천호스트콘솔에서 프라이빗인스턴스로 이동해서
ping과 curl을 www.google.com에 입력해 보면 적상적으로 로 작동하는 것을 확인가능합니다.
이상으로 nat인스턴스를 프라이빗인스턴스의 통신 포스팅을 마치도록 하겠습니다.
감사합니다.
'AWS > VPC' 카테고리의 다른 글
AWS-VPC(Virtual Private Cloud) (0) | 2024.07.25 |
---|---|
VPC-NAT Gateway (2) | 2024.07.24 |
PrivateVPC-Bastion Host (0) | 2024.07.23 |