AWS Fargate에서 Amazon Elastic Container Service(Amazon ECS) 태스크에 대한 고정 IP 주소 또는 탄력적 IP 주소를 사용하고 싶습니다.
간략한 설명
고정 IP 주소 또는 탄력적 IP 주소는 Fargate 태스크에 직접 추가할 수 없습니다. Fargate 태스크에서 고정 IP 또는 탄력적 IP를 사용하려면 먼저 Network Load Balancer를 사용하여 Fargate 서비스를 생성해야 합니다. 그런 다음, 태스크의 탄력적 IP 주소를 로드 밸런서에 연결할 수 있습니다.
다음 옵션 중 하나를 선택합니다.
- 인바운드 트래픽을 위해 Fargate 태스크의 고정 IP 주소를 생성하려면 해결 방법 섹션에서 다음 단계를 완료합니다.
- 아웃바운드 트래픽을 위해 Fargate 태스크의 고정 IP 주소를 생성하려면 NAT 게이트웨이를 생성합니다. 이 시나리오에서는 다운스트림 소비자에게 고정 IP 주소가 필요합니다. Fargate 태스크는 프라이빗 서브넷에 배치해야 합니다. IP 허용 목록에 대해 NAT 게이트웨이 IP 주소를 사용할 수 있습니다.
해결 방법
Network Load Balancer 생성 및 대상 그룹에 대한 라우팅 구성
- Amazon EC2 콘솔을 엽니다.
- 탐색 창의 **로드 밸런싱(Load Balancing)**에서 **로드 밸런서(Load Balancers)**를 선택합니다.
- **로드 밸런서 생성(Create Load Balancer)**을 선택합니다.
- 로드 밸런서 유형 선택(Select load balancer type) 페이지에서 Network Load Balancer에 대해 **생성(Create)**을 선택합니다.
- Network Load Balancer 생성(Create Network Load Balancer) 페이지의 **로드 밸런서 이름(Load balancer name)**에 Network 로드 밸런서 이름을 입력합니다.
- **체계(Scheme)**에서 인터넷 연결(Internet-facing) 또는 **내부(Internal)**를 선택합니다.
- **IP 주소 유형(IP address type)**에 대해 IPv4를 선택합니다.
- 네트워크 매핑(Network mapping) 섹션의 VPC에서 Fargate 태스크에 대한 Amazon Virtual Private Cloud(Amazon VPC)를 선택합니다.
- **매핑(Mappings)**에서 하나 이상의 가용 영역과 각 영역에 대한 하나의 서브넷을 선택합니다.
참고: 여러 가용 영역을 사용하면 애플리케이션의 내결함성이 향상됩니다. 인터넷 연결 로드 밸런서의 경우 각 가용 영역에 대해 탄력적 IP 주소를 선택할 수 있습니다. 그러면 로드 밸런서에 고정 IP 주소가 제공됩니다. 또는 내부 로드 밸런서의 경우 AWS에서 자동으로 할당하는 대신, 사용자가 각 서브넷의 IPv4 범위에서 프라이빗 IP 주소를 할당할 수 있습니다.
- 리스너 및 라우팅(Listeners and routing) 섹션에서 기본 리스너를 유지하거나 다른 리스너를 추가합니다.
참고: 기본 리스너는 포트 80에서 TCP 트래픽을 허용합니다. 기본 리스너 설정을 유지하거나, 리스너의 프로토콜 또는 포트를 수정하거나, **리스너 추가(Add listener)**를 선택하여 다른 리스너를 추가할 수 있습니다.
- **프로토콜(Protocol)**에서 원하는 프로토콜을 선택합니다.
- **포트(Port)**에서 포트를 선택합니다.
- **기본 작업(Default action)**에서 **대상 그룹 생성(Create target group)**을 선택합니다.
참고: 대상 그룹은 대상 그룹으로 요청을 전달하는 Network Load Balancer 리스너 규칙에서 사용합니다.
- 그룹 세부 정보 지정(Specify group details) 페이지의 **대상 유형 선택(Choose a target type)**에서 **IP 주소(IP addresses)**를 선택합니다.
참고: 대상 유형 인스턴스는 Fargate에서 지원되지 않습니다.
- **대상 그룹 이름(Target group name)**에 대상 그룹 이름을 입력합니다.
- 상태 확인(Health checks) 섹션에서 기본 설정을 유지합니다.
- **다음(Next)**을 선택합니다.
참고: 로드 밸런서는 대상 그룹 내 대상 사이에서 트래픽을 분산합니다. 대상 그룹이 Amazon ECS 서비스와 연결된 경우 Amazon ECS는 자동으로 컨테이너를 대상 그룹에 등록 및 등록 취소합니다. Amazon ECS가 대상 등록을 처리하므로 사용자는 대상 그룹에 대상을 추가하지 않아도 됩니다.
- 대상 등록(Register targets) 페이지에서 **대상 그룹 생성(Create target group)**을 선택합니다.
- Network Load Balancer 생성(Create Network Load Balancer) 페이지로 이동합니다.
- 리스너 및 라우팅(Listeners and routing) 섹션의 **전달 대상(Forward to)**에서 사용자가 생성한 대상 그룹을 선택합니다.
- **로드 밸런서 생성(Create load balancer)**을 선택합니다.
Amazon ECS 서비스 생성
Amazon ECS 서비스를 생성합니다. 서비스를 생성할 때 서비스 정의에 대상 그룹을 지정해야 합니다.
서비스에 대한 각 태스크가 시작되면 서비스 정의에 지정된 컨테이너 및 포트 조합이 대상 그룹에 등록됩니다. 그런 다음, 트래픽은 로드 밸런서에서 해당 컨테이너로 라우팅됩니다.
관련 정보
서비스 로드 밸런싱