

# Amazon ECS Express Mode 서비스 업데이트
<a name="express-service-update-full"></a>

Express Mode 서비스는 이러한 서비스 전반에서 네트워킹, 로드 밸런싱, Application Auto Scaling 및 오케스트레이션 변경을 위한 구성 가능한 옵션을 제공하여 서비스 업데이트 프로세스를 단순화합니다.

Express Mode 서비스를 업데이트하여 컨테이너 이미지를 수정하거나, 리소스 할당을 조정하거나, 구성 설정을 변경할 수 있습니다. 업데이트는 가용성을 유지 관리하기 위해 경보 기반 롤백 경보와 함께 카나리 배포를 사용하여 배포됩니다.

## 배포 동작
<a name="express-service-update-full-behavior"></a>

Express Mode 서비스는 기본적으로 카나리 배포를 사용하여 안전한 업데이트와 빠른 롤백을 보장합니다.
+ 새 환경이 생성되고 변경 사항과 함께 작업이 배포됨
+ 트래픽의 5%가 새 환경으로 이전됨
+ 3분 이내에 2개의 데이터 포인트에서 4xx 및 5xx 오류 비율의 합계가 1을 초과하면 경보 기반 롤백이 트리거됨
+ 상태 확인에서 새 태스크가 정상인지 확인함
+ 베이크 소요 시간 3분 후 트래픽의 100%가 새 환경으로 이전됨
+ 모니터링을 위한 베이크 소요 시간 3분이 지나면 이전 태스크가 점진적으로 중지되고 교체됨

자세한 내용은 [Amazon ECS 카나리 배포](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/canary-deployment.html)를 참조하세요.

## 절차
<a name="express-service-update-full-procedure"></a>

1. [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)에서 콘솔을 엽니다.

1. 탐색 창에서 **클러스터**를 선택합니다.

1. **클러스터** 페이지에서 Express Mode 서비스가 포함된 클러스터의 이름을 선택하세요.

1. 클러스터 세부 정보 페이지에서 **서비스** 탭을 선택하세요.

1. Express Mode 서비스를 볼 수 있도록 필터를 구성하세요. **리소스 관리 유형 필터링**에서 **ECS**를 선택하세요.

   Express Mode 서비스에는 이름 옆에 **Express** 배지가 있습니다.

1. **구성**에서

   1. 애플리케이션에 사용할 이미지를 지정하세요. **이미지 URI**에 이미지 URI를 입력하세요. Amazon ECR 이미지를 찾아보려면 **ECR 이미지 찾아보기**를 선택하고 다음을 수행하세요.

      1. **프라이빗 리포지토리**에서 Amazon ECR 프라이빗 리포지토리를 선택하세요.

      1. **이미지**에서 이미지를 선택하세요.

      1. 이미지를 식별하는 방법을 선택하세요. **다음으로 이미지 선택**에서 다음 옵션 중 하나를 선택하세요.
         + AWS에서는 **이미지 다이제스트**를 선택할 것을 권장합니다.
         + 태그를 사용하려면 **이미지 태그**를 선택한 다음 태그를 선택합니다.

   1. 프라이빗 레지스트리를 사용하려면 **프라이빗 레지스트리**를 선택하세요. 그런 다음 **Secrets Manager ARN 또는 이름**에 사전 조건에서 생성한 Secrets Manager ARN을 입력하세요.

   1. **태스크 실행 역할**에서 역할을 선택하거나 새 역할을 생성하고 새로 고치세요. 추가 권한을 추가해야 할 경우 태스크 실행 역할을 업데이트할 수 있습니다.

