
이번 포스팅에서는 AWS 퍼블릭 클라우드 환경에서 Bastion Server를 생성하고, Mac 환경에서 VSCode SSH Remote를 활용해 서버에 접속하는 과정을 단계별로 설명합니다. 차근차근 따라가며 이해하는 시간을 가져봅시다.
Bastion Server는 AWS와 같은 클라우드 환경에서 프라이빗 서브넷의 리소스에 대한 보안 관리를 강화하기 위해 사용하는 중계 서버입니다.
일반적으로 Bastion Server는 퍼블릭 서브넷에 배치되어 외부에서 접근 가능한 유일한 서버로 동작하며, 이를 통해 프라이빗 서브넷에 있는 리소스에 SSH를 통해 안전하게 접속할 수 있습니다.
AWS Management Console에서 EC2 서비스로 이동합니다.
인스턴스 시작 버튼을 클릭하여 새 인스턴스를 생성합니다.
인스턴스 설정:
이름: bastion-server-01
AMI: Amazon Linux 2023

인스턴스 유형: t3.micro

키 페어: 새 키 페어 생성
이름: bastion-key
.pem 파일을 로컬에 다운로드하여 안전하게 보관합니다.

다운로드 된 pem키 잘 보관하기! (절대 삭제/수정 X)

네트워크:
vpc-main-networksubnet-public-a편집 클릭
설정 완료 모습 
보안 그룹:
segp-bastion-access

설정 완료 후 인스턴스 시작을 클릭합니다.

EC2 인스턴스 생성: 왜 필요한가?
AWS에서 Bastion Server는 EC2 인스턴스로 생성됩니다.
EC2 인스턴스는 AWS에서 가상 서버를 제공하는 서비스로, Bastion Server로 사용될 인스턴스를 생성하는 것이 첫 단계입니다.
이 단계의 주요 목적:
보안 그룹 생성: 왜 필요한가?
보안 그룹(Security Group)은 AWS에서 가상 방화벽 역할을 수행하며, 인스턴스의 네트워크 트래픽을 제어합니다. Bastion Server를 안전하게 사용하려면 적절한 보안 규칙을 설정하여 외부로부터의 불필요한 접근을 차단해야 합니다.
이 단계의 주요 목적:
추가 설명:
bastion-server-01을 선택 → 퍼블릭 IPv4 복사.네트워크 및 보안 그룹 설정: 왜 필요한가?
네트워크 설정은 Bastion Server가 올바르게 동작하기 위한 핵심입니다.
보안 그룹(Security Group)은 AWS의 방화벽 역할을 하며, Bastion Server에 대한 네트워크 트래픽을 제어합니다.
이 단계의 주요 목적:
.pem 파일을 사용합니다.mkdir -p ~/.ssh
mv ~/Downloads/bastion-key.pem ~/.ssh/
chmod 400 ~/.ssh/bastion-key.pemKey Pair 생성 및 준비: 왜 필요한가?
AWS EC2에 접속하려면 인증을 위한 Key Pair가 필요합니다.
Key Pair는 프라이빗 키와 퍼블릭 키의 쌍으로 구성되며, 프라이빗 키는 로컬에 저장하여 SSH 접속 시 사용됩니다.
이 단계의 주요 목적:
터미널에서 SSH 설정 파일을 편집합니다:
vi ~/.ssh/config
다음 내용을 추가합니다:
Host bastion-server
HostName [Bastion 서버 퍼블릭 IPv4]
User ec2-user
IdentityFile ~/.ssh/bastion-key.pem
[Bastion 서버 퍼블릭 IPv4]에 복사한 퍼블릭 IP를 입력합니다.저장 후 종료합니다 (Ctrl + O → Enter → Ctrl + X).
VSCode 좌측 하단의 Remote Explorer 아이콘을 클릭합니다.
Remote - SSH: Connect to Host를 선택합니다.
bastion-server 입력 후 Enter를 누릅니다.

연결이 성공하면 Bastion Server의 터미널이 열립니다.

참고
https://velog.io/@maasj/Mac-AWS와-VS-Code-원격-접속-방법
혹시 다음과 같은 에러가 발생한다면?

다음과 같은 권한 설정 수행

// .pem 확장자의 key가 위치한 디렉토리로 이동 후 다음 명령어 수행
chmod 600 bastion-key.pem
참고: 에러 해결 및 보안 설정
.pem 파일과 같은 Key Pair의 권한 설정은 AWS에서 요구하는 기본 보안 정책을 준수하기 위해 필요합니다.
프라이빗 키 파일의 권한을 제한하지 않으면 SSH 접속이 거부될 수 있으므로, 반드시 설정해야 합니다.