이번 프로젝트를 진행하면서 퍼블릭 서브넷에 들어가도 되는 부분들은 퍼블릭서브넷에서 EC2를 생성하였고
데이터를 다루는 등 민감한 정보가 담긴 부분은 프라이빗 서브넷에서 EC2를 생성하였다.
여기서 문제는 퍼블릭 서브넷에 연결하는 방법은 AWS의 EC2를 선택해서 연결을 누르고 주소를 복사 붙여넣기 하면되지만
프라이빗 서브넷에서 이와같이 하려고 하면 에러가 나며 접속이 안될 것이다.
이를 위해서는 bastion host 라는게 필요하다

Bastoin Host란?
Bastion Host란, 외부에서 내부 네트워크에 접근할 수 있는 유일한 방법인 접근점이다. 보안성이 높은 인프라와 외부 인터넷을 연결하는 중계 서버로 작동하며, 모든 인바운드 트래픽은 Bastion Host를 통과해야 내부 네트워크로 들어갈 수 있다.
이때 문제가 있는데
바로 퍼블릭서브넷에 접속할때는 로컬에 있는 pem 파이 경로를 입력하면 되지만
프라이빗 서브넷에 접속하려면 퍼블릭 서브넷에 접속한 후 여기서 프라이빗 서브넷에 접속하는건데
이 퍼블릭 서브넷에 있는 EC2 에는 pem 파일이 없다!
이를 해결하기 위한 해결책을 정리하고자 한다.
먼저
1. macOS 터미널에서 SSH Agent 실행
eval "$(ssh-agent -s)"
2. 로컬에 있는 PEM 파일 등록
ssh-add ~/Downloads/mykey.pem
3. Bastion(퍼블릭 EC2)로 SSH 접속할 때 Agent Forwarding 옵션 추가(여기서 퍼블릭서브넷 EC2에 접속하게됨)
ssh -A -i ~/Downloads/mykey.pem ubuntu@<퍼블릭_EC2_공인IP>
4. Bastion 내부에서 Private EC2로 접속
ssh ubuntu@<프라이빗_EC2_프라이빗IP>
이렇게 하면 프라이빗 서브넷에 있는 EC2에 접속하기 성공!

'AWS' 카테고리의 다른 글
| [RDS] private 서브넷에 둔 RDS SSH터널링을 통해 Dbeaver에서 연결하는 방법 (1) | 2025.09.29 |
|---|