이번 세션은 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 구성요소 생성하기
2022.07.15 - [Other Service] - [실습] AWS CLI 설치 및 CLI 로그인 방법 알아보기
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라고 가정을 했을 때 사용할 수 있는 구성입니다. |
'[AWS-DR] > VPC&Subnet' 카테고리의 다른 글
[중요2][VPC플로우로그] How to write VPC flow logs to an S3 bucket on another AWS account !! (86) | 2024.07.07 |
---|---|
[중요2][AWS] VPC Flow Log로 IP 트래픽 로그 남기기 !! (14) | 2024.06.23 |
[참고] VPC 서브넷을 다른 계정과 공유 !! (62) | 2024.06.23 |
[참고][경로확인] S3 Endpoint 사용하기 !! (57) | 2024.06.20 |
[참고] Gateway Endpoint vs VPC Endpoint - Day 4 of 15 (72) | 2024.06.09 |
[참고][AWS] VPC - 관리형 접두사 목록(Managed Prefix list) (83) | 2024.05.29 |
[중요2] AWS VPC S3 endpoint gateway vs interface 차이 !! (92) | 2024.05.24 |
[중요] AWS VPC Endpoint - 'Interface' vs 'Gateway' type 비교 (88) | 2024.05.24 |
댓글