Como posso anexar automaticamente um volume EBS secundário permanente a uma nova Instância Spot Linux do EC2 na inicialização?

Data da última atualização: 18-10-2021

Quero usar um script de dados do usuário para iniciar automaticamente um volume secundário permanente do Amazon Elastic Block Store (Amazon EBS) para minha nova Instância Spot Linux do Amazon Elastic Compute Cloud (Amazon EC2) na inicialização. Como posso fazer isso?

Breve descrição

Para anexar automaticamente um volume do EBS secundário permanente a uma nova Instância Spot Linux do EC2 na inicialização, adicione um script de dados do usuário a um modelo de inicialização do EC2. Use o modelo ao configurar sua solicitação de instância spot.

Pré-requisito

Crie ou use uma função do AWS Identity and Access Management (IAM) que, no mínimo, tenha acesso ao volume anexado concedido para o Amazon EC2. Essa função será anexada ao modelo de inicialização.

Resolução

Etapa 1: Configurar um modelo de inicialização com uma função do IAM e um script de dados do usuário

1.    Abra o console do Amazon EC2.

2.    Selecione Launch Templates (Modelos de inicialização) e, em seguida, selecione Create launch template (Criar modelo de inicialização).

3.    Escolha a AMI, o tipo e o tamanho da instância. Ou escolha uma AMI existente.

4.    Associe um par de chaves ao modelo.

5.    Escolha uma sub-rede na mesma Zona de disponibilidade do volume do EBS.

6.    Selecione Advanced details (Detalhes avançados).

7.    Adicione a função do IAM que, no mínimo, tenha acesso ao volume anexado concedido, conforme mostrado no exemplo a seguir:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/vol-xxxxxxxxxxxx"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeVolumes",
            "Resource": "arn:aws:ec2:*:*:volume/vol-xxxxxxxxxxxx"
        }
    ]

8.    Adicione um script de dados do usuário ao modelo. Veja a seguir um exemplo de script de dados do usuário. Substitua a região e o volume-id para corresponder ao seu ambiente.

#!/bin/bash
      OUTPUT=$(curl http://169.254.169.254/latest/meta-data/instance-id)
      aws ec2 attach-volume --volume-id vol-xxxxxxxxxxxx --device /dev/xvdf --instance-id $OUTPUT --region ap-southeast-1

Etapa 2: Configurar uma solicitação spot usando o modelo de inicialização criado na Etapa 1

1.    Selecione Spot Instance (Instância Spot) e, em seguida, selecione Request Spot Instance (Solicitar instância spot).

2.    Selecione Launch Templates (Modelos de inicialização) e escolha o modelo de inicialização criado na Etapa 1. Todas as informações configuradas no modelo são preenchidas automaticamente.

3.    Escolha a mesma Zona de Disponibilidade do volume do EBS.

4.    Selecione criar Spot Request (Solicitação spot).

Após a conclusão da solicitação spot, o volume secundário permanente do EBS é anexado à nova Instância spot automaticamente na inicialização.


Este artigo foi útil?


Precisa de ajuda com faturamento ou suporte técnico?