第40回「オブジェクトストレージ(Amazon S3など)からCDNへ WebP対策の話」
更新日:
こんにちは、森川です。
2年ぐらい前に一度Amazon S3に代表されるオブジェクトストレージについて書きましたが、時代の変化とともに変わってきたことを感じるので記載しておきます。
オブジェクトストレージとは??
オブジェクトストレージとは、ファイルストレージみたいなのもので、大容量のデータを保管することに特化したサーバーです。
簡単に言うと、余計な機能は排除して大容量のデータの扱い(入出力)に特化したストレージサーバーです。
WEBサーバーやDBサーバーのような複雑処理はできませんし、DBサーバーのように高頻度にデータを書き換えたりするものには適していません。
使い道は、例えば、WEBサイト内で使われている動画や画像のような静的ファイルの置き場所、動画配信サービスの動画ファイルの置き場所、毎日定期的にとっているバックアップデータの置き場所などです。
単なる「置き場所」なんです。複雑な処理はできないのです。しつこいですが単なる「置き場所」です。
オブジェクトストレージの大きな利点の一つは「容量に上限がない」ことです。
Amazon AWSでいうとEC2などの仮想サーバーは上限の設定が必要で容量がいっぱいになると動かなくなりますし、容量を増やした場合は複雑な作業が必要です。
でもS3のようなオブジェクトストレージは上限がありません。何百テラでも好きなだけ使ってください、使った分だけお金を払ってくださいという従量課金のサービスです。動画配信サービスなんかには最適ですね。
当社も2~3年前からオブジェクトストレージを利用しています。
主にWEBサイトの静的ファイルの置き場、毎日のバックアップデータの置き場として使っています。
あと、FTPソフトみたいなアプリで簡単にファイルをアップロード、ダウンロードできてURLも発行できるので、クライアントさんとのデータの受け渡しにも使っています。
今回はWEBサイトにオブジェクトストレージを使っていたのですが、それを廃止したのでその内容について詳しく書きたいと思います。
オブジェクトストレージの欠点
オブジェクトストレージの欠点は、単なる「置き場」であるため複雑な処理ができないことです。
WEBサイト利用において大きな問題になったことは「WebP」対策ができなかったことです。
オブジェクトストレージ単体で、jpg→webpやpng→webpの処理ができないです。
「WebP」対策はHTTPサーバーの場合は、nginxなどのアプリケーションのconfファイルに設定を記述します。
設定しておくことにより、WebP対応ブラウザからのリクエストの場合、jpgやpngを要求された場合は同名のwebpファイルを捜索し、見つかった場合はwebpファイルを返す、見つからなかった場合はそのままjpgやpngを返すというような複雑な処理を行うことができます。
でもそんな複雑な処理はオブジェクトストレージ単体ではできないのです!!
オブジェクトストレージ単体が無理なら他の方法でなんとかサーバー分散できないだろうか??
(余談、S3で無理やり実現するにはLambdaをフックさせて変換プログラムを作ればいけると思う)
CDN(Content Delivery Newwork)の利用
サーバー分散させる他の方法としてCDN(Content Delivery Newwork)が思い当たります。
CDNの代表格はGoogleのサービスですよね。
Jqueryのような汎用的なライブラリーはGoogleさんがCDNで配信してくれ、自由に使うことができます。本当にあざす。
GoogleのCDNライブラリー
https://developers.google.com/speed/libraries
CDNも簡単に言えば、オブジェクトストレージに似たようなもので「置き場」です。
CDNの詳細な説明は割愛しますので詳しく知りたい人はネット検索してみてください。
CDNではWEBP対策ができるサービスはないかと調べてみたところありますね。
例えばClaudinaryというサービスです。
この写真が何もしていない元の画像です。
https://res.cloudinary.com/dx8q5lf91/image/
upload/v1588682631/sample.jpg
URLをこう変えるとWebP対応のブラウザでwebpそうでないブラウザでjpgになってくれます。
https://res.cloudinary.com/dx8q5lf91/image/
upload/f_auto/v1588682631/sample.jpg
urlをこう変えると画像のサイズも自動で調整してくれます。
https://res.cloudinary.com/dx8q5lf91/image/
upload/q_auto:low/v1588682631/sample.jpg
画像のURLを変えるだけで自動で調整してくれます。すげーこりゃー便利!!
他にもいろいろな機能があります。
ということで、オブジェクトストレージのWEBサイト利用はを廃止しCDNを採用することにしました。
当然CDNは有料なのでなんでもかんでも利用すると高くなるので、比較的軽量の画像ファイルは自社サーバーでWEBP対策、写真などのサイズが大きいファイルはCDNを利用するようにしています。
何かの参考になれば、ではでは。