AWS 실습-VPC와 중계서버 - Nat Gateway/Bastion

Shaun·2021년 10월 18일

AWS

목록 보기
9/13

Nat Gateway

=VPC Private subnet에 있는 aws 리소스가 인터넷으로 트래픽이 통할수 있도록 하는 서비스

  • 우리는 AZ 2a용과 AZ 2c용 두개를 만들것이다

  • Nat Gateway 그 영역에 대한 Nat Gateway 하기 때문에 다른 영역에 대해서는 기능을 할수 없다.

  • Nat Gateway 를 생성해보자. 이름을 입력해준뒤 우리는 가용영역 2a, 2c public 서브넷에 생성할 예정이니 서브넷은 public -2a /public 2c 를 설정 해준다.

  • 인터넷을 타고 나갈때는 공인 ip 를 타고 나가야하기떄문에 탄력적ip (Elastic ip) 를 사용한다

  • 2a 와 2c 영역에 각각 Nat Gateway 생성 완료

  • 라우팅 테이블 설정을 다시하번 해준다.

  • 2a/ private 용 서브넷만을 위한 라우팅으로 편집해준다.

  • 2c/private 서브넷 에 대한 라우팅 테이블 하나 또 생성해준다.

  • Nat Gateway 성공적으로 생성 완료!

  • priavte 라우팅 테이블 두개나눈이유는 특정한 가용영역에 서비스 장애가 나면 한쪽은 서비스가 정상으로 되야대기떄문에 2개로 나눠서 트래픽을 흐르도록 구성하는것이다.

Bastion 및 Nat Gateway 통한 private 영역EC2의 외부 통신

Bastion 생성

  • public subnet 에 Bastion을 만들어보자. Bastion을 만들떄는 저번에 만들어뒀던 AMI 를 이용하여 인스턴스를 생성한다.

  • 새로만든 VPC + 위치는 2a public 서브넷

  • 기본 디폴트값 설정들은 생략한다.

  • Bastion 용 키페어 하나 만들어 주자. 만드는 기존 인스턴스 생성할때랑 똑같다.

  • Bastion용 키페어 하나만드는게 훨씬 보안이강화 되는 구성이 되기떄문에 하나만드는것을 추천한다!

Private subnet /2a EC2 만들기

  • Bastion을 다 만들었으면 이제는 private서브넷/2a에 있는 EC2를 만들어주자.

  • 만드는 방법은 기존 EC2만드는 방법과 동일하고 서브넷과 VPC설정만 주의 해주자

  • Private subnet /2a EC2 용 키페어를 하나 새로 만들어주자!

  • putty 를 이용해 Bastion 키페어 pem을 -> ppk(개인키)로 변환작업

  • 웹서버용 private서브넷에 있는 EC2의 pem -> ppk도 변환시켜준다.

Bastion 로그인

  • putty 로 Bastion 로그인을 해보자. putty Generater 로 호스트네임은 Bastion ip주소를 넣고 비밀번호는 준비해둔 Bastion ppk 를 넣어준다.

  • 아직 이상태는 접속만 한상태이고 로그인은 하지 않은 상태이다.

  • 명령어 sudo vi 파일명(key pair name) 입력해준다.(private EC2의 키페어이름)

  • 이 상태에서 엔터를 치면 리룩스 편집기 창이 뜬다.

  • i를 눌러 insert모드로 바꾸고 pem키(EC2) 메모장으로 읽어드린값 을 붙여넣는다(마우스 오른쪽)

  • (스페이스바 공간 절대안됌) esc 누르면 insert모드가 없어지고 저장(=쉬프트 : + wq)

  • 이 장착된(?) pem키를 가지고 private EC2 에 연결을 해보자 . 명령은 ssh 로 할것이다.
  • ssh -i seoul-lab-web-srv.pem(pem키값) ec2-user@private/ec2 프라이빗ip값

  • ssh -i pem이름 + ec2-user@private/EC2의 프라이빗IP값

  • 비밀번호(ppk) 는 먼저 등록(?) 햇으니 Hostname(ip값) 을 입력 해주는것 같다...?

  • SSH 암호화 키에대한 부분이다. 여기서 YES를 눌러주면...

  • Private subnet /2a EC2 연결 성공

웹서버 테스트(EC2 연결 성공 상태)

  • 연결된 EC2로 웹서버로 잘 나가는지 테스트해봤다

  • 연결성공뒤 웹으로 통신이 되는지 안되는지 확인 = 명령어 = ping google.co.kr

  • 시도를 해보면 웹으로 연결되지 않았다 그이유는 private routing 을 두개 만들었는데 Nat Gateway를 타고 나가라는 routing 이 추가되지 않았기 때문이다

-> 웹으로 나갈때는 Nat Gateway를 타고나가라는 route를 추가해야함

  • 이유를 찾아보니 내부 ip 라우팅 테이블만 추가되있다. 다른 라우팅 테이블도 추가해주자!

  • Private EC2 에서 Nat Gateway을 통해나간다 라우팅 설정

  • 라우팅 설정후 다시 시도해본 결과 성공!

  • 2c영역(다른 private subnet 영역)도 라우팅 편집을 해주자 똑같 Nat Gateway 를 통해 빠져 나갈수 있도록..

=>Nat Gateway private 서브넷에잇는 aws 리소스가 웹으로 통신하러 나갈떄에 대한 연동되는 부분!

=> Bastion 을 통해 private ec2에 접속하고 private ec2 가 외부의 웹으로 통신할떄 테스트 진행부분이였다

-> 아직은 익숙하지 않아 어렵지만 배우면 배울수록 재밌는것 같다. 이러한 기능들을 사용해 프로젝트를 진행하고 서비스할 생각을 하니 정말 흥미롭지 않을수가 없다. 하루 빨리 더 많은 기술들을 배워보고 싶고 또 적용해 보고싶다!

profile
호주쉐프에서 개발자까지..

0개의 댓글