S3 は EC2 DIY ソリューションよりも安価ですか (小さなファイルの場合)

S3 は EC2 DIY ソリューションよりも安価ですか (小さなファイルの場合)

nginx/varnish などを実行する EC2 インスタンスを使用するよりも、S3 経由でイメージやスクリプトをホストする方が本当に安くなるのでしょうか?

私には (AWS を使い始めたばかりですが)、スプライトやその他の最適化を使用しない場合、リクエスト コストが大きな要因になるように思えます... それとも、何か見落としているのでしょうか ?

答え1

ここでは、リンゴとオレンジを比較しようとしているようです。Amazon の EC2 (Elastic Compute Cloud) と S3 (Simple Storage Service) の 2 つのサービスは、まったく異なる目的に使用されます。S3 は冗長ストレージ用であり、厳密には「サーバー」ではありません。確かに、Web サーバーを別の場所でホストしている場合は、S3 を Cloudfront とともに使用して CDN の形式として使用できますが、主な目的はストレージです。一方、EC2 は、nginx、varnish、apache などのデーモンを実行できる VPS (仮想プライベート サーバー) です。S3 だけでは、これを実行できません。

EC2 用に独自の AMI (Amazon Machine Image) を作成すると、それらを S3 内に保存することになり、それに関連するストレージ料金を支払うことになります。EC2 インスタンスは、S3 をまったく使用せずに実行できます。ただし、前述のように、EC2 インスタンスは、インスタンスが実行されなくなった場合、シャットダウン後のデータを保存しません。起動とシャットダウンの間でデータを保持するには、データを S3 に保存するか、データを保持できる EBS (Elastic Block Store) を使用する必要があります。

受信、送信、および特定のリージョン内の帯域幅、ストレージ容量、I/O リクエストなどにはさまざまな価格帯があります。これは複雑になるため、計算に役立つ計算ツールがいくつかあります。私は、将来の使用コストを見積もるために、使用履歴の CSV ダウンロードをインポートする数式を含む独自のスプレッドシートを作成しました。私は、9 か月以上、EC2 内でクライアントの複数のサーバー インスタンスを管理してきました。最も簡単に計算できるコストはインスタンス ランタイムであることがわかりました。これは、インスタンスあたりの単純な時間料金だからです。その後、EBS ボリュームと S3 ストレージ容量は簡単に計算できますが、I/O リクエストと帯域幅は時々驚くことがあります。

私の S3 ストレージ コストは通常​​ごくわずか (通常は月額 2 ドル未満) で、アプリケーション サーバーがアクセスする複数の AMI と一部のドキュメント、およびインスタンスの初期起動を保存します。私のインスタンスは、Amazon 外部の VPS で管理されている Puppet サーバーを使用しており、これは監視およびジャンプボックス サーバーとしても機能します。平均で約 7 つのインスタンスを実行すると、I/O 要求は 500 万から 800 万の間であり、コストは平均で月額 1 ドル未満であることがわかりました。過去 6 か月間の EBS ボリュームの平均は約 10 GB で、コストは月額 1 ドル強です。私は、MySQL データベース ファイルとバイナリ ログとともに、静的コンテンツに EBS ボリュームを使用しています。受信データ転送は 20~24 GB で、平均月額 2.25 ドル程度、送信は 241~326 GB で、平均月額 42 ドル程度でした。すべてのインスタンスが同じアベイラビリティゾーンにあるわけではないため、インスタンス間のリージョン帯域幅は 130MB ~ 535GB で、平均は約 2.45 ドル/月でした。とはいえ、前述したように、時間単位の料金が最も計算しやすいため、EC2 インスタンス自体の料金は 1 か月あたり 1,700 ドル以上になります。現在、オンデマンド インスタンスではなくリザーブド インスタンスへの移行を検討しており、リザーブド インスタンスの取得にかかる初期費用 (6​​ ~ 9,000 ドル) を差し引くと、月額 600 ドル程度に下がる予定です。

答え2

S3では転送とストレージに料金がかかります。EC2ではインスタンスの実行時間にも料金がかかります。どちらにしても転送とストレージに料金がかかるので、ファイルホスティングにはS3だけを使う方が安いはずです。EC2はストレージと転送に加えてインスタンスの実行時間にも料金がかかるので、常に高価です。Amazonには価格計算ツール独自のユースケースと、必要な転送量とストレージ量の見積もりに基づいて数値を調整することができます。

答え3

S3 データを Web サーバーに引き込むトラフィックの量を考慮する必要があります。ec2 では時間単位で料金を支払いますが、160 GB のローカル ストレージが提供されます。s3 ではストレージと帯域幅に対して料金を支払います。

一般的に、ウェブサーバーの場合、EC2インスタンスはS3より安いか同等であると言えます。ただし、価格計算ツールで確認してください。

答え4

S3 は基本的に分散ネットワーク ファイルシステムを提供しているため、EC2 ノードを使用してそれを構築することを検討してください。

MongoDB/GridFS は説得力のある比較になるでしょう。

S3 には時々読み取り/書き込みタイムアウトが発生すると言われており、独自のキャッシュ レイヤーを構築すると役立つ場合もあります。

関連情報