Cloudinaryという画像変換サービスについて勉強してきた
「AKIBA.AWS #12 Cloudinaryで画像や動画配信を最適化しよう」に行ってきました。Cloudinaryは画像・動画・音声・PDFといったマルチメディア(と彼らは言っていた)のアセット管理ソリューションで、このノートはイベントの内容を踏まえつつ勉強したことをまとめています。
Cloudinaryとは
"who we are. Cloudinary is the market leader in providing a comprehensive cloud-based image and video management " とのことで、画像・動画・音声・PDFといったマルチメディア(と彼らは言っていた)のアセット管理ソリューションを提供しています。画像変換機能もこのソリューションの一部として提供されています。
2011年にイスラエルで創業し、現在本社はカリフォルニア、42万人の開発者がアカウントを持ち(Subscribed Developers)、5200社ほどのユーザ(Paying Customers)が利用しているそうです。
日本企業の導入実績としては、 楽天 , NTTレゾナント , セシールディノスがあります。その他ウェブで調べたところでは Favy さんが開発ブログで導入記事を書かれていました(他には見つけられず...)
Cloudinaryのインフラについて
デフォルトでは画像のオリジンは S3 で、配信のCDNは Akamai を使用しています。アセットはシンガポールリージョン、バックアップが東京リージョン、配信は別とのこと。res.cloudinary.com がエッジポイントになるようなので dig してみたところ Akamai でした。
# dig res.cloudinary.com
;; ANSWER SECTION:
res.cloudinary.com. 300 IN CNAME ion.cloudinary.com.edgekey.net.
ion.cloudinary.com.edgekey.net. 5625 IN CNAME e1315.dsca.akamaiedge.net.
e1315.dsca.akamaiedge.net. 20 IN A 23.217.125.7
Developer solution overview のページに色々と情報がありますが、おそらく Cloudinary の 基盤も AWS にあるのではないかと勝手に想像しています。
画像のオリジンサーバについて
Cloudinary は画像を含めたマルチメディアのアセット管理ソリューションです。サービスとしてAWS S3のストレージを提供しており、そこに画像をアップロードする必要があります。自社アカウントのS3バケットをオリジンとして使用することも可能です。ただCloudinaryが提供するS3バケットの利用が推奨されるようで 自社アカウントS3 → CloudinaryアカウントS3へのコピーをした方がよいのかもしれません(自分の質問の仕方が悪かったかもしれないので、もう少し調べて加筆予定)。
HTTP , HTTPS でリクエストを受けレスポンスとして画像を返すサーバをオリジンとして使用することもできますが、機能的な制約もあるためこのケースではCloudinaryのS3への移行を強く推奨するようです(例 画像に応じて圧縮品質の自動調整機能 q_auto など)。
ちなみに自社アカウントのS3バケットにバックアップをしておくことは可能だそうです。
プレゼンのニュアンスだとCloudinaryで画像変換した後の画像をバックアップとして指定した自社アカウントのS3バケットに保存できることようにも受け取れましたが、Cloudinaryのウェブサイトでそのような文章が見つけられないので自分の勘違いのようです(もう少し調べて加筆予定)。
またオリジンとしてGoogleのGCSを指定することも可能です。
配信のCDNについて
前述の通りデフォルトでは Akamai が使用されます。既に利用している CDN がある場合には その CDN を使うことも可能で( Your OWN CDN )、例えば AWS の CloudFront を使用することが可能です。この場合、料金プランは Free / Plus / Advanced ではなく Custom を選ぶ必要があります。
CDNへのキャッシュ期限は30日固定で、キャッシュのパージはできなさそうで、パージが無い代わりにバージョンという概念を持っているようです。
またキャッシュをパージするためのAPIの開発はロードマップに含まれているそうです。
For how long does Cloudinary cache my delivered content on the CDN?
I've replaced an existing image with a new one, but my website still shows the old one. Why is that?
料金体系について
課金対象は変換回数(transformations)、ストレージ、帯域?転送量?(bandwidth)で課金。1 credit = 1000 transformations or 1GB managed storage or 1GB net viewing bandwidth or 500 video processing secondsとしてフリーアカウントで25creditから
Player ,widgetsなどは特に費用発生せず、Add-onsは別料金
フリーアカウントがあるのは良いなと思いました。
画像変換の機能について
クラスメソッド清水さんによるデイリーポータルZさんの検証時における要望+自分がこの機能良いなと思ったものについてまとめました。
・出力形式としてWebP , JPEG HR , JPEG 2000に対応(他にはJPEG , PNG , GIF , BMP , PDF , TIFF , ICO , EPS)
・ダイナミックフォーマット変換機能でChromeならWebP , IEならJPEG HRといったことが可能
・圧縮品質の自動調整が可能
・画像のオーバーレイが可能
・テキスト文字のオーバーレイが可能
・署名ありURLが可能(URLの改編が不能となる)
・Effect機能(例 brightness , remove red eye , unsharp mask)は多数
・アニメーションGIFに対応(2枚目以降の画像に対しても)
・顔を認識し、モザイクをかけたり、サムネイル生成時に顔をドアップにすることが可能(事前に登録した顔はモザイクをかけないといったことも可能)
・文字列を認識してモザイクをかけるみたいなことも可能(クルマのナンバープレートにモザイクをかけるみたいな)
Cloudinary Product Updates & Roadmap
Cloudinary の Mr.Kobi Schwarts さんから Asset Management , Media Widgets , Video Solution , Image Processing , Integrations and Dev Tools ,
Infrastructure and more の6つに分けてRoadmap のお話がありました。ものすごい膨大な量だったので、興味を持ったところだけ抜粋。
Asset Management
・time-limit (Available Next Quaters )
・Serverless functions ready : Lambda and more (Available Next Quaters )
・Rights Management (Available Next Quaters )
・Exif Management (Available Next Quaters )
Media Widgets
Video Solution
・Adaptive bitrate streaming - HLS & MPEG-DASH support (Available)
・VAST ( Video Ad Serving Template) and VPAID support (Available)
・Shoppable Videos - hot spots and links (Available Next Quaters )
・Automatic generation of a summary video "preview" (Avaliable in beta)
(長さを指定すれば一番注目すべきハイライト プレビューを作る)
Image Processing
・Auto Cropping forcus on specific object categories for crop and overlay
face , shoes (Available)
・support for apples's HEIF & HEIC format (Available)
・color profile enhancement (Available Next Quaters)
・auto-background delete (Available Next Quaters)
Integrations and Dev Tools
Infrastructure and more
・GDPR準拠 (Available)
・China CDN (Available)
・GCS (Available)
Cloudinaryを学習するに当たり参考になりそうなURL
おまけ
先日、AWSのSAA認定資格を取得するに当たり、クラスメソッドさんのDevelopers.io には大変お世話になったので、Developers.IO CAFEを訪問できたよかったですw
イベント参加時のメモ取り間違えもあるかもしれませんので、本ページの情報は鵜呑みにせず各自でしっかりと調べてください。