VPC 내부의 서버가 인터넷을 통한 통신이 아니라, 내부 통신을 하도록 하게 해 주는 것이 엔드 포인트이다.
1
VPC에 있는 EC2에서 VPC외부에 있는 S3와 Dynamodb 내부 통신을 위해서는 Gateway endpoint를 사용한다.
S3와 Dynamodb는 VPC 외부에 있다.
2
다른 AWS 서비스도 VPC외부에 있는데 , 이경우는 인터페이스 엔드포인트를 사용해 내부 통신한다.
S3와 다이나모 DB 등 다수 서비스가 VPC 밖에서 서비스한다.
그래서 VPC 엔드포인트라는 것으로 내부 통신할 수 있도록 한다.
1
보안 적으로 내부 통신을 할 수 있는 부분은 내부 통신하는 것이 원칙이다.
2
종류 3가지 ?
게이트웨이 엔드포인트 - S3, Dynamodb
인터페이스 엔트포인트 = 프라이빗 링크
앤드포인트 서비스 = 프라이빗 링크
S3와 다이나모 DB 는 VPC 밖에서 서비스한다.
S3, Dynamodb 2개는 게이트웨이 엔드포인트 내부 통신을 하게 할 수 있다.
1
네트워크 구축 하자
VPC
public subnet
private subnet
클라우드 포메이션 템플릿을 이용해 한번에 만들어 보자.
기본적으로
public subnet EC2에서는 인터넷으로 S3 접근 가능하다.
private subnet EC2에서는 S3접근 불가하다. 인터넷이 안되므로
2
public subnet EC2에서는 인터넷으로 S3 접근 가능 하다.
ping s3.ap-northeast-2.amazonaws.com
for i in {1..20}; do dig s3.ap-northeast-2.amazonaws.com +short ; done | sort | uniq -c | sort -nr
watch -d -n 3 'dig s3.ap-northeast-2.amazonaws.com +short'
3
Private 서버로 접속
ssh root@10.0.1.103
private subnet EC2에서는 S3접근 불가하다. 인터넷이 안되므로.
ping s3.ap-northeast-2.amazonaws.com
안됨
4
S3 Endpoint 설정한다.
public과 private에 S3 Endpoint 설정한다.
VPC > Endpoint > 엔드포인트 생성 > S3 엔드포인트 , VPC를 지정한다.
public subnet EC2에서는 내부 통신을 통해 S3 접근 가능
private subnet EC2에서는 내부 통신을 통해 S3 접근 가능
ping으로 테스트해야 한다.
ping s3.ap-northeast-2.amazonaws.com
for i in {1..20}; do dig s3.ap-northeast-2.amazonaws.com +short ; done | sort | uniq -c | sort -nr
watch -d -n 3 'dig s3.ap-northeast-2.amazonaws.com +short'
5
Endpoint 이름들
https://docs.aws.amazon.com/general/latest/gr/s3.html
https://brunch.co.kr/@topasvga/488
1
VPC에서 DNS resoution enable 한다.
2
VPC > 인터페이스 엔드포인트 생성
3
cloudformation 엔드포인트 이름 확인
https://docs.aws.amazon.com/general/latest/gr/cfn.html
private subnet ec2에서 조회
인터페이스 엔드포인트 dig로 질의하여 질의되는지 확인한다.
dig cloudformation.ap-northeast-2.amazonaws.com +short
for i in {1..20}; do dig cloudformation.ap-northeast-2.amazonaws.com +short ; done | sort | uniq -c | sort -nr
watch -d -n 3 'dig cloudformation.ap-northeast-2.amazonaws.com +short'
4
확인하자.
private subnet 의 ec2에서 조회
설정전 - 공인 IP를 가짐
설정후 - 사설 IP를 가짐
1
구성 확인
nlb dns 확인
dig 질의
curl 질의
2
Endpoint serivce 생성 , VPC2의 NLB에 연결
3
Endpoint serivce 이름을 복사해 놓는다.
com.amazonaws.vpce.ap-northeast-2.vpce-svc-0xxxxxxxxxxx
4
Endpoint 생성
VPC1 에 만든다.
보안그룹을 지정한다. 80, 22 허용
수락 대기중이다.
// 엔드포인트 서비스는 같은 리전에 있어야 한다.
// 엔드포인트 서비스 설정시 NLB를 연결해야 하는데 같은 리전에 있어야 조회가 가능하다.
5
Endpoint serivce에서 Endpoint 수락하기
Endpoint serivce > 엔드포인트 연결 탭 > 작업 수락
6
EC2에서 확인하기
엔드포인트 DNS이름 확인하기
dig와 curl로 질의 하기 - 사설 IP로 응답한다.
end point dig로 질의해서 확인
end point curl로 질의해서 확인
[root@ip-10-0-0-101 ~]#
dig vpce-0d804bxxxxxx2-93vlc7dp.vpce-svc-036xxxxe82.ap-northeast-2.vpce.amazonaws.com +short
10.0.0.6
[root@ip-10-0-0-101 ~]#
curl vpce-0d804xxxxxxx.vpce-svc-03695xxxxxx.ap-northeast-2.vpce.amazonaws.com
<html><h1>Endpoint Service Web Server 1</h1></html>
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/endpoint-service.html
https://brunch.co.kr/@topasvga/1342
https://brunch.co.kr/@topasvga/1343
Endpoint Service 삭제 > NLB 삭제 > VPC 삭제
Endpoint Service 가 NLB에 의존성이 있어서 삭제 되지 않았다.
Endpoint Service를 1번으로 삭제해야 한다.
인터페이스 엔드포인트 요금
앤드포인트당 (USD/시간) : 0.013 USD
처리된 데이터 GB당 요금 (USD) : 0.01 USD
https://aws.amazon.com/ko/privatelink/pricing/
게이트웨이 로드 밸런서 엔드포인트 요금
앤드포인트당 (USD/시간) : 0.013 USD
처리된 데이터 GB당 요금 (USD) : 0.0035 USD
https://aws.amazon.com/ko/privatelink/pricing/
4주차
https://brunch.co.kr/@topasvga/1334
감사합니다.