Skip to content

Commit

Permalink
Merge pull request #69 from gdsc-ssu/sanghyeon/week21
Browse files Browse the repository at this point in the history
[week21] VPC 엔드포인트 & Transit Gateway
  • Loading branch information
halfmoon-mind authored Sep 26, 2024
2 parents d3fa657 + cb18660 commit 61e994f
Show file tree
Hide file tree
Showing 6 changed files with 117 additions and 0 deletions.
50 changes: 50 additions & 0 deletions AWS/NETWORK/VPC 엔드포인트를 사용한 S3 접근.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
>[!info] 목차
> - [[#문제 설명]]
> - [[#문제 추가 설명]]
> - [[#해결 방법]]
> - [[#참고]]
> - [[#참고 레퍼런스]]
### 문제 설명
VPC 내 리소스 대역폭 비용을 낮게 유지하면서 보안을 위해 외부 인터넷을 사용하지 않고, 특정 S3 버킷에 접근해야한다.
### 문제 추가 설명
- 보안
- 외부 인터넷을 사용하지 않고 s3 버킷에 접근할 수 있어야 함
- private subnet에 있는 인스턴스에서 s3 버킷에 접근하려면 일반적인 경우, endpoint를 실제 s3의 엔드포인트로 설정하여 받아오게 되는데, private subnet이면 외부 인터넷 연결이 안되기 때문에 public subnet으로 바꿔줘야 접근할 수 있다.
- 비용
- vpc 내 리소스에서 internet gateway를 사용하지 않고 s3 버킷으로 데이터 전송
- vpc에서 s3 버킷에 접근할 때 트래픽은 internet gateway를 통과하게 되고, 다시 돌아오는 과정도 포함함 -> 외부 인터넷을 경유하게 됨으로 인터넷 데이터 비용 발생

### 해결 방법
VPC 엔드포인트를 활용하여 private subnet에 있는 인스턴스에서 private s3 버킷 혹은 public s3 버킷으로 접근할 수 있다.
> ![[Pasted image 20240804154437.png]]
> ![[Pasted image 20240804154502.png]]
> 출처 : 농심 tech 블로그
Gateway endpoint를 설정하면 routing table에 pl-id (prefix list id / 접두사 목록)가 생성되고, 해당 s3 endpoint는 vpc endpoint를 활용하여 접근하게 된다.
### 참고
- VPC 엔드포인트 자체는 무료이고, 관련된 서비스를 이용하는 이용료만 발생한다.
- S3 버킷에 대한 엑세스 제한을 위해서 엔드포인트 정책을 사용할 수 있는데, 계정이 소유한 버킷 뿐만 아니라 AWS 내 모든 S3 버킷에 대해서 적용이 가능하다.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*",
"Condition": {
"StringEquals": {
"aws:sourceVpce": "vpce-xxxxxxxx"
}
}
}
]
}
```
이렇게 만들면 해당 vpc에서만 버킷 접근이 가능하다.
- VPC 엔드포인트의 라우팅 테이블 항목이 기본 0.0.0.0/0 보다 구체적으로 설정되어 있음으로(pl-id값이 설정되어 있음으로), 해당 서비스로 바인딩 된 모든 트래픽은 public 인터넷 경로가 아니라 vpc 엔드포인트로 이동한다.

### 참고 레퍼런스
- [vpc endpoint란?](https://tech.cloud.nongshim.co.kr/2023/03/16/%EC%86%8C%EA%B0%9C-vpc-endpoint%EB%9E%80/)
-
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
>[!info] 목차
> - [[#문제 설명]]
> - [[#문제 추가 설명]]
> - [[#알아야하는 개념]]
> - [[#해결 방법]]
> - [[#참고]]
> - [[#참고 레퍼런스]]
### 문제 설명
NAT 게이트웨이 수를 줄이려고 모든 VPC에 전이 라우팅을 적용하여 외부 인터넷 트래픽을 하나의 공유 서비스 VPC를 통해 사용하고자 한다.
### 문제 추가 설명
- 비용 효율성
- 각 VPC마다 NAT 게이트웨이를 생성하면 비용이 많이 발생한다.
- 모든 VPC가 하나의 NAT 게이트웨이를 공유하는 구조를 만들면 비용 절감이 가능하다.
- 전이 라우팅(Transit Routing)
- 전이 게이트웨이(Transit Gateway)를 활용하여 여러 VPC간 라우팅을 구현할 수 있다.
- 모든 VPC 외부 트래픽을 공유 서비스 VPC로 라우팅하여 NAT 게이트웨이를 공유할 수 있다.
### 알아야하는 개념
- Transit Gateway [공식문서](https://docs.aws.amazon.com/ko_kr/vpc/latest/tgw/what-is-transit-gateway.html)
- 여러 VPC 간의 연결을 중앙 집중화하여 네트워크 관리 용이하게 작업
- 주요 기능
- 중앙 집중식 라우팅 허브
- 여러 VPC 연결을 중앙에서 관리
- 트래픽 모니터링 & 제어
- 중앙 집중화된 구조로 모니터링 및 제어가 쉬움
- 보안 정책 일관되게 적용
- 확장성
- 다른 VPC 및 온프레미스 네트워크와 연결 및 확장이 쉬움
- 비용 효율성
- 트래픽을 하나의 지점으로 집중시켜 네트워크 대역폭 사용을 줄이고, 여러 개별 연결을 하지 않아 비용 절감 가능
- 사용 사례
- 온프레미스 데이터 센터와 클라우드 간 연결
- 여러 지역 및 가용 영역에 걸친 클라우드 리소스 관리
- VPC간 트래픽을 중앙에서 제어하고 모니터링
- Hub-Spoke 네트워크 토폴로지
- Cloud Hub : 하나의 VPC가 모든 연결을 맺는 HUB VPC (중앙 관리용)
- Spoke VPC : 온프레미스 혹은 다른 VPC
### 해결 방법
AWS TGW(Transit Gateway)를 배포하고, 모든 VPC에 대한 전송 게이트웨이 VPC 연결을 구성한다.
각 VPC의 라우팅 테이블을 모든 외부 트래픽을 트랜짓 게이트웨이로 보내도록 설정하고 모든 스포트(spoke) VPC가 공유 서비스 VPC의 NAT 게이트웨이를 사용할 수 있도록 설정한다.
![[스크린샷 2024-08-04 오후 4.53.01.png]]

### 참고
기존 방식으로는 다수의 피어링 연결을 사용하거나 타사 소프트웨어를 사용해야 했다.
#### 문제
1. 단일 장애점
- 모든 인터넷 트래픽이 하나의 NAT 게이트웨이로 진행됨으로 해당 NAT 게이트웨이가 장애 발생하면 모든 VPC 인터넷 연결에 문제가 발생할 수 있음
2. 대역폭 및 성능문제
- 하나의 NAT 게이트웨이에 트래픽이 몰리면 대역폭 문제가 발생할 수 있음
### 참고 레퍼런스
- [AWS Direct Connect](https://aws.amazon.com/ko/directconnect/)
Binary file added img/Pasted image 20240804154437.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/Pasted image 20240804154502.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/스크린샷 2024-08-04 오후 4.53.01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions review/week21/심상현.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
### ALB와 접근 매니저
- Application Load Balancer를 사용하여 각 인스턴스에 로드밸런싱, https 적용 등 다양한 작업을 수행할 수 있다.
### 접두사 목록을 활용한 CIDR 관리
- 접두사 목록을 활용하여 특정 CIDR(IP) 블록들을 묶어서 관리할 수 있다.
- 보안그룹을 조금 더 쉽게 적용할 수 있다고 생각하면 좋을 듯.
- 이후 VPC 엔드포인트 또한 이 접두사 목록을 활용하면 라우팅 처리를 손쉽게 진행할 수 있다.
### CloudFront
- AWS 내에서 제공하는 CDN 서비스
- S3나 특정한 콘텐츠에 대해서 빠르게 접속 하거나, S3 객체의 원본 위치를 가리거나
### DynamoDB
- AWS 내에서 제공하는 NoSQL 서비스
### VPC 엔드포인트
- VPC 엔드포인트를 활용하면 private subnet에 있는 인스턴스에서 AWS의 다른 서비스로 빠르게 접속이 가능하다.
- 비용 절감 뿐만 아니라 인스턴스를 외부에 노출시키지 않을 수도 있다.
### Transit Gateway
- NAT가 여러개 있는 경우, 과금이 여러번 발생하는데 Transit Gateway로 단일 NAT를 활용하여 비용 절감할 수 있다.
- 또한 온프레미스 환경의 서버도 동일한 vpc처럼 취급할 수 있는 기능도 추가할 수 있다.

0 comments on commit 61e994f

Please sign in to comment.