-
AWS) Private Subnet 에서 NAT Gateway로 EC2 instance 관리 해보기 (+ Bastion Server)Cloud/AWS 2022. 9. 14. 14:14
실습 환경 : AWS Console (2022/9), Visual Studio Code
실습 목적 : NAT 게이트웨이와 Bastion server 활용하여 네트워크를 구성해본다.
Private Subnet 상에서 EC2 instance를 생성할 경우?
- Private Subnet에 위치한 AWS resource (EC2, RDS 등)은 직접적인 인터넷 접속이 불가능 하다.
- Private Subnet에 위치한 AWS resource는 외부로부터 직접 접근을 허용하지 않기 위해 구성한다.
Private Subnet 상에서 EC2 instance를 관리하는 방법?
- Private subnet에 위치한 AWS resource가 인터넷에 접속하여 사용하기 위해서는 NAT 게이트웨이 서비스를 사용한다.
NAT 게이트웨이 서비스란?
- private subnet이 인터넷과 연결을 수행할수 있게 해주는 서비스다.
- 통상적으로, private subnet에 위치한 AWS 리소스가 인터넷에 연결하여 사용할 때 활용하는 서비스이다.
- 인터넷과 단방향 통신만 수행하기 때문에 일반 client가 private subnet에 있는 AWS 리소스 접근은 불가능하다.
- NAT 게이트웨이 서비스 인스턴스는 public subnet에 위치해야 private subet에 접속할 수 있다.
- NAT 게이트웨이 서비스는 EIP (Elastic IP)를 사용한다.
Bastion Server 란?
- private subnet에 위치한 EC2 instance를 제어하는 목적으로 사용하는 EC2 instance
- public subnet에 위치한 bastion server를 통해 private subnet에 위치한 EC2 instance를 제어한다.
Private EC2 Instance 생성
EC2 메뉴 -> 인스턴스에서 인스턴스 시작 클릭 -> 이름 및 태그, 키페어, 네트워크 설정
[ 네트워크 설정 ]
- VPC
- 서브넷: private subnet 선택
- 퍼블릭 IP 자동 할당: 비활성화 선택
- 방화벽: 기존 보안 그룹 선택 -> ssh (22번포트)
Bastion Server 생성
EC2 메뉴 -> 인스턴스에서 인스턴스 시작 클릭 -> 이름 및 태그, 키페어, 네트워크 설정
[ 네트워크 설정 ]
- VPC
- 서브넷: public subnet 선택
- 퍼블릭 IP 자동 할당: 활성화 선택
- 방화벽: 기존 보안 그룹 선택 -> ssh (22번포트) ,web (80, 443번 포트)
EIP 생성
EC2 메뉴 -> 탄력적 IP에서 탄력적 IP 주소 할당 클릭 -> 태그 설정 -> 할당
NAT 게이트웨이 생성
VPC 메뉴 -> NAT 게이트웨이에서 NAT 게이트웨이 생성 클릭
[ NAT게이트웨이 생성 ]
- 이름
- 서브넷: public subnet 선택
- 연결 유형: 퍼블릭
- 탄력적 IP 할당 ID: 위에서 만든 EIP 선택
- 태그: Name 태그
- NAT 게이트웨이 생성
라우팅 테이블 생성 및 편집
VPC 메뉴 -> 라우팅 테이블에서 라우팅 테이블 생성 클릭
[ 라우팅 테이블 생성 ]
- 이름
- VPC
- 태그: Name 태그
- 라우팅 테이블 생성
라우팅 테이블에서 생성한 라우팅 테이블 선택 -> 라우팅 -> 라우팅 편집
[ 라우팅 편집 ]
- 라우팅 추가를 클릭하면 새로운 라우팅 편집 입력 창이 생성된다.
- 첫번째 대상: 0.0.0.0/0
- 두번째 대상: NAT 게이트웨이 -> 새로 생성한 NAT게이트웨이 선택
- 변경 사항 저장
Bastion Server를 통해 Private Subnet에 접속
visual studio code에서 bastion server에 연결 -> bastion server 홈 디렉토리에 키 파일을 드래그 앤 드롭으로 가져오기
key 파일 권한 변경 -> ssh 명령어로 private ec2 instance에 원격 접속
[ key 파일 권한 변경 ]
- chmod 400 [키 파일 이름]
[ ssh 명령어 ]
- ssh -i [키 파일 이름] [유저]@[private IP]
추가로 Bastion Server 생성시 보안그룹 규칙에서 내 IP 한정으로 지정하여 관리할 수 있다.
'Cloud > AWS' 카테고리의 다른 글
AWS) 보안그룹 (Security Group) 설정 해보기 (0) 2022.09.16 AWS) 네트워크 ACL(NACL) 설정 해보기 (0) 2022.09.15 AWS) EC2 instance를 Scale Up 해보기 (1) 2022.09.13 AWS) EC2 instance Template 생성 해보기 (0) 2022.09.11 AWS) EC2 instance AMI 생성 해보기 (0) 2022.09.08