반응형
https://jsonobject.tistory.com/540
VPC 개념 및 생성 전략
- VPC는 하나의 리전에 종속되는 개념으로 리전마다 최대 5개의 VPC를 생성할 수 있다.
- 보안과 관리 편의를 위해 애플리케이션 환경 단위(dev, qa, stage, prod)로 IAM 사용자 계정을 분리 생성한다.
- 마찬가지로 보안과 관리 편의를 위해 애플리케이션 환경 단위로 VPC를 분리 생성한다. 또한 각 환경과 무관한 management 전용 VPC를 생성한다. 여기에는 CI/CD, 로그 관제와 같은 시스템을 구성한다.
- 기본 생성되어 있는 VPC는 삭제한다.
- 환경 단위로 분리한 VPC 생성의 예는 아래와 같다.
- management: 10.0.0.0/16
- dev: 10.10.0.0/16
- qa: 10.20.0.0/16
- stage: 10.30.0.0/16
- prod: 10.40.0.0/16
- management와 각 격리된 환경 단위 VPC들은 피어링을 통해 서로 제한적으로 통신하도록 구성한다.
- 서로 다른 리전에 위치하여 격리된 프라이빗 VPC 간에라도 VPC 피어링 연결을 생성하면 마치 동일한 내부 네트워크에 있는 것처럼 취급할 수 있다. [관련 링크]
- 외부와 완전히 격리된 프라이빗 서브넷에 위치한 EC2 인스턴스가 존재할 경우, 동일한 VPC 내의 퍼블릭 서브넷을 SSH Agent로 경유하여 외부에서 SSH 접속이 가능하다. [관련 링크]
VPC 생성
- VPC 생성 방법은 아래와 같다.
Amazon VPC 콘솔 접속
→ 리전 선택
→ [VPN] 클릭
→ [VPN 생성] 클릭
# VPC 설정
→ 이름 태그: foobar-dev
→ IPv4 CIDR 블록: 10.10.0.0/16
→ [VPN 생성] 클릭
- VPC 개수는 리전 단위로 최대 5개로 제한된다. 그 이상 생성을 시도할 경우 The maximum number of VPCs has been reached. 오류가 발생한다.
인터넷 게이트웨이 생성
- 생성한 VPC가 인터넷과 통신 가능하게 하려면 그 접점이 되는 인터넷 게이트웨이를 생성해야 한다. 인터넷 게이트웨이는 VPC와 1:1로 맵핑되므로 생성한 VPC 개수 만큼 만들어야 한다. 생성 방법은 아래와 같다.
Amazon VPC 콘솔 접속
→ 리전 선택
→ [인터넷 게이트웨이] 클릭
→ [인터넷 게이트웨이 생성] 클릭
# 인터넷 게이트웨이 설정
→ 이름 태그: foobar-dev (입력)
→ [인터넷 게이트웨이 생성] 클릭
서브넷 개념 및 생성 전략
- 서브넷은 하나의 VPC를 다시 잘게 쪼개어 영역을 분리하는 개념이다. 서브넷은 크게 3개를 생성한다.
- 1차로 인터넷에 직접적으로 노출될 퍼블릭 티어(Public Tier)가 있다. 대표적으로 로드 밸런서가 여기에 위치한다.
- 2차로 인터넷으로의 직접 노출이 제한되는 프라이빗 애플리케이션 티어(Private Application Tier)가 있다. 실제 애플리케이션 인스턴스가 여기에 위치한다.
- 3차로 인터넷으로의 직접 노출이 제한되는 프라이빗 퍼시스턴스 티어(Private Persistence Tier)가 있다. 실제 데이터베이스 인스턴스가 여기에 위치한다.
구분IPv4 CIDR 블록
dev-public | 10.10.0.0/24 |
dev-private-application | 10.10.10.0/24 |
dev-private-persistence | 10.10.20.0/24 |
서브넷 생성
- 서브넷 생성 방법은 아래와 같다.
Amazon VPC 콘솔 접속
→ 리전 선택
→ [서브넷] 클릭
→ [서브넷 생성] 클릭
# VPC
→ VPC ID: dev (서브넷이 소속될 기존 존재하는 VPC 선택)
# 서브넷 설정
→ 서브넷 이름: dev-public
→ IPv4 CIDR 블록: 10.10.0.0/24
→ [서브넷 생성] 클릭
라우팅 테이블 생성 및 퍼블릭 서브넷 설정
- 생성한 서브넷은 기본적으로 프라이빗으로 설정되어 있다. 퍼블릭으로 변경하려면 해당 서브넷이 소속된 VPC에 맵핑되는 라우팅 테이블을 생성하고, 외부로의 아웃바운드 트래픽을 개방하고, 퍼블릭으로 설정할 서브넷에 연결해야 한다.
- 먼저 라우팅 테이블을 아래와 같이 생성한다.
Amazon VPC 콘솔 접속
→ 리전 선택
→ [라우팅 테이블] 생성 클릭
→ 이름 태그: foobar-dev-public (입력)
→ VPC: (라우팅 테이블이 소속될 VPC를 선택)
→ [생성] 클릭
- 해당 라우팅 테이블의 인터넷 아운바운드 트래픽이 가능하도록 아래와 같이 설정한다.
(라우팅 테이블 선택)
→ [라우팅] 클릭
→ [라우팅 편집] 클릭
→ 대상: 0.0.0.0/0 (입력)
→ 대상: [Internet Gateway] 선택 -> (소속된 VPC에 연결된 인터넷 게이트웨이 선택)
→ [라우팅 저장] 클릭
- 아래 설정을 통해 해당 라우팅 테이블을 퍼블릭으로 설정할 서브넷과 맵핑한다.
(라우팅 테이블 선택)
→ [서브넷 연결] 클릭
→ [서브넷 연결 편집] 클릭
→ 연결된 서브넷: (퍼블릭으로 설정할 서브넷 선택)
→ [저장] 클릭
NAT 게이트웨이 생성 및 프라이빗 서브넷 설정
- 생성 후 아무 설정도 하지 않은 서브넷은 프라이빗에 외부로의 아웃바운드 트래픽도 제한된 상태이다. 아웃바운드 인터넷이 가능하게 하려면 NAT 게이트웨이를 퍼블릭 서브넷에 생성 후 프라이빗 서브넷에 연결해야 한다.
Amazon VPC 콘솔 접속
→ 리전 선택
→ [NAT 게이트웨이] 클릭
→ [NAT 게이트웨이 생성] 클릭
→ 이름 태그: foobar-dev (입력)
→ 서브넷: (NAT 게이트웨이가 소속될 퍼블릭 서브넷 선택)
→ 탄력적 IP 할당 ID: [탄력적 IP 할당] 클릭
→ [NAT 게이트웨이 생성] 클릭
- 프라이빗 서브넷과 연결된 해당 라우팅 테이블의 인터넷 아운바운드 트래픽이 가능하도록 아래와 같이 설정한다.
(라우팅 테이블 선택)
→ [라우팅] 클릭
→ [라우팅 편집] 클릭
→ 대상: 0.0.0.0/0 (입력)
→ 대상: [NAT Gateway] 선택 → (NAT 게이트웨이 선택)
→ [라우팅 저장] 클릭
참고 글
반응형
'[====== Development ======] > Etc' 카테고리의 다른 글
아침 근력운동과 저녁 유산소 운동: 장점과 단점 (0) | 2024.06.03 |
---|---|
DevOps란 무엇인가 (0) | 2024.05.19 |
AWS 무중단 배포 (0) | 2024.03.31 |
AWS Ubuntu Docker 설치 스트립트 (0) | 2024.03.26 |
Ubuntu cli 모드 부팅 하도록 설정방법 (0) | 2024.03.19 |