web-dev-qa-db-ja.com

EC2を使用してオンデマンドでS3に保存されている画像のサイズを変更する

アプリでは、同じ画像をさまざまなサイズで提供する必要があります。ライブラリはS3に保存される数万の画像で構成されているため、可能な限りすべてのサイズで同じ画像を保存することは理想的とは言えません。 GoogleでEC2を使用してオンザフライでS3画像のサイズを変更できることをいくつか言及しましたが、詳細情報を見つけるのに苦労しています。誰かが私にいくつかの詳細情報、または理想的にはいくつかのコードサンプルの方向を教えてもらえますか?

ヒント

最初はわかりませんでしたが、S3から直接アプリやウェブサイトに画像を提供することはありません。CloudFrontを使用することを強くお勧めします。 3つの理由があります。

  1. コスト-CloudFrontの方が安い
  2. パフォーマンス-CloudFrontはより高速です
  3. 信頼性-S3は、頻繁に、つまり1秒間に10〜20回以上クエリが実行されると、リソースを提供しないことがあります。リソースがランダムに利用できなくなるため、デバッグに時間がかかりました。

上記はストレージであり、コンテンツ配信サービスではないため、S3の欠点であるとは限りません。

27
RunLoop

何百もの異なる可能なサイズについて話していないと仮定して、すべての画像サイズを保存しないのはなぜですか?ストレージのコストは最小限です。また、アプリケーションサーバーを使用して画像をその場でサイズ変更する必要がないように、Cloudfrontを介して(またはS3から直接)画像を提供することもできます。これらの画像を大量に配信する場合、画像のサイズを動的に変更したり、ウェブサーバーで画像リクエストを処理したりする必要がないため、節約できる処理コスト(CPUサイクル、メモリ要件など)によって、ストレージコストを簡単に相殺できます。

14
Mike Brant

必要なのは画像サーバーです。はい、EC2でホストできます。これらのリンクは、開始時に役立つはずです: https://github.com/adamdbradley/foresight.js/wiki/Server-Resizing-Imageshttp://en.wikipedia.org/wiki/Image_server

6
d33pika