20130907 JAZUG第3回総会LT

27
Copyright© 2013, pnop Inc., All Rights Reserved. らいとにんぐとーく

Transcript of 20130907 JAZUG第3回総会LT

Page 1: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

らいとにんぐとーく

Page 2: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

Self introduction

{

"name" : "Keiji Kamebuchi",

"corporation" : "pnop Inc.",

"mail" : "[email protected]",

"web" : "http://buchizo.wordpress.com/",

"twitter" : "@kamebuchi",

"facebook" : "https://www.facebook.com/keijikamebuchi"

}

KeijiKamebuchi buchizo@kamebuchiSenior Fellow

Page 3: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

Page 4: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

Page 5: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

Page 6: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

Windows Azure

Cache Service

Page 7: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

おさらい

On premise Microsoft AppFabric 1.1 for Windows Server

Cloud Windows Azure Shared Caching

Windows Azure Caching

Windows Azure Shared Caching → サヨウナラ

Windows Azure Caching → Windows Azure In-Role Cache

Windows Azure Cache Service ← NEW!

Page 8: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

What is the Cache Service?

2013/09/04 Preview

Microsoft AppFabric 1.1 for Windows Server の SaaS版

In-Role Cacheもそう

占有型(Shared Cachingは共用型)

スケーラブル

高可用性*

ローカルキャッシュ

通知サポート

圧縮通信のサポート

カスタムシリアライズのサポート

ASP.NET Session State Provider/Output caching Providerをサポート

memcached互換(予定)

Page 9: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

Windows Azure Shared Cachingは?

2014年8月31日をもって終了

旧管理ポータル( https://windows.azure.com/ )は。。。

Page 10: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

構成

Endpoint

<name>.cache.windows.net

= <name-internal>.cloudapp.net

unit (instance)

HTTPS/443 ACS (OAuth WRAP v0.9)

<name-internal>-cache.accesscontrol.windows.net

/WRAPv0.9/token

SSLなし

TCP/24233

SSLあり

TCP/25233

※他にもTCP/22234 (クラスタポート)などを利用

Page 11: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

プランとユニット

unit (instance)

Endpoint

<name>.cache.windows.net

= <name-internal>.cloudapp.net

128 MB

128 MB

128 MB

unit (instance)

unit (instance)

384MB

Distributed Cache

Basic … 8ユニットまで 128 MB ~ 1GB S?

Standard ... 10ユニットまで 1GB ~ 10 GB M?

Premium ... 30ユニットまで 5 GB ~ 150 GB L?

¥ネットワーク転送料※データセンター外

¥ユニット使用料

Page 12: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

作成

Page 13: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

ダッシュボード

Page 14: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

監視

Page 15: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

構成

Standard/Premiumのみ

PremiumのみBasic … 1つ (default)だけStandard/Premium … 10まで

Page 16: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

スケール

Page 17: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

構成の詳細

項目 内容

Name キャッシュ領域の名称です。既定は”default”でBasicプランの場合は1つだけ。スタンダードまたはプ

レミアプランの場合は最大10個定義できます。

Expire Policy キャッシュの有効期限について3種類のポリシーから選択します。

Absolute … アイテム追加後、Timeで指定した期限(分)が経過すると削除されます。

Sliding … アイテムにアクセスがあるたびに経過時間がリセットされます。 最終アクセス時刻から

Timeで指定した期限(分)が経過したアイテムは削除されます。

Never … 有効期限は無効です。強制的に破棄されるまでアイテムはキャッシュに残ります。Neverを

指定した場合はTimeに0を設定する必要があります。

Time (min) キャッシュにアイテムを保持する期限(分単位)です。Expire Policyと連動します。

Notifications キャッシュ操作が発生した時に非同期通知を受信するかどうかを設定します。通知はスタンダードまた

はプレミアプランでのみ設定可能です。

High Availability キャッシュの高可用性オプションの使用有無を設定します。有効にした場合、キャッシュのアイテムは

コピーされ障害が発生した場合でもキャッシュ内のデータを保持できるようにします。

プレミアプランでのみ利用可能。障害発生時はDataCacheExceptionを受け取るので適当なリトライ処

理が必要。

Eviction キャッシュサイズがメモリ上限に達した際に、最低使用頻度(LRU)アルゴリズムに基づいてアイテム

を破棄するかどうかを設定します。有効にした場合、メモリ上限に達した場合はアイテムの有効期限に

関係なく利用されていないアイテムから破棄されます。

無効にした場合、キャッシュのメモリが空くまで追加しようとすると例外を受け取ることになります。

(スロットリングされます)

Page 18: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

使ってみる

var cacheconfig = new DataCacheFactoryConfiguration(){AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true,

"buchizo.cache.windows.net"),SecurityProperties = new DataCacheSecurity(@"<Key>", false)};

using (var factory = new DataCacheFactory(cacheconfig)){

var cache = factory.GetCache("default");cache.Put("test", "testvalue");Console.WriteLine(cache.Get("test"));

}

Page 19: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

注意点

RoleEntryPointなどで使用する場合

Web.configが見れないので自分でConfigがんばりましょう

maxConnectionsToServer や Connection Pooling

パフォーマンス出すためによく考えて設定しましょう

Understand and Manage Connections for Windows Azure Cache Service

(Preview)

http://msdn.microsoft.com/en-us/library/windowsazure/dn386109.aspx

DataCacheFactoryはできるだけ少なく

HAする場合はリトライ処理に注意

今のところWindows 環境(.NET/C++/Node.js(?))からのみ利用可

Memcachd互換がサポートされれば。。(GAまでもしくはUpdateに期待)

Page 20: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

パフォーマンス

クライアント : Cloud Service (L) , 4CPU / East Asia / SSLなし

キャッシュ : Standard, 1unit (1GB) / East Asia

Page 21: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

パフォーマンス

平均読み込み・書き込み時間を見てみる

Page 22: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

パフォーマンス

5万件の平均 (Regionあり)

PUT : 1.10854 ms , 14186.76 Ticks

GET : 1.08548 ms , 13524.62 Ticks

5万件の平均 (Regionなし)

PUT : 1.14544 ms ,15162.59 Ticks

GET : 1.12772 ms , 14786.97 Ticks

ちなみにLocalCache有効にすると2回目のGETは平均 91.8 Ticksぐらい

Page 23: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

特に参考にならないグラフ

Page 24: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

どう選ぶ?

Azure Webサイトまたは仮想マシンでキャッシュを使いたい

Cache Serviceを使えばいいんでない?

インストール・メンテナンスの手間が省ける

料金も安め

クラウドサービスでキャッシュを使いたい

メモリ(とCPU)に余力があるようであればIn-Role Cacheもアリ

Workerロールで専用キャッシュにするぐらいならCache Serviceのほうがお得でしょう

キャッシュサイズや利用状況で好きなの選びましょう

In-Role Cacheの場合、設定の手間や監視どうする?というのは残る

memcachedとして使いたい

今のところIn-Role Cacheでmemcacheなプロトコルを受け付けてあげるとよさそう

Page 25: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

キャパシティプランニング

プランニングツールがあるので活用しましょう

http://msdn.microsoft.com/en-us/library/windowsazure/dn386139.aspx

Page 26: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

結論

速度は課金(と知恵と工夫)で何とかなる

かもしれないですね!

Page 27: 20130907 JAZUG第3回総会LT

Copyright© 2013, pnop Inc., All Rights Reserved.

まとめ

キャッシュと

日本リージョンで

レイテンシ