エンジニアリングTips

【Cloundinary入門】

概要

Cloudinaryは、画像及びビデオといったメディアを管理、効率的に配信し、ブラウザの表示スピード改善することができるサービスです。
利用方法としては以下2通りのパターンがあります。

  • Cloudinary上でコンテンツを管理し配信
  • コンテンツをS3等で管理し配信

Cloudinary上でコンテンツを管理し配信

Cloudinary上でメディアコンテンツを保管し、webサイトはCloudinary上のコンテンツを取得する使い方になります。

コンテンツをS3等で管理し配信

S3等のストレージサービスでコンテンツを管理し、Cloudinary経由で取得する使い方になります。
現状のこちらの使い方がメジャーな気がしています。

特徴

ではCloudinaryを使用する上でのメリットとなる特徴を解説します。

1.最適な画像形式での配信

画像配信のパフォーマンスを上げるためには、画像ファイルサイズを最小限に抑えることが重要になってきます。
webサイト上における画像の読み込み時間の短縮に繋がり、結果としてサイトの表示が速くなるからです。

そこで、Cloudinaryが着目したのはGoogleが開発した"WebP"と呼ばれる画像フォーマットです。

WebPは、"2010年にGoogleが初めて発表した強力な画像フォーマットで、高度な圧縮技術により、WebP形式は、一般的なJPEG(非可逆)およびPNG(可逆)画像形式よりも大幅に小さいファイルを使用して写真をエンコードする技術。"の様です!
しかし、全てのブラウザでWebPが利用できるわけでないようで、WebPがサポートされていないブラウザもある様です。(Google Cromeは利用できる模様)

そこでCloudinaryは、webサイトを開くブラウザがWebPをサポートするかどうかを識別し、サポートする場合は自動的に画像をWebPフォーマットに変換し配信します。(その場合、呼び出しURLに'f_auto'パラメータを設定する必要がありますが本記事では割愛)

2.Cloudinary側での画像加工

Cloudinaryを使用して画像や動画を呼び出す際に、Cloudinary側で対象のメディアを加工しサイトに表示することができます。
これの何がいいかというと、サイトで画像を表示する際に通常CSSを使用して画像のリサイズ等を行いますが、これでは画像取得→CSS適用→表示の処理を踏む為、パフォーマンスが落ちてしまいます。

Cloudinary側で加工処理をになってあげると、サイト側では画像取得→表示だけになるので結果として、サイトの表示速度の向上が期待できます。
また、RESTful APIやSDKといった、開発者に対して使いやすいインターフェースを提供しているので、アプリケーションへの組み込みも簡単に行うことができます。

3.CDN(コンテンツデリバリネットワーク)としてのメディア配信

また、CloudinaryはCDNとしての機能も提供しています。
ユーザーに最も近い場所からコンテンツ(画像や動画)を提供することで、パフォーマンスの向上と読み込み時間の短縮が可能です。

また特徴2でお伝えした加工した画像、動画もキャッシュとして配置しておくことができるので、2回目以降の読み込みが高速になります。

使ってみよう

実際にCloudinaryを使ってみましょう!
以下URLからCloudinaryのサイトに飛んでください。

Cloudinary

以下画面に飛んだらメニューから「SIGN UP FOR FREE」を選択します。
プランはいくつかありますが、ここではフリープランを選びましょう!(各種プランについては一旦割愛)

サインアップ完了後、メニューから「Media Library」を選択すると以下画面に遷移します。
ハンズオンのため、何か画像をアップロードしてみましょう!「アップロード」ボタンを押してください。

アップロードする画像は自由ですが、筆者は以下画像をアップロードしたいと思います!(unsplashより)

アップロードが完了しましたら、準備完了です!

それでは上記画像の取得URLになりますが、CloudinaryのURLは基本的に以下で構成されます。

Cloudinary URL構成

https://res.cloudinary.com/<クラウド名>/<アセットタイプ>/<デリバリータイプ>/<変換フォーマット>/<バージョン>/<パブリックID>.<フォーマット>

今回、以下の項目以外は任意で設定する項目なので省きます(すみません。)

  • クラウド名:ユーザー毎に割り振られている値です。メニューからダッシュボードに遷移することで確認できます。
    クラウド名確認
  • アセットタイプ:何のコンテンツかを指定する項目で、imagevideorawから選択します。今回は"image"を指定します。
  • デリバリータイプ:コンテンツをどの様に配信するかを指定する項目です。今回は"upload"を指定します。
    他の項目情報についてはこちら
  • パブリックID:Cloudinary上のコンテンツに割り振られているIDです。以下の部分がパブリックIDになります。
  • フォーマット:コンテンツのフォーマットを指定することができます(jpg、png等)。今回はjpgで指定します。
    画像に対して指定できる項目はこちら

上記踏まえるとアップロードした画像のURLは以下の通りとなります。(クラウド名とパブリックIDはご自身のを置き換えてください)

https://res.cloudinary.com/*******/image/upload/dog.jpg

上記をブラウザのURL欄に入力すると以下の様に画像を取得できます。

まとめ

今回は一旦、Cloudinaryの概要から簡単なハンズオンまで解説しました!
Cloudinaryの本命機能であるコンテンツ加工機能やS3からのコンテンツ取得等の解説はまた別で解説しようと思います!

-エンジニアリングTips
-,