brunch

You can make anything
by writing

- C.S.Lewis -

by 클라우드 엔지니어 Apr 06. 2019

61.AWS VPC Endpoint사용하기

게이트웨이 엔드포인트(무료) , S3에 대한 엔드포인트  

<1> 현황

S3를 사용하고 있다.

S3처럼 Public하게 연결된 서비스는 접속이 가능하다.


<2> 문제점

Private Subnet에서  S3에 접속이 안된다.


<3> 개선 방향

VPC Endpoint 서비스를 이용해  Private Subnet에서 접속이 되도록 한다.


<4> 요약

EndPoint는 Private-Link이다.

AWS내부에서 트래픽을 주고 받기 쉽도록 설정하는 것이다.


S3  EndPoint는 직접 접속이 필요한 서브넷을 모두 추가 하면 된다.

1) WEB Subnet 에 대해 EndPoint추가한다.

     리전내 S3로 가는것은 EndPoint 로 가고 , 다른 리전이나 서비스로 가는것은 IGW 통해 나간다.

2) Private Subnet에 대한 EndPoint 추가한다.

     리전내 S3로 가는것은 EndPoint 로 가고, 다른 리전이나 서비스로 가는것은 NATGW  통해 나간다.

3) EndPoint가 적용되면  S3까지 Ping 은 되나  Trace는 내부경로가 안된다.(안보인다)



<5> 구성도




<6> 설정전 테스트


1. 구성 요약

WEB은 IGW통해 인터넷 되는 구성.

WAS는  WEB Zone 에 NAT를 통해 인터넷 되는 구성.

DB는 인터넷이 안되는 구성.




2. Ping Test

1) WEB서버는 IGW를 통해 인터넷(1.1.1.1)과 S3와  Ping 된다.

2) WAS서버는 NAT를 통해 인터넷(1.1.1.1)과 S3와  Ping 된다.

3) DB서버는 외부와 인터넷(1.1.1.1)이 안된다.



1) WEB서버

 WEB서버는 IGW를 통해 인터넷(1.1.1.1)과 S3와  Ping 된다.


[root@ip-192-168-138-100 ~]# ping 1.1.1.1(인터넷)
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=45 time=2.82


[root@ip-192-168-138-100 ~]# ping ep.serverchk.com (S3)
PING ep.serverchk.com (52.219.4.98) 56(84) bytes of data.
64 bytes from s3-website-ap-northeast-1.amazonaws.com (52.219.4.98): icm

p


[root@ip-192-168-138-100 ~]# traceroute 1.1.1.1(인터넷)
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1 ec2-175-41-192-214.ap-northeast-1.compute.amazonaws.com (175.41.192.214) 17.606 ms ec2-175-41-192-220.ap-northeast-1.compute.amazonaws.com (175.41.192.220) 19.203 ms ec2-175-41-192-216.ap-northeast-1.compute.amazonaws.com (175.41.192.216) 14.852 ms
 2 100.66.8.86 (100.66.8.86) 12.965 ms 100.66.8.12 (100.66.8.12) 16.468 ms 100.66.8.36 (100.66.8.36) 19.763 ms
 3 100.66.10.34 (100.66.10.34) 14.030 ms 100.66.10.204 (100.66.10.204) 13.354 ms 100.66.10.78 (100.66.10.78) 12.944 ms


[root@ip-192-168-138-100 ~]# traceroute ep.serverchk.com(S3)
traceroute to ep.serverchk.com (52.219.68.184), 30 hops max, 60 byte packets
 1 ec2-175-41-192-148.ap-northeast-1.compute.amazonaws.com (175.41.192.148) 21.920 ms ec2-175-41-192-154.ap-northeast-1.compute.amazonaws.com (175.41.192.154) 15.332 ms ec2-175-41-192-152.ap-northeast-1.compute.amazonaws.com (175.41.192.152) 21.957 ms
 2 100.64.3.200 (100.64.3.200) 14.280 ms 100.64.1.76 (100.64.1.76) 17.132 ms 100.64.2.78 (100.64.2.78) 18.564 ms




2) WAS서버

WAS서버는 NAT를 통해 인터넷(1.1.1.1)과 S3와  Ping 된다.


[root@ip-192-168-134-144 ~]# traceroute 1.1.1.1 (인터넷)
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1 ip-192-168-139-25.ap-northeast-1.compute.internal (192.168.139.25) 0.462 ms 0.433 ms 0.436 ms
 

[root@ip-192-168-134-144 ~]# traceroute ep.serverchk.com  (S3)
traceroute to ep.serverchk.com (52.219.0.90), 30 hops max, 60 byte packets
 1 ip-192-168-139-25.ap-northeast-1.compute.internal (192.168.139.25) 0.270 ms 0.256 ms 0.248 ms
 2 ec2-175-41-192-218.ap-northeast-1.compute.amazonaws.com (175.41.192.218) 14.571 ms ec2-175-41-192-220.ap-northeast-1.compute.amazonaws.com (175.41.192.220) 21.687 ms 21.700 ms




<7> 설정후 테스트


