AWS Private Subnet내의 EC2 접속 & NAT Gateway


나만의 작고 귀여운 프라이빗 서브넷을 만들어보자. 물논 밖으로 나가려면 대문을 거쳐가야 한다.

프라이빗 서브넷 생성하기

실습으로 진행 할 아키텍쳐의 구조도

VPC내에 Private 서브넷을 만들면 별도로 라우팅 테이블이 생성된다.
하지만 이 라우팅 테이블은 외부와 연결되지 않기 때문에
인터넷 연결을 하려면, 별도의 NAT 게이트 웨이가 필요하다.
(프라이빗 서브넷 내의 EC2는 퍼블릭 IP 할당도 되지 않는다!)

Private 서브넷의 라우팅 테이블을 NAT 게이트 웨이와 연결 시켜 보자.

프라이빗 서브넷 생성! CIDR 블록 정보 주의
퍼블릭과 서브넷 생성 방법은 다르지만, 프라이빗 과 퍼블릭 구별을 해주기 위해서 (서브넷 마스크 ❗)
CIDR 블록을 10.0.1.0/24 로 설정해주는 걸 잊지 말자

NAT 게이트 웨이 생성

NAT 게이트 웨이 생성할 때 유의점!!
지금 우리의 목표가 프라이빗 서브넷을 외부 인터넷 망과 연결하는 것이기 때문에,
NAT Gateway 를 생성할 때, 왠지 프라이빗 서브넷 내에 만들어야 할 것 같은 기분이 드는데,
절대 그렇지 않고 퍼블릭 Subnet 안에 만들어야 한다!!

Private -> Routing Table -> NATGateway -> InternetGateway -> Internet

우리가 원하는 인터넷 통신의 경로가 이렇기에,
Private 서브넷의 라우팅 테이블 까지가 Private의 영역,
NATGateway 부터가 퍼블릭 서브넷의 영역이라고 이해해두면 좋을 것 같다.

그 뒤 NAT Gateway의 탄력적 IP도 할당받아주고, 생성!

(Attention) NATGateway는 생성하는데 시간이 좀 걸린다. 허리를 한 번 피고 오자.)

프라이빗 라우팅 테이블 생성

VPC내에 라우팅 테이블을 만들어 준다

그 뒤 서브넷 연결 편집 버튼을 클릭!

방금 만든 Private Subnet으로 연결을 해준다

프라이빗 서브넷의 라우팅 테이블을 NAT Gateway와 연결

해주면 끝! ㅎㅎ 간단하쥬~?

검증

프라이빗 서브넷의 라우팅 테이블을 NAT Gateway와 연결

Private Subnet 내에 EC2 Instance를 생성한다.

EC2 생성 과정
생성한 VPC 내의 Private Subnet 으로 해주고,
퍼블릭 IP는 어짜피 작동하지 않으니 비활성화로 해준다.

그리고 중요하게 설정해야 하는 것이 있는데, 아래쪽에
사용자 데이터를 입력해 준다

이 칸에 사용자 데이터 (EC2를 생성할 때 사용할 명령어)를 다음과 같이 입력해 준다.

1
2
3
4
5
6
7
8
#!/bin/bash
(
echo "qwe123"
echo "qwe123"
) | passwd --stdin root
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config
service sshd restart

입력하면 이렇게 된다

그 이유는, 프라이빗 서브넷내의 EC2 인스턴스는 외부에서의 ssh 접근을 자동으로 차단하기 때문이다.
그래서 기본적으로 되어있는 비밀번호 로그인과, 루트 아이디로의 접근을 풀어주고
root 아이디의 비밀번호를 기본 세팅값 (qwe123)으로 만들어주는 값을 EC2가 생성될 때 입력해준 것이다.

(실제 프라이빗 서브넷은 이렇게 구성을 하면 절대 안됨! 보안에 허술)

Private 서브넷 내의 EC2 접근하기

Private 서브넷 내의 EC2 인스턴스에 접근 하려면,
먼저 Public 서브넷의 EC2 인스턴스에 ssh 키로 접근 후,
콘솔 내에서 ssh root@Private IP주소 로 입력하면 비밀번호를 입력하고 접근을 할 수 있게 된다.

Public EC2->Private EC2 접근하기! 주소를 복붙하면 편하다

프라이빗 서브넷내의 EC2에서 여러가지 검증 작업을 해보자. 잘된다!

짜잔!
프라이빗 서브넷 내의 EC2 자원에서 인터넷 연결까지를 해보았다!!

실습이 끝난 후, 자원을 삭제 하는 것도 잊지 말자 ! ㅎㅎ 시간이 곧 돈이니깐 ㅎㅎ
(지난달에 4만 5천원 요금 폭탄 맞은 사람 누구? 헤헿 나잖아)

삭제는? 설치의 역순 ㅎ


출처) Cloudnet@ 팀의 ANOS (AWS Network Online Study 2기 학습 내용) https://cloudneta.github.io/

댓글