본문으로 바로가기

[AWS] VPC 피어링간 s3 endpoint 통신 방법

category IT/AWS 2023. 11. 9. 20:17
반응형

Intro

두개의 다른 VPC를 peering 하였을때, A-VPC에 있는 ec2에서 B-VPC의 s3버킷에 접근하고 싶다. 이때 인터넷 구간을 거치지 않고 어떻게 통신해야할까요? 이때 사용할 수 있는게 s3 endpoint입니다. 오늘은 vpc peering으로 연결되어있는 각기 다른 VPC에서 s3 endpoint를 사용하는 방법에 대해 알아보도록 하겠습니다.

그냥 각 VPC에 있는 s3 endpoint를 사용하면 되는거 아니야?

네 맞습니다. 각 vpce에 있는 s3 endpoint를 사용하면됩니다. 그런데, A-VPC에 있는 ec2에서 B-VPC의 s3 버킷을 s3 endpoint로 접근하려 할때 어느 VPC에 있는 s3 endpoint를 사용해야할까요?

  • 보기 1번
    B-VPC에 있는 s3 endpoint를 사용한다

  • 보기 2번
    A-VPC에 있는 s3 endpoint를 사용한다

답은??

혹시 생각하고 계신 답이 있다면 댓글로 정답을 남겨주시면 댓글로 답을 공개하도록 하겠습니다!ㅎㅎ

ec2에서 s3버킷을 접근 하기 위한 정책들

물론 ec2가 s3버킷에 접근하기위해 살펴봐야할 것들이 몇가지 더 있습니다. 혹시 짐작 가시나요?

  • ec2의 security group에서 outbound 정책
  • ec2의 iam role 권한
  • s3 endpoint의 security group inbound 정책
  • s3의 bucket policy
    입니다. 조금더 나가 보면 NACL 정도가 더 있을 수 있겠네요. 이렇게 통신 구간 별로 보안 정책에 따라서 ec2가 s3에 접근하도록 구성을 해주어야 합니다.
    오늘의 목표가 이 통신 구간별 보안정책이 아니기 때문에 어떻게 설정해야하는지는 생략하도록 하겠습니다.

ec2에서 s3버킷에 접근 확인해보기

ec2에서 s3버킷에 접근 가능한지를 확인해보는 방법에는 다양한 방법이 있겠지만 가장 일반적으로 aws cli를 사용하여 확인할 수가 있습니다. 이때 vpc endpoint를 명시적으로 사용하겠다고 옵션을 줄 수 있어요. aws s3 --endpoint-url https://bucket.vpce-0700000000000-1234567.s3.ap-northeast-1.vpce.amazonaws.com cp test.txt s3://peering-test-1/test2.txt
물론 해당 ec2가 속해있는 subnet에 routing table에 s3 endpoint로 가도록 설정이 되어 있으면 s3 endpoint를 명시하지 않아도 됩니다!

반응형