❗ ❗ ❗ 이 프로젝트는 더 이상 적극적으로 유지 관리되지 않습니다. AWS에 새로운 Fargate 배포를 위한 더 나은 옵션은 AWS Copilot CLI입니다. 이 CLI는 더욱 기능이 뛰어나고 AWS에서 적극적으로 유지 관리합니다. ❗ ❗ ❗
기본적으로 Fargate는 us-east-1 을 사용합니다. CLI는 --region 매개변수를 허용하고 AWS_REGION 및 AWS_DEFAULT_REGION 환경 설정을 따릅니다. 필요한 모든 서비스를 사용할 수 없는 지역을 지정하면 오류가 반환됩니다.
어떤 지역에서 어떤 서비스를 사용할 수 있는지에 대한 분석은 지역 표를 참조하세요.
Fargate는 다음 위치에서 자격 증명을 찾는 Go용 AWS SDK를 사용하여 구축되었습니다.
환경 변수
공유 자격 증명 파일
EC2 인스턴스 프로필
자세한 내용은 Go용 AWS SDK 설명서의 자격 증명 지정을 참조하십시오.
깃발 | 기본 | 설명 |
---|---|---|
--무리 | 파게이트 | ECS 클러스터 이름 |
--지역 | 미국-동부-1 | AWS 지역 |
--색상 없음 | 거짓 | 컬러 출력 비활성화 |
--말 수가 많은 | 거짓 | 자세한 출력 |
작업은 컨테이너의 일회성 실행입니다. 작업 인스턴스는 AWS API, AWS Management Console 또는 fargate task stop
통해 수동으로 중지하거나 어떤 이유로든 중단될 때까지 실행됩니다.
fargate task list
실행 중인 작업 그룹 나열
fargate task run <task-group-name> [--num <count>] [--cpu <cpu-units>] [--memory <MiB>]
[--image <docker-image>] [--env <key=value>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
새 작업 실행
후속 명령에서 작업과 상호 작용하여 로그를 보고, 작업을 중지하고 검사하려면 작업 그룹 이름을 지정해야 합니다. 작업 그룹 이름은 고유할 필요가 없습니다. 동일한 작업 그룹으로 작업 인스턴스의 여러 구성을 시작할 수 있습니다.
--num 플래그에 숫자를 지정하여 작업의 여러 인스턴스를 실행할 수 있습니다. 숫자를 지정하지 않으면 단일 작업 인스턴스가 실행됩니다.
--cpu 및 --memory 플래그를 사용하여 CPU 및 메모리 설정을 각각 CPU 단위 및 메비바이트로 선택적으로 지정할 수 있습니다. 1024개 CPU 단위마다 vCPU 1개와 동일합니다. AWS Fargate는 특정 CPU 및 메모리 구성 조합만 지원합니다.
CPU(CPU 유닛) | 메모리(MiB) |
---|---|
256 | 512, 1024 또는 2048 |
512 | 1GiB 단위로 1024~4096 |
1024 | 2048~8192(1GiB 증분) |
2048년 | 4096~16384(1GiB 증분) |
4096 | 8192~30720(1GiB 증분) |
지정하지 않으면 Fargate는 0.25 vCPU(256 CPU 단위) 및 0.5GB(512 MiB) 메모리에서 최소 크기의 작업을 시작합니다.
작업에 사용할 Docker 컨테이너 이미지는 --image 플래그를 통해 선택적으로 지정할 수 있습니다. 지정하지 않으면 Fargate는 현재 작업 디렉터리에서 새 Docker 컨테이너 이미지를 구축하고 이를 작업 그룹 이름의 리포지토리에 있는 Amazon ECR에 푸시합니다. 현재 작업 디렉터리가 git 저장소인 경우 컨테이너 이미지에는 HEAD 커밋의 짧은 참조로 태그가 지정됩니다. 그렇지 않은 경우 YYYYMMDDHHMMSS 형식의 타임스탬프가 사용됩니다.
환경 변수는 --env 플래그를 통해 지정할 수 있습니다. 여러 변수를 추가하려면 key=value 매개변수와 함께 --env를 여러 번 지정합니다.
보안 그룹 ID와 함께 --security-group-id 플래그를 전달하여 작업에 대해 선택적으로 보안 그룹을 지정할 수 있습니다. 여러 보안 그룹을 추가하려면 --security-group-id를 보안 그룹 ID와 함께 여러 번 전달하세요. --security-group-id를 생략하면 허용되는 보안 그룹이 작업에 적용됩니다.
기본적으로 작업은 기본 VPC에 생성되고 각 가용 영역의 기본 VPC 서브넷에 연결됩니다. --subnet-id 플래그를 서브넷 ID와 함께 전달하여 명시적인 서브넷을 지정하면 이를 재정의할 수 있습니다.
작업 역할은 전체 IAM 역할 ARN 또는 IAM 역할 이름을 제공하여 --task-role 플래그를 통해 선택적으로 지정할 수 있습니다. 작업이 이 역할을 맡을 수 있습니다.
fargate task info <task-group-name> [--task <task-id>]
작업 검사
작업 그룹 내에서 실행 중인 각 작업 또는 --task 플래그로 지정된 특정 작업에 대한 확장 정보를 표시합니다. 정보에는 작업 그룹의 작업마다 다를 수 있는 환경 변수가 포함됩니다. 작업 그룹 특정 --task 내의 여러 특정 작업을 작업 ID로 여러 번 검사합니다.
fargate task ps <task-group-name>
실행 중인 작업 나열
fargate task logs <task-group-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
작업 로그 표시
--follow 옵션을 사용하여 작업 로그의 특정 세그먼트 또는 테일 로그를 실시간으로 반환합니다. 로그 앞에는 "fargate/<task-group-name>/<task-id>" 형식의 로그 스트림 이름이 붙습니다.
Control-C에 의해 중단될 때까지 Follow는 계속 실행되고 로그를 반환합니다. --follow가 전달되면 --end를 지정할 수 없습니다.
--task 플래그를 통해 작업 ID를 전달하면 작업 그룹 내의 특정 작업에 대한 로그가 반환될 수 있습니다. 여러 특정 작업에서 로그를 검색하려면 작업 ID와 함께 --task를 여러 번 전달합니다.
--start 및 --end 옵션을 시간 표현식과 함께 전달하여 특정 로그 창을 요청할 수 있습니다. 시간 표현식은 기간 또는 타임스탬프일 수 있습니다.
--filter 플래그를 통해 필터 표현식을 전달하여 특정 용어에 대한 로그를 필터링할 수 있습니다. 해당 용어를 검색하려면 단일 용어를 전달하고, 모든 용어를 포함하는 로그 메시지를 검색하려면 여러 용어를 전달하십시오. 자세한 내용은 CloudWatch Logs 설명서를 참조하십시오.
fargate task stop <task-group-name> [--task <task-id>]
작업 중지
작업 그룹 이름만 사용하여 실행하는 경우 작업 그룹 내의 모든 작업을 중지하거나 --task 플래그를 통해 하나 이상의 작업이 전달되는 경우 개별 작업을 중지합니다. 여러 특정 작업을 중지하려면 작업 ID 매개변수와 함께 --task를 여러 번 지정합니다.
서비스는 AWS Fargate에서 실행되는 컨테이너의 장기 인스턴스를 관리합니다. 어떤 이유로든 컨테이너가 종료되면 서비스 스케줄러는 컨테이너를 다시 시작하고 서비스에서 원하는 수의 작업이 실행되도록 합니다. 서비스를 로드 밸런서와 함께 사용하여 서비스의 작업 간에 트래픽을 분산할 수 있습니다.
fargate service list
서비스 나열
fargate service create <service name> [--cpu <cpu units>] [--memory <MiB>] [--port <port-expression>]
[--lb <load-balancer-name>] [--rule <rule-expression>]
[--image <docker-image>] [--env <key=value>] [--num <count>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
새 서비스 만들기
--cpu 및 --memory 플래그를 사용하여 CPU 및 메모리 설정을 각각 CPU 단위 및 메비바이트로 선택적으로 지정할 수 있습니다. 1024개 CPU 단위마다 vCPU 1개와 동일합니다. AWS Fargate는 특정 CPU 및 메모리 구성 조합만 지원합니다.
CPU(CPU 유닛) | 메모리(MiB) |
---|---|
256 | 512, 1024 또는 2048 |
512 | 1GiB 단위로 1024~4096 |
1024 | 2048~8192(1GiB 증분) |
2048년 | 4096~16384(1GiB 증분) |
4096 | 8192~30720(1GiB 증분) |
지정하지 않으면 Fargate는 0.25 vCPU(256 CPU 단위) 및 0.5GB(512 MiB) 메모리에서 최소 크기의 작업을 시작합니다.
서비스에 사용할 Docker 컨테이너 이미지는 --image 플래그를 통해 선택적으로 지정할 수 있습니다. 지정하지 않으면 Fargate는 현재 작업 디렉터리에서 새 Docker 컨테이너 이미지를 구축하고 이를 작업 그룹 이름의 리포지토리에 있는 Amazon ECR에 푸시합니다. 현재 작업 디렉터리가 git 저장소인 경우 컨테이너 이미지에는 HEAD 커밋의 짧은 참조로 태그가 지정됩니다. 그렇지 않은 경우 YYYYMMDDHHMMSS 형식의 타임스탬프가 사용됩니다.
로드밸런서와 함께 서비스를 사용하려면 서비스 생성 시 포트를 지정해야 합니다. --port 플래그와 프로토콜:포트 번호의 포트 표현을 전달하여 포트를 지정합니다. 예를 들어 서비스가 포트 80에서 수신 대기하고 HTTP를 사용하는 경우 HTTP:80을 지정합니다. 유효한 프로토콜은 HTTP, HTTPS 및 TCP입니다. 단일 포트만 지정할 수 있습니다.
선택적으로 로드 밸런서를 사용하도록 서비스를 구성할 수 있습니다. 서비스 앞에 로드 밸런서를 배치하려면 로드 밸런서 이름과 함께 --lb 플래그를 전달합니다. 로드 밸런서를 지정하는 경우 로드 밸런서가 요청을 전달해야 하는 --port 플래그를 통해 포트도 지정해야 합니다. 선택적으로 규칙에 따라 HTTP/HTTPS 트래픽을 서비스로 라우팅하도록 Application Load Balancer를 구성할 수 있습니다. 규칙 표현식과 함께 --rule 플래그를 지정하여 하나 이상의 규칙을 전달하여 규칙을 구성합니다. 규칙 표현식은 TYPE=VALUE 형식입니다. 유형은 PATH 또는 HOST일 수 있습니다. PATH는 요청의 PATH와 일치하고 HOST는 HTTP 요청에서 요청된 호스트 이름과 일치합니다. PATH 및 HOST 유형 모두 최대 3개의 와일드카드 문자를 포함할 수 있습니다. *는 여러 문자와 일치하고 ? 단일 문자와 일치합니다. 규칙을 생략하면 서비스가 로드 밸런서의 기본 작업이 됩니다.
환경 변수는 --env 플래그를 통해 지정할 수 있습니다. 여러 변수를 추가하려면 key=value 매개변수와 함께 --env를 여러 번 지정합니다.
--num 플래그를 숫자와 함께 전달하여 서비스가 유지해야 하는 원하는 작업 수를 지정합니다. 이 플래그를 생략하면 Fargate는 원하는 작업 수 1로 서비스를 구성합니다.
보안 그룹 ID와 함께 --security-group-id 플래그를 전달하여 선택적으로 서비스에 대해 보안 그룹을 지정할 수 있습니다. 여러 보안 그룹을 추가하려면 --security-group-id를 보안 그룹 ID와 함께 여러 번 전달하세요. --security-group-id를 생략하면 허용되는 보안 그룹이 서비스에 적용됩니다.
기본적으로 서비스는 기본 VPC에 생성되고 각 가용 영역의 기본 VPC 서브넷에 연결됩니다. --subnet-id 플래그를 서브넷 ID와 함께 전달하여 명시적인 서브넷을 지정하면 이를 재정의할 수 있습니다.
작업 역할은 전체 IAM 역할 ARN 또는 IAM 역할 이름을 제공하여 --task-role 플래그를 통해 선택적으로 지정할 수 있습니다. 서비스에서 실행하는 작업은 이 역할을 맡을 수 있습니다.
fargate service deploy <service-name> [--image <docker-image>]
서비스에 새 이미지 배포
서비스에 사용할 Docker 컨테이너 이미지는 --image 플래그를 통해 선택적으로 지정할 수 있습니다. 지정하지 않으면 Fargate는 현재 작업 디렉터리에서 새 Docker 컨테이너 이미지를 구축하고 이를 작업 그룹 이름의 리포지토리에 있는 Amazon ECR에 푸시합니다. 현재 작업 디렉터리가 git 저장소인 경우 컨테이너 이미지에는 HEAD 커밋의 짧은 참조로 태그가 지정됩니다. 그렇지 않은 경우 YYYYMMDDHHMMSS 형식의 타임스탬프가 사용됩니다.
fargate service info <service-name>
서비스 점검
로드 밸런서 구성, 활성 배포 및 환경 변수를 포함하여 서비스에 대한 확장 정보를 표시합니다.
배포에는 실행 중인 서비스의 활성 버전이 표시됩니다. CPU, 메모리 또는 환경 변수와 같은 구성에 대한 배포 또는 업데이트로 인해 서비스가 전환되는 경우 다중 배포가 표시됩니다.
fargate service logs <service-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
서비스의 작업 로그 표시
--follow 옵션을 사용하여 서비스 로그의 특정 세그먼트 또는 테일 로그를 실시간으로 반환합니다. 로그 앞에는 "fargate/<service-name>/<task-id>" 형식의 로그 스트림 이름이 붙습니다.
Control-C에 의해 중단될 때까지 Follow는 계속 실행되고 로그를 반환합니다. --follow가 전달되면 --end를 지정할 수 없습니다.
--task 플래그를 통해 작업 ID를 전달하여 서비스 내의 특정 작업에 대한 로그를 반환할 수 있습니다. 여러 특정 작업에서 로그를 검색하려면 작업 ID와 함께 --task를 여러 번 전달합니다.
--start 및 --end 옵션을 시간 표현식과 함께 전달하여 특정 로그 창을 요청할 수 있습니다. 시간 표현식은 기간 또는 타임스탬프일 수 있습니다.
--filter 플래그를 통해 필터 표현식을 전달하여 특정 용어에 대한 로그를 필터링할 수 있습니다. 해당 용어를 검색하려면 단일 용어를 전달하고, 모든 용어를 포함하는 로그 메시지를 검색하려면 여러 용어를 전달하십시오. 자세한 내용은 CloudWatch Logs 설명서를 참조하십시오.
fargate service ps <service-name>
서비스에 대해 실행 중인 작업 나열
fargate service scale <service-name> <scale-expression>
서비스의 작업 수 확장
주어진 스케일 표현식으로 서비스에서 실행하려는 작업 수를 변경합니다. 스케일 표현식은 절대 숫자이거나 +5 또는 -2와 같은 기호로 지정된 델타일 수 있습니다.
fargate service env set <service-name> --env <key=value>
환경 변수 설정
--env 플래그를 통해 하나 이상의 환경 변수를 지정해야 합니다. 여러 변수를 추가하려면 key=value 매개변수와 함께 --env를 여러 번 지정합니다.
fargate service env unset <service-name> --key <key-name>
설정되지 않은 환경 변수
--key 플래그를 통해 지정된 환경 변수를 설정 해제합니다. 여러 변수를 설정 해제하려면 키 이름과 함께 --key를 여러 번 지정하세요.
fargate service env list <service-name>
환경 변수 표시
fargate service update <service-name> [--cpu <cpu-units>] [--memory <MiB>]
서비스 구성 업데이트
CPU 및 메모리 설정은 --cpu 및 --memory 플래그를 사용하여 각각 CPU 단위 및 메비바이트로 지정됩니다. 1024개 CPU 단위마다 vCPU 1개와 동일합니다. AWS Fargate는 특정 CPU 및 메모리 구성 조합만 지원합니다.
CPU(CPU 유닛) | 메모리(MiB) |
---|---|
256 | 512, 1024 또는 2048 |
512 | 1GiB 단위로 1024~4096 |
1024 | 2048~8192(1GiB 증분) |
2048년 | 4096~16384(1GiB 증분) |
4096 | 8192~30720(1GiB 증분) |
--cpu 또는 --memory 중 하나 이상을 지정해야 합니다.
fargate service restart <service-name>
서비스 다시 시작
서비스에 대한 새 작업 세트를 생성하고 이전 작업을 중지합니다. 예를 들어 서비스가 외부 소스에서 캐시된 데이터를 다시 로드해야 하는 경우에 유용합니다.
fargate service destroy <service-name>
서비스 폐기
서비스를 삭제하려면 먼저 실행 중인 작업이 0개로 확장되어야 합니다.
로드 밸런서는 HTTP/HTTPS 및 TCP 애플리케이션에 대한 서비스 내의 작업 간에 들어오는 트래픽을 분산합니다. HTTP/HTTPS 로드 밸런서는 새 서비스를 생성할 때 지정한 규칙에 따라 여러 서비스로 라우팅할 수 있습니다.
fargate lb list
로드 밸런서 나열
fargate lb create <load-balancer-name> --port <port-expression> [--certificate <certificate-name>]
[--subnet-id <subnet-id>] [--security-group-id <security-group-id>]
[--scheme <lb-scheme>]
부하 분산 장치 만들기
--port 플래그와 프로토콜:포트 번호의 포트 표현을 통해 로드 밸런서 리스너에 대해 하나 이상의 포트를 지정해야 합니다. 예를 들어 HTTP 로드 밸런서가 포트 80에서 수신 대기하도록 하려면 HTTP:80을 지정합니다. 유효한 프로토콜은 HTTP, HTTPS 및 TCP입니다. --port 플래그를 포트 표현식과 함께 여러 번 전달하여 여러 리스너를 지정할 수 있습니다. 단일 로드 밸런서에서는 TCP 포트와 HTTP/HTTPS 포트를 혼합할 수 없습니다.
인증서 이름과 함께 --certificate 플래그를 전달하여 HTTPS 포트를 보호하는 인증서를 선택적으로 포함할 수 있습니다. 요청에 적합한 인증서를 선택하기 위해 SNI(서비스 이름 식별)를 사용하는 단일 로드 밸런서에 추가 인증서를 추가하려면 이 옵션을 여러 번 지정할 수 있습니다.
기본적으로 로드 밸런서는 기본 VPC에 생성되고 각 가용 영역의 기본 VPC 서브넷에 연결됩니다. --subnet-id 플래그를 서브넷 ID와 함께 전달하여 명시적인 서브넷을 지정하면 이를 재정의할 수 있습니다. HTTP/HTTPS 부하 분산기에는 연결된 서브넷이 2개 이상 필요하지만 TCP 부하 분산기에는 서브넷 하나만 필요합니다. 각 가용성 영역에서 단일 서브넷만 지정할 수 있습니다.
보안 그룹 ID와 함께 --security-group-id 플래그를 전달하여 HTTP/HTTPS 로드 밸런서에 대해 선택적으로 보안 그룹을 지정할 수 있습니다. 여러 보안 그룹을 추가하려면 --security-group-id를 보안 그룹 ID와 함께 여러 번 전달하세요. --security-group-id를 생략하면 허용되는 보안 그룹이 로드 밸런서에 적용됩니다.
--scheme 플래그를 통해 로드 밸런서의 구성표 유형을 선택할 수도 있습니다. 기본적으로 로드 밸런서는 인터넷에 연결되어 있습니다.
fargate lb destroy <load-balancer-name>
로드 밸런서 제거
fargate lb alias <load-balancer-name> <hostname>
로드 밸런서 별칭 레코드 생성
Amazon Route 53 및 동일한 AWS 계정 내에서 호스팅되는 도메인에 대한 로드 밸런서에 대한 별칭 레코드를 생성합니다. 다른 DNS 공급자를 사용하거나 다른 계정에서 도메인을 호스팅하는 경우 이 레코드를 수동으로 생성해야 합니다.
fargate lb info <load-balancer-name>
로드 밸런서 검사
로드 밸런서에서 사용 중인 리스너, 규칙 및 인증서 목록을 포함하여 로드 밸런서에 대한 확장 정보를 반환합니다.
인증서는 로드 밸런서와 최종 사용자 간의 트래픽을 보호하는 데 사용하기 위해 AWS Certificate Manager에서 발급하거나 AWS Certificate Manager로 가져온 TLS 인증서입니다. ACM은 AWS 리소스 내에서 사용할 수 있도록 TLS 인증서를 무료로 제공합니다.
fargate certificate list
인증서 나열
fargate certificate import <domain-name> --certificate <filename> --key <filename> [--chain <filename>]
인증서 가져오기
인증서 파일, 개인 키 파일 및 선택적으로 중간 인증서 체인 파일에서 인증서를 업로드합니다. 파일은 PEM으로 인코딩되어야 하며 개인 키는 암호화되거나 암호로 보호되어서는 안 됩니다. 자세한 내용은 AWS Certificate Manager 설명서를 참조하십시오.
fargate certificate request <domain-name> [--alias <domain-name>]
인증서 요청
인증서는 정규화된 도메인 이름(예: www.example.com) 또는 와일드카드 도메인 이름(예: *.example.com)에 대한 것일 수 있습니다. --alias 플래그를 통해 추가 도메인 이름을 지정하여 인증서에 별칭을 추가할 수 있습니다. 여러 별칭을 추가하려면 --alias를 여러 번 전달합니다. 기본적으로 AWS Certificate Manager에는 인증서당 도메인 이름이 10개로 제한되어 있지만 AWS 지원을 통해 이 제한을 늘릴 수 있습니다.
fargate certificate info <domain-name>
인증서 검사
인증서에 대한 확장 정보를 표시합니다. 도메인 소유권을 검증하기 위해 생성해야 하는 DNS 레코드를 보여주는 인증서에 대한 각 검증을 포함합니다.
fargate certificate validate <domain-name>
인증서 소유권 확인
Fargate는 자동으로 DNS 검증 레코드를 생성하여 Amazon Route 53 내에서 호스팅되는 모든 도메인 이름의 소유권을 확인합니다. 인증서에 별칭이 있는 경우 별칭별로 검증 레코드가 시도됩니다. 도메인이 다른 DNS 호스팅 공급자 또는 다른 DNS 계정에서 호스팅되고 자동으로 유효성을 검사할 수 없는 모든 레코드에는 필요한 레코드가 출력됩니다. 이러한 레코드는 fargate certificate info <domain-name>
에서도 확인할 수 있습니다.
AWS Certificate Manager는 DNS 레코드가 생성된 후 검증을 완료하고 인증서를 발급하는 데 최대 몇 시간이 걸릴 수 있습니다.
fargate certificate destroy <domain-name>
인증서 파기
인증서를 폐기하려면 로드 밸런서나 다른 AWS 리소스에서 인증서를 사용하고 있지 않아야 합니다.