이 페이지 쓰는 법

연결 매트릭스

네트워크 연결 옵션 매트릭스 행에는 연결 대상 세 가지를, 열에는 요구 세 가지를 놓고 각 칸의 답이 되는 서비스를 고정한 행렬입니다. 첫 행은 VPC 와 VPC 를 잇는 경우입니다. 전이 라우팅이 필요하면 AWS Transit Gateway 이고, 피어링은 비전이이므로 답이 아닙니다. 둘만 단순하게 이으면 되면 VPC 피어링이며, 두 방법 모두 트래픽이 AWS 백본에만 머물러 인터넷을 지나지 않습니다. 둘째 행은 VPC 와 온프레미스를 잇는 경우입니다. 전이 라우팅이 필요하면 Transit Gateway 에 Direct Connect 나 VPN 을 붙이고, 대역폭과 일관된 지연이 요구되면 AWS Direct Connect 전용 회선이며, 인터넷을 지나면 안 되는 요구도 Direct Connect 의 프라이빗 가상 인터페이스가 답입니다. Site-to-Site VPN 은 인터넷을 경유하므로 이 요구를 만족하지 않습니다. 셋째 행은 VPC 와 AWS 서비스를 잇는 경우입니다. 엔드포인트에는 전이 라우팅 개념이 없어 해당 없음이고, Amazon S3 와 DynamoDB 는 라우팅 테이블에 붙는 게이트웨이 엔드포인트로 추가 요금 없이 닿으며, 그 밖의 서비스는 서브넷 안에 ENI 를 만드는 인터페이스 엔드포인트, 즉 PrivateLink 로 닿습니다. 연결 대상 요구 전이 라우팅이 필요하다 대역폭과 일관된 지연이 요구된다 인터넷을 경유하면 안 된다 VPC 와 VPC 같은 계정 · 다른 계정 Transit Gateway 허브가 전이 라우팅 피어링은 비전이 VPC 피어링 둘만 이을 때 단순 중간 홉이 없음 피어링 · TGW 둘 다 AWS 백본만 인터넷을 안 지남 VPC 와 온프레미스 하이브리드 구성 TGW + DX 또는 VPN 온프레미스도 허브에 라우팅을 한 곳에서 Direct Connect 전용 회선 일관된 지연 Direct Connect 프라이빗 VIF VPN 은 인터넷 경유 VPC 와 AWS 서비스 S3 · DynamoDB · 그 외 해당 없음 엔드포인트에는 전이 개념이 없습니다 게이트웨이 엔드포인트 S3 · DynamoDB 전용 추가 요금 없음 인터페이스 엔드포인트 PrivateLink · ENI 프라이빗 DNS 가로채기 인터넷 비경유 한정어는 VPC 엔드포인트나 Direct Connect 프라이빗 VIF 를 지목합니다 전이 라우팅이 보이면 VPC 피어링이 아니라 Transit Gateway 입니다
네트워크 연결 옵션 매트릭스 — 연결 대상(VPC와 VPC · VPC와 온프레미스 · VPC와 AWS 서비스)을 한 축에, 요구(전이 라우팅 · 대역폭 · 인터넷 비경유)를 다른 축에 놓고 각 칸의 답이 되는 서비스를 고정합니다
연결 대상과 요구의 조합에 대응하는 서비스
연결 대상 단순 연결 전이 라우팅 · 다수 연결 인터넷을 거치지 않기 일부만 노출
VPC와 VPC (같은 계정 · 다른 계정) VPC 피어링 AWS Transit Gateway 둘 다 AWS 네트워크 안입니다 AWS PrivateLink — 서비스 하나만 노출합니다
VPC와 온프레미스 AWS Site-to-Site VPN Transit Gateway에 VPN이나 Direct Connect를 붙입니다 AWS Direct Connect Direct Connect 위의 프라이빗 가상 인터페이스
VPC와 AWS 서비스 인터넷 게이트웨이 또는 NAT 게이트웨이 경유 해당 없음 VPC 엔드포인트 — S3·DynamoDB는 게이트웨이, 나머지는 인터페이스 엔드포인트 정책으로 통과 범위를 좁힙니다
개별 사용자 단말과 VPC AWS Client VPN 해당 없음 Client VPN 자체가 암호화 터널입니다 인증 그룹별 접근 규칙
프라이빗 서브넷과 인터넷 (나가기만) NAT 게이트웨이 해당 없음 목적지가 AWS 서비스면 VPC 엔드포인트로 바꿉니다 해당 없음
여러 계정이 같은 서브넷 사용 AWS Resource Access Manager로 서브넷 공유 해당 없음 해당 없음 공유할 서브넷만 선택합니다

