自 己紹介 桑野 章弘(くわの あきひろ) ソリューションアーキテクト 主にメディア系のお客様を担当しております 渋 谷のインフラエンジニア 仮 しておりました 好きなAWSのサービス ElastiCache 好きなデータストア MongoDB 2

Similar documents
PowerPoint Presentation

Presentation Title Here

AWSにおけるデータベース・サービスの活用

AWS 上でのサーバーレスアーキテクチャ 入 門 AWS Black Belt Online Seminar 2016 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト清 水崇之 , Amazon Web Services, Inc. or its Aff

AWS の NoSQL 入門 〜Amazon ElastiCache, Amazon DynamoDB〜

内容についての注意点! AWS クラウドのサービスは ご利利 用いただいた時間や量量により費 用が変動する従量量課 金金です そのため 事前に料料 金金確定 見見積を作成することはできない旨はご了了承ください! 特に断りがない場合 本資料料では 2014 年年 7 月 24 日現在の東京リージョンの

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

データベースの近代化:シンプルなクロスプラットフォーム、最小のダウンタイムで実現するクラウド移行

お客様からの依頼内容とその現状


利用約款別紙 SkyCDP for AWS 基本サービス仕様書 この仕様書は SkyCDP for AWS の基本サービスに関する内容 方法について記述したものです 尚 SkyCDP for AWS オプションサービスをご利用のお客様は各 SkyCDP for AWS オプションサービスのご契約内容

10年オンプレで運用したmixiをAWSに移行した10の理由

Presentation Title Here

PowerPoint Presentation

自 己紹介 アマゾンウェブサービス ジャパン株式会社 ソリューションアーキテクト Amazon Kinesis うちうみえいいちろう 内海英 Java LMAX Disruptor

AWS Black Belt Online Seminar Amazon Inspector アマゾンウェブサービスジャパン株式会社 セキュリティソリューションアーキテクト桐 山隼 人

AWS およびパートナーサービスを使った、データの集約および活用設計パターン

Webhard_Users manual

自 己紹介 名前 渡邉源太 所属 アマゾンウェブサービスジャパン株式会社 技術本部レディネスソリューション部 ソリューションアーキテクト (Windows Specialist) 好きな AWS サービス Amazon WorkSpaces

Microsoft PowerPoint - AWS-RatesSystem-JP_ pptx

Amazon Relational Database Service (Amazon RDS) AWS Black Belt Online Seminar 2016 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト星野豊

AWS Deck Template

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

Zabbix で PostgreSQL を監視! pg_monz のご紹介 Zabbix Conference Japan 年 11 月 20 日 SRA OSS, Inc. 日本支社マーケティング部

_AWS-Blackbelt-Organizations

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

はじめに AWS Glueは現在Preview中のサービスです 本資料に記載した内容はGA 正式リリース ま でに予告なく変更される可能性があります Twitterのハッシュタグは です 2

AWS Black Belt Online Seminar Amazon Kinesis アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 内海英 一郎郎

Enterprise Cloud + 紹介資料

はじめてみよう AWS ~これだけでわかる、できる、AWS のコアサービスを活用した基本のシステム構成~

DataKeeper for Windows リリースノート

RDX へのバックアップ 3 ベアメタル復旧手順書 2014 年 11 月

使ってみよう!データベースとストレージ ~ Getting Started with AWS Database and Storage Services ~

スライド 1

PowerPoint Presentation

UNIVERGE SG3000 から SG3600 Ver.6.2(2012 年モデル ) への 移行手順 All Rights Reserved, Copyright(C) NEC Corporation 2017 年 11 月 4 版

【Cosminexus V9】クラウドサービスプラットフォーム Cosminexus

PowerPoint_template_v1.3.pptx / パワーポイントテンプレート

クラウド開発者のためのCloud Design Pattern 入門

Agenda Active Directory on AWS 基礎からわかる Active Directory Active Directory on AWS 構成のシナリオ ADFS と IAM による ID 連携 AWS Directory Service ディレクトリタイプの選択 ディレクトリ

