본문 바로가기

Networking

[실습] AWS Endpoint (Interface, Gateway) 이용하여 S3 접근하기

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 Endpoint를 이용하여 Amazon S3를 Private하게 연결하는 구성에 대해서 실습을 해보겠습니다. 

최근 S3가 Gateway 방식 외 Interface 방식으로도 Endpoint 구성이 되도록 업데이트가 되어서 실습하기에 더 수월해진 것 같습니다. 


구성도

Endpoint 연결에 대한 개념을 잡기 위해서 S3로 접근하는 3가지 방식을 구현해 보았습니다.
  ① Endpoint 없이 Public으로 접근하는 방식
  ② Gateway 방식의 Endpoint를 구성하여 같은 VPC내에서 Private하게 접근하는 방식
  ③ Interface 방식의 Endpoint를 구성하여 Private하게 접근하는 방식

사전 작업

인프라 생성 : vpc, subnet, igw, routing table, ec2  등은 설명 생략합니다.

2022.07.02 - [Networking] - [실습] Amazon VPC 구성요소 생성하기

 

[실습] Amazon VPC 구성요소 생성하기

안녕하세요 서후아빠입니다. ^_^ 이번 세션은 VPC 관련 구성요소에 대해서 실습을 해보겠습니다. 구성도 1단계 : VPC 생성 VPC > Your VPCs > Create VPC 구분 VPC settings (VPC Only 방식) VPC settings (VPC a..

sh-t.tistory.com

2022.07.15 - [Other Service] - [실습] AWS CLI 설치 및 CLI 로그인 방법 알아보기

 

[실습] AWS CLI 설치 및 CLI 로그인 방법 알아보기

안녕하세요 서후아빠입니다. ^_^ AWS 작업 중 심심치 않게 AWS CLI 접속을 해야 하는 상황이 발생되는데요 이번 세션은 AWS CLI를 설치하고 로그인하는 방법에 대해서 알아보도록 하겠습니다. 1단계 :

sh-t.tistory.com

1번 : Endpoint 없이 Public으로 접근하는 방식

pubA-ec2에서 aws cli 로그인하여 아래 명령어 수행 (aws cli 로그인 설명 SKIP) : Public으로 S3 접근 (priB-ec2는 Public 통신이 불가능하기 때문에 S3 접근 안됨)

# 버킷명이 bucket-endpoint이라고 가정하고 test.txt 파일을 S3에 업로드
aws s3 cp test.txt s3://bucket-endpoint
upload: ./test.txt to s3://bucket-endpoint/test.txt

# S3 버킷에 파일 목록 확인
aws s3 ls s3://bucket-endpoint
2022-07-18 14:11:56         10 test.txt

# S3 IP 확인 (priB-ec2가 S3로 통신은 되지 않더라도 nslookup은 확인되니 당황하지 마세요)
nslookup s3.ap-northeast-2.amazonaws.com
Server:         127.0.0.53
Address:       127.0.0.53#53
Non-authoritative answer:
Name:   s3.ap-northeast-2.amazonaws.com
Address: 52.219.56.57

2번 : Gateway 방식의 Endpoint를 구성하여 같은 VPC내에서 Private하게 접근하는 방식 (Rouing 기반)

VPC > Endpoints > Create endpoint

구분 Endpoint settings Services (s3 검색) VPC, Route tables Policy
1 Name tag : priB-s3-ep-1
Service category : AWS services
Service name : com.amazonaws.ap-northeast-2.s3 
Type : Gateway
VPC : vpcB 
Route tables : priB-sn-rt
Full access 
(or Custom)
 Route tables에서는 여러 개의 Route table을 선택이 가능하며, 선택된 Route tables에는 자동으로 Endpoint에 대한 Routing이 설정됩니다.
Route tables에 등록된 Routing은 수동으로 삭제 불가능하며, Endpoint 삭제 시 자동 삭제됩니다.

pubA-ec2 접속해서 SSH로 priB-ec2로 이동, priB-ec2에서 aws cli 로그인하여 아래 명령어 수행 (aws cli 로그인 설명 SKIP) : Private로 S3 연결

# 버킷명이 bucket-endpoint이라고 가정하고 test.txt 파일을 S3에 업로드
aws s3 cp test1.txt s3://bucket-endpoint
upload: ./test1.txt to s3://bucket-endpoint/test1.txt

# S3 버킷에 파일 목록 확인
aws s3 ls s3://bucket-endpoint
2022-07-18 14:11:56         10 test.txt
2022-07-18 14:18:38         10 test1.txt

 

3번 : Interface 방식의 Endpoint를 구성하여 Private하게 접근하는 방식 (Domain 기반)

VPC > Endpoints > Create endpoint

구분 Endpoint settings Services (s3 검색) VPC, Subnets, IP address type, Security groups Policy
1 Name tag : priB-s3-ep-2
Service category : AWS services
Service name : com.amazonaws.ap-northeast-2.s3 
Type : Interface
VPC : vpcB 
Subnets : priB-sn
IP address type : IPv4 
Security groups : In/Out 모두 443 허용된 그룹 선택
Full access 
(or Custom)
Subnetss에서는 여러 개의 Subnet 선택이 가능하며, 선택된 Subnet에는 자동으로 Endpoint에 대한 Interface가 생성됩니다.
Subnet에 생성된 Interface는 수동으로 삭제 불가능하며, Endpoint 삭제 시 자동 삭제됩니다.

VPC > Endpoints > priB-s3-ep-2 선택 > Details (tab) 에서 Domain name 확인 (ex : *.vpce-06d8a669694a131fe-4wqfizxb.s3.ap-northeast-2.vpce.amazonaws.com)
priA-ec2 or priB-ec2에서 aws cli 로그인하여 아래 명령어 수행 (aws cli 로그인 설명 SKIP) : Private로 S3 연결

# S3 버킷에 파일 목록 확인
aws s3 --endpoint-url https://bucket.vpce-06d8a669694a131fe-4wqfizxb.s3.ap-northeast-2.vpce.amazonaws.com ls s3://bucket-endpoint
2022-07-18 14:11:56         10 test.txt
2022-07-18 14:18:38         10 test1.txt

# S3 IP 확인
nslookup bucket.vpce-06d8a669694a131fe-4wqfizxb.s3.ap-northeast-2.vpce.amazonaws.com
Server:         127.0.0.53
Address:        127.0.0.53#53
Non-authoritative answer:
Name:   bucket.vpce-06d8a669694a131fe-4wqfizxb.s3.ap-northeast-2.vpce.amazonaws.com
Address: 20.0.1.110
3번 설정은 vpcA가 On-premis라고 가정을 했을 때 사용할 수 있는 구성입니다.
반응형