⚠️잠깐!⚠️
설정을 시작하기 전,
ROOT 계정 주가 IAM 계정에게VPC 권한
을 부여해주어야 한다!
IAM
> 액세스 관리
> 사용자 그룹
or 사용자
페이지에서
권한
> 권한 추가
(우측 버튼) > 정책 연결
(드롭다운)을 클릭하여
다음과 같이 AmazonVPCFullAccess
권한을 추가해준다.
이제 VPC 생성을 위한 준비가 다 끝났다.
AWS 검색창에서 VPC를 검색하여 VPC 대시보드로 로드된 뒤,
사진과 같은 VPC 생성
버튼을 눌러 준다.
조정할 수 있는 여러 항목들이 있지만, 우선은 다음의 세 항목을 조정 해준다
- 생성할 리소스:
VPC만
으로- 이름 태그: (적당히 직관적인 이름으로)
- IPv4 CIDR:
10.0.0/16
으로
👇🏻 이후 아래와 같이 별다른 오류 없는 생성 완료 창이 뜨면 성공🙆🏻!
본인이 IAM 사용자인 경우, 위와 같이 규칙 그룹 로드 실패
가 뜰 수 있다.
[원인]
👉🏻 Route53 접근 권한
이 없기 때문이며
🙅당황하지 말고🙅
[해결법]
👉 해당 AWS 계정의 Root 사용자
가 🔑권한을 부여해줌으로서 해결할 수 있다!
⚠️잠깐!⚠️
이건 IAM 계정이 아닌,
ROOT 계정 주가 진행해주어야 하는 부분이다!
먼저, IAM
> 액세스 관리
> 사용자 그룹
들어간 뒤 로드되는 페이지에서
권한
> 권한 추가
(우측 버튼) > 정책 연결
(드롭다운)을 클릭해준다
👇🏻 이후 다음과 같이 AmazonRoute53FullAccess
권한을 검색해 추가해준다
⚠️잠깐!⚠️
이렇게까지 했는데도 에러가 뜬다?!
Rout53ResolverFullAccess권한 까지 추가해줘버리자!
=> 이거 추가해준 이후로는 우리 팀에서 더이상 에러가 발생하지 않았다
VPC
> 서브넷
> 서브넷 생성
들어간 뒤,
아까 만든 VPC 선택해준다
1차로 1개의 서브넷을,
2차로 3개의 서브넷을 한 번에 생성할 것이다.
1차
- 서브넷 이름: ecs-public-subnet-1-jb
- 가용 영역: 2a
- IPv4 CIDR 블록: 10.0.1.0/24
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!
VPC 메뉴바에서 NAT 게이트웨이
를 클릭해준다.
사진과 같이 직관적으로 이름을 설정 해주고,
일단은 만들어둔 서브넷 목록들 중,
public
서브넷 중 첫번째(1번)
서브넷을 선택해준다.
탄력적 IP의 경우 다른 IAM 계정과 겹치지 않게 설정 해준다.
👇🏻 다음과 같이 오류 없이 생성 완료 창이 뜨면 성공이다🙆!
우측 상단의 인터넷 게이트웨이 생성
버튼 눌러준다
역시 직관적인 이름으로 설정 해준다
위에서 만들어진 인터넷 게이트웨이 창에서
우측 상단 작업
> VPC에 연결
버튼을 눌러준다
사용 가능한 VPC 목록들 중 위에서 생성했던 VPC
를 선택해준다
- 이름:
public
/private
을 구분하여 직관적인 이름으로 설정- VPC: 드롭다운 목록들 중
위에서 만들어둔 VPC
선택
아래처럼 완료 창 뜨면 OK!
이제 라우팅을 연결하기 위해 완료된 창에서
라우팅
> 라우팅 편집
을 눌러준다.
default로 설정 되어있는
10.0.0.0/0
은 건들지 말고,
좌측 하단의라우팅 추가
버튼을 눌러 새로 하나 만들어 준다.
그리고 아래와 같이 설정 해준다.
- 대상1:
0.0.0.0/0
으로 설정- 대상2:
인터넷 게이트웨이
선택 > 목록에서아까 만든 인터넷 게이트웨이
선택
아까와 같은 라우팅 테이블 생성 완료 페이지에서
서브넷 연결
> 서브넷 연결 편집
버튼을 클릭해준다
현재 생성한 라우팅 테이블은
esc-public
-route-table-jb
즉, public
용이기 때문에, 아까참에 만들어 둔 4 개의 서브넷들 중
public
서브넷 두 개를 선택하여 연결해준다.
👇🏻 아래처럼 public
route table에 연결된 서브넷으로 public
서브넷 두 개가 있으면 제대로 설정 완료된 것이다.
같은 방식으로
1) private
route table 생성 후
2) 이번엔 NAT 게이트웨이
연결하고,
3) private
서브넷 두 개 연결하면 최종 완료이다.
우리는 다음과 같이 두 개의 보안 그룹을 생성할 것이다.
- ecs-sg-
alb
-jb- ecs-sg-
instance
-jb
보안그룹은 방화벽 역할을 해 준다.
또한, 보안그룹 인바운드 규칙으로 또다른 보안그룹을 설정하면
해당 보안그룹은 포트와 상관 없이 마음대로 접속할 수 있다.
우리는 1번째 보안그룹의 인바운드 설정에 2번째 보안그룹을 종속시킬 것이다!
우선은 첫 번째 보안그룹을 생성하기 위해, 다음과 같이 설정 해준다
일단 HTTP
& Anywhere IPv4
조합으로 초기 규칙을 설정 해준다
그리고 똑같은 방식으로 두 번째 보안그룹인 ecs-sg-instance
-jb를 생성해준 뒤,
1번 보안그룹의 인바운드 규칙에
사용자 지정 TCP
& 2번째 보안그룹
(ecs-sg-instance
-jb) 조합으로 규칙 추가를 진행해준다.
VPC
메뉴에 들어가서
검색창에 jb(본인이 설정한 이름) 검색 후, public VPC들에 대해
우측 상단 작업
> 서브넷 설정 편집
눌러 들어간다
자동 할당 IP 설정 섹션에서
퍼블릭 IPv4 주소 자동 할당 활성화
를 체크해주고 저장후 나온다
EC2
> Load balancers
들어간 뒤 create~
누른다
로드 밸런서 타입으로는 ALB
(Application Load Balancer)를 선택해준다
VPC
설정 해주고,
매핑할 서브넷은 public
으로 맞춰 준다
내리다 보면 Listeners and routing 섹션에서
Create target group
을 눌러 새로운 타겟 그룹을 생성 해준다.
그 후 다음과 같이 타겟 그룹 이름
, 포트
, VPC
를 설정해주고,
프로토콜 버전은 HTTP1
으로 맞춰 준다.
다음과 같이 생성해준다
+) gRPC란?
👉🏻 REST API를 대체할 수 있는 구글의 프로시저 호출 시스템
gRPC는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출 시스템이다. 전송을 위해 HTTP/2를, 인터페이스 정의 언어로 프로토콜 버퍼를 사용하며 인증, 양방향 스트리밍 및 흐름 제어, 차단 및 비차단 바인딩, 취소 및 타임아웃 등의 기능을 제공한다.
(출처: 위키백과)
다수의 컨테이너를 조정, 운용하는 것
쿠버네티스
==> 가장 추천이 중 우리는 AWS
의 EKS
를 사용 해보려고 한다.
MSA를 사용한 서비스는 컨테이너에 오케스트레이션을 사용한다