Diretrizes e práticas recomendadas para o arquivamento de snapshots do Amazon EBS - Amazon EBS

Diretrizes e práticas recomendadas para o arquivamento de snapshots do Amazon EBS

Esta seção oferece algumas diretrizes e práticas recomendadas para arquivamento de snapshots.

Arquivamento do único snapshot de um volume

Quando você tem apenas um snapshot de um volume, o snapshot tem sempre o mesmo tamanho dos blocos gravados no volume no momento em que o snapshot foi criado. Quando você arquiva esse snapshot, o snapshot na camada padrão é convertido em um snapshot completo de tamanho equivalente e é movido da camada padrão para a camada de arquivo.

Arquivar esses snapshots pode ajudá-lo a economizar, com custos de armazenamento mais baixos. Se você não precisar mais do volume de origem, pode excluir o volume para economizar mais em custos de armazenamento.

Criação de um snapshot, arquivamento e exclusão do volume de origem.

Arquivamento de snapshots incrementais de um único volume

Quando você arquiva um snapshot incremental, ele é convertido em um snapshot completo e é movido para a camada de arquivo. Por exemplo, na imagem a seguir, se você arquivar Snap B, o snapshot é convertido em um snapshot completo de 10 GiB e movido para a camada de arquivo. Da mesma forma, se você arquivar o Snap C, o tamanho do snapshot completo na camada de arquivo é de 14 GiB.

Arquivar snapshots incrementais de um volume.

Se estiver arquivando snapshots para reduzir os custos de armazenamento na camada padrão, você não deverá arquivar o primeiro snapshot em um conjunto de snapshots incrementais. Esses snapshots são referenciados por snapshots subsequentes na linhagem do snapshot. Na maioria dos casos, arquivar esses snapshots não reduzirá os custos de armazenamento.

nota

Você não deve arquivar o último snapshot de um conjunto de snapshots incrementais. O último snapshot é snapshot mais recente feito de um volume. Você precisará desse snapshot na camada padrão se desejar criar volumes a partir dele no caso de um volume ser corrompido ou perdido.

Se você arquivar um snapshot com dados referenciados por um snapshot posterior na linhagem, os custos de armazenamento de dados e de armazenamento associados aos dados referenciados serão alocados para o snapshot posterior na linhagem. Nesse caso, arquivar os snapshots não reduzirá os custos armazenamento de dados e de armazenamento. Por exemplo, na imagem anterior, se você arquivar o Snap B, seus 4 GiB de dados serão atribuídos ao Snap C. Nesse caso, seus custos gerais de armazenamento aumentarão porque você incorrerá em custos de armazenamento para a versão completa do Snap B na camada de arquivo, e seus custos de armazenamento para a camada padrão permanecerão inalterados.

Se você arquivar o Snap C, o armazenamento da camada padrão diminuirá em 4 GiB porque os dados não são referenciados por nenhum outro snapshot posterior na linhagem. E o armazenamento da camada de arquivo aumentará em 14 GiB porque o snapshot será convertido em um snapshot completo.

Arquivamento de snapshots completos por motivos de conformidade

Pode ser necessário criar backups completos dos volumes mensal, trimestral ou anualmente por motivos de conformidade. Para esses backups, é possível precisar de snapshots autônomos sem referências retroativas ou avançadas a outros snapshots na linhagem dos snapshots. Os snapshots arquivados com o Arquivo de snapshots do EBS são snapshots completos e não têm nenhuma referência a outros snapshots na linhagem. Além disso, você provavelmente precisará reter esses snapshots por motivos de conformidade por vários anos. O Arquivo de snapshots do EBS torna econômico arquivar esses snapshots completos para retenção de longo prazo.

Determinar a redução nos custos de armazenamento do nível padrão

Se você desejar arquivar um snapshot incremental para reduzir os custos de armazenamento, considere o tamanho do snapshot completo na camada de arquivo e a redução no armazenamento no nível padrão. Esta seção explica como fazer isso.

Importante

