

# Amazon ECS 최적화 Bottlerocket AMI
<a name="ecs-bottlerocket"></a>

Bottlerocket은 Linux 기반 오픈 소스 운영 체제로, AWS에서 가상 머신 또는 베어 메탈 호스트에서 컨테이너를 실행하기 위해 특별히 개발했습니다. Amazon ECS 최적화 Bottlerocket AMI는 안전하며 컨테이너를 실행하는 데 필요한 최소 수의 패키지만 포함합니다. 이를 통해 리소스 사용량을 향상하고, 보안 공격 표면을 줄이고, 관리 오버헤드를 낮출 수 있습니다. 또한 Bottlerocket AMI는 Amazon ECS와 통합되어 클러스터의 컨테이너 인스턴스 업데이트와 관련된 운영 오버헤드를 줄이는 데에도 도움이 됩니다.

Bottlerocket은 다음과 같은 점에서 Amazon Linux와 다릅니다.
+ Bottlerocket은 패키지 관리자를 포함하지 않으며, 소프트웨어를 컨테이너로만 실행할 수 있습니다. Bottlerocket에 대한 업데이트는 한 단계로 적용하고 롤백할 수 있으므로, 업데이트 오류가 발생할 가능성이 줄어듭니다.
+ Bottlerocket 호스트를 관리하는 기본 메커니즘은 컨테이너 스케줄러를 사용하는 것입니다. Amazon Linux와 달리 개별 Bottlerocket 인스턴스에 로그인하는 것은 고급 디버깅 및 문제 해결 목적으로만 드물게 사용됩니다.

Bottlerocket에 대한 자세한 내용은 GitHub의 [설명서](https://github.com/bottlerocket-os/bottlerocket/blob/develop/README.md) 및 [릴리스](https://github.com/bottlerocket-os/bottlerocket/releases)를 참조하세요.

커널 6.1 및 커널 5.10용 Amazon ECS 최적화 Bottlerocket AMI 변형으로 여러 가지가 있습니다.

다음 변형은 커널 6.1을 사용합니다.
+ `aws-ecs-2`
+ `aws-ecs-2-nvidia`

다음 변형은 커널 5.10을 사용합니다.
+ `aws-ecs-1`
+ `aws-ecs-1-nvidia`

  `aws-ecs-1-nvidia` 변형에 대한 자세한 정보는 [Announcing NVIDIA GPU support for Bottlerocket on Amazon ECS](https://aws.amazon.com/blogs/containers/announcing-nvidia-gpu-support-for-bottlerocket-on-amazon-ecs/)를 참조하세요.

## 고려 사항
<a name="ecs-bottlerocket-considerations"></a>

Amazon ECS에서 Bottlerocket AMI를 사용할 때는 다음 사항을 고려해야 합니다.
+ Bottlerocket은 `x86_64` 및 `arm64` 프로세서가 있는 Amazon EC2 인스턴스를 지원합니다. Bottlerocket AMI를 Inferentia 칩이 있는 Amazon EC2 인스턴스와 함께 사용하는 것은 권장되지 않습니다.
+ Bottlerocket 이미지에는 SSH 서버 또는 쉘이 포함되지 않습니다. 하지만 대역 외 관리 도구를 사용하여 SSH 관리자 액세스 권한을 얻고 부트스트래핑을 수행할 수 있습니다.

   자세한 내용은 GitHub의 [bottlerocket README.md](https://github.com/bottlerocket-os/bottlerocket)에 있는 관련 부분을 참조하세요.
  + [탐색](https://github.com/bottlerocket-os/bottlerocket#exploration)
  + [관리자 컨테이너](https://github.com/bottlerocket-os/bottlerocket#admin-container)
+ 기본적으로 Bottlerocket에는 사용 설정된 [제어 컨테이너](https://github.com/bottlerocket-os/bottlerocket-control-container)가 있습니다. 이 컨테이너는 Amazon EC2 Bottlerocket 인스턴스에서 명령을 실행하거나 셸 세션을 시작하는 데 사용할 수 있는 [AWS Systems Manager 에이전트](https://github.com/aws/amazon-ssm-agent)를 실행합니다. 자세한 내용은 *AWS Systems Manager 사용 설명서*의 [세션 관리자 설정](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html)을 참조하세요.
+ Bottlerocket은 컨테이너 워크로드에 최적화되어 있으며 보안에 중점을 둡니다. Bottlerocket은 패키지 관리자를 포함하지 않으며 변경 불가능합니다.

  보안 기능 및 지침에 대한 자세한 정보는 GitHub 웹사이트의 [Security Features](https://github.com/bottlerocket-os/bottlerocket/blob/develop/SECURITY_FEATURES.md) 및 [Security Guidance](https://github.com/bottlerocket-os/bottlerocket/blob/develop/SECURITY_GUIDANCE.md)를 참조하세요.
+ `awsvpc` 네트워크 모드는 Bottlerocket AMI 버전 `1.1.0` 이상에 대해 지원됩니다.
+ 작업 정의의 App Mesh는 Bottlerocket AMI 버전 `1.15.0` 이상에 대해 지원됩니다.
+ `initProcessEnabled` 작업 정의 파라미터는 Bottlerocket AMI 버전 `1.19.0` 이상에서 지원됩니다.
+ Bottlerocket AMI는 다음 서비스 및 기능도 지원하지 않습니다.
  + ECS Anywhere
  + Service Connect
  + 암호화 모드의 Amazon EFS
  + `awsvpc` 네트워크 모드의 Amazon EFS
  + Amazon EBS 볼륨을 탑재할 수 없음
  + Elastic Inference 액셀러레이터