

# Amazon ECS 관리형 인스턴스에 대한 아키텍트
<a name="ManagedInstances"></a>

Amazon ECS 관리형 인스턴스는 AWS로 인프라 관리를 오프로드하면서 다양한 Amazon EC2 인스턴스 유형에서 컨테이너화된 워크로드를 실행할 수 있는 Amazon ECS용 완전관리형 컴퓨팅 옵션입니다. Amazon ECS 관리형 인스턴스를 사용하면 GPU 가속화, 특정 CPU 아키텍처, 뛰어난 네트워크 성능 및 특수 인스턴스 유형과 같은 특정 컴퓨팅 기능에 액세스할 수 있으며 이와 동시에 AWS는 기본 인프라의 프로비저닝, 규모 조정, 패치 적용 및 유지 관리를 처리합니다.

Amazon ECS 관리형 인스턴스를 사용하는 경우 애플리케이션을 컨테이너에 패키징하고 컴퓨팅 요구 사항을 지정합니다. AWS는 워크로드 요구 사항을 충족하는 가장 비용 최적화된 범용 Amazon EC2 인스턴스 유형을 자동으로 선택하거나 인스턴스 유형, CPU 제조업체 및 액셀러레이터를 포함하여 원하는 인스턴스 속성을 지정할 수 있습니다. Amazon ECS 관리형 인스턴스는 AWS 기능 및 Amazon EC2 통합에 대한 액세스를 중단하지 않고도 규모 조정, 패치 적용, 비용 최적화를 비롯한 인프라의 모든 측면을 완벽하게 관리합니다.

Amazon ECS 관리형 인스턴스는 플랫폼별 최적화 및 보안 구성을 갖춘 Linux 컨테이너를 지원합니다. 기본적으로 Amazon ECS 관리형 인스턴스는 더 큰 인스턴스에 더 작은 태스크를 여러 개 배치하여 인프라 사용률을 최적화하므로 비용을 절감하고 태스크 시작 시간을 개선할 수 있습니다.

이 주제에서는 Amazon ECS 관리형 인스턴스 태스크와 서비스의 다양한 구성 요소를 설명하고 Amazon ECS에 Amazon ECS 관리형 인스턴스를 사용하기 위한 특수한 고려 사항을 살펴봅니다.

## 시작하기
<a name="managed-instances-walkthrough"></a>

Amazon ECS 관리형 인스턴스를 시작하려면 필요한 IAM 역할을 생성하고 AWS 계정에서 Amazon ECS 관리형 인스턴스를 활성화합니다. 그런 다음 Amazon ECS 관리형 인스턴스 용량 공급자를 사용하여 용량 공급자를 생성하고 태스크 또는 서비스를 시작할 수 있습니다.

시작하는 방법에 관한 자세한 지침은 다음을 참조하세요.
+ [Amazon ECS 관리형 인스턴스에 대한 작업을 생성하는 방법에 대해 알아봅니다.](getting-started-managed-instances.md)
+ [AWS CLI에서 Amazon ECS 관리형 인스턴스에 대한 태스크를 생성하는 방법에 대해 알아봅니다.](getting-started-managed-instances-cli.md)

## 용량 공급자
<a name="managed-instances-capacity-providers"></a>

Amazon ECS 관리형 인스턴스는 용량 공급자를 사용하여 워크로드의 컴퓨팅 용량을 관리합니다. 기본 용량 공급자를 사용하거나 특정 인스턴스 요구 사항이 있는 사용자 지정 용량 공급자를 생성할 수 있습니다.

다음과 같은 용량 공급자 옵션을 사용할 수 있습니다.
+ **기본 용량 공급자** - 워크로드 요구 사항에 가장 비용 최적화된 범용 인스턴스 유형을 자동으로 선택합니다.
+ **사용자 지정 용량 공급자** - vCPU 수, 메모리, CPU 제조업체, 액셀러레이터 유형 및 특정 인스턴스 유형을 포함해 속성 기반 인스턴스 유형 선택을 사용하여 인스턴스 속성을 지정할 수 있습니다.

용량 공급자 전략에는 다음 목록의 용량 공급자 유형이 하나만 포함될 수 있습니다.
+ Amazon ECS 관리형 인스턴스
+ Auto Scaling 그룹
+ Fargate/Fargate\$1SPOT

## 인스턴스 선택 및 최적화
<a name="managed-instances-instance-selection"></a>

Amazon ECS는 다음 방법 중 하나를 사용하여 Amazon ECS 관리형 인스턴스 워크로드의 인스턴스 유형을 선택합니다.
+ **자동 선택** - 기본 용량 공급자를 사용하는 경우 Amazon ECS는 태스크 정의에 지정된 CPU 및 메모리 요구 사항을 충족하는 가장 비용 최적화된 범용 인스턴스 유형을 자동으로 선택합니다.
+ **속성 기반 선택** - 사용자 지정 용량 공급자를 사용하는 경우 vCPU 수, 메모리 크기, CPU 제조업체, 액셀러레이터 유형 및 특정 인스턴스 유형과 같은 인스턴스 속성을 지정할 수 있습니다. Amazon ECS는 지정된 속성과 일치하는 모든 인스턴스 유형 중에서 선택합니다.

Amazon ECS 관리형 인스턴스는 여러 메커니즘을 통해 인프라 사용률과 비용을 최적화합니다.
+ 다중 태스크 배치 - 기본적으로 Amazon ECS는 더 큰 인스턴스에 더 작은 태스크를 여러 개 배치하여 사용률을 극대화하고 비용을 절감합니다.
+ 활성 워크로드 통합 - Amazon ECS는 애플리케이션 가용성 또는 배포 성능에 영향을 미칠 수 있는 조기 종료를 방지하면서 컨테이너 인스턴스가 실제로 유휴 상태인 시기를 식별합니다. 시스템은 서비스에 대해 설정된 최소 및 최대 태스크 수, 중지 전 시작 동작 및 태스크 보호 동작을 준수합니다.
+ 적정 규모 조정 - 워크로드 요구 사항이 변경되면 Amazon ECS는 현재 요구 사항에 적합한 크기의 대체 인스턴스를 시작합니다.

Amazon ECS는 Amazon EC2 이벤트 기간을 사용하여 원하는 기간에 유지 관리 활동을 예약합니다. 이벤트 기간을 사용하면 AWS가 인스턴스에 대한 유지 관리를 수행할 수 있는 반복 기간을 정의할 수 있으므로 유지 관리를 운영 일정에 맞게 조정하여 워크로드 중단을 최소화할 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [예약된 인스턴스 이벤트](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html)를 참조하세요.

강력한 격리가 필요한 경우 VM 수준 보안 격리 경계가 있는 별도의 인스턴스에서 각 태스크를 실행하도록 Amazon ECS 관리형 인스턴스를 구성할 수 있습니다.

## 태스크 정의
<a name="managed-instances-task-definitions"></a>

Amazon ECS 관리형 인스턴스를 사용하는 태스크는 대부분의 Amazon ECS 태스크 정의 파라미터를 지원합니다. Amazon ECS 관리형 인스턴스는 플랫폼 버전 1.4.0을 사용하는 기존 Fargate 태스크 정의와 호환되므로 마이그레이션이 간단합니다.

Amazon ECS 관리형 인스턴스를 사용하려면 `MANAGED_INSTANCES`를 포함하도록 `requiresCompatibilities` 태스크 정의 파라미터를 설정합니다. 태스크 정의에서는 배포 옵션의 유연성을 위해 Fargate 및 Amazon ECS 관리형 인스턴스 호환성을 모두 지정할 수 있습니다.

## 운영 체제 및 CPU 아키텍처
<a name="welcome-operating-system"></a>

지원되는 운영 체제는 다음과 같습니다.
+ Bottlerocket

Amazon ECS 태스크 정의에는 ARM과 X86\$164의 2가지 아키텍처를 사용할 수 있습니다.

Amazon ECS 관리형 인스턴스에서 Linux 컨테이너를 실행할 때 X86\$164 CPU 아키텍처 또는 ARM 기반 애플리케이션용 ARM64 아키텍처를 사용할 수 있습니다.

## 주요 기능
<a name="managed-instances-key-features"></a>

Amazon ECS 관리형 인스턴스의 주요 기능은 다음과 같습니다.
+ 애플리케이션의 요구 사항에 맞게 특정 EC2 인스턴스 유형을 선택하여 GPU 가속 컴퓨팅, 특정 CPU 기능, 대용량 메모리 크기와 같은 특수 하드웨어 기능에 액세스합니다.
+ 자체 격리된 환경에서 각 태스크를 실행하는 Fargate와 달리 기본적으로 단일 인스턴스에서 여러 태스크로 리소스 사용률과 비용을 최적화합니다.
+ 보안 규정 준수와 정기적인 인스턴스 패치를 보장합니다. ECS 관리형 인스턴스는 14일 후에 인스턴스 드레이닝을 시작하며, 서비스 기반 작업을 새 인스턴스로 자동으로 교체합니다.
+ CAP\$1NET\$1ADMIN, CAP\$1SYS\$1ADMIN, CAP\$1BPF를 비롯해 권한 있는 Linux 기능을 사용하여 컨테이너 내에서 고급 네트워킹 및 시스템 관리 기능을 활성화합니다.

## IAM 역할
<a name="managed-instances-iam-roles"></a>

Amazon ECS 관리형 인스턴스에는 두 가지 IAM 역할이 필요합니다.
+ *인프라 역할*: 이 역할을 사용하면 AWS가 사용자를 대신해 Amazon ECS 관리형 인스턴스를 관리할 수 있습니다.
+ *인스턴스 프로파일*: 인스턴스 프로파일은 IAM 역할을 Amazon ECS 관리형 인스턴스에 전달하는 방법입니다. 이 프로파일은 다음을 수행하는 데 사용됩니다.
  + 컨테이너 워크로드를 실행하는 Amazon ECS 관리형 인스턴스에 대한 IAM 권한을 정의합니다.
  + AWS가 사용자를 대신해 이러한 인스턴스를 관리하도록 허용합니다.
  + 프로파일에 정의된 권한에 따라 인스턴스가 AWS 서비스에 액세스할 수 있도록 합니다.