AWS Black Belt Online Seminar AWS OpsWorks アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟崎健治

Slide 1

AWS へ全面 Migration するために

Who am I? 名前 : 江川 大地 所属 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 経歴 データベースエンジニア AWS テクニカルトレーナー 好きなサービス AWS サポート 2 好きなデータベース PostgreSQL

クラスタ構築手順書

産直くん 9 リピートくん 9 バックアップ リストア作業チェックリスト バックアップ リストア作業項目一覧 作業項目作業目安時間概要 00 バックアップ リストア作業を行う前に 産直くん 9 リピートくん 9 のバックアップ リストア作業を円滑に行うための確認事項をまとめています 1. バックアッ

よくある問題を解決する~ 5 分でそのままつかえるソリューション by AWS ソリューションズビルダチーム

VPCスターターパック説明資料

AWS Simple Monthly Calculator (簡易見積ツール) 使い方説明

Arcserve Replication/High Availability 製品の仕組み

pgpool-ii で PostgreSQL のクラスタを楽々運用しよう OSC Tokyo 2014/12/12 SRA OSS, Inc. 日本支社マーケティング部 OSS 技術グループ 長田 悠吾

Nintendo Switch(TM)向け プッシュ通知システム 「NPNS」

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_

自 己紹介 株式会社ネクフル 代表取締役草薙俊介 (Shunsuke Kusanagi) 1982 年年北北海道札幌市出 身 2001 年年北北海道札幌 西 高等学校卒 2005 年年明治 大学経営学部卒 2011 年年フリーター web コンサルを経て独学でプログラミングを学び株式会社ネクフル設

ナビタイムサービスにおける、Amazon ECS を活用したシステム移行 ~『乗換NAVITIME』での移行事例 ~

PowerPoint Presentation

目次 1. 本書の役割 監視対象ノードの登録 Agent のインストール Agent の前提条件 対象 OS 監視対象サーバへのログイン セットアップファイルのダウンロード セットアップファイルの解

今さら聞けない!? Oracle入門 ~後編~

PowerPoint Presentation

スライド 1

PowerPoint プレゼンテーション

TC-01 ビッグデータだけじゃない! Amazon DynamoDB の活用事例 Cassandra から DynamoDB への移行で見えたその特徴 サイバーエリアリサーチ株式会社中西健

KARTE セキュリティホワイトペーパー KARTE セキュリティホワイトペーパー 2.1 版 株式会社プレイド 1

Transcription:

Black Belt Online Seminar Amazon ElastiCache 2016/08/24 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト桑野章弘 1

自 己紹介 桑野 章弘(くわの あきひろ) ソリューションアーキテクト 主にメディア系のお客様を担当しております 渋 谷のインフラエンジニア 仮 しておりました 好きなAWSのサービス ElastiCache 好きなデータストア MongoDB 2