1. **추가 구성**에서 서비스를 사용자 지정하세요.

   1. **컨테이너**에서 다음을 수행하세요.

      1. **컨테이너 포트**에 애플리케이션이 수신 대기하는 포트를 업데이트하세요(기본값은 80).

      1. **상태 확인 경로**에 상태 확인 경로(예: `/health`)를 업데이트하세요.

   1. **환경 변수**에서 애플리케이션에 필요한 환경 변수에 대한 키 값 페어를 추가하세요.

      1. **키**에 환경 변수의 이름을 입력하세요.

      1. **값 유형**에서 **환경 변수** 또는 **보안 암호**를 선택하세요.

      1. **값 또는 시작 값**에 값 또는 참조를 입력하세요.

      1. 필요한 경우 환경 변수를 더 추가하려면 **환경 변수 추가**를 선택하세요.

   1. **명령**에 선택적으로 사용자 지정 명령을 입력하여 Docker CMD 명령을 재정의하세요.

   1. **태스크 역할**에서는 컨테이너에서 실행 중인 애플리케이션에 권한을 부여하는 IAM 역할을 추가하세요. 그러면 애플리케이션이 AWS 서비스에 대한 API 직접 호출을 수행할 수 있습니다.

   1. **컴퓨팅**에서 다음을 수행하세요.

      1. **CPU**에서 태스크에 대한 vCPU 할당을 업데이트하세요(예: vCPU 1개).

      1. **메모리**에서 태스크에 대한 메모리 할당을 업데이트하세요(예: 2GB).

   1. **오토 스케일링**에서 다음을 수행하세요.

      1. **ECS 서비스 지표**에서 조정할 지표(예: **ECS 서비스 평균 메모리 사용률** 또는 **대상당 요청 수**)를 선택하세요.

      1. **대상 값**에 조정 대상을 입력하세요(예: **60** 또는 **1000**).

      1. **최소 태스크 수** 및 **최대 태스크 수**에서 조정 제한을 업데이트하세요.

   1. **로그**에서 다음을 수행하세요.

      1. **Amazon CloudWatch 로그 그룹**에서 애플리케이션 로그의 기본 로그 그룹 이름을 업데이트하세요. 이 경우 기존 로그가 이동되지 않지만 새 서비스 개정에서 로그 작성을 시작합니다.

      1. **Amazon CloudWatch 로그 스트림 접두사**에 로그 스트림의 새 접두사를 입력하세요.

1. **업데이트**를 선택해 Express Mode 서비스를 업데이트하세요.

### 사용자 지정 작업 정의로 업데이트
<a name="express-service-update-custom-td"></a>

`taskDefinitionArn` 파라미터를 지정하여 사용자 지정 작업 정의로 Express Mode 서비스를 업데이트할 수 있습니다. Express Mode는 작업 정의를 그대로 사용하고 나머지 인프라를 계속 관리합니다.

후속 업데이트에서 다음 중 하나를 수행할 수 있습니다.
+ 작업 정의의 새 개정을 생성하고 `taskDefinitionArn`을 업데이트합니다. Express Mode는 다음 서비스 배포에 새 개정을 사용합니다.
+ Express Mode 파라미터를 직접 업데이트합니다.
  + 작업 정의와 관련이 없는 파라미터(예: `healthCheckPath`, `networkConfiguration`, 또는 `scalingTarget`)의 경우 Express Mode는 작업 정의를 수정하지 않고 변경 사항을 적용합니다.
  + 작업 정의와 관련된 파라미터(예: `primaryContainer` 또는 `cpu`/`memory`을 사용하는 이미지, CPU 또는 메모리)의 경우 Express Mode는 다른 작업 수준 구성을 유지하면서 변경 사항이 포함된 새 관리형 작업 정의를 생성합니다.

**사용자 지정 작업 정의로 업데이트(Amazon ECS 콘솔)**

1. Amazon ECS 콘솔을 열고 Express Mode 서비스로 이동합니다.

1. **서비스 업데이트** 옆의 드롭다운 화살표를 선택한 다음 **사용자 지정 작업 정의로 업데이트**를 선택합니다.

1. **작업 정의 패밀리**에서 기존의 작업 정의 패밀리를 선택합니다. **작업 정의** 링크를 선택하여 새 작업 정의를 생성합니다.

1. **작업 정의 개정**에서 사용할 개정을 선택하거나 최신 개정을 사용하기 위해 비워 둡니다.

1. (선택 사항) **추가 구성**을 확장하여 상태 확인 경로, 네트워킹 또는 오토 스케일링 설정을 업데이트합니다.

1. **업데이트**를 선택합니다.

다음 AWS AWS CLI 명령은 사용자 지정 작업 정의로 Express Mode 서비스를 업데이트합니다.

```
aws ecs update-express-gateway-service \
    --service-arn arn:aws:ecs:us-west-2:123456789012:service/default/my-service \
    --task-definition-arn arn:aws:ecs:us-west-2:123456789012:task-definition/my-td:4
```

**참고**  
CloudFormation를 사용하고 Express Mode 서비스에 `taskDefinitionArn`를 처음 추가하는 경우 먼저 스택을 재배포합니다. 이렇게 하면 롤백 호환성이 보장됩니다.