ただし、時間が経つにつれて、ファイルが増えます。 また、新しいデータだけでなく、全履歴に対しても料金を支払う必要があります。 さらに、AmazonはGETリクエストとPOSTリクエスト、およびトラフィックのために戦います。
当初は低コストでしたが、成長に伴い、このソリューションのコストはますます高くなります。
S3を使用する必要がありますか?
間違いなく価値があります。 特に小規模プロジェクト向け。 1日に数万のファイルと数千のリクエスト。 これはすべて月に数ドルかかります。
その見返りとして、さまざまな問題に時間とお金を費やす必要はありません。
- 在庫状況 AWSは常に機能します。
- スケーリング。 サーバー間でファイルを配布する複雑なタスクを解決する必要はありません。
- ロード。 人気の突然の爆発は、鉄の失敗につながりません。
S3は、 写真 、ドキュメント、ビデオなど、あらゆる形式のユーザーファイルの保存に最適です。
![画像](https://habrastorage.org/getpro/habr/post_images/c38/4e8/180/c384e818046ae439a8c2211e24836269.jpg)
使用する価値がない場合
S3をCDNとして使用しないでください。 すべての静的(CSS、Javascript、およびアイコン)を個別に提供するか、適切なCDNプロバイダーを使用するのが最適です。
あなたはいくら支払う必要がありますか?
各テラバイトのファイルを保存するには、月に約30ドルを支払う必要があります。 さらに、90テラバイトのトラフィックには90ドルの費用がかかります。
![画像](https://habrastorage.org/getpro/habr/post_images/dea/325/e3b/dea325e3b82686d47a4e2014045262de.jpg)
1テラバイトのストレージは、約500万枚の写真または5万枚の短いビデオです。
1日に10万ビュー、各ページに5枚の写真があるサイトは、1か月あたり1テラバイトのトラフィックを生成します。
コスト増加
ただし、ビューの数が10倍に増えると、S3トラフィックには1か月あたり約1,000ドルの費用がかかります。
このようなソリューションの代替案は、300ドルの予算で複数のサーバーをレンタルすることです。
ハイブリッドソリューション
S3を使用する場合のコストの大部分はトラフィックです。
ストレージとロードは比較的安価です。
![画像](https://habrastorage.org/getpro/habr/post_images/44c/ad1/02f/44cad102f9c570cf14301206abb0d823.jpg)
良い解決策として、S3を信頼できるストレージとしてのみ使用することは理にかなっています。
同時に、単純なキャッシュスキームを使用して、トラフィックのコストを大幅に削減できます。
![画像](https://habrastorage.org/getpro/habr/post_images/994/627/81f/99462781f210d0d1b1f4ff6e9270391c.jpg)
次に、ファイルはAmazon S3に直接ダウンロードされ、アップロードは独自のキャッシュサーバーを介して設定されます。
ワニスベースのソリューション
VarnishはクールなHTTPキャッシングサーバーです。 これを使用して、Amazon S3でファイルキャッシングを設定します。 設定例:
backend s3 { .host = "s3.amazonaws.com"; .port = "80"; } sub vcl_recv { if (req.url ~ "\.(gif|jpg|jpeg|png)$") { unset req.http.cookie; unset req.http.cache-control; unset req.http.pragma; unset req.http.expires; unset req.http.etag; set req.backend = s3; set req.http.host = "my_bucket.s3.amazonaws.com"; lookup; } } sub vcl_fetch { set obj.ttl = 3w; }
この例では、花束my_bucketを使用します。 ヒット率も監視する必要があります。 許容値-99%。 これは、すべてのリクエストの99%がニスキャッシュに送られ、1%だけがS3に送られることを意味します。
追加の対策
さらにコストを最適化するには、ファイルサイズを最小化するというルールを順守する必要があります。 写真が保存されている場合、S3に保存する前にWebp形式に変換できます。 それらはjpgよりもかなり少ないスペースを占有します。 これがなくても、保存する前に正しい画像形式が選択されていることを確認する必要があります 。
テキストファイルはgzipで圧縮する必要があります。
その他のクラウドストレージ
別の方法があります。 S3では、世界は収束しなかったので、AzureやGoogle Cloudなどの他のクラウドで作業する価値があります。特に、ほとんどすべてのサービスが無料で試用できることを考慮してください。
アブストラクト
- Amazon S3は、開始時および小規模プロジェクトで使用すると非常に便利です。
- S3の人気により、S3は独自のハードウェアよりも高価になります。
- ソリューションのコストを削減するには、トラフィックを削減する必要があります。 これを行うには、キャッシュサーバーを介してファイルを送信する必要があります。
- キャッシングにワニスを使用すると便利です。