게이트웨이 엔드포인트(무료) -  Amazon S3에 대한 엔드포인트 ,Amazon DynamoDB에 대한 엔드포인트



WEB / WAS / DB Zone에  S3 EndPoint를 설정한다.




1. EndPoint 적용 되면

1) 서브넷에 'EndPoint 라우팅'이 생기는게 3분정도 걸린다.

2) S3 EndPoint로 ping은 된다.

3) S3 EndPoint로 Trace는 안된다.  (내부 경로라 숨겨진다.)



2. EndPoint를 각 서브넷에  적용시

1) WEB 서브넷 EndPoint 적용시  WEB과 WAS 모두 통해 S3와  Ping 된다.

   (WAS는 NAT통해 WEB에서 EndPing적용되어 되는것임)

2) WAS 서브넷 EndPoint 적용시  WAS서버 서브넷만 S3와  Ping 된다.

3)  DB 서브넷은 EndPoint 적용시 EndPoint를  통해 S3와  Ping 된다.



3. 각 서브넷에 적용시


1)  WEB서브넷에만  S3 EndPoint를 적용시

WEB과 WAS서버가  S3와  Ping 된다.

WEB서버는 EndPoint적용되어 되어 되는것이고, WAS서버는 NAT 통해 WEB 에서  EndPoint적용된것이다.

WEB서버, WAS서버 모두  S3로 Ping된다.


WEB서버에서 S3로 Ping된다. (EndPoint적용됨)

WEB서버는 EndPoint적용되어 Trace는 1홉부터 안된다.

[root@ip-10-0-1-178 ~]# traceroute ep3.serverchk.com

traceroute to ep3.serverchk.com (52.219.36.130), 30 hops max, 60 byte packets

 1  * * *

 2  * * *

 3  * * *



WAS서버는 NAT통해 Ping 된다.

WAS에서 Trace 는 1홉만 된다.  

( WAS는  WEB에 NAT까지 갔다가 EndPoint 통해  S3로 간다)

[root@ip-10-0-1-178 ~]# traceroute ep3.serverchk.com

traceroute to ep3.serverchk.com (52.219.32.122), 30 hops max, 60 byte packets   

 1  ip-10-0-0-178.ap-southeast-1.compute.internal (10.0.0.178)  0.513 ms  0.475 ms  0.463 ms  <-NAT IP

 2  * * *

 3  * * *


2) WEB과 WAS Subnet에 EndPoint적용시


- WEB은 EndPoint적용되어 S3로 Ping된다. (Trace안된다.)

[ec2-user@ip-10-0-0-107 ~]$ ping ep3.serverchk.com

PING ep3.serverchk.com (52.219.40.2) 56(84) bytes of data.

64 bytes from s3-website-ap-southeast-1.amazonaws.com (52.219.40.2): icmp_seq=1 ttl=58 time=0.488 ms


[ec2-user@ip-10-0-0-107 ~]$ traceroute ep3.serverchk.com

traceroute to ep3.serverchk.com (52.219.40.2), 30 hops max, 60 byte packets

 1  * * *

 2  * * *



- WAS에서는 EndPoint 적용되어 Ping  된다.(Trace 안된다.)

[root@ip-10-0-1-178 ~]# ping ep3.serverchk.com

PING ep3.serverchk.com (52.219.40.102) 56(84) bytes of data.

64 bytes from 52.219.40.102 (52.219.40.102): icmp_seq=1 ttl=58 time=0.445 ms


[root@ip-10-0-1-178 ~]# traceroute ep3.serverchk.com

traceroute to ep3.serverchk.com (52.219.32.145), 30 hops max, 60 byte packets

 1  * * *

 2  * * *

 3  * * *



3)  WAS서브넷에 S3 EndPoint를 적용시

 WAS서버가  EndPoint를 통해 S3와  Ping 된다.


4) DB서브넷에 S3 EndPoint를 적용시

DB만  EndPoint를 통해 S3와  Ping 된다.


DB가 S3에 접속할 필요가 있을때만 적용한다.

결론

S3  EndPoint는 직접 접속이 필요한 서브넷을 모두 추가 하면 된다.





<8>   설정 요약


1. S3  EndPoint는  Subnet에  S3로 가는 로컬 라우팅이  추가되는 것이다.

2. S3  EndPoint에서 Route tables 체크해 추가하면, 해당 Subnet에  S3로 가는 Route Table이  추가된다.


1)  EndPoint적용할  서브넷 체크

~5d 는 WEB 서브넷.

was1, was2 서브넷.

~44 는 DB 서브넷.


2) 각 서브넷에 자동으로  라이팅 테이블이 추가 된다.  (pl-xxxxxx )


설명:   WAS 서브넷에  S3로 가는 라이팅 테이블이 추가되었다.

    pl-61a54008 - vpce-oc5cea




주의 1.  VPC 추가로  End Point 추가하는경우에는 

 20여초 Pending상태로 End Point 연결이 끊어지니 주의 바란다 !!!



참고 https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpce-interface.html


감사합니다.

매거진의 이전글 60. AWS비용은 서버,DB,네트워크 트래픽 비용이다

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari
;