## 보안 및 규정 준수
<a name="managed-instances-security"></a>

Amazon ECS 관리형 인스턴스는 워크로드를 보호하기 위해 여러 계층의 보안을 구현합니다.
+ **보안 구성** - Amazon ECS 관리형 인스턴스는 SSH 액세스 없음, 변경 불가능한 루트 파일 시스템, SELinux를 통한 커널 수준 필수 액세스 제어를 비롯한 AWS 보안 모범 사례를 따릅니다.
+ **자동 패치 적용** - AWS는 사용자가 구성한 유지 관리 기간에 따라 Amazon ECS 관리형 인스턴스를 최신 보안 패치로 정기적으로 업데이트합니다.
+ **제한된 인스턴스 수명** - ECS는 14일 후 자동으로 인스턴스 드레이닝을 시작하여, 애플리케이션이 최신 보안 패치가 적용되고 적절하게 구성된 인스턴스에서 실행되도록 보장합니다.
+ **권한 있는 기능** - 네트워크 모니터링 및 관찰성 솔루션과 같이 해당 기능이 필요한 워크로드에 대해 권한 있는 Linux 기능을 선택적으로 활성화할 수 있습니다.

Amazon ECS 관리형 인스턴스는 PCI-DSS, HIPAA 및 FedRAMP를 포함해 Amazon ECS와 동일한 규정 준수 프로그램을 지원합니다. 지원되는 리전에서 Amazon ECS 관리형 인스턴스는 계정 수준 FIPS 엔드포인트 설정을 고려하여 FedRAMP 규정 준수를 달성합니다.

## 네트워킹
<a name="managed-instances-networking"></a>

Amazon ECS 관리형 인스턴스는 `awsvpc` 및 `host` 네트워크 모드를 지원합니다. `awsvpc` 네트워크 모드는 각 태스크에 자체 탄력적 네트워크 인터페이스와 VPC 내 프라이빗 IP 주소를 제공합니다. 이를 통해 태스크 수준에서 세분화된 보안 그룹 및 네트워크 ACL 제어가 가능합니다. `host` 네트워크 모드에서 태스크는 호스트 Amazon ECS 관리형 인스턴스의 네트워크 네임스페이스를 공유합니다. Amazon ECS 관리형 인스턴스에서 태스크 네트워킹에 대한 자세한 내용은 [Amazon ECS 관리형 인스턴스에 대한 Amazon ECS 태스크 네트워킹](managed-instance-networking.md) 섹션을 참조하세요.

## 인스턴스 스토리지
<a name="managed-instances-storage"></a>

Amazon ECS 관리형 인스턴스는 인스턴스에 연결된 Amazon EBS 데이터 볼륨의 크기 구성을 지원합니다. 이 스토리지는 인스턴스에서 실행되는 모든 태스크 간에 공유되며 바인드 마운드에 사용할 수 있습니다. 태스크 정의에서 `volumes`, `mountPoint` 및 `volumesFrom` 파라미터를 사용하는 컨테이너 사이에서 이 볼륨을 탑재하고 공유할 수 있습니다.

 볼륨은 인스턴스 생성 중에 연결됩니다. `storageConfiguration` 파라미터를 사용하여 Amazon ECS 관리형 인스턴스 용량 공급자를 생성할 때 볼륨 크기를 GiB 단위로 지정할 수 있습니다.

```
{
...

    "managedInstancesProvider": {
        "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile",
            "networkConfiguration": {
                "subnets": [
                    "subnet-abcdef01234567",
                    "subnet-bcdefa98765432"
                ],
                "securityGroups": [ 
                    "sg-0123456789abcdef"
                ]
            },
            "storageConfiguration": {
                "storageSizeinGiB" : 100

            }
        }
    }
 ... 
}
```

이 볼륨의 최소 크기는 30GiB이고 최대 크기는 16,384GiB입니다. 기본적으로 이 볼륨의 크기는 80GiB입니다.

태스크의 풀링, 압축 및 비압축 컨테이너 이미지는 이 볼륨에 저장됩니다. 태스크가 사용해야 하는 인스턴스 스토리지의 전체 양을 확인하려면 태스크에 할당된 인스턴스 스토리지의 총 용량에서 컨테이너 이미지가 사용하는 스토리지 용량을 뺍니다.



