Post

[AWS] ECS를 이용한 Serverless 웹 서비스 구현하기

[AWS] ECS를 이용한 Serverless 웹 서비스 구현하기

[AWS] ECS를 이용한 Serverless 웹 서비스 구현하기

개요

ECS(Elastic Container Service)는 AWS의 컨테이너 오케스트레이션 서비스로, 이번 포스트에서는 Fargate 런타입을 기반으로 서버리스 환경에서 Node.js 앱을 배포하는 방법을 정리합니다.

이전 포스트에서 다룬 [ECR 실습 가이드]에서 만든 이미지를 활용하여 ECS 서비스로 구성합니다.


🧩 사용 기술 스택 및 목표

  • ECR: 이미지 저장소 (사전 구축)
  • ECS + Fargate: 서버리스 컨테이너 배포
  • ALB: 로드밸런싱 처리

목표: AWS 관리형 인프라를 활용하여 Node.js 웹 앱을 서버리스 형태로 배포하기


작업 순서

  1. ECS 클러스터 생성
  2. 테스크 정의(Task Definition) 생성
  3. ECS 서비스 생성 및 배포
  4. ALB로 접속 테스트

1. ECS 클러스터 생성

  • 클러스터 이름 설정
  • 인프라 유형: Fargate 선택


2. Task Definition 생성

  • 런타입: Fargate
  • CPU/Memory 설정
  • IAM Task Role 선택

  • 컨테이너 정의: 이름, 포트(4000), 이미지 URL(ECR)


3. ECS 서비스 생성

  • 시작 유형: FARGATE
  • 서비스 수: 1개

배포 구성

  • 서비스 유형: 서비스
  • 패밀리: 이전 생성한 Task Definition 선택

로드밸런싱 설정

  • ALB 생성 및 리스너: 포트 4000
  • 대상 그룹 구성: 건강 상태 체크 포함

4. 로드밸런서 접속 테스트

대상 그룹 확인

  • 상태: Healthy 확인

ALB DNS 접속

  • 브라우저에서 ALB DNS로 접속


✅ 마무리

이렇게 AWS의 ECS + Fargate를 기반으로 서버리스 구조의 웹 서비스를 구성해보았습니다.

ECR에서 이미지를 가져와 ECS에서 배포하고, ALB를 통해 안정적으로 트래픽을 전달받는 구조로 이어지는 전체 흐름을 체험해볼 수 있는 실습이었습니다.


📎 관련 문서

감사합니다 🙌

This post is licensed under CC BY 4.0 by the author.