1
resposta

Como gerenciar variáveis de ambiente no Spring Boot ao implantar em ECS

Estou trabalhando com uma aplicação Spring Boot que atualmente usa o application.properties para configurar variáveis, como credenciais e URLs. Estou migrando a aplicação para rodar no Amazon ECS e não sei bem qual a melhor forma de passar essas configurações para os contêineres.

1 resposta

Olá, Gustavo!

Entendo que você está migrando sua aplicação Spring Boot para o Amazon ECS e precisa gerenciar as variáveis de ambiente de forma eficiente. Uma prática comum ao trabalhar com contêineres é utilizar variáveis de ambiente para passar configurações sensíveis, como credenciais e URLs, em vez de armazená-las diretamente nos arquivos de configuração.

No Amazon ECS, você pode gerenciar variáveis de ambiente de algumas maneiras:

  1. Definição Direta no ECS Task Definition: Ao criar ou editar uma definição de tarefa no ECS, você pode especificar variáveis de ambiente diretamente no JSON de configuração. Isso é feito na seção "containerDefinitions", onde você pode adicionar um array de variáveis de ambiente.

    "containerDefinitions": [
        {
            "name": "my-container",
            "image": "my-image",
            "environment": [
                {
                    "name": "DATABASE_URL",
                    "value": "jdbc:mysql://my-database-url"
                },
                {
                    "name": "API_KEY",
                    "value": "my-secret-api-key"
                }
            ]
        }
    ]
    
  2. AWS Secrets Manager ou AWS Systems Manager Parameter Store: Para uma abordagem mais segura, você pode armazenar suas credenciais e outras informações sensíveis no AWS Secrets Manager ou no AWS Systems Manager Parameter Store. Depois, você pode configurar sua tarefa ECS para recuperar essas variáveis de ambiente durante a execução.

    • AWS Secrets Manager: Permite armazenar, distribuir e gerenciar senhas, chaves de API e outros segredos de forma segura. Você pode configurar o ECS para buscar esses segredos e injetá-los como variáveis de ambiente.

    • AWS Systems Manager Parameter Store: Oferece uma maneira segura de armazenar strings de configuração e segredos. Você pode referenciar esses parâmetros na definição de tarefa do ECS.

  3. Configuração no Dockerfile ou Entrypoint Script: Outra abordagem é definir variáveis de ambiente no Dockerfile ou em um script de entrada (entrypoint script). No entanto, isso é menos flexível e seguro para informações sensíveis.

Ao escolher a melhor abordagem, considere o nível de segurança necessário para suas variáveis e a facilidade de gerenciamento que você deseja. Usar o AWS Secrets Manager ou o Parameter Store é geralmente recomendado para informações sensíveis.

Espero ter ajudado e bons estudos!