VPC와 VPC를 잇는 세 가지

VPC 피어링 · AWS Transit Gateway · AWS PrivateLink의 성격 비교
항목 VPC 피어링 AWS Transit Gateway AWS PrivateLink
연결 모델 일대일 허브와 스포크 서비스 제공자와 소비자
노출 범위 양쪽 네트워크 전체 연결된 네트워크 전체 서비스 엔드포인트 하나
전이 라우팅 불가 가능 해당 없음 — 라우팅이 아니라 서비스 접근입니다
CIDR 중복 허용되지 않습니다 허용되지 않습니다 겹쳐도 됩니다 — 사설 IP 하나로 접근하기 때문입니다
연결 수가 늘어날 때 조합이 급격히 늘어납니다 허브에 붙이기만 하면 됩니다 소비자마다 엔드포인트를 만듭니다
리전 리전 간 피어링이 가능합니다 게이트웨이끼리 피어링해 리전을 넘습니다 리전 안에서 씁니다
고르는 신호 "두 VPC만 잇는다", "간단하게" "수십 개 VPC", "온프레미스까지 한곳에서" "우리 서비스만 다른 계정에 제공", "CIDR이 겹친다"

VPC와 온프레미스를 잇는 세 가지

Site-to-Site VPN · Direct Connect · Client VPN의 성격 비교
항목 AWS Site-to-Site VPN AWS Direct Connect AWS Client VPN
연결 주체 사이트(데이터센터·사무실) 사이트 개별 사용자 단말
전송 매체 인터넷 위의 IPsec 터널 전용 물리 회선 인터넷 위의 터널
지연의 일관성 인터넷 상태에 따라 변합니다 일관됩니다 인터넷 상태에 따라 변합니다
구축 시간 짧습니다 깁니다 — 회선 신청과 설치가 필요합니다 짧습니다
암호화 기본으로 암호화됩니다 기본은 암호화되지 않습니다 — 필요하면 위에 VPN을 얹습니다 기본으로 암호화됩니다
대표 조합 Direct Connect의 백업 경로 Transit Gateway에 붙여 여러 VPC와 잇습니다 재택 근무자의 프라이빗 리소스 접근
고르는 신호 "빨리 연결", "비용을 낮게", "백업 회선" "일관된 지연", "대역폭 보장", "인터넷을 거치면 안 된다" "원격 근무자", "개인 노트북에서"

VPC와 AWS 서비스 — 엔드포인트 선택

AWS 서비스로 향하는 경로 네 가지의 비교
경로 인터넷 경유 필요한 구성 과금 축
퍼블릭 서브넷 + 인터넷 게이트웨이 경유합니다 퍼블릭 IP와 인터넷 게이트웨이 경로 인터넷 송신 데이터 전송
프라이빗 서브넷 + NAT 게이트웨이 경유합니다 가용 영역마다 NAT 게이트웨이 가동 시간 + 처리 데이터 + 송신
게이트웨이 엔드포인트 경유하지 않습니다 라우팅 테이블에 엔드포인트 경로 추가 요금 없음
인터페이스 엔드포인트 경유하지 않습니다 서브넷의 ENI와 보안 그룹 가동 시간 + 처리 데이터

두 엔드포인트 유형의 속성별 상세 대조는 헷갈리는 쌍 비교에 있습니다. 여기서 기억할 한 줄은 "S3와 DynamoDB만 게이트웨이, 나머지는 인터페이스, 온프레미스에서 접근해야 하면 무조건 인터페이스"입니다.

라우팅

