AWS: VPC 설정하기

찌부·2023년 6월 13일
3

AWS

목록 보기
1/3
post-thumbnail

✨오늘의 목표✨

VPC 리소스맵

⚠️잠깐!⚠️
설정을 시작하기 전,
ROOT 계정 주IAM 계정에게 VPC 권한을 부여해주어야 한다!

💁🏻 VPC 접근 권한 부여하기


IAM > 액세스 관리 > 사용자 그룹 or 사용자 페이지에서
권한 > 권한 추가(우측 버튼) > 정책 연결(드롭다운)을 클릭하여

다음과 같이 AmazonVPCFullAccess 권한을 추가해준다.

이제 VPC 생성을 위한 준비가 다 끝났다.

❤️ VPC 생성하기


1. VPC 생성하기

AWS 검색창에서 VPC를 검색하여 VPC 대시보드로 로드된 뒤,
사진과 같은 VPC 생성 버튼을 눌러 준다.
vpc 생성 버튼

2. 초기 설정 세팅하기

조정할 수 있는 여러 항목들이 있지만, 우선은 다음의 세 항목을 조정 해준다

  • 생성할 리소스: VPC만 으로
  • 이름 태그: (적당히 직관적인 이름으로)
  • IPv4 CIDR: 10.0.0/16 으로

vpc 초기 세팅

👇🏻 이후 아래와 같이 별다른 오류 없는 생성 완료 창이 뜨면 성공🙆🏻!
vpc 생성 성공


3. 초기설정 실패했을 때

vpc 생성 실패: 규칙 그룹 로드 실패

본인이 IAM 사용자인 경우, 위와 같이 규칙 그룹 로드 실패가 뜰 수 있다.

[원인]
👉🏻 Route53 접근 권한이 없기 때문이며

🙅당황하지 말고🙅

[해결법]
👉 해당 AWS 계정Root 사용자가 🔑권한을 부여해줌으로서 해결할 수 있다!


🤲🏻 Route53 권한 부여하기


⚠️잠깐!⚠️
이건 IAM 계정이 아닌,
ROOT 계정 주가 진행해주어야 하는 부분이다!

먼저, IAM > 액세스 관리 > 사용자 그룹 들어간 뒤 로드되는 페이지에서
권한 > 권한 추가(우측 버튼) > 정책 연결(드롭다운)을 클릭해준다

Route53 권한 부여하기(1)

👇🏻 이후 다음과 같이 AmazonRoute53FullAccess 권한을 검색해 추가해준다
Route53 권한 부여하기(2)


⚠️잠깐!⚠️
이렇게까지 했는데도 에러가 뜬다?!
Rout53ResolverFullAccess권한 까지 추가해줘버리자!

Rout53Resolver 권한 부여하기
=> 이거 추가해준 이후로는 우리 팀에서 더이상 에러가 발생하지 않았다

❤️ 서브넷 생성하기


1. 서브넷 생성

VPC > 서브넷 > 서브넷 생성 들어간 뒤,
아까 만든 VPC 선택해준다
서브넷 생성

2. 서브넷 설정하기

1차로 1개의 서브넷을,
2차로 3개의 서브넷을 한 번에 생성할 것이다.

1차

- 서브넷 이름: ecs-public-subnet-1-jb
- 가용 영역: 2a
- IPv4 CIDR 블록: 10.0.1.0/24

public 서브넷 설정-1

2차

같은 창에서 좌측 하단의 `새 서브넷 추가`누르면
동일 페이지 내에서 새로운 서브넷 설정 창이 추가된다

- 서브넷 이름: ecs-private-subnet-1-jb
- 가용 영역: 2a
- IPv4 CIDR 블록: 10.0.2.0/24

- 서브넷 이름: ecs-public-subnet-2-jb
- 가용 영역: 2c
- IPv4 CIDR 블록: 10.0.3.0/24

- 서브넷 이름: ecs-private-subnet-2-jb
- 가용 영역: 2c
- IPv4 CIDR 블록: 10.0.4.0/24

서브넷 설정

아래와 같이 세 개가 동시에 생성 완료 되면 OK!
서브넷 설정 완료

🚪 NAT 게이트웨이


1. NAT 메뉴

VPC 메뉴바에서 NAT 게이트웨이를 클릭해준다.
NAT 메뉴

2. NAT 게이트웨이 생성

사진과 같이 직관적으로 이름을 설정 해주고,
일단은 만들어둔 서브넷 목록들 중,
public 서브넷 중 첫번째(1번) 서브넷을 선택해준다.

탄력적 IP의 경우 다른 IAM 계정과 겹치지 않게 설정 해준다.
NAT 게이트웨이 설정

👇🏻 다음과 같이 오류 없이 생성 완료 창이 뜨면 성공이다🙆!

🌐 인터넷 게이트웨이


1. 인터넷 게이트웨이 생성

우측 상단의 인터넷 게이트웨이 생성 버튼 눌러준다
인터넷 게이트웨이-생성

역시 직관적인 이름으로 설정 해준다
인터넷 게이트웨이-설정

2. VPC 연결

위에서 만들어진 인터넷 게이트웨이 창에서
우측 상단 작업 > VPC에 연결 버튼을 눌러준다
인터넷 게이트웨이-VPC에 연결

사용 가능한 VPC 목록들 중 위에서 생성했던 VPC를 선택해준다
인터넷 게이트웨이-VPC 선택

📋 라우팅 테이블


