web-dev-qa-db-ja.com

EBSまたはS3で画像を永続化する必要がありますか?

Java、Tomcat、MySQLサーバーをAWSEC2に移行しています。

MySQLデータを保存するためのEBSボリュームをすでに接続しています。私のWebアプリケーションでは、人々が画像をアップロードする可能性があります。

私の心には2つの選択肢があります。

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

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

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

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

  • S3 plus:EBSから静的ファイルを提供すると、I/Oコストが発生する可能性がありますが、おそらくマイナーです。

  • EBS plus:人々はEBSの方が速いと言います。

  • S3 plus:人々はS3が永続性に対してより安全であると言います。

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

決められず、ご指導をお願いしております。

3
enes

コストに関しては、S3がEBSよりもコストがかかるとは限りません。 15 GBのEBSボリュームがある場合、1 GBのデータが含まれているか、まだデータがないかにかかわらず、すべてのストレージに対して料金を支払います。 S3では、保存されている実際のデータに対してのみ料金を支払います。

戦略は、マウントされたボリュームにEBSを使用することですが、常にEBSをS3にバックアップすることです。以前は、マウントされたボリュームにS3 plusキャッシュ(PersistentFSと呼ばれる)を使用する方法がありましたが、現在は機能していません。したがって、EBSボリュームをマウントしてから、S3にバックアップします。

EBSとS3の一般的な比較だけでなく、その推奨事項を裏付けるいくつかの事実を次に示します。

  • EBSはEC2インスタンスでのみ使用できますが、S3はEC2の外部でも使用できます
  • EBSはマウント可能なボリュームとして表示されますが、S3ではデータの読み取りと書き込みにソフトウェアが必要です
  • EBSはS3よりも少量のデータに対応できます
  • EBSは一度に1つのEC2インスタンスでのみ使用できますが、S3は複数のインスタンスで使用できます
  • S3は通常、書き込み遅延が発生しますが、EBSは発生しません
  • S3は冗長です(私は6コピーだと思います)が、EBSはそうではありません。 http://www-differencebetween.net/technology/internet/difference-between-Amazon-s3-and-Amazon-ebs/

  • パフォーマンスの観点から、S3はレイテンシーが高く、レイテンシーの変動も大きくなります。 S3の書き込みレイテンシーは、読み取りレイテンシーよりも高くなる可能性もあります。一方、EBSは、待ち時間が短く、変動が少ないです。また、書き込みレイテンシを非常に低くするためのライトバックキャッシュも備えています。 http://www-cloudiquity.com/2009/03/differences-between-s3-and-ebs/

  • EBS(20 GBの変更されたデータを含む)の予想年間故障率は0.1%から0.5%です。

  • EBSを使用すると、ボリュームにデータを保存したかどうかに関係なく、ボリュームのサイズに対して1GBあたり月額$ 0.10を支払うことになります。
  • S3を使用すると、スナップショットに対して1GBあたり月額$ 0.15を支払うことになります。これは、実際に保存されたデータに対してのみです。

  • EBSの信頼性は、最近のスナップショットを維持することに依存します。 Amazonが http://www-Amazon.com/b/ref=sc_fe_c_0_201590011_1?node=689343011 で説明しているように、EBSの信頼性は、バックアップされていないボリュームに保存されているデータの量に依存します。スナップショットを使用してS3まで。したがって、EBSで耐久性を実現するには、頻繁にスナップショットを作成して、ボリューム上のデータをS3にバックアップしておくことが重要です。

  • EBSボリュームのサイズに月額$ 0.10、S3スナップショットに月額$ 0.15の両方を支払うことになります。ただし、複数のスナップショットは段階的に保存されます。 100 GBのデータを含むデバイスがあり、最後のスナップショット以降に変更されたのは5 GBのデータのみである場合、追加の5GBのスナップショットデータのみがAmazonS3に保存されます。 http://aws.Amazon.com/ebs/

8
MountainX
  1. コスト:S3で画像を保持すると、特にCloudFrontを使用する場合にコストがかかります。トラフィックとGET/PUTリクエストの両方に対するAmazonの料金、およびGET/PUTリクエストのコストは、小さなファイルのトラフィックコストよりもさらに高くなる可能性があります。

  2. より安全なものは何ですか? AmazonによるとS3はEBSよりも本当に安全なストレージですが、EBSをS3に定期的に簡単にバックアップできるので大したことではないと思います。

  3. API:S3 APIは非常にシンプルで、ファイルをS3に保存することは大きな問題ではありません。

  4. セキュリティ。ユーザーがアップロードしたファイルをWebアプリケーションとは別にホストする方が安全です。ハッカーのために、悪意のあるコンテンツをWebアプリケーションサーバーにアップロードするのは困難です。

  5. 速度。特にCloudFrond(CDN)を使用している場合、Tomcatが提供するEBSでホストされているファイルがS3でホストされているファイルよりも高速になるとは思いません。

私がお勧めするもう1つのオプションは、EBSから静的コンテンツを提供するために別の軽量Webサーバーをセットアップすることです(nginxはそのようなタスクに最適です)。このソリューションは、かなり高速で安全であり(別のインスタンスから提供される場合)、費用効果が高くなります。

2
Andriy Bohdan

EBSから統計を提供すると、Webサーバーのパフォーマンスに悪影響を与える可能性があります

さて、あなたの静的データの量はどれくらいですか? 1Gb未満の場合、キャッシュに留まる可能性が非常に高いため、パフォーマンスにはまったく影響しません。

1
BarsMonster

あなたのトラフィック量はどれくらいですか? S3をコンテンツ配信ネットワークとして使用する価値はありますか、それとも通常のS3を使用しますか?

EBSを搭載したドライブでローカルストレージではなくS3を使用することは、どれほど複雑になりますか?静的データ配信は、アプリケーションによっては要因となる可能性があります。

1
Amala

深刻なトラフィックとユーザーがいる場合は、CDNとして使用できるため、S3を使用することをお勧めします。大量のユーザーデータが予想される場合は、コストを考慮する必要があります。 S3の場合、GET/PUTごとに支払う必要があるため、小さなファイルが多いとコストがかかります。 EC2イメージにEBSを使用すると、帯域幅に対してのみ料金が発生します。

数字を実行することをお勧めします。また、アプリケーションで何が簡単かを確認してください。

1
Amala