はじめに
画像投稿機能をもつアプリケーションを公開する場合、多くのユーザーにたくさんの画像データを投稿されると思います。
それらの画像データを、大量かつ安全に保存できる仕組みを取り入れる必要があります。
外部のデータ保管サービスを利用して画像を保存するための事前知識を復習するために投稿します。
データ保管サービスの利用
TwitterやFacebook等は、毎日ユーザーが写真や動画をアップロードしています。
そして、画像や動画などのデータはユーザーがいつでも見返すことができるように蓄積されます。
なので、サービス側はその大量のデータを安全にそして長期的に保存しておく必要があります。
例えば、自宅に荷物が置けない場合は、レンタル倉庫などを利用して別の場所に荷物を保管することがあります。
それと同様に、インターネットの世界でもオンライン上の倉庫のような仕組みを利用し、大量のデータを安全に長期的に保管しているのです。
ストレージサービス
インターネット上でデータを保存する場所を提供するサービスのことです。
Herokuを利用してデプロイしている場合、ストレージサービスが必要になります。
なぜなら、ユーザーがアップロードした画像データは、アプリがデプロイ又は再起動(24時間に1回自動で行われる)される度に、消えてしまう仕様になっています。
AWS (Amazon Web Services)
ストレージサービスには様々な種類がありますが、代表的な「AWS」が提供している「S3」というサービスがあります。
インターネット通販で有名な米Amazonが提供している、サーバーに関するサービスの総称です。
現在200種類以上の様々なサービスを提供しています。
S3 (Amazon Simple Storage Service)
AWSが提供するサービスの一つです。
S3を利用することで、画像を保存したり、保存してある画像を取得したりすることができます。
保存されたデータは実在の施設に分散して保管されるため、ネットワーク障害に強い仕様になっています。
また、使用した分だけ課金されるシステムであるため、保存できるデータ容量やファイル数の上限がなく使用することができます。
AWSを使用する点で注意が必要なのは、使用容量によって料金が発生してしまうことです。
ただし、個人制作のアプリケーションで保存する画像データの量であれば、基本的に無料でS3を利用することができます。
おわりに
これからAWSの知識を深めていく上で基礎的なことをしっかりと学び、投稿を続けたいと思います。
修正点などございましたらお手数ですがコメントいただけると幸いです。
よろしくお願いいたします。