Bastion Hosts
- VPC에 공용 서브넷과 사설 서브넷이 있고 사설 서브넷에 인스턴스를 생성하고 SSH를 할 수 있을 때,
새로운 인스턴스를 생성하고 사설 서브넷을 만들 경우
인터넷 Gateway에 사설 서브넷을 제공하려면 EC2 인스턴스를 실제로 만들어서 공개해야 하므로 SSH를 할 수 없음
이러한 경우, 인스턴스를 사설 서브넷에 연결하기 위해 Bastion 호스트를 이용 - Bastion 호소트는 인터넷에서 사설 EC2 인스턴스로 SSH를 하는 방법을 뜻함
공용 서브넷에 위치하여 그 공용 서브넷이 다른 모든 사설 서브넷과 연결됨 - Bastion 호스트는 공용 서브넷의 EC2 인스턴스로 통과할 수 있는 요새 호스트이며
이를 사용하기 위해서는 사설 서브넷 EC2 인스턴스의 보안 그룹 규칙을 수정해야 함
그 후 사용자가 직접 공용 서브넷 Bastion 호스트인 EC2 인스턴스에 SSH 하도록 수정하고
Bastion 호스트에서 사설 서브넷의 EC2 인스턴스로 SSH를 하면 됨
이를 홉(hop)이라고 하며 Bastion 호스트를 통해 사설 서브넷으로 홉을 하는 것
(즉, 사용자 -> 공용 서브넷의 Bastion 호스트인 EC2 인스턴스로 SSH -> 사설 서브넷의 EC2 인스턴스로 SSH) - 사설 서브넷 안에 여러 EC2 인스턴스가 있어도 홉이 가능
- Bastion 호스트의 보안 그룹은 엄격해야 하며 모든 네트워크에 액세스해서 올바르게 작성해야 함
- EC2 인스턴스 보안 그룹을 올바르게 구성하여 Bastion 호스트로부터의 트래픽을 허용해야 함
<Bastion 호스트 실습>
- 사설 서브넷에 EC2 인스턴스 생성
앞에서 공용 서브넷에 생성한 EC2 인스턴스에 BastionHost라는 이름을 줄 수 있음
BastionHost에는 SSH 액세스를 할 수 있고 이를 통해 사설 서브넷의 EC2 인스턴스에 연결할 수 있으므로
이를 위해 사설 서브넷에 EC2 인스턴스를 생성
사설 서브넷에 EC2 인스턴스를 만들기 위해 DemoKeyPair라는 키 쌍을 생성하고 pem 형식으로 하여 파일을 생성
이를 통해 사설 서브넷의 인스턴스에 SSH 액세스를 편리하게 할 수 있음
앞에서 공용 서브넷에 EC2 인스턴스를 만든 것처럼 인스턴스를 생성하며 DemoVPC와 PrivateSubnetA를 선택
그리고 보안 그룹에서 PrivateSG라고 입력한 후 포트 22에 SSH 하도록 설정하고
BastionHost에서 SSH를 허용하도록 설정하기 위해 이전에 공용 서브넷을 생성하며 생성했던 보안 그룹을 선택
마지막으로 방금 생성한 DemoKeyPair를 할당하고 인스턴스를 시작
생성된 EC2를 확인해보면 사설 서브넷에 위치하므로 EC2 인스턴스로 연결할 수 없으며
이를 위해 인터넷 게이트웨이의 라우팅 테이블을 수정해야하는데 이렇게 할 경우 서브넷에 공개가 되므로
BastionHost를 통해 SSH 액세스를 해야 함
- BastionHost 연결
BastionHost에서 Connect을 클릭하고 EC2 인스턴스를 연결하면 BastionHost로 SSH 액세스를 하게 됨
그리고 이 BastionHost에서 사설 인스턴스에 연결하도록 해야 함
사설 인스턴스에 IPv4 주소가 있으므로 해당 사설 IP를 입력하고 키 쌍을 지정을 위해 다운로드한 키 쌍 내용을 vi 편집기로 붙임
그리고 DemoKeyPair 파일을 확인하고 이에 대한 권한을 변경
그리고 다시 SSH를 하면 사설 서브넷에 있는 Amazon Linux 2 AMI에 SSH 액세스를 실행하게 되어
10-0-0-72에서 10-0-22-82 사설 호스트로 이동를 보게 되면 BastionHost에서 사설 호스트로 이동하게 됨을 알 수 있음
이 때 Google에 핑을 시도해보면 사설 EC2 인스턴스는 인터넷으로의 액세스가 없어 데이터를 받지 못하게 되므로
NAT 인스턴스를 통해 사설 인스턴스에 인터넷 액세스를 가능하도록 하는 문제 해결이 필요함
'Cloud > AWS' 카테고리의 다른 글
[SAA] NAT Gateway (0) | 2022.04.27 |
---|---|
[SAA] NAT 인스턴스 (0) | 2022.04.26 |
[SAA] 인터넷 Gateway 및 라우팅 테이블 (0) | 2022.04.26 |
[SAA] 서브넷 개요 (0) | 2022.04.26 |
[SAA] VPC 개요 (0) | 2022.04.26 |