As respostas da API são precisas em termos de dados no ponto do tempo em que as APIs são chamadas. As respostas da API podem diferir à medida que os dados associados a um snapshot forem alterados em resultado de alterações na linhagem do snapshot.

Para determinar a redução de armazenamento e de custos de armazenamento no nível padrão, use as etapas a seguir.

  1. Confira o tamanho do snapshot completo. Para determinar o tamanho do snapshot completo, use o comando list-snapshot-blocks. Em --snapshot-id, especifique o ID do snapshot que você deseja arquivar.

    $ aws ebs list-snapshot-blocks --snapshot-id snapshot_id

    Isso retorna informações sobre todos os blocos no snapshot especificado. O BlockIndex do último bloco retornado pelo comando indica o número de blocos no snapshot. O número de blocos multiplicado por 512 KiB, que é o tamanho do bloco de snapshot, fornece uma boa aproximação do tamanho do snapshot completo na camada de arquivo (blocos * 512 KiB = tamanho completo do snapshot).

    Por exemplo, o comando a seguir lista os blocos do snapshot snap-01234567890abcdef.

    $ aws ebs list-snapshot-blocks --snapshot-id snap-01234567890abcdef

    A seguir está a saída do comando, com alguns blocos omitidos. A saída a seguir indica que o snapshot inclui cerca de 16.383 blocos de dados. Isso se aproxima de um tamanho do snapshot completo de cerca de 8 GiB (16.383 * 512 KiB = 7,99 GiB).

    { "VolumeSize": 8, "Blocks": [ { "BlockToken": "ABgBAeShfa5RwG+RiWUg2pwmnCU/YMnV7fGMxLbCWfEBEUmmuqac5RmoyVat", "BlockIndex": 0 }, { "BlockToken": "ABgBATdTONyThPUAbQhbUQXsn5TGoY/J17GfE83j9WN7siupavOTw9E1KpFh", "BlockIndex": 1 }, { "BlockToken": "EBEUmmuqXsn5TGoY/QwmnCU/YMnV74eKE2TSsn5TGoY/E83j9WQhbUQXsn5T", "BlockIndex": 4 }, ..... { "BlockToken": "yThPUAbQhb5V8xpwmnCU/YMnV74eKE2TSFY1sKP/4r05y47WETdTONyThPUA", "BlockIndex": 12890 }, { "BlockToken": "ABgBASHKD5V8xEbaRKdxdkZZS4eKE2TSFYlMG1sKP/4r05y47WEHqKaNPcLs", "BlockIndex": 12906 }, { "BlockToken": "ABgBARROGMUJo6P9X3CFHQGZNQ7av9B6vZtTTqV89QqC+SkO0HWMlwkGXjnA", "BlockIndex": 16383 } ], "VolumeSize": 8, "ExpiryTime": 1637677800.845, "BlockSize": 524288 }
  2. Encontre o volume de origem do qual o snapshot que você deseja arquivar foi criado. Use o comando describe-snapshots. Em --snapshot-id, especifique o ID do snapshot que você deseja arquivar. O parâmetro de resposta VolumeId indica o ID do volume de origem.

    $ aws ec2 describe-snapshots --snapshot-id snapshot_id

    Por exemplo, o comando a seguir retorna informações sobre o snapshot snap-09c9114207084f0d9.

    $ aws ec2 describe-snapshots --snapshot-id snap-09c9114207084f0d9

    A seguir está a saída do comando, que indica que esse snapshot snap-09c9114207084f0d9 foi criado a partir do volume vol-0f3e2c292c52b85c3.

    { "Snapshots": [ { "Description": "", "Tags": [], "Encrypted": false, VolumeId": "vol-0f3e2c292c52b85c3", "State": "completed", "VolumeSize": 8, "StartTime": "2021-11-16T08:29:49.840Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-09c9114207084f0d9" } ] }
  3. Encontre todos os snapshots criados a partir do volume de origem. Use o comando describe-snapshots. Especifique o filtro volume-id e, para o valor do filtro, especifique o ID do volume da etapa anterior.

    $ aws ec2 describe-snapshots --filters "Name=volume-id, Values=volume_id"

    Por exemplo, o comando a seguir retorna todos os snapshots criados a partir do volume vol-0f3e2c292c52b85c3.

    $ aws ec2 describe-snapshots --filters "Name=volume-id, Values=vol-0f3e2c292c52b85c3"

    A seguir está a saída do comando, que indica que três snapshots foram criados a partir do volume vol-0f3e2c292c52b85c3.

    { "Snapshots": [ { "Description": "", "Tags": [], "Encrypted": false, "VolumeId": "vol-0f3e2c292c52b85c3", "State": "completed", "VolumeSize": 8, "StartTime": "2021-11-14T08:57:39.300Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-08ca60083f86816b0" }, { "Description": "", "Tags": [], "Encrypted": false, "VolumeId": "vol-0f3e2c292c52b85c3", "State": "completed", "VolumeSize": 8, "StartTime": "2021-11-15T08:29:49.840Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-09c9114207084f0d9" }, { "Description": "01", "Tags": [], "Encrypted": false, "VolumeId": "vol-0f3e2c292c52b85c3", "State": "completed", "VolumeSize": 8, "StartTime": "2021-11-16T07:50:08.042Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-024f49fe8dd853fa8" } ] }
  4. Usando a saída do comando anterior, classifique os snapshots por hora de criação, do mais antigo ao mais novo. O parâmetro de resposta StartTime para cada snapshot indica a hora de sua criação, no formato de hora UTC.

    Por exemplo, os snapshots retornados na etapa anterior, organizados por hora de criação, do mais antigo ao mais novo, são os seguintes:

    1. snap-08ca60083f86816b0 (o mais antigo, criado antes do snapshot que você deseja arquivar)

    2. snap-09c9114207084f0d9 (o snapshot a ser arquivado)

    3. snap-024f49fe8dd853fa8 (o mais novo, criado depois do snapshot que você deseja arquivar)

  5. Identifique os snapshots que foram criados imediatamente antes e depois do snapshot que você deseja arquivar. Nesse caso, você deseja arquivar o snapshot snap-09c9114207084f0d9, que foi o segundo snapshot incremental criado no conjunto de três snapshots. O snapshot snap-08ca60083f86816b0 foi criado imediatamente antes e o snapshot snap-024f49fe8dd853fa8 foi criado imediatamente depois.

  6. Encontre os dados não referenciados no snapshot que você deseja arquivar. Primeiro, encontre os blocos que são diferentes entre o snapshot que foi criado imediatamente antes do snapshot que você deseja arquivar e o snapshot que você deseja arquivar. Use o comando list-changed-blocks. Em --first-snapshot-id, especifique o ID do snapshot criado imediatamente antes do snapshot que você deseja arquivar. Em --second-snapshot-id, especifique o ID do snapshot que você deseja arquivar.

    $ aws ebs list-changed-blocks --first-snapshot-id snapshot_created_before --second-snapshot-id snapshot_to_archive

    Por exemplo, o comando a seguir mostra os índices de bloco para os blocos que são diferentes entre o snapshot snap-08ca60083f86816b0 (o snapshot criado antes do snapshot que você deseja arquivar) e snapshot snap-09c9114207084f0d9 (o snapshot que você deseja arquivar).

    $ aws ebs list-changed-blocks --first-snapshot-id snap-08ca60083f86816b0 --second-snapshot-id snap-09c9114207084f0d9

    A seguir está a saída do comando, com alguns blocos omitidos.

    { "BlockSize": 524288, "ChangedBlocks": [ { "FirstBlockToken": "ABgBAX6y+WH6Rm9y5zq1VyeTCmEzGmTT0jNZG1cDirFq1rOVeFbWXsH3W4z/", "SecondBlockToken": "ABgBASyx0bHHBnTERu+9USLxYK/81UT0dbHIUFqUjQUkwTwK5qkjP8NSGyNB", "BlockIndex": 4 }, { "FirstBlockToken": "ABgBAcfL+EfmQmlNgstqrFnYgsAxR4SDSO4LkNLYOOChGBWcfJnpn90E9XX1", "SecondBlockToken": "ABgBAdX0mtX6aBAt3EBy+8jFCESMpig7csKjbO2Ocd08m2iNJV2Ue+cRwUqF", "BlockIndex": 5 }, { "FirstBlockToken": "ABgBAVBaFJmbP/eRHGh7vnJlAwyiyNUi3MKZmEMxs2wC3AmM/fc6yCOAMb65", "SecondBlockToken": "ABgBAdewWkHKTcrhZmsfM7GbaHyXD1Ctcn2nppz4wYItZRmAo1M72fpXU0Yv", "BlockIndex": 13 }, { "FirstBlockToken": "ABgBAQGxwuf6z095L6DpRoVRVnOqPxmx9r7Wf6O+i+ltZ0dwPpGN39ijztLn", "SecondBlockToken": "ABgBAUdlitCVI7c6hGsT4ckkKCw6bMRclnV+bKjViu/9UESTcW7CD9w4J2td", "BlockIndex": 14 }, { "FirstBlockToken": "ABgBAZBfEv4EHS1aSXTXxSE3mBZG6CNeIkwxpljzmgSHICGlFmZCyJXzE4r3", "SecondBlockToken": "ABgBAVWR7QuQQB0AP2TtmNkgS4Aec5KAQVCldnpc91zBiNmSfW9ouIlbeXWy", "BlockIndex": 15 }, ..... { "SecondBlockToken": "ABgBAeHwXPL+z3DBLjDhwjdAM9+CPGV5VO5Q3rEEA+ku50P498hjnTAgMhLG", "BlockIndex": 13171 }, { "SecondBlockToken": "ABgBAbZcPiVtLx6U3Fb4lAjRdrkJMwW5M2tiCgIp6ZZpcZ8AwXxkjVUUHADq", "BlockIndex": 13172 }, { "SecondBlockToken": "ABgBAVmEd/pQ9VW9hWiOujOAKcauOnUFCO+eZ5ASVdWLXWWC04ijfoDTpTVZ", "BlockIndex": 13173 }, { "SecondBlockToken": "ABgBAT/jeN7w+8ALuNdaiwXmsSfM6tOvMoLBLJ14LKvavw4IiB1d0iykWe6b", "BlockIndex": 13174 }, { "SecondBlockToken": "ABgBAXtGvUhTjjUqkwKXfXzyR2GpQei/+pJSG/19ESwvt7Hd8GHaUqVs6Zf3", "BlockIndex": 13175 } ], "ExpiryTime": 1637648751.813, "VolumeSize": 8 }

    Em seguida, use o mesmo comando para encontrar os blocos que são diferentes entre o snapshot que você deseja arquivar e o snapshot que foi criado imediatamente depois dele. Em --first-snapshot-id, especifique o ID do snapshot que você deseja arquivar. Em --second-snapshot-id, especifique o ID do snapshot criado imediatamente depois do snapshot que você deseja arquivar.

    $ aws ebs list-changed-blocks --first-snapshot-id snapshot_to_archive --second-snapshot-id snapshot_created_after

    Por exemplo, o comando a seguir mostra os índices de bloco dos blocos que são diferentes entre o snapshot snap-09c9114207084f0d9 (o snapshot que você deseja arquivar) e o snapshot snap-024f49fe8dd853fa8 (o snapshot criado depois do snapshot que você deseja arquivar).

    $ aws ebs list-changed-blocks --first-snapshot-id snap-09c9114207084f0d9 --second-snapshot-id snap-024f49fe8dd853fa8

    A seguir está a saída do comando, com alguns blocos omitidos.

    { "BlockSize": 524288, "ChangedBlocks": [ { "FirstBlockToken": "ABgBAVax0bHHBnTERu+9USLxYK/81UT0dbSnkDk0gqwRFSFGWA7HYbkkAy5Y", "SecondBlockToken": "ABgBASEvi9x8Om7Htp37cKG2NT9XUzEbLHpGcayelomSoHpGy8LGyvG0yYfK", "BlockIndex": 4 }, { "FirstBlockToken": "ABgBAeL0mtX6aBAt3EBy+8jFCESMpig7csfMrI4ufnQJT3XBm/pwJZ1n2Uec", "SecondBlockToken": "ABgBAXmUTg6rAI+v0LvekshbxCVpJjWILvxgC0AG0GQBEUNRVHkNABBwXLkO", "BlockIndex": 5 }, { "FirstBlockToken": "ABgBATKwWkHKTcrhZmsfM7GbaHyXD1CtcnjIZv9YzisYsQTMHfTfh4AhS0s2", "SecondBlockToken": "ABgBAcmiPFovWgXQio+VBrxOqGy4PKZ9SAAHaZ2HQBM9fQQU0+EXxQjVGv37", "BlockIndex": 13 }, { "FirstBlockToken": "ABgBAbRlitCVI7c6hGsT4ckkKCw6bMRclnARrMt1hUbIhFnfz8kmUaZOP2ZE", "SecondBlockToken": "ABgBAXe935n544+rxhJ0INB8q7pAeoPZkkD27vkspE/qKyvOwpozYII6UNCT", "BlockIndex": 14 }, { "FirstBlockToken": "ABgBAd+yxCO26I+1Nm2KmuKfrhjCkuaP6LXuol3opCNk6+XRGcct4suBHje1", "SecondBlockToken": "ABgBAcPpnXz821NtTvWBPTz8uUFXnS8jXubvghEjZulIjHgc+7saWys77shb", "BlockIndex": 18 }, ..... { "SecondBlockToken": "ABgBATni4sDE5rS8/a9pqV03lU/lKCW+CTxFl3cQ5p2f2h1njpuUiGbqKGUa", "BlockIndex": 13190 }, { "SecondBlockToken": "ABgBARbXo7zFhu7IEQ/9VMYFCTCtCuQ+iSlWVpBIshmeyeS5FD/M0i64U+a9", "BlockIndex": 13191 }, { "SecondBlockToken": "ABgBAZ8DhMk+rROXa4dZlNK45rMYnVIGGSyTeiMli/sp/JXUVZKJ9sMKIsGF", "BlockIndex": 13192 }, { "SecondBlockToken": "ABgBATh6MBVE904l6sqOC27s1nVntFUpDwiMcRWGyJHy8sIgGL5yuYXHAVty", "BlockIndex": 13193 }, { "SecondBlockToken": "ABgBARuZykaFBWpCWrJPXaPCneQMbyVgnITJqj4c1kJWPIj5Gn61OQyy+giN", "BlockIndex": 13194 } ], "ExpiryTime": 1637692677.286, "VolumeSize": 8 }
  7. Compare a saída retornada pelos dois comandos na etapa anterior. Se o mesmo índice de bloco aparecer nas saídas de ambos os comandos, isso indica que o bloco contém dados não referenciados.

    Por exemplo, a saídas do comando na etapa anterior indica que os blocos 4, 5, 13 e 14 são exclusivos do snapshot snap-09c9114207084f0d9 e que eles não são referenciados por nenhum outro snapshot na linhagem do snapshot.

    Para determinar a redução em armazenamento na camada padrão, multiplique o número de blocos que aparecem nas saídas de ambos os comando por 512 KiB, que é o tamanho de bloco do snapshot.

    Por exemplo, se 9.950 índices de bloco aparecerem nas saídas de ambos os comandos, isso indica que você diminuirá o armazenamento no nível padrão em cerca de 4,85 GiB (9.950 blocos * 512 KiB = 4,85 GiB).

  8. Determine os custos de armazenamento para armazenar os blocos não referenciados no nível padrão por 90 dias. Compare esse valor com o custo de armazenar o snapshot completo, descrito na etapa 1, no nível de arquivamento. É possível determinar sua economia de custos comparando os valores, supondo que não restaure o snapshot completo do nível de arquivo durante o período mínimo de 90 dias. Para ter mais informações, consulte Preços e faturamento para o arquivamento de snapshots do Amazon EBS.