内容についての注意点 本資料料では 2016 年年 8 月 24 日時点のサービス内容および価格についてご説明しています 最新の情報は AWS 公式ウェブサイト (http://aws.amazon.com/ ) にてご確認ください 資料料作成には 十分注意しておりますが 資料料内の価格と AWS 公式ウェブサイト記載の価格に相違があった場合 AWS 公式ウェブサイトの価格を優先とさせていただきます 価格は税抜表記となっています 日本居住者のお客様が東京リージョンを使 用する場合 別途消費税をご請求させていただきます AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided. 3

アジェンダ Introduction Amazon ElastiCache 概要 クラスタ運 用とUpdate Amazon ElastiCache のユースケース Amazon ElastiCache の料料 金金 まとめ 4

5 Introduction

Introduction Amazon ElastiCache は AWS クラウドでの分散インメモリキャッシュ環境のセットアップ 管理理 およびスケーリング 冗 長構成等をを容易易に構築することができるサービスです ElastiCache の詳しい使 用 方法について そして ElastiCache を使 用した際の運 用 面の tips を交えてご紹介します 6

7 Amazon ElastiCache 概要

8

AWS が提供するデータベースサービス Amazon RDS Amazon DynamoDB Amazon Redshift Amazon ElastiCache 完全マネージド型で セットアップ 運 用 拡張が容易易なリレーショナル データベースサービス 完全マネージド型で 高速なパフォーマンス シームレスな拡張性と信頼性の NoSQL サービス 高速で管理理も万全なペタバイト規模のデータウェアハウスサービス 完全マネージド型で セットアップ 運 用 拡張が容易易なキャッシュサービス 9

10 Amazon ElastiCache とは 構築 キャッシュクラスタを数クリックで起動 初期費 用無し 時間単位の従量量課 金金 親和性 2 種類のエンジン (memcached, redis) をサポート 既存アプリケーションの変更更不不要 運 用 可 用性を向上させる機能 モニタリング 自動障害検出 復復旧 拡張 パッチ適 用 バックアップが容易易 セキュリティ セキュリティグループ VPC 対応

11 何故マネージドサービスを使 用するのか?

オンプレミスのサーバの場合 App optimization Scaling High availability Database backups DB s/w patches DB s/w installs OS patches OS installation Server maintenance Rack & stack Power, HVAC, net you 12

Amazon EC2 上に構築した場合 App optimization Scaling High availability Database backups DB s/w patches DB s/w installs OS patches OS installation Server maintenance Rack & stack Power, HVAC, net you 13

マネージドサービスを使った場合 App optimization Scaling High availability Database backups DB s/w patches DB s/w installs OS patches OS installation Server maintenance Rack & stack Power, HVAC, net you 14

Memcached vs Redis: どっちを使 用するか? マルチスレッド 非永続化 単純なデータタイプ (String Objects) メンテナンスが楽 垂直分散が楽 シングルスレッド 永続化 多数のデータタイプ - http://redis.io/topics/data- types Atomic 処理理 Pub/sub メッセージング リードレプリカ / フェイルオーバー 15

Amazon ElastiCache for memcached 特徴 対応バージョン 1.4.5 1.4.14 1.4.24 (2016.8.24 現在 ) Cache Cluster という論論理理グループに Cache Node を複数台起動 Cluster Group 全体の Configration Endpoint と Cache Node 単体に Node Endpoint の 2 種類のアクセス 用のエンドポイントがある バックアップ機能 (Snapshot) は持たない CacheCluster A CacheCluster B Configration Endpoint Node Endpoint Node Endpoint Configration Endpoint Node Endpoint Node Endpoint 16

Memcached アクセス 用の Client Library の提供 Auto Discovery 用に対応した専 用のライブラリを AWS から提供 通常アクセス 用 Client Library Memcached ノードの追加 削除の Auto Discovery には未対応 PHP Java.NET C C++ Ruby Python Perl 多数の 言語 用のライブラリが存在 Language Ruby Python Node.js Library Dalli, Dalli:ElastiCache Memcache Ring, django-elasticache node-memcached Auto Discovery 用 Client Library consistent hashing を提供 Auto Discovery (60s 毎 ) をノードの追加 / 削除時に提供 AWS Management Console から取得可 PHP, Java,.NET に対応 (New PHP7!) Language C#/.NET PHP Java Library ElastiCache Auto Discovery Client ElastiCache Auto Discovery Client ElastiCache Auto Discovery Client (based on spymemcached) 17

Auto Discovery for memcached DNS エイリアスとして提供され稼働しているノードリストを表 示する 従来のクライアントの設定 Cache Cluster の全エンドポイントを接続先として設定 Auto Discovery クライアント (Java, PHP,.NET) Cache Cluster の Configuration Endpoint は Cache Cluster のロードバランサ (Proxy) ではなく 接続先として設定すると全ノードを 自動取得 設定し 接続する App 通常のクライアントライブラリ CacheCluster xxx.0001.apne1.cache.amazonaws.com App Auto Discovery クライアントライブラリ xxx.0002.apne1.cache.amazonaws.com Configuration Endpoint xxx.cfg.apne1.cache.amazonaws.com 18 http://docs.aws.amazon.com/amazonelasticache/latest/userguide/autodiscovery.html

ElastiCache for Redis 特徴 対応バージョン : 2.8.21, 2.8.22, 2.8.23, 2.8.24 (2016.8.24 現在 ) 複数の Cluster Group で構成される Replication Group を構成 書き込み先を 示す Primary Endpoint と Cache Node 単体を 示す Node Endpoint の 2 種類のアクセス 用のエンドポイント S3 上のスナップショット (RDB) プリロード機能で ElastiCache へのデータ移 行行も容易易 Multi- AZ 配置での 自動フェイルオーバーにも対応 Snapshot ベースでのバックアップリスト機能にも対応 対応しない機能 CONFIG, SLAVEOF など 一部コマンドは無効化 パスワード ( アクセス制御はセキュリティグループにて実施 ) 19

Redis アクセス 用の Client Library Redis にアクセスするためのライブラリは AWS から提供していない 各 言語 用のライブラリを選択して使 用する 各 言語の主要なライブラリ Language Library Ruby Python Node.js C#/.NET PHP Java Redis-rb, Redis objects Redis-py node-redis ServiceStack.Redis phpredis Jedis 20

リードレプリカ (Replication) 以下の 用途に利利 用可能 耐障害性向上 ( ただし 非同期レプリケーション ) Read 性能のスケーリング 構成 Replication Group 内に マスター 1 台 レプリカ最 大 5 台 Replica of Replica は未対応 Replication Group CacheCluster CacheCluster CacheCluster Availability Zone - a Availability Zone - b 21 http://docs.aws.amazon.com/amazonelasticache/latest/userguide/replication.html http://docs.aws.amazon.com/amazonelasticache/latest/userguide/managingreplication.html

アベイラビリティゾーンをまたいだ Replication 構成 リードレプリカを複数のアベイラビリティゾーンにデプロイ可能 同 一 AZ のリードレプリカを参照し 高速なデータ取得が可能に プライマリノード側の AZ 障害時のデータ保全が可能に App SET SET App GET 非同期レプリケーション GET Availability Zone - a Availability Zone - b 22

リードレプリカ昇格 リードレプリカをプライマリに昇格可能 昇格には数分が必要 その間未応答時間が発 生するため クライント側でエラーハンドリングが必要 プライマリのエンドポイントは変わらない Multi- AZ が有効になっている場合は 手動の昇格はできない その場合は 一度度 Multi- AZ を無効にし 昇格完了了後 Multi- AZ を有効に戻す事で可能 1 2 SYNC 3 DNS change 1 unlink 23

24 クラスタ運 用と Update

キャッシュクラスタのスケールアウト キャッシュは規模が 大きくなるにつれスケールアウトが必要になる 単純な垂直分散や ハッシュ値 ラウンドロビンでの分散ではサーバ数が増減した際にデータの再配置のコストが 高い 1 からキャッシュやり直すのと変わらない場合もある 25

キャッシュクラスタのスケールアウト Consistent Hashing ノードの追加や削除に対し 最 小限のキーのマッピング変更更で ハッシュテーブルの機能を提供 App サーバ側で Consistent Hashing で振り分ける 特徴 ノード障害時のキャッシュ喪失が限定的 ノード追加で総キャッシュ容量量を増やしやすい ノード数変更更時のリバランスコストが限定的 Node A Node D Node A NodeD を追加 Node C Node B Node C Node B 26

Consistent Hashing の 方法 クライアントライブラリでの実装 AWS 提供クライアントライブラリは Consistent Hashing 実装 サードパーティソフトでの実装 :Twemproxy Twitter 社が開発した Memcached/Redis 用の proxy 複数サーバーのシャーディング (consistent hashing) キャッシュサーバーの接続管理理 27

Twemproxy の構成例例 Twemproxy が SPOF としないようにする Twemproxy を ELB 等で冗 長化する 各アプリサーバ上 Twemproxy を起動し アプリケーションはローカルホストの twemproxy にアクセス memcached Redis App + Twemproxy App + Twemproxy App + Twemproxy App + Twemproxy RG1 RG2 28

RDB データのプリロード S3 に保存した RDB ファイルを読込む 既存の Redis で取得した RDB ファイルを ElastiCache へ移 行行する際に便便利利 注意点 RDB ファイルのバージョン互換性を確認 保存した S3 に対して ElastiCache が参照可能なパーミッションが必要 キャッシュノードタイプがサポートするメモリサイズを超える RDB は読み込み不不可 ( 起動時にエラーが発 生 ) Redis RDB copy Redis on EC2 S3 ElastiCache for Redis 29 http://docs.aws.amazon.com/amazonelasticache/latest/userguide/ ManagingCacheClusters.html#ManagingCacheClusters.SeedingRedis

プリロードの応 用 : バックアップ & リストア EC2 上の Redis を slave としてマスタに接続 EC2 上の Redis slave 側で RDB ファイルを S3 へバックアップする事でクラスタ起動時に S3 からプリロード可能 slaveof Redis RDB copy restore EC2 S3 30 http://redis.io/topics/persistence http://docs.aws.amazon.com/amazonelasticache/latest/userguide/ ManagingCacheClusters.html#ManagingCacheClusters.RedisSnapshots

Amazon Redis リリース Amazon が独 自拡張した Redis 2015/9/28 にリリース済 ElasitiCache for Redis 2.8.22 以上 改善点 バックアップの改善 レプリケーションの効率率率化 Swap の効率率率化 31

ElastiCache Redis Snapshot 機能 ElastiCache Redis は Snapshot を使 用し S3 へのバックアップリストアが可能 Snapshot 取得は 自動でも 手動でも可能 自動バックアップ 手順 Clusters 全体に対して Create 若若しくは Modify で設定 自動バックアップを Yes で有効化する 手動バックアップ 手順 Cache Clusters か Snapshot のどちらかから実施 32 対象 (Read Replica) を指定 バックアップ保存期間を指定 ( 最 大 35 日 ) バックアップ期間を指定 (1 日 1 回 )

ElastiCache Redis Snapshot 機能 バージョン 2.8.21 以前 必ず BGSAVE を利利 用するためバックアップ時にはメモリはノードの 1/2 を最 大とすることを推奨 (reserved- memory で設定 ) リードレプリカでバックアップを作成する事を推奨 挿 入 更更新 参照 削除 Redis Master データ変更更は Master ノードしかできないため 負荷をあげない 別の Replication Group に別途に起動することも可能 Redis Master 参照 Redis Read 性能 劣劣化 Snapshot 取得 Snapshot Redis Read 33 参照 Replication Group A Redis Read Read Replica は Cluster 内で 増やせるため スケールアウトが可能 Replication Group B

ElastiCache Redis Snapshot 機能 Amazon Redis( バージョン 2.8.22 以降降 ) メモリの使 用状況により BGSAVE かバックグラウンドプロセスを使 用したオリジナルかを 自動的に選択 挿 入 更更新 参照 削除 Redis Master BGSAVE or バッググラウンドプロセス使 用のバックアップ Redis Master Snapshot 取得 参照 Redis Read Snapshot Redis Read Replication Group A Replication Group B 34 https://docs.aws.amazon.com/ja_jp/amazonelasticache/latest/userguide/snapshots.html

S3 snapshot export バックアップを取得した Redis の snapshot から RDB ファイルを 生成して S3 に置く 様々な 用途 ディザスタリカバリ 分析 種データ配布 Redis EC2 Snapshot Backup Export RDB file restore Redis S3 S3 ON- PRE 35

Redis Multi- AZ 構成 Auto- Failover レプリ遅延のみでレプリカ昇格 DNS 名変更更なし writes Primary Endpoint を使 用します Primary Primary reads ʻ replicaʼ endpoints を使 用します *ʻ primaryʼ も使 用可能 Replica Replica Availability Zone #1 Availability Zone #2 36 http://docs.aws.amazon.com/ja_ jp/amazonelasticache/latest/userguide/ AutoFailover.html

実 行行時間の 長いコマンド Redis のシングルスレッドの特徴 書き込み過多な状況下での Primary- Replica 同期 大量量の書き込み <- > 同期の無限ループ Multi- AZ replication groups 有効時には 30 秒でフェイルオーバーする フェイルオーバ時には DNS キャッシュにも注意 37

Amazon Redis - Primary- Replica 同期 高負荷時の Primary- Replica 同期時 ~初期同期時の書き込みを制限 Update の同期は継続して 行行う Replica 初期化 フェイルオーバー実 行行時に PSYNC と完全同期の適切切な 方を選択する DISK Less 構成時の primary- replica 同期速度度の向上 38

自動フェイルオーバ無効時の障害時の挙動 リードレプリカあり 障害 プライマリ障害 ノード全 面障害 挙動 1. キャッシュイベントをSNSで通知を受取る 2. 再起動を試みる 3. 再起動失敗した場合 フェイルオーバーが必要 4. FO 後プライマリDNS 自動切切替 影響 フェイルオーバー完了了まで書込不不可 それまでの 一定の時間 ( 秒単位 )RR 読込不不可 対策 SNS 通知を設定する クライント / アプリでエラーハンドリング (retry, DB から取得など ) プライマリ障害 リードレプリカなし 1. キャッシュイベントをSNSで通知を受取る 2. 新しいノードを 立立ち上げ 3. DNS 切切替 キャッシュデータロスト SNS 通知を設定する キャッシュ喪失時の対策も織り込む ノード全 面障害 39

Scale up と engine upgrade writes Primary Endpoint を使 用します reads ʻ replicaʼ endpoints を使 用します *ʻ primaryʼ も使 用可能 古いクラスタは移 行行が終わったら削除 Primary Replica Replica Primary Cache Cluster New Cache Cluster 40

Cache インスタンスクラスとスペック DB Instance Class vcpu メモリ (GiB) ネットワーク cache.t2.micro 1 1 低 cache.t2.small 1 2 低 cache.t2.medium 2 4 低 cache.t2.large 2 8 中 cache.m4.large 2 8 中 cache.m4.xlarge 4 16 高 cache.m4.2xlarge 8 32 高 cache.m4.4xlarge 16 64 高 cache.m4.10xlarge 40 160 10Gbps cache.r3.large 2 15 中 cache.r3.xlarge 4 30.5 中 cache.r3.2xlarge 8 61 中 cache.r3.4xlarge 16 122 高 cache.r3.8xlarge 32 244 10Gbps 41 表には記載していない旧世代インスタンス (cache.m3) も選択可能です

Append- Only Files(AOF) について AOF とは Redis の機能で受信した全コマンド ( 操作 ) をローカルストレージ上の AOF に追記 キャッシュノード reboot 時にキャッシュデータの復復元が可能 メンテナンス時の reboot 時にデータを保持可能 デフォルトでは off パラメータグループで appendonly を yes に変更更し有効化 cache.t1.micro cache.t2.micro は 非対応 注意点 ノード障害によるノード 入れ替えが発 生した場合は AOF が喪失する データ保全のためには最低 1 台のリードレプリカ構成を推奨 耐障害性という観点から MAZ を利利 用した構成を推奨 2.8.22 以降降では AOF は 非対応 42 http://docs.aws.amazon.com/amazonelasticache/latest/userguide/ CacheParameterGroups.Redis.html#CacheParameterGroups.Redis.AOF

キャッシュクラスタの監視 phpmemcachedadmin Amazon CloudWatch Alarms http://blog.elijaa.org/index.php?pages/phpmemcachedadmin-download 43

CloudWatch による ElastiCache の監視 主に監視する項 目 CPUUtilization (CPU 使 用率率率 ) Memcached の場合はマルチコアが使えるので 90% 超えでも OK Redis はシングルコアなので cache.m4.xlarge(4 コア ) だと 25% (100% / 4) が最 大値 CacheHits/CacheMisses Evictions キャッシュメモリ不不 足起因のキャッシュアウト発 生回数 SwapUsage メモリ使 用量量 BytesUsedForCacheItems(Memcached) BytesUsedForCache(Redis) Replica Lag レプリケーション遅延 (Redis) 44 http://docs.aws.amazon.com/amazonelasticache/latest/userguide/cachemetrics.html http://docs.aws.amazon.com/amazonelasticache/latest/userguide/cachemetrics.memcached.html http://docs.aws.amazon.com/amazonelasticache/latest/userguide/cachemetrics.whichshouldimonitor.html

おさらい : 前回の Blackbelt からの Update Amazon Redis リリース! S3 snapshot export Scale up と engine upgrade m4インスタンス対応 45

46 Amazon ElastiCache のユースケース

Amazon ElastiCache のユースケース Memcached のユースケース アプリケーションキャッシュ セッションキャッシュ Redis のユースケース アプリケーションキャッシュ セッションキャッシュ Pub/Sub リーダーボード リアルタイム分析 47

アプリケーションキャッシュ 48 目的 アプリを 高速化する 手法 高頻度度でアクセスされるデータをキャッシュに格納し DB アクセス DB 負荷を低減 クライアントへはメモリにキャッシュしたデータを返却しレイテンシ低減 用途 クエリ結果を再利利 用 (DB サーバの負荷低減 高速化 ) 複雑な計算結果 二次データを再利利 用 (APP サーバの負荷軽減 )

アプリケーションキャッシュ 典型的な構成 App RDBMS 1. クライアントからのリクエスト 2. App サーバが DB サーバに問い合わせ 3. DB サーバが結果を戻す 4. App サーバがレスポンスをクライアントに返す 49

アプリケーションキャッシュ トラフィックが増えると App RDBMS App RDBMS 5. App サーバ,DB サーバをスケール 6. 効果 効率率率 コスト的な 面 DB をスケールさせる難易易度度は? RDB をスケール アウト させるのは難しい 50

アプリケーションキャッシュ DB 負荷を軽減するためにキャッシュにデータを載せる アプリケーション側で DB とキャッシュを使い分ける App RDBMS App キャッシュ 51

セッションキャッシュ 目的 複数の App サーバでセッションを共有するために使 用する 特定のセッションレプリケーションやロードバランサに依存しない 複数のサーバから同じデータを 高速に取得可能 用途 セッション情報等の揮発性の 高いデータを格納 52

セッションキャッシュ 各アプリケーションサーバはセッション情報をキャッシュ経由で共有する App L B キャッシュ App 53

Pub/Sub 目的 パブリッシャからメッセージを送信 (PUBLISH) し それをサブスクライバと呼ばれるクライアントで受信 (SUBSCRIBE) する 複数プロセスでのリアルタイムメッセージのやり取り 用途 アプリケーションのメッセージ表 示 Web チャット オンラインゲーム招待 チャット 54

Pub/Sub > PUBLISH akuwano:chat I ve got my eye on you! (integer) 4 > SUBSCRIBE akuwano:chat I've got my eye on you! > SUBSCRIBE akuwano:chat I've got my eye on you! > SUBSCRIBE akuwano:chat I've got my eye on you! > SUBSCRIBE akuwano:chat I've got my eye on you! 55

リーダーボード 目的 点数計算などのランキング表 示を 行行う Redis の sorted set 型を使 用することで 手軽に実装可能 用途 オンラインゲームの点数 獲得アイテム数等のランキング表 示 Blog のアクセスランキング表 示 56

リーダーボード # データ登録 redis> ZADD "leaderboard" 1201 "redis (integer) 1 redis> ZADD "leaderboard" 963 "cassandra (integer) 1 redis> ZADD "leaderboard" 1092 memcached (integer) 1 redis> ZADD "leaderboard" 1383 "mongodb (integer) 1 # ランキング 一覧取得 redis> ZREVRANGE "leaderboard" 0-1 1) "mongodb 2) "redis 3) "memcached 4) "cassandra # 特定ユーザのランキング取得 (0 が 1 位 ) redis> ZREVRANK "leaderboard" "mongodb (integer) 0 57

リアルタイム分析 目的 リアルタイムにおおよそのユーザ数や 所有ポイント数の変化等を確認する 用途 ポイント数の推移をリアルタイムにグラフ化する ログを読みだして特定の 文字列列 (IP アドレスなど ) がどれくらい頻出しているかを集計する 58

HyperLogLog 59 HyperLogLog はセット内のユニークな要素数を 高速に近似することが出来るコンパクト ( 各 Key 毎に 12KB) なデータ タイプ 推定値 (0.81 パーセントの標準誤差で ) を取得することが可能 データの登録 redis> PFADD datastore "redis" "cassandra" "hbase" "aurora" "mysql" "mongodb (integer) 1 datastore という key が変更更されたので 1 が戻り値 データカウント redis> PFCOUNT datastore (integer) 6 6 種類の値が存在するので戻り値 6

60 Amazon ElastiCache の料料 金金

価格 オンデマンドキャッシュノード 初期費 用無し 時間単位の従量量課 金金モデル リザーブドキャッシュノード 予約 金金を 支払うことで時間当たり価格を割引 ( 最 大 70% 節減 ) アベイラビリティゾーンの指定が不不要 バックアップストレージ (Redis) 各クラスタに対して 1 つの Snapshot は無料料 2 つ以上の Snapshot から毎 月 0.085 USD/GB が課 金金 AZ 間データ転送量量 ElastiCache 間の通信は課 金金対象外 EC2 と ElastiCache 間で AZ を超える場合 0.01 USD/GB が課 金金 61 http://aws.amazon.com/jp/elasticache/pricing/ http://aws.amazon.com/jp/elasticache/reserved-cache-nodes/

TCO 比較 同スペックでの EC2 と ElastiCache での TCO の 比較 Multi- AZ 構成時の通信費 用を削減 運 用コスト バックアップ Multi- AZ Failover 構成 Clluster 構成 (Node Auto Discovery, Replication 環境 ) バージョンアップ / スケールアップ オンデマンド価格 ( 月額換算 ) 重度リザーブド価格 ( 月額換算 ) インスタンスタイプ EC2 Elas(Cache 差額 EC2 Elas(Cache 差額 t2.small $ 29 $ 38 $ 9 $ 21 $ 28 $ 7 r3.large $ 146 $ 199 $ 53 $ 95 $ 130 $ 35 62

まとめ Amazon ElastiCache を活 用する事で 既存のアプリケーションの変更更を最 小限にして Memcached Redis を使 用したキャッシュクラスタの構築 運 用が可能 バックアップ フェイルオーバ スペックアップ バージョンアップ等 Amazon で拡張された Redis の機能も利利 用可能 バックアップ改善 レプリケーション同期最適化 63

参考資料料 Performance at Scale with Amazon ElastiCache https://d0.awsstatic.com/whitepapers/performance- at- scale- with- amazon- elasticache.pdf Amazon ElastiCache Document http://aws.amazon.com/jp/documentation/elasticache/ Amazon ElastiCache FAQ http://aws.amazon.com/jp/elasticache/faqs/ Amazon ElastiCache Pricing http://aws.amazon.com/jp/elasticache/pricing/ Memcached http://memcached.org/ Redis http://redis.io/ 64

オンラインセミナー資料料の配置場所 AWS クラウドサービス活 用資料料集 http://aws.amazon.com/jp/aws- jp- introduction/ AWS Solutions Architect ブログ 最新の情報 セミナー中の Q&A 等が掲載されています http://aws.typepad.com/sajp/ 65

公式 Twitter/Facebook AWS の最新情報をお届けします @awscloud_ jp 検索索 もしくは http://on.fb.me/1vr8ywm 最新技術情報 イベント情報 お役 立立ち情報 お得なキャンペーン情報などを 日々更更新しています! 66

AWS の導 入 お問い合わせのご相談 AWS クラウド導 入に関するご質問 お 見見積り 資料料請求をご希望のお客様は 以下のリンクよりお気軽にご相談ください https://aws.amazon.com/jp/contact- us/aws- sales/ 67 AWS 問い合わせ で検索索してください

68