https://js990317.tistory.com/29
지난 실습때 Custom VPC 생성을 통해 퍼블릭 서브넷과 프라이빗 서브넷을 나누고 그안에 EC2까지 올려보는 실습을 했었습니다. 프라이빗 서브넷안에 생성한 EC2는 퍼블릭 주소를 받지 못하기 때문에 인터넷과 통신을 할 수 없는 상태입니다. 하지만, 프라이빗 서브넷 역시 DB서버의 업데이트 등 인터넷과의 통신이 필요할때가 존재합니다. 이때, 배스천 호스트 혹은 NAT 게이트웨이를 사용하여 퍼블릭 서브넷과 연결해주어야 하는데, 이 실습을 지금 해보려고 합니다.
그 전에 배스천 호스트와 NAT 게이트웨이의 정의에 대해 각각 설명해보려고 합니다.
1.NAT GateWay / Bastion Host가 뭔가요?
Nat GateWay란?
프라이빗 서브넷에서는 인터넷과 직접적인 통신을 할 수 없기 때문에 이어주는 하나의 다리 역할이 필요한데, Nat Gateway는 프라이빗 인스턴스가 외부의 인터넷과 통신하기 위한 통로라고 말할 수 있습니다.
Nat에도 Instance와 Gateway가 존재하는데, Nat Intance는 우리가 생각하는 특별한 AMI를 설치한 EC2이며, Nat Gateway는 AWS가 제공하는 서비스입니다.
Instance의 경우 특성에 맞게 종료되버리면 그 상태로 죽어버리지만, Nat Gateway는 서비스이기 때문에 죽지 않게 됩니다.
Bastion Host란?
외부에서 프라이빗 인스턴스에 접근하기 위한 인스턴스입니다. 프라이빗 환경에 들여다보고 싶은데 방법이 없습니다. 즉, 프라이빗 인스턴스와 인터넷을 이어주기 위한 대변인 같은 존재인데, 배스천 호스트는 하나의 인스턴스로 퍼블릭 서브넷에 위치해야 합니다.
Nat GateWay와 Bastion Host의 차이가 있나요?
둘 다 인터넷과 프라이빗 서브넷을 이어주는 대변인이라는 특징은 동일합니다. 하지만, Nat Gateway는 내부에서 외부로의 접속만 가능하며, 외부에서 Nat Gatway를 이용하여 접속하는 것은 허용하지 않습니다. 따라서, 인터넷을 접속하기 위한 프라이빗 서브넷만의 서비스를 Nat Gateway라고 볼 수 있습니다. 그렇다면 외부에서 프라이빗 서브넷으로는 영영 들어가지 못하는걸까요? 아닙니다. 이러한 역할을 해주는 대변인이 배스천 호스트입니다. 배스천 호스트는 퍼블릭 서브넷 안에 있는 배스천 호스트와 SSH 연결을 진행한 후, 프라이빗 서브넷 안에 있는 호스트에 SSH 연결을 하는 방식으로 프라이빗 서브넷에 접근할 수 있게 됩니다.
즉, Nat GateWay는 내부에서 외부로 통신하는 성격이라면 , Bastion Host는 외부에서 내부로 통신을 가능하게 하는 성격이라고 볼 수 있습니다.
1. Bastion Host 만들기
Bastion Host를 만들어주기 위해 EC2 를 하나 생성해줍니다. 인터넷의 통신이 가능해야 하기 때문에, 퍼블릭 서브넷을 사용해주었고, 보안그룹으로 모든 곳에서 ssh와 icmp를 받아주도록 인바운드를 설정해주었습니다.
기존에 만들어둔 프라이빗 서브넷 안에 있는 EC2와 통신하기 위해서는 프라이빗 인스턴스의 인바운드를 재설정 해주어야 합니다. 배스천 호스트의 트래픽만을 받아야 하기 때문에, 방금 배스천 호스트 인스턴스를 만들면서 지정해준 보안그룹에서의 트래픽만 받도록 설정해주어야 합니다.
만약, 기존 IPv4 CIDR 규칙에 a 참조된 그룹 ID을(를) 지정할 수 없습니다. 라는 문구가 뜬다면 인바운드 규칙을 제거했다가 다시 생성하면 오류가 해결됩니다.
배스천 호스트 EC2에 접속해 프라이빗 인스턴스에 핑을 준 결과 핑이 잘 가는 것을 알 수 있습니다.
실습을 통해, 인터넷에서 배스천 호스트 EC2로 접속하고 그 안에서 프라이빗 인스턴스로 접근할 수 있음을 알 수 있게 되었습니다.
이제 프라이빗 인스턴스로 ssh 접속을 해 mysql을 다운받아 인터넷 접속 되는지 확인해보겠습니다.
인터넷 접속이 되질 않는것을 알 수 있었고, 이를 이제 Nat Gateway로 내부에서 외부로 인터넷을 통신 가능하도록 해보겠습니다.
프라이빗 라우팅을 설정해줌으로써 10.0.0.0/16을 제외한 모든 트래픽은 Nat gatway로 가도록 설정해줍니다.
Nat Gateyway가 열린것을 볼 수 있고 이제 다시 프라이빗 인스턴스에서 인터넷 통신확인을 위해 패키지를 설치해보도록 합니다.
Nat Gateway로 인해 정상적으로 프라이빗 인스턴스에서 인터넷 통신이 가능한것을 볼 수 있습니다.
'Cloud' 카테고리의 다른 글
[VPC] 2. A-Z까지 커스텀 VPC 생성해보기 (0) | 2023.07.30 |
---|---|
[VPC] 1. A - Z까지 VPC의 개념 잡아보기 (0) | 2023.07.18 |
Aws EC2에서 Filezilla 연결하기 (0) | 2023.05.04 |
aws ec2 환경에서 Chrome,ChromeDriver,Selenium 설치하는법 (0) | 2023.05.04 |
AWS Lambda로 게시판 서버 API 만들어보기 ① (0) | 2023.04.26 |