Amazon VPC
사용자가 정의한 가상 네트워크로 AWS 리소스를 시작 가능하며 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하다.
VPC 대시보드
- VPC 검색 또는 서비스 탭 - 네트워킹 및 콘텐츠 전송 - VPC 클릭
- VPC 대시보드
사용자 정의 VPC 생성
사용자 정의 VPC 생성 순서
1) VPC 네트워크를 생성합니다.
2) Subnet을생성합니다,
3) Internet Gateway를 생성합니 다
4) Routing Table을 설정합니다.
5) Network ACL을 설정합니다.
6) Security Group을 설정합니다.
VPC 생성
- VPC 생성 클릭
- VPC 이름 및 CIDR 지정
- 생성 결과
VPC 설정 편집
- 작업 - VPC 설정 편집 클릭
- DNS 호스트 이름 활성화 체크 후 저장
Subnet 생성
'서브넷 추가'를 눌러 다음 서브넷들을 추가한다. (이름에 맞는 가용영역을 고른다.)
- my-pub-2a: 10.39.0.0/20
- my-pub-2b: 10.39.16.0/20
- my-pub-2c: 10.39.32.0/20
- my-pub-2d: 10.39.48.0/20
- my-pvt-2a: 10.39.64.0/20
- my-pvt-2b: 10.39.80.0/20
- my-pvt-2c: 10.39.96.0/20
- my-pvt-2d: 10.39.112.0/20
- 서브넷 생성 클릭
- VPC 선택
- 서브넷 설정 후 생성 클릭 - 서브넷 추가로 위 나열된 8개의 서브넷 등록
- 생성 결과
Public 서브넷 주소 자동 할당 활성화 설정
- '퍼블릭 IPv4 주소 자동 할당 활성화'를 통해크게 신경 안써도 무료로 주는 변동 가능한 공인 아이프를 받는다.
- public 서브넷 우클릭 - 서브넷 설정 편집
- 퍼블릭 IPv4 주소 자동 할당 활성화 체크 후 저장
인터넷 게이트웨어 생성
- 인터넷 게이트웨이 - 인터넷 게이트웨이 생성 클릭
- 인터넷 게이트웨이 이름 지정 후 생성
- 생성 결과
인터넷 게이트웨이 VPC 연결
- 인터넷 게이트웨이 세부 정보 - 작업 - VPC에 연결 클릭
- VPC 선택 후 생성 클릭
- VPC 연결 결과
라우팅 테이블 편집
- 라우팅 테이블 - 라우팅 테이블 선택 및 이름 변경
- 라우팅 테이블 선택 - 우클릭 - 라우팅 테이블 편집 클릭
- 라우팅 테이블에 IGW 라우팅 정보 추가 - 변경 사항 저장 클릭
- 외부 트래픽에 대해 인터넷 게이트웨이로 연결 되도록 라우팅
- 추가 변경 사항 결과 확인
라우팅 테이블 - 서브넷 연결 편집
- 라우팅 테이블 세부 정보 - 작업 🔽 - 서브넷 연결 편집 클릭
- 퍼블릭 서브넷 선택 - 연결 저장 클릭
- 명시적 서브넷 설정 결과 확인
프라이빗 라우팅 테이블 생성
- VPC 메뉴 - 라우팅 테이블 - 라우팅 테이블 생성 클릭
- 라우팅 테이블 이름 및 VPC 선택 후 라우팅 테이블 생성 클릭
- 라우팅 테이블 생성 결과
프라이빗 서브넷 연결 설정
- 서브넷 연결 편집
- 프라이빗 서브넷 선택
- 연결 편집 설정 결과
- 라우팅 테이블들
EC2 생성
#!/bin/bash
yum install -y httpd
systemctl enable --now httpd
echo "<h1>seoul</h1>" > /var/www/html/index.html
VPC Peering
VPC Peering이란?
VPC 피어링 연결은 프라이빗 IPv4 주소 또는 IPv6 주소를 사용하여 두 VPC 간에 트래픽을 라우팅할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결이다.
- 동일한 네트워크에 속하는 경우와 같이 VPC와 인스턴스가 서로 통신 가능 ⭕
- 사용자의 자체 VPC 또는 다른 AWS 계정의 VPC와 VPC 피어링 연결을 생성 가능 ⭕
- VPC는 다른 리전에 존재 가능 ⭕
- AWS는 VPC의 기존 인프라를 사용하여 VPC 피어링 연결을 생성
- 이는 게이트웨이도, VPN 연결도 아니며 물리적 하드웨어 각각에 의존 ❌
피어링 연결 생성
- 동일한 계정 및 상이한 리전의 VPC로 생성
- VPC 피어링을 통해 두 리전 끼리 퍼블릭이 아닌 프라이빗 주소로도 통신이 되도록 설정
- 서울 리전에서 피어링 연결 요청을 수행
- VPC 탐색메뉴 - Virtual Private Cloud - 피어링 연결 - 피어링 연결 생성 클릭
- 이름 설정 및 피어링 요청자 (VPC 선택)
- 리전 선택 및 VPC ID(수락자) - 해당 VPC
- 여기서는 수락자 VPC ID는 도쿄 리전의 VPC의 ID 복사, 적용
- VPC 피어링 생성 결과
동일 계정 + 다른 리전 VPC 피어링 순서
- 동일한 계정 및 상이한 리전의 VPC로 생성
동일한 계정 및 상이한 리전의 VPC와 VPC 피어링 연결을 생성하는 방법
- https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.
- 탐색 창에서 Peering Connections(피어링 연결)를 선택합니다.
- Create peering connection(피어링 연결 생성)을 선택합니다.
- 다음 정보를 구성하고 구성을 완료하면 피어링 연결 생성을 선택합니다.
- 이름: 필요에 따라 VPC 피어링 연결의 이름을 지정할 수 있습니다. 이렇게 하면 Name 키와 지정한 값으로 태그가 생성됩니다.
- VPC ID(요청자): 계정에서 VPC 피어링 연결을 요청할 요청자 VPC를 선택합니다.
- 계정: 내 계정을 선택합니다.
- 리전: 다른 리전을 선택한 다음 수락자 VPC의 리전을 선택합니다.
- VPC ID(수락자): 수락자 VPC를 선택합니다.
- 리전 선택기에서 수락자 VPC의 리전을 선택합니다.
- 탐색 창에서 Peering Connections(피어링 연결)를 선택합니다. 생성한 VPC 피어링 연결을 선택한 다음 작업, 요청 수락을 선택합니다.
- 확인 메시지가 나타나면 요청 수락을 선택합니다.
- 피어링 연결을 통해 트래픽을 보내고 받을 수 있도록 VPC 라우팅 테이블에 경로를 추가하려면 지금 내 라우팅 테이블 수정을 선택합니다.
피어링 연결 수락
- 도쿄 리전에서 피어링 연결을 수락
- 피어링 요청 수락
- 피어링 요청 활성화 결과
동일 계정 + 같은 리전 피어링 연결 수락
- 같은 리전의 VPC 피어링 생성후
"Pending Acceptance"
상태 일 때, 해당 피어링 => Actions → Accept request 버튼을 클릭하여 연결 요청을 수락하면 피어링 연결이 완료
피어링을 위한 라우팅 테이블 수정
- 아직 VPC가 연결이 됐을 뿐, 서로 다른 네트워크 주소인데 라우팅 테이블 세팅이 안됐으므로, 아직 트래픽 송수신이 ❌
됴코 리전 라우팅 테이블 편집
- 라우팅 테이블 편집
- PCX(피어링 연결) 규칙 추가
- 도쿄 리전 라우팅 테이블 편집 결과
서울 리전 라우팅 테이블 편집
- 트래픽은 양방향이므로, 반대쪽인 서울에서도 라우팅 테이블 정보 추가 필요 ⭕
- 라우팅 테이블 편집
- 도쿄 관련 PCX(피어링 연결 규칙 추가)
- 서울 리전 라우팅 테이블 편집 결과
피어링 결과 확인
AWS PrivateLink
서비스 액세스
- 기본 서비스 엔드포인트는 퍼블릭 인터페이스이므로 트래픽이 VPC에서 AWS 서비스로 이동할 수 있도록 VPC에 인터넷 게이트웨이 추가가 필요
- 네트워크 보안 요구 사항에 맞지 않는 경우 AWS PrivateLink를 사용하여 VPC를 AWS 서비스에 연결하면 인터넷 게이트웨이를 사용하지 않고 서비스를 VPC에 있는 것처럼 이용 가능
AWS PrivateLink를 통한 연결
- 인터페이스 VPC 엔드포인트를 생성
- 네트워크 인터페이스를 사용하여 VPC의 서브넷과 AWS 서비스 간의 연결을 설정
- DNS를 사용하여 엔드포인트 네트워크 인터페이스의 프라이빗 IP 주소로 확인된 후 VPC 엔드포인트와 AWS 서비스 간 연결을 통해 AWS 서비스로 전송
VPC 엔드포인드 생성
- VPC endpoint 를 통해 VPC 내의 자원들은 인터넷 게이트웨이, NAT 게이트웨이 등의 영향 없이 Amazon 내부 리소스에 Access 할 수 있습니다.
- 일반적으로 Amazon S3(Simple Storage Service) 는 Public endpoint 를 사용하기 때문에 EC2(Elastic Compute Cloud) 에서 데이터를 보내게 되면 Public Network 로 트래픽을 송신하게 됩니다.
- 네트워크 지연시간과 AWS 트래픽 비용이 증가
- VPC endpoint 를 이용하여 목적지가 Amazon S3인 트래픽을 아마존 내부 네트워크로 라우팅하여 네트워크 지연시간을 낮추고, 네트워크 트래픽 비용을 낮추는 것
S3와 통신을 위한 VPC 엔드포인트 생성
- "VPC" → "엔드포인트" → "엔드포인트 생성"
- VPC endpoint 생성 관련 설정
- 서비스 범주 :
AWS Service
- 서비스 :
com.amazonaws.ap-northeast-2.s3
(유형: Gateway
)
- VPC :
hands-on-vpc
VPC 선택
- 라우팅 테이블 구성 :
VPC 에 속한 라우팅 테이블 선택
Amazon S3 로 송수신되는 트래픽의 라우팅을 Amazon 내부 네트워크로 라우팅을 변경하기 위한 설정 입니다. 만약 Amazon S3 로 데이터를 전송하고 있다면 라우팅 테이블을 변경하는 즉시 연결이 끊어지게 되므로 이것에 대한 경고 메시지를 보여줍니다.
- 생성 결과
리소스 제거
VPC 피어링 제거
- VPC 피어링은 어느 한쪽만 지우면 제거됨. (서울에서 수행했음.)
- VPC - VPC 피어링 - 피어링 선택 - 작업 - 피어링 연결 삭제 클릭
- 관련된 라우팅 테이블 정보도 제거
- 제거 결과
라우팅 테이블 제거
- 도쿄 리전 같은 경우는 제거해줘야한다. (서울리전에서 VPC 피어링 제거했기 때문)
VPC 제거 시
- VPC와 관련되지 않은 다른 리소스 제거
- VPC와 관련된 리소스 제거(NATGW)
- VPC 제거