티스토리 뷰

728x90
SMALL

VPC 엔드포인트

VPC 엔드포인트는 AWS의 퍼블릭 서비스나 직접적으로 생성한 AWS 서비스에 대해 외부 인터넷 구간을 통한 접근이 아닌 직접적으로 접근할 수 있는 프라이빗 액세스 기능이다. 즉 AWS 내부의 프라이빗 연결이 가능하다.

 

종류

엔드포인트 : AWS 퍼블릭 서비스 대상에 대한 프라이빗 연결

  게이트웨이 엔드포인트 : AWS 퍼블릭 서비스 중 S3, DynamoDB

  인터페이스 엔드포인트 : 나머지 AWS 퍼블릭 서비스

엔드포인트 서비스 : 사용자가 지정한 서비스 대상에 대한 프라이빗 연결

 

이점

보안 측면 강화

비용 절감 효과

서비스 제약

VPC 종속

권한 제어

[실습3-1] 게이트웨이/인터페이스 엔드포인트 비교

1. 기본 환경 구성

CloudFormation을 통해 스택 생성

http://bit.ly/cnbl0301 

생성 자원 : vpc, 퍼블릭 서브넷, 프라이빗 서브넷, 퍼블릭 라우팅 테이블, 프라이빗 라우팅 테이블, 인터넷 게이트웨이, 퍼블릭 EC2 인스턴스, 프라이빗 EC2 인스턴스(2장이랑 똑같음. 모르면 복습)

인터넷 연결확인 => 퍼블릭은 되고 프라이빗은 안돼(2장은 NAT으로 연결)

2. 게이트웨이 엔드포인트 생성 및 검증

2-1. 게이트웨이 엔드포인트 생성

서비스 -> VPC -> 가상 프라이빗 클라우드 -> 엔드포인트 -> 엔드포인트 생성 -> s3검색 -> gateway 선택 

-> 생성한 VPC 선택, 생성한 라우팅 테이블 선택(퍼블릭/프라이빗)

=> 라우팅 테이블을 확인해보면 경로가 추가됬다.

2.2 게이트웨이 엔드포인트 검증

ping s3.ap-northeast-2.amazonaws.com

3 인터페이스 엔드포인트 생성 및 검증

dig 명령어를 통해 CloudFormation DNS 주소에 대한 IP 주소 정보를 확인

dig +short cloudformation.ap-northeast-2.amazonaws.com

52.95.193.83

기본적으로 AWS 서비스는 리전별로 기본 DNS 호스트 주소를 가지고 있다. 여기서 VPC 인터페이스 엔드포인트를 생성하면, 엔드포인트 전용 DNS 호스트가 생성된다.

설정 통신흐름
프라이빗 DNS 비활성화 기본 DNS 호스트 인터넷 구간을 통한 퍼블릭 통신
엔드포인트 전용 DNS 호스트 인터페이스 엔드포인트를 통한 프라이빗 통신
프라이빗 DNS 활성화 기본 DNS 호스트 인터페이스 엔드포인트를 통한 프라이빗 통신
엔드포인트 전용 DNS 호스트 인터페이스 엔드포인트를 통한 프라이빗 통신

DNS 호스트 이름을 활성화 하자

서비스 -> VPC -> 가상 프라이빗 클라우드 -> VPC -> 작업 -> DNS 호스트 이름 편집 -> DNS 호스트 이름 활성화

서비스 -> VPC -> 가상 프라이빗 클라우드 -> 엔드포인트 -> 엔드포인트 생성 -> cloudformation입력 -> interface

-> 생성한 VPC 선택, 프라이빗 라우팅 테이블 선택 => 프라이빗 DNS 이름 활성화 체크

생성한 인터페이스 엔드포인트에서 DNS 호스트이름 확인.

 

dig +short cloudformation.ap-northeast-2.amazonaws.com

dig +short vpce-0248d5b37c1c4874a-e7l53k7f-ap-northeast-2c.cloudformation.ap-northeast-2.vpce.amazonaws.com

10.0.1.163

=> 최초 구성 환경과 다르게 10.0.1.50 프라이빗 IP 대역으로 되어 있다. 참고로 해당 IP 주소는 인터페이스 엔드포인트의 주소이다.

 

만약 프라이빗 DNS 이름을 비활성화한다면 (인터페이스 엔드포인트 삭제하고 재생성)

프라이빗 DNS 이름 비활성화에 의해 기본 DNS 호스트는 퍼블릭 IP로 퍼블릭 통신을 하고, 엔드포인트 전용 DNS 호스트는 프라이빗 IP로 프라이빗 통신을 한다.

4. 자원 삭제

1. 엔드포인트 삭제(VPC -> 엔드포인트 -> 작업 -> 엔드포인트 삭제)

2. CloudFormation 스택 삭제(CloudFormation -> 스택 -> 스택 삭제)

