Inicialização de instâncias de contêiner do Linux no Amazon ECS para transmitir dados - Amazon Elastic Container Service

Inicialização de instâncias de contêiner do Linux no Amazon ECS para transmitir dados

Ao iniciar uma instância do Amazon EC2, é possível transmitir dados do usuário para a instância do EC2. Os dados podem ser usados para realizar tarefas de configuração automatizadas em comum e até mesmo executar scripts na inicialização da instância. Para o Amazon ECS, os casos de uso mais comuns para dados de usuário devem transmitir informações de configuração para o daemon do Docker e o agente de contêiner do Amazon ECS.

É possível transmitir vários tipos de dados de usuário para o Amazon EC2, inclusive boothooks de nuvem, scripts de shell e diretivas cloud-init. Para obter mais informações sobre esses e outros tipos de formato, consulte a documentação Cloud-Init.

Para transmitir os dados do usuário ao usar o assistente de inicialização do Amazon EC2, consulte Iniciar uma instância de contêiner do Linux do Amazon ECS.

É possível configurar a instância de contêiner para transmitir dados na configuração do agente de contêiner ou na configuração do daemon do Docker.

Agente do contêiner do Amazon ECS

As variantes do Linux da AMI otimizada para Amazon ECS procuram os dados da configuração do agente no arquivo /etc/ecs/ecs.config quando o agente de contêiner é iniciado. É possível especificar esses dados de configuração na inicialização com os dados de usuário do Amazon EC2. Para obter mais informações sobre as variáveis ​​de configuração do agente de contêiner do Amazon ECS disponíveis, consulte Configuração do agente de contêiner do Amazon ECS.

Para definir apenas uma única variável de configuração do agente, como o nome do cluster, use echo a fim de copiar a variável para o arquivo de configuração:

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

Caso você tenha várias variáveis a serem gravadas em /etc/ecs/ecs.config, use o formato heredoc a seguir. Esse formato grava tudo entre as linhas que começam com cat e EOF no arquivo de configuração.

#!/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

Para definir atributos de instância personalizados, defina a variável de ambiente ECS_INSTANCE_ATTRIBUTES.

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

Daemon do Docker

É possível especificar informações de configuração do daemon do Docker com os dados de usuário do Amazon EC2. Para mais informações sobre as opções de configuração, consulte a documentação de daemon do Docker.

No exemplo abaixo, as opções personalizadas são adicionadas ao arquivo de configuração do daemon do Docker, /etc/docker/daemon.json, que é então especificado nos dados de usuário quando a instância é iniciada.

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

No exemplo abaixo, as opções personalizadas são adicionadas ao arquivo de configuração do daemon do Docker, /etc/docker/daemon.json, que é então especificado nos dados de usuário quando a instância é iniciada. Este exemplo mostra como desabilitar o docker-proxy no arquivo de configuração do daemon do Docker.

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