views4GCPのストレージサービスについてまとめてみた。Exp:76990---ただいま鋭意作成中です---TweetShareHatena注意この記事は2014年3月25日に更新されたもので、内容が古い可能性がありますのでご注意ください。GAEでMemcacheを利用した経験はありますでしょうか?MemcacheとはGAEで利用可能な分散型のキャッシュシステムのことです。主な利用目的はデータアクセスの高速化です。何度も同一クエリを実行する場合、最初の結果をMemcacheに保存しそれ以降はMemcache上のデータを取得することでデータストアへの無駄なアクセスを軽減させることができます。(Memcache上にデータが存在しない場合は再度データストアでクエリを実行します。1.8.2から有料(プレビュー版)の「専用Memcache」がリリースされました。この新しいMemcacheでは、最大20GBのキャッシュ容量(0.12ドル/GB/時)が保証され、プレビュー公開終了後にはこれまでのMemchache(共有Memcache)にはなかったSLAも提供されると言われています。この専用Memcacheは課金をしてまで必要となる割に合うサービスなのでしょうか?今回は、この専用Memcacheが共有Memcacheよりも本当に優れているのかを検証してみました。キャッシュ容量の比較そもそもこれまで利用されてきた共有Memcacheは最大どの程度のキャッシュ容量があるのでしょうか?また、専用Memcacheは本当に20GBも保存できるのでしょうか?まずは共有Memchacheの容量を検証してみることにします。共有Memchacheの容量検証1キーに対して約1.2KBの画像データをMemcacheに保存するプログラムをタスクキューで並列実行し、保存データ数と最大保存容量を計測してみました。Viewerで確認した結果は以下(画像1参照)の通りです。検証の結果、データ総数は3,966,298で、保存容量はおよそ4.9GBとなりました。想定以上のデータを保存することができましたが、共有Memcacheはデータ容量がSLAで保証されているわけではないためデータの消失は自己責任となります。そのため、共有Memcacheを利用する場合はデータが消えることが前提となるプログラムを実装する必要があります。検証をおこなう前に、まずはMemcacheの利用クラスを専用Memcache用のクラスに切り替える必要があります。ops/s/GB)」に変更します(画像2参照)。クラスの変更が保存されると、専用Memcacheが有効となります。クラス、または容量の数値を変更した場合、既に保存されているキャッシュデータは削除されますので注意してください。専用Memcacheへの切り替え専用Memcacheへの切り替え完了後、1.1と同様のプログラムを実行し、保存データ数と総容量を計測してみました。Viewerで確認した結果は以下の通りです。検証の結果、データ総数は17,042,892で、総保存容量は約21.1GBとなりました。最大20GBということでしたが、計測上は20GB以上の数値となりました。これらの結果から、キャッシュ容量については、専用Memcacheの方が優れていることは確かなようです。次に共有・専用Memcacheそれぞれの書き込み・読み込み速度の計測をおこないました。保存データには1の検証で利用した1.2KBの画像データを利用しました。検証として、共有・専用それぞれのMemcacheに対して、1,000件のデータの書き込み・読み込みをおこないました。計測結果は以下(図1参照)の通りです。検証結果の数値は1000件のデータに対して1処理当たりの平均処理時間(ミリ秒)を表しています。専用Memcacheの方がR・Wのいずれの値でも共有Memcacheを上回っていることがわかります。3.まとめ以上の検証の結果から、専用Memcacheはこれまで利用されていた共有Memcacheよりも性能がスケールアップしていることがわかりました。専用Memcacheを利用する場合1GB毎に毎月$86.4の課金が発生することになります。制限があったとはいえ、これまで無料で利用していたAPIにそれだけの金額を払うのは割高に感じるかもしれません。言っても非常に強力なAPIであることには代わりはないので、もし要件として必要になった場合は見積りを立てて利用してみては如何でしょうか。次回の検証について次回は、Memcacheの残存期間についての検証をおこなう予定です。1度保存されたデータが一体いつまで残存することができるのかを検証します。本サイトではMemcache以外の検証も随時おこなっていますので定期的にチェックしてみてください。