실슴[3-2] 엔드포인트 서비스로 프라이빗 링크 구성

1. 기본 환경 구성

스택생성(key pair 잊지말고 넣기)

http://bit.ly/cnbl0302 

생성 자원 : VPC2개, 퍼블릭 서브넷 2개, 퍼블릭 라우팅 테이블 2개, 인터넷 게이트웨이 2개, 퍼블릭 EC2 인스턴스 3개, 네트워크 로드밸런서(NLB)

(로드 밸런서는 데이터의 부하를 분산해 주는 역할의 서비스. 5장에서)

NLB는 정상적인 서비스까지 대기 시간이 있다.

서비스 -> EC2 -> 로드밸런싱 -> 대상 그룹 -> 대상 그룹 선택 -> 대상(Target) -> 상태가 healthy 될때까지 기다리기

서비스 -> ec2 -> 로드밸런싱 -> 로드밸런서 에서 DNS 주소 복사.

dig +short Stack-Custo-EZWBUQAU38GT-51a4135520063cd1.elb.ap-northeast-2.amazonaws.com
3.34.34.6
curl Stack-Custo-EZWBUQAU38GT-51a4135520063cd1.elb.ap-northeast-2.amazonaws.com
<html><h1>Endpoint Service Lab - CloudNeta Web Server 2</h1></html>

MyVPC의 EC2 인스턴스에 접근할여 dig 명령어로 NLB DNS 주소에 대한 IP 주소 정보 확인

curl으로 해당 웹 서버의 html 코드를 출력, 정상적인 웹 접근을 확인

 

만약 외부 인터넷 구간이 아닌 프라이빗 네트워크를 통해 VPC 간 통신을 하고 싶다면 엔드포인트 서비스를 활용하여 프라이빗 링크를 구성하면 된다.

2. 엔드포인트 서비스 생성 및 연결

2-1. 엔드포인트 서비스 생성

서비스 -> VPC -> 가상 프라이빗 클라우드 -> 엔드포인트 서비스 -> 생성 -> 생성한 NLB에 연결. 태그추가(Name, ~~)

생성한 엔드포인트 서비스의 세부정보에서 서비스 이름 복사

2-2. 인터페이스 엔드포인트 생성 및 연결

엔드포인트 서비스를 생성하여 CustomVPC의 NLB에 연결을 했다면, MyVPC에 인터페이스 엔드포인트를 생성하여 연결해야 한다.

서비스 -> VPC -> 가상 프라이빗 클라우드 -> 엔드포인트 -> 이름별 서비스 찾기(위에서 복사한거 붙여넣기) -> 서브넷 MyVPC -> 보안그룹 WebSG(보안그룹은 7장에서 자세히)

인터페이스 엔드포인트는 상태 정보가 수락 대기중이다.

엔드포인트 서비스 -> 엔드포인트 연결 -> 작업 -> 요청 수락  을 하면 연결된다.

 

3. 엔드 포인트 서비스 검증

엔드포인트의 DNS 복사

dig +short vpce-062ff15b7f5e8eef3-eyme0l7b-ap-northeast-2a.vpce-svc-0fa20f37df643116f.ap-northeast-2.vpce.amazonaws.com
10.0.0.205
curl vpce-062ff15b7f5e8eef3-eyme0l7b-ap-northeast-2a.vpce-svc-0fa20f37df643116f.ap-northeast-2.vpce.amazonaws.com
<html><h1>Endpoint Service Lab - CloudNeta Web Server 2</h1></html>

ip를 확인해보면 MyVPC의 퍼블릭 서브넷 대역임을 확인할 수 있고 curl로 확인을 해보니 정상적으로 웹 서버의 HTML 코드 정보가 출력되고 있다. 위와 비교하면 알 수 있다.

4. 자원 삭제

1. 엔드포인트 삭제(VPC -> 엔드포인트 -> 작업 -> 엔드포인트 삭제)

2. 엔드포인트 서비스 삭제(VPC -> 엔드포인트 서비스 -> 작업 -> 삭제)

3. CloudFormation 스택 삭제(CloudFormation -> 스택 -> 스택 삭제)

 

메타데이터 : 객체에 대한 키와 값에 대한 집합 데이터

169.254.169.254라는 링크-로컬 주소를 가지고 HTTP 요청과 응답으로 메타데이터를 확인할 수 있다.

curl http://169.254.169.254/latest/meta-data/

curl http://169.254.169.254/latest/meta-data/ami-id

curl http://169.254.169.254/latest/meta-data/hostname

curl http://169.254.169.254/latest/meta-data/instance-id

 

 

728x90
LIST

' > 따라하며 배우는 AWS 네트워크 입문' 카테고리의 다른 글

2. VPC 기초  (0) 2021.04.02
1. AWS 인프라  (0) 2021.04.02
댓글
공지사항