1. 라우팅 테이블 생성하기

  • 이름: public/private을 구분하여 직관적인 이름으로 설정
  • VPC: 드롭다운 목록들 중 위에서 만들어둔 VPC 선택

라우팅 테이블 생성

아래처럼 완료 창 뜨면 OK!
이제 라우팅을 연결하기 위해 완료된 창에서
라우팅 > 라우팅 편집 을 눌러준다.
라우팅 테이블 생성 완료

2. 라우팅 편집하기

default로 설정 되어있는 10.0.0.0/0 은 건들지 말고,
좌측 하단의 라우팅 추가 버튼을 눌러 새로 하나 만들어 준다.
그리고 아래와 같이 설정 해준다.

  • 대상1: 0.0.0.0/0 으로 설정
  • 대상2: 인터넷 게이트웨이 선택 > 목록에서 아까 만든 인터넷 게이트웨이 선택

라우팅 편집-인터넷 게이트웨이

라우팅 편집에서 인터넷 게이트웨이 목록 선택

3. 서브넷 연결 편집하기

아까와 같은 라우팅 테이블 생성 완료 페이지에서
서브넷 연결 > 서브넷 연결 편집 버튼을 클릭해준다
라우팅 테이블-서브넷 연결

현재 생성한 라우팅 테이블은
esc-public-route-table-jb
즉, public용이기 때문에, 아까참에 만들어 둔 4 개의 서브넷들 중
public 서브넷 두 개를 선택하여 연결해준다.
라우팅 테이블-서브넷 연결 편집

👇🏻 아래처럼 public route table에 연결된 서브넷으로 public서브넷 두 개가 있으면 제대로 설정 완료된 것이다.
라우팅 테이블-서브넷 연결 완료(public)

같은 방식으로
1) private route table 생성
2) 이번엔 NAT 게이트웨이 연결하고,
라우팅 테이블-NAT 게이트웨이 연결

3) private 서브넷 두 개 연결하면 최종 완료이다.
라우팅 테이블-서브넷 연결 완료(private)

🛡️ 보안 그룹 설정


우리는 다음과 같이 두 개의 보안 그룹을 생성할 것이다.

  • ecs-sg-alb-jb
  • ecs-sg-instance-jb

보안그룹은 방화벽 역할을 해 준다.
또한, 보안그룹 인바운드 규칙으로 또다른 보안그룹을 설정하면
해당 보안그룹은 포트와 상관 없이 마음대로 접속할 수 있다.

우리는 1번째 보안그룹의 인바운드 설정에 2번째 보안그룹을 종속시킬 것이다!

1. 보안 그룹 생성

우선은 첫 번째 보안그룹을 생성하기 위해, 다음과 같이 설정 해준다

보안 그룹 생성

2. 인바운드 규칙 생성

일단 HTTP & Anywhere IPv4 조합으로 초기 규칙을 설정 해준다
1번 보안그룹 인바운드 규칙

그리고 똑같은 방식으로 두 번째 보안그룹인 ecs-sg-instance-jb를 생성해준 뒤,

1번 보안그룹의 인바운드 규칙에
사용자 지정 TCP & 2번째 보안그룹(ecs-sg-instance-jb) 조합으로 규칙 추가를 진행해준다.
1번 보안그룹에 2번 보안그룹 추가

3. 자동 할당 IP 설정

VPC 메뉴에 들어가서
검색창에 jb(본인이 설정한 이름) 검색 후, public VPC들에 대해
우측 상단 작업 > 서브넷 설정 편집 눌러 들어간다
서브넷 설정 편집

자동 할당 IP 설정 섹션에서
퍼블릭 IPv4 주소 자동 할당 활성화를 체크해주고 저장후 나온다
자동 할당 IP 설정

➗ 로드 밸런싱


1. 로드밸런서 생성

EC2 > Load balancers 들어간 뒤 create~ 누른다
Load balancers 초기 화면

2. 로드밸런서 설정

로드 밸런서 타입으로는 ALB(Application Load Balancer)를 선택해준다

VPC 설정 해주고,
매핑할 서브넷은 public으로 맞춰 준다

내리다 보면 Listeners and routing 섹션에서
Create target group을 눌러 새로운 타겟 그룹을 생성 해준다.

그 후 다음과 같이 타겟 그룹 이름, 포트, VPC를 설정해주고,
프로토콜 버전은 HTTP1으로 맞춰 준다.

3. 태그 생성

다음과 같이 생성해준다

+) gRPC란?
👉🏻 REST API를 대체할 수 있는 구글프로시저 호출 시스템

gRPC는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출 시스템이다. 전송을 위해 HTTP/2를, 인터페이스 정의 언어로 프로토콜 버퍼를 사용하며 인증, 양방향 스트리밍 및 흐름 제어, 차단 및 비차단 바인딩, 취소 및 타임아웃 등의 기능을 제공한다.
(출처: 위키백과)


기타 추가 설명 사항

📯 오케스트레이션이란?


다수의 컨테이너를 조정, 운용하는 것

  • 도커 스윙(잘 안씀)
  • AWS EKS
  • ★★쿠버네티스 ==> 가장 추천

이 중 우리는 AWSEKS를 사용 해보려고 한다.


🔬 MSA(Micro Service Architecture)


MSA를 사용한 서비스는 컨테이너에 오케스트레이션을 사용한다

profile
데이터 분석중 ...ing☆

0개의 댓글