라우팅 테이블 동작의 규칙
규칙 내용
로컬 경로 VPC의 CIDR로 향하는 local 경로가 모든 라우팅 테이블에 기본으로 있으며 삭제할 수 없습니다. 그래서 같은 VPC 안의 서브넷끼리는 언제나 라우팅됩니다
가장 구체적인 경로 우선 목적지에 일치하는 경로가 여럿이면 접두사 길이가 가장 긴 경로가 이깁니다. 0.0.0.0/0보다 10.0.1.0/24가 먼저 적용됩니다
퍼블릭 서브넷의 정의 라우팅 테이블에 인터넷 게이트웨이로 향하는 경로가 있으면 퍼블릭 서브넷입니다. 이름이나 설정 항목이 아니라 경로가 정의입니다
서브넷과 라우팅 테이블 서브넷 하나는 라우팅 테이블 하나에만 연결됩니다. 명시하지 않으면 VPC의 기본 라우팅 테이블이 적용됩니다
NAT 게이트웨이의 이중화 NAT 게이트웨이는 지정한 서브넷의 가용 영역 안에서만 동작합니다. 가용 영역마다 하나씩 만들고 각 가용 영역의 프라이빗 라우팅 테이블이 자기 가용 영역의 NAT를 가리키게 합니다
게이트웨이 엔드포인트의 경로 접두사 목록(prefix list)을 목적지로 하는 경로가 라우팅 테이블에 추가됩니다. 그래서 게이트웨이 엔드포인트는 라우팅 테이블 단위로 적용됩니다
라우팅 경로의 대상(target)과 그 의미
대상 어떤 트래픽을 보내는가
local VPC 내부 — 삭제할 수 없습니다
인터넷 게이트웨이 퍼블릭 IP를 가진 리소스의 인터넷 양방향 통신
NAT 게이트웨이 프라이빗 서브넷의 아웃바운드 인터넷 통신
VPC 피어링 연결 피어링 상대 VPC의 CIDR
Transit Gateway 연결 허브에 붙은 다른 VPC와 온프레미스 네트워크
가상 프라이빗 게이트웨이 Site-to-Site VPN 또는 Direct Connect 너머의 온프레미스
게이트웨이 엔드포인트 (접두사 목록) Amazon S3와 Amazon DynamoDB
Gateway Load Balancer 엔드포인트 검사 어플라이언스로 우회시키는 트래픽

DNS

VPC의 DNS 관련 동작
항목 내용
VPC 리졸버 주소 VPC 네트워크 범위의 기준 주소에 2를 더한 주소입니다. 10.0.0.0/16이면 10.0.0.2입니다
enableDnsSupport VPC 안에서 DNS 해석 자체를 켜고 끕니다. 꺼져 있으면 리졸버 주소로 질의해도 응답하지 않습니다
enableDnsHostnames 퍼블릭 IP를 가진 인스턴스에 퍼블릭 DNS 호스트 이름을 부여할지 정합니다. 인터페이스 엔드포인트의 프라이빗 DNS를 쓰려면 두 속성이 모두 켜져 있어야 합니다
Route 53 프라이빗 호스팅 영역 VPC 안에서만 해석되는 도메인을 만듭니다. 여러 VPC에 연결할 수 있습니다
Route 53 Resolver 인바운드 엔드포인트 온프레미스에서 AWS 쪽 이름을 질의할 수 있게 합니다
Route 53 Resolver 아웃바운드 엔드포인트 VPC에서 온프레미스 DNS로 질의를 전달합니다

Route 53 라우팅 정책 여덟 가지

Amazon Route 53 라우팅 정책과 식별 멤버
정책 무엇을 기준으로 응답하는가 식별 멤버 고르는 신호
단순(Simple) 레코드 하나를 그대로 응답합니다 없음 분기 조건이 전혀 없을 때
가중치 기반(Weighted) 지정한 비율로 나눠 응답합니다 Weight "신규 버전에 10퍼센트만", 카나리 배포, A/B 테스트
지연 시간 기반(Latency) 질의자에게 지연이 가장 낮은 리전으로 보냅니다 Region "가장 빠른 리전으로", 다중 리전 배포의 성능
장애 조치(Failover) 주 대상이 비정상이면 보조로 보냅니다 Failover + 상태 확인 "리전 장애 시 전환", 액티브-패시브 재해 복구
지리 위치(Geolocation) 질의가 발생한 지역으로 판단합니다 GeoLocation "국가별로 다른 콘텐츠", 규정에 따른 지역 분리
지리 근접(Geoproximity) 질의 위치와 리소스의 위치를 함께 봅니다. 바이어스로 영역을 넓히거나 좁힙니다 GeoProximityLocation "특정 리소스로 트래픽을 더 끌어오고 싶다"
다중값 응답(Multivalue answer) 여러 레코드를 무작위에 가깝게 응답하며 상태 확인을 연동합니다 MultiValueAnswer "로드 밸런서 없이 여러 대상에 분산"
IP 기반(IP-based) 질의자의 IP가 속한 CIDR 컬렉션으로 판단합니다 CidrRoutingConfig "특정 인터넷 서비스 제공자 사용자를 지정 경로로"

