게이트웨이 엔드포인트를 이용해서 Private EC2 인스턴스에서 S3로 통신

게이트웨이 엔드포인트를 이용해서 Private EC2 인스턴스에서 S3로 통신하는 과정을 정리해 봤습니다.
2021.10.02

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 게이트웨이 엔드포인트를 이용해서 Private EC2 인스턴스에서 S3로 통신하는 과정을 정리해 봤습니다.

기본 환경 구성

기본 환경은 다음과 같습니다.

기본 환경에서의 테스트

먼저 퍼블릭 EC2 인스턴스에서 s3로 ping 테스트를 해보겠습니다.

ping s3.ap-northeast-1.amazonaws.com

퍼블릭 EC2 인스턴스에서는 인터넷을 통해 S3로 통신할 수 있는 것을 확인할 수 있습니다.

하지만 반대로 프라이빗 EC2 인스턴스에서 ping을 날려보면 통신이 되지 않습니다.

아키텍쳐로 살펴보면, 퍼블릭 EC2 인스턴스에서는 인터넷 게이트웨이를 통해서 S3에 액세스 하고 있지만, 프라이빗 EC2 인스턴스는 라우팅 테이블에 아무런 경로가 없기 때문에 통신이 불가능한 상태입니다.

게이트웨이 엔드포인트 생성

VPC로 들어와서, 엔드포인트 생성 버튼을 클릭합니다.

서비스 이름에 s3를 검색하고, Gateway 유형을 선택합니다. VPC는 endpoint-test-vpc를 선택하고, 프라이빗과 퍼블릭 서브넷을 선택한 다음, 엔드포인트를 생성합니다.

각각의 라우팅 테이블을 확인해 보면, S3에 대한 라우팅이 자동으로 설정되어 있는 것을 확인할 수 있습니다.

게이트웨이 엔드포인트 테스트

구성된 아키텍쳐는 다음과 같습니다. 이제 프라이빗 EC2 인스턴스와, 퍼블릭 EC2 인스턴스에서 게이트웨이 엔드포인트를 통해 S3와 통신할 수 있습니다.

ping s3.ap-northeast-1.amazonaws.com

이제 프라이빗 EC2 인스턴스에서 S3로 ping을 보내보면 정상적으로 통신이 가능한 것을 확인할 수 있습니다.

참고