[AWS Basic]VPC Endpoint(VPC 엔드포인트) 이해와 게이트웨이 엔드포인트, 인터페이스 엔드포인트구성
VPC Endpoint 란?
VPC 엔드포인트를 통해 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결이 필요 없이 Virtual Private Cloud(VPC)와 지원 서비스 간에 연결을 설정할 수 있습니다. 따라서 VPC에서 연결할 수 있는 특정 API 엔드포인트, 사이트 및 서비스를 제어합니다.
VPC 엔드포인트는 가상 디바이스입니다. 수평으로 확장된 고가용성 중복 VPC 구성 요소입니다. 다음은 다양한 유형의 VPC 엔드포인트입니다. 지원되는 서비스에서 요구하는 유형의 VPC 엔드포인트를 생성합니다.
퍼블릭 서비스와 통신을 하거나 다른 vpc로 통신이 필요할 경우 외부 인터넷 구간을 통해 통신이 이루어진다.
하지만 강력한 보안이 요구되는 프라이빗 vpc의 경우 퍼블릭 네트워크를 통해 통신이 불가능하다.
이러한 프라이빗 vpc를 외부 인터넷을 거치지 않고 aws 퍼블릭 서비스와 통신을 할수 있게 해주는 것이 vpc 엔드포인트이다.
인터넷을 거치지 않고 프라이빗 연결을 통해 통신됨으로 보안이 강화되고, 데이터 전송에 발생하는 비용절감이 가능하다.
엔드포인트 종류
Endpoint : aws 퍼블릭 서비스 대상에 대한 프라잇빗 연결
- 게이트웨이 엔드포인트 : s3와 dynamo db에 대한 연결
- 인터페이스 엔드포인트 : 나머지 aws 퍼블릭 서비스 연결
Endpoint service : 사용자가 직접 지정한 서비스 대상의 프라이빗 연결
게이트웨이 엔드포인트 기본구성
endpoint 구성
1. vpc 생성
(서비스>vpc>10.0.0.0/16 vpc생성)
2. 서브넷생성
(서비스>VPC>서브넷)
name : endpoint-private-SN : 10.0.1.0/24 AZ: ap-northeast-2a
endpoint-public-SN : 10.0.0.0/24 AZ: ap-northeast-2c
3. 라우팅테이블생성
(서비스>VPC>라우팅테이블)
Endpoint-public-RT : 퍼블릭 서브넷 연결(10.0.0.0/24) 라우팅: 0.0.0.0/0->IGW
Endpoint-private-RT : 프라이빗 서브넷 연결(10.0.1.0/24)
4. 인터넷 게이트웨이 생성 및 vpc 연결
(서비스>vpc>인터넷게이트웨이)
Name: Endpoint-IGW , VPC 연결: endpoint-vpc
5. 퍼블릭 인스턴스 생성
(서비스>ec2>인스턴스시작)
Name: Endpoint-public-EC2, VPC: endpoint-vpc, 서브넷 : endpoint-public-SN)
Name:Endpoint-private-EC2, VPC: endpoint-vpc, 서브넷 : endpoint-private-SN, root, test123)
- Endpoint-private-EC2 인스턴스 사용자 데이터
#!/bin/bash
(
echo "test123"
echo "test123"
) | passwd --stdin root
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config
service sshd restart
6. EC2 인스턴스에서 S3 통신 확인.
Endpoint-public-EC2 인스턴스에서 S3 통신확인
ping s3.ap-northeast-2.amazonaws.com
통신 정상
퍼블릭 ec2인스턴스는 가상라우터를 통해 라우팅테이블을 참고하여 인터넷게이트웨이로 패킷이 나가 s3로 정상적으로 통신이 되고 있다.
Endpoint-private-EC2 인스턴스에서 S3 통신확인.
ping s3.ap-northeast-2.amazonaws.com
통신불가!
프라이빗 EC2인스턴스는 가상라우터에 밖으로 나갈수 있는 라우팅 테이블이 없다.
그래서 S3와 정상적인 통신을 할수 없다.
6. 엔트포인트 생성
(서비스>VPC>Virtual private cloud>엔드포인트)
연결할 서비스 선택 : com.amamzonaws.ap-northeast-2.s3
엔드포인트를 생성할 vpc 선택: endpoint-vpc
라우팅테이블 선택
Endpoint-pirvate-RT, Endpoint-public-RT 선택
7. 엔드포인트 생성확인
연결된 VPC : endpoint-vpc, 서비스이름 : com.amamzonaws.ap-northeast-2.s3, 엔드포인트 유형 : Gateway
8. 라우팅테이블 확인.
Endpoint-public-RT : S3로 가는 경로 생성확인.
Endpoint-private-RT : S3로 가는 경로생성 확인.
9. 게이트웨이 엔드포인트 생성 후 구성
10. 통신확인
Endpoint-public-EC2<->s3.ap-northeast-2.amazonaws.com 통신정상
Endpoint-pirvate-EC2<-> s3.ap-northeast-2.amazonaws.com 통신정상
인터페이스 엔드포인트
프라이빗 DNS 활성화를 설정하여 모든 DNS호스트가 인터페이스 엔드포인트를 통해 프라이빗 통신이 되도록 설정
현재 Cloudformation의 DNS 주소 IP 확인
dig +short cloudformation.ap-northeast-2.amazonaws.com
Endpoint-Public-EC2 인스턴스
Endpoint-Private-EC2 인스턴스
Cloudformation DNS주소는 퍼블릭IP로 매핑되어 있어 인터넷구간을 통하여 통신.
1. vpc dns 호스트이름 활성화
endpoint-vpc 선택>작업>dns호스트 이름 편집>dns 호스트이름 활성>변경사항저장
2. 엔드포인트 생성
(서비스>vpc>virtual private cloud>엔드포인트>엔드포인트생성)
서비스이름 : com.amamzonaws.ap-northeast-2.cloudformation
vpc 선택 : endpoint-vpc 선택
DNS이름 : DNS 이름 활성화 체크
서브넷
가용영역 : ap-northeast-2c, 서브넷id : private-subnet 선택
3. 엔드포인트 생성확인
연결된 vpc : endpoint-vpc, 서비스이름 : com.amazonaws.ap-northeast-2.cloudformation , 엔드포인트유형 : 인터페이스
엔드포인트 전용 dns : vpce-0456ad4de854e2e5e-ll5uzvjn.cloudformation.ap-northeast-2.vpce.amazonaws.com
4. 엔드포인트 확인
Endpoint-Public-EC2<-> cloudformation.ap-northeast-2.amazonaws.com
Endpoint-Public-EC2<-> vpce-0456ad4de854e2e5e-ll5uzvjn.cloudformation.ap-northeast-2.vpce.amazonaws.com
Endpoint-private-EC2<->cloudformation.ap-northeast-2.amazonaws.com
Endpoint-private-EC2<->vpce-0456ad4de854e2e5e-ll5uzvjn.cloudformation.ap-northeast-2.vpce.amazonaws.com
프라이빗 영역에 생성된 인터페이스 엔드포인트 통해 Cloudformation 연결됨을 확인.
10.1.1.38 은 프라이빗 서브넷에 생성된 인터페이스 엔드포인트 ip
5. 테스트 종료 후 자원삭제
엔드포인트삭제>ec인스턴스 종료>서브넷삭제>라우팅테이블삭제>인터넷게이트웨이vpc에서분리>인터넷게이트웨이 삭제>vpc삭제