트래픽 통제 계층

어느 계층에서 무엇을 막는가
통제 수단 적용 지점 허용·거부 이 수단이 답이 되는 요구
보안 그룹 인스턴스(ENI) 허용만 · 상태 저장 "웹 계층에서만 앱 계층에 접근"
네트워크 ACL 서브넷 허용과 거부 · 상태 비저장 "특정 IP를 차단", 서브넷 공통 규칙
AWS Network Firewall VPC 경계 상태 저장 규칙 도메인 필터링, 침입 방지 규칙을 VPC 전체에
AWS WAF CloudFront · Application Load Balancer · API Gateway HTTP 요청 규칙 SQL 주입, 크로스 사이트 스크립팅, 속도 기반 차단
AWS Shield 엣지 디도스 완화 "대규모 트래픽 공격"
Gateway Load Balancer 트래픽 경로 중간 어플라이언스 삽입 서드파티 방화벽·침입 탐지 장비를 통과시켜야 할 때
엔드포인트 정책 VPC 엔드포인트 통과 범위 제한 "이 엔드포인트로는 특정 버킷만"

포트와 프로토콜

보안 그룹 규칙에서 자주 쓰는 포트
프로토콜 · 서비스 포트 비고
HTTP 80 (TCP) 프로토콜 표준 포트
HTTPS 443 (TCP) 프로토콜 표준 포트
SSH · SFTP 22 (TCP) 프로토콜 표준 포트. 리눅스 인스턴스 접속
RDP 3389 (TCP) 프로토콜 표준 포트. Windows 인스턴스 접속
DNS 53 (TCP · UDP) 프로토콜 표준 포트
NFS 2049 (TCP) 프로토콜 표준 포트. Amazon EFS 마운트
SMB 445 (TCP) 프로토콜 표준 포트. FSx for Windows File Server
RDS for MySQL · MariaDB 3306 Amazon RDS 기본값
RDS for PostgreSQL 5432 Amazon RDS 기본값
RDS for Oracle 1521 Amazon RDS 기본값
RDS for Microsoft SQL Server 1433 Amazon RDS 기본값
RDS for Db2 50000 Amazon RDS 기본값
Amazon RDS 포트 유효 범위 1150 ~ 65535 Amazon RDS API 문서의 명시 범위
GENEVE 6081 Gateway Load Balancer가 쓰는 프로토콜과 포트
임시 포트 범위 32768-65535 VPC 사용 설명서의 예제 네트워크 ACL이 쓰는 범위. 실제 범위는 클라이언트 운영체제가 정합니다
네트워크 ACL 규칙 번호 1 ~ 32766 낮은 번호부터 평가합니다

막히는 지점 점검 순서

"연결이 안 된다" 유형의 시나리오는 아래 순서로 좁히면 거의 언제나 답이 나옵니다. 위에서부터 하나씩 확인하고, 처음으로 어긋나는 지점이 원인입니다.

연결 실패 시나리오의 점검 순서
순서 확인할 것 전형적인 증상
1 라우팅 테이블에 목적지로 향하는 경로가 있는가 프라이빗 서브넷에 NAT 경로가 없어 아웃바운드가 전부 실패
2 보안 그룹 인바운드가 허용하는가 포트나 출발지가 빠져 있어 특정 계층만 실패
3 네트워크 ACL의 양방향이 허용하는가 아웃바운드에 임시 포트 범위가 없어 요청은 가는데 응답이 안 옴
4 이름이 해석되는가 enableDnsSupport나 enableDnsHostnames가 꺼져 인터페이스 엔드포인트의 프라이빗 DNS가 동작하지 않음
5 CIDR이 겹치지 않는가 피어링이나 온프레미스 연결이 애초에 성립하지 않음
6 전이 라우팅을 기대하고 있지 않은가 피어링 두 개를 거쳐 도달하려다 실패
7 가용 영역 단위 구성 요소가 자기 가용 영역을 가리키는가 한 가용 영역의 NAT 게이트웨이가 죽자 다른 가용 영역까지 중단

이어서 볼 곳

공식 문서 출처