web-dev-qa-db-ja.com

EBSまたはS3で画像を保持する必要がありますか?

Java、Tomcat、MysqlサーバーをAWS EC2に移行しています。

MySqlデータを格納するためのEBSボリュームをすでにアタッチしています。私のWebアプリケーションでは、人々が画像をアップロードする場合があります。だから私はそれらを永続化する必要があります。私の心には2つの選択肢があります。

  1. アップロードした画像をEBSボリュームに保存します。
  2. S3サービスを使用します。

以下は私のメモです。私の専門知識はサーバーではなくソフトウェア開発であるため、懐疑的にしてください。

  • EBS plus:S3ストレージはより高価です。 (0.15 $/Gb> 0.1 $/Gb)

  • S3プラス:EBSから静的データを提供すると、Webサーバーのパフォーマンスに悪影響を与える可能性があります。これは本当ですか?画像の配信はサーバーのパフォーマンスに特に影響しますか? S3の場合、私のサーバーは統計情報の提供を担当しません。

  • S3プラス:EBSから静的データを提供すると、I/Oコストが発生する可能性があります。

  • EBSプラス:EBSの方が速いと言われています。

  • S3プラス:S3の方が永続化の安全性が高いと人々は言う。

  • EBS plus:APIを学ぶ必要はありません。画像をEBSボリュームに保存するのは簡単です。

つまり決められません、ご案内いただければ幸いです。

ありがとう

64
javanes

私は現在プロジェクトにS3を使用しており、非常にうまく機能しています。

EBSは、ボリュームとそれに接続するマシンを管理する必要があることを意味します。いっぱいになるとバックアップを実行するときにスペースを追加する必要があります(S3データをバックアップするべきではないということではなく、それほど重要ではないということです)。

また、スケーリングが難しくなります。追加のマシンを追加する場合は、イメージを別のマシンにプルオフするか、すべてのイメージを複製する必要があります。これは、ボトルネックを追加することも意味します。すべてのマシンにアップロードするか、単一のマシンで管理する独自のアップロードプロセスを管理する必要があります。

私はS3をお勧めします。任意の数のマシンが並行してアップロードを実行でき、アップロードについて他のマシンに通知する必要はありません。

さらに、S3から直接ダウンロードする代わりに、Amazon Cloudfrontをイメージの前にある安価なCDNとして使用できます。

49
Gary Richardson

価格の比較は正確ではありません。S3の料金はUSED GBあたり$ 0.14ですが、EBSの料金は、使用するかどうかに関係なく、PROVISIONED GB(EBSボリュームのサイズ)あたり$ 0.10です。その結果、S3はEBSよりも安価な場合とそうでない場合があります。

53
Kai Pommerenke

私は、TBのデータにまたがる何百万もの画像を保存するストックフォトサイト用にAWSでソリューションを設計しました。要件に対するAWSのベストプラクティスのいくつかを共有したいと思います。

P1)元の画像ファイルをS3標準オプションに保存する

P2)サムなどの再現可能な画像をS3削減冗長オプション(RRS)に保存してコストを節約する

P3)S3 URLを含む画像に関するメタデータは、クエリの複雑さに応じて、Amazon RDSまたはAmazon DynamoDBに保存できます。 Amazon RDSからエントリをクエリします。クエリが複雑な場合、Amazon CloudSearchまたはApache Solrにメタデータを保存することも一般的です。

P4)Amazon CloudFrontを使用して、待ち時間が短いユーザーに親指を届けます。

P5)Amazon EC2のSQSまたはRabbitMQを介して画像変換をキューに入れる

P6)EBSの使用を計画している場合、EC2で拡張することはできません。したがって、理想的には、すべてのイメージの共通ストレージプールとしてGlusterFSを使用できます。自動スケーリングモードの複数のAmazon EC2は、引き続きそれに接続して、イメージにアクセス/書き込みできます。

12
Harish Ganesan

あなたはすでに両方の長所と短所を概説しました。

テラバイト単位の画像を保存する予定で、ストレージ要件が日々増加する場合は、特に S ​​がこの種の状況向けに構築されているため、おそらく最善の策でしょう。 [データをシャーディングする 多くの [〜#〜] ebs [〜#〜] ボリュームを気にすることなく、無制限のストレージスペースを取得できます。

S3の再発コストは、EBSよりも50%高くなることです。また、APIを学び、それをアプリケーションに実装する必要がありますが、これは1回限りの費用であり、すぐに吸収できるはずです。

8
Daniel Vassallo

画像が無期限に続くことを期待していますか?

Amazon EBS FAQはかなり明確です。年間の故障率は「本質的にゼロ」ではありません。0.1%から0.5%と見積もられています。机の下のディスクよりも優れていますが、いくつか必要です。一種のバックアップ。

5
sgb