AWS에서 다중 계정 호스트와 다중 서비스를 사용할 때의 구조 모드(2)

5006 단어 AWS

개시하다


AWS에서 다중 계정 호스트에 여러 서비스가 있을 때의 구조 모델을 소개합니다.
두 번째 글로 첫글에서 단일 계좌의 모델을 소개했다.

다중 계정의 경우


우선 단일 계정 모드에서 소개한 설정이 다중 계정이 가능한지 살펴보자.

ALB는 선행 모드


일단 여기야.
현재 ALB의 계정 간에 공유 기능이 없기 때문에 A클래스 계정은 ALB를 가지고 있고 A클래스 계정은 App1을 가지고 있으며 A클래스 계정은 App2를 가지고 있고 A클래스 계정은 App2를 가지고 있다.이렇게 말하면 안 돼.

HTTP API는 선행 모드입니다.


다음은 여기야.
HTTP API와 내부 ALB의 결합 기능은 같은 계정 내의 자원이어야 하기 때문에 계정 A는 API Gateway를 가지고 있고 계정 B는 내부 ALB를 가지고 있다.이러면 안 될 것 같은데.

REST API는 전면 모드입니다.


다음은 여기야.
REST API와 내부 NLB의 결합 기능도 같은 계정 내의 자원이 필요하기 때문에 계정 B는 API Gateway, 내부 NLB를 가지고 있다.이러면 안 될 것 같은데.

내 몸 상태가 나빠졌다.
다음 거 봅시다.

REST API 프런트에서 외부 ALB 백엔드 모드


오, 이건 마라톤이라고 할 수 있을 것 같아.
계정 A로 API Gateway를 만들고, ALB는 계정 B로 만듭니다.
API Gateway와 ALB의 연결을 Public로 설정하면 API Gateway만 관리하는 계정과 ALB와 그 연관 리소스를 관리하는 계정으로 나눌 수 있다.(ALB에 대한 액세스 제한은 첫 번째 기사를 참조하십시오.)

그러나 본고에서 말한 바와 같이 ALB의 계정 공유 기능이 없기 때문에 이 설정도라면 App1과 App2는 같은 계정일 것이다.
나는 그 방법을 좀 고려하고 싶다.

경로마다 ALB 모드가 있음


여기서 API Gateway, App1용 ALB, App2용 ALB를 각각 보유할 수 있다.
(참고로 람바다(App3)도 다른 계정을 갖고 싶다면 프론트 데스크의 API Gateway 뒤에는'ALB-Lambda'나'API Gateway-Lambda'가 있을 수 있다고 생각한다.별로인기가없는 것 같은데...

이거 추가, 즉 path3용 ALB, path4용 ALB...추가되면 안내데스크를 API Gateway로 통일하고 각각 다른 계정으로 백엔드를 만들 수 있다.

API Gateaway-AALB 사이의 공공연한 연결을 도저히 용납할 수 없을 때


REST API의 기능은 필수지만 ALB를 사용하고 싶습니다.하지만 퍼블릭 연결이 허용되지 않는 경우도 적지 않다고 생각합니다.
이런 상황에서 다중 계정 모델을 고려해 보고 싶습니다.

App으로 계정을 분류하고 싶을 때.


구성도에는 API gateway, 내부 NLB, 리버스 에이전트(nginx 등)를 만드는 전면 계정과 ELB와 앱이 있는 앱 계정으로 나뉜다.그리고 프로그램의 수량에 따라 프로그램 계정이 생길 수 있다.
여러 VPC 간에 VPC pering 또는 Transit Gateway를 통해 서로 연결됩니다.
이렇게 되면 API Gatwy에서 실제 앱으로의 경로가 VPC에서 외출하지 않는 priverte 통신으로 바뀐다.
매번 프로그램이 증가할 때마다nginx의 설정을 추가로 변경해야 한다는 것을 고려해야 한다.

App로 분류되지 않은 경우


계정을 앱별로 분류하지 않아도 되는데, 앞에서 계정과 애플리케이션용 계정으로 분리하면 OK인 경우
상기'응용 프로그램이 증가함에 따라nginx의 설정을 추가로 변경해야 한다'는 시간은 없다.
구체적으로 말하면 설정도에서 보듯이nginx를 간단한 역방향 에이전트로 설정하고(모든 요청은 하나의 ALB에서 재생) 실제 루트는 ALB로 진행하며 응용 프로그램이 증가하더라도 기본적으로 Nginx의 설정을 변경할 필요가 없다.앱 계정의 ALB 주변에서 괴롭힘을 당하면 된다.
앱별로 계정을 분류하지 않아도 된다면, 의외로 간단해지겠죠.

(뒷담화) API Gateway가 아니라 ELB를 앞에 두는 모드예요.


생각이 완전히 같지만 앱에서 사용하는 계정은 어떡하죠? 저도 다음과 같은 두 가지 모델이 있을 것 같아요.


총결산


현관과 애플리케이션을 통해 AWS 계정을 나누려면 현재 AWS 측의 제약도 있어 일반적인 방법으로 구분하기는 어려울 것 같다.
개인적으로는 API Gateway가 필수인지에 따라 응용 프로그램이 사용하는 AWS 계정의 배분 방법이 어떻게 선택되는지에 따라 달라질 수 있다.
API Gateway의 기능이 매력적이기 때문에 개인적으로 사용하고 싶은 분들이 많을 거라고 생각합니다.
따라서 앱용 계정을 분리하려면 이 모드(재대출)가 필요하다.그러나 애플리케이션이 추가될 때 Nginx 설정을 변경하기 위해 어떠한 노력도 할 수 있습니다.

만약 응용 프로그램에서 사용하는 계정을 분리할 필요가 없다면, 나는 이 모델이 비교적 좋다고 생각한다.

뒷말


이번에는/path1과/path2로 프로그램을 분리하려고 합니다.주요 목적이 라우팅인 만큼 ALB와 API Gateway를 이용한 라우팅 구조를 주로 소개했지만, 통상적인 라우팅 외에도 재시도, 접속수 제한, 회로 차단기 등의 기능이 필요할 수 있다는 것이다.
이 경우 ALB가 대응할 수 없고, AWS 서비스라면 앱 메시를 이용할 것 같다.
다음에는 앱메시를 사용하는 멀티 계정 모드를 소개하고 싶다.

좋은 웹페이지 즐겨찾기