20150207 amazon elasticache
TRANSCRIPT
Amazon ElastiCache ~運用を考えて~
森 大樹 (もり だいき)業務系エンジニア 大阪生まれ大阪育ちの浪速っ子 今、AWSを利用したシステムの 開発と運用をやってます !facebook : /areaz.daiki twitter : @areaz_ slideshare: http://www.slideshare.net/areazdaiki/ !hobby:スノボ(アルペンボーダー) お酒(毎日コンビニで購入) →C3(Can Convinience Club)会長
Who am I ?
ハッシュタグ#jawsug #fullmanaged
JAWS-UG KANSAI特別編 「AWSを使い倒せ。 AWSのフルマネージドサービス活用 によるネイティブクラウドシステム への誘い」
Amazon ElastiCache
Amazon ElastiCache
Memcached
Redis
メモリ内キャッシュのデプロイ、運用、スケーリングを クラウド内で簡単に実行できるウェブサービスです。 このサービスは、低速のディスクベースのデータベースに 完全に依存せずに、高速の管理されたメモリ内のキャッシュ から情報を取得できるようにすることで、 ウェブアプリケーションのパフォーマンスを向上させます。
DBにアクセスしてると遅いから、 メモリキャッシュしてる情報を
getでデータ取得して、高速返却。
データ取得
値を返す
[メモリにデータキャッシュあり]
DBから取得[メモリにデータキャッシュなし]
メモリに キャッシュ
get(key)で キャッシュ検索
select文で検索
set(key, value)で キャッシュへ設定
メモリキャッシュを使った仕組み
Memcached
Redis
データは全てメモリ上に保存
GETやSET等のシンプルな操作に特化
LRU(Least Recently Used)順に古いデータを自動削除
基本的にデータをメモリに保存 データをハードディスク上に書き込むこと
valueに文字列だけでなく、リスト/ハッシュも可能
コマンドで明示的に削除もしくは、timeoutで削除
主な用途セッション管理
同じデータをよく使うシステムパフォーマンス
向上
今日のテーマ ~運用を考えて~○稼働状況 / 負荷など監視○障害発生時のリカバリ
今日のテーマ ~運用を考えて~モニタリング
可用性
自動障害検出
復旧
今日のテーマ ~運用を考えて~モニタリング
可用性
自動障害検出
復旧
Cloud Watchモニタリング
ホストレベルのメトリックス
Memcachedのメトリックス
Redisのメトリックス
Cloud Watchモニタリング
ホストレベルのメトリックス
CPU使用率
ホストで使用可能な空きメモリの量
ネットワークから読み書きしたバイト数
AWS Documentation : http://amzn.to/1EgUC10
Cloud Watchモニタリング
Memcachedのメトリックス
AWS Documentation : http://amzn.to/1EgTJFL
get / set / Hit した数
現時点のキャッシュ数 / 接続数
期限切れ等で削除した項目数
Cloud Watchモニタリング
Redisのメトリックス
maxmemory の制限のため排除されたキーの数
期間内にサーバーによって受け入れられた接続の総数
Redis によって割り当てられた総バイト数
AWS Documentation : http://amzn.to/1EhcvNp
Cloud Watchモニタリング
iOSnodeJSRuby
AWS SDK / CLIを利用
メトリックスを取得 メトリックス情報を渡す
Webで確認メールで通知
モニタリング 可視化
今日のテーマ ~運用を考えて~モニタリング
可用性
自動障害検出
復旧
Multi - AZ
Availability Zone - bAvailability Zone - a
Cluster
Multi - AZ & Cluster
Availability Zone - a Availability Zone - b
Availability Zone - a Availability Zone - b
Multi - AZ & Cluster
Master
Master
Read
Read
Read
Read Read
Read
Read
Read
Read
Master Nodeで障害発生
ElastiCache Redis Multi-AZ 自動フェイルオーバー機能
Availability Zone - a Availability Zone - b
Master
Master
Read
Read
Read
Read Read
Read
Read
Read
自動フェイルオーバー(Redis)
Masterに 昇格
今日のテーマ ~運用を考えて~モニタリング
可用性
自動障害検出
復旧
Auto Discovery (Memcached)
Cacheノード全てに アクセス
Cache Cluster
Configuration Endpoint
Auto Discovery (Memcached)
全Endpointを 自動取得/設定/接続する
Cache Cluster
Auto Discovery Client (Java / PHP / .NET)
今日のテーマ ~運用を考えて~モニタリング
可用性
自動障害検出
復旧
Backup / Restore (Redis)復旧
定期的なバックアップ手動バックアップ
リストア
Backup
RestoreAWS Management
ConsoleAWS CLI
今日のテーマ ~運用を考えて~モニタリング
可用性
自動障害検出
復旧
運用としてiOSnodeJSRuby
AWS SDK / CLIを利用
運用監視
運用例これ以上、何も思いつきません。
まとめ可用性
耐障害性
パフォーマンス向上
まとめ冗長化はコストがかかる
[CacheNodeType] Cost / h ($) Cost / m ($) Cost / m (¥) cache.t2.micro $0.026 $18.7 ¥2,247cache.t2.small $0.052 $37.4 ¥4,493
cache.t2.medium $0.104 $74.9 ¥8,986cache.m3.medium $0.120 $86.4 ¥10,368
cache.m3.large $0.240 $172.8 ¥20,736cache.m3.xlarge $0.485 $349.2 ¥41,905
cache.m3.2xlarge $0.965 $694.8 ¥83,376cache.r3.large $0.273 $196.6 ¥23,588cache.r3.xlarge $0.546 $393.1 ¥47,175
cache.r3.2xlarge $1.092 $786.2 ¥94,349cache.r3.4xlarge $2.184 $1,572.5 ¥188,698cache.r3.8xlarge $4.368 $3,145.0 ¥377,396
表1. [東京リージョン] オンデマンドキャッシュノードの料金
まとめSmall Start
Small Success
New Challenge
なんとなく 理解できましたか?
教えてもらうより、 まずは使ってみよう!!
新たな世界へ!!
次はあなたがスピーカーよ。
ご清聴 有り難う御座いました。