AWS ECS로 서버를 운영하고자 하는 몇 번의 시도를 실패하고 차근차근 공부해야 할 필요성을 느꼈다.
일단 VPC부터 공부해보고자 한다.
VPN (Virtual Private Network)
- VPN: 가상사설망
- 인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성
- 공인 인터넷을 사이에 둔 사설망과 사설망이 사설 IP를 이용해 통신할 수 있도록 지원
VPC (Virtual Private Cloud)
- 기업이 공유 퍼블릭 클라우드 인프라에 프라이빗 클라우드와 같은 자체 컴퓨팅 환경을 구축할 수 있도록 제공하는 서비스
- VPC 별로 네트워크를 구성할 수 있고 각각의 VPC는 완전히 독립된 네트워크처럼 작동
Amazon VPC
- VPC에는 리전의 각 가용성 영역에 하나의 서브넷이 있고, 각 서브넷에는 EC2 인스턴스가 있고 VPC의 리소스와 인터넷 간의 통신을 허용하는 인터넷 게이트웨이가 있음
- 서브넷: VPC의 IP 주소 범위. 단일 가용 영역에 상주해야 함
- 라우팅 테이블: 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되는 위치를 결정
- 네트워크 요청이 발생하면 데이터를 라우터로 향함
- 데이터는 정의된 라우팅 테이블에 따라 작동
- 서브넷 A의 라우팅 테이블은 172.31.0.0/16 즉 VPC 안의 네트워크 범위를 갖는 네트워크 요청은 로컬에서 찾음
- 인터넷 게이트웨이: VPC를 다른 네트워크에 연결. 예를 들면, 인터넷 게이트웨이를 사용하여 VPC를 인터넷에 연결
- 서브넷 B의 라우팅 테이블은 0.0.0.0/0으로 정의되어 있음
- 모든 트레픽에 대하여 IGA(인터넷 게이트웨이)로 향하라는 뜻
- 목적지의 주소가 172.31.0.0/16에 매칭되지 않으면 IGA로 보냄
- 네트워크 ACL과 보안그룹: 방화벽과 같은 역할을 하며 인바운트 트래픽과 아웃바운드 트래픽 보안정책을 설정 가능
- 보안그룹은 Stateful한 방식으로 모든 트래픽을 차단하도록 기본설정 되어 있음
- 네트워크 ACL은 Stateless하게 모든 트래픽을 허용하도록 기본설정 되어 있음
- 서브넷 단위로 적용되며 리소스별로 설정 불가능. 보안그룹이 더 높은 우선순위를 가짐
- NAT 게이트웨이: 프라이빗 서브넷이 인터넷과 통신하기 위한 아웃바운드 인스턴스
- 퍼블릭 네트워크 상에서 동작하는 NAT 게이트웨이는 프라이빗 서브넷에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷 게이트웨이와 연결
- 엔드포인트: 인터넷 게이트웨이 또는 NAT 장치를 사용하지 않고 AWS 서비스에 비공개로 연결
VPC에 Public/Private Subnet 구성하기
기존 서비스들과의 충돌을 막기 위해 다른 Region(ap-northeast-1)에서 연습, default VPC 사용
0. 초기 네트워크 상태
- 이 상태에서 퍼블릿 서브넷 D와 프라이빗 서브넷 C를 만들고자 함
1. 라우팅테이블 설정
1-1. 퍼블릿 서브넷과 프라이빗 서브넷을 위한 라우팅 테이블을 각각 생성해준다.
1-2. 각각에 맞는 서브넷을 연결해준다.
1-3. 퍼블릭 라우팅 테이블에 인터넷 게이트웨이를 추가한다.
2. NAT 게이트웨이 구성
프라이빗 서브넷의 인스턴스에서 외부 서비스로 접근할 수 있도록 하기 위함
2-1. NAT 게이트웨이 생성
- 서브넷의 경우 퍼블릭 서브넷인 D를 선택
- 탄력적 IP를 할당한다.
2-2. 프라이빗 라우팅 테이블 편집
모든 패킷을 생성한 nat 게이트웨이로 보내도록 추가한다.
'AWS' 카테고리의 다른 글
ECS CD 적용 (0) | 2025.02.26 |
---|---|
AWS 로드밸런서와 https (0) | 2025.02.26 |
AWS ECS (0) | 2025.02.26 |
AWS 로드밸런서와 오토스케일링 그룹 (0) | 2025.02.24 |
AWS IAM 계정으로 배포하기 (0) | 2024.06.27 |