

# Amazon S3에 Amazon ECS 컨테이너 인스턴스 구성 저장
<a name="ecs-config-s3"></a>

Amazon ECS 컨테이너 에이전트 구성은 환경 변수로 제어됩니다. Amazon ECS 최적화 AMI의 Linux 변형은 컨테이너 에이전트가 시작될 때 `/etc/ecs/ecs.config`에서 이들 변수를 확인하여 그에 따라 에이전트를 구성합니다. `ECS_CLUSTER`와 같이 민감하지 않은 환경 변수는 시작 시 Amazon EC2 사용자 데이터를 통해 컨테이너 인스턴스로 전달되고 아무 영향 없이 이 파일에 기록될 수 있습니다. 하지만 AWS 자격 증명 또는 `ECS_ENGINE_AUTH_DATA` 변수와 같은 기타 민감한 정보는 사용자 데이터에서 인스턴스로 전달되거나 `.bash_history` 파일에 표시되도록 허용할 `/etc/ecs/ecs.config`에 기록되어서는 절대 안 됩니다.

Amazon S3에서 구성 정보를 프라이빗 버킷에 저장하고 컨테이너 인스턴스 IAM 역할에 읽기 전용 액세스를 부여하면 시작 시 컨테이너 인스턴스 구성을 안전하고 편리하게 허용할 수 있습니다. 프라이빗 버킷에 `ecs.config` 파일의 사본을 저장할 수 있습니다. 그런 다음 Amazon EC2 사용자 데이터를 사용하여 AWS CLI를 설치하고 인스턴스가 시작될 때 구성 정보를 `/etc/ecs/ecs.config`에 복사할 수 있습니다.

**Amazon S3에 `ecs.config` 파일을 저장하는 방법**

1. Amazon S3에 대해 읽기 전용으로 액세스하려면 컨테이너 인스턴스 역할(**ecsInstanceRole**)에 권한을 부여해야 합니다. **AmazonS3ReadOnlyAccess**를 `ecsInstanceRole` 역할에 할당하면 됩니다. 역할에 정책을 연결하는 방법에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [역할 권한 업데이트](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)를 참조하세요.

1. 다음 형식을 사용하여 유효한 Amazon ECS 에이전트 구성 변수를 포함하는 `ecs.config` 파일을 생성합니다. 이 예제에서는 프라이빗 레지스트리 인증을 구성합니다. 자세한 내용은 [Amazon ECS에서 AWS 컨테이너가 아닌 이미지 사용](private-auth.md) 섹션을 참조하세요.

   ```
   ECS_ENGINE_AUTH_TYPE=dockercfg
   ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
   ```
**참고**  
사용 가능한 Amazon ECS 에이전트 구성 변수의 전체 목록은 GitHub의 [Amazon ECS Container Agent](https://github.com/aws/amazon-ecs-agent/blob/master/README.md)를 참조하세요.

1. 구성 파일을 저장하려면 Amazon S3에 프라이빗 버킷을 만듭니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*에서 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)을 참조하세요.

1. `ecs.config` 파일을 S3 버킷에 업로드합니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [객체 업로드](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)를 참조하세요.

**시작 시 Amazon S3에서 `ecs.config` 파일을 로드하려면**

1. 이 섹션에서 앞서 설명한 절차를 완료하여 컨테이너 인스턴스에 읽기 전용 Amazon S3 액세스를 부여하고 프라이빗 S3 버킷에 `ecs.config` 파일을 저장합니다.

1. 새 컨테이너 인스턴스를 시작하고 EC2 사용자 데이터에서 다음 예제 스크립트를 사용합니다. 스크립트는 AWS CLI를 설치하고 구성 파일을 `/etc/ecs/ecs.config`에 복사합니다. 자세한 내용은 [Amazon ECS Linux 컨테이너 인스턴스 시작](launch_container_instance.md) 섹션을 참조하세요.

   ```
   #!/bin/bash
   yum install -y aws-cli
   aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
   ```