

# 데이터 전달을 위한 Amazon ECS Linux 컨테이너 인스턴스 부트스트래핑
<a name="bootstrap_container_instance"></a>

Amazon EC2 인스턴스를 시작하면 사용자 데이터를 EC2 인스턴스에 전달할 수 있습니다. 이 데이터는 일반적인 구성 태스크를 자동으로 수행하는 데 사용할 수 있고, 인스턴스가 부팅될 때 스크립트를 실행하는 데 사용할 수도 있습니다. Amazon ECS의 경우 사용자 데이터의 가장 일반적인 사용 사례는 구성 정보를 Docker 대몬 및 Amazon ECS 컨테이너 에이전트에 전달하는 것입니다.

클라우드 boothook, 셸 스크립트, `cloud-init` 명령을 비롯하여 여러 유형의 사용자 데이터를 Amazon EC2에 전달할 수 있습니다. 이러한 유형 및 다른 형식 유형에 대한 자세한 정보는 [Cloud-Init 설명서](https://cloudinit.readthedocs.io/en/latest/explanation/format.html)를 참조하세요.

Amazon EC2 시작 마법사를 사용할 때 사용자 데이터를 전달하려면 [Amazon ECS Linux 컨테이너 인스턴스 시작](launch_container_instance.md) 섹션을 참조하세요.

컨테이너 에이전트 구성 또는 Docker 대몬 구성의 데이터를 전달하도록 컨테이너 인스턴스를 구성할 수 있습니다.

## Amazon ECS 컨테이너 에이전트
<a name="bootstrap_container_agent"></a>

Linux 변형의 Amazon ECS 최적화 AMI는 컨테이너 에이전트가 시작될 때 `/etc/ecs/ecs.config` 파일에서 에이전트 구성 데이터를 찾습니다. 시작 시 Amazon EC2 사용자 데이터를 사용하여 이 구성 데이터를 지정할 수 있습니다. 사용 가능한 Amazon ECS 컨테이너 에이전트 구성 변수에 대한 자세한 정보는 [Amazon ECS 컨테이너 에이전트 구성](ecs-agent-config.md) 섹션을 참조하세요.

클러스터 이름과 같이 단일 에이전트 구성 변수만 설정하려면 **echo**를 사용하여 구성 파일에 변수를 복사합니다.

```
#!/bin/bash
echo "ECS_CLUSTER=MyCluster" >> /etc/ecs/ecs.config
```

`/etc/ecs/ecs.config`에 작성할 여러 변수가 있는 경우 다음 `heredoc` 형식을 사용합니다. 이 형식은 **cat**으로 시작하는 라인과 `EOF` 사이의 모든 항목을 구성 파일에 작성합니다.

```
#!/bin/bash
cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
ECS_LOGLEVEL=debug
ECS_WARM_POOLS_CHECK=true
EOF
```

사용자 지정 인스턴스 속성을 설정하려면 `ECS_INSTANCE_ATTRIBUTES` 환경 변수를 설정합니다.

```
#!/bin/bash
cat <<'EOF' >> ecs.config
ECS_INSTANCE_ATTRIBUTES={"envtype":"prod"}
EOF
```

## Docker 대몬
<a name="bootstrap_docker_daemon"></a>

Amazon EC2 사용자 데이터를 사용하여 Docker 대몬 구성 정보를 지정할 수 있습니다. 이 구성 옵션에 대한 자세한 정보는 [Docker 대몬 설명서](https://docs.docker.com/reference/cli/dockerd/)를 참조하세요.

**참고**  
사용자 지정 Docker 구성은 경우에 따라 경고 없이 향후 Amazon ECS 변경 사항이나 기능과 충돌할 수 있으므로 AWS에서 지원하지 않습니다.

아래 예에서 사용자 정의 옵션이 Docker 대몬 구성 파일 `/etc/docker/daemon.json`에 추가되며, 파일은 인스턴스가 시작될 때 사용자 데이터에 지정됩니다.

```
#!/bin/bash
cat <<EOF >/etc/docker/daemon.json
{"debug": true}
EOF
systemctl restart docker --no-block
```

아래 예에서 사용자 정의 옵션이 Docker 대몬 구성 파일 `/etc/docker/daemon.json`에 추가되며, 파일은 인스턴스가 시작될 때 사용자 데이터에 지정됩니다. 이 예제에서는 Docker 대몬(daemon) 구성 파일에서 docker-proxy를 비활성화하는 방법을 보여줍니다.

```
#!/bin/bash
cat <<EOF >/etc/docker/daemon.json
{"userland-proxy": false}
EOF
systemctl restart docker --no-block
```