AWS Private EC2 인터넷 연결방법

links
No value
status
ai response
project
false
area
false
resource
true
aliases
Private EC2 인터넷 연결과 NAT Gateway AWS Private EC2 Internet Access
tags
aws ec2 vpc networking tailscale
description
Private EC2에서 SSM은 되는데 인터넷이 안 되는 이유와 NAT Gateway의 역할 정리
created
2026-07-09T13:25:42
title
AWS Private EC2 인터넷 연결방법
updated
2026-07-09T13:54:15

Private EC2에서 SSM은 되는데 인터넷은 안 되는 이유

TL;DR

AWS에서 EC2가 인터넷을 사용하기 위해서는 인터넷으로 나가는(Egress) 경로가 반드시 필요하다.

SSM(Session Manager)은 AWS 서비스이므로 VPC Endpoint만 있으면 동작하지만, Tailscale·GitHub·YUM Repository 같은 일반 인터넷 서비스는 NAT Gateway 또는 Public IP가 필요하다.


인터넷 연결 방식

EC2가 인터넷과 통신하는 방법은 크게 두 가지이다.

flowchart LR

subgraph Public
A[EC2
Public IP] end subgraph Private B[EC2
Private IP] NAT[NAT Gateway] end IGW[Internet Gateway] Internet[(Internet)] A --> IGW B --> NAT NAT --> IGW IGW --> Internet

경우 1. Public IP가 있는 EC2

가장 단순한 구조이다.

Internet
    │
Internet Gateway
    │
Public Subnet
    │
EC2 (Public IP)

조건

장점

단점


경우 2. Private EC2 + NAT Gateway

운영 환경에서 가장 많이 사용하는 구조이다.

Internet
    │
Internet Gateway
    │
Public Subnet
    │
NAT Gateway
    │
Private Subnet
    │
EC2 (Private IP)

조건

장점

단점


경우 3. Private EC2 + NAT 없음

이번 PoC에서 처음 마주친 상황이다.

Internet
    │
Internet Gateway
    │
Public Subnet

Private Subnet
    │
EC2 (Private IP)

결과

예를 들어

curl https://tailscale.com
curl: (28) Failed to connect to tailscale.com port 443

와 같이 Timeout이 발생한다.


그런데 왜 Session Manager는 접속되는가?

이번 PoC에서 가장 헷갈렸던 부분.

SSM은 일반 인터넷을 사용하는 것이 아니라 AWS 내부 서비스를 사용한다.

구성은 다음과 같다.

flowchart LR

EC2 --> VPCE1[ssm Endpoint]
EC2 --> VPCE2[ssmmessages Endpoint]
EC2 --> VPCE3[ec2messages Endpoint]

VPCE1 --> AWS
VPCE2 --> AWS
VPCE3 --> AWS

필요한 Interface Endpoint

따라서

Private EC2
    │
VPC Endpoint
    │
AWS Systems Manager

구조가 가능하다.

인터넷 없이도 Session Manager는 동작한다.


왜 Tailscale은 안 되는가?

Tailscale은 AWS 서비스가 아니다.

설치 시

curl https://tailscale.com/install.sh

를 실행하면

EC2
    │
HTTPS 443
    ▼
tailscale.com

으로 접속해야 한다.

또한 설치 이후에도

등과 지속적으로 HTTPS 통신한다.

인터넷(Egress)이 반드시 필요하다.


이번 PoC에서 실제 원인

초기 구성

Private EC2

Public IP ❌
NAT Gateway ❌
VPC Endpoint(SSM) ⭕

가능

불가능


해결 방법

방법 1. NAT Gateway 추가

Private EC2
    │
NAT Gateway
    │
Internet

장점


방법 2. Public IP 부여

Private Subnet
    │
EC2 + Public IP

Internet Gateway가 연결된 Subnet이라면 인터넷 사용 가능.

PoC에서는 가장 간단한 해결책이다.


같은 Subnet인데 왜 어떤 EC2는 인터넷이 되었는가?

이번 환경에서는

Instance Public IP
racketime-api-dev2-ecs
curinginnos-iris-poc-subnet-router

둘 다 같은 Subnet이었다.

하지만

racketime-api-dev2-ecs

Public IPv4

가 존재했기 때문에 Internet Gateway를 통해 인터넷이 가능했다.

반면

curinginnos-iris-poc-subnet-router

는 Public IP가 없어서

0.0.0.0/0 -> Internet Gateway

Route가 있어도 인터넷을 사용할 수 없었다.

Internet Gateway는 Public IP가 있는 ENI만 인터넷 통신을 허용한다.


Session Manager 구축 시 체크리스트

IAM


Instance Metadata


Interface Endpoint

생성

확인


EC2 재부팅

IAM Role 또는 Endpoint를 생성 이후 붙였다면

Reboot Instance

를 한 번 수행하는 것이 좋다.

이번 PoC에서도 재부팅 후 SSM Agent가 정상 등록되었다.


운영 권장 구조

flowchart TB

Internet((Internet))

subgraph PublicSubnet
IGW[Internet Gateway]
NAT[NAT Gateway]
end

subgraph PrivateSubnet
Router[Subnet Router EC2]
API[racketime-api]
end

Router --> NAT
API --> NAT
NAT --> IGW
IGW --> Internet

특징


PoC 권장 구조

개발 환경에서는 다음 구성이 더 단순하다.

Subnet Router
    + Public IP
    + Session Manager

Security Group에서

만 해두면 외부 SSH 없이도 Session Manager를 사용할 수 있으며, Tailscale 설치 및 Control Plane 통신도 가능하다.

운영 전환 시에는

으로 변경하는 것을 권장한다.


핵심 정리

구성 인터넷 Session Manager Tailscale
Public IP
NAT Gateway
NAT 없음 + VPC Endpoint
NAT 없음 + Public IP 없음 ❌ (Endpoint 없으면)