본문 바로가기

AWS

[AWS] Bastion host 와 NAT Gateway를 통한 Private EC2 인스터스의 외부 통신 구성

[요약]

1. Private subnet에 EC2 생성

2. Public subnet의 EC2를 통해 Private subnet의 EC2에 접속 (+ key pair 생성)

3. NAT Gateway 생성

NAT(네트워크 주소 변환) 서비스란 ? 프라이빗 서브넷의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서 이러한 인스턴스와의 연결을 시작할 수 없도록 함

- NAT 게이트웨이는 인스턴스의 소스 IP 주소를 NAT 게이트웨이 IP 주소로 바꿉니다.

- 인스턴스에 응답 트래픽을 전송할 때 NAT 디바이스는 주소를 원래 소스 IP 주소로 변환합니다.

4. Route table 설정

5. Private subnet의 EC2의 외부 통신 테스트

 

Private subnet에 EC2 생성

  • 이름 및 태그 : private-ec2-a1
  • 애플리케이션 및 OS 이미지 : 내 AMI
  • 인스턴스 유형 : t2.micro
  • 키 페어 : private key 생성
  • 네트워크 설정
    - lav-vpc
    - private-subnet-a1
    - 퍼블릭 IP 자동 할당 - 비활성화
    - 보안 그룹
    - 인바운드 보안 그룹 규칙 : ssh, HTTP, HTTPS AnyWhere

Public EC2를 통해 Private EC2 접속

: public ec2 a1은 private ec2 a1에 접속하기 위한 중개서버 역할을 하며 이를 bastion 서버라고 말함

public ec2에 vi 편집기를 이용하여 private key 복사

private key 복사

public ec2에서 private ec2 접속

  • "ssh -i ec2-private-seoul.pem ec2-user@10.1.3.32"

ec2 접속

현재 외부와 통신이 안되는 상태 —> NAT Gateway를 통해 통신가능하게 만들 수 있음

ping google.com 결과

NAT Gateway 생성

VPC>NAT 게이트웨이> NAT 게이트웨이 생성

  • 이름 : nat-gw-a1
  • 서브넷 : public-subnet-a1
  • 연결 유형 : 퍼블릭
  • 탄력적 IP 할당 ID : 자동 할당

NAT 게이트웨이 생성

Route Table 설정

private subnet 라우트 테이블에 NAT gateway 등록

: private subnet의 라우트테이블에 NAT gateway를 경로에 등록 하여 private-ec2인스턴스가 외부와 통신할 수 있도록 만듬

VPC > 라우트 테이블 > private-subnet-a1-rt 선택 > 라우트 메뉴 > edit 라우트 선택

라우팅 편집
private subnet 라우팅 테이블에 nat gateway 추가 완료

Private subnet의 EC2의 외부 통신 테스트

결과 : private-ec2-a1 이 외부와 통신 가능

ping google.com

[참고 강의]

[인프런] 스스로 구축하는 AWS 클라우드 인프라 - 기본편