brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Nov 10. 2020

8탄-3. 3주차-VPC엔드포인트

VPC 내부의 서버가  인터넷을 통한 통신이 아니라, 내부 통신을 하도록 하게 해 주는 것이  엔드 포인트이다.


1

VPC에 있는 EC2에서  VPC외부에 있는 S3와  Dynamodb  내부 통신을 위해서는 Gateway endpoint를 사용한다.

S3와  Dynamodb는  VPC 외부에 있다.


2

다른 AWS 서비스도 VPC외부에 있는데 , 이경우는 인터페이스 엔드포인트를 사용해 내부 통신한다.




<1>  VPC 엔드포인트의 이해

<2>  게이트웨이 엔드포인트 생성과 테스트

<3>  인터페이스 엔드포인트 생성과 테스트

<4>  Endpoint serivce  구성

<5>  삭제

<6>  비용



<1>  VPC 엔드포인트의 이해


S3와 다이나모 DB 등 다수 서비스가 VPC 밖에서 서비스한다.

그래서 VPC 엔드포인트라는 것으로 내부 통신할 수 있도록 한다.


1

보안 적으로 내부 통신을 할 수 있는 부분은 내부 통신하는 것이 원칙이다.


2

종류 3가지 ?

게이트웨이 엔드포인트 - S3, Dynamodb

인터페이스 엔트포인트  = 프라이빗 링크

앤드포인트 서비스   = 프라이빗 링크





<2>  게이트웨이 엔드포인트 생성과 테스트


S3와 다이나모 DB 는  VPC 밖에서 서비스한다.



S3, Dynamodb 2개는 게이트웨이 엔드포인트  내부 통신을 하게 할 수 있다.


1

네트워크 구축 하자

VPC

public subnet

private subnet

클라우드 포메이션 템플릿을 이용해 한번에 만들어 보자.


기본적으로

public subnet   EC2에서는 인터넷으로  S3 접근 가능하다.

private subnet  EC2에서는  S3접근  불가하다.  인터넷이 안되므로 


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




<3>  인터페이스 엔드포인트 생성과 테스트


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를 가짐




<4>  Endpoint serivce   구성


구성 확인

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로 질의해서 확인




엔드포인트 DNS이름 확인하기


[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



https://www.dynatrace.com/support/help/technology-support/cloud-platforms/amazon-web-services/configuration/connect-to-dynatrace-using-aws-privatelink/#vpcs-in-different-aws-regions



<5> 삭제


Endpoint Service   삭제 >  NLB 삭제  > VPC 삭제

Endpoint Service 가 NLB에 의존성이 있어서 삭제 되지 않았다.

Endpoint Service를 1번으로 삭제해야 한다.




<6>  비용


인터페이스 엔드포인트 요금

앤드포인트당 (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


감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari