"VPC에서 실행되는 ECS 서비스에 연결하는 서버리스 API 생성"
아무래도 api gateway의 경우 서버리스(lambda, ecs와 같은) 서비스와 함께 사용된다..
api gateway + lambda는 저번에 해봤으니까..
이번엔 api gateway + ecs다!(http api 구축이랑 rest api 구축이랑 콘솔 디자인이 다르다.. rest 꾸짐)
VPC link
- private VPC와의 엔드포인트를 통합하는 기능
- API Gateway와 private VPC 내의 리소스가 안전하고 빠르게 연결될 수 있도록
- https://aws.amazon.com/ko/blogs/compute/understanding-vpc-links-in-amazon-api-gateway-private-integrations/
(그림 아래의 사이트에 들어가 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) (2) | 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 |