Executar comandos remotamente em uma instância do EC2 com o AWS Systems Manager
TUTORIAL
Visão geral
Neste tutorial prático, você aprenderá a usar o AWS Systems Manager para executar comandos remotamente nas suas instâncias do Amazon EC2. O Systems Manager é uma ferramenta de gerenciamento que permite a você obter insights operacionais e trabalhar com recursos da AWS em segurança e grande escala. Com o comando de execução, um dos recursos de automação do Systems Manager, é possível simplificar as tarefas de gerenciamento ao eliminar a necessidade de usar hosts bastion, SSH ou PowerShell remoto.
Em nosso cenário de exemplo, como um administrador do sistema, você precisa atualizar os pacotes das instâncias do EC2. Para complicar essa tarefa geralmente simples, sua equipe de segurança não permite que você acesse diretamente servidores de produção por meio de SSH nem permite usar hosts bastion. Felizmente, você pode usar o Systems Manager para executar comandos remotamente, como pacotes de atualizações, nas suas instâncias do EC2.
Para solucionar esse cenário desafiador, você criará ima função de Identity and Access Management (IAM), habilitará um agente da sua instância que se comunique com o Systems Manager e em seguida seguirá as melhores práticas executando o documento AWS-UpdateSSMAgent para fazer o upgrade do Systems Manager Agent e, por fim, usará o Systems Manager para executar um comando na sua instância.
O AWS Systems Manager sempre é um produto de nível gratuito. A instância do EC2 criada neste tutorial está qualificada para o nível gratuito.
Abra o Console de Gerenciamento da AWS para poder manter este guia detalhado aberto. Quando a tela carregar, insira seu nome de usuário e a senha para começar.
Experiência com a AWS
Iniciante
Tempo para conclusão
10 minutos
Custo da conclusão
Qualificado para o nível gratuito
Requisitos
- Conta da AWS
- Navegador recomendado: versão mais recente do Chrome ou Firefox
[**]É possível que as contas criadas nas últimas 24 horas ainda não tenham acesso aos serviços necessários para este tutorial.
Data da última atualização
14 de julho de 2022
Implementação
Etapa 1: criar um perfil do Identity and Access Management (IAM)
Nesta etapa, você criará um perfil do IAM que será usado para conceder ao Systems Manager permissão para executar ações nas suas instâncias.
a. Abra o console do IAM em https://console.aws.amazon.com/iam/.
b. No painel de navegação esquerdo, selecione Perfis e, em seguida, selecione Criar perfil.
c. Na página Selecionar entidade de confiança, em Serviço da AWS, selecione EC2 e, em seguida, Avançar.
d. Na página Adicionar permissões, na barra de pesquisa, digite AmazonEC2RoleforSSM. Na lista de políticas, selecione AmazonEC2RoleforSSM e escolha Avançar.
e. Na página Nome, revisar e criar, na caixa Nome do perfil, digite EnablesEC2ToAccessSystemsManagerRole. Na caixa Descrição, digite Habilita uma instância do EC2 para acessar o Systems Manager. Escolha Criar perfil.
Etapa 2: criar uma instância do EC2
Nesta etapa, você criará uma instância do EC2 usando o perfil EnablesEC2ToAccessSystemsManagerRole. Isso permitirá que a instância do EC2 seja gerenciada pelo Systems manager.
a. Abra o console do Amazon EC2. No console do EC2, selecione sua Região preferida. Todas as regiões da AWS oferecem suporte ao Systems Manager. Escolha Iniciar instância.
b. No campo Nome, insira MyEC2Tutorial. Selecione a Amazon Linux AMI. Mantenha a seleção padrão mostrada no menu suspenso. Também é possível instalar o Systems Manager Agent ao seu próprio sistema Windows ou Linux.
d. Não será necessário um par de chaves para usar o Systems Manager para executar comandos remotamente. Role para baixo até Par de chaves e, no menu suspenso Nome do par de chaves, escolha Continuar sem um par de chaves.
e. Mantenha as configurações padrão em Configurações de rede e Configurar armazenamento.
Etapa 3: atualizar o Systems Manager Agent
Agora que uma instância do EC2 está executando o Systems Manager Agent, é possível automatizar as tarefas de administração e gerenciar a instância. Nesta etapa, você executa um comando pré-empacotado, denominado documento, que fará o upgrade do agente. É prática recomendada atualizar o System Manager Agent quando uma nova instância é criada.
a. Na barra de navegação superior, pesquise por Systems Manager e abra o console do Systems Manager.
b. Na seção Gerenciamento de nós na barra de navegação esquerda, escolha Fleet Manager.
c. Selecione o ID do nó criado na etapa 2, MyEC2Tutorial, para abrir a página de detalhes do nó.
d. Na página de detalhes do nó, no menu suspenso Ações do nó, selecione Executar comando de execução.
e. Na página Executar um comando, clique na barra de pesquisa e selecione Prefixo do nome do documento e, em seguida, clique em Igual e digite AWS-UpdateSSMAgent.
Agora, selecione o botão de opção à esquerda de AWS-UpdateSSMAgent. Esse documento fará o upgrade do Systems Management Agent na instância.
f. Role para baixo para o painel Destinos e clique na caixa de seleção ao lado da instância do EC2 gerenciada.
Finalmente, role para baixo e selecione Executar.
g. Em seguida, você verá uma página documentando seu comando de execução e o sucesso geral em verde. Parabéns, você acabou de executar seu primeiro comando remoto usando o Systems Manager.
Etapa 4: executar um script de shell remoto
Agora que sua instância do EC2 tem o Systems Manager Agent mais recente, é possível fazer o upgrade dos pacotes na instância do EC2. Nesta etapa, você executará um script de shell por meio do Run Command.
a. Na seção Gerenciamento de nós na barra de navegação esquerda, escolha Fleet Manager.
b. Selecione o ID do nó criado na etapa 2, MyEC2Tutorial, para abrir a página de detalhes do nó.
c. Na página de detalhes do nó, no menu suspenso Ações do nó, selecione Executar comando de execução.
d. Na página Executar um comando, clique na barra de pesquisa e selecione Prefixo do nome do documento e, em seguida, clique em Igual e digite AWS-RunShellScript.
Selecione o botão de opção à esquerda de AWS-RunShellScript.
e. Role para baixo para o painel Parâmetros de comando e insira o seguinte comando na caixa de texto Comandos:
sudo yum update –y
f. Role para baixo para o painel Destinos e clique na caixa de seleção ao lado da instância do EC2 gerenciada.
Finalmente, role para baixo e selecione Executar.
g. Embora seu script esteja sendo executado remotamente na instância do EC2 gerenciada, o Status geral será Em andamento. Em breve, o Status geral mudará para Sucesso. Quando isso ocorrer, role para baixo para o painel Destinos e saídas e selecione o ID da instância. O ID da sua instância será diferente do exibido.
h. Na página Saída em: i-XX, selecione o cabeçalho do painel Saída saída para ver a saída do comando de atualização produzida pela instância.
Etapa 5: encerrar seus recursos
Nesta etapa, você encerrará recursos relacionados ao Systems Manager e ao EC2. Importante: recomenda-se encerrar os recursos que não estão em uso, pois isso reduz custos. Pode haver cobranças caso os recursos não sejam encerrados.
a. Abra o console do Amazon EC2 e, no painel de navegação esquerdo, no cabeçalho Instâncias, selecione Instâncias.
b. Marque a caixa de seleção da sua instância, escolha Estado da instância e, em seguida, selecione Encerrar instância. Essa ação encerrará totalmente a instância.
Conclusão
Parabéns, você criou com sucesso uma instância gerenciada e executou remotamente um comando usando o AWS Systems Manager. Você, inicialmente, definiu permissões corretas por meio do IAM. Em seguida, você executou uma instância do Amazon Linux que foi previamente instalada com o Systems Manager Agent. Por fim, você usou o Run Command para atualizar o agente e remotamente executar uma yum update.
O Systems Manager é uma boa escolha quando é necessário visualizar dados de operação de grupos de recursos, automatizar ações operacionais, entender e controlar o estado atual dos recursos, gerenciar ambientes híbridos e manter a segurança e a conformidade.