Amazon ECS 관리형 인스턴스에 연결된 Amazon EBS 볼륨의 성능은 *Amazon EC2 사용 설명서*의 [Amazon EBS 최적화 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 설명서에 설명된 대로 해당 Amazon EC2 인스턴스의 성능과 일치합니다.

볼륨의 스냅샷을 생성하여 보안 문제에 대한 포렌식 분석을 수행하거나 애플리케이션을 디버깅할 수 있습니다. Amazon EBS 볼륨의 스냅샷 생성에 대한 자세한 내용은 *Amazon EBS 사용 설명서*의 [Amazon EBS 스냅샷](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html)을 참조하세요. Amazon EBS 암호화를 기본적으로 활성화한 경우 볼륨은 기본적으로 암호화에 지정된 AWS KMS 키로 암호화됩니다. 암호화의 기본 제공에 대한 자세한 내용은 *Amazon EBS 사용 설명서*의 [기본적으로 Amazon EBS 암호화 활성화](https://docs.aws.amazon.com/ebs/latest/userguide/encryption-by-default.html)를 참조하세요.

인스턴스에 연결된 데이터 볼륨을 사용하는 것 외에도 Amazon ECS 관리형 인스턴스에서 실행되는 각 태스크에 대해 데이터 볼륨을 구성할 수도 있습니다. 태스크 수준 스토리지 옵션에 대한 자세한 내용은 [Amazon ECS 작업에 대한 스토리지 옵션](using_data_volumes.md) 섹션을 참조하세요.

## 서비스 로드 밸런싱
<a name="managed-instances-load-balancing"></a>

Amazon ECS 관리형 인스턴스를 사용하는 Amazon ECS 서비스는 서비스의 태스크 사이에서 트래픽을 고르게 분산하기 위해 Elastic Load Balancing을 사용하도록 구성할 수 있습니다.

Amazon ECS 관리형 인스턴스의 Amazon ECS 서비스는 Application Load Balancer, Network Load Balancer 및 Gateway Load Balancer 로드 밸런서 유형을 지원합니다. Application Load Balancer는 HTTP/HTTPS(계층 7) 트래픽을 라우팅하는 반면, Network Load Balancer는 TCP 또는 UDP(계층 4) 트래픽을 라우팅합니다.

이러한 서비스에 대한 대상 그룹을 생성할 때 대상 유형을 `instance`가 아닌 `ip`로 선택해야 합니다. 이는 `awsvpc` 네트워크 모드를 사용하는 태스크가 Amazon EC2 인스턴스와 직접 연결되지 않고 탄력적 네트워크 인터페이스와 연결되기 때문입니다.

## 모니터링 및 관찰성
<a name="managed-instances-monitoring"></a>

Amazon ECS 관리형 인스턴스는 CloudWatch 지표 및 관찰성 도구와의 통합을 통해 포괄적인 모니터링 기능을 제공합니다.
+ **CloudWatch 지표** - 작업 및 인스턴스 수준 모두에서 CPU, 메모리, 네트워크 및 스토리지 사용률을 모니터링합니다.
+ **Container Insights** - 컨테이너화된 애플리케이션에 대한 자세한 성능 지표 및 로그를 가져옵니다.
+ **서드 파티 통합** - 권한이 부여된 기능을 활성화하면 승격된 Linux 권한이 필요한 고급 모니터링 및 관찰성 솔루션을 실행할 수 있습니다.

## 요금 및 비용 최적화
<a name="managed-instances-pricing"></a>

Amazon ECS 관리형 인스턴스를 사용하면 태스크를 실행하는 전체 Amazon EC2 인스턴스에 대한 요금이 청구됩니다. 요금은 워크로드에 대해 선택한 인스턴스 유형에 따라 다릅니다.

Amazon ECS 관리형 인스턴스는 다음과 같은 여러 비용 최적화 기능을 제공합니다.
+ **다중 태스크 최적화** - 적절한 크기의 인스턴스에서 여러 태스크를 실행하여 인스턴스 사용률을 극대화합니다.

컴퓨팅 및 인스턴스 절감형 플랜은 Amazon ECS 관리형 인스턴스 워크로드에도 적용됩니다.

## Service Quotas
<a name="managed-instances-service-quotas"></a>

Amazon ECS 관리형 인스턴스 워크로드는 Amazon EC2 온디맨드 인스턴스 서비스 할당량을 따릅니다. Amazon ECS 관리형 인스턴스를 사용하는 Amazon ECS 서비스는 Amazon ECS 서비스 할당량을 따릅니다.

서비스 할당량에 대한 자세한 내용은 다음을 참조하세요.
+ [Amazon EC2 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html)(*Amazon Web Services 일반 참조*)
+ [Amazon ECS 서비스 할당량](service-quotas.md)

## 마이그레이션 고려 사항
<a name="managed-instances-migration"></a>

Amazon ECS 관리형 인스턴스로의 마이그레이션은 대부분의 워크로드에서 간단합니다.
+ **Fargate에서** - 용량 공급자 구성 변경 및 재배포만 필요합니다. 플랫폼 버전 1.4.0을 사용하는 기존 태스크 정의는 완벽하게 호환됩니다.
+ **EC2에서** - Fargate로 마이그레이션하는 경우와 유사하지만 특정 인스턴스 유형과 같은 Amazon EC2 기능에 대한 액세스는 유지됩니다.

마이그레이션을 계획할 경우 다음을 고려하세요.
+ 애플리케이션은 14일의 인스턴스 수명과 계획된 유지 관리 기간을 허용해야 합니다.
+ 장기 실행 태스크(14일 초과)는 Amazon ECS 관리형 인스턴스에 적합하지 않습니다.
+ 사용자 지정 AMI는 지원되지 않음 - Amazon ECS 관리형 인스턴스는 AWS 관리형 보안 최적화 AMI를 사용합니다.

## 제한 사항 및 고려 사항
<a name="managed-instances-limitations"></a>

Amazon ECS 관리형 인스턴스에는 다음과 같은 제한 사항이 적용됩니다.
+ 사용자 지정 AMI - AMI는 AWS에서 소유하고 관리함
+ 인스턴스 수명 - 보안 패치 및 규정 준수를 보장하기 위한 인스턴스당 최대 런타임은 14일입니다.
+ SSH 액세스 - 보안상의 이유로 사용할 수 없습니다. 디버깅 및 문제 해결에 Amazon ECS Exec를 사용합니다. Amazon ECS API를 통해서만 지원되는 관리 작업.

## 조직 제어
<a name="managed-instances-organization-controls"></a>

일부 조직 제어는 Amazon ECS 관리형 인스턴스가 올바르게 작동하는 것을 방해할 수 있습니다. 이 경우, Amazon ECS가 사용자를 대신하여 EC2 인스턴스를 관리하는 데 필요한 권한을 허용하도록 해당 제어를 업데이트해야 합니다.

Amazon ECS는 Amazon ECS 관리형 인스턴스를 지원하는 EC2 인스턴스를 시작할 때 인프라 역할을 사용합니다. 이 인프라 역할은 사용자의 계정에서 생성되는 [IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)로, Amazon ECS가 사용자를 대신하여 Amazon ECS 관리형 인스턴스를 관리할 수 있도록 합니다. 인프라 역할로 수행되는 작업에는 서비스 제어 정책(SCP)이 항상 적용됩니다.[https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) 이로 인해 SCP가 Amazon ECS 관리형 인스턴스 작업을 제한할 수 있습니다. SCP를 사용하여 시작할 수 있는 Amazon Machine Image(AMI)를 제한하는 경우가 가장 일반적인 예입니다. Amazon ECS 관리형 인스턴스가 정상적으로 작동하도록 하려면, SCP를 수정하여 Amazon ECS 관리형 인스턴스 AMI 계정에서 AMI를 시작할 수 있도록 허용합니다.

[EC2 허용된 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html) 기능을 사용하여 다른 계정에 있는 AMI의 가시성을 제한할 수도 있습니다. 이 기능을 사용하는 경우, 관심 리전에서 Amazon ECS 관리형 인스턴스 AMI 계정을 포함하도록 이미지 기준을 확장해야 합니다.

### 예시 SCP: Amazon ECS 관리형 인스턴스 AMI를 제외한 모든 AMI 차단
<a name="example-scp-managed-instances"></a>

아래 SCP는 us-west-2 또는 us-east-1에서 Amazon ECS 관리형 인스턴스 AMI 계정에 속하지 않는 AMI에 대해서는 `ec2:RunInstances` 호출을 차단합니다.

**참고**  
`ec2:Owner` 컨텍스트 키를 사용하지 **않는** 것이 중요합니다. Amazon은 Amazon ECS 관리형 인스턴스 AMI 계정을 소유하며, 이 키의 값은 항상 `amazon`입니다. `ec2:Owner`가 `amazon`인 경우 AMI 시작을 허용하도록 SCP를 구성하면 Amazon ECS 관리형 인스턴스 전용 AMI뿐 아니라 Amazon이 소유한 모든 AMI를 시작할 수 있게 됩니다.

```
{
  "Version":"2012-10-17",		 	 	                                 
  "Statement": [
    {
      "Sid": "DenyAMI",
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": "arn:*:ec2:*::image/ami-*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "187296253231",
            "260073348889"
          ]
        }
      }
    }
  ]
}
```

### Amazon ECS 관리형 인스턴스 AMI 계정
<a name="managed-instances-ami-accounts"></a>

리전별로 구분되는 AWS 계정이 Amazon ECS Managed Instances 공개 AMI를 호스팅합니다.


| AWS 리전 | Account | 
| --- | --- | 
| af-south-1 | 070957084703 | 
| ap-east-1 | 587573215167 | 
| ap-northeast-1 | 679336465495 | 
| ap-northeast-2 | 309903600357 | 
| ap-northeast-3 | 384570461223 | 
| ap-south-1 | 062344138989 | 
| ap-south-2 | 624198668379 | 
| ap-southeast-1 | 832199679391 | 
| ap-southeast-2 | 552073033681 | 
| ap-southeast-3 | 368903466070 | 
| ap-southeast-4 | 696793786439 | 
| ap-southeast-5 | 003457290689 | 
| ap-southeast-6 | 465836752572 | 
| ap-southeast-7 | 622515864387 | 
| ca-central-1 | 853167153192 | 
| ca-west-1 | 899469777611 | 
| eu-central-1 | 832570432258 | 
| eu-central-2 | 041659148495 | 
| eu-north-1 | 851563870067 | 
| eu-south-1 | 766433696616 | 
| eu-south-2 | 003380494496 | 
| eu-west-1 | 986619735082 | 
| eu-west-2 | 591706807364 | 
| eu-west-3 | 108582616801 | 
| il-central-1 | 009537862704 | 
| me-central-1 | 540883425316 | 
| me-south-1 | 181438624895 | 
| mx-central-1 | 210749644920 | 
| sa-east-1 | 591338347621 | 
| us-east-1 | 260073348889 | 
| us-east-2 | 292185169523 | 
| us-west-1 | 187296253231 | 
| us-west-2 | 491085424538 | 

# Amazon ECS 관리형 인스턴스의 인스턴스 유형
<a name="managed-instances-instance-types"></a>

Amazon ECS 관리형 인스턴스를 사용하면 컨테이너화된 애플리케이션의 특정 EC2 인스턴스 유형을 선택할 수 있습니다.

## Amazon ECS 관리형 인스턴스의 인스턴스 패밀리
<a name="managed-instances-instance-families"></a>

다음 인스턴스 유형이 지원됩니다.

### 범용
<a name="general-purpose-instances"></a>
+ m5, m5a, m5ad, m5d, m5dn, m5n, m5zn: 균형 잡힌 컴퓨팅, 메모리 및 네트워킹
+ m6a, m6g, m6gd, m6i, m6id, m6idn, m6in: 성능이 향상된 최신 세대
+ m7a, m7g, m7gd, m7i, m7i-flex: 차세대 범용 인스턴스
+ m8g, m8gd: 최신 세대 ARM 범용 인스턴스
+ t3, t3a, t4g: 성능 버스트 가능 인스턴스(나노 및 마이크로 인스턴스 크기 제외)

### 컴퓨팅 최적화
<a name="compute-optimized-instances"></a>
+ c5, c5a, c5ad, c5d, c5n: 컴퓨팅 집약적인 애플리케이션을 위한 고성능 프로세서
+ c6a, c6g, c6gd, c6i, c6id, c6in: 최신 세대 컴퓨팅 최적화 인스턴스
+ c7a, c7g, c7gd, c7gn, c7i, c7i-flex: 차세대 컴퓨팅 최적화 인스턴스
+ c8g, c8gd, c8gn: 최신 세대 ARM 컴퓨팅 최적화 인스턴스
+ hpc6a, hpc6id, hpc7a: 고성능 컴퓨팅 인스턴스

### 메모리 최적화
<a name="memory-optimized-instances"></a>
+ r5, r5a, r5ad, r5b, r5d, r5dn, r5n: 메모리 집약적인 애플리케이션에 대한 높은 메모리 대 vCPU 비율
+ r6a, r6g, r6gd, r6i, r6id, r6idn, r6in: 최신 세대 메모리 최적화 인스턴스
+ r7a, r7g, r7gd, r7i, r7iz: 차세대 메모리 최적화 인스턴스
+ r8g, r8gd: 최신 세대 ARM 메모리 최적화 인스턴스
+ u-3tb1, u7i-6tb, u7i-8tb, u7i-12tb, u7in-24tb, u7in-32tb: 최대 32TB RAM의 고용량 메모리 인스턴스
+ x2gd, x2idn, x2iedn, x2iezn: 인 메모리 데이터베이스 및 분석을 위한 최상의 메모리
+ x8g: 최신 세대 대용량 메모리 인스턴스
+ z1d: 고주파수 및 NVMe SSD 스토리지

### 스토리지 최적화
<a name="storage-optimized-instances"></a>
+ d3, d3en: 분산 파일 시스템을 위한 밀도 있는 HDD 스토리지
+ i4g, i4i: 최신 세대 스토리지 최적화 인스턴스
+ i7i, i7ie, i8g: 차세대 고성능 스토리지 인스턴스
+ im4gn, is4gen: 네트워크 최적화 스토리지 인스턴스

### 가속 컴퓨팅
<a name="accelerated-computing-instances"></a>
+ g4dn: 기계 학습 추론 및 그래픽을 위한 NVIDIA T4 GPU
+ g5, g5g: 고성능 그래픽 및 ML을 위한 NVIDIA A10G GPU
+ g6, g6e, g6f: 최신 세대 GPU 인스턴스
+ gr6, gr6f: NVIDIA L4 Tensor Core GPU가 포함된 GPU 인스턴스 및 그래픽 워크로드에 대한 1:8 vCPU:RAM 비율
+ p3dn: 딥 러닝 훈련 및 HPC를 위한 NVIDIA V100 GPU
+ p4d: 최고 성능의 ML 훈련을 위한 NVIDIA A100 GPU
+ p5: NVIDIA H100 GPU를 사용하는 최신 세대
+ p6-b200: NVIDIA B200 GPU를 사용하는 차세대

## 인스턴스 선택 방법
<a name="managed-instances-instance-selection-methods"></a>

Amazon ECS 관리형 인스턴스는 인스턴스 유형을 선택하는 두 가지 방법을 제공합니다.
+ *특정 인스턴스 유형 선택*: 태스크에 사용할 EC2 인스턴스 유형을 명시적으로 지정합니다.
+ *속성 기반 인스턴스 유형 선택*: 애플리케이션에 필요한 속성(예: vCPU, 메모리 및 아키텍처)을 지정하면 Amazon ECS 관리형 인스턴스가 적절한 인스턴스 유형을 선택합니다.

## 특정 인스턴스 유형 선택
<a name="managed-instances-specific-instance-types"></a>

특정 인스턴스 유형을 선택하면 Amazon ECS 관리형 인스턴스 태스크에 사용할 EC2 인스턴스 유형을 명시적으로 지정합니다. 애플리케이션에 특정 하드웨어 특성을 가진 특정 인스턴스 유형이 필요한 경우에 유용합니다.

## 속성 기반 인스턴스 유형 선택
<a name="managed-instances-attribute-based-selection"></a>

속성 기반 인스턴스 유형 선택 방법에서는 사용자가 애플리케이션에 필요한 속성을 지정하고 Amazon ECS 관리형 인스턴스에서 해당 요구 사항을 충족하는 적절한 인스턴스 유형을 선택합니다. 이를 통해 유연성을 높이고 특정 인스턴스 유형을 사용할 수 없어도 태스크가 성공적으로 배치되도록 할 수 있습니다.

여러 속성을 지정하면 해당 속성을 모두 충족하는 인스턴스 유형을 가져옵니다. 한 속성에 대해 여러 값을 지정하면 해당 값 중 하나라도 충족하는 인스턴스 유형을 가져옵니다.

속성 기반 인스턴스 유형 선택에 대해서는 다음 속성이 지원됩니다.

**cpuArchitecture**  
CPU 아키텍처입니다.  
유효한 값: `X86_64` \$1 `ARM64`

**instanceGeneration**  
현재 인스턴스 유형이 포함되는지, 이전 세대 인스턴스 유형이 포함되는지 나타냅니다.  
+ 현재 세대 인스턴스 유형의 경우 `current`를 지정합니다. 현재 세대에는 현재 사용이 권장되는 EC2 인스턴스 유형이 포함됩니다. 여기에는 일반적으로 각 인스턴스 패밀리의 최신 2\$13세대가 포함됩니다. 자세한 내용을 알아보려면 *Amazon EC2 사용 설명서*의 [인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)을 참조하세요.
+ 이전 세대 인스턴스 유형의 경우 `previous`를 지정합니다.
+ 현재 및 이전 세대 인스턴스 유형을 모두 포함하려면 `all`을 지정합니다.
유효한 값: `current` \$1 `previous` \$1 `all`  
기본값: 모든 현재 또는 이전 세대

**burstablePerformance**  
성능 순간 확장 가능 인스턴스 유형이 포함, 제외 또는 필수인지 여부를 나타냅니다. 자세한 내용을 알아보려면 *Amazon EC2 사용 설명서*의 [성능 버스트 가능 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)를 참조하세요.  
유효한 값: `included` \$1 `excluded` \$1 `required`  
기본값: `excluded`

**cpuManufacturer**  
포함할 특정 CPU 제조업체를 나열합니다.  
+ 인텔 CPU가 있는 인스턴스 유형의 경우 `intel`을 지정합니다.
+ AMD CPU가 있는 인스턴스 유형의 경우 `amd`를 지정합니다.
+ AWS CPU(예: AWS Graviton)가 있는 인스턴스 유형의 경우 `amazon-web-services`를 지정합니다.
CPU 하드웨어 제조업체와 CPU 하드웨어 아키텍처를 혼동하지 마세요. 인스턴스는 지정한 Amazon Machine Image(AMI)를 기반으로 하는 호환 가능한 CPU 아키텍처로 시작됩니다.
유효한 값: `intel` \$1 `amd` \$1 `amazon-web-services`  
기본값: 모든 제조업체

**networkBandwidth**  
최소 및 최대 네트워크 대역폭 양(초당 기가비트(Gbps) 단위)입니다.  
기본값: 최소 또는 최대 제한 없음

**networkInterfaceCount**  
최소 및 최대 네트워크 인터페이스 수입니다.  
기본값: 최소 또는 최대 제한 없음

**localStorage**  
인스턴스 저장소 볼륨이 있는 인스턴스 유형이 포함되는지, 제외되는지, 요구되는지 나타냅니다. 자세한 내용을 알아보려면 *Amazon EC2 사용 설명서*의 [Amazon EC2 인스턴스 저장소](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)를 참조하세요.  
유효한 값: `included` \$1 `excluded` \$1 `required`  
기본값: `included`

**localStorageType**  
필요한 로컬 스토리지 유형을 나타냅니다.  
+ 하드 디스크 드라이브(HDD) 스토리지가 있는 인스턴스 유형의 경우 `hdd`를 지정합니다.
+ 솔리드 스테이트 드라이브(SSD) 스토리지가 있는 인스턴스 유형의 경우 `ssd`를 지정합니다.
유효한 값: `hdd` \$1 `ssd`  
기본값: 모든 로컬 스토리지 유형

## 청구 및 구매 옵션
<a name="managed-instances-instance-billing-and-purchase-options"></a>

Amazon ECS 관리형 인스턴스는 컨테이너화된 워크로드의 비용을 최적화하는 데 도움이 되는 여러 기능을 지원합니다.
+ *절감형 플랜(SP)*: Amazon ECS 관리형 인스턴스는 태스크에서 사용하는 인스턴스 유형에 대해 사용자가 구매한 절감형 플랜의 혜택을 받을 수 있습니다. 추가 구성은 필요하지 않습니다.
+ *예약 인스턴스(RI)*: Amazon ECS 관리형 인스턴스 태스크는 태스크에서 사용하는 인스턴스 유형에 대해 구매한 RI의 이점을 누릴 수 있습니다. 추가 구성은 필요하지 않습니다.
+ *스팟 인스턴스*: EC2 스팟 인스턴스를 사용하도록 `capacityOptionType=Spot`을 설정하여 Amazon ECS 관리형 인스턴스 용량 공급자를 구성할 수 있습니다.
+ *용량 예약*: `capacityOptionType=Reserved`를 설정하고 [용량 예약 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-cr-group.html)을 제공하여 EC2 용량 예약을 사용하도록 Amazon ECS 관리형 인스턴스 용량 공급자를 구성할 수 있습니다. 다음 예약 기본 설정도 지정할 수 있습니다. `reservations-only`를 사용하면 최대 예측 가능성을 위해 인스턴스가 예약 용량에서만 실행되도록 할 수 있고, `reservations-first`를 사용하면 예약을 우선 사용하면서 필요 시 온디맨드 용량으로 전환할 수 있으며, `reservations-excluded`를 사용하면 용량 공급자가 예약을 전혀 사용하지 못하도록 할 수 있습니다.

# Amazon ECS 관리형 인스턴스에 대한 인스턴스 선택 모범 사례
<a name="managed-instances-instance-selection-best-practices"></a>

Amazon ECS 관리형 인스턴스 워크로드에 올바른 인스턴스 구성 선택은 성능, 비용 및 리소스 사용률을 최적화하는 데 매우 중요합니다. Amazon ECS는 애플리케이션 요구 사항과 비용 효율성의 균형을 맞출 수 있는 유연한 인스턴스 선택 옵션을 제공합니다. 다음 모범 사례는 컨테이너화된 워크로드의 인스턴스 선택에 대해 정보에 입각한 의사 결정을 내리는 데 도움이 됩니다.

1. Amazon ECS 관리형 인스턴스 기본 용량 공급자 사용

   Amazon ECS는 다음 태스크 정의 및 서비스 파라미터 요구 사항을 충족하는 가장 비용 효율적인 인스턴스를 선택합니다.

   태스크 정의
   + operatingSystemFamily
   + cpuArchitecture
   + cpu
   + 메모리

   서비스 정의
   + placementConstraints
   + placementStrategy

1. 대부분의 워크로드에 속성 기반 선택을 사용하여 유연성을 제공하고 배치 성공률 개선

   속성 기반 인스턴스 선택 방법에서는 Amazon ECS가 지정된 요구 사항을 충족하는 광범위한 인스턴스 유형 중에서 선택할 수 있습니다. 이 접근 방식은 성공적인 태스크 배치 가능성을 높이고 Amazon ECS가 시작 시 사용 가능한 가장 비용 효율적인 인스턴스를 선택할 수 있도록 함으로써 비용 최적화를 개선합니다.

1. 애플리케이션에 특정 하드웨어 요구 사항이 있는 경우에만 특정 인스턴스 유형 사용

   GPU 가속화, 고주파수 프로세서 또는 특수 네트워킹 기능과 같은 특정 하드웨어 기능이 필요한 워크로드에 대해 특정 인스턴스 유형 선택을 예약합니다. 범용 애플리케이션의 경우 속성 기반 선택은 일반적으로 더 나은 유연성과 비용 최적화를 제공합니다.

1. 과다 프로비저닝 및 불필요한 비용을 방지하도록 균형 잡힌 리소스 선택

   애플리케이션의 CPU 및 메모리 요구 사항과 거의 일치하는 인스턴스 구성을 선택합니다. 리소스를 크게 과다 프로비저닝하지 마세요. 이렇게 하면 비용이 증가하고 효율성이 저하됩니다. 모니터링 데이터를 사용하여 실제 리소스 사용률 패턴을 이해하고 그에 따라 인스턴스 선택을 조정합니다.

1. 성능과 비용의 균형을 맞추도록 다양한 워크로드가 있는 애플리케이션에서 인스턴스 유형 혼합

   성능 요구 사항이 다양하거나 워크로드 패턴이 다양한 애플리케이션의 경우 인스턴스 구성이 다른 여러 용량 공급자를 사용하는 방법을 고려합니다. 이 접근 방식을 사용하면 필요한 경우 성능을 유지하면서 애플리케이션의 여러 구성 요소에 적절한 인스턴스 유형을 사용하여 비용을 최적화할 수 있습니다.

1. `capacityOptionType=Reserved`로 구성된 Amazon ECS 관리형 인스턴스 용량 공급자를 사용할 경우 ECS 서비스는 기본 배포 구성으로 `minimumHealthyPercent=100%`와 `maximumPercent=200%`를 사용하므로 ECS 배포 시 기존 태스크를 중단하기 전에 새로운 태스크를 먼저 시작하려고 하며 일시적으로 정상 상태 용량의 최대 200%까지 필요할 수 있다는 점에 유의하십시오. 서비스가 정상 상태에서 EC2 용량 예약의 모든 가용 용량을 사용하고 있는 경우, 배포 과정에서 새로운 태스크를 실행할 추가 용량이 없어 배포가 실패하게 됩니다. 이를 방지하려면 `minimumHealthyPercent`를 100% 미만(예: 75%)으로 설정하고, 새로운 태스크를 시작하기 전에 기존 태스크를 먼저 중단하도록 `maximumPercent`를 100%로 설정하는 것을 고려하세요. 이렇게 하면 교체 태스크를 실행하기 전에 용량을 확보하여 배포를 성공적으로 완료할 수 있습니다. 또한 배포를 수용하고 트래픽 급증에 대응할 수 있도록 예약 내에 여유 용량을 유지하기 위해 용량 사용률을 정기적으로 모니터링하는 것도 고려하세요.

# Amazon ECS Managed Instances 컨테이너 이미지 가져오기 동작
<a name="managed-instance-pull-behavior"></a>

컨테이너를 시작하는 데 걸리는 시간은 기본 컨테이너 이미지에 따라 다릅니다. 예를 들어, 더 큰 이미지(Debian, Ubuntu, Amazon2의 전체 버전)는 시작 시간이 더 오래 걸릴 수 있습니다. 상대적으로 슬림한 버전(Debian-slim, Ubuntu-slim, Amazon-slim) 또는 더 작은 기본 이미지(Alpine)에 비해 컨테이너에서 실행되는 서비스가 더 많기 때문입니다.

Amazon ECS가 Amazon ECS 관리형 인스턴스에서 실행되는 태스크를 시작하면 동일한 컨테이너 인스턴스에서 이전 태스크에 의해 가져온 적이 없거나 캐싱된 이미지가 자동화된 이미지 정리 프로세스에 의해 제거된 경우에만 Amazon ECS에서 이미지를 원격에서 가져옵니다. 그렇지 않으면 Amazon ECS 관리형 인스턴스에서 캐싱된 이미지가 사용됩니다. 이 옵션은 불필요한 이미지 가져오기 시도를 방지합니다.

# Amazon ECS 관리형 인스턴스에서 패치 적용
<a name="managed-instances-patching"></a>

Amazon ECS 관리형 인스턴스에서 패치는 제어되고 구성 가능한 프로세스를 통해 워크로드 가용성을 유지하면서 보안 및 규정 준수를 보장하기 위해 AWS가 관리형 컨테이너 인스턴스에서 소프트웨어를 자동으로 관리하고 업데이트하는 중요한 유지 관리 프로세스입니다.

## 인스턴스 수명 주기
<a name="managed-instances-lifecycle"></a>

기본적으로 Amazon ECS 관리형 컨테이너 인스턴스는 14\$121일의 표준화된 수명 주기에서 작동합니다. Amazon ECS는 인스턴스 시작 후 14일에 정상적인 워크로드 드레이닝을 시작하며, 최종 종료는 21일 이내에 수행됩니다. Amazon ECS는 다음과 같은 특정 상황에서 조기 드레이닝을 수용합니다.
+ 소프트웨어의 보안 취약성 감지
+ 하드웨어 상태 저하
+ 고객이 구성한 이벤트 기간을 준수하는 방법

이 접근 방식은 고객이 정의한 유지 관리 요구 사항을 준수하면서 시스템 규정 준수를 유지 관리합니다.

## 이벤트 기간 및 유지 관리 일정
<a name="managed-instances-event-windows"></a>

AWS는 노드의 생성 타임스탬프 및 유지 관리 일정을 모니터링하는 자동화된 백그라운드 프로세스를 통해 관리형 컨테이너 인스턴스 수명 주기를 관리합니다. 인스턴스 시작 시 AWS는 14일의 기본 드레이닝 일정을 설정하고 고객이 구성한 이벤트 기간을 평가합니다.

이벤트 기간을 구성하여 Amazon ECS 관리형 인스턴스에 대한 유지 관리 활동을 예약할 수 있습니다. 인스턴스 ID 또는 인스턴스 태그를 사용하여 하나 이상의 Amazon ECS 인스턴스를 이벤트 기간에 연결할 수 있습니다. 이벤트 기간에 특정 값으로 태그가 지정되면 Amazon ECS는 이러한 태그를 해당 클러스터의 해당 Amazon ECS 관리형 인스턴스에 매핑하고 정의된 기간에 인스턴스 유지 관리를 최대한 예약합니다.

이벤트 기간에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [Amazon EC2 인스턴스에 영향을 미치는 예약된 이벤트에 대한 사용자 지정 이벤트 기간 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html)을 참조하세요.

이벤트 기간이 있는 경우 AWS는 이러한 기간에 맞게 드레이닝 일정을 조정하므로 지정된 이벤트 기간을 준수하기 위해 14일의 기본 기간보다 일찍 드레이닝할 수 있습니다. 이벤트 기간 수정은 새로 시작된 관리형 컨테이너 인스턴스에만 영향을 미치므로 예측 유지 보수 일정이 보장됩니다.

예약된 드레이닝 시간까지 Amazon ECS는 고객의 구성에 따라 관리형 컨테이너 인스턴스에서 정상적인 태스크 배치 작업을 계속합니다.

## 유지 관리 시퀀스
<a name="managed-instances-maintenance-sequence"></a>

지정된 유지 관리 시간에 Amazon ECS는 `UpdateContainerInstancesState` API를 간접 호출하여 정상적인 워크로드 드레이닝을 시작함으로써 유지 관리 시퀀스를 시작합니다. 정상적인 종료 기간에 Amazon ECS는 드레이닝 대상으로 표시된 인스턴스에서 워크로드를 중지하려고 시도합니다.

Amazon ECS는 서비스 태스크(또는 Amazon ECS 서비스 구성에 따라)에 대한 중지 전 시작 전략을 사용하여 기존 태스크를 중지하기 전에 대체 태스크를 시작하는 방식으로 서비스 중단을 최소화합니다. 이 프로세스 전체에서 Amazon ECS 서비스는 인스턴스 시작 후 21일까지 드레이닝 시도를 계속하면서 모든 서비스 배포 구성을 준수합니다.

21일까지 드레이닝이 완료되지 않은 경우 Amazon ECS는 `DeregisterContainerInstance` API를 실행하여 관리형 컨테이너 인스턴스와 나머지 워크로드를 중지하여 규정 준수를 유지 관리하고 관리형 인스턴스를 최신 소프트웨어로 패치합니다.

# Amazon ECS 관리형 인스턴스의 보안 고려 사항
<a name="managed-instances-security"></a>

 Amazon ECS 관리형 인스턴스는 보안 책임을 AWS로 오프로드하면서 특정 Amazon EC2 인스턴스 유형에서 워크로드를 실행할 수 있는 완전관리형 컨테이너 컴퓨팅 환경을 제공합니다. 이 주제에서는 Amazon ECS 관리형 인스턴스를 사용할 경우 보안 모델, 기능 및 고려 사항에 대해 설명합니다.

## 보안 모델
<a name="managed-instances-security-model"></a>

 Amazon ECS 관리형 인스턴스는 유연성과 보호의 균형을 맞추는 포괄적인 보안 모델을 구현합니다.
+ **AWS 관리형 인프라** - AWS는 관리형 인스턴스의 수명 주기를 제어하고 보안 패치를 처리하여 인적 오류 및 변조 가능성을 제거합니다.
+ **관리 액세스 없음** - 보안 모델이 잠기고 관리형 인스턴스에 대한 관리 액세스를 금지합니다.
+ **다중 태스크 배치** - 기본적으로 Amazon ECS 관리형 인스턴스는 비용 및 사용률을 최적화하기 위해 단일 인스턴스에 여러 태스크를 배치하므로 Fargate에 비해 워크로드 격리 제약 조건이 완화됩니다.
+ **데이터 격리** - AWS는 인스턴스 수명 주기 및 태스크 배치를 제어하지만 AWS는 관리형 인스턴스에 로그인하거나 고객 데이터에 액세스할 수 없습니다.

## 보안 기능
<a name="managed-instances-security-features"></a>

 Amazon ECS 관리형 인스턴스에는 워크로드를 보호하고 강력한 보안 태세를 유지하도록 설계된 여러 기본 제공 보안 기능이 포함되어 있습니다. 이러한 기능은 자동 보안 패치부터 필요한 경우 권한 있는 Linux 기능 지원에 이르기까지 다양합니다.

### 보안 모범 사례
<a name="managed-instances-security-best-practices"></a>

 관리형 인스턴스는 다음을 포함한 AWS 보안 모범 사례에 따라 구성됩니다.
+ **SSH 액세스 없음** - 무단 액세스를 방지하기 위해 원격 셸 액세스가 비활성화됩니다.
+ **변경 불가능한 루트 파일 시스템** - 루트 파일 시스템은 수정할 수 없으므로 시스템 무결성이 보장됩니다.
+ **커널 수준 필수 액세스 제어** - SELinux는 커널 수준에서 추가 보안 적용을 제공합니다.

### 자동 보안 패치 적용
<a name="managed-instances-security-patching"></a>

 Amazon ECS 관리형 인스턴스는 자동 패치를 통해 워크로드의 보안 태세를 개선하는 데 도움이 됩니다.
+ **정기적인 보안 업데이트** - 인스턴스는 사용자가 구성한 유지 관리 기간과 관련하여 AWS에서 최신 보안 패치로 정기적으로 업데이트됩니다.
+ **제한된 인스턴스 수명** - 실행 중인 인스턴스의 최대 수명을 14일로 제한하여 애플리케이션이 최신 보안 패치를 사용하여 적절하게 구성된 인스턴스에서 실행되도록 보장합니다.
+ **유지 관리 기간 제어** - Amazon EC2 이벤트 기간 기능을 사용하여 Amazon ECS가 인스턴스를 패치된 인스턴스로 교체해야 하는 시점을 지정할 수 있습니다.

### 권한 있는 Linux 기능
<a name="managed-instances-privileged-capabilities"></a>

 Amazon ECS 관리형 인스턴스는 향상된 Linux 권한이 필요한 소프트웨어를 지원하여 고급 모니터링 및 보안 솔루션을 지원합니다.
+ **지원되는 기능** - `CAP_NET_ADMIN`, `CAP_SYS_ADMIN`, `CAP_BPF`를 포함하여 권한이 있는 모든 Linux 기능에 옵트인할 수 있습니다.
+ **인기 있는 솔루션** - 이를 통해 Wireshark 및 Datadog과 같은 인기 있는 네트워크 모니터링 및 관찰성 솔루션을 실행할 수 있습니다.
+ **명시적 구성 필요** - 애플리케이션에 추가 보안 위험이 발생할 수 있으므로 권한 있는 Linux 기능을 활성화하도록 Amazon ECS 관리형 인스턴스 용량 공급자를 명시적으로 구성해야 합니다.

**중요**  
 권한 있는 Linux 기능을 활성화하면 태스크가 추가 보안 위험에 노출될 수 있습니다. 애플리케이션에 필요한 경우에만 이러한 기능을 활성화하고 보안 영향을 이해해야 합니다.

## 규정 준수 및 규제 지원
<a name="managed-instances-compliance"></a>

 Amazon ECS 관리형 인스턴스는 Amazon ECS와 동일한 규정 준수 태세를 유지합니다.
+ **규정 준수 프로그램** - Amazon ECS 관리형 인스턴스는 PCI-DSS, HIPAA 및 FedRAMP를 포함하여 Amazon ECS와 동일한 AWS 보증 프로그램의 범위에 있습니다.
+ **FIPS 엔드포인트** - Amazon ECS 관리형 인스턴스는 FedRAMP 규정 준수를 달성하기 위해 AWS 리전에서 FIPS 엔드포인트를 사용하기 위한 계정 수준 설정을 준수합니다.
+ **고객 관리형 키** - 암호화를 위한 고객 관리형 키와 같이 규정 준수를 달성하는 데 필요한 보안 기능을 지원합니다.

## Amazon ECS 관리형 인스턴스 FIPS-140 고려 사항
<a name="managed-instances-fips-considerations"></a>

Amazon ECS 관리형 인스턴스에서 FIPS-140 준수를 사용할 때는 다음 사항을 고려합니다.
+ FIPS-140 준수 관리형 인스턴스 AMI는 AWS GovCloud (US) 리전에서만 제공됩니다.
+ Amazon ECS 관리형 인스턴스는 FIPS-140-3을 지원합니다.
+ FIPS-140 준수는 AWS GovCloud (US) 리전에서 기본적으로 활성화되어 있습니다. FIPS 준수 없이 워크로드를 실행해야 하는 경우, 관리형 인스턴스 용량 공급자 구성에서 FIPS 준수를 끕니다.
+ FIPS-140 준수를 위해 태스크의 `cpuArchitecture`는 `X86_64`여야 합니다.

## Amazon ECS 관리형 인스턴스에서 FIPS 비활성화
<a name="managed-instances-use-fips"></a>

기본적으로 AWS GovCloud (US) 리전의 Amazon ECS 관리형 인스턴스 용량 공급자는 FIPS 준수 AMI를 시작합니다. 새 Amazon ECS 관리형 인스턴스 용량 공급자를 생성할 때 FIPS-140 준수를 비활성화하도록 선택할 수 있습니다. FIPS 준수 없이 새 용량 공급자를 생성하려면 다음 단계를 따릅니다.

1. 용량 공급자에서 FIPS-140 준수를 비활성화합니다.

   ```
   aws ecs create-capacity-provider \
       --cluster cluster-name \
       --name capacity-provider-name \
       --managed-instances-provider '{
           "infrastructureRoleArn": "infrastructure-role-arn",
           "instanceLaunchTemplate": {
               "ec2InstanceProfileArn": "instance-profile-arn",
               "fipsEnabled": false,
               "networkConfiguration": {
                   "subnets": ["subnet-id"],
                   "securityGroups": ["security-group-id"]
               }
           }
       }'
   ```

1. 필요할 경우 ECS Exec을 사용하여 용량 공급자의 FIPS-140 준수 상태를 확인하는 다음 명령을 실행할 수 있습니다.

   *cluster-name*을 클러스터 이름으로 바꾸고, *task-id*를 태스크의 ID 또는 ARN으로 바꾸고, *container-name*을 명령을 실행하려는 태스크의 컨테이너 이름으로 바꿉니다.

   반환 값이 ‘1’이면 FIPS를 사용하고 있음을 나타냅니다.

   ```
   aws ecs execute-command \
       --cluster cluster-name \
       --task task-id \
       --container container-name \
       --interactive \
       --command "cat /proc/sys/crypto/fips_enabled"
   ```

## 보안 고려 사항
<a name="managed-instances-security-considerations"></a>

 Amazon ECS 관리형 인스턴스를 사용할 경우 이해하고 계획해야 할 몇 가지 중요한 보안 고려 사항이 있습니다. 이러한 고려 사항은 워크로드 아키텍처 및 보안 요구 사항에 대해 정보에 입각한 결정을 내리는 데 도움이 됩니다.

### 다중 태스크 보안 모델
<a name="managed-instances-multi-task-security"></a>

 Amazon ECS 관리형 인스턴스의 기본 다중 태스크 배치 모델은 Fargate의 단일 태스크 격리와 다릅니다.
+ **공유 인스턴스 리소스** - 동일한 인스턴스에서 여러 태스크가 실행되어 해당 태스크가 동일한 인스턴스 또는 동일한 ECS 클러스터에서 실행되는 다른 태스크의 취약성에 노출될 수 있습니다.
+ **단일 태스크 옵션** - VM 수준 보안 격리 경계가 있는 기본 Fargate 보안 모델이 필요한 고객을 위해 단일 태스크 모드를 사용하도록 Amazon ECS 관리형 인스턴스를 구성할 수 있습니다.
+ **비용 및 보안의 절충** - 다중 태스크 모드는 비용 최적화와 더 빠른 태스크 시작 시간을 제공하는 반면, 단일 태스크 모드는 더 강력한 격리를 제공합니다.

### 인스턴스 중단 처리
<a name="managed-instances-interruption-handling"></a>

 Amazon ECS 관리형 인스턴스를 사용할 경우 중단을 허용하도록 애플리케이션을 설계하는 것이 중요합니다.
+ **중단 허용** - 기본 서비스 또는 태스크 중단을 허용하는 애플리케이션과 함께 Amazon ECS 관리형 인스턴스를 사용합니다.
+ **서비스 기반 워크로드** - 자동 태스크 교체에 Amazon ECS 서비스를 사용하거나 독립 실행형 태스크에서 14일을 초과하지 않는 제어 및 제한된 기간으로 워크로드를 실행합니다.
+ **정상 종료** - 작업 종료 유예 기간을 구성하여 중단의 영향을 제어합니다.

### 데이터 액세스 및 개인 정보 보호
<a name="managed-instances-data-access"></a>

 Amazon ECS 관리형 인스턴스는 엄격한 데이터 액세스 제어를 유지 관리합니다.
+ **고객 데이터 액세스 없음** - AWS는 관리형 인스턴스의 수명 주기와 인스턴스에 대한 태스크 배치를 제어하지만 AWS는 관리형 인스턴스에 로그인하거나 고객 데이터에 액세스할 수 없습니다.
+ **지표 및 로그만** - AWS는 Amazon ECS 관리형 인스턴스 기능을 제공하는 데 필요한 지표 및 관련 로그만 캡처합니다.
+ **잠긴 보안 모델** - 보안 모델은 관리 액세스를 금지하여 인적 오류 및 변조 가능성을 제거합니다.

## 보안 모범 사례
<a name="managed-instances-security-best-practices-recommendations"></a>

 Amazon ECS 관리형 인스턴스를 사용할 경우 다음 모범 사례를 따르세요.
+ **보안 모델 평가** - 보안 요구 사항, 특히 다중 태스크 배치 모델에 따라 Amazon ECS 관리형 인스턴스 채택에 대해 의식적인 결정을 내립니다.
+ **필요한 경우 단일 태스크 모드 사용** - 워크로드에 더 강력한 격리가 필요한 경우 단일 태스크 모드를 사용하도록 Amazon ECS 관리형 인스턴스를 구성합니다.
+ **권한 있는 기능 최소화** - 반드시 필요한 경우에만 권한 있는 Linux 기능을 활성화하고 관련 보안 위험을 이해합니다.
+ **중단 계획** - 특히 최대 14일의 인스턴스 수명을 고려하여 인스턴스 교체를 정상적으로 처리하도록 애플리케이션을 설계합니다.
+ **유지 관리 기간 구성** - EC2 이벤트 기간을 사용하여 인스턴스 교체 시점을 제어하여 워크로드에 미치는 영향을 최소화합니다.
+ **모니터링 및 감사** - Amazon ECS 관리형 인스턴스 구성을 정기적으로 검토하고 보안 관련 이벤트 또는 변경 사항을 모니터링합니다.

# Amazon ECS 관리형 인스턴스에 대한 VPC 암호화 제어 활성화
<a name="managed-instances-vpc-encryption"></a>

Amazon ECS 관리형 인스턴스는 VPC 암호화 제를 지원합니다. 이 보안 및 준수 기능은 리전 내 VPC 및 VPC 간 모든 트래픽 흐름에 대해 전송 중 암호화를 모니터링하고 적용할 수 있는 중앙 집중식 제어를 제공합니다. 서브넷에서 VPC 암호화 제어가 활성화된 경우, Amazon ECS 관리형 인스턴스 사용자 지정 용량 공급자에서 전송 중 암호화를 지원하는 인스턴스 유형을 지정할 수 있으며, 이를 통해 Amazon ECS 관리형 인스턴스 작업 부하가 전송 중 암호화 상태로 실행되도록 보장할 수 있습니다.

## 사전 조건
<a name="managed-instances-vpc-encryption-prerequisites"></a>

시작하려면 다음이 필요합니다.
+ 전송 중 암호화가 활성화된 서브넷이 있는 VPC. 자세한 내용은 [VPC 암호화 제어 설명서](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html)를 참조하세요.
+ Amazon ECS 관리형 인스턴스 사용자 지정 용량 공급자. 자세한 내용은 [Amazon ECS 관리형 인스턴스에 대한 아키텍트](ManagedInstances.md) 섹션을 참조하세요.

## 호환되는 인스턴스 유형 식별
<a name="managed-instances-vpc-encryption-compatible-types"></a>

Amazon EC2 인스턴스 유형은 다음 두 가지 요건을 충족해야 합니다.

1. **전송 중 VPC 암호화 지원** – 다음 AWS CLI 명령을 사용하여 전송 중 암호화를 지원하는 Amazon EC2 인스턴스 유형을 확인할 수 있습니다.

   ```
   aws ec2 describe-instance-types \
       --filters Name=network-info.encryption-in-transit-supported,Values=true \
       --query "InstanceTypes[*].[InstanceType]" \
       --output text | sort
   ```

1. **Amazon ECS 관리형 인스턴스 지원** – Amazon ECS 관리형 인스턴스에서 지원하는 모든 Amazon EC2 인스턴스 유형은 [Amazon ECS 관리형 인스턴스의 인스턴스 유형](managed-instances-instance-types.md)에 기록되어 있습니다.

추가 요구 사항이 있는 경우(예: 특정 CPU, 메모리 또는 아키텍처 요구 사항), 워크로드 요구 사항에 따라 호환 가능한 인스턴스 유형을 추가로 필터링합니다.

## VPC 암호화를 지원하는 클러스터 생성
<a name="managed-instances-vpc-encryption-cluster-config"></a>

Amazon ECS 관리형 인스턴스를 전송 중 VPC 암호화에 맞게 구성하려면:

1. 새 클러스터를 생성하고 인프라로 **Fargate 및 관리형 인스턴스**를 선택합니다.

1. 추가 구성 파라미터에 접근하려면 **사용자 지정 사용 – 고급**을 선택합니다.

1. **허용된 인스턴스 유형**에 전송 중 VPC 암호화를 지원하는 특정 인스턴스 유형만 추가합니다.

이렇게 구성하면, Amazon ECS 관리형 인스턴스는 전송 중 VPC 암호화를 지원하는 Amazon EC2 인스턴스 유형만 시작합니다.

## 고려 사항
<a name="managed-instances-vpc-encryption-considerations"></a>
+ **성능 버스트 가능 인스턴스** – T3, T3a, T4g 인스턴스 유형은 전송 중 VPC 암호화를 지원하지 않으며, 암호화 제어가 적용 모드로 설정된 서브넷에서는 사용할 수 없습니다.
+ **모드 전환** - 모든 실행 중인 인스턴스가 전송 중 VPC 암호화를 지원하는 경우에만 VPC 서브넷을 모니터링 모드에서 적용 모드로 전환할 수 있습니다.
+ **태스크 시작 실패** - 적용 모드에서 전송 중 암호화를 지원하지 않는 인스턴스 유형을 지정하면 태스크가 실행되지 않습니다.

## 문제 해결
<a name="managed-instances-vpc-encryption-troubleshooting"></a>

적용 모드에서 태스크 시작 실패  
태스크가 실행되지 않을 경우, 위에서 제공된 AWS CLI 명령을 사용하여 지정한 모든 인스턴스 유형이 전송 중 VPC 암호화를 지원하는지 확인합니다.

적용 모드로 전환할 수 없음  
콘솔 또는 `GetVpcResourcesBlockingEncryptionEnforcement` 명령을 사용하여 전송 중 암호화를 적용하지 않는 리소스를 식별합니다.

VPC 암호화 제어에 대한 자세한 내용은 [VPC 암호화 제어 설명서](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html)를 참조하세요.

# Amazon ECS 관리형 인스턴스 인프라 최적화
<a name="managed-instances-infrastructure-optimization"></a>

Amazon ECS 관리형 인스턴스는 용량 공급자 구성 및 현재 워크로드 수요에 따라 적정 규모의 EC2 인스턴스를 자동으로 프로비저닝하여 컨테이너화된 애플리케이션이 배포되는 순간부터 적절한 컴퓨팅 리소스를 갖도록 합니다. 애플리케이션 트래픽 패턴이 발전하고 시간이 지남에 따라 워크로드 요구 사항이 변화하면서 Amazon ECS 관리형 인스턴스는 현재 요구 사항에 맞게 인스턴스 크기를 지능적으로 조정하고, 최적의 구성에서 드리프트된 인스턴스를 선제적으로 교체하며, 비용 효율성, 애플리케이션 성능 및 시스템 신뢰성의 동적 균형을 유지함으로써 인프라를 지속적으로 모니터링하고 최적화합니다. 이 리소스 관리 시스템은 수동 개입 없이 작동하므로 애플리케이션의 고가용성을 유지하면서 인프라 비용을 절감할 수 있습니다.

인프라 최적화에는 다음과 같은 이점이 있습니다.
+ 비용 최적화 - 리소스 사용률을 극대화하고 유휴 용량을 제거하여 인프라 비용 절감
+ 성능 개선 - 리소스 요구 사항 및 성능 특성에 따라 워크로드 배치 최적화
+ 운영 단순화 - 수동 개입 없이 복잡한 리소스 관리 의사 결정 자동화
+ 신뢰성 향상 - 지능형 워크로드 배포 및 상태 모니터링을 통해 고가용성 유지 관리

Amazon ECS 관리형 인스턴스는 효율성을 극대화하고 비용을 절감하기 위해 두 가지 유형의 인프라 최적화를 수행합니다.

## 유휴 인스턴스 감지
<a name="idle-instance-detection"></a>

실행 중인 태스크가 없는 EC2 인스턴스를 식별하고 제거하여 미사용 용량에서 불필요한 인프라 비용을 제거합니다. 유휴 인스턴스가 감지되면 최적화 프로세스가 컨테이너 인스턴스를 등록 해제 중으로 표시하여 기본 EC2 인스턴스를 안전하게 종료하는 정리 시퀀스를 시작합니다.

## 사용률이 낮은 인스턴스 감지
<a name="underutilized-instance-detection"></a>

인스턴스 간 태스크 배포를 분석하여 리소스 할당을 개선할 기회를 식별합니다. 여러 인스턴스에서 태스크가 최적이 아닌 방식으로 실행되는 경우 Amazon ECS 관리형 인스턴스는 워크로드를 더 적은 수의 더 효율적으로 활용되는 인스턴스로 통합하여 성능을 유지 관리하면서 전체 비용을 절감합니다. 최적화 프로세스는 활용도가 낮은 컨테이너 인스턴스를 드레이닝 중으로 표시하므로 태스크 교체를 트리거하여 워크로드를 기존 인스턴스 또는 새롭고 더 효율적인 인스턴스로 이동합니다. 모든 태스크가 안전하게 마이그레이션되면 인스턴스는 등록 해제 중 상태로 전환되고 정리됩니다. 이 최적화는 서비스 태스크를 실행하는 인스턴스에 적용되며 서비스의 최소 및 최대 태스크 제한을 준수하고, 중지 전에 시작 동작을 준수하며, 드레이닝 프로세스 전반에 걸쳐 태스크 보호 설정을 유지 관리하여 안전한 통합을 보장합니다. ECS 관리형 인스턴스는 독립 실행형 태스크를 대체하지 않으므로 독립 실행형 태스크를 실행하는 인스턴스는 최적화 대상으로 간주되지 않습니다.

이러한 최적화는 함께 작동하여 인프라가 실제 워크로드 요구 사항에 지속적으로 적응하게 보장하여 애플리케이션 가용성에 영향을 주지 않고 낭비를 자동으로 제거하고 리소스 사용률을 개선합니다. 두 메커니즘 모두 태스크 및 인스턴스 수명 주기 이벤트에 응답하는 이벤트 기반 모니터링을 사용하여 최적화 기회를 실시간으로 식별합니다. Amazon ECS 관리형 인스턴스는 컨테이너 인스턴스에서 마지막 태스크가 중지되는 시점을 감지하여 비용 최적화를 위한 잠재적 유휴 조건을 나타냅니다. 활용도가 낮은 인스턴스의 경우 모든 태스크 중지 또는 새 인스턴스 시작은 분석을 트리거하여 워크로드 통합 및 리소스 효율성 개선 기회를 식별합니다.

## ScaleInAfter
<a name="scale-in-after"></a>

두 인프라 최적화 모두 실행 중인 인스턴스를 종료하여 사용률을 개선하고 비용을 절감할 수 있는 기회를 찾습니다. 유휴 인스턴스와 사용률이 낮은 인스턴스 모두에 적용되는 Amazon ECS 관리형 인스턴스 용량 공급자 설정의 ScaleInAfter 구성을 사용하여 이러한 작업의 타이밍을 제어할 수 있습니다. ScaleInAfter를 사용하면 인스턴스가 유휴 상태가 되거나 사용률이 낮은 시점 및 Amazon ECS 관리형 인스턴스가 인프라 최적화를 시작하는 시점 사이의 지연 시간을 초 단위로 지정할 수 있습니다. 지연 시간을 0초에서 3,600초 사이로 설정할 수 있습니다. 또한 -1을 지정하여 인프라 최적화를 비활성화할 수도 있습니다.

**유휴 인스턴스**  
+ ECS는 인스턴스 등록을 취소하기 전에 마지막 태스크가 중지된 후 지정된 기간 대기합니다.
+ 대기 기간 중에 새 태스크가 시작되면 인스턴스가 더 이상 유휴 상태로 간주되지 않고 종료가 취소됩니다.

**사용량이 적은 인스턴스**  
+ ECS는 인스턴스를 드레이닝하기 전에 인스턴스 사용 부족으로 이어지는 태스크 중지 이벤트 후 지정된 기간 대기합니다.
+ 대기 기간에 특정 인스턴스에서 새 태스크가 시작되거나 기존 태스크가 중지되는 경우 타이머는 가장 최근 태스크 중지 또는 새 태스크 생성 시간에서 재설정되고 Amazon ECS 관리형 인스턴스는 비효율성을 재평가하고 새 대기 기간이 만료된 후 필요한 경우 조치를 취합니다.

이 구성은 선택 사항입니다. 지정하지 않으면 ECS 관리형 인스턴스는 ECS 관리형 인스턴스 기본 구성을 기반으로 최적의 타이밍을 자동으로 결정합니다.

# AWS Fargate에서 Amazon ECS 관리형 인스턴스로 마이그레이션
<a name="migrate-fargate-to-managed-instances"></a>

기존 워크로드를 Fargate에서 Amazon ECS 관리형 인스턴스로 마이그레이션할 수 있습니다. 이 마이그레이션을 통해 AWS 관리형 인프라를 유지하면서 모든 범위의 Amazon EC2 인스턴스 유형, 용량 예약 및 고급 기능에 액세스할 수 있습니다.

## 마이그레이션 고려 사항
<a name="migration-considerations"></a>

Fargate에서 Amazon ECS 관리형 인스턴스로 마이그레이션할 경우 다음 사항을 고려합니다.

태스크 호환성  
Fargate에 대해 구성된 기존 태스크 정의는 대부분 Amazon ECS 관리형 인스턴스와 호환됩니다. 태스크 정의 차이에 대한 자세한 내용은 [Amazon ECS 관리형 인스턴스에 대한 Amazon ECS 태스크 정의 차이](managed-instances-tasks-services.md) 섹션을 참조하세요.

보안 모델 변경 사항  
Amazon ECS 관리형 인스턴스는 기본적으로 인스턴스당 여러 태스크를 허용합니다. 워크로드에 더 강력한 격리가 필요한 경우 단일 태스크 모드를 활성화하는 방법을 고려합니다.

인스턴스 수명 주기  
Amazon ECS 관리형 인스턴스의 최대 수명은 14일입니다. 태스크 교체를 계획하고 자동 태스크 관리를 위해 Amazon ECS 서비스를 사용합니다.

요금 변경 사항  
Amazon ECS 관리형 인스턴스를 사용하면 Fargate와 마찬가지로 태스크당 리소스가 아닌 전체 인스턴스에 대한 요금과 관리 요금을 지불합니다.

유지 관리 기간  
Amazon EC2 이벤트 기간을 통해 유지 관리 기간을 구성하여 Amazon ECS 관리형 인스턴스가 패치를 위해 교체되는 시기를 제어합니다.

## 사전 조건
<a name="migration-prerequisites"></a>

Amazon ECS 관리형 인스턴스로 마이그레이션하기 전에 다음 조건을 갖추어야 합니다.
+ 플랫폼 버전 1.4.0 이상에서 실행되는 기존 Fargate 태스크
+ Amazon ECS 관리형 인스턴스에 필요한 IAM 역할이 있습니다. 여기에는 다음이 포함됩니다.
  + **인프라 역할** - Amazon ECS가 사용자를 대신해 AWS 서비스를 직접 호출하여 Amazon ECS 관리형 인스턴스 인프라를 관리하도록 허용합니다.

    자세한 내용은 [Amazon ECS 인프라 IAM 역할](infrastructure_IAM_role.md) 섹션을 참조하세요.
  + **인스턴스 프로파일** - 관리형 인스턴스에서 실행되는 Amazon ECS 컨테이너 에이전트 및 Docker 대몬에 대한 권한을 제공합니다.

    자세한 내용은 [Amazon ECS 관리형 인스턴스의 인스턴스 프로파일](managed-instances-instance-profile.md) 섹션을 참조하세요.
+ Fargate와 Amazon ECS 관리형 인스턴스 간 보안 모델 차이 이해

**중요**  
Amazon ECS 관리형 인스턴스는 Fargate와 다른 보안 모델을 사용합니다. 기본적으로 동일한 인스턴스에서 여러 태스크를 실행할 수 있으며, 이로 인해 태스크가 다른 태스크의 취약성에 노출될 수 있습니다. 마이그레이션하기 전에 보안 요구 사항을 검토합니다.

## 1단계: Amazon ECS 관리형 인스턴스를 사용하도록 클러스터 업데이트
<a name="update-to-managed-instances"></a>

용량 공급자를 생성합니다. Amazon ECS 관리형 인스턴스를 사용하여 용량 공급자를 생성하는 경우 지정된 클러스터 내에서만 사용할 수 있습니다.

자세한 내용은 [Amazon ECS 관리형 인스턴스에 대한 용량 공급자 생성](create-capacity-provider-managed-instances.md) 섹션을 참조하세요.

## 2단계: Amazon ECS 관리형 인스턴스 기능을 사용하도록 태스크 정의 업데이트
<a name="update-task-def"></a>

Amazon ECS 관리형 인스턴스에 대한 기능을 요구하도록 태스크 정의를 업데이트합니다.

자세한 내용은 [콘솔을 사용하여 Amazon ECS 작업 정의 업데이트](update-task-definition-console-v2.md) 섹션을 참조하세요.

## 3단계: Amazon ECS 관리형 인스턴스 용량 공급자를 사용하도록 서비스 업데이트
<a name="migrate-service"></a>

Amazon ECS 관리형 인스턴스 용량 공급자를 사용하도록 기존 Amazon ECS 서비스를 업데이트합니다.

자세한 내용은 [용량 공급자를 사용하도록 Amazon ECS 서비스 업데이트](update-service-managed-instances.md) 섹션을 참조하세요.

## 4단계: 독립 실행형 태스크 마이그레이션
<a name="migrate-standalone-task"></a>

독립 실행형 태스크의 경우 태스크를 실행할 때 Amazon ECS 관리형 인스턴스 용량 공급자를 지정합니다.

자세한 내용은 [애플리케이션을 Amazon ECS 태스크로 실행](standalone-task-create.md) 섹션을 참조하세요.

# Amazon EC2에서 Amazon ECS 관리형 인스턴스로 마이그레이션
<a name="migrate-ec2-to-managed-instances"></a>

기존 워크로드를 Amazon EC2에서 Amazon ECS 관리형 인스턴스로 마이그레이션합니다. 이 마이그레이션을 통해 AWS 관리형 인프라를 유지하면서 모든 범위의 Amazon EC2 인스턴스 유형, 용량 예약 및 고급 기능에 액세스할 수 있습니다.

## 마이그레이션 고려 사항
<a name="ec2-migration-considerations"></a>

Amazon EC2에서 Amazon ECS 관리형 인스턴스로 마이그레이션할 경우 다음 사항을 고려합니다.

태스크 호환성  
Amazon EC2에 대해 구성된 기존 태스크 정의는 대부분 Amazon ECS 관리형 인스턴스와 호환됩니다. 태스크 정의 차이 목록은 [Amazon ECS 관리형 인스턴스에 대한 Amazon ECS 태스크 정의 차이](managed-instances-tasks-services.md) 섹션을 참조하세요.

보안 모델 변경 사항  
Amazon ECS 관리형 인스턴스는 기본적으로 인스턴스당 여러 태스크를 허용합니다. 워크로드에 더 강력한 격리가 필요한 경우 단일 태스크 모드를 활성화하는 방법을 고려합니다.

인스턴스 수명 주기  
Amazon ECS 관리형 인스턴스의 최대 수명은 14일입니다. 태스크 교체를 계획하고 자동 태스크 관리를 위해 Amazon ECS 서비스를 사용합니다.

요금 변경 사항  
Amazon ECS 관리형 인스턴스를 사용하면 인프라 관리 오버헤드를 처리하면서 AWS에서 전체 인스턴스에 대한 요금과 관리 요금을 지불합니다.

유지 관리 기간  
Amazon EC2 이벤트 기간을 통해 유지 관리 기간을 구성하여 Amazon ECS 관리형 인스턴스가 패치를 위해 교체되는 시기를 제어합니다.

## 사전 조건
<a name="ec2-migration-prerequisites"></a>

Amazon ECS 관리형 인스턴스로 마이그레이션하기 전에 다음 조건을 갖추어야 합니다.
+ Amazon ECS 관리형 인스턴스에 필요한 IAM 역할이 있습니다. 여기에는 다음이 포함됩니다.
  + **인프라 역할** - Amazon ECS가 사용자를 대신해 AWS 서비스를 직접 호출하여 Amazon ECS 관리형 인스턴스 인프라를 관리하도록 허용합니다.

    자세한 내용은 [Amazon ECS 인프라 IAM 역할](infrastructure_IAM_role.md) 섹션을 참조하세요.
  + **인스턴스 프로파일** - 관리형 인스턴스에서 실행되는 Amazon ECS 컨테이너 에이전트 및 Docker 대몬에 대한 권한을 제공합니다.

    자세한 내용은 [Amazon ECS 관리형 인스턴스의 인스턴스 프로파일](managed-instances-instance-profile.md) 섹션을 참조하세요.
+ Amazon EC2와 Amazon ECS 관리형 인스턴스 간 보안 모델 차이 이해

## 1단계: Amazon ECS 관리형 인스턴스를 사용하도록 클러스터 업데이트
<a name="ec2-update-to-managed-instances"></a>

용량 공급자를 생성합니다. Amazon ECS 관리형 인스턴스를 사용하여 용량 공급자를 생성하는 경우 지정된 클러스터 내에서만 사용할 수 있습니다.

자세한 내용은 [Amazon ECS 관리형 인스턴스에 대한 용량 공급자 생성](create-capacity-provider-managed-instances.md) 섹션을 참조하세요.

## 2단계: Amazon ECS 관리형 인스턴스 기능을 사용하도록 태스크 정의 업데이트
<a name="ec2-update-task-def"></a>

Amazon ECS 관리형 인스턴스에 대한 기능을 요구하도록 태스크 정의를 업데이트합니다.

자세한 내용은 [콘솔을 사용하여 Amazon ECS 작업 정의 업데이트](update-task-definition-console-v2.md) 섹션을 참조하세요.

## 3단계: Amazon ECS 관리형 인스턴스 용량 공급자를 사용하도록 서비스 업데이트
<a name="ec2-migrate-service"></a>

Amazon ECS 관리형 인스턴스 용량 공급자를 사용하도록 기존 Amazon ECS 서비스를 업데이트합니다.

자세한 내용은 [용량 공급자를 사용하도록 Amazon ECS 서비스 업데이트](update-service-managed-instances.md) 섹션을 참조하세요.

## 4단계: 독립 실행형 태스크 마이그레이션
<a name="ec2-migrate-standalone-task"></a>

독립 실행형 태스크의 경우 태스크를 실행할 때 Amazon ECS 관리형 인스턴스 용량 공급자를 지정합니다.

자세한 내용은 [애플리케이션을 Amazon ECS 태스크로 실행](standalone-task-create.md) 섹션을 참조하세요.