[AWS] ECS Fargate 서비스와 ALB 대상 그룹 설정

yedi·2025년 2월 18일
post-thumbnail

URL을 통해 화면을 확인하려고 했을 때, ECS에서 생성한 EC2 인스턴스는 공인 IP나 Elastic IP로 직접 접속할 수 있었지만, Fargate에서는 서비스에 접속할 때 DNS 이름을 사용해야 한다는 점을 알게 되었다.
현재, ECS에서는 8080 포트를 사용하는 WEB 컨테이너와 60818 포트를 사용하는 API 컨테이너가 연결되어 있으며, 화면 접속은 8080 포트를 통해 이루어지고, API와의 통신은 60818 포트를 사용하고 있다.

이러한 배경을 바탕으로, DNS 접속을 위한 ALB와 대상 그룹의 개념 및 설정 방법에 대해 알아보자.


개념 및 배경

Fargate 서비스에서 ALB를 통한 URL 확인

  • EC2가 아닌 Fargate로 서비스 설정 시, 기존의 EC2 IP (예: 13.124.226.129)로는 URL을 확인할 수 없습니다. 대신 Fargate는 동적으로 IP를 할당하므로 고정된 IP 대신 DNS를 이용해 서비스에 접근해야 합니다. 이를 위해 ALB(Application Load Balancer)나 NLB(Network Load Balancer)를 통해 URL을 확인해야 합니다.

    • 참고 :
      • ALB는 주로 웹 애플리케이션에서 사용되며, HTTP/HTTPS 트래픽을 처리합니다.
      • NLB는 고성능과 저지연이 요구되는 서비스에서 사용됩니다.
  • URL 접속 시, 화면은 8080 포트로만 사용하며, API 통신은 60818 포트로 이루어지므로 ALB에서는 8080 포트만 설정하면 됩니다.


URL 구성 예시

  • EC2 :
    http://<ec2-public-ip>:8080
  • Fargate (ALB 사용) :
    http://<load-balancer-dns-name>

ALB 라우팅 구성

| ALB(80) → 대상 그룹(8080) → 컨테이너(8080) |

ALB는 80번 포트로 들어온 요청을 받아 8080번 포트에서 실행 중인 컨테이너로 전달합니다. 이 과정에서 ALB 리스너가 중요한 역할을 합니다. 리스너는 클라이언트의 요청을 받아 해당 요청을 어디로 전달할지 결정합니다.

  1. 클라이언트 요청
    : 사용자가 http://your-domain.com (포트 80)으로 접속합니다.
  2. ALB 리스너(80번 포트)
    : ALB 리스너는 들어온 HTTP 요청(포트 80)을 받아, 이를 대상 그룹(8080 포트)으로 전달합니다.
  3. 대상 그룹(8080 포트)
    : 대상 그룹은 요청을 등록된 ECS 컨테이너(8080 포트)로 라우팅합니다.
  4. 컨테이너 응답
    : 컨테이너가 생성한 응답을 ALB를 통해 다시 클라이언트에게 전달합니다.

네트워크 모드 & 대상 그룹 타입 차이

구분 Fargate (awsvpc 모드) EC2 (bridge/host/awsvpc 모드)
네트워크 모드 awsvpc
(컨테이너에 개별 IP 할당)
bridge (EC2가 IP 할당) / host (EC2 공유) / awsvpc 가능
대상 그룹 타입 IP (컨테이너 개별 IP 등록) 인스턴스 (EC2 등록 후 내부에서 컨테이너 연결)
트래픽 흐름 ALB → 컨테이너 직접 연결 ALB → EC2 → 컨테이너 내부 라우팅


설정 방법

ECS 서비스에서 ALB 설정 시, 대상 그룹을 새로 생성할 때 기본적으로 80 포트용 대상 그룹만 생성할 수 있습니다.
따라서 8080 포트의 대상 그룹을 별도로 생성해야 합니다.

1. EC2 > 대상 그룹 생성

AWS 콘솔에서 EC2 > 대상 그룹으로 이동한 후, "대상 그룹 생성" 버튼을 클릭합니다.

그룹 세부 정보 설정에서 먼저 기본 구성으로 "IP 주소"를 선택합니다.
Fargate는 ENI(Elastic Network Interface)를 사용하므로, "IP" 유형의 대상 그룹과만 호환됩니다.

이후 대상 그룹 이름을 입력합니다.

HTTP 프로토콜은 ALB와 호환되지만, TCP 프로토콜은 ALB와 호환되지 않으므로, 프로토콜 : 포트는 HTTP 와 8080로 작성합니다.

나머지 설정은 그대로 두고, '다음' 버튼을 클릭합니다.

대상 등록 화면으로 넘어가면, '대상 그룹 생성' 버튼을 클릭합니다.

다음과 같이 진행하면 대상 그룹이 성공적으로 생성된 것을 확인할 수 있습니다.

2. ECS Service > 로드 밸런싱 > ALB > 대상 그룹

ECS 서비스에서 '로드 밸런싱'을 선택한 후, 'ALB'와 '대상 그룹'으로 이동하여 기존 대상 그룹 사용을 선택합니다.
그리고 이전에 생성한 대상 그룹 이름을 선택합니다.

EC2 > 대상 그룹으로 다시 이동하면, 생성한 대상 그룹에 로드 밸런서가 추가된 것을 확인할 수 있습니다.

0개의 댓글