https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/http-api-private-integration.html#http-api-private-integration-create-api

"VPC에서 실행되는 ECS 서비스에 연결하는 서버리스 API 생성"

아무래도 api gateway의 경우 서버리스(lambda, ecs와 같은) 서비스와 함께 사용된다.. 

api gateway + lambda는 저번에 해봤으니까..

이번엔 api gateway + ecs다!(http api 구축이랑 rest api 구축이랑 콘솔 디자인이 다르다.. rest 꾸짐)

VPC link

(그림 아래의 사이트에 들어가 cloudformation 템플릿으로 한번에 올려서 테스트가 가능함..)

나는 차례대로 한 번 따라가 볼 예정!


  • ECS 생성(ALB를 사용하는 ECS 서비스 생성)

문서에서 제공하는 템플릿을 cloudformation에 스택을 올린다.(template.yaml)

관련된 서비스들이 어떻게 올라갔는지 확인해보자.

1. VPC

vpc 안에 public subnet 2개 / private subnet 2개 생성

ngw의 경우 public subnet에 2개 생성(private rtb과 각각 연결) - 이중화를 기본으로 하는 듯

 

2. ECS

클러스터 생성

태스크 정의 생성

태스크 역할: https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/task-iam-roles.html

태스크 실행 역할: https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/task_execution_IAM_role.html

 

태스크 실행 후에 서비스 배포(태스크 정의 카테고리에서 작업 → 태스크 실행 / 서비스 생성 해야 바로 ELB 붙일 수 있음..)

Task: Task definition 대로 배포된 container set(cluster에 속한 container instance에 배포됨)

Service: Task들의 라이프 사이클 관리(Task를 cluster에 몇 개 배포할 건지, ELB 관리, Auto Scaling 관리)

 

3. ALB

alb 생성(스키마: 내부 / 가용영역: private /보안그룹: 인바운드 80포트 - all ipv4)

listener(80포트 - 대상 그룹)

대상 그룹: ecs의 태스크 ip 등록

(얘는 서비스 생성 전에 만들어야 위의 서비스 생성 과정에서 ALB 붙일 수 있을듯?)

❗ 위의 내용은 나중에 따로 혼자서 해보는걸로... 현재는 그냥 cloudformation 템플릿 사용해서 올렸을 뿐 ❗

 

  • VPC link

api gateway → vpc link 클릭

서브넷의 경우 private들 선택

보안그룹 없어도 됨

 

  • HTTP API

api gateway → http api build

경로는 나중에 생성할 예정

  • 경로 생성

  • 통합 생성

경로 선택 → 통합 대상(프라이빗 리소스) → 수동 선택 → ALB/NLB(ALB 선택) → 리스너(HTTP 80) → VPC link 선택

 

  • API Test

api url에 들어가면 아래와 같은 화면을 얻을 수 있음.

새로 고침 여러번 누르고 ecs 서비스 상태를 확인해보면

다음과 같이 잘 동작하고 있는 것을 확인할 수 있다...

 

 

❗ 아직 ecs의 개념이 확실치 않으니 다음에는 ecs 정리편으로 돌아오겠다.. ❗

'Cloud > AWS' 카테고리의 다른 글

[AWS] ECS 실습 -2(ECS 구축)  (0) 2022.09.15
[AWS] ECS 개념 + 실습 -1(Docker image push)  (1) 2022.09.14
[AWS] Mobile Backend 구성  (1) 2022.09.08
[AWS] AWS Amplify -1(Amplify Studio)  (0) 2022.09.07
[AWS] Lambda와 RDS 연동(+ API Gateway)  (0) 2022.09.06

+ Recent posts