퍼블릭 서브넷인데 EC2 SSH 접속이 안 된다면? 확인해야 할 4가지
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번 블로그에서는 퍼블릭 서브넷에 위치한 EC2 인스턴스임에도 SSH 접속이 되지 않는 경우, 확인해 보면 좋은 4가지 항목에 대해 정리해 보겠습니다.
문제 발생
EC2 인스턴스에 SSH 접속을 시도했더니 타임 아웃 에러가 발생했습니다.
ssh -i "xxxxxxxx.pem" ubuntu@xx.xx.x.xx
ssh: connect to host xx.xx.x.xx port 22: Operation timed out
문제 해결
먼저 인터넷 게이트웨이를 확인합니다.
인터넷 게이트웨이가 생성되어있고 VPC에 연결되어있음을 확인합니다.

인터넷 게이트웨이가 생성&VPC에 연결된 상태라면 EC2가 생성된 서브넷의 라우팅 테이블에서 인터넷 게이트웨이의 경로가 설정되어 있는지 확인합니다.

마지막으로 보안 그룹에서 접속하고자 하는 IP 주소를 허용하고 있는지 확인합니다.

기본적으로 여기까지 확인했다면 문제점을 발견했을 것입니다. 하지만 아직 문제가 없다면 다음 EC2 인스턴스에 퍼블릭 IP가 할당되어 있는지 확인합니다.
퍼블릭 IP가 할당되어 있지 않다면 퍼블릭 서브넷에 EC2 인스턴스를 배치하더라도 EC2 인스턴스에 접속할 수 없습니다.

해결 방법은 간단합니다.
EIP를 생성하고 EC2 인스턴스에 연결하면 퍼블릭 IP가 할당됩니다.

임시적으로 인터넷 게이트웨이를 생성하고 접속을 시도하는 환경이라면 EIP를 사용해서 접속을 시도하고, 작업이 완료된 후 EIP를 삭제한다면 할당된 퍼블릭 IP 또한 삭제되기 때문에 EIP를 활용하는 것이 좋습니다.
다시 SSH 접속을 시도해 보면, 성공적으로 EC2 인스턴스에 접속할 수 있는 것을 확인할 수 있습니다.
ssh -i "xxxxxxxx.pem" ubuntu@xx.xx.x.xx
Welcome to Ubuntu 24.04.4 LTS (GNU/Linux 6.17.0-1007-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Wed Mar 11 06:45:05 UTC 2026
System load: 0.0 Temperature: -0.1 C
Usage of /: 10.1% of 483.29GB Processes: 229
Memory usage: 0% Users logged in: 0
Swap usage: 0% IPv4 address for enp39s0: xx.xxx.xx.xx
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
=============================================================================
AMI Name: Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 24.04)
Supported EC2 instances: G4dn, G5, G6, Gr6, G6e, G7e, P4d, P4de, P5, P5e, P5en, P6-B200, P6-B300
NVIDIA driver version: 580.126.09
CUDA versions available: cuda-12.6 cuda-12.8 cuda-12.9 cuda-13.0
Default CUDA version is 12.9
Release notes: https://docs.aws.amazon.com/dlami/latest/devguide/appendix-ami-release-notes.html
AWS Deep Learning AMI Homepage: https://aws.amazon.com/machine-learning/amis/
Developer Guide and Release Notes: https://docs.aws.amazon.com/dlami/latest/devguide/what-is-dlami.html
Support: https://forums.aws.amazon.com/forum.jspa?forumID=263
For a fully managed experience, check out Amazon SageMaker at https://aws.amazon.com/sagemaker
=============================================================================
마무리
이번 블로그에서는 인터넷 게이트웨이가 연결된 퍼블릭 환경임에도 EC2 인스턴스에 SSH 접속이 되지 않는 경우를 확인해 보았습니다.
일반적으로 EC2 접속 문제가 발생하면 다음과 같은 항목을 먼저 확인하게 됩니다.
- 인터넷 게이트웨이(Internet Gateway) 연결 여부
- 서브넷의 라우팅 테이블(Route Table) 설정
- 보안 그룹(Security Group) 인바운드 규칙
하지만 위 설정이 모두 정상임에도 접속이 되지 않는다면 EC2 인스턴스에 퍼블릭 IP가 할당되어 있는지 확인하는 것도 중요한 포인트입니다.
퍼블릭 서브넷에 배치된 인스턴스라고 하더라도 퍼블릭 IP가 없다면 외부에서 직접 SSH 접속을 할 수 없습니다. 이런 경우에는 Elastic IP(EIP)를 할당하여 퍼블릭 IP를 연결하면 문제를 해결할 수 있습니다.
특히 테스트나 임시 작업 환경에서는 EIP를 할당하여 접속한 뒤 작업이 끝나면 EIP를 해제하는 방식으로 관리하면 보다 유연하게 사용할 수 있습니다.
EC2 접속 문제는 다양한 원인으로 발생할 수 있지만, 이번 사례처럼 퍼블릭 IP 할당 여부도 함께 확인한다면 보다 빠르게 문제를 해결할 수 있을 것입니다.









