web-dev-qa-db-ja.com

バックアップ:Amazon S3またはGlacier-たくさんの小さなファイル?

複雑なAmazon Glacierの料金モデルを理解しようとしています。大量のデータを保存したくありません。数GBは10だと思います。ファイルをダウンロードしないことを望みます。必要な場合は、どれだけ時間がかかるかは気にしません。

アップロードするファイルあたりの費用はありますか?たくさんの小さなファイルをZipしていくつかのチャンクでアップロードする方が安いですか、それとも10,000は画像は問題ではないと言っていますか? (検索中にこれに対する正解を得ることができません)

アーカイブ/バケット全体のダウンロードをリクエストできますか、それともファイルごとですか?

28
Markive

S3の詳細な価格情報は入手可能です こちら 。利用可能なAPI関数の詳細は here です。

S3の場合、ほとんどの場合、アップロード帯域幅(送信バイト数[〜#〜] to [〜#〜]S3)、ダウンロード帯域幅(受信バイト数)に対して課金されます[〜#〜] from [〜#〜]S3)、およびストレージ(バイト[〜#〜] in [〜#〜]S3)。 API呼び出しの数とタイプにも課金されます。

したがって、10 GBのデータを10,000個の1 MBファイルでS3にアップロードし、1か月間保存してから、各ファイルを1回ダウンロードすると、料金が発生します。

  • アップロード帯域幅$ 0.00(これは無料です)
  • ファイルをアップロードするための10,000 PUTリクエストに対して$ 0.10
  • 1か月間10 GBを保存する場合は$ 0.95
  • 10GBのダウンロード帯域幅に対して$ 1.08(最初は無料、次に$ 0.12/GB)
  • ファイルをダウンロードするための10,000 GETリクエストに対して$ 0.01

それは2.14ドルです。アップロードとダウンロードをそれぞれ1回ずつ行い、データを1年間保持した場合、ストレージコストのみが12 * 0.95ドル、つまり11.40ドルになります。ファイルの平均が100KBしかなく、100,000だった場合、PUTおよびGETリクエストに対して10倍、または$ 0.11ではなく$ 1.10を支払うことになります。

1回の操作でアップロードおよびダウンロードできるファイルは1つだけです。 Zipを使用してファイルを1つにまとめた場合、保存する操作は少なくなります。これは、ご覧のように、最初はかなり安価です。

ただし、ここには1つの癖があります。データを含む本文だけでなく、リクエストヘッダーを含めて、アップロードおよびダウンロード時にすべての帯域幅使用量が課金されると思います。したがって、ファイルが本当に小さい場合、おそらくファイル自体と同じくらい、リクエストヘッダーが重要になる可能性があります。その場合、帯域幅のコストは2倍になります。

Glacierの価格設定はより複雑で、私自身はこれを使用したことがありません。基本的には、ストレージコストをほぼ10分の1に削減し、他のコストはそのままにし、オブジェクトごとのアーカイブと復元にコストを追加します。小さなオブジェクトが多数ある場合、一度に大量のファイルを取得する必要がある場合、またはファイルを頻繁に取得する必要がある場合、これらのコストはかなり大きくなるようです。 Glacierは、大量のデータ(ギガバイトだけでなくテラバイト以上)を持ち、操作が少ない場合に最適であるようです。 10 GBのデータしかない場合、S3は非常に安価であるため、Glacierを検討する価値はありません。

最後に、AWSには最初の1年間は無料の使用範囲があり、ストレージ料金の半分を除いてすべてのコストをカバーできるようです。

34
Charles Engelke

私はこれが少し古いことを知っていますが、私の答えが役に立つかもしれません(私は願っています)。もう1つの答えはS3に基づいていますが、これはあなたの質問ではなかったと思います。

Glacierは、まれなファイルアクセスを目的としています。それを念頭に置いて、一度に多くのファイルを取得する必要がある場合、彼らは一種の罰を与えます。 あなたの特定のケースでは、100個のファイルを含む100個のZipファイルではなく、10.000個の個別のファイルをアップロードすることをお勧めします。その理由は非常に簡単です。 Glacierでは、アーカイブ全体の5%のみ無料でダウンロードでき、日割り計算されます。たとえば、週末に撮った10枚の写真をダウンロードする必要がある場合、金庫に保管しておけば、10枚の写真を無料で入手できます。一方、内部に100枚の写真が含まれるZipファイルがある場合は、そのZipをダウンロードする必要があります。これは、おそらくアーカイブ全体の5%を超えます。つまり、取得のためにいくらかの料金を支払うことになります。

アップロードするファイルの数を少なくすることが理にかなっている唯一の理由は、アップロードのリクエストが多いことを避けるためです(10.000ファイルは通常10.000リクエストを意味します)。リクエストには10​​00ドルあたり$ 0.05が課金されます。この料金は、取得料金(課された制限を考慮に入れる)をはるかに下回るので、個別のファイルをアップロードすることを常にお勧めします。もちろん、一緒にいることに意味のあるファイルをZipすることもできます。

Amazon Glacierでは、検索コストは非常に複雑です。彼らはここに良い説明があります: http://aws.Amazon.com/glacier/faqs/#How_much_data_can_I_retrieve_for_free しかし、それでも、方法について明確なアイデアを得るために計算に注意を払う必要があります費用は請求されます。

この質問に関して:アーカイブ/バケット全体のダウンロードをリクエストできますか、それともファイルごとですか?

リクエストはファイルごとに行われますが、一度に多くのファイルを選択してまとめてダウンロードすることもできます。

S3とGlacierのどちらを使用するかは、ファイルアクセスのニーズによって異なります。後からファイルにアクセスする必要がある場合は、Glacierが最適です。それ以外の場合、10 GBのS3は、Glacierよりも安価で柔軟性があります。私の場合、家族の写真はとても貴重なものだと思います。それが私が家族の写真をすべて含む100GBのバックアップを氷河に持っている理由です。自宅でなんらかの災害がない限り、アクセスするつもりはありません。その場合、本当に気になるものを節約できれば検索コストは気にならないと思います。しかし、それは私だけです。

39
Sirkong

小さなファイルをたくさん使うより、いくつかの大きなファイルを使うほうがよい

ファイルをAmazon Glacierに配置する方法は2つあります。ボールトを直接操作するか、フロントエンドとしてS3を使用します。

私はS3(およびAmazon管理コンソール)を使用しているので、アーカイブのコンテンツを表示し、同時にGlacierに安価に保存できます。

このアプローチには欠点が1つあります。Glacierに情報を保存すると、データオーバーヘッド(有料)が発生するため、論理的には分岐点があります。 2014-04年の値下げ前に計算を行ったところ、重要なサイズは約16 kBでした。小さいファイルをGlacierに保存すると(AWS S3をフロントエンドとして使用)、S3のみに保存するよりも高価になりました。 S3ストレージの値下げにより(氷河は変更されませんでした)、損益分岐点がさらに高くなりました。

S3をフロントエンドとして使用しなくても、状況は似ていますが、小さいファイルの方が少し親切です。

2
Jan Vlcinsky

2016年11月21日以降、AmazonはGlacier取得の無料枠ポリシーを更新し、「平均月間ストレージの5%」ポリシーを更新して、月額10GBのフラット無料を優先しています。 ただし、取得ポリシーがその日の前に設定されていた場合は、「5%」ポリシーのままであり、ここでの他の回答が引き続き適用されます。

2016年11月21日以降に取得ポリシーが設定されていて、OPの立場にいる場合:

10 GBしか保存しないので、標準の取得を使用して、月に1回すべてのデータを無料で取得できます。 10,000枚すべての写真が1つのZipファイルに圧縮されているかどうかは関係ありません(取得用)。

このシナリオの唯一の変数は、アップロードリクエストの数です。 1,000あたり$ 0.05の価格での10,000リクエストは$ 0.50であり、これは特定のケースに対して1回限りの料金です。

AWS Glacier FAQ で詳細な価格情報

更新:

Glacierのドキュメントでは、100 MBを超えるファイルにはマルチパートアップロードを使用することを推奨しています。

私は、8 GBのファイルをアップロードしようとしたときに、数回のタイムアウトの後、独立してこの結論に達しました。

0
Sam Malayek