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.
Tópicos
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.
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.
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.
-
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-idsnapshot_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-01234567890abcdefA 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 }
-
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 respostaVolumeId
indica o ID do volume de origem.$
aws ec2 describe-snapshots --snapshot-idsnapshot_id
Por exemplo, o comando a seguir retorna informações sobre o snapshot
snap-09c9114207084f0d9
.$
aws ec2 describe-snapshots --snapshot-id snap-09c9114207084f0d9A seguir está a saída do comando, que indica que esse snapshot
snap-09c9114207084f0d9
foi criado a partir do volumevol-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" } ] }
-
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" } ] }
-
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:
snap-08ca60083f86816b0
(o mais antigo, criado antes do snapshot que você deseja arquivar)snap-09c9114207084f0d9
(o snapshot a ser arquivado)snap-024f49fe8dd853fa8
(o mais novo, criado depois do snapshot que você deseja arquivar)
-
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 snapshotsnap-08ca60083f86816b0
foi criado imediatamente antes e o snapshotsnap-024f49fe8dd853fa8
foi criado imediatamente depois. -
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-idsnapshot_created_before
--second-snapshot-idsnapshot_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 snapshotsnap-09c9114207084f0d9
(o snapshot que você deseja arquivar).$
aws ebs list-changed-blocks --first-snapshot-id snap-08ca60083f86816b0 --second-snapshot-id snap-09c9114207084f0d9A 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-idsnapshot_to_archive
--second-snapshot-idsnapshot_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 snapshotsnap-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-024f49fe8dd853fa8A 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 }
-
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).
-
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.