Amazon ElastiCache ユーザーガイド

Amazon ElastiCache
ユーザーガイド
API Version 2015-02-02
Amazon ElastiCache ユーザーガイド
Amazon ElastiCache: ユーザーガイド
Copyright © 2016 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
Abstract
Amazon ElastiCache ウェブサービスが存在するクラウドで、分散型インメモリキャッシュ環境を設定、
管理、およびスケールします。
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner
that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not
owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by
Amazon.
Amazon ElastiCache ユーザーガイド
Table of Contents
Amazon ElastiCache とは ............................................................................................................... 1
以下の資料も参照してください。 ............................................................................................ 2
以下の資料も参照してください。 ............................................................................................ 2
ElastiCache が適している用途 ................................................................................................ 2
インメモリデータキャッシュ .......................................................................................... 2
ゲームリーダーボード(Redis ソートリスト) .................................................................. 3
メッセージング(Redis pub/sub) ................................................................................... 4
推奨データ(Redis カウンターとハッシュ) ..................................................................... 6
その他の Redis の用途 ................................................................................................... 7
お客様の声 ................................................................................................................... 7
ElastiCache リソース ............................................................................................................. 8
チュートリアルの動画 ........................................................................................................... 9
入門動画チュートリアル ................................................................................................ 9
上級者向け動画チュートリアル ..................................................................................... 10
コンポーネントと機能 .......................................................................................................... 11
ノード ....................................................................................................................... 11
クラスター ................................................................................................................. 12
レプリケーショングループ ............................................................................................ 14
リージョンとアベイラビリティーゾーン ......................................................................... 15
エンドポイント ........................................................................................................... 15
パラメータグループ ..................................................................................................... 16
セキュリティ .............................................................................................................. 16
セキュリティグループ .................................................................................................. 16
サブネットグループ ..................................................................................................... 17
スナップショットとしてのバックアップ(Redis) ........................................................... 17
イベント .................................................................................................................... 17
ElastiCache へのアクセス ..................................................................................................... 19
ElastiCache の管理 .............................................................................................................. 19
ElastiCache 管理の方法 ................................................................................................ 19
はじめに .................................................................................................................................... 21
ステップ 1: AWS アカウントの作成 ........................................................................................ 21
ステップ 2: クラスターを起動する ......................................................................................... 22
ステップ 3: クラスターの詳細情報を表示する .......................................................................... 23
ステップ 4: アクセスを許可する ............................................................................................ 23
EC2-VPC でクラスターを起動した場合 .......................................................................... 24
EC2-Classic でクラスターを起動した場合 ....................................................................... 25
ステップ 5: クラスターノードに接続する ................................................................................ 25
ステップ 5: Memcached ノードに接続する ...................................................................... 26
ステップ 5: Redis クラスターに接続する ......................................................................... 28
ステップ 6: クラスターを削除する ......................................................................................... 29
ここからどこへ進むべきですか? ............................................................................................ 31
キャッシュエンジンとバージョンの選択 ......................................................................................... 32
エンジンの選択: Memcached または Redis .............................................................................. 32
Memcached バージョンの比較 .............................................................................................. 33
Memcached バージョン 1.4.24 ...................................................................................... 33
Memcached バージョン 1.4.14 ..................................................................................... 33
Memcached バージョン 1.4.5 ........................................................................................ 33
Redis バージョンの比較 ....................................................................................................... 33
Redis バージョン 2.8.24 ............................................................................................... 34
Redis バージョン 2.8.23 ............................................................................................... 34
Redis バージョン 2.8.22 ............................................................................................... 34
Redis バージョン 2.8.21 ............................................................................................... 35
Redis バージョン 2.8.19 ............................................................................................... 35
Redis バージョン 2.8.6 ................................................................................................. 35
Redis バージョン 2.6.13 ............................................................................................... 36
API Version 2015-02-02
iii
Amazon ElastiCache ユーザーガイド
キャッシュエンジンのバージョンアップグレード .....................................................................
Memcached ................................................................................................................
Redis .........................................................................................................................
メンテナンスウィンドウ .......................................................................................................
リージョンとアベイラビリティーゾーンの選択 ................................................................................
Redis リードレプリカおよび Memcached ノードの配置 ............................................................
サポートされているリージョンおよびエンドポイント ...............................................................
エンドポイントの検索 ..................................................................................................................
コンソールを使用した Memcached エンドポイントの検索 .........................................................
コンソールを使用した Redis クラスターのエンドポイントの検索 ...............................................
コンソールを使用したレプリケーショングループのエンドポイントの検索 ...................................
エンドポイントの検索 AWS CLI の使用 ..................................................................................
ノードとクラスターのエンドポイントの検索 AWS CLI の使用 ............................................
レプリケーショングループのエンドポイントの検索 AWS CLI の使用 ..................................
エンドポイントの検索 ElastiCache API の使用 .........................................................................
ノードとクラスターのエンドポイントの検索 ElastiCache API を使用 ..................................
レプリケーショングループのエンドポイントの検索 ElastiCache API を使用 .........................
ベストプラクティス .....................................................................................................................
Redis スナップショットを作成するための十分なメモリがあることの確認 ....................................
バックグラウンド書き込みプロセスとメモリ使用率 ..........................................................
バックグラウンド書き込み実行中のメモリ不足の回避 .......................................................
Redis AOF 使用時のディスク容量不足の問題の緩和 .................................................................
耐障害性に対するより適切なアプローチとしての Redis マルチ AZ の有効化 ........................
障害の軽減 .........................................................................................................................
Memcached 実行時の障害を軽減する .............................................................................
Redis 実行時の障害の軽減 ............................................................................................
ベストプラクティス .....................................................................................................
効率的な負荷分散のための ElastiCache クライアントの設定 ......................................................
Java を使用した整合性のあるハッシュ ...........................................................................
PHP を使用した整合性のあるハッシュ ...........................................................................
.NET を使用した整合性のあるハッシュ ...........................................................................
キャッシュ戦略 ...........................................................................................................................
遅延読み込み ......................................................................................................................
シナリオ 1: キャッシュヒット .......................................................................................
シナリオ 2: キャッシュミス ..........................................................................................
遅延読み込みの利点と欠点 ............................................................................................
遅延読み込みコード .....................................................................................................
書き込みスルー ...................................................................................................................
書き込みスルーの利点と欠点 .........................................................................................
書き込みスルーコード ..................................................................................................
TTL の追加 .........................................................................................................................
コード例 ....................................................................................................................
関連トピック ......................................................................................................................
ノード .......................................................................................................................................
ノードサイズの選択 .............................................................................................................
Memcached ノードサイズの選択 ...................................................................................
Redis ノードサイズの選択 ............................................................................................
リザーブドノード ................................................................................................................
リザーブドノードサービス ............................................................................................
リザーブドノードの説明 ...............................................................................................
使用可能なリザーブドキャッシュノードサービスの説明 ....................................................
リザーブドノードの購入 ...............................................................................................
サポートされているノードの種類 ..........................................................................................
ノードが置き換え対象となった場合に実行可能なアクション ......................................................
Memcached ................................................................................................................
Redis .........................................................................................................................
ノードの自動検出(Memcached) .................................................................................................
自動検出の利点 ...................................................................................................................
API Version 2015-02-02
iv
36
36
36
37
39
39
40
42
44
46
47
49
49
49
51
51
51
52
52
53
53
54
54
55
55
56
58
58
59
59
60
61
61
62
62
62
63
63
63
64
64
65
66
67
68
68
69
70
70
72
74
77
80
81
81
81
84
85
Amazon ElastiCache ユーザーガイド
自動検出の動作 ................................................................................................................... 86
キャッシュノードへの接続 ............................................................................................ 86
通常のクラスター操作 .................................................................................................. 87
自動検出の使用 ................................................................................................................... 88
ステップ 1: 設定エンドポイントを取得する ..................................................................... 88
ステップ 2: ElastiCache クラスタークライアントをダウンロードする ................................. 88
ステップ 3: アプリケーションプログラムを変更する ......................................................... 89
キャッシュノードへの手動接続 ............................................................................................. 93
クライアントライブラリへの自動検出の追加 ........................................................................... 94
キャッシュエンジンバージョン 1.4.14 以上 ..................................................................... 94
キャッシュエンジンバージョン 1.4.14 未満 ..................................................................... 95
出力形式 .................................................................................................................... 95
クラスター ................................................................................................................................. 96
Memcached のバージョン .................................................................................................... 97
Redis のバージョン ............................................................................................................. 97
その他の ElastiCache クラスターオペレーション ..................................................................... 97
クラスターの作成 ................................................................................................................ 98
Memcached キャッシュクラスターの作成 AWS マネジメントコンソールの使用 ................... 99
1 つの Redis キャッシュクラスターの作成 AWS マネジメントコンソールの使用 ................. 103
AWS CLI を使用したクラスターの作成 ......................................................................... 107
キャッシュクラスターの作成 ElastiCache API の使用 ...................................................... 107
クラスターの詳細を表示する ............................................................................................... 108
クラスターの詳細を表示する AWS マネジメントコンソールの使用 ................................... 108
クラスターの詳細情報を表示する AWS CLI の使用 ......................................................... 108
クラスターの詳細を表示する ElastiCache API の使用 ...................................................... 108
キャッシュクラスターの変更 ............................................................................................... 110
キャッシュクラスターの変更 AWS マネジメントコンソールの使用 ................................... 110
キャッシュクラスターの変更 AWS CLI の使用 ............................................................... 111
キャッシュクラスターの変更 ElastiCache API の使用 ...................................................... 111
クラスターの再起動 ........................................................................................................... 112
クラスターの再起動 AWS マネジメントコンソールの使用 ............................................... 112
クラスターの再起動 AWS CLI の使用 ............................................................................ 112
クラスターの再起動 ElastiCache API の使用 .................................................................. 113
クラスターのモニタリング .................................................................................................. 114
クラスターへのノードの追加 ............................................................................................... 114
クラスターへのノードの追加 AWS マネジメントコンソールの使用 ................................... 114
クラスターへのノードの追加 AWS CLI の使用 ............................................................... 117
クラスターへのノードの追加 ElastiCache API の使用 ...................................................... 117
クラスターからのノードの削除 ............................................................................................ 119
クラスターからのノードの削除 AWS マネジメントコンソールの使用 ................................ 119
クラスターからのノードの削除 AWS CLI の使用 ............................................................ 121
クラスターからのノードの削除 ElastiCache API の使用 ................................................... 123
保留中のノードの追加または削除操作のキャンセル ................................................................ 124
保留中のノードの追加またはノード削除オペレーションのキャンセル AWS マネジメントコ
ンソールの使用 ......................................................................................................... 124
クラスターの削除 .............................................................................................................. 125
クラスターの削除 AWS マネジメントコンソールの使用 ................................................... 125
クラスターの削除 AWS CLI の使用 ............................................................................... 125
クラスターの削除 ElastiCache API の使用 ..................................................................... 125
ElastiCache クラスターのスケーリング ......................................................................................... 127
Memcached クラスターのスケーリング ................................................................................ 127
Redis クラスターのスケーリング ......................................................................................... 129
スケーリングの拡張 / 縮小: クラスターのノードインスタンスタイプの変更 ................................ 129
レプリケーション(Redis) ........................................................................................................ 131
Redis レプリケーション: エンジンバージョンによる違い ......................................................... 132
Redis バージョン 2.8.22 以降 ...................................................................................... 132
Redis バージョン 2.8.22 以前 ...................................................................................... 132
Redis レプリケーショングループ ......................................................................................... 133
API Version 2015-02-02
v
Amazon ElastiCache ユーザーガイド
マルチ AZ と自動フェイルオーバーをサポートするレプリケーショングループ (Redis) .................
自動フェイルオーバーの概要 .......................................................................................
自動フェイルオーバーと Multi-AZ に関する注意事項 .......................................................
マルチ AZ および自動フェイルオーバーレスポンスの障害シナリオ ...................................
マルチ AZ で自動フェイルオーバーを有効にする ............................................................
レプリケーショングループの作成 .........................................................................................
利用可能な Redis キャッシュクラスターがある場合のレプリケーショングループの作成 .......
利用可能な Redis キャッシュクラスターがない場合のレプリケーショングループの作成 .......
レプリケーショングループのエンドポイントの検索 ................................................................
レプリケーショングループのエンドポイントの検索 AWS マネジメントコンソールの使用 .....
レプリケーショングループのエンドポイントの検索 AWS CLI の使用 .................................
レプリケーショングループのエンドポイントの検索 ElastiCache API の使用 .......................
レプリケーショングループの変更 .........................................................................................
レプリケーショングループの変更 AWS マネジメントコンソールの使用 .............................
レプリケーショングループの変更 AWS CLI の使用 .........................................................
レプリケーショングループの変更 ElastiCache API の使用 ................................................
レプリケーショングループの削除 .........................................................................................
レプリケーショングループの削除 AWS マネジメントコンソールの使用 .............................
レプリケーショングループの削除 AWS CLI の使用 .........................................................
レプリケーショングループの削除 ElastiCache API の使用 ................................................
リードレプリカの追加 ........................................................................................................
レプリケーショングループへのリードレプリカの追加 AWS マネジメントコンソールの使
用 ............................................................................................................................
レプリケーショングループへのリードレプリカの追加 AWS CLI の使用 ..............................
レプリケーショングループへのリードレプリカの追加 ElastiCache API の使用 ....................
リードレプリカの昇格 ........................................................................................................
リードレプリカをプライマリに昇格させる AWS マネジメントコンソールの使用 .................
リードレプリカをプライマリに昇格させる AWS CLI の使用 .............................................
リードレプリカをプライマリに昇格させる ElastiCache API の使用 ...................................
リードレプリカの削除 ........................................................................................................
バックアップと復元の管理(Redis) ............................................................................................
制約 .................................................................................................................................
コスト .............................................................................................................................
パフォーマンスに対するバックアップの影響 .........................................................................
Redis 2.8.22 以降を実行する場合のバックアップ ............................................................
Redis バージョン 2.8.22 以前を実行する場合のバックアップ ...........................................
Scheduling Automatic Snapshots ..........................................................................................
Taking Manual Snapshots ...................................................................................................
クラスターの Taking Manual Snapshots ........................................................................
Taking a Final Snapshot ......................................................................................................
最終スナップショットの作成 AWS マネジメントコンソールの使用 ...................................
最終スナップショットの作成 AWS CLI の使用 ...............................................................
最終スナップショットの作成 ElastiCache API の使用 ......................................................
スナップショットのリストの表示 .........................................................................................
スナップショットのリストの表示 AWS マネジメントコンソールの使用 .............................
スナップショットのリストの表示 AWS CLI の使用 .........................................................
スナップショットのリストの表示 ElastiCache API の使用 ................................................
スナップショットのコピー ..................................................................................................
スナップショットのコピー AWS マネジメントコンソールの使用 ......................................
スナップショットのコピー AWS CLI の使用 ..................................................................
スナップショットのコピー ElastiCache API の使用 .........................................................
スナップショットのエクスポート .........................................................................................
Restoring From a Snapshot .................................................................................................
Restoring From a Snapshot AWS マネジメントコンソールの使用 ......................................
Restoring From a Snapshot AWS CLI の使用 ..................................................................
Restoring From a Snapshot ElastiCache API の使用 ........................................................
Using a Snapshot to Seed a Cluster ......................................................................................
1. Redis バックアップを作成します。 ...........................................................................
API Version 2015-02-02
vi
134
134
134
135
138
141
141
146
153
153
154
154
157
157
158
158
159
159
159
159
161
161
162
162
164
164
165
165
167
168
169
169
169
169
169
171
172
172
174
174
174
175
176
176
176
176
177
177
177
177
179
180
180
180
181
182
182
Amazon ElastiCache ユーザーガイド
2. バックアップを Amazon S3 にアップロードします。 ...................................................
3. .rdb ファイルへの読み込みアクセスを ElastiCache に許可します。 ................................
4. ElastiCache クラスターと .rdb ファイルデータを提携させます。 ...................................
Tagging Snapshots ............................................................................................................
Deleting a Snapshot ...........................................................................................................
Deleting a Snapshot AWS マネジメントコンソールの使用 ...............................................
Deleting a Snapshot AWS CLI の使用 ............................................................................
Deleting a Snapshot ElastiCache API の使用 ..................................................................
AOF (Redis Append Only Files) ............................................................................................
キャッシュセキュリティグループ [EC2-Classic] .............................................................................
キャッシュセキュリティグループの作成 ...............................................................................
セキュリティグループを作成する AWS マネジメントコンソールの使用 .............................
セキュリティグループを作成する AWS CLI の使用 .........................................................
セキュリティグループを作成する ElastiCache API の使用 ................................................
使用可能なキャッシュセキュリティグループのリスト .............................................................
使用可能なキャッシュセキュリティグループのリスト AWS マネジメントコンソールの使
用 ............................................................................................................................
使用可能なキャッシュセキュリティグループのリスト AWS CLI の使用 ..............................
使用可能なキャッシュセキュリティグループのリスト ElastiCache API の使用 ....................
キャッシュセキュリティグループの表示 ...............................................................................
キャッシュセキュリティグループの表示 AWS マネジメントコンソールの使用 ....................
キャッシュセキュリティグループの表示 AWS CLI の使用 ................................................
キャッシュセキュリティグループの表示 ElastiCache API の使用 ......................................
Amazon EC2 セキュリティグループへのネットワークアクセスの許可 .......................................
Amazon EC2 セキュリティグループへのネットワークアクセスの許可 AWS マネジメントコ
ンソールの使用 .........................................................................................................
Amazon EC2 セキュリティグループへのネットワークアクセスの許可 AWS CLI の使用 ........
Amazon EC2 セキュリティグループへのネットワークアクセスの許可 ElastiCache API の使
用 ............................................................................................................................
パラメータとパラメータグループ .................................................................................................
パラメータグループを作成する ............................................................................................
パラメータグループを作成する AWS マネジメントコンソールの使用 ................................
パラメータグループを作成する AWS CLI の使用 ............................................................
パラメータグループを作成する ElastiCache API の使用 ...................................................
パラメータグループを名前別に一覧表示する .........................................................................
パラメータグループを名前別に一覧表示する AWS マネジメントコンソールの使用 ..............
パラメータグループを名前別に一覧表示する AWS CLI の使用 ..........................................
パラメータグループを名前別に一覧表示する ElastiCache API の使用 ................................
パラメータグループの値を一覧する ......................................................................................
パラメータグループの値を一覧する AWS マネジメントコンソールの使用 ..........................
パラメータグループの値を一覧する AWS CLI の使用 ......................................................
パラメータグループの値を一覧する ElastiCache API の使用 .............................................
パラメータグループを変更する ............................................................................................
パラメータグループを変更する AWS マネジメントコンソールの使用 ................................
パラメータグループを変更する AWS CLI の使用 ............................................................
パラメータグループを変更する ElastiCache API の使用 ...................................................
パラメータグループを削除する ............................................................................................
パラメータグループを削除する AWS マネジメントコンソールの使用 ................................
パラメータグループを削除する AWS CLI の使用 ............................................................
パラメータグループを削除する ElastiCache API の使用 ...................................................
Memcached 固有のパラメータ .............................................................................................
Memcached 1.4.24 で追加されたパラメータ ..................................................................
Memcached 1.4.14 で追加されたパラメータ ..................................................................
Memcached 1.4.5 では、パラメータがサポートされていました。 .....................................
Memcached 接続オーバーヘッド ..................................................................................
Memcached のノードタイプ固有のパラメータ ...............................................................
Redis 固有のパラメータ .....................................................................................................
Redis 2.8.24 で追加されたパラメータ ...........................................................................
API Version 2015-02-02
vii
182
183
184
185
186
186
186
186
187
188
190
190
190
190
192
192
192
192
194
194
194
194
196
196
196
197
198
199
199
200
200
202
202
202
203
205
205
205
206
208
208
209
209
210
210
210
211
212
212
215
216
217
218
219
219
Amazon ElastiCache ユーザーガイド
Redis 2.8.23 で追加されたパラメータ ...........................................................................
Redis 2.8.22 で追加されたパラメータ ...........................................................................
Redis 2.8.21 で追加されたパラメータ ...........................................................................
Redis 2.8.19 で追加されたパラメータ ...........................................................................
Redis 2.8.6 で追加されたパラメータ .............................................................................
Redis 2.6.13 パラメータ .............................................................................................
Redis のノードタイプ固有のパラメータ ........................................................................
サブネットおよびサブネットグループ ...........................................................................................
キャッシュサブネットグループの作成 ...................................................................................
キャッシュサブネットグループの作成 AWS マネジメントコンソールの使用 .......................
キャッシュサブネットグループの作成 AWS CLI の使用 ...................................................
キャッシュサブネットグループの作成 ElastiCache API の使用 ..........................................
キャッシュクラスターへのキャッシュサブネットグループの割り当て ........................................
キャッシュサブネットグループの変更 ...................................................................................
サブネットグループの変更 AWS マネジメントコンソールの使用 ......................................
サブネットグループの変更 AWS CLI の使用 ..................................................................
サブネットグループの変更 ElastiCache API の使用 .........................................................
サブネットグループの削除 ..................................................................................................
サブネットグループの削除 AWS マネジメントコンソールの使用 ......................................
サブネットグループの削除 AWS CLI の使用 ..................................................................
サブネットグループの削除 ElastiCache API の使用 .........................................................
認証とアクセスコントロール(Amazon ElastiCache 用) ................................................................
Amazon Virtual Private Cloud で起動した場合のアクセス制御 ...................................................
Amazon Virtual Private Cloud で起動しなかった場合のアクセス制御 ..........................................
Amazon VPC を ElastiCache に使用する ...............................................................................
ElastiCache と Amazon Virtual Private Cloud ..................................................................
Virtual Private Cloud (VPC) の作成 ................................................................................
キャッシュサブネットグループの作成 ...........................................................................
Amazon VPC でのキャッシュクラスターの作成 .............................................................
Amazon VPC で実行されるキャッシュクラスターへの接続 ..............................................
IAM によるアクセス制御 .....................................................................................................
IAM について ............................................................................................................
ElastiCache セキュリティグループと IAM .....................................................................
ElastiCache IAM ARN が存在しない .............................................................................
ElastiCache のアクション ...........................................................................................
ElastiCache のキー ....................................................................................................
ElastiCache のポリシー例 ...........................................................................................
アカウント属性を取得できない ...................................................................................
AWS 外部からの ElastiCache リソースへのアクセス .......................................................................
要件 .................................................................................................................................
考慮事項 ..........................................................................................................................
制約事項 ..........................................................................................................................
AWS 外部から ElastiCache リソースにアクセスする方法 .........................................................
以下の資料も参照してください。 .........................................................................................
モニタリング ............................................................................................................................
使用状況のモニタリング .....................................................................................................
ElastiCache メトリックスのディメンション ...................................................................
ホストレベルのメトリックス .......................................................................................
Memcached のメトリックス ........................................................................................
Redis のメトリックス .................................................................................................
モニタリングすべきメトリックス .................................................................................
メトリックスの統計と期間の選択 .................................................................................
Monitoring CloudWatch Cache Cluster and Cache Node Metrics ........................................
イベントのモニタリング .....................................................................................................
ElastiCacheAmazon SNS 通知の管理 ............................................................................
Viewing ElastiCache Events .........................................................................................
イベント通知と Amazon SNS ......................................................................................
コストのモニタリング ........................................................................................................
API Version 2015-02-02
viii
220
221
222
222
222
225
230
232
233
233
234
234
236
236
236
236
237
238
238
238
238
240
240
240
242
243
247
249
250
251
256
256
257
257
257
257
258
259
261
261
261
262
262
264
265
266
266
267
267
269
272
274
274
277
277
281
282
287
Amazon ElastiCache ユーザーガイド
Adding Tags to Your ElastiCache Resource ....................................................................
Listing Your ElastiCache Resource's Tags ......................................................................
Modifying Your ElastiCache Resource's Tags .................................................................
Removing Tags from Your ElastiCache Resource ............................................................
Copying Tags to Your ElastiCache Resource ..................................................................
ElastiCache API の使用 ..............................................................................................................
クエリ API の使用 ..............................................................................................................
Query パラメータ ......................................................................................................
クエリリクエストの認証 .............................................................................................
利用可能なライブラリ ........................................................................................................
アプリケーションのトラブルシューティング .........................................................................
エラーの取得 ............................................................................................................
トラブルシューティングのヒント .................................................................................
API 呼び出しのログ作成 .....................................................................................................
CloudTrail 内の ElastiCache 情報 ..................................................................................
ElastiCache ログファイルエントリの解読 ......................................................................
ElastiCache クライアント ...........................................................................................................
Cluster Client のインストール ..............................................................................................
.NET Cluster Client のインストール ..............................................................................
PHP Cluster Client のインストール ...............................................................................
PHP Cluster Client 用のソースコードのコンパイル .........................................................
クライアントの設定 ...........................................................................................................
制限されるコマンド ...................................................................................................
ノードのエンドポイントおよびポート番号を検索する .....................................................
自動検出を使用するための接続 ....................................................................................
レプリケーショングループへの接続 ..............................................................................
DNS 名と基になっている IP ........................................................................................
チュートリアル .........................................................................................................................
ドキュメント履歴 ......................................................................................................................
AWS の用語集 ...........................................................................................................................
API Version 2015-02-02
ix
289
291
293
294
296
297
297
297
298
300
300
300
301
301
302
302
306
306
306
309
314
315
315
315
317
317
319
320
321
327
Amazon ElastiCache ユーザーガイド
Amazon ElastiCache とは
Abstract
コスト効率の高い ElastiCache キャッシュソリューションを使用して、クラウド内の分散型インメモリキャッシュ
環境を設定、管理、およびスケールします。
『Amazon ElastiCache User Guide』にようこそ。ElastiCache は、クラウドでのメモリ内分散キャッ
シュ環境のセットアップ、管理、およびスケーリングを容易に行えるようにするウェブサービスです。
このサービスは、パフォーマンスとコスト効率に優れ、スケーラブルなキャッシュソリューションを提
供すると共に、分散キャッシュ環境のデプロイと管理に伴う複雑性を排除します。
ElastiCache を使用すると、ハードウェアをプロビジョニングしたりソフトウェアをインストールした
りしなくても、キャッシュ環境をデプロイすることができます。Memcached または Redis プロトコル
準拠キャッシュエンジンソフトウェアから選択し、ソフトウェアアップグレードとパッチ管理が
ElastiCache により実行されるようにできます。セキュリティー強化のため、ElastiCache はクラスター
へのネットワークアクセスの完全な制御を実現する Amazon Virtual Private Cloud (Amazon VPC) 環境
で実行できます。AWS マネジメントコンソール で数回クリックするだけで、ElastiCache 環境にリソー
ス (ノード、クラスター、またはリードレプリカなど) を追加し、ビジネスニーズとアプリケーション
要件を満たすことができます。
Memcached または Redis を使用する既存のアプリケーションは、ほとんど変更を加えずに ElastiCache
を使用できます。アプリケーションに必要なのは、デプロイした ElastiCache ノードのホスト名とポー
ト番号だけです。Memcached 用の ElastiCache 自動検出機能を使用すると、アプリケーションは、使
用可能なホスト名とポート番号のリストを維持しなくても、キャッシュクラスター内のすべてのノード
を特定して接続できます。このようにして、アプリケーションはクラスターのノードメンバーシップの
変更から効果的に隔離されます。
ElastiCache には、重要なプロダクションデータベースの信頼性を向上させる各種機能があります:
• キャッシュノードの障害の自動検出と復旧。
• 障害が発生したプライマリクラスターの Redis レプリケーショングループのリードレプリカへの自動
フェイルオーバー (マルチ AZ)。
• ノードとクラスターの柔軟なアベイラビリティーゾーンの配置。
• さらに、他のアマゾン ウェブ サービス (Amazon EC2、CloudWatch、CloudTrail、Amazon SNS な
ど) とも連携した、安全でパフォーマンスの高い管理対象インメモリキャッシュソリューション。
API Version 2015-02-02
1
Amazon ElastiCache ユーザーガイド
以下の資料も参照してください。
以下の資料も参照してください。
Amazon ElastiCache を使用したスケールに応じたパフォーマンス
以下の資料も参照してください。
Amazon ElastiCache を使用したスケールに応じたパフォーマンス
トピック
• ElastiCache が適している用途 (p. 2)
• Amazon ElastiCache リソース (p. 8)
• ElastiCache チュートリアルの動画 (p. 9)
• ElastiCache コンポーネントと機能 (p. 11)
• Amazon ElastiCache へのアクセス (p. 19)
• ElastiCache の管理 (p. 19)
ElastiCache が適している用途
Abstract
一般的な ElastiCache のユースケース。
最新のニュース、トップ 10 のリーダーボード、製品カタログ、またはイベントのチケットを販売でき
ます。スピードの勝負です。ウェブサイトやビジネスの成功は、コンテンツを配信するスピードに大き
く左右されます。NY Times による 2012 年の調査「For Impatient Web Users, an Eye Blink Is Just Too
Long to Wait」によると、ユーザーは競合サイト間で 250 ミリ秒(1/4 秒)の違いを認識して、遅いサ
イトよりも速度の速いサイトのほうを選びます。2007 年にアマゾンが行ったテスト「How Webpage
Load Time Is Related to Visitor Loss」では、ロード時間が 100 ミリ秒 (1/10 秒) 長くなるごとに、売上
げが 1 % 減少するとの結果が出ています。ある人物がデータを必要とする場合、ウェブページであろ
うとビジネスの意思決定にかかわるレポートであろうと、そのデータをキャッシュしておくことで、よ
り速く配信できます。可能な最も短いレイテンシーでウェブページを配信するために、ウェブページの
キャッシュ費用を負担することは、ビジネス上可能ですか。
最も頻繁にリクエストされる項目をキャッシュするべきであることは、考えるまでもなく明白です。し
かし、なぜそれほど頻繁にリクエストされる項目をキャッシュしようとしないのでしょうか。最も最適
化されたデータベースクエリまたはリモート API コールを使用しても、インメモリキャッシュからの
取得に比べれば、著しく時間がかかります。著しく時間がかかることで、顧客を他社に取られてしまう
ことを忘れないでください。
次の例で、ElastiCache を使用してアプリケーションの全体的なパフォーマンスを向上させるいくつか
の方法を説明します。
インメモリデータキャッシュ
インメモリキー値ストアの主な目的は、データのコピーに超高速 (ミリ秒以下のレイテンシー) で低コ
ストなアクセスを提供することです。ほとんどのデータストアには、頻繁にアクセスされてもほとんど
更新されることのないデータ領域があります。さらにデータベースのクエリは、キーと値のペアのキャッ
シュを検索するよりも常に時間がかかり、キーの検索にコストがかかります。データベースのクエリに
よっては、複数のテーブルにまたがるクエリや集中的な計算が必要なクエリなど、その実行に高いコス
トがかかるものもあります。このようなクエリの結果をキャッシュすることで、クエリのコストを一度
だけ支払えば、クエリを再実行することなくデータを何回でもすぐに取得できるようになります。
API Version 2015-02-02
2
Amazon ElastiCache ユーザーガイド
ゲームリーダーボード(Redis ソートリスト)
キャッシュの方法。
データをキャッシュすると決めたら、以下の要因について考慮する必要があります。
速度とコスト データベースからデータを取得するには、時間キャッシュから取得するより常に時間と
コストがかかります。データベースのクエリによっては、本質的により低速で高コストのものもありま
す。たとえば、複数のテーブルにわたって実行されるクエリは、単純な単一テーブルに対するクエリよ
りもコストが高くつきます。興味深いデータを取得するのに時間のかかるコストの高いクエリが必要と
なるのであれば、キャッシュを検討する価値があります。データを比較的単純なクエリで迅速に取得で
きる場合であっても、その他の要因によってはキャッシュを検討する価値があります。
データとアクセスパターン キャッシュするデータの決定には、データどのものとアクセスパターンを
理解することが求められます。たとえば、すぐに変化するデータやほとんどアクセスされることのない
データをキャッシュすることには意味がありません。キャッシュに有意な利点を持たせるには、ソー
シャルメディアサイトの個人プロファイルのような、比較的静的で頻繁にアクセスされるデータである
必要があります。逆にキャッシュによる速度またはコストのメリットがない場合は、データをキャッ
シュする意味はありません。たとえば、検索結果を返すウェブページをキャッシュすることは、そのよ
うなクエリとその結果はほとんど固有のものであるため、意味がありません。
古い 定義上、キャッシュされたデータは、たとえそれが特定の状況下で古いものではなくても、古い
データであることに変わりはありません。したがって、常に古いものとみなして扱う必要があります。
データがキャッシュの候補となりうるかどうかを決定する際に、古いデータに対するアプリケーション
の耐障害性を判断する必要があります。アプリケーションでは、あるコンテキストで古いデータを許容
できても、別のコンテキストでは許容できない場合もあります。たとえば、ウェブサイトで上場株式の
価格を提供している場合、価格が最大で n 分まで遅れる可能性があることが免責事項である場合、デー
タが古いことは許容されます。しかし、同じ株式をブローカーが売買するときの価格を提供する場合
は、リアルタイムのデータが必要になります。
要約すると、データをキャッシュする際には以下のことを検討します:
• また、キャッシュからの取得に比べて、時間とコストがかかります。
• 十分な頻度でアクセスされる。
• 比較的静的であるか、急速に変化する場合はデータの古さが重要な問題とならないこと。
詳細については、「キャッシュ戦略 (p. 61)」を参照してください。
ゲームリーダーボード(Redis ソートリスト)
Redis ソートセットは、計算の複雑性がアプリケーションから Redis クラスターへのリーダーボードに
関連付けられています。
ゲームのハイスコアのトップ 10 のなどのリーダーボードは計算が複雑で、大勢のプレーヤーが同時に
プレーしており、スコアが継続的に変化する場合は、とくに複雑となります。Redis ソートセットは、
一意性と要素の順番を保証します。Redis ソートセットを使用すると、ソートセットに新しい要素が追
加されるたびに リアルタイムで再ランキングが行われ、セットの適切な順位の位置にその要素が設定
されます。
API Version 2015-02-02
3
Amazon ElastiCache ユーザーガイド
メッセージング(Redis pub/sub)
Example - Redis リーダー ボード
この例では、ZADD を使用して 4 人のゲーマーとそのスコアがソートされたリストに入力されていま
す。ZREVRANGEBYSCORE コマンドは、プレーヤーをスコアの高い者から順に一覧します。次に、ZADD
を使用して既存のエントリを上書きして、June のスコアを更新します。最後に ZREVRANGEBYSCORE
が、プレーヤーをスコアの高い順にランク付けして一覧し、June のランキングが上昇したことが示さ
れます。
ZADD
ZADD
ZADD
ZADD
leaderboard
leaderboard
leaderboard
leaderboard
132 Robert
231 Sandra
32 June
381 Adam
ZREVRANGEBYSCORE leaderboard +inf -inf
1) Adam
2) Sandra
3) Robert
4) June
ZADD leaderboard 232 June
ZREVRANGEBYSCORE leaderboard +inf -inf
1) Adam
2) June
3) Sandra
4) Robert
次のコマンドは、June にすべてのプレーヤー間での自分のランクを通知します。ランク付けがゼロベー
スであるため、ZREVRANK は 2 番目の位置にいる June に対して 1 を返します。
ZREVRANK leaderboard June
1
詳細については、ソートセットの「Redis のドキュメント」を参照してください。
メッセージング(Redis pub/sub)
E メールメッセージを送信すると、1 人以上の指定された受信者にメッセージが送信されます。
publish/subscribe のパラダイムでは、メッセージをその受信者にではなく、受信者を特定しないまま特
定のチャンネルに送信します。メッセージの受信者は、そのチャネルに登録している人物です。たとえ
ば、お客様が news.sports.golf チャネルに登録しているとします。news.sports.golf へのすべての登録
者は、news.sports.golf チャンネルに発行されるメッセージをすべて受信します。
Redis の publish/subscribe 機能は、キー空間とは無関係です。したがって、あらゆるレベルで干渉され
ることはありません。
登録中
チャンネルに発行されるメッセージを受信するには、チャンネルに登録する必要があります。1 つの
チャンネル、複数の指定されたチャンネル、またはパターンに一致するすべてのチャンネルに登録でき
ます。登録をキャンセルするには、登録時に指定したチャンネルから、またはパターンマッチングを使
用して登録した場合はパターンに一致するすべてのチャンネルから登録解除します。
API Version 2015-02-02
4
Amazon ElastiCache ユーザーガイド
メッセージング(Redis pub/sub)
Example - 1 つのチャンネルへの登録
1 つのチャンネルに登録するには、登録するチャンネルを指定して SUBSCRIBE コマンドを使用しま
す。以下の例では、クライアントは news.sports.golf チャンネルに登録します。
SUBSCRIBE news.sports.golf
しばらくすると、クライアントは、登録解除するチャンネルを指定した UNSUBSCRIBE コマンドを使
用して、チャンネルへの登録をキャンセルします。
UNSUBSCRIBE news.sports.golf
Example - 複数の指定されたチャンネルへの登録
複数の指定されたチャンネルに登録するには、SUBSCRIBE コマンドを使用してチャンネルに登録しま
す。以下の例では、クライアントは news.sports.golf、news.sports.soccer、news.sports.skiing のすべ
てのチャンネルに登録します。
SUBSCRIBE news.sports.golf news.sports.soccer news.sports.skiing
特定のチャンネルへの登録をキャンセルするには、UNSUBSCRIBE コマンドを使用して、登録解除す
るチャンネルを指定します。
UNSUBSCRIBE news.sports.golf
複数のチャンネルへの登録をキャンセルするには、UNSUBSCRIBE コマンドを使用して、登録解除す
るチャンネルを指定します。
UNSUBSCRIBE news.sports.golf news.sports.soccer
すべての登録をキャンセルするには、各チャンネルを指定して UNSUBSCRIBE を使用するか、いずれ
のチャンネルも指定せずに UNSUBSCRIBE を使用します。
UNSUBSCRIBE news.sports.golf news.sports.soccer news.sports.skiing
UNSUBSCRIBE
API Version 2015-02-02
5
Amazon ElastiCache ユーザーガイド
推奨データ(Redis カウンターとハッシュ)
Example - パターンマッチングを使用した登録
クライアントは PSUBSCRIBE コマンドを使用して、パターンに一致するすべてのチャンネルに登録で
きます。
以下の例では、クライアントはすべてのチャンネルに登録します。SUBSCRIBE 使用してすべてのス
ポーツチャンネルを個々に登録するのではなく、PSUBSCRIBE コマンドでパターンマッチングを使用し
ます。
PSUBSCRIBE news.sports.*
これらのチャンネルへの登録をキャンセルするには、PUNSUBSCRIBE コマンドを使用します。
PUNSUBSCRIBE news.sports.*
Note
[P]SUBSCRIBE コマンドに送られるチャンネルの文字列と、[P]UNSUBSCRIBE コマンドに送
られるチャンネルの文字列は一致している必要があります。news.* に PSUBSCRIBE して、
news.sports.* から PUNSUBSCRIBE したり、news.sports.golf から UNSUBSCRIBE したりは
できません。
発行
チャンネルへのすべての登録者にメッセージを送信するには、PUBLISH コマンドを使用してチャンネ
ルとメッセージを指定します。以下の例では、"It's Saturday and sunny. I'm headed to the links." とい
うメッセージをnews.sports.golf チャンネルに発行しています。
PUBLISH news.sports.golf "It's Saturday and sunny. I'm headed to the links."
クライアントは、登録しているチャンネルに発行することはできません。
詳細については、『Redis ドキュメント』の「Pub/Sub」を参照してください。
推奨データ(Redis カウンターとハッシュ)
Redis カウンターとハッシュは、推奨のコンパイルを簡単にします。ユーザーが製品を「好き」になる
たびに、項目: productID: 好みに 1 を加えます。ユーザーが製品を「嫌い」になるたびに、項目: productID:
嫌いに 1 を加えます。Redis ハッシュを使用して、その製品を好きなまたは嫌いなユーザー全員のリス
トを保持できます。
Example - 好き & 嫌い
INCR
HSET
INCR
HSET
item:38923:likes
item:38923:ratings Susan 1
item:38923:dislikes
item:38923:ratings Tommy -1
API Version 2015-02-02
6
Amazon ElastiCache ユーザーガイド
その他の Redis の用途
その他の Redis の用途
Salvatore Sanfilippo による記事 (How to take advantage of Redis just adding it to your stack) で、数多
くのよく知られたデータベースが、Redis を使用して問題を簡単に解決している方法が紹介されてお
り、データベースからのロードが不要になり、パフォーマンスが向上することが説明されています。
お客様の声
「お客様の声」を参照して、airbnb、PBS、esri、その他の企業が、Amazon ElastiCache を活用して自
社の顧客体験を向上させながら成長しているのをご覧ください。
API Version 2015-02-02
7
Amazon ElastiCache ユーザーガイド
ElastiCache リソース
Amazon ElastiCache リソース
以下のセクションを読んでから開始することをお勧めします。また、必要に応じて随時参照してくださ
い。
• サービスのハイライトと価格設定 – 製品詳細ページには、ElastiCache の全般的な製品概要、サービ
スのハイライト、価格設定が掲載されています。
• ElastiCache 動画 –「ElastiCache チュートリアルの動画 (p. 9)」セクションでは Amazon ElastiCache
が紹介されており、ElastiCache の一般的ユースケースと、ElastiCache を使用してレイテンシーを
減らしアプリケーションのスループットを向上させる方法のデモがあります。
• はじめに –「Amazon ElastiCache の使用開始 (p. 21)」セクションには、キャッシュクラスターの作
成、キャッシュクラスターへのアクセス認可、キャッシュノードへの接続、キャッシュクラスターの
削除のプロセスを実行する例が掲載されています。
• スケールに応じたパフォーマンス – Amazon ElastiCache を使用したスケールに応じたパフォーマン
ス ホワイトペーパーでは、アプリケーションがスケールに応じて適切に機能するためのキャッシュ
戦略をご紹介しています。
前述のセクションを完了したら、これらのセクションを参照してください。
• キャッシュエンジンとバージョンの選択 (p. 32)
ElastiCache では、— Memcached と Redis の 2 つのエンジンがサポートされます。このトピックで
は、どのエンジンがお客様のシナリオに最良であるかを判断するのに役立ちます。
• ノードサイズの選択 (p. 68)
キャッシュは、キャッシュしたいすべてのデータに対応できるだけの十分な大きさにします。同時
に、必要以上にキャッシュを大きくしたくはないものです。このトピックでは、最良のノードのサイ
ズを選択するのに役立ちます。
• Amazon ElastiCache の実装のベストプラクティス (p. 52)
クラスターの効率に影響を及ぼす可能性がある問題を特定し、対処します。
AWS CLI を使用する場合は、以下のドキュメントが作業を始めるのに役立ちます。
• AWS コマンドラインインターフェイスのドキュメント
このセクションには、AWS CLI のダウンロード、システムでの CLI の実行、AWS 認証情報の指定に
関する情報が記載されています。
• AWS ElastiCache の CLI ドキュメント
これは、構文と例など、ElastiCache 用 AWS CLI のコマンド に関するすべてが掲載された別個のド
キュメントです。
一般に使用されているさまざまなプログラミング言語を使用して、ElastiCache API を活用するアプリ
ケーションプログラムを記述できます。次にいくつかのリソースを示します。
• Amazon Web Services 用のツール
Amazon Web Services には、ElastiCache をサポートする多数のソフトウェア開発キット(SDK)が
用意されています。ElastiCache のコードは、Java、.NET、PHP、Ruby、および他の言語で記述で
きます。これらの SDK では、リクエストが ElastiCache の形式に設定されて、レスポンスが解析さ
れ、再試行ロジックとエラー処理が提供されるため、アプリケーション開発が大幅に簡略化されま
す。
• ElastiCache API の使用 (p. 297)
API Version 2015-02-02
8
Amazon ElastiCache ユーザーガイド
チュートリアルの動画
AWS SDK を使用しない場合、クエリ API を使用して ElastiCache を直接操作することができます。
このセクションには、リクエストを作成および認証してレスポンスを処理する際のトラブルシュー
ティングのヒントと情報が掲載されています。
• Amazon ElastiCache API Reference
これは、構文と例など、ElastiCache API 操作に関するすべてが掲載された別個のドキュメントです。
ElastiCache チュートリアルの動画
このセクションには、Amazon ElastiCache の基本的な概念と高度な概念を理解できるチュートリアル
の動画が含まれています。AWS のトレーニングについては、「AWS トレーニングと認定」を参照して
ください。
入門動画チュートリアル
Amazon ElastiCache に関する入門者向け動画チュートリアルは、以下を参照してください。
トピック
• Amazon ElastiCache のご紹介 (p. 9)
• DAT204—AWS NoSQL サービスでのスケーラブルなアプリケーションの構築(re:Invent
2015) (p. 9)
• DAT207 — Amazon ElastiCache によるアプリケーションパフォーマンスの向上(AWS re:Invent
2013) (p. 9)
Amazon ElastiCache のご紹介
このチュートリアルでは、主要な Amazon ElastiCache の概念について学習して、Amazon クラウドで
の ElastiCache クラスターの作成と起動のデモを確認し、無料の Qwik Labs で演習を行います。
Amazon ElastiCache のご紹介。
DAT204—AWS NoSQL サービスでのスケーラブルなアプリケー
ションの構築(re:Invent 2015)
このセッションでは、NoSQL データベースの利点について説明し、AWS が提供する主な NoSQL サー
ビスである Amazon DynamoDB と Amazon ElastiCache の概要を確認します。その後、当社の主要な
お客様である Expedia と Mapbox を取り上げ、ユースケースやアーキテクト上の課題、さらには AWS
NoSQL サービスを利用した対処方法について、設計パターンやベストプラクティスの情報を交えなが
ら確認します。このセッションを通じて、NoSQL とその強力な機能についての理解を深め、データベー
ス関連の課題に自信を持って対処できるようになります。
DAT204—AWS NoSQL サービスでのスケーラブルなアプリケーションの構築(re:Invent 2015)
DAT207 — Amazon ElastiCache によるアプリケーションパ
フォーマンスの向上(AWS re:Invent 2013)
このチュートリアルでは、Amazon ElastiCache を使用して Memcached または Redis 互換インメモリ
キャッシングシステムを簡単にデプロイして、アプリケーションパフォーマンスを高める方法について
学習できます。Amazon ElastiCache を使用してアプリケーションのレイテンシーを改善し、データベー
スサーバーの負荷を下げる方法について説明します。また、アプリケーションが増加しても管理とス
ケーリングが簡単なキャッシュ Layer を構築する方法も示します。このセッション中、キャッシュを有
API Version 2015-02-02
9
Amazon ElastiCache ユーザーガイド
上級者向け動画チュートリアル
効にすることによりメリットが得られるさまざまなシナリオとユースケースについて調べ、Amazon
ElastiCache に用意されている機能について説明します。
DAT207 - Amazon ElastiCache によるアプリケーションパフォーマンスの向上(re:Invent 2013)
上級者向け動画チュートリアル
Amazon ElastiCache に関する上級者向けチュートリアル動画は、以下を参照してください。
トピック
• DAT407 — Amazon ElastiCache の詳細(re:Invent 2015) (p. 10)
• SDD402 — Amazon ElastiCache の詳細(re:Invent 2014) (p. 10)
• DAT307 — Amazon ElastiCache のアーキテクチャおよびデザインパターンの詳細(re:Invent
2013) (p. 10)
DAT407 — Amazon ElastiCache の詳細(re:Invent 2015)
ElastiCache の設計やアーキテクチャを理解するために、その裏側をのぞいてみましょう。まず、
Memcached や Redis の一般的な設計パターンを示すと共に、お客様がこれらをメモリ内の操作でどの
ように使用し、アプリケーションのレイテンシーやスループットをどのように向上させてきたかを説明
します。このセッションでは、Amazon ElastiCache に関連するベストプラクティス、設計パターン、
アンチパターンについて概説します。
DAT407 — Amazon ElastiCache の詳細(re:Invent 2015)
SDD402 — Amazon ElastiCache の詳細(re:Invent 2014)
このチュートリアルでは、一般的なキャッシュのユースケース、Memcached エンジンと Redis エンジ
ン、ニーズに合うエンジンを判断するのに役立つパターン、整合性のあるハッシュ、高速でスケーラブ
ルなアプリケーションを構築する他の手段について調べます。Adobe が Amazon ElastiCache を使用し
てカスタマーエクスペリエンスを高め、ビジネスを拡大している方法について、Adobe のプリンシパ
ルサイエンティストである Frank Wiebe 氏が詳しく説明します。
DAT402 — Amazon ElastiCache の詳細(re:Invent 2014)
DAT307 — Amazon ElastiCache のアーキテクチャおよびデザ
インパターンの詳細(re:Invent 2013)
このチュートリアルでは、キャッシュ、キャッシュ戦略、拡張、モニタリングについて検討します。ま
た、Memcached エンジンと Redis エンジンの比較も行います。このセッション中、Amazon ElastiCache
に関連するベストプラクティスとデザインパターンも確認します。
DAT307 - Amazon ElastiCache のアーキテクチャおよびデザインパターンの詳細(AWS re:Invent
2013)。
API Version 2015-02-02
10
Amazon ElastiCache ユーザーガイド
コンポーネントと機能
ElastiCache コンポーネントと機能
Abstract
キャッシュノード、キャッシュクラスター、セキュリティ設定、レプリケーショングループを含むデータ ElastiCache
の用語について説明します。
このセクションのトピックは、Amazon ElastiCache デプロイメントの主なコンポーネントの概要です。
トピック
• ElastiCache ノード (p. 11)
• ElastiCache クラスター (p. 12)
• ElastiCache レプリケーショングループ (Redis) (p. 14)
• リージョンとアベイラビリティーゾーン (p. 15)
•
•
•
•
•
•
•
ElastiCache エンドポイント (p. 15)
ElastiCache パラメータグループ (p. 16)
ElastiCache のセキュリティ (p. 16)
ElastiCache セキュリティグループ (p. 16)
ElastiCache サブネットグループ (p. 17)
ElastiCache バックアップ、a.k.a. スナップショット (Redis) (p. 17)
ElastiCache イベント (p. 17)
ElastiCache ノード
ノードとは、ElastiCache のデプロイにおける最小の構成要素です。ノードは他のノードから分離する
か、一定の関係を設定できます。
ノードは、安全なネットワークに接続された RAM の固定サイズの断片です。各ノードでは、クラス
ターの作成時に選択された項目に応じて、Memcached または Redis のインスタンスが実行されます。
異なるインスタンスタイプにノードのクラスターを拡大または縮小する必要がある場合は、新しいノー
ドインスタンスタイプで新しいクラスターを作成する必要があります。
従量課金制ノードを購入して、ノードの使用分に対してのみ料金を支払うか、大幅な割引価格でリザー
ブドノードを購入できます。使用率が高い場合は、リザーブドノードを購入するほうがコストを削減で
きます。クラスターを常に使用しており、急激な使用率の増加には一時的にノードを追加して対処して
いる場合は、多数のリザーブドノードを購入してほとんどの時間実行することができます。一時的に
ノードを追加する必要がある場合は従量制料金で購入できます。リザーブドノードの詳細については、
「ElastiCache リザーブドノード (p. 70)」を参照してください。
クラスター内の各ノードは同じインスタンスタイプで、同じキャッシュエンジンを実行します。各キャッ
シュノードはそれぞれ Domain Name Service(DNS)名とポートを持っています。それぞれ関連付け
られている異なるメモリ量で、複数のタイプのキャッシュノードがサポートされています。サポートさ
れるインスタンスタイプノードのリストについては、「サポートされているノードの種類 (p. 80)」を
参照してください。
Memcached エンジンでは自動検出がサポートされます。– 自動検出は、クライアントプログラムが、
キャッシュクラスター内のすべてのノードを識別し、それらのすべてのノードへの接続を開始して維持
する機能です。自動検出を使用すると、アプリケーションは個々のノードに手動で接続する必要があり
ません。その代わり、アプリケーションは設定エンドポイントに接続します。設定エンドポイントの
DNS エントリには、各キャッシュノードエンドポイントの CNAME エントリが含まれています。した
がって、設定エンドポイントに接続することによって、アプリケーションはクラスター内のすべての
ノードについてすぐに知ることができ、すべてのノードに接続できます。アプリケーションで個々の
API Version 2015-02-02
11
Amazon ElastiCache ユーザーガイド
クラスター
キャッシュノードエンドポイントをハードコードする必要はありません。自動検出の詳細については、
「ノードの自動検出(Memcached) (p. 84)」を参照してください。
ノードの詳細については、「ElastiCache ノード (p. 67)」を参照してください。
ElastiCache クラスター
クラスターは、単一または複数ノードの論理グループです。
Memcached を実行しクラスターに複数のノードがある場合は、ノードで複数のアベイラビリティー
ゾーンを配置することにより、クラスターの耐障害性を向上できます。
Redis を実行している場合、クラスターは常に単一ノードとなります。複数のクラスターレプリケー
ショングループを作成して異なるアベイラビリティーゾーン内にクラスターを配置することで、耐障害
性を向上できます。
クラスターを対象とした多くの ElastiCache オペレーションがあります。
•
•
•
•
•
•
•
クラスターの作成
クラスターの変更
Redis クラスターのスナップショットの作成
クラスターの削除
クラスターのエレメントの表示
Redis レプリケーションのグループへのクラスターの追加または削除
クラスター間で送受信されるコスト配分タグの追加または削除
詳細については、次の関連トピックを参照してください。
• ElastiCache クラスター (p. 96)
クラスターおよびクラスターオペレーションに関する情報。
• AWS サービスの制限: Amazon ElastiCache
ノードまたはクラスターの最大数など、ElastiCache の制限についての情報。
• 障害の軽減 (p. 55)
クラスターおよびレプリケーショングループの耐障害性向上に関する情報。
一般的なクラスターの設定
選択したエンジンによって、クラスター設定は異なります。Memcached は、1 つのリージョンのお客
様あたり最大 50 のノードと、1 ~ 20 のノードを持つクラスターをサポートします。Memcached クラ
スターのノードにデータを分割することができます。Redis は 1 つのリージョンのお客様あたり最大で
50 のクラスターをサポートしており、各クラスターには単一のノードと 2 ~ 6 個のレプリケーション
グループがあります。複数の Redis クラスター間でデータを分割することはできません。これらの制限
を超過する必要がある場合は、Amazon ElastiCache キャッシュノードリクエストフォームを使用して
リクエストを作成します。
以下は、Memcached エンジンと Redis エンジンの一般的なクラスター設定です。
Memcached クラスター
Memcached エンジンを実行している場合、クラスターは 1 ~ 20 個のノードを持つことができます。
データベースを水平的にノード間で分割することができます。アプリケーションが各ノードに読み書き
します。詳細については、「ノードの自動検出(Memcached) (p. 84)」を参照してください。
API Version 2015-02-02
12
Amazon ElastiCache ユーザーガイド
クラスター
耐障害性を改善するために、さまざまなアベイラビリティーゾーンに Memcached ノードを配置しま
す。このようにすると、1 つのアベイラビリティーゾーンで発生した障害がクラスター全体とアプリ
ケーションに与える影響を最小限できます。詳細については、「障害の軽減 (p. 55)」を参照してくだ
さい。
Memcached クラスターの需要の変化に合わせて、ノードの追加や削除で規模を拡大したり縮小したり
します。また、新しいノードにまたがってデータを再分割します。データを分割するときは、整合性の
あるハッシュを使用することをお勧めします。整合性のあるハッシュの詳細については、「効率的な負
荷分散のための ElastiCache クライアントの設定 (p. 58)」を参照してください。
前記の Memcached クラスターの図は、3 個のノードがあるクラスターを示しています。Memcached
クラスターでは、1 個から 20 までのノードを設定できます。ElastiCache の制限の詳細については、
「AWS サービスの制限」(ElastiCache 用)を参照してください。これらの制限を超過する必要があ
る場合は、Amazon ElastiCache キャッシュノードリクエストフォームを使用して、リクエストを作成
します。
Note
現在複数ノード間でのデータの分割は、Memcached を実行するキャッシュクラスターでのみ
サポートされています。
Redis クラスター
Redis クラスターは、単一のノードで構成されます。Redis クラスター内のノードには、すべてのキャッ
シュデータがあります。Redis はデータの水平的な分割をサポートしていません。
耐障害性を改善するために、Redis レプリケーショングループを使用してマルチ AZ と自動フェイル
オーバーを有効にすることをお勧めします。詳細については、「障害の軽減 (p. 55)」を参照してくだ
さい。
Redis クラスターの需要の変化に応じて、別のノードインスタンスタイプにクラスターを移動すること
で、クラスターを拡張または縮小できます。アプリケーションの読み取り量が多い場合は、Redis レプ
リケーショングループで複数の読み取り専用のレプリカを使用することをお勧めします。クラスター
ノードで読み取りを適切な数のクラスターに分散させることができます。
Note
ElastiCache は、現在動的に変化するクラスターのノードインスタンスタイプをサポートして
いません。縮小 / 拡張の詳細については、「スケーリングの拡張 / 縮小: クラスターのノードイ
ンスタンスタイプの変更 (p. 129)」を参照してください。
API Version 2015-02-02
13
Amazon ElastiCache ユーザーガイド
レプリケーショングループ
ElastiCache レプリケーショングループ (Redis)
レプリケーショングループは、Redis クラスターの集合であり、1 個の読み書き可能なプライマリクラ
スターと、最大 5 個のリードレプリカと呼ばれる読み取り専用セカンダリクラスターで構成されます。
各レプリカには、プライマリクラスターのデータのコピーが保持され、非同期レプリケーション機能を
使用してプライマリクラスターとの同期を保ちます。アプリケーションは、レプリケーショングループ
のどのクラスターからでも読み込みことができますが、書き込むことができるのはプライマリクラス
ターのみになります。リードレプリカは、読み取りを複数のクラスターに分散させることで拡張できま
す。リードレプリカは、キャッシュデータの複数のコピーを維持することで、耐障害性が向上します。
複数のアベイラビリティーゾーンにリードレプリカを配置することで、耐障害性が向上します。耐障害
性の詳細については、「障害の軽減 (p. 55)」を参照してください。
前記の図は、プライマリクラスターの読み取り /書き込みと、2 つの読み取り専用のレプリカによる
Redis レプリケーショングループを示します。
Note
現時点では、レプリケーショングループは、Redis を実行しているキャッシュクラスターでの
みサポートされます。
現在、Redis エンジン実行時の複数のクラスター間でのデータの分割はサポートされていませ
ん。
レプリケーショングループを使用して Amazon ElastiCache の Redis ソリューションをスケールし、大
量の読み込みを行うアプリケーションを処理したり、同じキャッシュから同時に読み込みを実行する多
数のクライアントをサポートしたりすることができます。
レプリケーショングループのすべてのクラスターは、同じリージョンに存在する必要があります。ただ
し、そのリージョン内の複数のアベイラビリティーゾーンにリードレプリカをプロビジョニングできま
す。レプリケーショングループにリードレプリカを追加すると、プライマリキャッシュクラスターから
すべてのデータがリードレプリカにコピーされます。その時点から、データがプライマリに書き込まれ
るときには常に、変更が非同期的にすべてのリードレプリカに反映されます。アプリケーションは、
リードレプリカに接続してキャッシュのデータを読み込むことができます。キャッシュにデータを書き
込むには、アプリケーションはプライマリクラスターに接続して読み取り / 書き込みを行う必要があり
ます。
レプリケーショングループ内のノードのロールを変更し、プライマリノードといずれかのレプリカの
ロールを交換することができます。この作業は、パフォーマンスチューニングの理由で実行することが
あります。たとえば、書き込みアクティビティが多いウェブアプリケーションでは、ネットワークレイ
API Version 2015-02-02
14
Amazon ElastiCache ユーザーガイド
リージョンとアベイラビリティーゾーン
テンシーが最も低いノードを選択することができます。詳細については、「リードレプリカをプライマ
リに昇格させる (p. 164)」を参照してください。
プライマリクラスターまたはリードレプリカクラスターが予期せずに終了するか障害が発生した場合、
データが複数のクラスターで複製されているため、レプリケーショングループは潜在的なデータの損失
から保護されます。信頼性を高め、より迅速な復旧を可能にするため、レプリケーショングループで異
なるアベイラビリティーゾーンに 1 つ以上のリードレプリカを作成し、AOF を使用する代わりにレプ
リケーショングループで自動フェイルオーバーによるマルチ AZ を有効にすることをお勧めします。マ
ルチ AZ を有効にしたレプリケーショングループでは、AOF は無効になります。詳細については、「マ
ルチ AZ と自動フェイルオーバーをサポートするレプリケーショングループ (Redis) (p. 134)」を参照し
てください。
AOF は cache.t1.micro タイプのキャッシュノードではサポートされません。AOF とマルチ AZ の
詳細については、「障害の軽減 (p. 55)」を参照してください。
自動フェイルオーバー機能を持つマルチ AZ は Redis バージョン 2.6.8 以降でのみサポートされます。
マルチ AZ は、T1 および T2 ノードタイプではサポートされません。
リージョンとアベイラビリティーゾーン
Amazon ElastiCache は世界中の複数のリージョンで利用でき、ビジネス要件に合った場所で ElastiCache
クラスターを起動できます。たとえば、顧客に最も近いリージョンで起動する場合や、特定の法的な要
件を満たす必要がある場合などです。
デフォルトでは、AWS SDK、AWS CLI、ElastiCache API、および ElastiCache コンソールは、米国西
部 – オレゴンリージョンを参照しています。ElastiCache が他のリージョンでも利用可能になると、そ
のリージョンのエンドポイントもアプリケーションの HTTP リクエスト、AWS SDK、AWS CLI、およ
びコンソールで利用できるようになります。
各リージョンは、他のリージョンと完全に分離されるように設計されています。各リージョンには複数
のアベイラビリティーゾーンがあります。別のアベイラビリティーゾーンでノードを起動して、最大限
の耐障害性を実現できます。リージョンとアベイラビリティーゾーンの詳細については、「リージョン
とアベイラビリティーゾーンの選択 (p. 39)」を参照してください。
ElastiCache でサポートされているリージョンおよびそのエンドポイントについては、「サポートされ
ているリージョンおよびエンドポイント (p. 40)」を参照してください。
ElastiCache エンドポイント
エンドポイントは、アプリケーションが ElastiCache ノードまたはクラスターに接続するのに使用する
一意のアドレスです。
Memcached のエンドポイント
Memcached クラスターの各ノードには、独自のエンドポイントがあります。クラスターには、設定エ
ンドポイントと呼ばれるエンドポイントもあります。自動検出を有効にして設定エンドポイントに接続
した場合、クラスターからノードの追加や削除を行った後であっても、アプリケーションは自動的に各
ノードエンドポイントを検出します。
Redis クラスターのエンドポイント
スタンドアロンの Redis クラスターのエンドポイントは、読み取りおよび書き込みのためにクラスター
に接続するのに使用されます。
API Version 2015-02-02
15
Amazon ElastiCache ユーザーガイド
パラメータグループ
Redis レプリケーショングループのエンドポイント
Redis レプリケーショングループには、2 つのタイプのエンドポイントがあります。プライマリエンド
ポイントは、特定のクラスターのプライマリロールが変更された場合でも、常にそのレプリケーション
グループのプライマリクラスターに接続します。レプリケーショングループに対するすべての書き込み
で、プライマリエンドポイントを使用します。
レプリケーショングループの読み込みエンドポイントは、常にそのレプリケーショングループの特定の
クラスターをポイントします。リードレプリカを追加または削除した場合は、常にアプリケーションの
関連する読み込みエンドポイントを更新する必要があります。
詳細については、「ElastiCache エンドポイントの検索 (p. 42)」を参照してください。
ElastiCache パラメータグループ
キャッシュパラメータグループは、サポートされるエンジンソフトウェアのランタイム設定を管理する
簡単な方法です。Memcached と Redis には、メモリの使用状況、削除のポリシー、項目サイズなどを
制御する多くのパラメータがあります。ElastiCache パラメータグループは、一連の Memcached また
は Redis 固有のパラメータで、クラスターに適用してそのクラスター内のすべてのノードで正確に同じ
設定が行われることを保証します。
サポートされているパラメータのリスト、デフォルト値、変更可能なパラメータについては、
DescribeEngineDefaultParameters (describe-engine-default-parameters) を参照してください。
ElastiCache パラメータグループの詳細については、「パラメータとパラメータグループ (p. 198)」を参
照してください。
ElastiCache のセキュリティ
セキュリティ強化のため、ElastiCache ノードのアクセスは、ホワイトリストに登録された Amazon
EC2 インスタンスで実行されているアプリケーションに制限されます。キャッシュサブネットグルー
プまたはセキュリティグループを使用することで、クラスターにアクセスできる Amazon EC2 インス
タンスを制御できます。
デフォルトでは、すべての新しい ElastiCache クラスターが Amazon Virtual Private Cloud (Amazon
VPC) 環境で起動されます。サブネットグループを使用して、特定のサブネットで実行されている
Amazon EC2 インスタンスからのクラスターアクセスを許可できます。クラスターを Amazon VPC の
外部で実行することを選択した場合、セキュリティグループを作成して、特定の Amazon EC2 セキュ
リティグループ内に実行されている Amazon EC2 インスタンスを承認できます。
ElastiCache セキュリティグループ
Note
ElastiCache セキュリティグループは、Amazon Virtual Private Cloud (Amazon VPC) 環境で実
行されていないクラスターにのみ適用されます。ElastiCache ノードを Amazon VPC で実行し
ている場合は、Amazon VPC セキュリティグループでキャッシュクラスターへのアクセスを制
御します。これは、ElastiCache セキュリティグループとは異なります。
ElastiCache を Amazon VPC で使用する方法については、「Amazon Virtual Private Cloud
(Amazon VPC) を ElastiCache で使用する (p. 242)」を参照してください。
ElastiCache を使用すると、セキュリティグループを使用して、クラスターへのアクセスを制御するこ
とができます。セキュリティグループは、クラスターへのネットワークアクセスをコントロールする
ファイアウォールのように動作します。デフォルトでは、クラスターへのネットワークアクセスはオフ
になっています。アプリケーションからクラスターにアクセスできるようにするには、特定の Amazon
API Version 2015-02-02
16
Amazon ElastiCache ユーザーガイド
サブネットグループ
EC2 セキュリティグループのホストからのアクセスを明示的に有効にする必要があります。入口ルー
ルが設定されると、同じルールがそのセキュリティグループに関連するすべてのクラスターに適用され
ます。
クラスターへのネットワークアクセスを許可するには、セキュリティグループを作成し、
AuthorizeCacheSecurityGroupIngress API または authorize-cache-security-group-ingress AWS CLI コ
マンドを使用して、必要な Amazon EC2 セキュリティグループを認証します (その結果として、許可さ
れている Amazon EC2 インスタンスを指定します)。セキュリティグループは、作成時にクラスターに
関連付けるか、ElastiCache マネージメントコンソールまたは ModifyCacheCluster または
(modify-cache-cluster) ElastiCache 用 AWS CLI のコマンド を使用して、クラスターに関連付けること
ができます。
Important
IP レンジベースのアクセスコントロールは現在、クラスターでは有効になっていません。クラ
スターのすべてのクライアントは、Amazon EC2 ネットワーク内にある必要があり、前に説明
したように、セキュリティグループによって許可されている必要があります。
セキュリティグループの詳細については、キャッシュセキュリティグループ [EC2-Classic] (p. 188) を参
照してください。
ElastiCache サブネットグループ
サブネットグループは、Amazon Virtual Private Cloud (VPC) 環境で実行しているクラスターに対して
指定できるサブネット (通常はプライベート) の集合です。
Amazon VPC でクラスターを作成する場合は、キャッシュサブネットグループを指定する必要があり
ます。ElastiCache はそのキャッシュサブネットグループを使用して、そのサブネット内でキャッシュ
ノードに関連付けるサブネットおよび IP アドレスを選択します。
Amazon VPC 環境でのキャッシュサブネットグループの使用方法の詳細については、「Amazon Virtual
Private Cloud (Amazon VPC) を ElastiCache で使用する (p. 242), ステップ 4: アクセスを許可する (p. 23)」
および「サブネットおよびサブネットグループ (p. 232)」を参照してください。
ElastiCache バックアップ、a.k.a. スナップショット
(Redis)
バックアップは、Redis クラスターのポイントインタイムコピーです。バックアップは、既存のクラス
ターを復元するか、または新しいクラスターをシードするのに使用できます。バックアップは、クラス
ターのすべてのデータといくつかのメタデータで構成されます。バックアップは Memcached エンジン
ではサポートされません。
ポイントインタイムバックアップを保持するために Redis がバックアップを作成している間、バック
アップされているクラスターのデータとは別に、プロセス分岐とクラスターへのすべての書き込みが利
用可能なメモリに記録されます。このため、これらの書き込み対応するための十分なメモリが「追加」
で必要となります。ノードタイプを選択する場合、Redis を使用する場合はこのことに注意します。
Redis デプロイ用のノードタイプの選択については、「Redis スナップショットを作成するための十分
なメモリがあることの確認 (p. 52)」を参照してください。
詳細については、「ElastiCache バックアップと復元(Redis) (p. 168)」を参照してください。
ElastiCache イベント
ノード追加の失敗、ノード追加の成功、セキュリティグループの変更などのような重要なイベントが
キャッシュクラスターで発生すると、ElastiCache は特定の Amazon SNS トピックに通知を送信しま
API Version 2015-02-02
17
Amazon ElastiCache ユーザーガイド
イベント
す。主要イベントをモニタリングすることで、クラスターの現在の状態を知り、イベントに基づいて是
正措置を取ることができます。
ElastiCache イベントの詳細については、「ElastiCache イベントのモニタリング (p. 277)」を参照して
ください。
API Version 2015-02-02
18
Amazon ElastiCache ユーザーガイド
ElastiCache へのアクセス
Amazon ElastiCache へのアクセス
Abstract
AWS マネジメントコンソール、AWS コマンドラインインターフェイスを使用するか、SDK を使用してプログラ
ムにより、ElastiCache にアクセスして管理します。
Amazon ElastiCache インスタンスは、Amazon EC2 インスタンス経由でのみアクセスできます。
ElastiCache インスタンスを Amazon Virtual Private Cloud (Amazon VPC) で起動する場合、Amazon
EC2 インスタンスと ElastiCache インスタンスは同じ Amazon VPC にある必要があります。ElastiCache
インスタンスを EC2 Classic で起動した場合、そのインスタンスに関連付けられた Amazon EC2 セキュ
リティグループに、キャッシュセキュリティグループへのアクセスを許可することで、EC2 インスタ
ンスにクラスターへのアクセスを許可することができます。デフォルトでは、クラスターへのアクセス
はそのクラスターを起動したアカウントに制限されています。
Amazon EC2 にクラスターへのアクセス許可を付与する方法の詳細については、「ステップ 4: アクセ
スを許可する (p. 23)」と「AWS 外部からの ElastiCache リソースへのアクセス (p. 261)」を参照してく
ださい。
ElastiCache の管理
ElastiCache 管理の方法
Amazon EC2 インスタンスに ElastiCache クラスターへのアクセスを許可した場合、ElastiCache クラ
スターを管理するには、AWS マネジメントコンソール、AWS ElastiCache CLI、ElastiCache 用 AWS
SDK、および ElastiCache API の 4 つの方法があります。
ElastiCache の管理 AWS マネジメントコンソールの使用
AWS マネジメントコンソール は、Amazon ElastiCache を管理する最も簡単な方法です。このコンソー
ルを使用すると、コードを記述しなくても、キャッシュクラスターの作成、キャッシュノードの追加と
削除、他の管理タスクを実行することができます。コンソールには、CloudWatch からのキャッシュ
ノードパフォーマンスグラフも表示され、キャッシュエンジンアクティビティ、メモリと CPU の使用
率などのメトリックスが示されます。詳細については、この「ユーザーガイド」の特定のトピックを参
照してください。
ElastiCache の管理 AWS CLI の使用
AWS ElastiCache コマンドラインインターフェイス (CLI) を使用することもできます。CLI では、キャッ
シュクラスターの起動や停止など、1 つずつ行う操作を簡単に実行できます。さらに、選択したスクリ
プト言語から ElastiCache 用 AWS CLI のコマンド を呼び出して、繰り返し行うタスクを自動化するこ
ともできます。CLI の詳細については、ユーザーガイドと CLI リファレンス(AWS コマンドラインイ
ンターフェイスのドキュメント)を参照してください。
ElastiCache の管理 AWS SDK の使用
アプリケーションから ElastiCache にアクセスする場合、AWS Software Development Kit(SDK)のい
ずれかを使用できます。SDK は、ElastiCache API 呼び出しをラップし、ElastiCache API の低レベル
の詳細からアプリケーションを隔離します。開発者が認証情報を指定すれば、SDK ライブラリによっ
て認証とリクエスト署名の処理が自動的に行われます。AWS SDK の使用の詳細については、「Amazon
Web Services 用のツール」を参照してください。
API Version 2015-02-02
19
Amazon ElastiCache ユーザーガイド
ElastiCache 管理の方法
ElastiCache の管理 ElastiCache API の使用
さらに、ElastiCache ウェブサービス API に対して直接アプリケーションコードを記述することもでき
ます。API を使用する場合、HTTP リクエストの構築と認証、ElastiCache からの結果の解析、エラー
の処理に必要なコードを記述する必要があります。この API の詳細については、「ElastiCache API の
使用 (p. 297)」を参照してください。
API Version 2015-02-02
20
Amazon ElastiCache ユーザーガイド
ステップ 1: AWS アカウントの作成
Amazon ElastiCache の使用開始
Abstract
以下の手順に従ってクラスターを起動することによって、ElastiCache の使用を開始します。
独自の AWS アカウントを作成するにあたって、このセクションのトピックでは、アクセスの付与、接
続、そして最終的に ElastiCache クラスターを AWS マネジメントコンソールを使用して削除する手順
を説明します。
トピック
• ステップ 1: AWS アカウントの作成 [1 回] (p. 21)
• ステップ 2: クラスターを起動する (p. 22)
• ステップ 3: クラスター詳細を確認する [オプション] (p. 23)
• ステップ 4: アクセスを許可する (p. 23)
• ステップ 5: クラスターノードに接続する (p. 25)
• ステップ 6: クラスターを削除する [オプション] (p. 29)
• ここからどこへ進むべきですか? (p. 31)
ステップ 1: AWS アカウントの作成 [1 回]
Abstract
まだ AWS アカウントをお持ちでない場合は、ElastiCache を使用する前に、AWS アカウントを作成します。
ElastiCache を使用するには、AWS アカウントが必要です。アカウントを持っていない場合は、サイ
ンアップ時に作成するための画面が表示されます。サインアップした AWS サービスの料金は、その
サービスを使用しない限り発生することはありません。
AWS アカウントを作成するには
1.
2.
http://aws.amazon.com/ を開き、[AWS アカウントの作成] を選択します。
オンラインの手順に従います。
サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入
力することが求められます。
API Version 2015-02-02
21
Amazon ElastiCache ユーザーガイド
ステップ 2: クラスターを起動する
ステップ 2: クラスターを起動する
Abstract
Memcached または Redis をクラスターのエンジンソフトウェアとしてを使用して、クラスターを起動します。
続ける前に、「ステップ 1: AWS アカウントの作成 [1 回] (p. 21)」を完了したことを確認してくださ
い。
ここで起動するクラスターはライブとなります。サンドボックスで実行されるわけではありません。イ
ンスタンスを削除するまで、ElastiCache の標準使用料が発生します。ここで説明する演習を一気に完
了し、終了時にクラスターを削除すれば、使用料合計はごくわずかです(通常 1 ドル未満です)。
ElastiCache の使用率に関する詳細については、http://aws.amazon.com/elasticache/ を参照してくださ
い。
ElastiCache クラスターの作成の詳細は、選択したエンジンやオプションによって異なります。通常、
ステップは次のとおりです。
1. エンジンを選択: Memcached または Redis。
自分の環境でどのエンジンが最適に動作するか不明な場合は、「キャッシュエンジンとバージョン
の選択 (p. 32)」を参照してエンジンとバージョンを比較してください。
2. [Cluster Details] ページでクラスターの詳細を指定します。
3. [Configure Advanced Settings] ページで次の詳細設定を指定します。
4. 選択を確認し、起動します。
1 個の Redis クラスターを作成するには
1.
2.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
[Get Started Now] をクリックします。
すでに使用可能なクラスターがある場合は、[Launch Cache Cluster] をクリックします。
3.
4.
5.
6.
[Select Engine] 画面で、[Redis] タブ (
) をクリックしてから、[Next] をクリックします。
[Specify Cluster Details] 画面で、以下の変更を加えます。これらの変更以外のデフォルト値をその
まま使用します。
a.
1 個の Redis クラスターを起動するため、[Enable Replication] ボックスのチェックを外してく
ださい。
b.
クラスターの名前を [myfirstcluster] に入力して、[Next] をクリックします。
[Configure Advanced Settings] 画面ですべてのデフォルト値を受け入れて、[Next] をクリックしま
す。
[Review] 画面で、変更したフィールドの値を確認します。
• [Engine] redis
• [Enable Replication] No
• [Cluster Name] myfirstcluster
次に、[Launch Cache Cluster] をクリックします。
7.
[Success] 画面で [Close] をクリックします。
API Version 2015-02-02
22
Amazon ElastiCache ユーザーガイド
ステップ 3: クラスターの詳細情報を表示する
8.
[Cache Clusters] 画面が表示されます。
クラスターのステータスが available になるまで待ちます。これには数分間かかります。
[Cache Clusters] 画面で、クラスター [myfirstcluster] は creating ステータスで一覧されます。クラ
スターが作成されてステータスが available に変わると、「ステップ 3: クラスター詳細を確認する
[オプション] (p. 23)」または「ステップ 4: アクセスを許可する (p. 23)」に進むことができます。
クラスターを作成するには数分かかります。
ステップ 3: クラスター詳細を確認する [オプショ
ン]
Abstract
キャッシュクラスターの詳細を表示します。
続ける前に、「ステップ 2: クラスターを起動する (p. 22)」を完了したことを確認してください。
クラスターの詳細を表示する
1.
2.
3.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ElastiCache コンソールダッシュボードで、[Cache Clusters] を選択します。
クラスターのリストでクラスターの詳細を表示するには、クラスター名の左を指す右向きの矢印
( ) を選択します。
選択したら、矢印は下を向いて ( ) クラスターの詳細が表示されます。クラスターの詳細を非表
示にするには、下向きの矢印を選択します。
ステップ 4: アクセスを許可する
Abstract
Amazon EC2 インスタンスによるクラスターへのアクセスを許可します。
このセクションでは、Amazon EC2 インスタンスの起動と接続に慣れていることを前提としています。
詳細については、Amazon EC2 入門ガイド をご覧ください。
すべての ElastiCache クラスターは Amazon EC2 インスタンスからアクセスするように設計されてい
ます。クラスターおよび関連する Amazon EC2 インスタンスは、同じ Amazon Virtual Private Cloud
(VPC) にある必要があります。同じ VPC 内の Amazon EC2 インスタンス以外の場所から ElastiCache
クラスターにアクセスする必要がある場合は、回避策としてキャッシュの VPC 内に Amazon EC2 ホス
トを 1 つ以上セットアップして外部のプロキシとして動作させることができます。ホストをセットアッ
プすると、追加のネットワークホップまたは追加の Secure Sockets Layer (SSL) オーバーヘッド(ま
たは両方)が追加され、料金が発生します。ただし、多くのユースケースではコストは少額です。プロ
キシとなる Amazon EC2 インスタンスにクラスターへのアクセスを許可する必要があります。AWS の
外部から ElastiCache リソースにアクセスする方法については、「AWS 外部からの ElastiCache リソー
スへのアクセス (p. 261)」を参照してください。
デフォルトでは、クラスターへのネットワークアクセスは、クラスターの起動に使用されたユーザーア
カウントに制限されます。Amazon EC2 インスタンスからクラスターに接続するには、Amazon EC2
インスタンスにクラスターへのアクセスを許可する必要があります。必要な手順はクラスターを Amazon
VPC 環境で起動したかどうかによって異なります。
API Version 2015-02-02
23
Amazon ElastiCache ユーザーガイド
EC2-VPC でクラスターを起動した場合
先に進む前に、EC2-VPC と EC2-Classic のどちらでクラスターを起動したかを確認します。
AWS マネジメントコンソールを使用して EC2-VPC と EC2-Classic のどちらでクラスターを起
動したかを確認するには
1.
AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ に
ある Amazon EC2 コンソールを開きます。
2.
右上隅の [Supported Platforms] を見つけます。
[Supported Platforms] の下に、[VPC] のみか、[EC2] と [VPC] の両方が表示されています。
[VPC] のみが表示されている場合は、「EC2-VPC でクラスターを起動した場合 (p. 24)」に進みま
す。
[EC2] および [VPC] の両方が表示されている場合は、「EC2-Classic でクラスターを起動した場
合 (p. 25)」に進みます。
詳細については、「Detecting Your Supported Platforms and Whether You Have a Default VPC」を参
照してください。
AWS コマンドラインインターフェース(CLI)を使用して EC2-VPC と EC2-Classic のどちら
でクラスターを起動したかを確認するには
1.
2.
コマンドウィンドウを開きます。
コマンドプロンプトで、次のコマンドを入力します。
aws ec2 describe-account-attributes
出力に [VPC] のみが表示されている場合は、「EC2-VPC でクラスターを起動した場合 (p. 24)」に
進みます。
出力に [EC2] および [VPC] の両方が表示されている場合は、「EC2-Classic でクラスターを起動し
た場合 (p. 25)」に進みます。
EC2-VPC でクラスターを起動した場合
クラスターを Amazon Virtual Private Cloud (Amazon VPC) で起動した場合、同じ Amazon VPC で実行
されている Amazon EC2 インスタンスからのみ ElastiCache クラスターに接続できます。この場合、
クラスターに対するネットワーク進入を許可する必要があります。
Amazon VPC セキュリティグループからクラスターへのネットワーク進入を許可するには
1.
2.
3.
AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ に
ある Amazon EC2 コンソールを開きます。
左のナビゲーションペインで、[Network & Security] の下にある [Security Groups] をクリックしま
す。
セキュリティグループのリストで、Amazon VPC のセキュリティグループをクリックします。
ElastiCache の新規ユーザーの場合、このセキュリティグループには default という名前が付けら
れます。
API Version 2015-02-02
24
Amazon ElastiCache ユーザーガイド
EC2-Classic でクラスターを起動した場合
4.
[Inbound] タブをクリックし、次の操作を行います。
a.
[Edit] をクリックします。
b.
c.
d.
[Add Rule] をクリックします。
[Type] 列で [Custom TCP rule] を選択します。
[Port range] ボックスで、キャッシュクラスターノードのポート番号を入力します。この番号
は、クラスターの起動時に指定した番号と同じ番号である必要があります。デフォルトのポー
トは次のとおりです。
• Memcached: ポート 11211
• Redis: ポート 6379
e.
f.
[Source] ボックスで [Anywhere] を選択します。ポート範囲が 0.0.0.0/0 になるため、Amazon
VPC 内で起動したすべての Amazon EC2 インスタンスを ElastiCache ノードに接続できま
す。
[Save] をクリックします。
Amazon VPC で Amazon EC2 インスタンスを起動する場合、そのインスタンスは ElastiCache クラス
ターに接続できます。
EC2-Classic でクラスターを起動した場合
クラスターを EC2-Classic で起動した場合、Amazon EC2 インスタンスにクラスターへのアクセスを
許可するには、そのインスタンスに関連付けられた Amazon EC2 セキュリティグループに、キャッシュ
セキュリティグループへのアクセスを許可する必要があります。
Amazon EC2 セキュリティグループにクラスターへのアクセスを許可するには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Security Groups] をクリックします。
3.
4.
5.
キャッシュセキュリティグループのリストが表示されます。
デフォルトのセキュリティグループをクリックします。
画面の下部のリストから、許可する EC2 セキュリティグループを選択します。
[Add] をクリックし、アクセスを許可します。
これで、セキュリティグループに関連付けられた Amazon EC2 インスタンスを、ElastiCache クラ
スターに接続できるようになりました。
セキュリティグループのアクセスを取り消すには、許可されたセキュリティグループのリストから該当
のセキュリティグループを選択し、[Remove] をクリックします。
ステップ 5: クラスターノードに接続する
Abstract
Amazon EC2 インスタンスにログインし、キャッシュクラスター内のノードに接続します。
続ける前に、「ステップ 4: アクセスを許可する (p. 23)」を完了したことを確認してください。
API Version 2015-02-02
25
Amazon ElastiCache ユーザーガイド
ステップ 5: Memcached ノードに接続する
このセクションでは、Amazon EC2 インスタンスが作成済みであり、このインスタンスに接続できる
ことを前提としています。これを行う方法の手順については、『Amazon EC2 入門ガイド』を参照し
てください。
Amazon EC2 インスタンスは、許可されている場合にのみクラスターノードに接続できます。詳細に
ついては、「ステップ 4: アクセスを許可する (p. 23)」を参照してください。
クラスターへのアクセスを許可し、クラスターが available 状態になり、クラスターへのアクセスを
許可したら、Amazon EC2 インスタンスにログインし、クラスターのノードに接続できます。そのた
めには、最初にノードエンドポイントを確認する必要があります。
ノードのエンドポイントを確認するには
1.
AWS マネジメントコンソール の [Cache Clusters] ページで、クラスターの名前をクリックしま
す。
2.
クラスターの詳細ページの [Nodes] タブで、クラスターにあるノードの数をクリックします。
3.
[Nodes] タブで、次のステップで使用するノードのエンドポイントをコピーします。
Note
ノードのエンドポイントを使用するには、ノードの状態が available となっている必要
があります。
これで、エンドポイントがわかったので、Amazon EC2 インスタンスにログインし、キャッシュノー
ドに接続できます。手順は使用するエンジンによって異なります。
トピック
• ステップ 5: Memcached ノードに接続する (p. 26)
• ステップ 5: Redis クラスターに接続する (p. 28)
ステップ 5: Memcached ノードに接続する
Abstract
>telnet ユーティリティを使用して Memcached を実行しているキャッシュノードに接続します。
次の例では、telnet ユーティリティを使用して Memcached を実行しているノードに接続します。
API Version 2015-02-02
26
Amazon ElastiCache ユーザーガイド
ステップ 5: Memcached ノードに接続する
Note
Memcached と使用可能な Memcached のコマンドの詳細については、http://memcached.org
を参照してください。
telnet を使用してノードに接続するには
1.
選択した接続ユーティリティを使用して、Amazon EC2 インスタンスに接続します。
Note
Amazon EC2 インスタンスに接続する手順については、『Amazon EC2 入門ガイド』を参
照してください。
2.
Amazon EC2 インスタンスで telnet ユーティリティをダウンロードしてインストールする必要が
あります。Amazon EC2 インスタンスのコマンドプロンプトで、次のコマンドを入力します。確
認のプロンプトが表示されたら、「y」を入力します。
sudo yum install telnet
Loaded plugins: priorities, security, update-motd, upgrade-helper
Setting up Install Process
Resolving Dependencies
--> Running transaction check
...(output omitted)...
Total download size: 63 k
Installed size: 109 k
Is this ok [y/N]: y
Downloading Packages:
telnet-0.17-47.7.amzn1.x86_64.rpm
|
63 kB
00:00
...(output omitted)...
Complete!
3.
Amazon EC2 インスタンスのコマンドプロンプトで、次のコマンドを入力します。この例に示さ
れているノードのエンドポイントを、使用するノードのエンドポイントに置き換えてください。
telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211
以下のような出力結果が表示されるはずです。
Trying 128.0.0.1...
Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.
Escape character is '^]'.
>
これで、ノードに接続され、Memcached のコマンドを実行できます。次に例を示します。
API Version 2015-02-02
27
Amazon ElastiCache ユーザーガイド
ステップ 5: Redis クラスターに接続する
set a 0 0 5
hello
STORED
get a
VALUE a 0 5
hello
END
get b
END
>
// Set key "a" with no expiration and 5 byte value
// Set value as "hello"
// Get value for key "a"
// Get value for key "b" results in miss
ステップ 5: Redis クラスターに接続する
Abstract
redis-cli ユーティリティを使用して Redis を実行しているキャッシュノードに接続します。
次の例では、redis-cli ユーティリティを使用して Redis を実行しているクラスターに接続します。
Note
Redis と使用可能な Redis のコマンドの詳細については、http://redis.io/commands を参照して
ください。
redis-cli を使用して Redis クラスターに接続するには
1.
選択した接続ユーティリティを使用して、Amazon EC2 インスタンスに接続します。
Note
Amazon EC2 インスタンスに接続する手順については、『Amazon EC2 入門ガイド』を参
照してください。
2.
redis-cli をビルドするには、GNU Compiler Collection(gcc)をダウンロードしてインストールす
る必要があります。Amazon EC2 インスタンスのコマンドプロンプトで、次のコマンドを入力し
ます。確認のプロンプトが表示されたら、「y」を入力します。
sudo yum install gcc
Loaded plugins: priorities, security, update-motd, upgrade-helper
Setting up Install Process
Resolving Dependencies
--> Running transaction check
...(output omitted)...
Total download size: 27 M
Installed size: 53 M
Is this ok [y/N]: y
Downloading Packages:
(1/11): binutils-2.22.52.0.1-10.36.amzn1.x86_64.rpm
| 5.2 MB
00:00
(2/11): cpp46-4.6.3-2.67.amzn1.x86_64.rpm
| 4.8 MB
00:00
API Version 2015-02-02
28
Amazon ElastiCache ユーザーガイド
ステップ 6: クラスターを削除する
(3/11): gcc-4.6.3-3.10.amzn1.noarch.rpm
| 2.8 kB
00:00
...(output omitted)...
Complete!
3.
次に、redis-cli ユーティリティをダウンロードしてコンパイルする必要があります。このユーティ
リティは Redis ソフトウェアディストリビューションに含まれています。Amazon EC2 インスタ
ンスのコマンドプロンプトで、次のコマンドを入力します。
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
4.
Amazon EC2 インスタンスのコマンドプロンプトで、次のコマンドを入力します。この例に示さ
れているクラスターのエンドポイントを、使用するノードのエンドポイントに置き換えてくださ
い。
src/redis-cli -h mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com -p 6379
次のような Redis のコマンドプロンプトが表示されます。
redis mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 6379>
これで、クラスターに接続され、Redis のコマンドを実行できます。次に例を示します。
set a "hello"
OK
get a
"hello"
get b
(nil)
quit
// Set key "a" with a string value and no expiration
// Get value for key "a"
// Get value for key "b" results in miss
// Exit from redis-cli
ステップ 6: クラスターを削除する [オプション]
Abstract
追加料金を回避できるように必要がなくなった時点でキャッシュクラスターを削除します。
作業を始める前に、少なくとも「ステップ 2: クラスターを起動する (p. 22)」まで完了したことを確認
してください。
Important
クラスターを削除するまで、そのクラスターについて使用料が継続して発生します。
API Version 2015-02-02
29
Amazon ElastiCache ユーザーガイド
ステップ 6: クラスターを削除する
クラスターを削除するには
1.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
ElastiCache コンソールダッシュボードで、[Cache Clusters] を選択します。
[Cache Clusters] 画面が表示されます。
3.
クラスターのリストで、削除するクラスターを選択して、クラスターの名前を選択します。
4.
ElastiCache コンソールから、一度に 1 つずつクラスターを削除できます。複数のクラスターを選
択すると、[Delete] ボタンが無効になります。
[Delete] ボタンを選択します。
5.
[Delete Cache Cluster] 確認画面:
a. これが Redis クラスターである場合は、最終スナップショットを作成するかどうかと、最終ス
ナップショットが必要な場合は最終スナップショット名を指定します。
b. [Delete] を選択してクラスターを削除するか、[Cancel] を選択してクラスターを保持します。
[Delete] を選択した場合は、クラスターのステータスが削除中に変わります。
クラスターがクラスターのリストに表示されなくなると、そのクラスターへの課金は直ちに停止されま
す。
おめでとうございます。Redis クラスターの起動、アクセス権の設定、クラスターへの接続、クラス
ターの表示、クラスターの削除をひととおり体験しました。
API Version 2015-02-02
30
Amazon ElastiCache ユーザーガイド
ここからどこへ進むべきですか?
ここからどこへ進むべきですか?
Abstract
ElastiCache の詳細を知るのに役立つ追加リソースを列挙します。
これで入門演習は完了しました。ElastiCache と利用可能なツールについてさらに知識を深めるには、
次の各セクションを参照してください。
• AWS の使用開始
• アマゾン ウェブ サービスのツール
• AWS コマンドラインインターフェイス
• Amazon ElastiCacheAPI リファレンス
まだそれらをお読みでない場合は、ここにある ElastiCache トピックをお読みください。
「はじめに」セクションを完了したら、以下のセクションで ElastiCache の管理に関する詳細を参照し
てください。
• キャッシュエンジンとバージョンの選択 (p. 32)
ElastiCache では、– Memcached と Redis の 2 つのエンジンがサポートされます。このトピックで
は、どのエンジンがお客様のシナリオに最良であるかを判断するのに役立ちます。
• ノードサイズの選択 (p. 68)
キャッシュは、キャッシュしたいすべてのデータに対応できるだけの十分な大きさにします。同時
に、必要以上にキャッシュを大きくしたくはないものです。このトピックでは、最良のノードのサイ
ズを選択するのに役立ちます。
• Amazon ElastiCache の実装のベストプラクティス (p. 52)
クラスターの効率に影響を及ぼす可能性がある問題を特定し、対処します。
API Version 2015-02-02
31
Amazon ElastiCache ユーザーガイド
エンジンの選択: Memcached または Redis
キャッシュエンジンとバージョンの
選択
Abstract
アプリケーション(Memcached または Redis)に適したエンジンの選択に関するガイダンスを示します。
Amazon ElastiCache はこれらのキャッシュエンジン Memcached または Redis をサポートしていま
す。各エンジンにはいくつかのメリットがあります。このトピックの情報を参考にして、要件を満たす
最適なエンジンとバージョンを選択してください。
トピック
• エンジンの選択: Memcached または Redis (p. 32)
• Memcached バージョンの比較 (p. 33)
• Redis バージョンの比較 (p. 33)
• キャッシュエンジンのバージョンアップグレード (p. 36)
• メンテナンスウィンドウ (p. 37)
エンジンの選択: Memcached または Redis
見かけ上エンジンは似ています。それぞれのエンジンは、インメモリキーストアです。ただし、実際に
は大きな違いがあります。
以下の要件がある場合は、Memcached を選択します。
• できるだけシンプルなモデルがよい。
• 複数のコアまたはスレッドを持つ大きなノードを実行する必要がある。
• システムでの需要の増減に応じてノードを追加または削除するスケールアウト / スケールイン機能が
必要である。
• 複数のシャード間でデータを分割したい。
• データベースなどのオブジェクトをキャッシュする必要がある。
以下の要件がある場合は、Redis を選択します。
API Version 2015-02-02
32
Amazon ElastiCache ユーザーガイド
Memcached バージョンの比較
• 文字列、ハッシュ、リスト、セットなど、複雑なデータ型が必要である。
• インメモリデータセットをソートまたはランク付けする必要がある。
• キーストアの永続性が必要である。
• 読み取り量が多いアプリケーションのために、プライマリからのデータを 1 つ以上のリードレプリカ
にレプリケートしたい。
• プライマリノードが失敗した場合に、自動的なフェイルオーバーが必要である。
• 発行とサブスクライブ(pub/sub)機能が必要 – クライアントにサーバー上のイベントを通知したい。
• バックアップと復元の機能が必要である。
アプリケーションのエンジンを選択した後は、そのエンジンの最新バージョンを使用することをお勧め
します。以下のセクションでは、さまざまなバージョンの主な違いについて説明します。
Memcached バージョンの比較
ElastiCache は Memcached のこれらのバージョンをサポートします。
Memcached バージョン 1.4.24
バージョン 1.4.14 以降に追加された Memcached の機能拡張には、以下が含まれます。
• バックグラウンドプロセスを使用した LRU (least recently used) の管理
• ハッシュアルゴリズムとして使用する jenkins または murmur3 のオプションを追加しました。
• いくつかの新しいコマンドとパラメータ。リストについては、「Memcached 1.4.24 で追加されたパ
ラメータ (p. 212)」を参照してください。
• 複数のバグ修正。
Memcached バージョン 1.4.14
バージョン 1.4.5 以降に追加された Memcached の機能拡張には、以下が含まれます。
• スラブ再分散機能の強化。
• パフォーマンスとスケーラビリティの強化。
• touch コマンドの導入により、既存の項目の有効期限を取得せずに更新する機能。
• 自動検出 — クライアントプログラムが、クラスター内のすべてのキャッシュノードを自動的に識別
し、それらのすべてのノードへの接続を開始して維持する機能。
Memcached バージョン 1.4.5
Memcached バージョン 1.4.5 は、Amazon ElastiCache でサポートされた最初のエンジンとバージョン
です。
Redis バージョンの比較
ElastiCache はこれらの Redis バージョンをサポートします。
トピック
• Redis バージョン 2.8.24 (p. 34)
API Version 2015-02-02
33
Amazon ElastiCache ユーザーガイド
Redis バージョン 2.8.24
• Redis バージョン 2.8.23 (p. 34)
• Redis バージョン 2.8.22 (p. 34)
• Redis バージョン 2.8.21 (p. 35)
• Redis バージョン 2.8.19 (p. 35)
• Redis バージョン 2.8.6 (p. 35)
• Redis バージョン 2.6.13 (p. 36)
Note
新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供している
ため、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache マネジメントコンソール
から廃止されました。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必要
がある場合は、AWS CLI または ElastiCache API を使用できます。
詳細については、以下のトピックを参照してください。
AWS CLI
ElastiCache API
キャッシュクラスターの作成 キャッシュクラスターの作成 キャッシュクラスターの作成
AWS CLI の使用 (p. 107)
ElastiCache API の使用 (p. 107)
キャッシュクラスターの変更 キャッシュクラスターの変更 キャッシュクラスターの変更
AWS CLI の使用 (p. 111)
ElastiCache API の使用 (p. 111)
レプリケーショングループの 利用可能な Redis キャッシュ
作成
クラスターがない場合のレプ
リケーショングループの作成
AWS CLI の使用 (p. 148)
利用可能な Redis キャッシュ
クラスターがない場合のレプ
リケーショングループの作成
ElastiCache API の使用 (p. 150)
レプリケーショングループの レプリケーショングループの レプリケーショングループの
変更
変更 AWS CLI の使用 (p. 158) 変更 ElastiCache API の使
用 (p. 158)
Redis バージョン 2.8.24
バージョン 2.8.23 以降に追加された、バグ修正および不正なメモリーアクセスのアドレスのログ記録
を含む Redis の改善詳細については、「Redis 2.8 リリースノート」を参照してください。
Redis バージョン 2.8.23
バージョン 2.8.22 以降に追加された Redis の機能拡張には、バグ修正も含まれます。詳細については、
「Redis 2.8 リリースノート」を参照してください。また、このリリースでは、新しいパラメータ
close-on-slave-write もサポートされており、有効にした場合、読み取り専用レプリカに書き込も
うとするクライアントの接続は切断されます。
Redis 2.8.23 のパラメータの詳細については、『ElastiCache ユーザーガイド』の「Redis 2.8.23 で追
加されたパラメータ (p. 220)」を参照してください。
Redis バージョン 2.8.22
バージョン 2.8.21 以降に追加された Redis の機能拡張には、以下が含まれます。
API Version 2015-02-02
34
Amazon ElastiCache ユーザーガイド
Redis バージョン 2.8.21
• 分岐なしのバックアップと同期のサポートにより、バックアップオーバーヘッドによるメモリの割り
当てを減らしてより多くのメモリをアプリケーションに割り当てることができます。詳細について
は、「Redis レプリケーション: エンジンバージョンによる違い (p. 132)」を参照してください。分岐
なしのプロセスは、レイテンシーとスループットの両方に影響を与える場合があります。レプリカの
再同期時に書き込みのスループットが高い場合、同期の時間全体を通じてアクセスできない場合があ
ります。
• フェイルオーバーが発生した場合、可能な場合はレプリカがフル同期ではなくプライマリとの部分同
期を実行するため、レプリケーショングループはより早く復旧されます。さらに、プライマリとレプ
リカは同期中にディスクを使用しないため、速度が向上します。
• 2 つの新しい CloudWatch メトリックスのサポート。
• ReplicationBytes: レプリケーショングループのプライマリクラスターがリードレプリカに送信して
いるバイト数。
•
•
•
•
•
• SaveInProgress: バックグラウンド保存プロセスが実行されるかどうかを示すバイナリ値。
詳細については、「Redis のメトリックス (p. 269)」を参照してください。
レプリケーション PSYNC 動作のいくつかの重要なバク修正。詳細については、「Redis 2.8 リリー
スノート」を参照してください。
マルチ AZ レプリケーショングループのレプリケーションパフォーマンスの拡張とクラスターの安定
性を維持するために、非 ElastiCache レプリカのサポートが終了しました。
レプリケーショングループのプライマリクラスターとレプリカ間でデータの整合性を改善するため
に、プライマリクラスターと無関係にレプリカでキーを削除できなくしました。
Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサポートされ
ていません。
メモリが少ない状況で、大きな出力アップロードバッファを持つクライアントはレプリカクラスター
からの接続が解除される場合があります。接続が解除された場合、クライアントは再接続する必要が
あります。このような状況は、多くの場合 PUBSUB クライアントで発生する可能性があります。
Redis バージョン 2.8.21
Redis のバージョン 2.8.19 で数多くのバグ修正が行われ、改善されました。詳細については、「Redis
2.8 リリースノート」を参照してください。
Redis バージョン 2.8.19
バージョン 2.8.6 以降に追加された Redis の機能拡張には、以下が含まれます。
• HyperLogLog のサポート。詳細については、「Redis の新しいデータ構造: HyperLogLog」を参照し
てください。
• ソートされたセットデータ型は、新しいコマンド ZRANGEBYLEX、ZLEXCOUNT、および
ZREMRANGEBYLEX で、辞書式範囲のクエリをサポートするようになりました。
• プライマリノードがレプリカノードに古いデータを送信しないようにするため、バックグラウンド保
存(bgsave)の子プロセスが中止された場合、マスター SYNC は失敗します。
• HyperLogLogBasedCommands CloudWatch メトリックスがサポートされました。詳細については、
「Redis のメトリックス (p. 269)」を参照してください。
Redis バージョン 2.8.6
バージョン 2.6.13 以降に追加された Redis の機能拡張には、以下が含まれます。
• リードレプリカの弾力性と耐障害性の向上。
• 部分的な再同期のサポート。
• 常に使用できる必要があるリードレプリカの最小数に関するユーザー定義のサポート。
API Version 2015-02-02
35
Amazon ElastiCache ユーザーガイド
Redis バージョン 2.6.13
• pub/sub のフルサポート — サーバー上のイベントをクライアントに通知。
• プライマリノードの障害の自動検出と、プライマリノードからセカンダリノードへのフェイルオー
バー。
Redis バージョン 2.6.13
Redis バージョン 2.6.13 は、Amazon ElastiCache でサポートされた Redis の最初のバージョンです。
マルチ AZ と自動フェイルオーバーは Redis 2.6.13 ではサポートされません。
キャッシュエンジンのバージョンアップグレード
Abstract
キャッシュエンジンソフトウェアをアップグレードするかどうかと、アップグレードの時期を管理し、独自の条件
とスケジュールに合わせてバージョンのアップグレードを実行します。
キャッシュクラスターを実現するプロトコルに準拠したソフトウェアを、ElastiCache でサポートされ
る新しいバージョンにアップグレードするかどうかと、アップグレードの時期を管理します。このレベ
ルのコントロールにより、特定の Memcached または Redis のバージョンとの互換性を維持する、本稼
働環境にデプロイする前にアプリケーションで新しいバージョンをテストする、および独自の条件とタ
イムラインでバージョンのアップグレードを実行することができます。
バージョンアップグレードは、互換性のリスクが伴うことがあるため、自動的には行われません。ご自
分の責任で実施してください。
クラスターまたはレプリケーショングループを変更し、新しいエンジンのバージョンを指定すること
で、クラスターのバージョンアップグレードを開始します。詳細については、「ElastiCache キャッシュ
クラスターの変更 (p. 110)」または「レプリケーショングループの変更 (p. 157)」を参照してください。
Important
キャッシュエンジンのバージョン管理機能では、パッチ適用を可能な限りお客様が管理できる
ようにしていますが、システムやキャッシュソフトウェアにおいて重要なセキュリティ脆弱性
が万一発生した場合は、お客様に代わって ElastiCache がクラスターにパッチを適用する可能
性があります。
Memcached
Memcached エンジンのバージョンアップグレードは常に、クラスター内のすべてのキャッシュデータ
を消去する破壊的なプロセスです。
Redis
Redis エンジンのバージョンアップグレードは、Multi-AZ が有効になっているかどうかに応じて、破壊
的なプロセスになるかどうかが決まります。
マルチ AZ 有効クラスター(Redis バージョン 2.8.6 以上)の場合、アップグレードは非破壊的なプロ
セスです。キャッシュデータは保持されます。
Redis バージョン 2.8 以前を実行するクラスターと、マルチ AZ が無効になっているクラスターの場合、
キャッシュエンジンのバージョンアップグレードは、クラスター内のすべてのキャッシュデータを消去
する破壊的なプロセスです。Redis バージョン 2.8.x を実行している場合、アップグレード前にマルチ
API Version 2015-02-02
36
Amazon ElastiCache ユーザーガイド
メンテナンスウィンドウ
AZ を有効にして、アップグレードが破壊的なプロセスにならいようにすることをお勧めします。必要
に応じて、アップグレード後にいつでもマルチ AZ を無効にすることができます。
メンテナンスウィンドウ
すべてのクラスターには、週ごとのメンテナンス時間があります。その時間内にシステムの変更が適用
されます。キャッシュクラスターの作成または変更時に、必要なメンテナンス時間を指定しない場合、
ElastiCache では、ランダムに選択された曜日に対して 60 分のメンテナンス時間を割り当てます。
60 分のメンテナンス時間は、リージョンごとに決められた 8 時間の中でランダムに選択されます。次
の表に、デフォルトでメンテナンス時間が割り当てられる各リージョンの時間ブロックを示します。
リージョンコード
リージョン名
ap-northeast-1
アジアパシ
13:00–21:00 UTC
フィック(東
京)リージョン
ap-southeast-1
アジアパシ
14:00–22:00 UTC
フィック(シン
ガポールリー
ジョン)
ap-southeast-2
アジアパシ
フィック(シド
ニーリージョ
ン)
12:00–20:00 UTC
cn-north-1
中国(北京)
リージョン
14:00–22:00 UTC
eu-central-1
欧州(フランク 23:00–07:00 UTC
フルト)リー
ジョン
eu-west-1
欧州(アイルラ 22:00–06:00 UTC
ンド)リージョ
ン
sa-east-1
南米(サンパウ
ロリージョン)
us-east-1
米国東部(バー 03:00–11:00 UTC
ジニア北部リー
ジョン)
us-gov-west-1
AWS GovCloud 06:00–14:00 UTC
(米国)リー
ジョン
us-west-1
米国西部(北カ 06:00–14:00 UTC
リフォルニア)
リージョン
us-west-2
米国西部(オレ 06:00–14:00 UTC
ゴンリージョ
ン)
API Version 2015-02-02
37
メンテナンスウィンドウ
01:00–09:00 UTC
Amazon ElastiCache ユーザーガイド
メンテナンスウィンドウ
メンテナンス時間は使用率の最も低い時間帯に設定する必要があります。このため、場合によっては変
更が必要になります。お客様がリクエストしたメンテナンス作業が発生する、時間範囲を最大 24 時間
で指定できます。たとえば、マイナーなバージョン変更時にクラスターを自動的にアップグレードする
ように ElastiCache を設定している場合、Memcached や Redis の重大ではないソフトウェアの更新は
この時間に適用されます。このような更新は発生頻度が低く(一般的に、数か月に 1 回)、適用の 2
週間前に Amazon ElastiCache フォーラムで告知されます。お客様のリクエストにより延期または保留
中のクラスターの変更も、この時間に行われます。
キャッシュクラスターの優先メンテナンス時間の調整方法の詳細については、「ElastiCache キャッシュ
クラスターの変更 (p. 110)」を参照してください。
API Version 2015-02-02
38
Amazon ElastiCache ユーザーガイド
Redis リードレプリカおよび Memcached ノードの配置
リージョンとアベイラビリティーゾー
ンの選択
Abstract
対応するエンドポイントを使用してリージョンとアベイラビリティーゾーンを指定することによって、クラスター
に追加のスケーラビリティと信頼性を提供します。
AWS クラウドコンピューティングリソースは、高可用性データセンター設備に収容されています。ス
ケーラビリティと信頼性を向上させるために、これらのデータセンターの設備は複数の物理的な場所に
配置されています。これらの場所は、リージョンとアベイラビリティーゾーンに分類されます。
リージョンは大きく、広く分散した地理的な場所です。アベイラビリティーゾーンは、他のゾーンから
の影響を受けないようにそれぞれが独立しており、同一リージョンの他のアベイラビリティーゾーンに
対して、レイテンシーが短くコストのかからないネットワーク接続を提供します。
Important
各リージョンは完全に独立しています。お客様が開始した ElastiCache アクティビティ(クラ
スターの作成など)は、お客様の現在のデフォルトのリージョンでのみ実行されます。
特定のリージョン内のクラスターを作成または操作するには、対応するリージョンのサービスエンドポ
イントを使用します。サービスエンドポイントについては、「サポートされているリージョンおよびエ
ンドポイント (p. 40)」を参照してください。
トピック
• Redis リードレプリカおよび Memcached ノードの配置 (p. 39)
• サポートされているリージョンおよびエンドポイント (p. 40)
Redis リードレプリカおよび Memcached ノード
の配置
Amazon ElastiCache では、クラスターを作成するアベイラビリティーゾーンを指定できます。Redis
レプリケーショングループに複数のクラスターがある場合、または Memcached キャッシュクラスター
API Version 2015-02-02
39
Amazon ElastiCache ユーザーガイド
サポートされているリージョンおよびエンドポイント
に複数のノードがある場合、すべてのクラスター(Redis)またはノード(Memcached)を 1 つのアベ
イラビリティーゾーンに配置するか、複数のアベイラビリティーゾーンに配置するかを選択できます。
クラスターやノードを複数のアベイラビリティーゾーンに配置することによって、1 つのアベイラビリ
ティーゾーンでの停電などの障害がシステム全体の障害の原因となる可能性を排除できます。1 つのア
ベイラビリティーゾーンにすべてのノードを配置した場合と、複数のアベイラビリティーゾーンにノー
ドを分散させた場合では、レイテンシーに大きな違いがないことがテストによって証明されました。
Memcached ノードのアベイラビリティーゾーンを指定するには、通常の方法で Memcached クラス
ターを作成します。Launch Cluster ウィザードの [Cluster Details] ページで、[Preferred Zone] リスト
を使用してこのノードのアベイラビリティーゾーンを指定します。
Redis リードレプリカのアベイラビリティーゾーンを指定するには、まずレプリケーショングループを
作成し、そのレプリケーショングループに 1 ~ 5 個のリードレプリカを追加します。各リードレプリ
カに異なるアベイラビリティーゾーンを指定できます。プライマリ Redis キャッシュクラスターとは異
なるアベイラビリティーゾーンに Redis リードレプリカを作成する方法の詳細については、「Redis レ
プリケーショングループの作成 (p. 141)」および「レプリケーショングループへのリードレプリカの追
加 (p. 161)」を参照してください。
サポートされているリージョンおよびエンドポイ
ント
Amazon ElastiCache は複数のリージョンで利用でき、要件に合った場所で ElastiCache クラスターを
起動できます。たとえば、顧客に最も近いリージョンで起動する場合や、特定の法的な要件を満たす必
要がある場合などです。
デフォルトでは、AWS SDK、AWS CLI、ElastiCache API、および ElastiCache コンソールは、米国西
部 – オレゴンリージョンを参照しています。ElastiCache が他のリージョンでも利用可能になると、そ
のリージョンのエンドポイントもアプリケーションの HTTP リクエスト、AWS SDK、AWS CLI、およ
びコンソールで利用できるようになります。
各リージョンは、他のリージョンと完全に分離されるように設計されています。各リージョンには複数
のアベイラビリティーゾーン (AZ) があります。別のアベイラビリティーゾーンのノードを起動して、
最大限の耐障害性を実現できます。リージョンとアベイラビリティーゾーンの詳細については、「リー
ジョンとアベイラビリティーゾーンの選択 (p. 39)」でこのトピックを参照してください。
ElastiCache がサポートされているリージョン
リージョン名
リージョン
エンドポイント
プロトコル
アジアパシフィック(東 ap-northeast-1
京)リージョン
elasticache.apnortheast1.amazonaws.com
HTTPS
アジアパシフィック (ソ ap-northeast-2
ウル) リージョン
elasticache.apnortheast2.amazonaws.com
HTTPS
アジアパシフィック(シ ap-southeast-1
ンガポールリージョン)
elasticache.apsoutheast1.amazonaws.com
HTTPS
アジアパシフィック(シ
ドニーリージョン)
elasticache.apsoutheast2.amazonaws.com
HTTPS
ap-southeast-2
API Version 2015-02-02
40
Amazon ElastiCache ユーザーガイド
サポートされているリージョンおよびエンドポイント
リージョン名
リージョン
エンドポイント
プロトコル
中国(北京)リージョン cn-north-1
elasticache.cnnorth-1.amazonaws.com.cn
HTTPS
欧州(フランクフルト) eu-central-1
リージョン
elasticache.eucentral-1.amazonaws.com
HTTPS
欧州(アイルランド)
リージョン
elasticache.euwest-1.amazonaws.com
HTTPS
eu-west-1
AWS GovCloud(米国) AWS GovCloud (US)
リージョン *
elasticache.usHTTPS
gov-west-1.amazonaws.com
南米(サンパウロリー
ジョン)
sa-east-1
elasticache.saeast-1.amazonaws.com
HTTPS
米国東部(バージニア北 us-east-1
部リージョン)
elasticache.useast-1.amazonaws.com
HTTPS
米国西部(北カリフォル us-west-1
ニア)リージョン
elasticache.uswest-1.amazonaws.com
HTTPS
米国西部(オレゴンリー us-west-2
ジョン)
elasticache.uswest-2.amazonaws.com
HTTPS
* ElastiCache での AWS GovCloud(米国)の使用の詳細については、「AWS GovCloud (米国) リー
ジョンでのサービス: ElastiCache」を参照してください。
リージョンごとの AWS 製品およびサービスの表については、「リージョンごとの製品とサービス」を
参照してください。
API Version 2015-02-02
41
Amazon ElastiCache ユーザーガイド
ElastiCache エンドポイントの検索
Abstract
エンドポイントにおける ElastiCache ついて、その検索方法と使用方法について説明します。
エンドポイントを使用してアプリケーションがクラスターに接続します。エンドポイントはノードまた
はクラスターの一意のアドレスです。
Memcached クラスターに接続するには、クラスターの設定エンドポイントで自動検出を有効にするこ
とをお勧めします。Redis スタンドアロンクラスターの場合は、読み取りと書き込みの両方のオペレー
ションにクラスターのエンドポイントを使用します。Redis レプリケーショングループのクラスターに
接続するには、すべての書き込みオペレーションにはプライマリエンドポイントを、読み取りオペレー
ションには個々のクラスターエンドポイントを使用します。
エンジン別と設定別のエンドポイントのタイプ
クラスター/ノードエ
ンドポイント
設定エンドポイント * プライマリエンドポイ 読み取りエンドポイン
ント
ト
Mem- 読み取り/書き込み
cached
読み取り/書き込み
該当なし
該当なし
Re読み取り/書き込み
dis: 1
つの
クラ
ス
ター
該当なし
該当なし
該当なし
API Version 2015-02-02
42
Amazon ElastiCache ユーザーガイド
クラスター/ノードエ
ンドポイント
設定エンドポイント * プライマリエンドポイ 読み取りエンドポイン
ント
ト
Redis
レプ
リ
ケー
ショ
ング
ルー
プ:
プラ
イマ
リク
ラス
ター
該当なし
該当なし
読み取り/書き込み
読み取り専用
Redis
レプ
リ
ケー
ショ
ング
ルー
プ:
リー
ドレ
プリ
カク
ラス
ター
該当なし
該当なし
該当なし
読み取り専用
* 自動検出が有効。詳細については、「ノードの自動検出(Memcached) (p. 84)」を参照してくだ
さい。
以下のセクションで、実行するエンジンに必要なエンドポイントの検索について説明します。
API Version 2015-02-02
43
Amazon ElastiCache ユーザーガイド
コンソールを使用した Memcached エンドポイントの検索
Memcached クラスターのエンドポイントの検索
AWS マネジメントコンソールの使用
すべての Memcached エンドポイントは読み取り/書き込みエンドポイントです。Memcached クラス
ターのノードに接続するには、使用するアプリケーションが各ノードのエンドポイント、またはクラス
ターが設定したエンドポイントと自動検出を使用できる必要があります。自動検出を使用するとき、ク
ライアントアプリケーションは設定エンドポイントを使用して Memcached クラスターに接続します。
ノードの追加や削除を行ってクラスターをスケールするたびに、アプリケーションは自動的にクラス
ターのすべてのノードを「検出して、それらのどのノードにも接続できます。自動検出なしでアプリ
ケーションがこれを行わなければならない場合は、ノードを追加したり削除したりするたびにアプリ
ケーションでエンドポイントを手動で更新する必要があります。自動検出の詳細については、「ノード
の自動検出(Memcached) (p. 84)」を参照してください。
次の手順は、クラスターの設定エンドポイントまたはノートエンドポイントの検索とコピーの方法を示
しています。
Memcached クラスターのエンドポイントの検索とコピーを行うには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Clusters] をクリックします。
3.
キャッシュクラスター画面にはクラスターの一覧が表示されています。
エンドポイントについて希望する Memcached クラスターを検索します。
必要なすべてのエンドポイントが設定エンドポイントである場合は、これで完了です。設定エンド
ポイントは [Configuration Endpoint (Memcached)] にあり、
clusterName.xxxxxx.cfg.usw2.cache.amazonaws.com:port のように表示されます。
個々のノードのエンドポイントを表示したり、エンドポイントをクリップボードにコピーしたりす
るには、[Copy Node Endpoint] をクリックします。
4.
エンドポイントをクリップボードにコピーするには:
a.
[Copy Node Endpoints] 画面で、コピーするエンドポイントを強調表示します。
b.
強調表示されたエンドポイントを右 – クリックして、コンテキストメニューから [Copy] を選
択します。
強調表示されたエンドポイントがクリップボードにコピーされます。
API Version 2015-02-02
44
Amazon ElastiCache ユーザーガイド
コンソールを使用した Memcached エンドポイントの検索
設定エンドポイントとノードエンドポイントはよく似ています。その違いは以下のイタリックの部分で
す。
myclustername.xxxxxx.cfg.usw2.cache.amazonaws.com:port
# configuration endpoint
myclustername.xxxxxx.0001.usw2.cache.amazonaws.com:port
API Version 2015-02-02
45
# node endpoint
Amazon ElastiCache ユーザーガイド
コンソールを使用した Redis クラスターのエンドポイント
の検索
Redis クラスターのエンドポイントの検索 AWS マ
ネジメントコンソールの使用
Redis のクラスターのノードは常に 1 個です。クラスターがスタンドアロンクラスターである場合、こ
のエンドポイントは読み取りと書き込みの両方に使用されます。クラスターがレプリケーショングルー
プに属する場合、以下の手順を使用して、クラスターのエンドポイントを検索できます。または、レプ
リケーショングループのすべてのエンドポイントを検索するには、その方法について「Redis レプリ
ケーショングループのエンドポイントの検索 AWS マネジメントコンソールの使用 (p. 47)」を参照して
ください。
次の手順は、Redis クラスターエンドポイントを検索してコピーする方法を示しています。
Redis クラスターのエンドポイントを検索しコピーするには
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Clusters] をクリックします。
キャッシュクラスター画面にはクラスターの一覧が表示されています。
希望するエンドポイントの Redis クラスターを検索して、[Nodes] 列の「1 node」リンクをクリッ
クします。
[Nodes] 画面が表示されます。
4.
エンドポイントをクリップボードにコピーするには:
a.
b.
[Endpoint] 列を検索して、エンドポイントを強調表示します。
強調表示されたエンドポイントを右 – クリックして、コンテキストメニューから [Copy] を選
択します。
強調表示されたエンドポイントがクリップボードにコピーされます。
Redis エンドポイントは次のように表示されます
clusterName.xxxxxx.0001.usw2.cache.amazonaws.com port。
API Version 2015-02-02
46
Amazon ElastiCache ユーザーガイド
コンソールを使用したレプリケーショングループのエンド
ポイントの検索
Redis レプリケーショングループのエンドポイン
トの検索 AWS マネジメントコンソールの使用
Redis レプリケーショングループには、2 タイプのエンドポイントがあります。1 つ目のタイプは、レ
プリケーショングループの各クラスターの読み取りエンドポイントです。読み取りエンドポイントは、
クラスターからデータを読み取るために使用されます。クラスターへのデータの書き込みには使用でき
ません。これは、読み取りエンドポイントをプライマリクラスターに使用していても同じです。
レプリケーショングループのエンドポイントの 2 つ目のタイプは、プライマリエンドポイントです。レ
プリケーショングループには 1 つのプライマリエンドポイントのみがあり、常にプライマリクラスター
に関連付けられています。何らかの理由で、リードレプリカがプライマリに昇格した場合には、プライ
マリエンドポイントは新しいプライマリクラスターに関連付けられます。プライマリエンドポイント
は、レプリケーショングループのプライマリクラスターに対する読み取り/書き込みに使用されます。
詳細については、「マルチ AZ と自動フェイルオーバーをサポートするレプリケーショングループ
(Redis) (p. 134)」および「リードレプリカをプライマリに昇格させる (p. 164)」を参照してください。
次の手順は、Redis レプリケーショングループエンドポイントを検索しコピーする方法を示していま
す。
Redis レプリケーショングループのエンドポイントを検索しコピーするには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
プライマリエンドポイントと読み取りエンドポイントの検索は [Cache Clusters] または [Replication
Groups] のいずれかの画面から開始します。開始する画面に応じて、以下のいずれかの手順に従っ
てください。
キャッシュクラスターがわかっている場合
a.
b.
左のナビゲーションペインで、[Cache Clusters] を選択します。
エンドポイントを検索する Redis クラスターを見つけて、[Replication Group (Redis)] 列でレ
プリケーショングループの名前を選択します。
[Replication Group] 画面が開き、その下部にレプリケーショングループの詳細が表示されま
す。
レプリケーショングループがわかっている場合
a.
左側のナビゲーションペインで、[Replication Groups] を選択します。
b.
エンドポイントを検索するレプリケーショングループを見つけて選択します。
レプリケーショングループの詳細が画面の下部に表示されます。
3.
[Node Group Details] が表示されるまで、詳細セクションを下にスクロールします。[Node Group
Details] の下にあるのが、プライマリエンドポイントです。その下にあるのが、このレプリケーショ
ングループのクラスターと各クラスターの読み取りエンドポイントの一覧です。
API Version 2015-02-02
47
Amazon ElastiCache ユーザーガイド
コンソールを使用したレプリケーショングループのエンド
ポイントの検索
4.
エンドポイントをクリップボードにコピーするには:
a.
コピーするエンドポイントを強調表示します。
b.
強調表示されたエンドポイントを右クリックして、コンテキストメニューから [Copy] を選択
します。
強調表示されたエンドポイントがクリップボードにコピーされます。
アプリケーションはすべての書き込みオペレーションでは [Primary Endpoint] を、読み込みオペレー
ションでは [Read Endpoint] を使用する必要があります。
API Version 2015-02-02
48
Amazon ElastiCache ユーザーガイド
エンドポイントの検索 AWS CLI の使用
エンドポイントの検索 AWS CLI の使用
AWS CLI for Amazon ElastiCache を使用して、ノード、クラスター、レプリケーショングループのエ
ンドポイントを検索できます
ノードとクラスターのエンドポイントの検索 AWS
CLI の使用
AWS CLI を使用して、describe-cache-clusters コマンドでクラスターのエンドポイントとその
ノードを検出することができます。Redis クラスターでは、そのコマンドがクラスターエンドポイント
を返します。Memcached クラスターでは、コマンドは設定エンドポイントを返します。オプションの
パラメータ --show-cache-node-info を含めた場合、コマンドはクラスター内の個々のノードにエ
ンドポイントを返します。
次のコマンドは、設定エンドポイントと Memcached クラスター mycluster の個別ノードのエンドポイ
ントを取得します。
Linux, OS X, or Unix 用:
aws elasticache describe-cache-clusters \
--cache-cluster-id mycluster \
--show-cache-node-info
Windows の場合:
aws elasticache describe-cache-clusters ^
--cache-cluster-id mycluster ^
--show-cache-node-info
詳細については、トピック「describe-cache-clusters」を参照してください。
レプリケーショングループのエンドポイントの検索
AWS CLI の使用
AWS CLI を使用して、describe-replication-groups でレプリケーショングループのエンドポイ
ントとそのクラスターを検出できます。このコマンドはそのレプリケーショングループのプライマリエ
ンドポイントと、レプリケーショングループのすべてのクラスターとそのエンドポイントのリストを返
します。
次のコマンドは、レプリケーショングループ myreplgroup のプライマリエンドポイントと個々のノー
ドのエンドポイントを取得します。
Linux, OS X, or Unix 用:
aws elasticache describe-replication-groups \
--replication-group-id mygroup
Windows の場合:
aws elasticache describe-replication-groups ^
--replication-group-id myreplgroup
API Version 2015-02-02
49
Amazon ElastiCache ユーザーガイド
レプリケーショングループのエンドポイントの検索 AWS
CLI の使用
詳細については、トピック「describe-replication-groups」を参照してください。
API Version 2015-02-02
50
Amazon ElastiCache ユーザーガイド
エンドポイントの検索 ElastiCache API の使用
エンドポイントの検索 ElastiCache API の使用
Amazon ElastiCache API を使用して、ノード、クラスター、レプリケーショングループのエンドポイ
ントを検索できます。
ノードとクラスターのエンドポイントの検索
ElastiCache API を使用
ElastiCache API を使用して、DescribeCacheClusters アクションでクラスターのエンドポイントと
そのノードを検出することができます。Redis クラスターでは、そのアクションがクラスターエンドポ
イントを返します。Memcached クラスターでは、そのアクションは設定エンドポイントを返します。
オプションのパラメータ ShowCacheNodeInfo を含めた場合、アクションはクラスター内の個々のノー
ドにエンドポイントを返します。
次のコマンドは、設定エンドポイントと Memcached クラスター mycluster の個別ノードのエンドポ
イントを取得します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheClusters
&CacheClusterId=mycluster
&ShowCacheNodeInfo=true
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
レプリケーショングループのエンドポイントの検索
ElastiCache API を使用
ElastiCache API を使用して、DescribeReplicationGroups アクションでレプリケーショングルー
プのエンドポイントとそのクラスターを検出できます。このアクションはそのレプリケーショングルー
プのプライマリエンドポイントと、レプリケーショングループのすべてのクラスターとそのエンドポイ
ントのリストを返します。
次のコマンドは、レプリケーショングループ myreplgroup のプライマリエンドポイントと個々のノー
ドのエンドポイントを取得します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeReplicationGroups
&ReplicationGroupId=myreplgroup
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
詳細については、トピック「DescribeReplicationGroups」を参照してください。
API Version 2015-02-02
51
Amazon ElastiCache ユーザーガイド
Redis スナップショットを作成するための十分なメモリが
あることの確認
Amazon ElastiCache の実装のベスト
プラクティス
Abstract
一般的なお客様の問題を識別し、これらの問題を回避する方法についてのガイダンスを提供します。
このトピックでは、Amazon ElastiCache を実装するためのベストプラクティスを示します。
トピック
• Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 52)
• Redis AOF 使用時のディスク容量不足の問題の緩和 (p. 54)
• 障害の軽減 (p. 55)
• 効率的な負荷分散のための ElastiCache クライアントの設定 (p. 58)
Redis スナップショットを作成するための十分な
メモリがあることの確認
バージョン 2.8.22 以降の Redis のスナップショットと同期
Redis 2.8.22 で分岐なしの保存プロセスが導入されました。これにより、同期および保存中にスワップ
を使用することなく、アプリケーションにより多くのメモリを割り当てて使用することができます。詳
細については、「Redis レプリケーション: エンジンバージョンによる違い (p. 132)」を参照してくださ
い。
バージョン 2.8.22 以前の Redis のスナップショットおよび同期
Redis ElastiCache を使用する場合、Redis は多くの場合バックグラウンドの書き込みコマンドを呼び
出します。
• バックアップのためのスナップショットを作成するとき。
• レプリカとレプリケーショングループ内のプライマリを同期させるとき。
• Redis の AOF(Append-Only File)機能を有効にするとき。
• レプリカをマスターに昇格するとき(プライマリ/レプリカの同期が実行される)。
API Version 2015-02-02
52
Amazon ElastiCache ユーザーガイド
バックグラウンド書き込みプロセスとメモリ使用率
Redis がバックグラウンドの書き込みプロセスを実行するときは、常に、このプロセスのオーバーヘッ
ドに対応するのに十分なメモリが利用できる必要があります。十分なメモリを利用できない場合、この
プロセスは失敗します。このため、Redis クラスターの作成時には、十分なメモリがあるノードインス
タンスタイプを選択することが重要です。
バックグラウンド書き込みプロセスとメモリ使用率
バックグラウンド書き込みプロセスが呼び出されると、Redis は常にそのプロセスを生成 (フォーク) し
ます (Redis はシングルスレッドであることを思い出してください)。1 つのフォークがデータをディス
クの Redis .rdb スナップショットファイルに永続化します。もう 1 つのフォークは、すべての読み取
りと書き込みのオペレーションを処理します。スナップショットがポイントインタイムスナップショッ
トであることを保証するために、すべてのデータの更新と追加が、データ領域とは別の使用可能なメモ
リ領域に書き込まれます。
データをディスクに永続化しながら、すべての書き込みオペレーションを記録するのに十分なメモリが
使用できる限り、メモリ不足の問題は発生しません。次のいずれかに該当する場合は、メモリ不足の問
題が発生する可能性があります。
• アプリケーションで頻繁に書き込みオペレーションが実行され、新しいデータや更新されたデータを
受け入れるために使用可能なメモリが大量に必要になる。
• 新しいデータや更新されたデータを書き込むために使用できるメモリが少なすぎる。
• ディスクに永続化するのに長時間かかる大規模なデータセットがあり、大量の書き込みオペレーショ
ンが必要になる。
次の図は、バックグラウンド書き込みプロセス実行時のメモリの使用を示しています。
バックアップを実行する際のパフォーマンスへの影響については、「パフォーマンスに対するバック
アップの影響 (p. 169)」を参照してください。
Redis がスナップショットを実行する方法の詳細については、http://redis.io を参照してください。
リージョンとアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーン
の選択 (p. 39)」を参照してください。
バックグラウンド書き込み実行中のメモリ不足の回
避
BGSAVE または BGREWRITEAOF のようなバックグラウンド書き込みプロセスが呼び出されると、プ
ロセスの失敗を防ぐためには、処理中の書き込みオペレーションが消費する量以上のメモリが必要とな
ります。最悪の場合のシナリオでは、バックグラウンド書き込みのオペレーション中にすべての Redis
API Version 2015-02-02
53
Amazon ElastiCache ユーザーガイド
Redis AOF 使用時のディスク容量不足の問題の緩和
レコードが更新され、新しいレコードがキャッシュに追加されます。このような理由で、
reserved-memory の値をクラスターの maxmemory 値の半分以上に設定することをお勧めします。
maxmemory 値は、データとオペレーションのオーバーヘッドで使用できるメモリを示します。デフォ
ルトのパラメータグループの reserved-memory パラメータを変更することはできないため、クラス
ター用のカスタムパラメータグループを作成する必要があります。reserved-memory のデフォルト値
はゼロ (0) です。この場合、Redis はすべてのメモリをデータ用に消費でき、バックグラウンド書き込
みプロセスなどの他の用途に使用できるメモリが残されない可能性があります。ノードインスタンスタ
イプごとの maxmemory 値については、「Redis のノードタイプ固有のパラメータ (p. 230)」を参照して
ください。
ボックスで reserved-memory パラメータを使用して、Redis のメモリ使用量を抑えることができま
す。
ElastiCache での Redis 固有のパラメータの詳細については、「Redis 固有のパラメータ (p. 219)」を参
照してください。
パラメータグループの作成と変更については、「パラメータグループを作成する (p. 199)」と「パラメー
タグループを変更する (p. 208)」を参照してください。
Redis AOF 使用時のディスク容量不足の問題の緩
和
Amazon ElastiCache の実装を計画した場合、障害の影響を最小限に抑えるような計画を立てる必要が
あります。
AOF ファイルが復旧シナリオで役に立つという理由で AOF を有効にする場合があります。ノードの再
起動やサービスのクラッシュが発生したときに、Redis は AOF ファイルから更新を再生することによっ
て、再起動やクラッシュによって消失したデータを復旧します。
Warning
AOF はすべての障害のシナリオに対応できるわけではありません。たとえば、基になる物理
サーバーでハードウェア障害が発生したためノードでエラーが発生した場合、ElastiCache は
別のサーバーで新しいノードをプロビジョニングします。この場合、AOF ファイルは使用でき
なくなり、データの復旧には使用できません。したがって、Redis はコールドキャッシュを使っ
て再開されます。
耐障害性に対するより適切なアプローチとしての
Redis マルチ AZ の有効化
データの消失に備えて AOF を有効にしている場合は、AOF の代わりに、マルチ AZ を有効にしたレプ
リケーショングループの使用を検討してください。Redis レプリケーショングループを使用している場
合、レプリカに障害が発生すると、レプリカは自動的に置き換えられ、プライマリクラスターと同期さ
れます。Redis レプリケーショングループでマルチ AZ が有効になっており、プライマリに障害が発生
した場合、プライマリはリードレプリカにフェイルオーバーされます。一般的に、この機能は AOF ファ
イルからプライマリを再構築するよりも高速です。信頼性を高め、より迅速な復旧を可能にするため、
異なるアベイラビリティーゾーンに 1 つ以上のリードレプリカを持つレプリケーショングループを作成
し、AOF を使用する代わりにマルチ AZ を有効にすることをお勧めします。このシナリオで AOF は必
要ないため、ElastiCache はマルチ AZ レプリケーショングループで AOF を無効にします。
詳細については、次のトピックを参照してください。
API Version 2015-02-02
54
Amazon ElastiCache ユーザーガイド
障害の軽減
• 障害の軽減 (p. 55)
• ElastiCache レプリケーション (Redis) (p. 131)
• マルチ AZ と自動フェイルオーバーをサポートするレプリケーショングループ (Redis) (p. 134)
障害の軽減
Abstract
耐障害性のアプローチについて説明します。
Amazon ElastiCache の実装を計画した場合、障害がアプリケーションやデータに及ぼす影響を最小限
にとどめるように計画する必要があります。このセクションのトピックでは、アプリケーションおよび
データを障害から保護するために実行できるアプローチについて説明します。
トピック
• Memcached 実行時の障害を軽減する (p. 55)
• Redis 実行時の障害の軽減 (p. 56)
• ベストプラクティス (p. 58)
Memcached 実行時の障害を軽減する
Memcached エンジンを実行する場合に、障害の影響を最小にするためのオプションとして次のものが
あります。障害の軽減に対処する方法には、ノードの障害の軽減とアベイラビリティーゾーンの障害の
軽減の 2 つのタイプがあります。
ノードの障害の軽減
ノードの障害の影響を軽減するには、キャッシュデータをより多くのノードに広げます。Memcached
がレプリケーションをサポートしていないため、ノードの障害によって必ずクラスターからある程度の
データが失われます。
Memcached クラスターを作成すると、1 ~ 20 のノード、または特殊なリクエストによってそれ以上
のノードを作成できます。大量のノード間でデータのパーティションを行うと、ノードで障害が発生し
た場合のデータの損失が小さくなります。たとえば、10 のノード間でデータのパーティションを行う
と、単一のノードに約 10% のキャッシュデータが保存されることになります。この場合、ノードの障
害が起きるとキャッシュの約 10% が失われ、代替ノードが作成されプロビジョニングされたときに置
き換える必要があります。同じデータがより大きな 3 つのノードにキャッシュされている場合は、ノー
ドの障害によってキャッシュされたデータの約 33% が失われます。50 を超えるノードが必要な場合、
または Memcached クラスターで 20 を超えるノードが必要な場合は、ElastiCache 上限緩和申請 (http://
aws.amazon.com/contact-us/elasticache-node-limit-request/) に入力します。
Memcached クラスターのノード数を指定する方法の詳細については、「画面 2: クラスターの詳細を指
定する (p. 99)」を参照してください。
アベイラビリティーゾーンの障害の軽減
アベイラビリティーゾーンの障害の影響を軽減するためには、可能な限り多くのアベイラビリティー
ゾーンでノードを見つけます。AZ の障害が発生した場合には、アベイラビリティーゾーンでキャッシュ
されたデータではなく、その AZ でキャッシュされたデータのみが失われます。
なぜ大量のノードが必要ですか。
API Version 2015-02-02
55
Amazon ElastiCache ユーザーガイド
Redis 実行時の障害の軽減
自分のリージョンに 3 つのアベイラビリティーゾーンのみがある場合、AZ で障害が発生してデータの
約 3 分の 1 を失った場合に、なぜ 3 つ以上のノードが必要になるのですか。
これはいい質問です。当社では、ノードの障害とアベイラビリティーゾーンの障害の 2 つの明確な障害
を軽減しようとしてきました。ご指摘のとおり、データが各アベイラビリティーゾーンにまたがってお
り、ゾーンの 1 つで障害が発生した場合は、ノード数に関係なくその AZ でキャッシュされたデータの
みが失われます。ただしノードで障害が発生した場合は、できるだけ多くのノードがあったほうが、失
われるキャッシュデータの割合が減ります。
クラスターのノード数を決定する「魔法の公式」はありません。データ損失の影響と障害が発生する可
能性を考慮して、個別に判断を下してください。
Memcached クラスターのノード数を指定する方法の詳細については、「画面 3: 詳細設定を編集す
る (p. 100)」を参照してください。
リージョンとアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーン
の選択 (p. 39)」を参照してください。
Redis 実行時の障害の軽減
Redis エンジンを実行する場合に、クラスターまたはアベイラビリティーゾーンの障害の影響を最小に
する方法として、次のオプションがあります。
クラスターの障害の軽減
Redis クラスターの障害の影響を軽減するには、次のオプションがあります:
トピック
• AOF (Redis Append Only Files) (p. 56)
• Redis レプリケーショングループ (p. 57)
• Redis マルチ AZ と自動フェイルオーバー (p. 57)
AOF (Redis Append Only Files)
Redis で AOF が有効になっている場合、データが Redis クラスターに書き込まれるときは、常に対応
するトランザクションレコードが AOF に書き込まれます。Redis プロセスが再起動されると、ElastiCache
が代替のクラスターを作成しプロビジョニングします。次に、クラスターに対して AOF を実行して、
データを再入力します。
クラスターの障害を軽減するための AOF を使用するショートカットには次のものがあります:
• これには時間がかかります。
クラスターの作成とプロビジョニングには数分かかります。AOF のサイズに応じて、クラスターに
対して実行すると、アプリケーションがクラスターのデータにアクセスできないため、データベース
に強制的に直接アクセスしようとするため、より多くの時間がかかります。
• AOF は大きくできます。
クラスターへのすべての書き込みはトランザクションレコードに書き込まれるため、問題のデータ
セットの .rdb ファイルよりも AOF のサイズがはるかに大きくなる場合があります。ElastiCache は、
サイズに制限があるローカルインスタンスストアを利用するため、AOF を有効にすると、ディスク
容量不足の問題が発生する可能性があります。ディスク容量不足の問題は、マルチ AZ を有効にした
のレプリケーショングループを使用することで回避できます。
• AOF を使用してもすべての障害シナリオからデータを保護することはできません。
API Version 2015-02-02
56
Amazon ElastiCache ユーザーガイド
Redis 実行時の障害の軽減
たとえば、基になる物理サーバーでハードウェア障害が発生したためクラスターでエラーが発生した
場合、ElastiCache は別のサーバーで新しいクラスターをプロビジョニングします。この場合、AOF
ファイルが使用可能になることはなく、データの復元に使用できないため、Redis はコールドキャッ
シュから開始します。
詳細については、「AOF (Redis Append Only Files) (p. 187)」を参照してください。
Redis レプリケーショングループ
Redis レプリケーショングループは、アプリケーションの読み取りと書き込みが可能な単一のプライマ
リクラスターと、1 ~ 5 つの読み取り専用のレプリカクラスターで構成されます。データがプライマリ
クラスターに書き込まれるときは、常にリードレプリカクラスターでデータが非同期的に更新されま
す。
いずれかのリードレプリカクラスターで障害が発生した場合、ElastiCache は障害を検出し、クラスター
をオフラインにして、代替のクラスターを起動してプロビジョニングします。新しいクラスターはその
プライマリクラスターと同期されます。この間、アプリケーションはデータの読み取りと書き込み続け
ることができます。
プライマリクラスターで障害が発生した場合、ElastiCache は障害を検出し、クラスターをオフライン
にして、代替のプライマリクラスターを起動してプロビジョニングします。この間、アプリケーション
はクラスターに書き込むことはできません。ただし、クラスターから読み込むことはできます。レプリ
カクラスターは、一時的に新しいクラスターと同期するために一時的にプライマリクラスターとなりま
す。新しいクラスターが同期化された後で、一時プライマリクラスターはリードレプリカにロールに戻
り、新しいクラスターがプライマリクラスターとなります。
保護を強化するために、別のアベイラビリティーゾーン (AZ) でレプリケーショングループのクラスター
を起動します。これは、AZ の障害をその AZ のクラスターのみにとどめ、他のクラスターに影響させ
ないようにするためです。
詳細については、「ElastiCache レプリケーション (Redis) (p. 131)」を参照してください。
Redis レプリケーショングループでクラスターの数を指定する方法については、「画面 2: クラスター
の詳細を指定する (p. 103)」を参照してください。
Redis マルチ AZ と自動フェイルオーバー
Redis レプリケーショングループでマルチ AZ 自動フェイルオーバーを有効にした場合、プライマリク
ラスターで障害が発生すると、Redis はプライマリクラスターの代替を起動しプロビジョニングする代
わりに、リードレプリカに対してフェイルオーバーします。レプリカクラスターへのフェイルオーバー
は、一般的に新しいクラスターを作成しプロビジョニングするよりも高速となります。これは、マルチ
AZ が有効でない場合よりも、アプリケーションがクラスターへの書き込みを素早く再開できることを
意味します。
詳細については、「マルチ AZ と自動フェイルオーバーをサポートするレプリケーショングループ
(Redis) (p. 134)」を参照してください。
アベイラビリティーゾーンの障害の軽減
アベイラビリティーゾーンの障害の影響を軽減するためには、可能な限り多くのアベイラビリティー
ゾーンでクラスターを見つけます。
クラスターがいくつあったとしても、そのすべてが同じアベイラビリティーゾーンにある場合は、その
AZ で壊滅的な障害が発生するとキャッシュデータのすべてが失われます。ただし、複数の AZ にクラ
スターがある場合は、いずれかの AZ で障害が発生しても失われるのはその AZ のクラスターのみとな
ります。
API Version 2015-02-02
57
Amazon ElastiCache ユーザーガイド
ベストプラクティス
クラスターを失った場合は、読み込みオペレーションがより少ない数のクラスターによって共有される
ようになるため、パフォーマンスが低下します。このパフォーマンスの低下は、クラスターが置き換え
られますまで継続します。データが Redis クラスターで仕切られないため、まずクラスターが失われる
場合にのみ、データ損失のリスクは、プライマリクラスタが失われた場合に限定されます。
Redis クラスター用でアベイラビリティーゾーンを指定する方法の詳細については、「画面 3: 詳細設
定を編集する (p. 105)」を参照してください。
リージョンとアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーン
の選択 (p. 39)」を参照してください。
ベストプラクティス
計画を立てる必要のある障害には、個別ノードまたはクラスターの障害と、幅広いアベイラビリティー
ゾーンの障害の 2 つのタイプがあります。ベストの障害軽減プランは、両方のタイプの障害に対処しま
す。
ノードの障害とクラスターの障害の影響の最小化
ノードまたはクラスターの障害の影響を最小限に抑えるには、複数のノードまたはクラスターを実装し
て使用することをお勧めします。
Memcached を実行してノード間でデータを仕切っている場合は、ノードの数を増やすほど 1 つのノー
ドで障害が発生した場合のデータの損失をより小さくすることができます。
Redis を実行している場合は、レプリケーショングループでマルチ AZ を有効にして、プライマリクラ
スターで障害が発生すると ElastiCache が自動的にレプリカにフェイルオーバーするようにしておくこ
とをお勧めします。
アベイラビリティーゾーンの障害の影響を最小限に抑える
アベイラビリティーゾーンの障害の影響を最小限に抑えるには、できるだけ多くの異なるアベイラビリ
ティーゾーンでノードまたはクラスターを起動することをお勧めします。ノードまたはクラスターを
AZ 間に広げることで、予期しない AZ の障害が発生した場合の影響を最小化します。
その他の対策
Redis を実行する場合は、上記に加えてクラスターのバックアップを定期的に取ることをお勧めしま
す。バックアップ (スナップショット) によって、障害や破損が発生した場合にクラスターを復元する
のに使用できる .rdb ファイルが作成されます。詳細については、「ElastiCache バックアップと復元
(Redis) (p. 168)」を参照してください。
効率的な負荷分散のための ElastiCache クライア
ントの設定
Note
このセクションは、複数ノードの Memcached クラスターに適用されます。
複数の ElastiCache Memcached ノードを効果的に使用するには、ノード間でキャッシュキーを分散で
きる必要があります。n 個のノードがあるクラスターを負荷分散するための簡単な方法では、オブジェ
クトのキーのハッシュを計算し、n - hash(key) mod n で結果の余りを求めます。結果の値(0 ~ n
– 1)が、オブジェクトを配置するノードの数になります。
API Version 2015-02-02
58
Amazon ElastiCache ユーザーガイド
Java を使用した整合性のあるハッシュ
この手法は単純で、ノードの数(n)が一定である限り有効です。ただし、クラスターからノードを追
加または削除する場合、移動する必要があるキーの数は (n - 1) / n(n は新しいノード数)です。した
がって、この手法では多数のキーが移動され、特にノード数が大きくなると、初期のキャッシュミスが
多数発生することになります。1 ノードから 2 ノードへのスケーリングでは、キーの (2–1) / 2 (50 パー
セント) が移動されます。9 ノードから 10 ノードへのスケーリングでは、キーの (10–1)/10(90 パーセ
ント)が移動されます。トラフィックのスパイクの理由からスケールアップする場合、多数のキャッ
シュミスが発生することは避けたいものです。多数のキャッシュミスは、トラフィックのスパイクによ
り既に過負荷になっているデータベースのヒットとなります。
このジレンマには、整合性のあるハッシュがソリューションとなります。整合性のあるハッシュではア
ルゴリズムを使用し、ノードがクラスターから追加または削除されるたびに、移動する必要のあるキー
の数は約 1 / n となります (n は新しいノード数)。1 ノードから 2 ノードへのスケーリングでは、キー
の 1/2(50 パーセント)が移動され、最悪のケースとなります。9 ノードから 10 ノードへのスケーリ
ングでは、キーの 1/10(10 パーセント)が移動されます。
ユーザーとして、複数ノードのクラスターに使用されるハッシュアルゴリズムを制御します。整合性の
あるハッシュを使用するようにクライアントを設定することをお勧めします。さいわい、整合性のある
ハッシュを実装する Memcached クライアントライブラリは数多くあり、ほとんどの一般的な言語で提
供されています。使用中のライブラリのドキュメントを参照し、整合性のあるハッシュをサポートする
かどうかと、その実装方法について確認してください。
Java、PHP、または .NET を使用している場合は、いずれかの Amazon ElastiCache クライアントライ
ブラリを使用することをお勧めします。
Java を使用した整合性のあるハッシュ
ElastiCache Memcached Java クライアントは、整合性のあるハッシュ機能が組み込まれたオープン
ソースの spymemcached Java クライアントに基づいています。このライブラリには、整合性のある
ハッシュを実装する KetamaConnectionFactory クラスが含まれています。デフォルトでは、整合性の
あるハッシュは spymemcached では無効になっています。
詳細については、KetamaConnectionFactory のドキュメント(http://dustin.sallings.org/
java-memcached-client/apidocs/net/spy/memcached/KetamaConnectionFactory.html)を参照してくだ
さい。
PHP を使用した整合性のあるハッシュ
ElastiCache Memcached PHP クライアントは、組み込みの Memcached PHP ライブラリのラッパーで
す。デフォルトでは、整合性のあるハッシュは Memcached PHP ライブラリによって無効になってい
ます。
整合性のあるハッシュを有効にするには、以下のコードを使用します。
$m = new Memcached();
$m->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
先ほどのコードに加えて、php.ini ファイルで memcached.sess_consistent_hash も有効にするこ
とをお勧めします。
詳細については、Memcached PHP の実行時設定に関するドキュメント(http://php.net/manual/en/
memcached.configuration.php)を参照してください。特に、memcached.sess_consistent_hash
パラメータについて参照してください。
API Version 2015-02-02
59
Amazon ElastiCache ユーザーガイド
.NET を使用した整合性のあるハッシュ
.NET を使用した整合性のあるハッシュ
ElastiCache Memcached .NET クライアントは、Enyim Memcached のラッパーです。デフォルトで
は、Enyim Memcached クライアントによって、整合性のあるハッシュが有効になります。
詳細については、memcached/locator のドキュメント(https://github.com/enyim/EnyimMemcached/
wiki/MemcachedClient-Configuration#user-content-memcachedlocator)を参照してください。
API Version 2015-02-02
60
Amazon ElastiCache ユーザーガイド
遅延読み込み
キャッシュ戦略
Abstract
キャッシュを入力して維持するための戦略。
このトピックでは、キャッシュを入力して維持する戦略について説明します。
キャッシュするデータとデータへのアクセスパターンに基づいて、キャッシュを入力し維持するために
実装する戦略です。たとえば、おそらくゲームサイト、Facebook の投稿、トレンドのニュースのラン
キングトップ 10 で同じ同じ戦略は使用したくないでしょう。このセクションの後半では、一般的な
キャッシュのメンテナンス戦略、利点および欠点について説明します。
トピック
• 遅延読み込み (p. 61)
• 書き込みスルー (p. 63)
• TTL の追加 (p. 64)
• 関連トピック (p. 66)
遅延読み込み
その名前が示すようため、遅延読み込みは、必要なときにのみキャッシュにデータを読み込むキャッ
シュ戦略です。
遅延読み込みの仕組み
Amazon ElastiCache メモリ内のキー / 値ストアで、アプリケーションとアプリケーションがアクセス
するデータストア (データベース) 間にあります。アプリケーションがデータをリクエストする場合は、
常に ElastiCache キャッシュに最初にリクエストを行います。データがキャッシュにあり最新である場
合、ElastiCache はアプリケーションにデータを返します。データがキャッシュにない場合、または
キャッシュのデータの期限が切れている場合は、アプリケーションは、アプリケーションにデータを返
すデータストアに対してデータをリクエストします。次に、アプリケーションは、ストアから受信した
データをキャッシュに書き込みます。したがって、次回リクエストされたときはより迅速に取得できま
す。
API Version 2015-02-02
61
Amazon ElastiCache ユーザーガイド
シナリオ 1: キャッシュヒット
シナリオ 1: キャッシュヒット
データがキャッシュにあり期限切れでない場合
1.
2.
アプリケーションは、キャッシュに対してデータをリクエストします。
キャッシュはアプリケーションにデータを返します。
シナリオ 2: キャッシュミス
データがキャッシュにないか期限切の場合
1.
2.
アプリケーションは、キャッシュに対してデータをリクエストします。
キャッシュにはリクエストされたデータがないため、null を返します。
3.
4.
アプリケーションはデータベースに対してデータをリクエストし、取得します。
アプリケーションは、新しいデータでキャッシュを更新します。
次の図は、これらの両方のプロセスを示しています。
遅延読み込みの利点と欠点
遅延読み込みの利点
• リクエストされたデータのみをキャッシュします。
ほとんどのデータがリクエストされないため、遅延読み込みではデータでキャッシュがいっぱいにな
ることを回避できます。
• ノードの障害は致命的ではありません。
ノードで障害が発生して新しい空のノードに置き換えられた場合、アプリケーションはレイテンシー
が長くなっても機能し続けます。リクエストは新しいノードに対して行われるため、各キャッシュで
エラーが発生すると、後続のリクエストがキャッシュからデータを取得できるように、データベース
クエリが生じて、キャッシュへのデータのコピーが行われます。
遅延読み込みの欠点
• キャッシュミスのペナルティがあります。
1 回のキャッシュのミスで 3 回のトリップ、
API Version 2015-02-02
62
Amazon ElastiCache ユーザーガイド
遅延読み込みコード
1. キャッシュに対する最初のデータリクエスト
2. データベースへのデータクエリ
3. キャッシュにデータを書き込む
アプリケーションによるデータの取得に相当な遅延が発生する可能性があります。
• 古いデータ。
キャッシュミスがある場合にのみデータがキャッシュに書き込まれる場合は、データベスのデータが
変更されるまでキャッシュが更新されないため、キャッシュのデータが古くなる可能性があります。
この問題は、「書き込みスルー (p. 63)」および「TTL の追加 (p. 64)」戦略で扱います。
遅延読み込みコード
次のコードは、遅延読み込みロジックの擬似コードの例です。
// *****************************************
// function that returns a customer's record.
// Attempts to retrieve the record from the cache.
// If it is retrieved, the record is returned to the application.
// If the record is not retrieved from the cache, it is
//
retrieved from the database,
//
added to the cache, and
//
returned to the application
// *****************************************
get_customer(customer_id)
customer_record = cache.get(customer_id)
if (customer_record == null)
customer_record = db.query("SELECT * FROM Customers WHERE id == {0}",
customer_id)
cache.set(customer_id, customer_record)
return customer_record
データを取得アプリケーションコードは次のとおりです:
customer_record = get_customer(12345)
書き込みスルー
書き込みスルー戦略では、データがデータベースに書き込まれると常にデータを追加するか、キャッ
シュのデータを更新します。
書き込みスルーの利点と欠点
書き込みスルーの利点
• キャッシュのデータが古くなりません。
キャッシュにデータベースにデータが書き込まれるたびにキャッシュのデータが更新されるため、
キャッシュのデータが常に最新の状態になります。
API Version 2015-02-02
63
Amazon ElastiCache ユーザーガイド
書き込みスルーコード
• 書き込みペナルティ対読み込みペナルティ
1 回の書き込みで 2 回のトリップ:
1. キャッシュへの書き込み
2. データベースへの書き込み
レイテンシーをプロセスに追加します。つまり、エンドユーザーは一般的に、データの取得時よりも
データの更新時のレイテンシーに対して寛容です。更新は作業量が大きく時間がかかるのが常です。
書き込みスルーの欠点
• 欠落データ。
新規ノードをスピンアップする場合は、ノード障害または拡張により、データの欠落が生じてデータ
ベースにそれが追加されるか更新されるまで欠落した状態が継続します。これは、「遅延読み込
み (p. 61)」を書き込みスルーと共に使用することで最小限にできます。
• キャッシュの変動。
ほとんどのデータは読み込まれないため、読まれることのないクラスターに大量のデータが存在する
ことになります。これはリソース浪費です。「TTL の追加 (p. 64)」で、無駄な領域を最小限に抑え
ることができます。
書き込みスルーコード
次のコードは、書き込みスルーロジックの擬似コードの例です。
// *****************************************
// function that saves a customer's record.
// *****************************************
save_customer(customer_id, values)
customer_record = db.query("UPDATE Customers WHERE id = {0}", customer_id,
values)
cache.set(customer_id, customer_record)
return success
データを更新するアプリケーションコードは次のとおりです:
save_customer(12345,{"address":"123 Main"})
TTL の追加
遅延読み取りはデータが古くなる可能性がありますが、空ノードによる障害は発生しません。書き込み
スルーでは常に新しいデータとなりますが、空ノードの障害が発生して、過剰なデータがキャッシュに
入力される場合があります。それぞれの書き込みに有効期限 (TTL) の値を追加することで、それぞれの
戦略の利点ができて、過剰なデータでキャッシュがいっぱいになる事態が避けられます。
TTL とは。
有効期限(TTL)は秒数を指定する整数値です(Redis では、キーの有効期間を秒またはミリ秒で指定
できます)。アプリケーションが期限の切れたキーを読み込もうとすると、キーが見つからないものと
して処理されます。これは、データベースにキーのクエリが行われて、キャッシュが更新されることを
API Version 2015-02-02
64
Amazon ElastiCache ユーザーガイド
コード例
意味します。これにより値が古くならないことが保証されますが、古すぎるデータが維持されるため、
キャッシュの値をデータベースから時々更新する必要があります。
詳細については、「Redis setコマンド」または「Memcached setコマンド」を参照してください。
コード例
次のコードは、TTL のある書き込みスルーロジックの擬似コードの例です。
// *****************************************
// function that saves a customer's record.
// The TTL value of 300 means that the record expires
//
300 seconds (5 minutes) after the set command
//
and future reads will have to query the database.
// *****************************************
save_customer(customer_id, values)
customer_record = db.query("UPDATE Customers WHERE id = {0}", customer_id,
values)
cache.set(customer_id, customer_record, 300)
return success
次のコードは、TTL のある遅延読み込みロジックの擬似コードの例です。
// *****************************************
// function that returns a customer's record.
// Attempts to retrieve the record from the cache.
// If it is retrieved, the record is returned to the application.
// If the record is not retrieved from the cache, it is
//
retrieved from the database,
//
added to the cache, and
//
returned to the application.
// The TTL value of 300 means that the record expires
//
300 seconds (5 minutes) after the set command
//
and subsequent reads will have to query the database.
// *****************************************
get_customer(customer_id)
customer_record = cache.get(customer_id)
if (customer_record != null)
if (customer_record.TTL < 300)
return customer_record
// return the record and exit function
// do this only if the record did not exist in the cache OR
//
the TTL was >= 300, i.e., the record in the cache had expired.
customer_record = db.query("SELECT * FROM Customers WHERE id = {0}", custom
er_id)
cache.set(customer_id, customer_record, 300) // update the cache
return customer_record
// return the newly retrieved record
and exit function
アプリケーションコードは次のとおりです:
API Version 2015-02-02
65
Amazon ElastiCache ユーザーガイド
関連トピック
save_customer(12345,{"address":"123 Main"})
customer_record = get_customer(12345)
関連トピック
• キャッシュの方法。 (p. 3)
• キャッシュエンジンとバージョンの選択 (p. 32)
• ElastiCache クラスターのスケーリング (p. 127)
API Version 2015-02-02
66
Amazon ElastiCache ユーザーガイド
ElastiCache ノード
Abstract
一般的なお客様の問題を識別し、これらの問題を回避する方法についてのガイダンスを提供します。
ノードとは、ElastiCache のデプロイにおける最小の構成要素です。これは、安全なネットワークに接
続された RAM の固定サイズの断片です。各ノードでは、キャッシュクラスターの作成時に選択された
項目に応じて、Memcached または Redis が実行されます。各ノードはそれぞれ Domain Name Service
(DNS) 名とポートを持っています。それぞれ関連付けられている異なるメモリ量で、複数のタイプの
ElastiCache ノードがサポートされています。
デプロイメントに必要なノードインスタンスタイプは、クラスターで必要なデータ量と使用するエンジ
ンの両方の影響を受けます。一般的に、シャーディングがサポートされていることから Memcached の
デプロイメントではより多くの小さなノードがあり、Redis では少数の大きなノードタイプがありま
す。使用するノードサイズの詳細な説明については、「Memcached ノードサイズの選択 (p. 68)Redis
ノードサイズの選択 (p. 69)」を参照してください。
トピック
• ノードサイズの選択 (p. 68)
• ElastiCache リザーブドノード (p. 70)
• サポートされているノードの種類 (p. 80)
• ノードが置き換え対象となった場合に実行可能なアクション (p. 81)
他の ElastiCache ノードのオペレーション
ノードを含めた追加のオペレーション:
• クラスターへのノードの追加 (p. 114)
• クラスターからのノードの削除 (p. 119)
• スケーリングの拡張 / 縮小: クラスターのノードインスタンスタイプの変更 (p. 129)
• ElastiCache エンドポイントの検索 (p. 42)
• ノードの自動検出(Memcached) (p. 84)
API Version 2015-02-02
67
Amazon ElastiCache ユーザーガイド
ノードサイズの選択
ノードサイズの選択
このセクションは、使用するノードシナリオどのインスタンスタイプが必要となるかを判断するのに役
立ちます。エンジン、Memcached、および Redis ではクラスターの実装方法が異なるため、エンジン
の選択により、アプリケーションで必要となるノードサイズに違いが発生します。
トピック
• Memcached ノードサイズの選択 (p. 68)
• Redis ノードサイズの選択 (p. 69)
Memcached ノードサイズの選択
Memcached クラスターには 1 個または複数のノードが含まれます。このため、クラスターで必要なメ
モリとノードで必要なメモリには関連性がありますが、同じではありません。ノードの数を減らすか、
より多くのより小さなノードを確保することにより、必要なクラスターメモリの容量を実現できます。
また、ニーズの変化に応じてクラスターへのノードの追加や削除を行い、必要なものだけに支払うこと
ができます。
クラスターの合計メモリ容量は、クラスター内のキャッシュノードの数に各ノードの RAM 容量を乗算
して計算されます。各キャッシュノードの容量はキャッシュノードタイプに基づいています。
クラスター内のキャッシュノード数は、Memcached を実行するクラスターの可用性の重要な要素で
す。1 つのキャッシュノードで障害が発生した場合、ElastiCache で障害が発生したキャッシュノード
の置き換えをプロビジョニングして再入力する間、アプリケーションの可用性やバックエンドデータ
ベースへの負荷に影響を及ぼす可能性があります。この潜在的な可用性に対する影響を軽減するには、
少数の容量の大きいノードを使用する代わりに、それぞれが容量の小さい多数のキャッシュノードにメ
モリとコンピューティングの容量を分散させます。
40 GB のキャッシュメモリが必要なシナリオでは、次のいずれかの方法で設定できます。
• それぞれのメモリが 3.22 GB である 13 個の cache.t2.medium キャッシュノードを使用する = 41.86
GB。
• それぞれのメモリが 6.05 GB である 7 個の cache.m3.large キャッシュノードを使用する = 42.35
GB.
• それぞれのメモリが 13.5 GB である 3 個の cache.r3.large キャッシュノードを使用する = 40.5
GB.
これらのオプションは、それぞれ同様のメモリ容量を提供しますが、クラスターのコンピューティング
容量は異なります。
Note
Memcached を実行するクラスターでは、各キャッシュノードの使用可能なメモリの一部は接
続のオーバーヘッド用に使用されます。詳細については、「Memcached 接続オーバーヘッ
ド (p. 217)」を参照してください。
複数のノードを使用して、それらの間でキーを分散する必要があります。各ノードには、独自のエンド
ポイントがあります。エンドポイント管理を簡単にするには、ElastiCache の自動検出機能を使用して、
クライアントプログラムがキャッシュクラスターのすべてのノードを自動的に識別できるようにしま
す。詳細については、「ノードの自動検出(Memcached) (p. 84)」を参照してください。
必要な容量が不明な場合は、試験的に 1 個の cache.m3.medium のノードから始めて、ElastiCache に
発行される CloudWatch のメトリックスで、メモリの使用状況、CPU 使用率、キャッシュヒット率を
モニタリングすることをお勧めします。CloudWatch のメトリックス (ElastiCache 用) の詳細について
API Version 2015-02-02
68
Amazon ElastiCache ユーザーガイド
Redis ノードサイズの選択
は、「CloudWatch メトリックスを使用したモニタリング (p. 266)」を参照してください。本稼働のより
大きな優れたワークロードの場合は、R3 ノードが最高のパフォーマンスと RAM のコストバリューを
提供します。
クラスターで目的のヒットレートが達成されない場合は、簡単な操作でノードを追加し、クラスター内
の合計使用可能メモリを増やすことができます。
クラスターが、ヒットレートが十分ではない CPU の制約を受けていることがわかった場合は、キャッ
シュノードタイプでより大きな処理能力を持つ新しい新しいクラスターをセットアップしてみてくださ
い。
Redis ノードサイズの選択
Redis クラスターは単一ノードクラスターです。したがって、クラスターのサイズ要件により、ノード
インスタンスタイプのサイズ要件が決まります。
以下の質問を使用して、Redis クラスターに適したインスタンスタイプノードを判断します。
• データに必要となる合計メモリ量。
キャッシュする項目のサイズを取得して、キャッシュで同時に維持する項目数を乗算することで、一
般的な予測値が得られます。項目サイズを合理的に算出するには、キャッシュ項目をシリアル化して
文字数をカウントします。
• アプリケーションでの書き込み負荷の大きさ。
書き込み量が多いアプリケーションでは、スナップショットの作成時またはフェイルオーバー時に、
Redis データでは使用されないより多くの使用可能メモリが必要となります。BGSAVE プロセスの実
行時 – スナップショットの作成時、レプリケーショングループでのプライマリクラスターとレプリカ
の同期時、AOF (append-only file) 機能を有効にした場合、レプリカのプライマリへの昇格時 (マルチ
AZ で自動フェイルオーバーを有効にした場合) – データが使用する十分な量のメモリを用意して、
BGSAVE プロセスの実行時に生じるすべての書き込みに対応する必要があります。最悪の場合は、処
理中にすべての Redis データが書き換えられます。その場合、データ単独で必要なメモリの倍のサイ
ズのノードインスタンスが必要になります。
詳細については、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 52)」
を参照してください。
たとえば、すべての項目の合計サイズが 12 GB になると予測される場合は、メモリ容量が 13.3 GB で
ある cache.m3.xlarge ノードまたはメモリ容量が 13.5 GB である cache.r3.large ノードを使用
できます。ただし、BGSAVE オペレーションではより多くのメモリが必要になる場合があります。書き
込み量の多いアプリケーションがある場合は、メモリ要件の倍のメモリで最低 24 GB が必要になりま
す。これは、cache.m3.2xlarge で 27.9 GB、cache.r3.xlarge で 28.4 GB のメモリが必要である
ことを意味します。
キャッシュクラスターが実行中であるときに、CloudWatch に発行される、メモリの使用状況、プロ
セッサの使用率、キャッシュヒット、およびキャッシュミスのメトリックスをモニタリングできます。
クラスターで目的のヒットレートが達成されない場合や、キーが頻繁に削除されている場合は、CPU
やメモリの容量が大きい別のキャッシュノードサイズを選択できます。
CPU の使用率をモニタリングする場合、Redis はシングルスレッドであることに留意します。したがっ
て、報告された CPU 使用率に CPU のコア数を乗算することで、実際の使用率が得られます。たとえ
ば、4 つのコアを持つ CPU で使用率 20% と報告された場合、実際に Redis が使用している 1 つのコ
アは 80% で稼働しています。
API Version 2015-02-02
69
Amazon ElastiCache ユーザーガイド
リザーブドノード
ElastiCache リザーブドノード
リザーブドキャッシュノードでは、キャッシュノードに対して一括前払いが可能で、低料金で 1 年間ま
たは 3 年間キャッシュノードを予約することができます。
T2、M3、および R3 ファミリーでは、リザーブドキャッシュノードは高使用率サービスとして使用で
きます。古いノードタイプで使用可能なリザーブドキャッシュノードには 3 つの提供タイプ — 軽度、
中度、重度使用 — があるため、予想される使用状況に基づいていずれかの提供タイプを選択すること
で、ElastiCache のコストを最適化できます。
コマンドラインツール、API、または AWS マネジメントコンソールを使用して、使用可能なリザーブ
ドキャッシュノードを一覧表示および購入できます。リザーブドキャッシュノードサービスの 3 つのタ
イプは、クラスや期間に基づいています。
トピック
• リザーブドノードサービス (p. 70)
• リザーブドノードの説明 (p. 72)
• 使用可能なリザーブドキャッシュノードサービスの説明 (p. 74)
• リザーブドノードの購入 (p. 77)
リザーブドノードサービス
重度使用のリザーブドキャッシュノードでは、基準となる処理能力を一定に保った安定したワークロー
ドが可能になります。重度使用のリザーブドキャッシュノードの予約金は最も高くなりますが、インス
タンスの実行時間がリザーブドキャッシュノードの期間の 79% を超える場合は、節約額が最も大きく
なる可能性があります(最大でオンデマンド料金の 70% 引き)。重度使用のリザーブドキャッシュノー
ドは、他のリザーブドキャッシュノードとは異なり、予約金を 1 回支払えば、キャッシュノードが実行
されているかどうかにかかわらず、期間中は低額の使用料が時間単位で適用されます。
中度使用のリザーブドキャッシュノードは、リザーブドキャッシュノードを長い時間使用する場合に、
予約金を低く抑えたいときや、キャッシュノードが停止したらすぐに支払いを中止できるようにしたい
ときに最適です。中度使用のリザーブドキャッシュノードは、インスタンスの実行時間がリザーブド
キャッシュノードの期間の 40% を超える予定の場合に、コスト効果の高い選択肢になります。このオ
プションを使用すると、オンデマンド料金から最大 64% を節約できます。中度使用のリザーブドキャッ
シュノードは、軽度使用のリザーブドキャッシュノードと比べると、予約金はわずかに上回りますが、
キャッシュノード実行時の時間あたりの使用料は低く抑えられます。
軽度使用のリザーブドキャッシュノードは、1 日に数時間、週に数日間のみ実行される定期的なワーク
ロードに最適です。軽度使用のリザーブドキャッシュノードでは、予約金を 1 回支払えば、キャッシュ
ノードの実行時に時間単位で割引使用料が適用されます。キャッシュノードの実行時間がリザーブド
キャッシュノードの期間の 17% を超えるとコスト節減が始まり、リザーブドキャッシュノードの全期
間を通してオンデマンド料金から最大 56% を節約できます。
リザーブドキャッシュノードサービス
提供タイプ
前払いコスト
使用料
メリット
重度使用
高
時間当たりの使用料が最
も低く、リザーブド
キャッシュノードの使用
状況にかかわらず期間全
体に適用されます。
リザーブドキャッシュ
ノードの使用が 3 年間
で全体の 79% を超える
場合は、全体的なコスト
を最も抑えることができ
ます。
API Version 2015-02-02
70
Amazon ElastiCache ユーザーガイド
リザーブドノードサービス
提供タイプ
前払いコスト
使用料
中度使用
平均
キャッシュノードの使用 作業負荷が一定していな
時間に応じて使用料が時 い場合、または、それほ
間単位で発生します。 ど頻繁には利用しない
(3 年間で全体の 40%
を超える)場合に適して
います。
軽度使用
低
時間当たりの使用料で課
金されます。3 種類のう
ち最も高い料金設定です
が、課金されるのは、リ
ザーブドキャッシュノー
ドを使用しているときに
限られます。
API Version 2015-02-02
71
メリット
常時実行する場合は全体
的なコストが最も高くな
りますが、まれにしかリ
ザーブドキャッシュノー
ドを使用しない (3 年間
で全期間の約 15% を超
える程度) 場合は、この
オプションが適していま
す。
Amazon ElastiCache ユーザーガイド
リザーブドノードの説明
リザーブドノードの説明
次のような AWS アカウントのリザーブドノードに関する情報を取得できます。
リザーブドノードの説明 AWS マネジメントコンソールの使用
1.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
ナビゲーションリストで、[Reserved Cache Nodes] リンクをクリックします。
アカウントのリザーブドキャッシュノードが [Reserved Cache Nodes] の一覧に表示されます。リ
スト内のいずれかのリザーブドキャッシュノードをクリックして、コンソールの下部にある詳細ペ
インにリザーブドキャッシュノードの詳細情報を表示できます。
リザーブドノードの説明 AWS CLI の使用
AWS アカウントのリザーブドノードに関する情報を入手するには、コマンドプロンプトで次のコマン
ドを入力します。
aws elasticache describe-reserved-cache-nodes --headers
このコマンドにより、以下のような出力が返されます。
RESERVATION ReservationId
Class
Start Time
Duration
Fixed Price Usage Price Count State
Description
Offering Type
RESERVATION ki-real-ri-test5 cache.m1.small 2013-07-09T23:37:44.720Z 1y
455.00 USD
0.092 USD
1
retired memcached
Medium Utiliza
tion
リザーブドノードの説明 ElastiCache API の使用
AWS アカウントのリザーブドノードに関する情報を取得するには、DescribeReservedCacheNodes
アクションを呼び出します。
API Version 2015-02-02
72
Amazon ElastiCache ユーザーガイド
リザーブドノードの説明
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeReservedCacheNodes
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
この呼び出しにより、以下のような出力が返されます。
<DescribeReservedCacheNodesResponse xmlns="http://elasticache.us-west2.amazonaws.com/doc/2013-06-15/">
<DescribeReservedCacheNodesResult>
<ReservedCacheNodes>
<ReservedCacheNode>
<OfferingType>Medium Utilization</OfferingType>
<CurrencyCode>USD</CurrencyCode>
<RecurringCharges/>
<ProductDescription>memcached</ProductDescription>
<ReservedCacheNodesOfferingId>649fd0c8-cf6d-47a0-bfa6060f8e75e95f</ReservedCacheNodesOfferingId>
<State>payment-failed</State>
<ReservedCacheNodeId>myreservationid</ReservedCacheNodeId>
<CacheNodeCount>1</CacheNodeCount>
<StartTime>2010-12-15T00:25:14.131Z</StartTime>
<Duration>31536000</Duration>
<FixedPrice>227.5</FixedPrice>
<UsagePrice>0.046</UsagePrice>
<CacheNodeType>cache.m1.small</CacheNodeType>
</ReservedCacheNode>
<ReservedCacheNode>
(...output omitted...)
</ReservedCacheNode>
</ReservedCacheNodes>
</DescribeReservedCacheNodesResult>
<ResponseMetadata>
<RequestId>23400d50-2978-11e1-9e6d-771388d6ed6b</RequestId>
</ResponseMetadata>
</DescribeReservedCacheNodesResponse>
簡潔にするため、出力の一部は省略されています。
API Version 2015-02-02
73
Amazon ElastiCache ユーザーガイド
使用可能なリザーブドキャッシュノードサービスの説明
使用可能なリザーブドキャッシュノードサービスの
説明
リザーブドクラスターを購入する前に、使用可能なリザーブドクラスターサービスに関する情報を取得
できます。
以下の例では、使用可能なリザーブドクラスターサービスの料金表と情報を入手する手順を示します。
使用可能なリザーブドキャッシュノードサービスの説明 AWS
マネジメントコンソールの使用
1.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
3.
4.
ナビゲーションリストで、[Reserved Cache Nodes] リンクをクリックします。
[Purchase Reserved Cache Node] ボタンをクリックします。
[Product Description] ドロップダウンリストボックスで、エンジンを Memcached または Redis か
ら選択します。
使用できるサービスを確認するには、次の 3 つのドロップダウンリストボックスから選択します。
5.
• キャッシュノードタイプ
• 期間
• 提供タイプ
6.
選択後、ノードあたりの費用および選択した内容の全費用が [Purchase Reserved Cache Nodes]
ウィザードに表示されます。
これらのノードを購入して料金が発生することを防ぐには、[Cancel] をクリックします。
使用可能なリザーブドキャッシュノードサービスの説明 AWS
CLI の使用
使用可能なリザーブドクラスターサービスの料金表と情報を入手するには、コマンドプロンプトで次の
コマンドを入力します。
aws elasticache describe-reserved-cache-nodes-offerings
--headers
この呼び出しにより、以下のような出力が返されます。
OFFERING OfferingId
Class
Duration
Price Usage Price Description Offering Type
OFFERING 438012d3-4052-4cc7-b2e3-8d3372e0e706 cache.m1.large
1y
1820.00 USD 0.368 USD
memcached
Medium Utilization
OFFERING 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f cache.m1.small
1y
227.50 USD 0.046 USD
memcached
Medium Utilization
OFFERING 123456cd-ab1c-47a0-bfa6-12345667232f cache.m1.small
1y
162.00 USD
0.00 USD
memcached
Heavy Utilization
Recurring Charges:
Amount Currency Frequency
Recurring Charges:
0.123
USD
Hourly
OFFERING 123456cd-ab1c-37a0-bfa6-12345667232d cache.m1.large
1y
700.00 USD
0.00 USD
memcached
Heavy Utilization
API Version 2015-02-02
74
Fixed
Amazon ElastiCache ユーザーガイド
使用可能なリザーブドキャッシュノードサービスの説明
Recurring Charges:
Amount Currency Frequency
Recurring Charges:
1.25
USD
Hourly
OFFERING 123456cd-ab1c-17d0-bfa6-12345667234e cache.m1.xlarge
4242.00 USD
2.42 USD
memcached
Light Utilization
1y
使用可能なリザーブドキャッシュノードサービスの説明
ElastiCache API の使用
使用可能なリザーブドクラスターサービスの料金表と情報を入手するには、
DescribeReservedCacheNodesOfferings アクションを呼び出します。
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeReservedCacheNodesOfferings
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
この呼び出しにより、次のような出力が返されます。
<DescribeReservedCacheNodesOfferingsResponse xmlns="http://elasticache.us-west2.amazonaws.com/doc/2013-06-15/">
<DescribeReservedCacheNodesOfferingsResult>
<ReservedCacheNodesOfferings>
<ReservedCacheNodesOffering>
<Duration>31536000</Duration>
<OfferingType>Medium Utilization</OfferingType>
<CurrencyCode>USD</CurrencyCode>
<RecurringCharges/>
<FixedPrice>1820.0</FixedPrice>
<ProductDescription>memcached</ProductDescription>
<UsagePrice>0.368</UsagePrice>
<ReservedCacheNodesOfferingId>438012d3-4052-4cc7-b2e38d3372e0e706</ReservedCacheNodesOfferingId>
<CacheNodeType>cache.m1.large</CacheNodeType>
</ReservedCacheNodesOffering>
<ReservedCacheNodesOffering>
(...output omitted...)
</ReservedCacheNodesOffering>
</ReservedCacheNodesOfferings>
</DescribeReservedCacheNodesOfferingsResult>
<ResponseMetadata>
<RequestId>5e4ec40b-2978-11e1-9e6d-771388d6ed6b</RequestId>
</ResponseMetadata>
</DescribeReservedCacheNodesOfferingsResponse>
API Version 2015-02-02
75
Amazon ElastiCache ユーザーガイド
使用可能なリザーブドキャッシュノードサービスの説明
簡潔にするため、出力の一部は省略されています。
API Version 2015-02-02
76
Amazon ElastiCache ユーザーガイド
リザーブドノードの購入
リザーブドノードの購入
以下の例は、リザーブドノードサービスを購入する方法を示しています。
Important
このセクションの例に従うと、料金が発生してお客様の AWS アカウントに請求されます。
リザーブドノードの購入 AWS マネジメントコンソールの使用
この例では、リザーブドキャッシュノード ID が myreservationID の特定のリザーブドキャッシュノー
ドサービス 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f を購入する方法を示しています。
1.
2.
3.
4.
5.
6.
7.
8.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ナビゲーションリストで、[Reserved Cache Nodes] リンクをクリックします。
[Purchase Reserved Cache Node] ボタンをクリックします。
[Product Description] ドロップダウンリストボックスで、キャッシュノードタイプを選択します。
[Cache Node Class] ドロップダウンリストボックスからキャッシュノードクラスを選択します。
[Term] ドロップダウンリストボックスで、キャッシュノードを予約する期間を選択します。
[Offering Type] ドロップダウンリストボックスで、提供タイプを選択します。
必要に応じて、[Reserved Cache Node ID] テキストボックスにリザーブドキャッシュノード ID を
入力できます。
Note
リザーブドキャッシュノード ID は、この予約を追跡するユーザー指定の一意識別子です。
このボックスが空白のまま場合、ElastiCache により予約の識別子が自動的に生成されま
す。
9.
[Next] ボタンをクリックします。
[Purchase Reserved Cache Node] ダイアログボックスに、選択したリザーブドキャッシュノード
の属性の要約と支払い額が表示されます。
10. 先に進む場合は、[Yes, Purchase] ボタンをクリックして、リザーブドキャッシュノードを購入し
ます。
Important
[Yes, Purchase] をクリックすると、選択したリザーブドノードの料金が発生します。これ
らの料金の発生を避けるには、[Cancel] をクリックします。
リザーブドノードの購入 AWS CLI の使用
以下の例では、リザーブドクラスター ID が myreservationID の特定のリザーブドクラスターサービス
649fd0c8-cf6d-47a0-bfa6-060f8e75e95f を購入する方法を示しています。
コマンドプロンプトで以下のコマンドを入力します。
Linux, OS X, or Unix 用:
API Version 2015-02-02
77
Amazon ElastiCache ユーザーガイド
リザーブドノードの購入
aws elasticache purchase-reserved-cache-nodes-offering \
--reserved-cache-nodes-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f \
--reserved-cache-node-id myreservationID
Windows の場合:
aws elasticache purchase-reserved-cache-nodes-offering ^
--reserved-cache-nodes-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f ^
--reserved-cache-node-id myreservationID
このコマンドにより、以下のような出力が返されます。
RESERVATION ReservationId
tion Fixed Price Usage Price
Type
RESERVATION myreservationid
455.00 USD
0.092 USD
Utilization
Class
Count State
Start Time
Description
Dura
Offering
cache.m1.small 2013-12-19T00:30:23.247Z 1y
1
payment-pending memcached
Medium
リザーブドノードの購入 ElastiCache API の使用
以下の例では、リザーブドクラスター ID が myreservationID の特定のリザーブドクラスターサービス
649fd0c8-cf6d-47a0-bfa6-060f8e75e95f を購入する方法を示しています。
以下のパラメータを使用して、PurchaseReservedCacheNodesOffering アクションを呼び出しま
す。
• ReservedCacheNodesOfferingId = 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f
• ReservedCacheNodeID = myreservationID
• CacheNodeCount = 1
API Version 2015-02-02
78
Amazon ElastiCache ユーザーガイド
リザーブドノードの購入
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=PurchaseReservedCacheNodesOffering
&ReservedCacheNodesOfferingId=649fd0c8-cf6d-47a0-bfa6-060f8e75e95f
&ReservedCacheNodeID=myreservationID
&CacheNodeCount=1
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
この呼び出しにより、以下のような出力が返されます。
<PurchaseReservedCacheNodesOfferingResponse xmlns="http://elasticache.us-west2.amazonaws.com/doc/2013-06-15/">
<PurchaseReservedCacheNodesOfferingResult>
<ReservedCacheNode>
<OfferingType>Medium Utilization</OfferingType>
<CurrencyCode>USD</CurrencyCode>
<RecurringCharges/>
<ProductDescription>memcached</ProductDescription>
<ReservedCacheNodesOfferingId>649fd0c8-cf6d-47a0-bfa6-060f8e75e95f</Re
servedCacheNodesOfferingId>
<State>payment-pending</State>
<ReservedCacheNodeId>myreservationID</ReservedCacheNodeId>
<CacheNodeCount>10</CacheNodeCount>
<StartTime>2013-07-18T23:24:56.577Z</StartTime>
<Duration>31536000</Duration>
<FixedPrice>123.0</FixedPrice>
<UsagePrice>0.123</UsagePrice>
<CacheNodeType>cache.m1.small</CacheNodeType>
</ReservedCacheNode>
</PurchaseReservedCacheNodesOfferingResult>
<ResponseMetadata>
<RequestId>7f099901-29cf-11e1-bd06-6fe008f046c3</RequestId>
</ResponseMetadata>
</PurchaseReservedCacheNodesOfferingResponse>
リザーブドキャッシュノードの詳細については、「Amazon ElastiCache リザーブドキャッシュノード」
を参照してください。
API Version 2015-02-02
79
Amazon ElastiCache ユーザーガイド
サポートされているノードの種類
サポートされているノードの種類
ElastiCache では以下のノードがサポートされています。一般的に現在生成されているバイプは、以前
生成されていた同等のものと比較した場合、より多くのメモリと処理能力を提供します。
• 汎用:
• 現行世代: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium,
cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
• 以前の世代: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large,
cache.m1.xlarge
• コンピューティングの最適化: cache.c1.xlarge
• メモリ最適化:
• 現行世代: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge,
cache.r3.8xlarge
• 以前の世代: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge, ,
Note
•
•
•
•
すべての t2 インスタンスは Amazon Virtual Private Cloud (VPC) で作成されます。
Redis のバックアップと復元は、t2 インスタンスタイプではサポートされません。
Redis AOF (Append-Only File) は、t1 または t2 インスタンスではサポートされません。
自動フェイルオーバー機能を備えた Radis マルチ AZ は、t1 または t2 インスタンスでサポー
トされていません。
• Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサポー
トされていません。
ノードのタイプと仕様の詳細なリストについては、「Amazon ElastiCache 製品の機能および詳細」ペー
ジと、「Memcached のノードタイプ固有のパラメータ」または「Redis のノードタイプ固有のパラメー
タ」を参照してください。
API Version 2015-02-02
80
Amazon ElastiCache ユーザーガイド
ノードが置き換え対象となった場合に実行可能なアクショ
ン
ノードが置き換え対象となった場合に実行可能な
アクション
以下のセクションでは、ElastiCache によって 1 つ以上のノードが置き換え対象となっているときに取
ることのできるアクションを指定します。
Memcached
次のリストで、ElastiCache が Memcached ノードの 1 つの置き換えをスケジュールしている場合に取
ることのできるアクションを識別します。
• 何もしない – 何もしない場合、ElastiCache はスケジュールどおりにノードを置き換えます。
ElastiCache によってノードが新しいノードに自動的に置き換えられたとき、新しいノードは最初は
空です。
• 手動でノードを置き換える – 次のメンテナンス時間の前にノードを置き換える必要がある場合は、手
動で置き換えます。
ノードを手動で置き換える場合、キーを再配分するとキャッシュミスが起こります。
手動で Memcached ノードを置き換えるには
1.
2.
3.
置き換え対象となったノードを削除します。手順については、「クラスターからのノードの削
除 (p. 119)」を参照してください。
新しいノードをクラスターに追加します。手順については、「クラスターへのノードの追
加 (p. 114)」を参照してください。
このクラスター上で「ノードの自動検出(Memcached) (p. 84)」を使用していない場合は、ア
プリケーションで古いノードのエンドポイントのすべてのインスタンスを新しいノードのエンド
ポイントに置き換えます。
Redis
次のリストで、ElastiCache が Redis ノードの 1 つの置き換えをスケジュールしている場合に取ること
のできるアクションを識別します。
• 何もしない – 何もしない場合、ElastiCache はスケジュールどおりにノードを置き換えます。
ノードがレプリケーショングループに属する場合、代替ノードはグループのプライマリノードと同期
されます。
ノードがスタンドアロンであり、レプリケーショングループに属さない場合、ElastiCache はまず代
替ノードを起動してから、既存のノードと同期させます。既存のノードは、この時点で、サービスリ
クエストに使用できなくなります。同期が完了すると、既存のノードは終了し、新しいノードに置き
換えられます。ElastiCache は、このオペレーションの実行中、ベストエフォートでデータを保持し
ます。
• リードレプリカを置き換える – ノードがレプリケーショングループのリードレプリカである場合、
ノードを置き換えます。
レプリケーショングループに 2 つのノードのみがあり、マルチ AZ が有効になっている場合、レプリ
カを削除するには、あらかじめマルチ AZ を無効にする必要があります。手順については、「レプリ
ケーショングループの変更 (p. 157)」を参照してください。
API Version 2015-02-02
81
Amazon ElastiCache ユーザーガイド
Redis
リードレプリカと置き換えるには
1.
置き換え対象となったレプリカを削除します。手順については、「クラスターの削除 (p. 125)」
を参照してください。
2.
置き換え対象となったレプリカと置き換える新しいレプリカを追加します。先ほど削除したレプ
リカと同じ名前を使用する場合は、手順 3 を省略できます。手順については、「レプリケーショ
ングループへのリードレプリカの追加 (p. 161)」を参照してください。
3.
アプリケーションで、古いレプリカのエンドポイントを新しいレプリカのエンドポイントに置き
換えます。
開始時にマルチ AZ が無効になっている場合は、この時点で再び有効にします。手順について
は、「マルチ AZ で自動フェイルオーバーを有効にする (p. 138)」を参照してください。
4.
• プライマリを置き換える – ノードがレプリケーショングループのプライマリノードである場合、リー
ドレプリカをプライマリに昇格させ、前のプライマリノードを削除します。
レプリケーショングループに 2 つのノードのみがあり、マルチ AZ が有効になっている場合、手順 2
でレプリカを削除するには、あらかじめマルチ AZ を無効にする必要があります。手順については、
「レプリケーショングループの変更 (p. 157)」を参照してください。
プライマリノードを置き換えるには
1.
2.
3.
4.
5.
リードレプリカをプライマリに昇格させます。手順については、「リードレプリカをプライマリ
に昇格させる (p. 164)」を参照してください。
置き換え対象となったノード(前のプライマリ)を削除します。手順については、「クラスター
の削除 (p. 125)」を参照してください。
置き換え対象となったレプリカと置き換える新しいレプリカを追加します。先ほど削除したレプ
リカと同じ名前を使用する場合は、手順 4 を省略できます。
手順については、「レプリケーショングループへのリードレプリカの追加 (p. 161)」を参照して
ください。
アプリケーションで、古いノードのエンドポイントを新しいノードのエンドポイントに置き換え
ます。
開始時にマルチ AZ が無効になっている場合は、この時点で再び有効にします。手順について
は、「マルチ AZ で自動フェイルオーバーを有効にする (p. 138)」を参照してください。
• スタンドアロンノードを置き換える – ノードにリードレプリカがない場合、スタンドアロンクラス
ターを置き換えるには、以下の 2 つのオプションがあります。
オプション 1: バックアップと復元を使用してノードを置き換える
1.
2.
3.
4.
ノードのスナップショットを作成します。手順については、「Taking Manual Snapshots (p. 172)」
を参照してください。
スナップショットから新しいノードを作成します。手順については、「Restoring From a
Snapshot (p. 180)」を参照してください。
置き換え対象となったノードを削除します。手順については、「クラスターの削除 (p. 125)」を
参照してください。
アプリケーションで、古いノードのエンドポイントを新しいノードのエンドポイントに置き換え
ます。
オプション 2: レプリケーションを使用してノードを置き換える
1.
置き換え対象となったノードをプライマリとしてレプリケーショングループを作成します。この
レプリケーショングループに対してマルチ AZ を有効にしないでください。手順については、
API Version 2015-02-02
82
Amazon ElastiCache ユーザーガイド
Redis
2.
3.
4.
5.
「利用可能な Redis キャッシュクラスターがある場合のレプリケーショングループの作成 (p. 141)」
を参照してください。
リードレプリカをレプリケーショングループに追加します。手順については、「レプリケーショ
ングループへのリードレプリカの追加 (p. 161)」を参照してください。
新たに作成したリードレプリカをプライマリに昇格させます。手順については、「リードレプリ
カをプライマリに昇格させる (p. 164)」を参照してください。
置き換え対象となったノードを削除します。手順については、「クラスターの削除 (p. 125)」を
参照してください。
アプリケーションで、古いノードのエンドポイントを新しいノードのエンドポイントに置き換え
ます。
API Version 2015-02-02
83
Amazon ElastiCache ユーザーガイド
ノードの自動検出(Memcached)
Abstract
キャッシュクラスター内のすべてのノードを自動的に識別し、自動検出を使用してそれらのすべてのノードへの接
続を開始および維持します。
Memcached エンジンを実行するクラスターの場合、ElastiCache では自動検出がサポートされます。
自動検出は、クライアントプログラムが、キャッシュクラスター内のすべてのノードを識別し、それら
のすべてのノードへの接続を開始して維持する機能です。
Note
自動検出は Memcached エンジンを実行しているキャッシュクラスターでのみ使用できます。
Redis キャッシュクラスターは、単一ノードクラスターであるため、Redis クラスター内のす
べてのノードを識別して追跡する必要はありません。
自動検出によって、アプリケーションは手動で個々のキャッシュノードに接続する必要はありません。
その代わり、アプリケーションは Memcached のノードの 1 つに接続してノードのリストを取得しま
す。そのリストからアプリケーションはクラスターの残りのノードを発見して、それらにも接続できま
す。アプリケーションで個々のキャッシュノードエンドポイントをハードコードする必要はありませ
ん。
クラスター内のすべてのキャッシュノードには、他のすべてのノードに関するメタデータのリストが保
持されます。このメタデータは、クラスターにノードが追加または削除されるたびに更新されます。
トピック
• 自動検出の利点 (p. 85)
• 自動検出の動作 (p. 86)
• 自動検出の使用 (p. 88)
• キャッシュノードへの手動接続 (p. 93)
• クライアントライブラリへの自動検出の追加 (p. 94)
API Version 2015-02-02
84
Amazon ElastiCache ユーザーガイド
自動検出の利点
自動検出の利点
自動検出には、次の利点があります。
• キャッシュクラスター内のノード数を増やすと、新しいノードは、設定エンドポイントと他のすべて
のノードに自身を登録します。キャッシュクラスターからノードを削除すると、削除対象のノードが
自身の登録を解除します。いずれの場合も、クラスター内の他のすべてのノードが、最新のキャッ
シュノードメタデータで更新されます。
• キャッシュノードの障害は自動的に検出されます。障害が発生したノードは、自動的に置き換えられ
ます。
Note
ノードの交換が完了するまで、そのノードは正常になりません。
• クライアントプログラムは、設定エンドポイントにのみ接続する必要があります。その後、自動検出
ライブラリはクラスター内の他のすべてのノードに接続します。
• クライアントプログラムは、1 分に 1 回クラスターをポーリングします(この間隔は必要に応じて調
整できます)。クラスター設定の変更がある場合(新しいノードや削除されたノードなど)、クライ
アントは更新されたメタデータリストを受け取ります。その後、クライアントは必要に応じてそれら
のノードに接続したり、それらのノードから切断したりします。
自動検出は、すべての ElastiCache Memcached キャッシュクラスターで有効になります。この機能を
使用するためにキャッシュノードを再起動する必要はありません。
API Version 2015-02-02
85
Amazon ElastiCache ユーザーガイド
自動検出の動作
自動検出の動作
Abstract
クライアントアプリケーションがキャッシュノード接続を管理し、自動検出によりキャッシュデータ項目を操作す
る方法のアーキテクチャについて説明します。
トピック
• キャッシュノードへの接続 (p. 86)
• 通常のクラスター操作 (p. 87)
このセクションでは、ElastiCache クライアントアプリケーションを使用してキャッシュノード接続を
管理し、キャッシュ内のデータ項目を操作する方法について説明します。
キャッシュノードへの接続
アプリケーションの観点からは、クラスター設定エンドポイントへの接続は、個々のキャッシュノード
に直接接続するのと変わりません。次の一連の図は、キャッシュノードに接続するプロセスを示したも
のです。
キャッシュノードへの接続プロセス
アプリケーションは、設定エンドポイントの DNS 名を解決します。設定エンドポイントには、す
べてのキャッシュノードの CNAME エントリが保持されているため、DNS 名はいずれかのノード
に解決されます。その後、クライアントはそのノードに接続できます。
クライアントは、他のすべてのノードの設定情報をリクエストします。各ノードにはクラスター
内のすべてのノードの設定情報が保持されているため、どのノードでも必要に応じて設定情報を
クライアントに渡すことができます。
クライアントは、キャッシュノードのホスト名と IP アドレスの最新のリストを受け取ります。そ
の後、クライアントはクラスター内の他のすべてのノードに接続できます。
API Version 2015-02-02
86
Amazon ElastiCache ユーザーガイド
通常のクラスター操作
Note
クライアントプログラムは、キャッシュノードのホスト名と IP アドレスのリストを 1 分に 1
回更新します。このポーリング間隔は、必要に応じて変更できます。
通常のクラスター操作
アプリケーションがすべてのキャッシュノードに接続されている場合、ElastiCache クラスタークライ
アントは、個々のデータ項目を格納する必要があるノードと、それらのデータ項目のクエリを実行する
必要があるノードを判断します。次の一連の図は、通常のクラスター操作のプロセスを示しています。
通常のクラスター操作のプロセス
アプリケーションは、特定のデータ項目に対して get リクエストを発行します(キーにより識別
されます)。
クライアントは、キーに対してハッシュアルゴリズムを使用して、データ項目が格納されている
キャッシュノードを調べます。
データ項目が適切なノードからリクエストされます。
データ項目がアプリケーションに戻ります。
API Version 2015-02-02
87
Amazon ElastiCache ユーザーガイド
自動検出の使用
自動検出の使用
自動検出の使用を開始するには、以下のステップに従います。
• ステップ 1: 設定エンドポイントを取得する (p. 88)
• ステップ 2: ElastiCache クラスタークライアントをダウンロードする (p. 88)
• ステップ 3: アプリケーションプログラムを変更する (p. 89)
ステップ 1: 設定エンドポイントを取得する
クラスターに接続するには、クライアントプログラムがクラスター設定エンドポイントを認識している
必要があります。AWS マネジメントコンソール を使用して設定エンドポイントを取得できます。
--show-cache-node-info パラメータを指定して、aws elasticache describe-cache-clusters
コマンドを使用することもできます。
Example
$ aws elasticache describe-cache-clusters --show-cache-node-info
CACHECLUSTER mycluster
mycluster.fnjyzo.cfg.use1.cache.amazonaws.com
11211 https://console.aws.amazon.com/elasticache/home#client-download:
2013-07-30T00:57:50.911Z cache.m1.small memcached available 2 us-west-2a 1.4.14
SECGROUP default active PARAMGRP default.memcached1.4 in-sync
NOTIFICATION arn:aws:sns:us-west-2:740835402826:autodiscovery active
...
ステップ 2: ElastiCache クラスタークライアントを
ダウンロードする
自動検出を利用するには、クライアントプログラムが ElastiCache クラスタークライアントする必要が
あります。ElastiCache Cluster Client は、Java、PHP、および .NET 向けが用意されており、すべての
キャッシュノードを検出して接続するのに必要なロジックすべてが含まれています。
ElastiCache クラスタークライアントをダウンロードするには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ElastiCache コンソールで、[ElastiCache Cluster Client] を選択して [Download] を選択します。
API Version 2015-02-02
88
Amazon ElastiCache ユーザーガイド
ステップ 3: アプリケーションプログラムを変更する
Java 向けの ElastiCache クラスタークライアントのソースコードは、https://github.com/
amazonwebservices/aws-elasticache-cluster-client-memcached-for-java で入手できます。このライブラ
リは、広く使用されている Spymemcached クライアントがベースとなっています。ElastiCache Cluster
Client は、Amazon ソフトウェアライセンス http://aws.amazon.com/asl の下にリリースされています。
ソースコードは必要に合わせて自由に変更できます。他のオープンソース Memcached ライブラリや独
自のクライアントコードにコードを組み込むこともできます。
Note
PHP 向けの ElastiCache クラスタークライアントを使用するには、まず Amazon EC2 インス
タンスにインストールする必要があります。詳細については、「ElastiCache Cluster Client for
PHP のインストール (p. 309)」を参照してください。
.NET 向けの ElastiCache Cluster Client を使用するには、まず ElastiCache インスタンスにイ
ンストールする必要があります。詳細については、「ElastiCache Cluster Client for .NET のイ
ンストール (p. 306)」を参照してください。
ステップ 3: アプリケーションプログラムを変更する
自動検出を使用するようにアプリケーションプログラムを変更する準備ができました。以下のセクショ
ンでは、Java、PHP、および .NET 向けの ElastiCache Cluster Client を使用する方法を示します。
トピック
• Java 向けの ElastiCache クラスタークライアントの使用 (p. 89)
• PHP 向けの ElastiCache クラスタークライアントの使用 (p. 90)
• .NET 向けの ElastiCache Cluster Client の使用 (p. 91)
Java 向けの ElastiCache クラスタークライアントの使用
以下のプログラムは、ElastiCache クラスタークライアントを使用してクラスター設定エンドポイント
に接続し、キャッシュにデータ項目を追加する方法を示しています。さらに操作を行わなくても、プロ
グラムは自動検出を使用してクラスター内のすべてのノードに接続します。
package com.amazon.elasticache;
import java.io.IOException;
import java.net.InetSocketAddress;
// Import the AWS-provided library with Auto Discovery support
import net.spy.memcached.MemcachedClient;
public class AutoDiscoveryDemo {
public static void main(String[] args) throws IOException {
String configEndpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
Integer clusterPort = 11211;
MemcachedClient client = new MemcachedClient(
new InetSocketAddress(configEndpoint,
clusterPort));
// The client will connect to the other cache nodes automatically.
API Version 2015-02-02
89
Amazon ElastiCache ユーザーガイド
ステップ 3: アプリケーションプログラムを変更する
// Store a data item for an hour.
// The client will decide which cache host will store this item.
client.set("theKey", 3600, "This is the data value");
}
}
PHP 向けの ElastiCache クラスタークライアントの使用
以下のプログラムは、ElastiCache クラスタークライアントを使用してクラスター設定エンドポイント
に接続し、キャッシュにデータ項目を追加する方法を示しています。さらに操作を行わなくても、プロ
グラムは自動検出を使用してクラスター内のすべてのノードに接続します。
Note
PHP 向けの ElastiCache クラスタークライアントを使用するには、まず Amazon EC2 インス
タンスにインストールする必要があります。詳細については、「ElastiCache Cluster Client for
PHP のインストール (p. 309)」を参照してください。
<?php
/**
* Sample PHP code to show how to integrate with the Amazon ElastiCache
* Auto Discovery feature.
*/
/* Configuration endpoint to use to initialize memcached client.
* This is only an example. */
$server_endpoint = "php-autodiscovery.1zvgtq.cfg.use1.cache.amazonaws.com";
/* Port for connecting to the ElastiCache cluster.
* This is only an example */
$server_port = 11211;
/**
* The following will initialize a Memcached client to utilize the Auto Discov
ery feature.
*
* By configuring the client with the Dynamic client mode with single endpoint,
the
* client will periodically use the configuration endpoint to retrieve the
current cache
* cluster configuration. This allows scaling the cache cluster up or down in
number of nodes
* without requiring any changes to the PHP application.
*/
$dynamic_client = new Memcached();
$dynamic_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLI
ENT_MODE);
$dynamic_client->addServer($server_endpoint, $server_port);
// Store the data for 60 seconds in the cluster.
// The client will decide which cache host will store this item.
$dynamic_client->set('key', 'value', 60);
API Version 2015-02-02
90
Amazon ElastiCache ユーザーガイド
ステップ 3: アプリケーションプログラムを変更する
/**
* Configuring the client with Static client mode disables the usage of Auto
Discovery
* and the client operates as it did before the introduction of Auto Discovery.
* The user can then add a list of server endpoints.
*/
$static_client = new Memcached();
$static_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::STATIC_CLI
ENT_MODE);
$static_client->addServer($server_endpoint, $server_port);
// Store the data in the cluster without expiration.
// The client will decide which cache host will store this item.
$static_client->set('key', 'value');
?>
.NET 向けの ElastiCache Cluster Client の使用
ElastiCache の .NET クライアントは、オープンソースとして https://github.com/awslabs/
elasticache-cluster-config-net から入手できます。
.NET アプリケーションは、通常、config ファイルから設定を取得します。サンプルアプリケーション
の config ファイルを以下に示します。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section
name="clusterclient"
type="Amazon.ElastiCacheCluster.ClusterConfigSettings,
Amazon.ElastiCacheCluster" />
</configSections>
<clusterclient>
<!-- the hostname and port values are from step 1 above -->
<endpoint hostname="mycluster.fnjyzo.cfg.use1.cache.amazonaws.com"
port="11211" />
</clusterclient>
</configuration>
以下の C# プログラムは、ElastiCache Cluster Client を使用してクラスター設定エンドポイントに接続
し、キャッシュにデータ項目を追加する方法を示しています。さらに操作を行わなくても、プログラム
は自動検出を使用してクラスター内のすべてのノードに接続します。
// *****************
// Sample C# code to show how to integrate with the Amazon ElastiCcache Auto
Discovery feature.
using System;
using Amazon.ElastiCacheCluster;
using Enyim.Caching;
using Enyim.Caching.Memcached;
API Version 2015-02-02
91
Amazon ElastiCache ユーザーガイド
ステップ 3: アプリケーションプログラムを変更する
public class DotNetAutoDiscoveryDemo
{
public static void Main(String[] args)
{
// instantiate a new client.
ElastiCacheClusterConfig config = new ElastiCacheClusterConfig();
MemcachedClient memClient = new MemcachedClient(config);
// Store the data for 3600 seconds (1hour) in the cluster.
// The client will decide which cache host will store this item.
memClient.Store(StoreMode.Set, 3600, "This is the data value.");
}
}
// end Main
// end class DotNetAutoDiscoverDemo
API Version 2015-02-02
92
Amazon ElastiCache ユーザーガイド
キャッシュノードへの手動接続
キャッシュノードへの手動接続
Abstract
各キャッシュノードに手動で接続します。Memcached クライアントのデフォルトの動作です。
プログラムクライアントが自動検出を使用していない場合、各キャッシュノードに手動で接続できま
す。これは、Memcached クライアントのデフォルトの動作です。
キャッシュノードのホスト名とポート番号のリストは、AWS マネジメントコンソールから取得できま
す。AWS CLI aws elasticache describe-cache-clusters コマンドを --show-cache-node-info
パラメータを指定して使用することもできます。
Example
以下の Java コードスニペットは、4 ノードキャッシュクラスター内のすべてのノードに接続する方法
を示しています。
...
ArrayList<String> cacheNodes = new ArrayList<String>(
Arrays.asList(
"mycachecluster.fnjyzo.0001.use1.cache.amazonaws.com:11211",
"mycachecluster.fnjyzo.0002.use1.cache.amazonaws.com:11211",
"mycachecluster.fnjyzo.0003.use1.cache.amazonaws.com:11211",
"mycachecluster.fnjyzo.0004.use1.cache.amazonaws.com:11211"));
MemcachedClient cache = new MemcachedClient(AddrUtil.getAddresses(cacheNodes));
...
Important
ノードを追加または削除することでキャッシュクラスターをスケールアップまたはスケールダ
ウンする場合、クライアントコード内のノードのリストを更新する必要があります。
API Version 2015-02-02
93
Amazon ElastiCache ユーザーガイド
クライアントライブラリへの自動検出の追加
クライアントライブラリへの自動検出の追加
Abstract
各キャッシュクラスターノードで、自動検出が追加されるようにクライアントライブラリを設定します。
自動検出の設定情報は、各キャッシュクラスターノードに冗長的に保存されます。クライアントアプリ
ケーションは、任意のキャッシュノードのクエリを実行し、クラスター内のすべてのノードの設定情報
を取得できます。
アプリケーションがこれを行う方法は、キャッシュエンジンバージョンによって異なります。
• キャッシュエンジンバージョンが 1.4.14 以上の場合、config コマンドを使用します。
• キャッシュエンジンバージョンが 1.4.14 未満の場合、get AmazonElastiCache:cluster コマン
ドを使用します。
これらの 2 つのコマンドの出力は同じです。以下の「出力形式 (p. 95)」セクションで説明します。
キャッシュエンジンバージョン 1.4.14 以上
キャッシュエンジンバージョン 1.4.14 以上の場合、config コマンドを使用します。このコマンドは、
ElastiCache により Memcached ASCII およびバイナリプロトコルに追加され、ElastiCache クラスター
クライアントに実装されます。別のクライアントライブラリで自動検出を使用する場合、config コマ
ンドをサポートするためにそのライブラリを拡張する必要があります。
Note
以下のドキュメントは ASCII プロトコルに関連しています。ただし、config コマンドでは
ASCII とバイナリの両方がサポートされます。バイナリプロトコルを使用する自動検出サポー
トを追加する場合、「ElastiCache クラスタークライアントのソースコード」を参照してくだ
さい。
構文
config [sub-command] [key]
オプション
名前
説明
必須
sub-command
キャッシュノードの操作に使用されるサブコマンド。自動検出の場合、 はい
このサブコマンドは get です。
key
クラスター設定が格納されたキー。自動検出の場合、このキーの名前は はい
cluster です。
クラスターの設定情報を取得するには、以下のコマンドを使用します。
config get cluster
API Version 2015-02-02
94
Amazon ElastiCache ユーザーガイド
キャッシュエンジンバージョン 1.4.14 未満
キャッシュエンジンバージョン 1.4.14 未満
クラスターの設定情報を取得するには、以下のコマンドを使用します。
get AmazonElastiCache:cluster
Note
「AmazonElastiCache:cluster」キーには、クラスターの設定情報が存在するため、変更しない
ことをお勧めします。このキーを上書きした場合、ElastiCache により設定情報が自動的かつ
正しく設定されるまで、クライアントの設定が短時間(15 秒以内)不適切になる可能性があり
ます。
出力形式
config get cluster を使用するか get AmazonElastiCache:cluster を使用するかにかかわら
ず、応答は 2 行で構成されます。
• 設定情報のバージョン番号。キャッシュクラスターにノードが追加または削除されるたび、バージョ
ン番号は 1 ずつ増加します。
• キャッシュノードのリスト。リスト内の各ノードは、hostname|ip-address|port グループによって表
され、各ノードはスペースで区切られます。
各行の末尾には、キャリッジリターンと改行文字(CR + LF)が表示されます。データ行には最後に改
行文字 (LF) が含まれ、ここに CR + LF が追加されます。バージョン設定行は、CR なしの LF で終了し
ます。
3 つのノードを含むキャッシュクラスターは、次のように表されます。
configversion\n
hostname|ip-address|port hostname|ip-address|port hostname|ip-address|port\n\r\n
各ノードは、CNAME およびプライベート IP アドレスと共に表示されます。CNAME は常に存在しま
す。プライベート IP アドレスを使用できない場合は表示されませんが、その場合もパイプ文字「|」は
出力されます。
Example
設定情報のクエリを実行した場合に返されるペイロードの例を次に示します。
CONFIG cluster 0 147\r\n
12\n
myCluster.pc4ldq.0001.use1.cache.amazonaws.com|10.82.235.120|11211 myC
luster.pc4ldq.0002.use1.cache.amazonaws.com|10.80.249.27|11211\n\r\n
END\r\n
Note
2 行目は、設定情報がこれまで 12 回変更されたことを示しています。
3 行目のノードのリストでは、ホスト名がアルファベット順に並んでいます。この順序は、現
在クライアントアプリケーションで何を使用しているかにより異なる場合があります。
API Version 2015-02-02
95
Amazon ElastiCache ユーザーガイド
ElastiCache クラスター
Abstract
クラスターオペレーションを定義して操作します。
クラスターは、1 つ以上のキャッシュノードの集合であり、すべてのノードが、サポートされている
キャッシュエンジンソフトウェア、Memcached、または Redis のインスタンスを実行します。キャッ
シュクラスターを作成するときには、すべてのノードが使用するキャッシュエンジンを指定します。
次の図は、一般的な Memcached と Redis クラスターを説明しています。Memcached クラスターには
1 から 20 のノードがあり、データを水平に分割することができるノードが含まれます。Redis クラス
ターには単一ノードが含まれます。最大で 6 の Redis クラスターを、1 つの読み書きプライマリクラス
ターを持つレプリケーショングループと、最大で 5 のリードレプリカクラスターにグループ化できま
す。50 を超えるノードが必要な場合、または Memcached クラスターで 20 を超えるノードが必要な場
合は、ElastiCache 上限緩和申請 (http://aws.amazon.com/contact-us/elasticache-node-limit-request/) に
入力します。
一般的な Memcached と Redis クラスター
ElastiCache の多くのオペレーションは、クラスターレベルで実行されます。キャッシュクラスターは、
特定の数のキャッシュノードと、各キャッシュノードのプロパティを制御するキャッシュパラメータグ
ループを使用して設定できます。クラスター内のすべてのキャッシュノードは、同じノードタイプで、
同一のパラメータ設定およびセキュリティグループ設定となるように設計されています。
すべてのクラスターにはクラスター識別子が必要です。クラスター識別子は、お客様が指定するクラス
ターの "名前" です。この識別子によって、ElastiCache API と AWS CLI コマンドを使用して操作する
ときに、特定のクラスターを指定します。クラスター識別子は、AWS リージョン内のそのお客様につ
いて一意にする必要があります。
ElastiCache は各エンジンの複数のバージョンをサポートします。特定の原因がないかぎり、エンジン
の最新バージョンを必ず使用することをお勧めします。
API Version 2015-02-02
96
Amazon ElastiCache ユーザーガイド
Memcached のバージョン
Memcached のバージョン
• Memcached バージョン 1.4.24 (p. 33)
• Memcached バージョン 1.4.14 (p. 33)
• Memcached バージョン 1.4.5 (p. 33)
Redis のバージョン
• Redis バージョン 2.8.23 (p. 34)
• Redis バージョン 2.8.22 (p. 34)
• Redis バージョン 2.8.19 (p. 35)
• Redis バージョン 2.8.6 (p. 35)
• Redis バージョン 2.6.13 (p. 36)
その他の ElastiCache クラスターオペレーション
クラスターに関係する追加のオペレーション:
• ElastiCache エンドポイントの検索 (p. 42)
• AWS 外部からの ElastiCache リソースへのアクセス (p. 261)
トピック
• クラスターの作成 (p. 98)
• クラスターの詳細を表示する (p. 108)
• ElastiCache キャッシュクラスターの変更 (p. 110)
• クラスターの再起動 (p. 112)
• クラスターのモニタリング (p. 114)
• クラスターへのノードの追加 (p. 114)
• クラスターからのノードの削除 (p. 119)
• 保留中のノードの追加または削除操作のキャンセル (p. 124)
• クラスターの削除 (p. 125)
API Version 2015-02-02
97
Amazon ElastiCache ユーザーガイド
クラスターの作成
クラスターの作成
Amazon ElastiCache クラスターの起動時に選択して、Memcached または Redis エンジンを使用する
ことができます。ニーズに最適なエンジンを確認するには、このガイドの「キャッシュエンジンとバー
ジョンの選択 (p. 32)」を参照してください。
このセクションには、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してクラス
ターを作成する方法もあります。
開始する前にこれらの質問の答えを知ることで、クラスター作成の参考になります。
• どのエンジンを使用しますか。
エンジンとエンジンバージョンの比較については、「キャッシュエンジンとバージョンの選択 (p. 32)」
を参照してください。
• どのノードインスタンスタイプが必要ですか。
インスタンスのノードタイプの選択のガイダンスについては、「ノードサイズの選択 (p. 68)」を参
照してください。
• VPC または Amazon VPC でクラスターを起動しますか。
特定の VPC でクラスターを起動する場合、クラスターの作成を開始する前にサブネットグループを
作成する必要があります。詳細については、「サブネットおよびサブネットグループ (p. 232)」を参
照してください。
Note
ElastiCache インスタンスは、Amazon EC2 インスタンスを使用して AWS 内からアクセス
するためのものです。ただしクラスターが VPC 内にホストされている場合は、AWS 外から
ElastiCache クラスターへのアクセスを提供できます。詳細については、「AWS 外部からの
ElastiCache リソースへのアクセス (p. 261)」を参照してください。
• パラメータ値をカスタマイズする必要がありますか。
パラメータ値をカスタマイズする場合は、カスタムのパラメータグループを作成する必要がありま
す。詳細については、「パラメータグループを作成する (p. 199)」を参照してください。
Redis を実行する場合は、少なくとも reserved-memory 設定を検討するといいでしょう。詳細に
ついては、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 52)」を参
照してください。
• 独自のセキュリティグループまたは、VPC セキュリティグループを作成する必要がありますか。
詳細については、「キャッシュセキュリティグループ [EC2-Classic] (p. 188)」および「VPC のセキュ
リティ」を参照してください。
• 耐障害性をどのようにして導入しますか。
詳細については、「障害の軽減 (p. 55)」を参照してください。
トピック
• Memcached キャッシュクラスターの作成 AWS マネジメントコンソールの使用 (p. 99)
• 1 つの Redis キャッシュクラスターの作成 AWS マネジメントコンソールの使用 (p. 103)
• キャッシュクラスターの作成 AWS CLI の使用 (p. 107)
• キャッシュクラスターの作成 ElastiCache API の使用 (p. 107)
API Version 2015-02-02
98
Amazon ElastiCache ユーザーガイド
Memcached キャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
Memcached キャッシュクラスターの作成 AWS マネ
ジメントコンソールの使用
トピック
• 前提条件 (p. 99)
• 画面 1: Memcached エンジンを選択する (p. 99)
• 画面 2: クラスターの詳細を指定する (p. 99)
• 画面 3: 詳細設定を編集する (p. 100)
• 画面 4: 確認と起動を行います。 (p. 101)
Memcached エンジンを使用している場合、Amazon ElastiCache では、複数のノード間でのデータの
水平分割がサポートされます。Memcached によって自動検出が有効になるため、各ノードのエンドポ
イントを手動で追跡する必要はなくなります。Memcached によって各ノードのエンドポイントは追跡
されて、ノードの追加と削除に応じてエンドポイントのリストが更新されます。アプリケーションとク
ラスターのやり取りで必要になるのは、設定エンドポイントのみになります。自動検出の詳細について
は、「ノードの自動検出(Memcached) (p. 84)」を参照してください。
新しい Memcached クラスター AWS マネジメントコンソールを使用した を作成するには、次のように
します。
前提条件
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ElastiCache コンソールダッシュボードから、[Launch Cache Cluster] を選択して Launch Cache
Cluster ウィザードを開始します。
画面 1: Memcached エンジンを選択する
先に進む前に、「前提条件」セクションの条件が満たされていることを確認してください。
クラスターのエンジンを選択するには:
1.
2.
[Select Engine] 画面で、[Memcached] タブを選択します。
[Next] を選択します。
画面 2: クラスターの詳細を指定する
先に進む前に、「画面 1: Memcached エンジンを選択する」が完了していることを確認してください。
クラスターの仕様と詳細を設定するには:
1.
[Cluster Details] ページの [Cluster Specifications] セクションで、次のように設定を指定します。
a.
[Engine]: Memcached
b.
[Engine Version]: 一覧から、このクラスターで実行するキャッシュエンジンのバージョンを選
択します。特に理由がない限り、最新のエンジンバージョンを選択することをお勧めします。
c.
[ Port]: クラスターの新しいポート番号を入力します。デフォルト値のままにしておくことも
できます。Memcached の場合、デフォルトのポートは 11211 です。
API Version 2015-02-02
99
Amazon ElastiCache ユーザーガイド
Memcached キャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
d.
2.
[Parameter Group]: 一覧から、このクラスターのパラメータグループを選択します。パラメー
タグループはクラスターのランタイムパラメータを制御します。パラメータグループの詳細に
ついては、「Memcached 固有のパラメータ (p. 212)」を参照してください。
[Specify Cluster Details] ページの [Configuration] セクションで、次のように設定を指定します。
a.
[Cluster Name]: このクラスターのわかりやすい名前を入力します。
クラスターの名前に関する制約は次のとおりです:
• クラスターの名前には 01 ~ 20 文字の英数字またはハイフンを含める必要があります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
b.
c.
3.
[Node Type]: 一覧から、このクラスターに使用するノードタイプを選択します。 ノードタイ
プの詳細については、「Memcached 固有のパラメータ (p. 212)」を参照してください。
[Number of Nodes]: このクラスターで起動するノードの数を入力します。Memcached 用に、
クラスターで 1 ~ 20 個のノードを使用できます。Memcached Flexible Zone Placement 機能
を使用する場合は、2 ~ 20 の値を入力します。各ノードについて料金が発生します。
[Next] を選択します。
画面 3: 詳細設定を編集する
先に進む前に、「画面 2: クラスターの詳細を指定する」が完了していることを確認してください。
クラスターの詳細設定を編集するには:
1.
[Configure Advanced Settings] ページの [Network & Security] セクションで、次のように設定を指
定します。
a.
[Cache Subnet Group]: ドロップダウンリストから、このクラスターを関連付けるサブネット
グループを選択します。
• VPC でこのクラスターを起動するには(推奨)、VPC サブネットグループを選択します。
• VPC の外部でこのクラスターを起動するには、[Not in VPC] を選択します。クラスターは
AWS パブリッククラウドで起動されます。
b.
[Availability Zones]: ドロップダウンリストから、指定したクラスターのノードのアベイラビリ
ティーゾーン設定を選択します。
• [No Preference]: ElastiCache によってクラスターのノードのアベイラビリティーゾーンが
選択されます。
• [Spread Nodes Across Zones]: ElastiCache によってクラスターのノードのアベイラビリ
ティーゾーンが選択されます。ノードが、対象のノードタイプをサポートするアベイラビリ
ティーゾーン全体に実用上できるだけ等分に分散されます。
• [Specify Zones]: コンソールが展開し、このクラスターのノードタイプをサポートするリー
ジョンのすべてのアベイラビリティーゾーンを一覧表示します。各ゾーンの後ろにボックス
があります。アベイラビリティーゾーンで起動するノードの数を入力します。
API Version 2015-02-02
100
Amazon ElastiCache ユーザーガイド
Memcached キャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
Note
これらのボックスに入力した値の合計は、前の画面に指定したノードの数と同じで
ある必要があります。
c.
[Cache Security Groups] または [VPC Security Groups]: このクラスターに関連付ける 1 つ以
上のセキュリティグループを選択します。
[VPC] を選択すると、VPC セキュリティグループのリストになります。[Not in VPC] を選択す
ると、キャッシュセキュリティグループのリストになります。
Amazon VPC セキュリティグループの詳細については、「http://docs.aws.amazon.com/
AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html」を参照してください。
ElastiCache セキュリティグループの詳細については、「ElastiCache のセキュリティ (p. 16)」
および「キャッシュセキュリティグループ [EC2-Classic] (p. 188)」を参照してください。
2.
[Configure Advanced Settings] ページの [Maintenance] セクションで、次のように設定を指定しま
す。
a.
[Maintenance Window]: メンテナンスウィンドウの選択方法を選択します。
• [Select Window]: メンテナンスを開始する曜日と開始時刻の UTC 時間、およびメンテナン
スウィンドウの期間(時間)を設定します。
• [No Preference]: ElastiCache によってメンテナンスウィンドウが選択されます。この設定
がデフォルト値です。
b.
3.
メンテナンスウィンドウを指定し、メンテナンスのダウンタイムによるビジネスへの影響を最
小にすることをお勧めします。
[Topic for SNS Notification]: 一覧から、既存の Amazon Simple Notification Service (Amazon
SNS) トピックを選択するか、[Manual ARN input] を選択し、トピックの Amazon リソース
ネーム (ARN) を入力します。Amazon SNS では、インターネットに接続されたスマートデバ
イスに通知をプッシュすることができます。デフォルトでは、通知は無効になります。詳細に
ついては、http://aws.amazon.com/sns/ を参照してください。
[Next] を選択します。
画面 4: 確認と起動を行います。
先に進む前に、「画面 3: 詳細設定を編集する」が完了していることを確認してください。
設定を確認しクラスターを起動するには
1.
2.
すべての設定を見直して、それぞれの値が意図したとおりになっていることを確認します。
変更する必要がある場合は、[Previous] を選択して前の画面に戻り変更します。それ以外の場合
は、[Launch Cache Cluster] を選択して、クラスターまたはレプリケーショングループを起動しま
す。
3.
[Cache Clusters] 画面に戻るには、[Success] 画面の [Close] を選択します。
クラスターの作成中、クラスターのステータスは [creating] になります。ステータスが [available] に変
わると、使用できる状態です。
API Version 2015-02-02
101
Amazon ElastiCache ユーザーガイド
Memcached キャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
Note
クラスターが使用可能になった直後から、そのクラスターがアクティブである間は(クラス
ターを使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する
課金を中止するには、クラスターを削除する必要があります。「クラスターの削除 (p. 125)」を
参照してください。
API Version 2015-02-02
102
Amazon ElastiCache ユーザーガイド
1 つの Redis キャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
1 つの Redis キャッシュクラスターの作成 AWS マネ
ジメントコンソールの使用
Redis クラスターは、ElastiCache マネジメントコンソール、AWS コマンドラインインターフェイス
(CLI)、または ElastiCache API を使って作成できます。
トピック
• 前提条件 (p. 103)
• 画面 1: Redis エンジンを選択する (p. 103)
• 画面 2: クラスターの詳細を指定する (p. 103)
• 画面 3: 詳細設定を編集する (p. 105)
• 画面 4: 確認と起動を行います。 (p. 106)
ElastiCache は、Redis エンジンを使用する場合にレプリケーションをサポートします。データが Redis
読み取り/書き込みプライマリクラスターに書き込まれるときと、読み取り専用セカンダリクラスター
に伝達されるときのレイテンシーをモニタリングするため、ElastiCache によって特殊なキー
ElastiCacheMasterReplicationTimestamp(現在の UTC 時間)がクラスターに追加されます。
Redis クラスターが後でレプリケーショングループに追加される可能性があるため、このキーは、最初
はレプリケーショングループのメンバーではない Redis クラスターであっても、すべての Redis クラ
スターに含まれます。レプリケーショングループの詳細については、「ElastiCache レプリケーション
(Redis) (p. 131)」を参照してください。
Redis クラスター AWS マネジメントコンソールを使用した を作成するには、以下の作業を行います。
前提条件
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ElastiCache コンソールダッシュボードから、[Launch Cache Cluster] を選択して Launch Cache
Cluster ウィザードを開始します。
画面 1: Redis エンジンを選択する
先に進む前に、「前提条件」セクションの条件が満たされていることを確認してください。
クラスターのエンジンを選択するには:
1.
[Select Engine] 画面で、[Redis] タブを選択します。
2.
[Next] を選択します。
画面 2: クラスターの詳細を指定する
先に進む前に、「画面 1: Redis エンジンを選択する」が完了していることを確認してください。
クラスターの仕様と詳細を設定するには:
1.
[Specify Cluster Details] ページの [Cluster Specifications] セクションで、次のように設定を指定し
ます。
a.
[Engine]: Redis
API Version 2015-02-02
103
Amazon ElastiCache ユーザーガイド
1 つの Redis キャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
b.
[Engine Version]: 一覧から、このクラスターで実行するキャッシュエンジンのバージョンを選
択します。特に理由がない限り、最新のエンジンバージョンを選択することをお勧めします。
新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供している
ため、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache マネジメントコンソー
ルから廃止されました。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必
要がある場合は、AWS CLI または ElastiCache API を使用できます。
詳細については、以下のトピックを参照してください。
AWS CLI
ElastiCache API
キャッシュクラスターの作成 キャッシュクラスターの作成 キャッシュクラスターの作成
AWS CLI の使用 (p. 107)
ElastiCache API の使用 (p. 107)
キャッシュクラスターの変更 キャッシュクラスターの変更 キャッシュクラスターの変更
AWS CLI の使用 (p. 111)
ElastiCache API の使用 (p. 111)
レプリケーショングループの 利用可能な Redis キャッシュ
作成
クラスターがない場合のレプ
リケーショングループの作成
AWS CLI の使用 (p. 148)
利用可能な Redis キャッシュ
クラスターがない場合のレプ
リケーショングループの作成
ElastiCache API の使用 (p. 150)
レプリケーショングループの レプリケーショングループの レプリケーショングループの
変更
変更 AWS CLI の使用 (p. 158) 変更 ElastiCache API の使
用 (p. 158)
c.
d.
e.
[Cache Port]: キャッシュクラスターの新しいポート番号を入力します。デフォルト値のままに
しておくこともできます。Redis の場合、デフォルトのポート番号は 6379 です。
[Parameter Group]: 一覧から、このクラスターのパラメータグループを選択します。パラメー
タグループはクラスターのランタイムパラメータを制御します。パラメータグループの詳細に
ついては、「Redis のノードタイプ固有のパラメータ (p. 230)」を参照してください。
レプリケーションの有効化:
1 つの Redis クラスターを作成するには、このボックスのチェックを外します。
f.
Redis レプリケーショングループを作成するには、このボックスをオンのままにしておきま
す。
Multi-AZ: このレプリケーショングループのプライマリノードの自動フェイルオーバーを有効
化するには、このチェックボックスをオンのままにしておきます。
このオプションは、[Enable Replication] ボックスがチェックされている場合にのみ使用でき
ます。
マルチ AZ の詳細については、「マルチ AZ と自動フェイルオーバーをサポートするレプリ
ケーショングループ (Redis) (p. 134)」を参照してください。
2.
[Specify Cluster Details] ページの [Configuration] セクションで、次のように設定を指定します。
a.
[Cluster Name/Replication Group Name]: このクラスターまたはレプリケーショングループの
わかりやすい名前を入力します。
クラスターの名前に関する制約は次のとおりです:
• クラスターの名前には 01 ~ 20 文字の英数字またはハイフンを含める必要があります。
• 1 字目は文字である必要があります。
API Version 2015-02-02
104
Amazon ElastiCache ユーザーガイド
1 つの Redis キャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
b.
[Replication Group Description]: [Enable Replication] がチェックされている場合は、[Replication
Group Description] ボックスにレプリケーショングループのわかりやすい説明を入力します。
c.
[Node Type]: 一覧から、このクラスターに使用するノードタイプを選択します。 ノードタイ
プの詳細については、「Redis のノードタイプ固有のパラメータ (p. 230)」を参照してくださ
い。
d.
[Number of Read Replicas]: [Enable Replication] をオンにしている場合は、このレプリケー
ショングループに必要なリードレプリカクラスターの数をリストから選択します。
[S3 Location of Redis RDB file]: このクラスターにシードするために使用する .rdb ファイルの
Amazon S3 の場所。ここを空白のままにすると、このクラスターは作成時にシードされませ
ん。スナップショットおよび Redis クラスターのシードに関する詳細については、「ElastiCache
バックアップと復元(Redis) (p. 168)」および「Using a Snapshot to Seed a Cluster (p. 182)」
を参照してください。
e.
3.
[Next] を選択します。
画面 3: 詳細設定を編集する
先に進む前に、「画面 2: クラスターの詳細を指定する」が完了していることを確認してください。
クラスターの詳細設定を編集するには:
1.
[Configure Advanced Settings] ページの [Network & Security] セクションで、次のように設定を指
定します。
a.
[Cache Subnet Group]: ドロップダウンリストから、このクラスターを関連付けるサブネット
グループを選択します。
• VPC でこのクラスターを起動するには(推奨)、VPC サブネットグループを選択します。
• VPC の外部でこのクラスターを起動するには、[Not in VPC] を選択します。クラスターは
AWS パブリッククラウドで起動されます。
b.
[Availability Zones]: ドロップダウンリストから、各クラスターのアベイラビリティーゾーンを
選択します。
ElastiCache で自動的にゾーンを選択するには、[No Preference] を選択します。
c.
[Cache Security Groups] または [VPC Security Groups]: このクラスターに関連付ける 1 つ以
上のセキュリティグループを選択します。
[VPC] を選択すると、VPC セキュリティグループのリストになります。[Not in VPC] を選択す
ると、キャッシュセキュリティグループのリストになります。
Amazon VPC セキュリティグループの詳細については、「http://docs.aws.amazon.com/
AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html」を参照してください。
ElastiCache セキュリティグループの詳細については、「ElastiCache のセキュリティ (p. 16)」
および「キャッシュセキュリティグループ [EC2-Classic] (p. 188)」を参照してください。
2.
[Configure Advanced Settings] ページの [Backup] セクションで、次のように設定を指定します。
• [Enable Automatic Backups]: クラスターの通常の自動バックアップをスケジュールするには、こ
のボックスをオンにします。
API Version 2015-02-02
105
Amazon ElastiCache ユーザーガイド
1 つの Redis キャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
• [Unchecked]: デフォルト。このチェックボックスをオフにすると、ElastiCache でこのクラス
ターの自動バックアップがスケジュールされません。バックアップが必要な場合は、手動バッ
クアップを作成する必要があります。詳細については、「Taking Manual Snapshots (p. 172)」
を参照してください。
• [Checked]: このボックスをオンにすると、ElastiCache はこのクラスターの定期的な自動バッ
クアップをスケジュールします。手動バックアップを実行するように選択することもできま
す。
このボックスをオンにすると、展開されるコンソールで、バックアップを削除するまでの日数
や、必要に応じて、自動バックアップのスケジュールを指定できます。スケジュールを指定し
ない場合、ElastiCache が設定したスケジュールで自動バックアップが作成されます。
3.
[Configure Advanced Settings] ページの [Maintenance] セクションで、次のように設定を指定しま
す。
•
[Maintenance Window]: メンテナンスウィンドウの選択方法を選択します。
• [Select Window]: 展開される画面で、メンテナンスを開始する曜日と開始時刻の UTC 時間、
およびメンテナンスウィンドウの期間(時間)を設定できます。
• [No Preference]: ElastiCache によってメンテナンスウィンドウが選択されます。この設定
がデフォルト値です。
メンテナンスウィンドウを指定し、メンテナンスのダウンタイムによるビジネスへの影響を最
小にすることをお勧めします。
4.
5.
[Topic for SNS Notification]: 一覧から、既存の Amazon Simple Notification Service (Amazon SNS)
トピックを選択するか、[Manual ARN input] を選択し、トピックの Amazon リソースネーム (ARN)
を入力します。Amazon SNS では、インターネットに接続されたスマートデバイスに通知をプッ
シュすることができます。デフォルトでは、通知は無効になります。詳細については、http://
aws.amazon.com/sns/ を参照してください。
[Next] を選択します。
画面 4: 確認と起動を行います。
先に進む前に、「画面 3: 詳細設定を編集する」が完了していることを確認してください。
設定を確認しクラスターを起動するには
1.
すべての設定を見直して、それぞれの値が意図したとおりになっていることを確認します。
2.
変更する必要がある場合は、[Previous] を選択して前の画面に戻り変更します。それ以外の場合
は、[Launch Cache Cluster] または [Launch Replication Group] を選択して、クラスターまたはレ
プリケーショングループを作成します。
[Cache Clusters] 画面に戻るには、[Success] 画面の [Close] を選択します。
3.
クラスターの作成中、クラスターのステータスは [creating] になります。ステータスが [available] に変
わると、使用できる状態です。
Note
クラスターが使用可能になった直後から、そのクラスターがアクティブである間は(クラス
ターを使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する
課金を中止するには、クラスターを削除する必要があります。「クラスターの削除 (p. 125)」を
参照してください。
API Version 2015-02-02
106
Amazon ElastiCache ユーザーガイド
AWS CLI を使用したクラスターの作成
キャッシュクラスターの作成 AWS CLI の使用
クラスター AWS CLI の使用 を作成するには、create-cache-cluster コマンドを使用します。次の
例では、myRedisCluster という名前の単一ノード Redis クラスターを作成し、スナップショットファ
イル snap.rdb (Amazon S3 にコピーされた) を初期データ値として投入します。
Linux, OS X, or Unix 用:
aws elasticache create-cache-cluster \
--cache-cluster-id myRedisCluster \
--cache-node-type cache.r3.large \
--engine redis \
--num-cache-nodes 1 \
--snapshot-arns arn:aws:s3:myS3Bucket/snap.rdb
Windows の場合:
aws elasticache create-cache-cluster ^
--cache-cluster-id myRedisCluster ^
--cache-node-type cache.r3.large ^
--engine redis ^
--num-cache-nodes 1 ^
--snapshot-arns arn:aws:s3:myS3Bucket/snap.rdb
詳細については、AWS CLI の「ElastiCache リファレンストピック「create-cache-cluster」のを
参照してください。
キャッシュクラスターの作成 ElastiCache API の使用
クラスター ElastiCache API を使用 を作成するには、CreateCacheCluster アクションを使用しま
す。次の例では、myRedisCluster という名前の単一ノード Redis クラスターを作成し、スナップショッ
トファイル dump.rdb (Amazon S3 にコピーされた) を初期データ値として投入します。
次のコード例の改行が読み込みのために追加されます。
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateCacheCluster
&CacheClusterId=myRedisCluster
&CacheNodeType=cache.r3.large
&Engine=redis
&NumCacheNodes=1
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&SnapshotArns.member.1=arn%3Aaws%3As3%3A%3A%3AmyS3Bucket%2Fdump.rdb
&Timestamp=20150508T220302Z
&Version=2015-02-02
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=<credential>
&X-Amz-Date=20150508T220302Z
&X-Amz-Expires=20150508T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Signature=<signature>
詳細については、ElastiCache API リファレンストピック「CreateCacheCluster」を参照してくださ
い。
API Version 2015-02-02
107
Amazon ElastiCache ユーザーガイド
クラスターの詳細を表示する
クラスターの詳細を表示する
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、1 つ以上のクラスターにつ
いての詳細を表示できます。
クラスターの詳細を表示する AWS マネジメントコン
ソールの使用
クラスターの詳細を表示する
1.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
3.
ElastiCache コンソールダッシュボードで、[Cache Clusters] を選択します。
クラスターのリストでクラスターの詳細を表示するには、クラスター名の左を指す右向きの矢印
( ) を選択します。
選択したら、矢印は下を向いて ( ) クラスターの詳細が表示されます。クラスターの詳細を非表
示にするには、下向きの矢印を選択します。
クラスターの詳細情報を表示する AWS CLI の使用
AWS CLI describe-cache-clusters コマンドを使用してクラスターの詳細を表示できます。
--cache-cluster-id パラメータを省略すると、最大で --max-items のクラスターの詳細が返され
ます。--cache-cluster-id パラメータが含まれる場合は、指定したクラスターの詳細が返されま
す。--max-items パラメータで返されるレコード数を制限できます。
次のコードは myCluster の詳細を一覧します。
aws elasticache describe-cache-clusters --cache-cluster-id myCluster
次のコードは最大で 25 のクラスターの詳細を一覧します。
aws elasticache describe-cache-clusters --max-items 25
詳細については、AWS CLI の ElastiCache トピック「describe-cache-clusters」を参照してくだ
さい。
クラスターの詳細を表示する ElastiCache API の使用
クラスター ElastiCache API を使用 DescribeCacheClusters アクションの詳細を表示できます。
CacheClusterId パラメータが含まれる場合は、指定したクラスターの詳細が返されます。
CacheClusterId パラメータを省略すると、最大で MaxRecords (デフォルトは 100) のクラスターの
詳細が返されます。MaxRecords の値は 20 未満、または 100 を超えることはできません。
次のコードは myCluster の詳細を一覧します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheClusters
&CacheClusterId=myCluster
&Version=2015-02-02
API Version 2015-02-02
108
Amazon ElastiCache ユーザーガイド
クラスターの詳細を表示する ElastiCache API の使用
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
次のコードは最大で 25 のクラスターの詳細を一覧します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheClusters
&MaxRecords=25
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
詳細については、ElastiCache API リファレンストピック「DescribeCacheClusters」を参照してく
ださい。
API Version 2015-02-02
109
Amazon ElastiCache ユーザーガイド
キャッシュクラスターの変更
ElastiCache キャッシュクラスターの変更
クラスターへのノードの追加またはクラスターからのノードの削除以外にも、セキュリティグループの
追加、メンテナンスウィンドウやパラメータグループの変更など、既存のクラスターに変更をかける必
要がある場合があります。
メンテナンスウィンドウは使用率の最も低い時間帯に設定することをお勧めします。このため、場合に
よっては変更が必要になります。
クラスターのパラメータグループの変更、またはクラスターのパラメータグループのパラメータ値の変
更によるクラスターのパラメータの変更は、クラスターが再起動された後に適用されます。
キャッシュクラスターの変更 AWS マネジメントコン
ソールの使用
クラスターを変更するには AWS マネジメントコンソールを使用した
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインの [Cache Clusters] を選択します。
3.
4.
クラスターのリストが表示されます。
[Cache Clusters] のリストで、変更するクラスターの名前を選択します。
[Modify] を選択します。
5.
[Modify Cache Cluster] ウィンドウが表示されます。
[Modify Cache Cluster] ウィンドウで、必要な変更を加えます。
新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供しているた
め、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache マネジメントコンソールから
廃止されました。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必要がある場
合は、AWS CLI または ElastiCache API を使用できます。
詳細については、以下のトピックを参照してください。
AWS CLI
ElastiCache API
キャッシュクラスターの作成
キャッシュクラスターの作成
AWS CLI の使用 (p. 107)
キャッシュクラスターの作成
ElastiCache API の使用 (p. 107)
キャッシュクラスターの変更
キャッシュクラスターの変更
AWS CLI の使用 (p. 111)
キャッシュクラスターの変更
ElastiCache API の使用 (p. 111)
レプリケーショングループの作 利用可能な Redis キャッシュ
成
クラスターがない場合のレプリ
ケーショングループの作成
AWS CLI の使用 (p. 148)
利用可能な Redis キャッシュク
ラスターがない場合のレプリ
ケーショングループの作成
ElastiCache API の使用 (p. 150)
レプリケーショングループの変 レプリケーショングループの変 レプリケーショングループの変
更
更 AWS CLI の使用 (p. 158)
更 ElastiCache API の使
用 (p. 158)
修正をすぐに適用する場合は、[Apply Immediately] ボックスを選択します。このボックスが選択さ
れていない場合、変更は次のメンテナンス時間中に適用されます。
API Version 2015-02-02
110
Amazon ElastiCache ユーザーガイド
キャッシュクラスターの変更 AWS CLI の使用
6.
[Modify] を選択します。
キャッシュクラスターの変更 AWS CLI の使用
既存のクラスター AWS CLI の使用 modify-cache-cluster コマンドを変更できます。クラスターの
設定値を変更するには、クラスターの ID、変更するパラメータ、パラメータの新しい値を指定します。
次の例では、myCluster という名前のクラスターのメンテナンスウィンドウを変更し、変更内容を直
ちに適用します。
Linux, OS X, or Unix 用:
aws elasticache modify-cache-cluster \
--cache-cluster-id myCluster \
--preferred-maintenance-window sun:23:00-mon:02:00 \
--apply-immediately
Windows の場合:
aws elasticache modify-cache-cluster ^
--cache-cluster-id myCluster ^
--preferred-maintenance-window sun:23:00-mon:02:00 ^
--apply-immediately
詳細については、AWS CLI の ElastiCache トピック「modify-cache-cluster」を参照してくださ
い。
キャッシュクラスターの変更 ElastiCache API の使用
既存のクラスター ElastiCache API を使用 ModifyCacheCluster アクションを変更できます。クラス
ターの設定値を変更するには、クラスターの ID、変更するパラメータ、パラメータの新しい値を指定
します。次の例では、myCluster という名前のクラスターのメンテナンスウィンドウを変更し、変更
内容を即座に適用します。
次のコード例の改行が読み込みのために追加されます。
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyCacheCluster
&ApplyImmediately=true
&CacheClusterId=myCluster
&PreferredMaintenanceWindow=sun:23:00-mon:02:00
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150901T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20150202T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20150901T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
詳細については、ElastiCache API リファレンストピック「ModifyCacheCluster」を参照してくださ
い。
API Version 2015-02-02
111
Amazon ElastiCache ユーザーガイド
クラスターの再起動
クラスターの再起動
変更内容によっては、変更を適用するためにクラスター再起動する必要があります。たとえば、パラ
メータグループのパラメータ値を変更した場合は、再起動後のみクラスターに変更が適用されます。
クラスターを再起動すると、クラスターのすべてのデータがフラッシュされ、エンジンが再起動されま
す。このプロセス中はクラスターにアクセスできません。クラスターですべてのデータがフラッシュさ
れるため、そのクラスターもう一度利用可能になったときは、クラスターが空の状態でから開始しま
す。
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してクラスターを再起動できます。
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用する場合でも、再起動を開始でき
るのは 1 つのクラスターだけです。複数のクラスターを再起動するには、プロセスまたはコマンドを繰
り返す必要があります。
クラスターの再起動 AWS マネジメントコンソールの
使用
クラスター AWS マネジメントコンソールを使用した を再起動できます。
クラスターを再起動するには AWS マネジメントコンソールを使用した
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインの [Cache Clusters] を選択します。
3.
キャッシュクラスターは、キャッシュクラスターのリストに表示されます。
クラスター名の左側にあるボックスを選択して、再起動するクラスターを選択します。
[Reboot] ボタンがアクティブになります。
4.
5.
複数のクラスターを選択すると、[Reboot] ボタンが無効になります。
[Reboot] を選択します。
キャッシュクラスターの再起動確認画面が表示されます。
クラスターを再起動するには、[Reboot] を選択します。クラスターの状態が、キャッシュクラス
ターノードの再起動中に変わります。
クラスターを再起動しない場合は、[Cancel] を選択します。
複数のクラスターを再起動するには、再起動する各クラスターに対してステップ 2 から 5 を繰り返し
ます。
クラスターの再起動 AWS CLI の使用
クラスター AWS CLI の使用 を再起動するには、reboot-cache-cluster コマンドを使用します。
クラスターの特定のノードを再起動するには、--cache-node-ids-to-reboot を使用して再起動す
るクラスターを一覧します。次のコマンドは、myCluster のノード 0001、0002、および 0004 を再起
動します。
Linux, OS X, or Unix 用:
API Version 2015-02-02
112
Amazon ElastiCache ユーザーガイド
クラスターの再起動 ElastiCache API の使用
aws elasticache reboot-cache-cluster \
--cache-cluster-id myCluster \
--cache-node-ids-to-reboot 0001 0002 0004
Windows の場合:
aws elasticache reboot-cache-cluster ^
--cache-cluster-id myCluster ^
--cache-node-ids-to-reboot 0001 0002 0004
クラスターのすべてのノードを再起動するには、--cache-node-ids-to-reboot パラメータを使用
して、クラスターのすべてのノードの ID を選択します。詳細については、「reboot-cache-cluster」を
参照してください。
クラスターの再起動 ElastiCache API の使用
クラスター ElastiCache API を使用 を再起動するには、RebootCacheCluster アクションを使用しま
す。
クラスターの特定のノードを再起動するには、CacheNodeIdsToReboot を使用して再起動するクラス
ターを一覧します。次のコマンドは、myCluster のノード 0001、0002、および 0004 を再起動します。
https://elasticache.us-west-2.amazonaws.com/
?Action=RebootCacheCluster
&CacheClusterId=myCluster
&CacheNodeIdsToReboot.member.1=0001
&CacheNodeIdsToReboot.member.2=0002
&CacheNodeIdsToReboot.member.3=0004
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
クラスターのすべてのノードを再起動するには、CacheNodeIdsToReboot パラメータを使用して、ク
ラスターのすべてのノードの ID を選択します。詳細については、「RebootCacheCluster」を参照して
ください。
API Version 2015-02-02
113
Amazon ElastiCache ユーザーガイド
クラスターのモニタリング
クラスターのモニタリング
コスト配分タグは、リソースのタグ値別に費用をグループ化することで AWS のコストを追跡および管
理するのに使用できる、キーと値のペアです。
コスト配分タグを使用して AWS 請求書を整理し、自分のコスト構造を反映することができます。その
ためには、AWS アカウントにサインアップして、タグキー値が含まれた AWS アカウントの請求書を
取得する必要があります。結合したリソースのコストを確認するには、同じタグキー値を持つリソース
に従って請求情報を整理します。たとえば、複数のリソースに特定のアプリケーション名のタグを付
け、請求情報を整理することで、1 つまたは複数のサービスを利用しているアプリケーションの合計コ
ストを確認することができます。
コスト配分タグをクラスターから追加または削除するステップの詳細については、「コスト配分のタグ
によるコストのモニタリング (p. 287)」を参照してください。
クラスターへのノードの追加
クラスターへのノードの追加は、Memcached エンジンを実行している場合にのみ適用されます。すべ
ての Redis クラスターに 1 つのノードがあるので、Redis クラスターにノードを追加したり削除したり
することはできません。ただし、Redis レプリケーショングループにクラスターを追加したり削除した
りすることはできます。詳細については、「レプリケーショングループへのリードレプリカの追
加 (p. 161)」および「リードレプリカの削除 (p. 167)」を参照してください。
デフォルトでは、Memcached クラスターは最大値の 20 ノードに制限されます。50 を超えるノードが
必要な場合、または Memcached クラスターで 20 を超えるノードが必要な場合は、ElastiCache 上限
緩和申請 (http://aws.amazon.com/contact-us/elasticache-node-limit-request/) に入力します。
ElastiCache マネジメントコンソール、AWS CLI、または ElastiCache API を使用してクラスターにノー
ドを追加できます。
Memcached クラスターのノードの数を変更するたびに、正しいノードにマップできるようにキース
ペースの一部を再マッピングする必要があります。Memcached クラスターの負荷分散の詳細について
は、「効率的な負荷分散のための ElastiCache クライアントの設定 (p. 58)」を参照してください。
クラスターへのノードの追加 AWS マネジメントコン
ソールの使用
ノードをクラスターに追加するには AWS マネジメントコンソールを使用した
1.
2.
3.
4.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインの [Cache Clusters] を選択します。
[Cache Clusters] リストで、[Nodes] 列を探し、変更するキャッシュクラスターのノード数のリン
クを選択します。
詳細パネルが表示されます。
[Nodes] タブを選択します。クラスターのノードのリストが表示されます。
API Version 2015-02-02
114
Amazon ElastiCache ユーザーガイド
クラスターへのノードの追加 AWS マネジメントコンソー
ルの使用
5.
6.
7.
リストの一番上にある [Add Node] ボタンを選択します。[Add Node] ダイアログボックスが表示さ
れます。
[Number of Nodes to Add] ボックスに、追加するノードの数を入力します。
[Preferred Zones] リストから [No Preference]、[Spread Nodes Across Zones]、または [Specify
Zones] を選択します。
• [No Preference]: 既存のノードがすべて同じアベイラビリティーゾーンにある場合、ElastiCache
はすべての新しいノードを同じアベイラビリティーゾーンに作成します。既存のノードが複数の
アベイラビリティーゾーンに分散している場合、ElastiCache は新しいノードを複数のアベイラ
ビリティーゾーンに分散させます。
• [Spread Nodes Across Zones]: ElastiCache 新規ノードを起動するアベイラビリティーゾーンを
選択しますが、複数のアベイラビリティーゾーンに配布されます。
• [Specify Zones]: 各アベイラビリティーゾーンで、起動する新しいクラスターの数を指定します。
[Specify Zones] を選択した場合、ウィザードが拡張され、使用可能なアベイラビリティーゾー
ンのリストが表示されます。そのゾーンで作成する新しいノードの数を入力します。これらの数
値の合計は、[Number of Nodes to Add] ボックスに入力した値と等しい必要があります。
8.
この変更を直ちに適用するには [Apply Immediately - Yes] ボタンを選択します。次のメンテナンス
時間まで変更を延期するには [No] を選択します。
保留中のリクエストに対する新しい送信/削除リクエストの影響
シナリオ
保留中の操
作
新しいリク
エスト
結果
シナリオ 1
削除
削除
新しい削除リクエストは、保留中か即時かを問わず、
保留中の削除リクエストを置き換えます。
たとえば、ノード 0001、0003、および 0007 の削除が
保留中の場合に、ノード 0002 および 0004 のみを削除
する新しいリクエストが出されると、ノード 0002 およ
び 0004 のみが削除されます。ノード 0001、0003、お
よび 0007 は削除されません。
API Version 2015-02-02
115
Amazon ElastiCache ユーザーガイド
クラスターへのノードの追加 AWS マネジメントコンソー
ルの使用
シナリオ
保留中の操
作
新しいリク
エスト
結果
シナリオ 2
削除
作成
新しい作成リクエストは、保留中か即時かを問わず、
保留中の削除リクエストを置き換えます。
たとえば、ノード 0001、0003、および 0007 の削除が
保留中の場合に、ノードを作成する新しいリクエスト
が出されると、新しいノードが作成され、ノード0001、
0003、および 0007 は削除されません。
シナリオ 3
作成
削除
新しい削除リクエストは、保留中か即時かを問わず、
保留中の作成リクエストを置き換えます。
たとえば、2 つのノードを作成する保留中のリクエスト
がある場合に、ノード 0003 を削除する新しいリクエス
トが出されると、新しいノードは作成されず、ノード
0003 が削除されます。
シナリオ 4
作成
作成
新しい作成リクエストは保留中の作成リクエストに追
加されます。
たとえば、2 つのノードを作成する保留中のリクエスト
がある場合に、3 つのノードを作成する新しいリクエス
トが出されると、保留中のリクエストに新しいリクエ
スト追加され、5 つのノードが作成されます。
Important
新しい作成リクエストを [Apply Immediately Yes] に設定すると、すべての作成リクエスト
はすぐに実行されます。新しい作成リクエスト
を [Apply Immediately - No] に設定すると、す
べてのリクエストは保留中になります。
保留中のオペレーションを特定するには、[Description] タブを選択し、表示される保留中の作成ま
たは削除の数を確認します。保留中の作成と削除が同時に存在することはできません。
9.
[Add] ボタンを選択します。
API Version 2015-02-02
116
Amazon ElastiCache ユーザーガイド
クラスターへのノードの追加 AWS CLI の使用
しばらくすると、新しいノードがステータス [creating] でノードリストに表示されます。表示され
ない場合は、ブラウザのページを更新します。
クラスターへのノードの追加 AWS CLI の使用
クラスター AWS CLI の使用 にノードを追加するには、以下のパラメータを指定して
modify-cache-cluster コマンドを使用します。
• --cache-cluster-id ノードを追加するキャッシュクラスターの ID。
• --num-cache-nodes --num-cache-nodes パラメータは、この変更を適用した後にこのクラスター
で必要となるノードの数を設定します。このクラスターにノードを追加しても、--num-cache-nodes
はこのクラスター内の現在ノードの数よりも大きくする必要があります。この値が現在のノードの数
よりより少ない場合、ElastiCache は cache-node-ids-to-remove パラメータとノードのリスト
がノードをクラスターから削除することを想定します (「クラスターからのノードの削除 AWS CLI
の使用 (p. 121)」を参照)。
• --apply-immediately または --no-apply-immediately は、次のメンテナンス時にこれらの
ノードを追加するかどうかを指定します。
Linux, OS X, or Unix 用:
aws elasticache modify-cache-cluster \
--cache-cluster-id my-cache-cluster \
--num-cache-nodes 5 \
--apply-immediately
Windows の場合:
aws elasticache modify-cache-cluster ^
--cache-cluster-id my-cache-cluster ^
--num-cache-nodes 5 ^
--apply-immediately
詳細については、AWS CLI トピック「modify-cache-cluster」を参照してください。
クラスターへのノードの追加 ElastiCache API の使用
ノードをクラスターに追加するには ElastiCache API を使用
•
以下のパラメータを使用して、the ModifyCacheCluster アクションを呼び出します。
• CacheClusterId ノードを追加するクラスターの ID。
• NumCacheNodes NumCachNodes パラメータは、この変更を適用した後に必要となるノードの
数を設定します。このクラスターにノードを追加しても、NumCacheNodes はこのクラスター内
の現在ノードの数よりも大きくする必要があります。この値が現在のノードの数よりより少ない
場合、ElastiCache は CacheNodeIdsToRemove パラメータとノードのリストがノードをクラス
ターから削除することを想定します (「クラスターからのノードの削除 ElastiCache API の使
用 (p. 123)」を参照)。
• ApplyImmediately は、次のメンテナンス時にこれらのノードを追加するかどうかを指定しま
す。
次の例は、クラスターにノードを追加する呼び出しを示しています。
API Version 2015-02-02
117
Amazon ElastiCache ユーザーガイド
クラスターへのノードの追加 ElastiCache API の使用
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyCacheCluster
&ApplyImmediately=true
&NumCacheNodes=5
&CacheClusterId=myCacheCluster
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
詳細については、ElastiCache API トピック「ModifyCacheCluster」を参照してください。
API Version 2015-02-02
118
Amazon ElastiCache ユーザーガイド
クラスターからのノードの削除
クラスターからのノードの削除
クラスターのノードの削除は、Memcached エンジンを実行している場合にのみ適用されます。すべて
の Redis クラスターに 1 つのノードがあるので、Redis クラスターにノードを追加したり削除したりす
ることはできません。ただし、Redis レプリケーショングループにクラスターを追加したり削除したり
することはできます。詳細については、「リードレプリカの削除 (p. 167)」を参照してください。
Memcached クラスターのノードの数を変更するたびに、正しいノードにマップできるようにキース
ペースの一部を再マッピングする必要があります。Memcached クラスターの負荷分散の詳細について
は、「効率的な負荷分散のための ElastiCache クライアントの設定 (p. 58)」を参照してください。
トピック
• クラスターからのノードの削除 AWS マネジメントコンソールの使用 (p. 119)
• クラスターからのノードの削除 AWS CLI の使用 (p. 121)
• クラスターからのノードの削除 ElastiCache API の使用 (p. 123)
クラスターからのノードの削除 AWS マネジメントコ
ンソールの使用
クラスターからノードを削除するには AWS マネジメントコンソールを使用した
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインの [Cache Clusters] を選択します。
[Cache Clusters] リストで、[Nodes] 列を探し、変更するキャッシュクラスターのノード数のリン
クを選択します。
4.
詳細パネルが表示されます。
[Nodes] タブを選択します。クラスターのノードのリストが表示されます。
5.
[Nodes] リストで以下の作業を行います。
1.
2.
クラスターから削除するノードの横にあるチェックボックスを選択します。
[Delete Node] ボタンを選択します。
[Delete Node] 確認ダイアログボックスが表示されます。
API Version 2015-02-02
119
Amazon ElastiCache ユーザーガイド
クラスターからのノードの削除 AWS マネジメントコンソー
ルの使用
6.
[Delete Node] 確認ダイアログボックスで、以下の作業を行います。
1.
削除するようにスケジュールされているノードが正しいノードであることを確認します。
2.
この変更を直ちに適用するには [Apply Immediately - Yes] ラジオボタンを選択します。次のメ
ンテナンス時間まで変更を延期するには [No] を選択します。
[Delete] ボタンを選択します。
3.
選択したノードのステータスが pending delete に変わります。[Apply Immediately - Yes] を選
択した場合、しばらくすると、ステータスが deleting に変わります。変わらない場合は、ブラ
ウザの画面を更新します。
保留中のリクエストに対する新しい送信/削除リクエストの影響
シナリオ
保留中の操
作
新しいリク
エスト
結果
シナリオ 1
削除
削除
新しい削除リクエストは、保留中か即時かを問わず、保留
中の削除リクエストを置き換えます。
たとえば、ノード 0001、0003、および 0007 の削除が保
留中の場合に、ノード 0002 および 0004 のみを削除する
新しいリクエストが出されると、ノード 0002 および 0004
のみが削除されます。ノード 0001、0003、および 0007
は削除されません。
シナリオ 2
削除
作成
新しい作成リクエストは、保留中か即時かを問わず、保留
中の削除リクエストを置き換えます。
たとえば、ノード 0001、0003、および 0007 の削除が保
留中の場合に、ノードを作成する新しいリクエストが出さ
れると、新しいノードが作成され、ノード 0001、0003、
および 0007 は削除されません。
シナリオ 3
作成
削除
新しい削除リクエストは、保留中か即時かを問わず、保留
中の作成リクエストを置き換えます。
たとえば、2 つのノードを作成する保留中のリクエストが
ある場合に、ノード 0003 を削除する新しいリクエストが
出されると、新しいノードは作成されず、ノード 0003 が
削除されます。
API Version 2015-02-02
120
Amazon ElastiCache ユーザーガイド
クラスターからのノードの削除 AWS CLI の使用
シナリオ
保留中の操
作
新しいリク
エスト
結果
シナリオ 4
作成
作成
新しい作成リクエストは保留中の作成リクエストに追加さ
れます。
たとえば、2 つのノードを作成する保留中のリクエストが
ある場合に、3 つのノードを作成する新しいリクエストが
出されると、保留中のリクエストに新しいリクエスト追加
され、5 つのノードが作成されます。
Important
新しい作成リクエストを [Apply Immediately - Yes]
に設定すると、すべての作成リクエストはすぐに
実行されます。新しい作成リクエストを [Apply
Immediately - No] に設定すると、すべてのリクエ
ストは保留中になります。
保留中のオペレーションを特定するには、[Description] タブを選択し、表示される保留中の作成または
削除の数を確認します。保留中の作成と削除が同時に存在することはできません。
クラスターからのノードの削除 AWS CLI の使用
1.
以下の例のように、describe-cache-cluster コマンドを使用してクラスターのノードのリス
トを表示します。削除するノードの識別子を書き留めてください。
Linux, OS X, or Unix 用:
aws elasticache describe-cache-clusters \
--cache-cluster-id my-cache-cluster \
--show-cache-node-info
Windows の場合:
API Version 2015-02-02
121
Amazon ElastiCache ユーザーガイド
クラスターからのノードの削除 AWS CLI の使用
aws elasticache describe-cache-clusters ^
--cache-cluster-id my-cache-cluster ^
--show-cache-node-info
このコマンドでは、以下のような出力が生成されます。
CACHECLUSTER my-cache-cluster 2013-07-06T23:34:09.756Z cache.m1.large
memcached
available 5 us-west-2b 1.4.5
SECGROUP default active
PARAMGRP default.memcached1.4 in-sync
CACHENODE 0001 2013-07-14T23:39:51.273Z available my-cachecluster.m2st2p.fsw4.use1qa.cache.amazonaws.com 11211 in-sync
CACHENODE 0002 2013-07-14T23:39:51.276Z available my-cachecluster.m2st2p.fsw7.use1qa.cache.amazonaws.com 11211 in-sync
CACHENODE 0003 2013-07-06T23:34:09.756Z available my-cachecluster.m2st2p.fswc.use1qa.cache.amazonaws.com 11211 in-sync
CACHENODE 0004 2013-07-06T23:34:09.756Z available my-cachecluster.m2st2p.fswd.use1qa.cache.amazonaws.com 11211 in-sync
CACHENODE 0005 2013-07-06T23:34:09.756Z available my-cachecluster.m2st2p.fswf.use1qa.cache.amazonaws.com 11211 in-sync
2.
以下の例のように、削除するノードのリストと共に modify-cache-cluster コマンドを使用し
ます。
コマンドラインインターフェイスを使用してクラスターからノードを削除するには、以下のパラ
メータを指定して modify-cache-cluster コマンドを使用します。
• --cache-cluster-id、ノードを削除するキャッシュクラスターの ID。
• --num-cache-nodes --num-cache-nodes パラメータは、この変更を適用した後に必要とな
るノードの数を設定します。
• --cache-node-ids-to-remove このクラスターから削除するノード ID のリスト。
• --apply-immediately または --no-apply-immediately は、次のメンテナンス時にこれら
のノードを削除するかどうかを指定します。
次の例では、my-cache-cluster クラスターからノード 0004 と 0005 を直ちに削除します。
Linux, OS X, or Unix 用:
aws elasticache modify-cache-cluster \
--cache-cluster-id my-cache-cluster \
--num-cache-nodes 3 \
--cache-node-ids-to-remove 0004,0005 \
--apply-immediately
Windows の場合:
aws elasticache modify-cache-cluster ^
--cache-cluster-id my-cache-cluster ^
--num-cache-nodes 3 ^
--cache-node-ids-to-remove 0004,0005 ^
--apply-immediately
API Version 2015-02-02
122
Amazon ElastiCache ユーザーガイド
クラスターからのノードの削除 ElastiCache API の使用
詳細については、AWS CLI トピック「describe-cache-cluster」および
「modify-cache-cluster」を参照してください。
クラスターからのノードの削除 ElastiCache API の使
用
ElastiCache API を使用 ノードを削除するには、以下のようにキャッシュクラスター ID と削除するノー
ドのリストを使用して ModifyCacheCluster アクションを呼び出します。
• CacheClusterId、ノードを削除するキャッシュクラスターの ID。
• NumCacheNodes NumCacheNodes パラメータは、この変更を適用した後に必要となるノードの数を
設定します。
• CacheNodeIdsToRemove.member.n クラスターから削除するノード ID の一覧。
• CacheNodeIdsToRemove.member.1=0004
• CacheNodeIdsToRemove.member.1=0005
• ApplyImmediately は、次のメンテナンス時にこれらのノードを削除するかどうかを指定します。
次の例では、myCacheCluster クラスターからノード 0004 と 0005 を直ちに削除します。
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyCacheCluster
&CacheClusterId=myCacheCluster
&ApplyImmediately=true
&CacheNodeIdsToRemove.member.1=0004
&CacheNodeIdsToRemove.member.2=0005
&NumCacheNodes=3
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
詳細については、ElastiCache API トピック「ModifyCacheCluster」を参照してください。
API Version 2015-02-02
123
Amazon ElastiCache ユーザーガイド
保留中のノードの追加または削除操作のキャンセル
保留中のノードの追加または削除操作のキャンセ
ル
保留中のノードの追加またはノード削除オペレーショ
ンのキャンセル AWS マネジメントコンソールの使用
変更を直ちに適用しないことを選択した場合、操作は、次のメンテナンス時間に実行されるまで pending
ステータスになります。保留中の操作はすべてキャンセルできます。
保留中の操作をキャンセルするには
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインの [Cache Clusters] をクリックします。
[Cache Clusters] リストで、[Nodes] 列を探し、保留中の操作をキャンセルするキャッシュクラス
ターのノード数のリンクをクリックします。
4.
詳細パネルが表示されます。
保留中のオペレーションを特定するには、[Description] タブを選択し、表示される保留中の作成ま
たは削除の数を確認します。保留中の作成と削除が同時に存在することはできません。
5.
[Nodes] タブをクリックします。
6.
保留中のすべての操作をキャンセルするには、[Cancel Pending] ボタンをクリックします。[Cancel
Pending] ダイアログボックスが表示されます。
[Cancel Pending] ボタンをクリックすることによって、保留中のすべての操作をキャンセルするこ
とを確認します。操作を保持する場合は、[Cancel] をクリックします。
7.
API Version 2015-02-02
124
Amazon ElastiCache ユーザーガイド
クラスターの削除
クラスターの削除
クラスターが使用可能な状態であれば、実際に使用しているかどうかに関係なく課金されます。課金を
中止するには、クラスターを削除します。
クラスターの削除 AWS マネジメントコンソールの使
用
次の手順では、デプロイから 1 つのクラスターを削除します。複数のクラスターを削除するには、削除
する各クラスターで手順を繰り返してください。別のクラスターの削除手順を開始する前に、1 つのク
ラスターの削除が終了するのを待つ必要はありません。
クラスターを削除するには
1.
2.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ElastiCache コンソールダッシュボードで、[Cache Clusters] を選択します。
3.
[Cache Clusters] 画面が表示されます。
クラスターのリストで、削除するクラスターを選択して、クラスターの名前を選択します。
4.
5.
ElastiCache コンソールから、一度に 1 つずつクラスターを削除できます。複数のクラスターを選
択すると、[Delete] ボタンが無効になります。
[Delete] ボタンを選択します。
[Delete Cache Cluster] 確認画面:
a. これが Redis クラスターである場合は、最終スナップショットを作成するかどうかと、最終ス
ナップショットが必要な場合は最終スナップショット名を指定します。
b. [Delete] を選択してクラスターを削除するか、[Cancel] を選択してクラスターを保持します。
[Delete] を選択した場合は、クラスターのステータスが削除中に変わります。
クラスターがクラスターのリストに表示されなくなると、そのクラスターへの課金は直ちに停止されま
す。
クラスターの削除 AWS CLI の使用
次のコードはクラスター myCluster を削除します。
aws elasticache delete-cache-cluster --cache-cluster-id myCluster
delete-cache-cluster コマンドは 1 つのクラスターのみを削除します。複数のクラスターを削除す
る場合は、削除する各クラスターごとに delete-cache-cluster を呼び出します。別のクラスター
を削除する前に、1 つのクラスターの削除が終了するのを待つ必要はありません。
詳細については、AWS CLI の ElastiCache トピック「delete-cache-cluster」を参照してくださ
い。
クラスターの削除 ElastiCache API の使用
次のコードはクラスター myCluster を削除します。
API Version 2015-02-02
125
Amazon ElastiCache ユーザーガイド
クラスターの削除 ElastiCache API の使用
https://elasticache.us-west-2.amazonaws.com/
?Action=DeleteCacheCluster
&CacheClusterId=myCluster
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20150202T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20150202T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
DeleteCacheCluster アクションは 1 つのクラスターのみを削除します。複数のクラスターを削除す
る場合は、削除する各クラスターごとに DeleteCacheCluster を呼び出します。別のクラスターを削
除する前に、1 つのクラスターの削除が終了するのを待つ必要はありません。
詳細については、ElastiCache API リファレンストピック「DeleteCacheCluster」を参照してくださ
い。
API Version 2015-02-02
126
Amazon ElastiCache ユーザーガイド
Memcached クラスターのスケーリング
ElastiCache クラスターのスケーリン
グ
Abstract
クラスターのスケーリング方法のガイダンス- 拡張 / 縮小またはアップ / ダウン。
アプリケーションが処理しなければならないデータの量は、一定ではありません。業務の拡大またはま
たは通常の変動が発生すると、需要は増加します。キャッシュを自己管理する場合は、需要のピークに
対して充分なハードウェアを用意する必要がありますが、これは費用が高くつきます。Amazon
ElastiCache を使用すると、現時点の需要を満たすための拡張を行って、利用した分だけで支払うこと
が可能になります。ElastiCache で、需要に合わせたキャッシュのスケーリングが容易になります。
トピック
• Memcached クラスターのスケーリング (p. 127)
• Redis クラスターのスケーリング (p. 129)
• スケーリングの拡張 / 縮小: クラスターのノードインスタンスタイプの変更 (p. 129)
Memcached クラスターのスケーリング
Abstract
Memcached クラスターをスケーリングするためのガイダンスが記載されています。
Memcached クラスターは、スケーリングを容易に行えるよう設計されています。Memcached クラス
ターでは、1 個から 20 までのノードを設定できます。Memcached クラスターのスケーリングを行う
には、ノードを追加したり削除したりします。50 を超えるノードが必要な場合、または Memcached
クラスターで 20 を超えるノードが必要な場合は、ElastiCache 上限緩和申請 (http://aws.amazon.com/
contact-us/elasticache-node-limit-request/) に入力します。
以下のトピックでは、ノードを追加したり削除したりしてクラスターをスケーリングする方法について
説明します。
• クラスターへのノードの追加 (p. 114)
• クラスターからのノードの削除 (p. 119)
API Version 2015-02-02
127
Amazon ElastiCache ユーザーガイド
Memcached クラスターのスケーリング
Memcached クラスターのノードの数を変更するたびに、正しいノードにマップできるようにキース
ペースの一部を再マッピングする必要があります。Memcached クラスターの負荷分散の詳細について
は、「効率的な負荷分散のための ElastiCache クライアントの設定 (p. 58)」を参照してください。
Memcached クラスターで自動検出を使用する場合は、ノードを追加したり削除するたびに、アプリ
ケーションのエンドポイントを変更する必要はありません。自動検出の詳細については、「 ノードの
自動検出(Memcached) (p. 84)」を参照してください。
ノードタイプを変更して Memcached クラスターをスケールするには、「スケーリングの拡張 / 縮小:
クラスターのノードインスタンスタイプの変更 (p. 129)」を参照してください。
API Version 2015-02-02
128
Amazon ElastiCache ユーザーガイド
Redis クラスターのスケーリング
Redis クラスターのスケーリング
Abstract
Redis クラスターを拡張または縮小するためのガイダンスが記載されています。
Redis クラスターは単一のノードです。そのため、いくつかのノードでデータのパーティション化を
行って規模の拡張や縮小を行うことはできません。Redis の実装を拡張する必要がある場合は、クラス
ターのノードインスタンスタイプのサイズを拡張または縮小することができます。たとえば、クラス
ターが現在 6.05 GB のメモリがあるノード cache.m3.largeで実行されている場合、13.3 GB のメモ
リがある cache.m3.xlarge ノードにクラスターを移行させることで拡張し、2.78 GB のメモリの
cache.m3.medium ノードにクラスターを移動させることで縮小できます。縮小すると決めた場合は、
新しいノードタイプにデータやオーバーヘッドのための十分なメモリがある必要があります。Redis の
メモリ要件の詳細については、「Redis スナップショットを作成するための十分なメモリがあることの
確認 (p. 52)」を参照してください。
クラスターのノードタイプの変更の詳細については、「スケーリングの拡張 / 縮小: クラスターのノー
ドインスタンスタイプの変更 (p. 129)」を参照してください。
1 つしかノードがないため Redis クラスターを拡張できない場合であっても、Redis レプリケーション
グループ (「Redis レプリケーショングループの作成 (p. 141)」) を作成し、リードレプリカを追加、ま
たは削除することによって大小のクラスターに対する読み込みのバランスを取ることができます。詳細
については、「レプリケーショングループへのリードレプリカの追加 (p. 161)」および「リードレプリ
カの削除 (p. 167)」を参照してください。
スケーリングの拡張 / 縮小: クラスターのノードイ
ンスタンスタイプの変更
ElastiCache は、動的に変化するクラスターのノードインスタンスタイプをサポートしていません。そ
のため、クラスターを拡張または縮小する場合は、新しいクラスターを作成する必要があります。Redis
エンジンを使う場合は、バックアップからクラスターをシードできます。新しい Memcached クラス
ターは常に空の状態で開始されます。
Important
小さなノードインスタンスタイプに変更する場合、新しいタイプがすべてのデータに対応でき
る十分な大きさであることを確認します。
Memcached
クラスターが Memcached エンジンを実行している場合、新しいクラスターは、アプリケーションが入
力しないかぎり空の状態で起動します。
Memcached クラスターを拡張または縮小するには
1.
新しいノードインスタンスタイプで新しいクラスターを作成します。詳細については「Memcached
キャッシュクラスターの作成 AWS マネジメントコンソールの使用 (p. 99)」、「キャッシュクラス
ターの作成 AWS CLI の使用 (p. 107)」または「キャッシュクラスターの作成 ElastiCache API の使
用 (p. 107)」を参照してください。
2.
3.
アプリケーションでは、新しいクラスターのエンドポイントにエンドポイントが更新されます。
古いクラスターを削除します。詳細については、「クラスターの削除 (p. 125)」を参照してくださ
い。
API Version 2015-02-02
129
Amazon ElastiCache ユーザーガイド
スケーリングの拡張 / 縮小: クラスターのノードインスタン
スタイプの変更
Redis
クラスターが Redis エンジンが実行するときは、次のプロセスを使用して新しいクラスターが空の状態
になることを防ぐことをお勧めします。
Redis クラスターを拡張または縮小するには
1.
2.
クラスターのスナップショットを作成します。スナップショットを作成する方法の詳細について
は、「Taking Manual Snapshots (p. 172)」を参照してください。
新しいクラスターに対して新しいノードインスタンスタイプを指定して、このスナップショットか
ら復元します。詳細については、「Restoring From a Snapshot (p. 180)」を参照してください。
または、新しいノードインスタンスタイプを使用してスナップショットからシードすることで、新
しいクラスターを起動できます。詳細については、「Using a Snapshot to Seed a Cluster (p. 182)」
を参照してください。
3.
4.
5.
アプリケーションでは、新しいクラスターのエンドポイントにエンドポイントが更新されます。
古いクラスターを削除します。詳細については、「クラスターの削除 (p. 125)」を参照してくださ
い。
該当する場合は、スナップショットを削除します。詳細については、「Deleting a Snapshot (p. 186)」
を参照してください。
API Version 2015-02-02
130
Amazon ElastiCache ユーザーガイド
ElastiCache レプリケーション
(Redis)
Abstract
キャッシュクラスターで Redis を実行している場合に、レプリケーショングループを作成することによって、拡張
性およびデータ損失に対する保護を強化します。
Amazon ElastiCache キャッシュクラスターは、冗長データ保護サービスのないスタンドアロンのメモ
リ内エンティティです。このシナリオでは、クラスターが何らかの理由で停止した場合は、クラスター
のすべてのデータが失われます。ただし Redis エンジンを実行している場合は、2 ~ 6 個のクラスター
を、1 ~ 5 個のクラスターにグループ内の 1 個のプライマリクラスターのレプリケートデータを含むレ
プリケーショングループにグループ化できます。このシナリオでは、1 個のクラスターが何らかの理由
で停止した場合でも 1 個以上の他のクラスターにレプリケートされているので、すべてのデータが失わ
れることがありません。
Note
障害が発生したグループにプライマリクラスターがある場合は、データがレプリカクラスター
に非同期で更新されるため、レプリカクラスターの更新のレイテンシーにより多少のデータが
失われる場合があります。詳細については、「Redis 実行時の障害の軽減 (p. 56)」を参照して
ください。
トピック
• Redis レプリケーション: エンジンバージョンによる違い (p. 132)
• Redis レプリケーショングループ (p. 133)
• マルチ AZ と自動フェイルオーバーをサポートするレプリケーショングループ (Redis) (p. 134)
• Redis レプリケーショングループの作成 (p. 141)
• レプリケーショングループのエンドポイントの検索 (p. 153)
• レプリケーショングループの変更 (p. 157)
• レプリケーショングループの削除 (p. 159)
• レプリケーショングループへのリードレプリカの追加 (p. 161)
• リードレプリカをプライマリに昇格させる (p. 164)
• リードレプリカの削除 (p. 167)
API Version 2015-02-02
131
Amazon ElastiCache ユーザーガイド
Redis レプリケーション: エンジンバージョンによる違い
Redis レプリケーション: エンジンバージョンによ
る違い
サポートされているすべての Redis バージョンで、レプリケーションがサポートされています。ただ
し、レプリケーションの実装方法は Redis バージョンによって異なります。
Redis バージョン 2.8.22 以降
バージョン 2.8.22 以降の Redis レプリケーションは、2 つの方法から選択します。詳細については、
「Redis バージョン 2.8.22 以前 (p. 132)」および「ElastiCache バックアップと復元(Redis) (p. 168)」
を参照してください。
分岐なしプロセス中に書き込みのワークロードが重い場合は、キャッシュへの書き込みを遅延させて、
多すぎる用の変更が蓄積されないようにして、正常なスナップショットが妨げられないようにします。
Redis バージョン 2.8.22 以前
バージョン 2.8.22 以前の Redis レプリケーションは、3 つのステップで構成されるプロセスです。
1.
2.
バックグラウンドプロセスでは、分岐によりキャッシュがディスクにシリアル化されます。これ
は、特定の時点のスナップショットを作成します。
フォアグラウンドでは、クライアント出力バッファーに変更ログが蓄積されます。
Important
変更ログがクライアント出力バッファーのサイズを超えると、同期が失敗します。詳細に
ついては、「Redis スナップショットを作成するための十分なメモリがあることの確
認 (p. 52)」を参照してください。
3.
最後にキャシュデータが送信され、変更ログがレプリカクラスターに転送されます。
API Version 2015-02-02
132
Amazon ElastiCache ユーザーガイド
Redis レプリケーショングループ
Redis レプリケーショングループ
レプリケーショングループは、Redis キャッシュクラスターの集合であり、1 個の読み書き可能なプラ
イマリクラスターと、最大 five 個のリードレプリカと呼ばれる読み取り専用セカンダリクラスターで構
成されます。各リードレプリカは、プライマリクラスターからのデータのコピーを維持します。非同期
レプリケーション機能は、リードレプリカとプライマリクラスターの同期を維持するのに使用されま
す。アプリケーションは、レプリケーショングループ内のどのクラスターからでも読み取ることができ
ます。アプリケーションは、そのプライマリクラスターにのみ書き込むことができます。リードレプリ
カは、拡張性およびデータ損失に対する保護を強化します。
レプリケーショングループを使用して ElastiCache の Redis ソリューションをスケールし、大量の読み
込みを行うアプリケーションを処理したり、同じキャッシュから同時に読み込みを実行する多数のクラ
イアントをサポートしたりすることができます。
レプリケーショングループのすべてのノードは、同じリージョンに存在する必要があります。耐障害性
を向上させるために、そのリージョン内の複数のアベイラビリティーゾーンにリードレプリカをプロビ
ジョニングできます。レプリケーショングループにリードレプリカを追加すると、プライマリクラス
ターからすべてのデータがリードレプリカにコピーされます。その時点から、データがプライマリに書
き込まれるときには常に、変更が非同期的にすべてのリードレプリカに反映されます。アプリケーショ
ンは、リードレプリカに接続し、キャッシュ内のデータにアクセスできます(ただし、レプリカにデー
タを書き込むことはできません)。
耐障害性を向上させてダウンタイム減少させるために、Redis レプリケーショングループの自動フェイ
ルオーバーを備えたマルチ AZ を実装します。詳細については、「マルチ AZ と自動フェイルオーバー
をサポートするレプリケーショングループ (Redis) (p. 134)」を参照してください。
レプリケーショングループ内のキャッシュクラスターのロールを変更し、プライマリクラスターといず
れかのレプリカのロールを交換することができます。この作業は、パフォーマンスチューニングの理由
で実行することがあります。たとえば、書き込みアクティビティが多いウェブアプリケーションでは、
ネットワークレイテンシーが最も低いノードを選択することができます。詳細については、「リードレ
プリカをプライマリに昇格させる (p. 164)」を参照してください。
API Version 2015-02-02
133
Amazon ElastiCache ユーザーガイド
マルチ AZ と自動フェイルオーバーをサポートするレプリ
ケーショングループ (Redis)
マルチ AZ と自動フェイルオーバーをサポートす
るレプリケーショングループ (Redis)
「Amazon ElastiCache のマルチ AZ でレプリケーショングループの自動フェイルオーバー機能を有効
にすると、レプリケーショングループでプライマリクラスターの読み書きが不能になり、何らかの理由
でアクセス不能または停止した場合の、耐障害性が向上します。
トピック
• 自動フェイルオーバーの概要 (p. 134)
• 自動フェイルオーバーと Multi-AZ に関する注意事項 (p. 134)
• マルチ AZ および自動フェイルオーバーレスポンスの障害シナリオ (p. 135)
• マルチ AZ で自動フェイルオーバーを有効にする (p. 138)
自動フェイルオーバーの概要
ElastiCache レプリケーショングループはプライマリクラスターと最大 5 個のリードレプリカで構成さ
れます。計画された特定のタイプのメンテナンス中、またはプライマリクラスターまたはアベイラビリ
ティーゾーンの予期しない障害が発生した場合に、レプリケーショングループでマルチ AZ が有効にさ
れていると、ElastiCache はプライマリクラスターの障害を自動的に検出し、リードレプリカクラスター
を選択してそれにプライマリクラスターを昇格させて、昇格が完了するとすぐに新しいプライマリクラ
スターに書き込みを再開できるようにします。アプリケーションがプライマリエンドポイントに書き込
みを行っている場合に、アプリケーションでエンドポイントを変更しなくてもよいように、ElastiCache
は昇格されたレプリカの DNS も伝達します。ただし、個々のエンドポイントから読み取りを行うた
め、プライマリクラスターに昇格されたレプリカの読み取りエンドポイントを新しいレプリカのエンド
ポイントに変更する必要があります。
昇格プロセスは通常数分かかります。マルチ AZ を有効にしていない場合は、新しいプライマリクラス
ターを再度作成してプロビジョニングするよりもかなり短い時間で行われます。
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してマルチ AZ と自動フェイルオー
バーを有効にできます。
自動フェイルオーバーと Multi-AZ に関する注意事項
次の点に注意する必要があります。
• マルチ AZ は、Redis バージョン 2.8.6 以降でサポートされます。
• マルチ AZ は、T1 および T2 キャッシュノードタイプではサポートされません。
• Redis レプリケーションは同期されません。そのため、プライマリクラスターがレプリカにフェイル
オーバーすると、レプリケーションの遅延のために少量のデータが失われる可能性があります。
• プライマリクラスターに昇格させるレプリカを選択すると、ElastiCache はレプリケーションの遅延
が最も小さいレプリカ (つまり最新の状態のレプリカ) を選択します。
• レプリケーショングループでマルチ AZ を有効にしている場合、レプリカクラスターを手動でプライ
マリクラスターに昇格させることはできません。したがって、AZ-a のプライマリが AZ-b のレプリ
カにフェイルオーバーした場合、プライマリクラスターは AZ-b に存在します。AZ-a の新しいレプ
リカをプライマリクラスターに昇格させるには、最初にレプリカグループでマルチ AZ を無効にして
昇格を実行してから、マルチ AZ をもう一度有効にする必要があります。
• ElastiCache マルチ AZ および AOF(Append-Only File)は、相互に排他的です。一方を有効にする
と、他方を有効にすることはできません。
• アベイラビリティーゾーン全体で障害が発生するというまれなイベントによりクラスターの障害が発
生した場合、アベイラビリティーゾーンがバックアップされている場合のみ障害のあるプライマリク
API Version 2015-02-02
134
Amazon ElastiCache ユーザーガイド
マルチ AZ および自動フェイルオーバーレスポンスの障害
シナリオ
ラスターを置き換えるレプリカが作成されます。たとえば、レプリケーショングループと、AZ-a の
プライマリクラスターおよび AZ-b と AZ-c のレプリカを検討してみます。プライマリクラスターで
障害が発生すると、レプリケーションの遅延が最も小さいレプリカがプライマリクラスターに昇格し
ます。その後、AZ-a がバックアップとなっていて使用可能な場合のみ、ElastiCache は AZ-a 内(障
害が発生したプライマリクラスターがあった場所)に新しいレプリカを作成します。
• プライマリクラスターをお客様が再起動した場合、自動フェイルオーバーはトリガーされません。他
の再起動と障害は、自動フェイルオーバーをトリガーします。
• プライマリクラスターが再起動すると、オンラインに戻ったときに常にデータがクリアされます。
リードレプリカがクリアされたプライマリクラスターを検出すると、データのコピーがクリアされる
ため、データ損失が発生します。
• リードレプリカが昇格されると、他のレプリカは新しいプライマリクラスターと同期されます。最初
の同期の後、レプリカのコンテンツが削除され、新しいプライマリクラスターからのデータと同期さ
れます。このため、レプリカにアクセスできない短い中断が発生します。この同期プロセスにより、
レプリカとの同期中にプライマリで一時的にロードも行われます。この動作は、Redis のネイティブ
な動作であり、ElastiCache マルチ AZ 特有の動作ではありません。Redis のこの動作の詳細につい
ては、http://redis.io/topics/replication を参照してください。
Important
• Redis バージョン 2.8.22 以降
外部レプリカは許可されていません。
• Redis バージョン 2.8.22 以前
外部 Redis を、マルチ AZ を有効にした ElastiCache Redis レプリケーショングループに接
続しないことをお勧めします。これはサポートされていない設定で、ElastiCache がフェイ
ルオーバーと復旧を正しく実行できなくなるという問題が生じる可能性があります。
ElastiCache レプリケーショングループに外部 Redis レプリカを接続する必要がある場合は、
接続する前に必ずマルチ AZ が無効になっていることを確認してください。
マルチ AZ および自動フェイルオーバーレスポンスの
障害シナリオ
マルチ AZ に自動フェイルオーバーを導入する前に、ElastiCache が検出されて、障害が発生したクラ
スターの再作成と再プロビジョニングにより、レプリケーショングループのそのクラスターが置き換え
られます。マルチ AZ を有効にすることで、障害が発生したプライマリクラスターがレプリケーション
の遅延が最も小さいレプリカにフェイルオーバーされます。選択されたレプリカは自動的にプライマリ
クラスターに昇格されます。これは、プライマリクラスターを作成してプロビジョニングするよりもか
なり短い時間で行われます。このプロセスは、レプリケーショングループにもう一度書き込みが可能に
なるまで、通常数分かかります。
マルチ AZ が有効になると、ElastiCache はプライマリクラスターの状態を継続的に監視します。プラ
イマリクラスターで障害が発生した場合、次のいずれかのアクションが実行されます。
プライマリクラスターのみで障害が発生した場合
プライマリクラスターのみで障害が発生した場合は、レプリケーションの遅延が最も小さいリードレプ
リカがプライマリクラスターに昇格し、新しいリードレプリカが作成されプロビジョニングされて、昇
格されたリードレプリカと置き換えられます。
API Version 2015-02-02
135
Amazon ElastiCache ユーザーガイド
マルチ AZ および自動フェイルオーバーレスポンスの障害
シナリオ
ElastiCache プライマリクラスターのみで障害が発生した場合のマルチ AZ のアクション
1.
障害が発生したプライマリクラスターをオフラインにします。
2.
レプリケーションの遅延が最も小さいリードレプリカをプライマリクラスターに昇格します。
3.
書き込みは、昇格プロセスが完了するとすぐに (通常は数分) 再開できます。ElastiCache が昇格し
たレプリカの DNS を反映させるため、書き込みのためのエンドポイントを変更する必要はありま
せん。
置き換えられたリードレプリカが起動し、プロビジョニングされます。
4.
クラスターのディストリビューションが維持されるように、障害が発生したプライマリが存在して
いたアベイラビリティーゾーンで置き換えリードレプリカが起動されます。
レプリカと新しいプライマリクラスターの同期。
新しいレプリカが使用可能になったら、アプリケーションで以下の変更を実行する必要があり
ます:
• プライマリエンドポイント – 新しいプライマリクラスターの DNS がプライマリエンドポイントに反
映されるため、アプリケーションを変更しないでください。
• リードエンドポイント – 障害が発生したプライマリのリードエンドポイントを新しいレプリカのエン
ドポイントに置き換えます。
レプリケーショングループのエンドポイントの検索については、次のトピックを参照してください:
• Redis レプリケーショングループのエンドポイントの検索 AWS マネジメントコンソールの使用 (p. 47)
• レプリケーショングループのエンドポイントの検索 AWS CLI の使用 (p. 49)
• レプリケーショングループのエンドポイントの検索 ElastiCache API を使用 (p. 51)
プライマリクラスターとリードレプリカのいくつかで障害が発
生した場合
1 つのリードレプリカを除くすべてで障害が発生した場合、残りの利用可能なレプリカはプライマリク
ラスターに昇格され、新しいリードレプリカが作成されてプロビジョニングされます。
API Version 2015-02-02
136
Amazon ElastiCache ユーザーガイド
マルチ AZ および自動フェイルオーバーレスポンスの障害
シナリオ
ElastiCache プライマリクラスターとリードレプリカのいくつかで障害が発生した場合のマル
チ AZ のアクション
1.
2.
障害が発生したプライマリクラスターとリードレプリカをオフラインにします。
レプリケーションの遅延が最も小さい利用可能なレプリカをプライマリクラスターに昇格します。
3.
書き込みは、昇格プロセスが完了するとすぐに (通常は数分) 再開できます。ElastiCache が昇格し
たレプリカの DNS を反映させるため、書き込みのためのエンドポイントを変更する必要はありま
せん。
複数の置き換えレプリカを作成してプロビジョニングします。
4.
クラスターのディストリビューションが維持されるように、障害が発生したクラスターのアベイラ
ビリティーゾーンで置き換えレプリカが作成されます。
すべてのクラスターと新しいプライマリクラスターの同期。
新しいクラスターが使用可能になったら、アプリケーションで以下の変更を実行する必要があ
ります:
• プライマリエンドポイント – 新しいプライマリクラスターの DNS がプライマリエンドポイントに反
映されるため、アプリケーションを変更しないでください。
• リードエンドポイント – 障害が発生したプライマリのリードエンドポイントと障害が発生したレプリ
カを新しいレプリカのエンドポイントに置き換えます。
レプリケーショングループのエンドポイントの検索については、次のトピックを参照してください:
• Redis レプリケーショングループのエンドポイントの検索 AWS マネジメントコンソールの使用 (p. 47)
• レプリケーショングループのエンドポイントの検索 AWS CLI の使用 (p. 49)
• レプリケーショングループのエンドポイントの検索 ElastiCache API を使用 (p. 51)
レプリケーショングループ全体で障害が発生した場合
すべてで障害が発生した場合、すべてのクラスターが再作成され、プロビジョニングされます。
このシナリオでは、レプリケーショングループ内のあらゆるクラスターで障害が発生したため、キャッ
シュ内のデータはすべて失われます。これはまれにしか発生しません。
API Version 2015-02-02
137
Amazon ElastiCache ユーザーガイド
マルチ AZ で自動フェイルオーバーを有効にする
ElastiCache レプリケーショングループ全体で障害が発生した場合のマルチ AZ のアクション
1.
障害が発生したプライマリクラスターとリードレプリカをオフラインにします。
2.
3.
代替プライマリクラスターが作成され、プロビジョニングされます。
複数の置き換えレプリカを作成してプロビジョニングします。
クラスターのディストリビューションが維持されるように、障害が発生したクラスターのアベイラ
ビリティーゾーンで置き換えが作成されます。
Note
レプリケーショングループ全体で障害が発生したため、データは失われ、すべての新しい
クラスターはコールド起動します。
代替クラスターごとに置き換えられたクラスターとして同じエンドポイントがあるため、アプリケー
ションでエンドポイントを変更する必要はありません。
レプリケーショングループのエンドポイントの検索については、次のトピックを参照してください:
• Redis レプリケーショングループのエンドポイントの検索 AWS マネジメントコンソールの使用 (p. 47)
• レプリケーショングループのエンドポイントの検索 AWS CLI の使用 (p. 49)
• レプリケーショングループのエンドポイントの検索 ElastiCache API を使用 (p. 51)
耐障害性レベルを上げるために、異なるアベイラビリティーゾーンにプライマリクラスターとリードレ
プリカを作成することをお勧めします。
マルチ AZ で自動フェイルオーバーを有効にする
AWS コンソール、AWS CLI、または ElastiCache API を使用して、レプリケーショングループの作成、
または修正を行うときに、マルチ AZ で自動フェイルオーバーを有効にできます。
マルチ AZ で自動フェイルオーバーを有効にできるのは、少なくとも 1 個の利用可能なリードレプリカ
がある Redis レプリケーショングループのみです。レプリケーショングループの作成の詳細について
は、「Redis レプリケーショングループの作成 (p. 141)」を参照してください。レプリケーショングルー
プへのリードレプリカの追加については、「レプリケーショングループへのリードレプリカの追
加 (p. 161)」を参照してください。
トピック
• マルチ AZ で自動フェイルオーバーを有効にする AWS マネジメントコンソールの使用 (p. 139)
API Version 2015-02-02
138
Amazon ElastiCache ユーザーガイド
マルチ AZ で自動フェイルオーバーを有効にする
• マルチ AZ で自動フェイルオーバーを有効にする AWS CLI の使用 (p. 140)
• マルチ AZ で自動フェイルオーバーを有効にする ElastiCache API の使用 (p. 140)
マルチ AZ で自動フェイルオーバーを有効にする AWS マネジ
メントコンソールの使用
新しい Redis クラスターを作成または既存の Redis レプリケーションのグループを変更したときに、
ElastiCache コンソールを使用してマルチ AZ で自動フェイルオーバーを有効にできます。
ElastiCache コンソールを使用してクラスターを作成するときにマルチ AZ で自
動フェイルオーバーを有効にする
クラスターを作成するときにマルチ AZ で自動フェイルオーバーを有効にする AWS マネジメ
ントコンソールを使用した
1.
Redis をクラスターエンジンとして選択します。
2.
[Cluster Details] 画面 ([Cluster Specifications] セクション) で、以下を実行します。
a.
b.
3.
[Enable Replication] を選択します (これがデフォルトです)。
[Multi-AZ] を選択します (これがデフォルトです)。
クラスターの作成を続けます。
Redis キャッシュクラスターの作成の詳細については、「1 つの Redis キャッシュクラスターの作成
AWS マネジメントコンソールの使用 (p. 103)」を参照してください。
既存のレプリケーショングループでのマルチ AZ の自動フェイルオーバー有効
化 AWS マネジメントコンソールの使用
既存のレプリケーショングループでマルチ AZ の自動フェイルオーバーを有効化するには AWS
マネジメントコンソールを使用した
Note
レプリケーショングループが既に存在しており、少なくとも 1 個の利用可能なリードレプリカ
が必要となります。利用可能なクラスターを使用したレプリケーショングループの作成につい
ては、「Redis レプリケーショングループの作成 (p. 141)」を参照してください。既存のレプリ
ケーショングループにクラスターを追加する方法の詳細については、「レプリケーショング
ループへのリードレプリカの追加 (p. 161)」を参照してください。
1.
2.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左側のナビゲーションペインで [Replication Groups] を選択します。
3.
レプリケーショングループのリストから、マルチ AZ と自動フェイルオーバーを有効化するレプリ
ケーショングループの名前を選択します。
4.
5.
[Modify] を選択します。
[Modify Replication Group] ウィザードで、[Yes] ([Enable Multi-AZ] で) を選択し、次に [Modify] を
選択します。
クラスターの変更の詳細については、「ElastiCache キャッシュクラスターの変更 (p. 110)」を参照して
ください。
API Version 2015-02-02
139
Amazon ElastiCache ユーザーガイド
マルチ AZ で自動フェイルオーバーを有効にする
マルチ AZ で自動フェイルオーバーを有効にする AWS CLI の使
用
次のコード例では、AWS CLI を使用して、レプリケーショングループ myReplGroup でマルチ AZ と
自動フェイルオーバーを有効にすることができます。
Important
レプリケーショングループ myReplGroup が既に存在しており、少なくとも 1 個の利用可能な
リードレプリカが必要となります。
Linux, OS X, or Unix 用:
aws elasticache modify-replication-group \
--replication-group-id myReplGroup \
--automatic-failover-enabled
Windows の場合:
aws elasticache modify-replication-group ^
--replication-group-id myReplGroup ^
--automatic-failover-enabled
詳細については、AWS CLI のトピック「create-cache-cluster」、「create-replication-group」および
「modify-replication-group」を参照してください。
マルチ AZ で自動フェイルオーバーを有効にする ElastiCache
API の使用
次のコード例では、ElastiCache API を使用して、レプリケーショングループ myReplGroup でマルチ
AZ と自動フェイルオーバーを有効にすることができます。
Note
レプリケーショングループ myReplGroup が既に存在しており、少なくとも 1 個の利用可能な
リードレプリカが必要となります。
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyReplicationGroup
&AutoFailover=true
&ReplicationGroupId=myReplGroup
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20140401T192317Z
&X-Amz-Credential=<credential>
詳細については、『ElastiCache API リファレンス』の「CreateCacheCluster」、
「CreateReplicationGroup」、および「ModifyReplicationGroup」を参照してください。
API Version 2015-02-02
140
Amazon ElastiCache ユーザーガイド
レプリケーショングループの作成
Redis レプリケーショングループの作成
レプリケーショングループを作成するには、次の 2 つのオプションがあります。どれを使用するかは、
どのレプリケーショングループに関連付けられていない利用可能な Redis キャッシュクラスターがすで
にあり、レプリケーショングループでプライマリクラスターとして使用するかどうか、またはレプリ
ケーショングループに加えてプライマリクラスターとリードレプリカを作成するかどうかで異なりま
す。
オプション 1: 利用可能な Redis キャッシュクラスターがある場合のレプリケーショングループの作
成 (p. 141)
このオプションを使用して、利用可能な Redis キャッシュクラスターを活用してプライマリクラス
ターにします。このオプションを使用して、プライマリクラスターとして使用する利用可能なクラ
スターを指定するレプリケーショングループを作成し、レプリケーショングループに対してそれぞ
れリードレプリカを追加します。既存のクラスターがアクティブの場合、リードレプリカは、それ
らを作成されたクラスターとみなして同期します。
オプション 2: 利用可能な Redis キャッシュクラスターがない場合のレプリケーショングループの作
成 (p. 146)
レプリケーショングループのプライマリクラスターとして使用する利用可能な Redis キャッシュク
ラスターがない場合は、このオプションを使用します。このオプションを使用して、必要なリード
レプリカの数を指定するレプリケーショングループを作成します。次に、1 回のアクションで、レ
プリケーショングループ、プライマリクラスターを作成して、リードレプリカの数を指定します。
利用可能な Redis キャッシュクラスターがある場合
のレプリケーショングループの作成
利用可能なクラスターとは、どのレプリケーショングループにも関連付けられていない、既存の Redis
キャッシュクラスターです。
以下の手順は、レプリケーショングループに属さない Redis キャッシュクラスターがある場合にのみ使
用できます。このクラスターは、レプリケーショングループのプライマリクラスターとなります。レプ
リケーショングループのプライマリとして使用可能な Redis キャッシュクラスターがない場合は、「利
用可能な Redis キャッシュクラスターがない場合のレプリケーショングループの作成 (p. 146)」を参照
してください。
トピック
• 利用可能な Redis キャッシュクラスターがある場合のレプリケーショングループの作成 AWS マネ
ジメントコンソールの使用 (p. 141)
• 利用可能な Redis キャッシュクラスターがある場合のレプリケーショングループの作成 AWS CLI
の使用 (p. 142)
• 利用可能な Redis キャッシュクラスターがある場合のレプリケーショングループの作成 ElastiCache
API の使用 (p. 144)
利用可能な Redis キャッシュクラスターがある場合のレプリ
ケーショングループの作成 AWS マネジメントコンソールの使
用
利用可能な Redis キャッシュクラスターがある場合にレプリケーショングループを作成するに
は AWS マネジメントコンソールを使用した
1.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
API Version 2015-02-02
141
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがある場合のレプ
リケーショングループの作成
2.
レプリケーショングループの作成
a.
左側のナビゲーションペインで [Replication Groups] をクリックします。
b.
[Replication Groups] 画面が表示されます。
[Create Replication Group] をクリックします。
[Create Replication Group] ウィザードが表示されます。
[Create Replication Group] ウィザードが表示される代わりに、利用可能な Redis キャッシュ
クラスターがないという警告が表示される場合は、「利用可能な Redis キャッシュクラスター
がない場合のレプリケーショングループの作成 (p. 146)」のステップ 2 に進みます。
c.
d.
[Primary Cluster ID] リストで、このレプリケーショングループでプライマリクラスターとして
使用するクラスターを選択します。
[Replication Group ID] ボックスに、このレプリケーショングループの ID (名前) を入力します。
レプリケーショングループ名の制約は次のとおりです。
• レプリケーショングループの名前には、1 ~ 16 文字の英数字またはハイフンを含める必要
があります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
e.
f.
[Replication Group Description] ボックスに、レプリケーショングループのわかりやすい説明を
入力します。
[Create] をクリックします。
レプリケーショングループのステータスが available になるまで待ちます。
3.
1 ~ 5 個のリードレプリカをレプリケーショングループに追加します。
レプリケーショングループに追加する各リードレプリカで、「レプリケーショングループへのリー
ドレプリカの追加 (p. 161)」のステップを繰り返します。
利用可能な Redis キャッシュクラスターがある場合のレプリ
ケーショングループの作成 AWS CLI の使用
利用可能な Redis キャッシュクラスターをプライマリとして使用する場合に、リードレプリカを持つレ
プリケーショングループを作成するのに 2 つのステップがあります。
最初に、プライマリとして使用できる Redis キャッシュクラスターを使用してレプリケーショングルー
プを作成します。
利用可能な Redis キャッシュクラスターがすでに存在する場合にレプリケーショングループを作成する
には、AWS CLI create-replication-group コマンドを使用します。その際に以下のパラメータを
必ず含めます。
API Version 2015-02-02
142
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがある場合のレプ
リケーショングループの作成
--replication-group-id
作成するレプリケーショングループの名前。
レプリケーショングループ名の制約は次のとおりです。
• レプリケーショングループの名前には、1 ~ 16 文字の英数字またはハイフンを含める必要があ
ります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
--replication-group-description
レプリケーショングループの説明。
--primary-cluster-id
このレプリケーショングループのプライマリクラスターとして使用可能な Redis キャッシュクラス
ターの名前。
次のコマンドは、レプリケーショングループ my-repl-group を作成します。レプリケーショングルー
プのプライマリクラスターとして使用できる Redis クラスター my-primary を使用します。my-primary–
パラメータグループ、セキュリティグループ、ノードタイプなどの設定です。– は、レプリケーション
グループのすべてのクラスターに適用されます。
Linux, OS X, or Unix 用:
aws elasticache create-replication-group \
--replication-group-id my-repl-group \
--replication-group-description "test group" \
--primary-cluster-id my-primary
Windows の場合:
aws elasticache create-replication-group ^
--replication-group-id my-repl-group ^
--replication-group-description "test group" ^
--primary-cluster-id my-primary
使用するパラメータおよび追加情報については、AWS CLI トピックの「http://docs.aws.amazon.com/
cli/latest/reference/elasticache/create-replication-group.html」を参照してください。
次に、リードレプリカをレプリケーショングループに追加します。
レプリケーショングループが作成されると、create-cache-cluster コマンドを以下のパラメータを
必ず含めて使用して、1 ~ 5 個のリードレプリカを追加します。
--cache-cluster-id
レプリケーショングループに追加するクラスターの名前。
クラスターの名前に関する制約は次のとおりです:
• クラスターの名前には 01 ~ 20 文字の英数字またはハイフンを含める必要があります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
--replication-group-id
このクラスターに追加するレプリケーショングループの名前。
レプリケーショングループに追加するそれぞれのリードレプリカで、このコマンドを
--cache-cluster-id パラメータの値のみを変更して繰り返します。
API Version 2015-02-02
143
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがある場合のレプ
リケーショングループの作成
Note
レプリケーショングループで可能なリードレプリカの数は 5 個までです。すでに 5 個のリード
レプリカのあるレプリケーショングループにリードレプリカを追加しようとすると、オペレー
ションが失敗します。
次のコードは、リードレプリカ my-replica01 をレプリケーショングループ my-repl-group に追加
します。プライマリクラスター – パラメータグループ、セキュリティグループ、ノードタイプなどの設
定です。– はレプリケーショングループに追加されると、クラスターに適用されます。
Linux, OS X, or Unix 用:
aws elasticache create-cache-cluster \
--cache-cluster-id my-replica01 \
--replication-group-id my-repl-group
Windows の場合:
aws elasticache create-cache-cluster ^
--cache-cluster-id my-replica01 ^
--replication-group-id my-repl-group
使用するパラメータおよび追加情報については、AWS CLI トピックの「create-cache-cluster」を参照
してください。
利用可能な Redis キャッシュクラスターがある場合のレプリ
ケーショングループの作成 ElastiCache API の使用
利用可能な Redis キャッシュクラスターをプライマリとして使用する場合に、リードレプリカを持つレ
プリケーショングループを作成するのに 2 つのステップがあります。
最初に、プライマリとして使用できる Redis キャッシュクラスターを使用してレプリケーショングルー
プを作成します。
利用可能な Redis キャッシュクラスターがすでに存在する場合にレプリケーショングループを作成する
には、ElastiCache API CreateReplicationGroup アクションを使用します。その際に以下のパラ
メータを必ず含めます。
ReplicationGroupId
作成するレプリケーショングループの名前。
レプリケーショングループ名の制約は次のとおりです。
• レプリケーショングループの名前には、1 ~ 16 文字の英数字またはハイフンを含める必要があ
ります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
ReplicationGroupDescription
レプリケーショングループの説明。
PrimaryClusterId
このレプリケーショングループのプライマリクラスターとして使用可能な Redis キャッシュクラス
ターの名前。
API Version 2015-02-02
144
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがある場合のレプ
リケーショングループの作成
次のアクションは、レプリケーショングループ myReplGroup を作成します。レプリケーショングルー
プのプライマリクラスターとして使用できる Redis クラスター myPrimary を使用します。myPrimary–
パラメータグループ、セキュリティグループ、ノードタイプなどの設定です。– は、レプリケーション
グループのすべてのクラスターに適用されます。
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateReplicationGroup
&ReplicationGroupDescription=My%20replication%20group
&ReplicationGroupId=myReplGroup
&PrimaryClusterId=myPrimary
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
使用するパラメータおよび追加情報については、ElastiCache API トピックの「CreateReplicationGroup」
を参照してください。
次に、リードレプリカをレプリケーショングループに追加します。
レプリケーショングループが作成されると、CreateCacheCluster アクションを以下のパラメータを
必ず含めて使用して、1 ~ 5 個のリードレプリカを追加します。
CacheClusterId
レプリケーショングループに追加するクラスターの名前。
クラスターの名前に関する制約は次のとおりです:
• クラスターの名前には 01 ~ 20 文字の英数字またはハイフンを含める必要があります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
ReplicationGroupId
このクラスターに追加するレプリケーショングループの名前。
レプリケーショングループに追加するそれぞれのリードレプリカで、このコマンドを CacheClusterId
パラメータの値のみを変更して繰り返します。
次のコマンドは、レプリケーショングループ myReplica01 を作成します。レプリケーショングループ
のプライマリクラスターとして使用できる Redis クラスター myReplGroup を使用します。– はレプリ
ケーショングループに追加されると、クラスターに適用されます。
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateCacheCluster
&CacheClusterId=myReplica01
&ReplicationGroupId=myReplGroup
&SignatureMethod=HmacSHA256
&SignatureVersion=4
&Version=2015-02-02
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=[your-access-key-id]/20150202/us-west-2/elasticache/aws4_re
quest
&X-Amz-Date=20150202T170651Z
&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amzdate
&X-Amz-Signature=[signature-value]
API Version 2015-02-02
145
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがない場合のレプ
リケーショングループの作成
使用するパラメータおよび追加情報については、ElastiCache API トピックの「CreateCacheCluster」
を参照してください。
利用可能な Redis キャッシュクラスターがない場合
のレプリケーショングループの作成
利用可能なクラスターとは、どのレプリケーショングループにも関連付けられていない、Redis キャッ
シュクラスターです。
トピック
• 利用可能な Redis キャッシュクラスターがない場合のレプリケーショングループの作成 AWS マネ
ジメントコンソールの使用 (p. 146)
• 利用可能な Redis キャッシュクラスターがない場合のレプリケーショングループの作成 AWS CLI
の使用 (p. 148)
• 利用可能な Redis キャッシュクラスターがない場合のレプリケーショングループの作成 ElastiCache
API の使用 (p. 150)
利用可能な Redis キャッシュクラスターがない場合のレプリ
ケーショングループの作成 AWS マネジメントコンソールの使
用
既存の Redis キャッシュクラスターがない場合にレプリケーショングループを作成するには
AWS マネジメントコンソールを使用した
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
[Cache Clusters] をクリックします。
[Cache Clusters] 画面で、[Launch Cache Cluster] をクリックします。
レプリケーショングループのプライマリクラスターとなる Redis キャッシュクラスターを作成し
て、レプリケーショングループを作成します。
4.
5.
[Select Engine] 画面で、[Redis] アイコン (
[Specify Cluster Details] 画面で、
a.
) をクリックしてから、[Next] をクリックします。
[Engine Version] リストから、このレプリケーショングループで実行する Redis バージョンを
選択します。ここでは、以前のバージョンを使用する特定の理由がある場合を除いて、最新の
バージョンを選択することをお勧めします。
新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供している
ため、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache マネジメントコンソー
ルから廃止されました。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必
要がある場合は、AWS CLI または ElastiCache API を使用できます。
詳細については、以下のトピックを参照してください。
AWS CLI
ElastiCache API
キャッシュクラスターの作成 キャッシュクラスターの作成 キャッシュクラスターの作成
AWS CLI の使用 (p. 107)
ElastiCache API の使用 (p. 107)
API Version 2015-02-02
146
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがない場合のレプ
リケーショングループの作成
AWS CLI
ElastiCache API
キャッシュクラスターの変更 キャッシュクラスターの変更 キャッシュクラスターの変更
AWS CLI の使用 (p. 111)
ElastiCache API の使用 (p. 111)
レプリケーショングループの 利用可能な Redis キャッシュ
作成
クラスターがない場合のレプ
リケーショングループの作成
AWS CLI の使用 (p. 148)
利用可能な Redis キャッシュ
クラスターがない場合のレプ
リケーショングループの作成
ElastiCache API の使用 (p. 150)
レプリケーショングループの レプリケーショングループの レプリケーショングループの
変更
変更 AWS CLI の使用 (p. 158) 変更 ElastiCache API の使
用 (p. 158)
b.
c.
d.
e.
f.
Redis キャッシュクラスターと通信するためのデフォルトポートは 6379 です。他のポートを
使用する場合は、[Port] ボックスにポート番号を入力します。
[Parameter Group] リストから、このレプリケーションのグループで使用するパラメータグルー
プを選択します。詳細については、「パラメータとパラメータグループ (p. 198)」を参照して
ください。
[Enable Replication] チェックボックスを選択したままにします。
このチェックボックスの選択を解除すると、1 つの Redis キャッシュクラスターが作成されま
すが、レプリケーショングループは作成されません。
マルチ AZ を有効にするには、[Multi-AZ] チェックボックスを選択したままにします。マルチ
AZ を希望しない場合は、このチェックボックスの選択を解除します。詳細については、「マ
ルチ AZ と自動フェイルオーバーをサポートするレプリケーショングループ (Redis) (p. 134)」
を参照してください。
[Replication Group Name] ボックスに、このレプリケーショングループの名前を入力します。
レプリケーショングループ名の制約は次のとおりです。
• レプリケーショングループの名前には、1 ~ 16 文字の英数字またはハイフンを含める必要
があります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
6.
g.
[Replication Group Description] ボックスに、このレプリケーショングループの説明を入力しま
す。
h.
[Node Type] リストで、このレプリケーショングループのノードタイプを選択します。詳細に
ついては、「ノードサイズの選択 (p. 68)」を参照してください。
i.
j.
[Number of Read Replicas] リストで、このレプリケーショングループ用に作成するリードレ
プリカの数を選択します。
このクラスターにシードする Redis .rdb ファイルがある場合は、[S3 Location of Redis RDB
file] にファイルの ARN を入力します。詳細については、「Using a Snapshot to Seed a
Cluster (p. 182)」を参照してください。
k.
[Next] をクリックします。
[Configure Advanced Settings] 画面で、
a.
[Cache Subnet Group] リストから、レプリケーショングループのサブネットを選択します。
詳細については、「サブネットおよびサブネットグループ (p. 232)」を参照してください。
b.
プライマリクラスターと各リードレプリカクラスターについては、起動するクラスターのアベ
イラビリティーゾーンをリストから選択します。
API Version 2015-02-02
147
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがない場合のレプ
リケーショングループの作成
Note
改善耐障害性を向上させるために、可能な限り異なるアベイラビリティーゾーンでク
ラスターを起動します。
c.
d.
[VPC Security Group]/[Security Group] リストで、このレプリケーショングループのクラスター
のセキュリティグループを選択します。詳細については、「キャッシュセキュリティグループ
[EC2-Classic] (p. 188)」を参照してください。
ElastiCache にクラスターのバックアップを定期的に実行させるには、[Enable Automatic
Backup] チェックボックスを選択してから、
a.
b.
[Backup Retention Period] リストで、削除するまでにバックアップを保持する日数を選択
します。
バックアップの [Backup Window] を選択します。
• [Select Window]: バックアップを開始する UTC 時間とバックアップ時間の長さを指定
します。
• [No Preference]: ElastiCache バックアップを開始する UTC 時間と時間の長さをランダ
ムに選択します。
e.
f.
g.
ときどき、ElastiCache でクラスターのメンテナンスを実施する必要があります。曜日、UTC
開始時間、メンテナンス時間の長さ ([Select Window]) を指定できます。または、ElastiCache
にメンテナンスを実行する曜日と時間をランダムに選択させます ([No Preference])。
キャッシュに対するビジネスの需要が低い時間を選択することをお勧めします。
[Topic for SNS Notification] リストで SNS トピックを選択するか、[Manual ARN Input] を選択
して、既存のトピックの ARN を手動で入力します。
[Next] をクリックします。
[Review] 画面が表示されます。
7.
8.
9.
すべての設定を確認します。希望通りの場合は、[Next] をクリックします。そうでない場合は
[Previous] をクリックして前の画面に戻り、設定を修正します。それ以外の場合は、[Cancel] をク
リックしてキャッシュクラスターとレプリケーショングループを起動しません。
[Cache Clusters] 画面に戻るには、[Close] をクリックします。
クラスターのステータスが [creating] から [available] に変わったら、これらをユーザーが使用でき
ます。
利用可能な Redis キャッシュクラスターがない場合のレプリ
ケーショングループの作成 AWS CLI の使用
プライマリクラスターとして利用可能な Redis キャッシュクラスターがない場合にレプリケーショング
ループを作成するときは、AWS CLI create-replication-group コマンドの 1 回の呼び出しで、レ
プリケーショングループとそのすべてのクラスターを作成できます。以下のパラメータを含める必要が
あります。
--replication-group-id
作成するレプリケーショングループの名前。
レプリケーショングループ名の制約は次のとおりです。
API Version 2015-02-02
148
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがない場合のレプ
リケーショングループの作成
• レプリケーショングループの名前には、1 ~ 16 文字の英数字またはハイフンを含める必要があ
ります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
--replication-group-description
レプリケーショングループの説明。
--num-cache-clusters
このレプリケーションのグループ、プライマリおよびリードレプリカ全体で作成するキャッシュク
ラスターの総数。
マルチ AZ を有効にした場合(--automatic-failover-enabled)、--num-cache-clusters
の値は 2 以上であることが必要です。
--cache-node-type
レプリケーショングループの各キャッシュクラスターのノードタイプ。
ElastiCache では以下のノードがサポートされています。一般的に現在生成されているバイプは、
以前生成されていた同等のものと比較した場合、より多くのメモリと処理能力を提供します。
• 汎用:
• 現行世代: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium,
cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
• 以前の世代: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large,
cache.m1.xlarge
• コンピューティングの最適化: cache.c1.xlarge
• メモリ最適化:
• 現行世代: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge,
cache.r3.8xlarge
• 以前の世代: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge, ,
Note
•
•
•
•
すべての t2 インスタンスは Amazon Virtual Private Cloud (VPC) で作成されます。
Redis のバックアップと復元は、t2 インスタンスタイプではサポートされません。
Redis AOF (Append-Only File) は、t1 または t2 インスタンスではサポートされません。
自動フェイルオーバー機能を備えた Radis マルチ AZ は、t1 または t2 インスタンスでサ
ポートされていません。
• Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサ
ポートされていません。
ノードのタイプと仕様の詳細なリストについては、「Amazon ElastiCache 製品の機能および詳細」
ページと、「Memcached のノードタイプ固有のパラメータ」または「Redis のノードタイプ固有
のパラメータ」を参照してください。
--engine
redis
クラスターの名前は、レプリケーショングループ名の後に「-00#」を追加することで決定されます。た
とえば、レプリケーショングループ名 myReplGroup を使用すると、プライマリの名前は
myReplGroup-002 となり、リードレプリカの名前は myReplGroup-001 から myReplGroup-006 と
なります。
以下のコマンドは、以下のパラメータ値でレプリケーショングループ my-repl-group を作成します。
• --replication-group-id my-repl-group
API Version 2015-02-02
149
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがない場合のレプ
リケーショングループの作成
• --replication-group-description "test group"
• --num-cache-clusters 3
• --cache-node-type cache.m3.large
• --engine redis
Linux, OS X, or Unix 用:
aws elasticache create-replication-group \
--replication-group-id my-repl-group \
--replication-group-description "test group" \
--num-cache-clusters 3 \
--cache-node-type cache.m3.large \
--engine redis
Windows の場合:
aws elasticache create-replication-group ^
--replication-group-id my-repl-group ^
--replication-group-description "test group" ^
--num-cache-clusters 3 ^
--cache-node-type cache.m3.large ^
--engine redis
使用するパラメータおよび追加情報については、AWS CLI トピックの「http://docs.aws.amazon.com/
cli/latest/reference/elasticache/create-replication-group.html」を参照してください。
利用可能な Redis キャッシュクラスターがない場合のレプリ
ケーショングループの作成 ElastiCache API の使用
プライマリクラスターとして利用可能な Redis キャッシュクラスターがない場合にレプリケーショング
ループを作成するときは、ElastiCache CLI CreateReplicationGroup アクションの 1 回の呼び出し
で、レプリケーショングループとそのすべてのクラスターを作成できます。以下のパラメータを含める
必要があります。
ReplicationGroupId
作成するレプリケーショングループの名前。
レプリケーショングループ名の制約は次のとおりです。
• レプリケーショングループの名前には、1 ~ 16 文字の英数字またはハイフンを含める必要があ
ります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
ReplicationGroupDescription
レプリケーショングループの説明。
NumCacheClusters
このレプリケーションのグループ、プライマリおよびリードレプリカ全体で作成するキャッシュク
ラスターの総数。
マルチ AZ を有効にした場合(AutomaticFailoverEnabled=true)、NumCacheClusters の
値は 2 以上であることが必要です。
CacheNodeType
レプリケーショングループの各キャッシュクラスターのノードタイプ。
API Version 2015-02-02
150
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがない場合のレプ
リケーショングループの作成
ElastiCache では以下のノードがサポートされています。一般的に現在生成されているバイプは、
以前生成されていた同等のものと比較した場合、より多くのメモリと処理能力を提供します。
• 汎用:
• 現行世代: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium,
cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
• 以前の世代: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large,
cache.m1.xlarge
• コンピューティングの最適化: cache.c1.xlarge
• メモリ最適化:
• 現行世代: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge,
cache.r3.8xlarge
• 以前の世代: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge, ,
Note
• すべての t2 インスタンスは Amazon Virtual Private Cloud (VPC) で作成されます。
• Redis のバックアップと復元は、t2 インスタンスタイプではサポートされません。
• Redis AOF (Append-Only File) は、t1 または t2 インスタンスではサポートされません。
• 自動フェイルオーバー機能を備えた Radis マルチ AZ は、t1 または t2 インスタンスでサ
ポートされていません。
• Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサ
ポートされていません。
ノードのタイプと仕様の詳細なリストについては、「Amazon ElastiCache 製品の機能および詳細」
ページと、「Memcached のノードタイプ固有のパラメータ」または「Redis のノードタイプ固有
のパラメータ」を参照してください。
エンジン
redis
クラスターの名前は、レプリケーショングループ名の後に「-00#」を追加することで決定されます。た
とえば、レプリケーショングループ名 myReplGroup を使用すると、プライマリの名前は
myReplGroup-002 となり、リードレプリカの名前は myReplGroup-001 から myReplGroup-006 と
なります。
以下のコマンドは、以下のパラメータ値でレプリケーショングループ myReplGroup を作成します。
• ReplicationGroupId myReplGroup
• ReplicationGroupDescription "test group"
• NumCacheClusters 3
• CacheNodeType cache.m3.large
• Engine redis
読みやすくするために改行が追加されます。
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateReplicationGroup
&CacheNodeType=cache.m3.large
&Engine=redis
&NumCacheClusters=3
&ReplicationGroupDescription=test%20group
&ReplicationGroupId=myReplGroup
API Version 2015-02-02
151
Amazon ElastiCache ユーザーガイド
利用可能な Redis キャッシュクラスターがない場合のレプ
リケーショングループの作成
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
使用するパラメータおよび追加情報については、ElastiCache API トピックの「CreateReplicationGroup」
を参照してください。
API Version 2015-02-02
152
Amazon ElastiCache ユーザーガイド
レプリケーショングループのエンドポイントの検索
レプリケーショングループのエンドポイントの検
索
アプリケーションは、ノードの DNS エンドポイントとポート番号がある場合、レプリケーショング
ループ内の任意のノードに接続できます。読み取り専用アプリケーションはレプリケーショングループ
内の任意のノードに接続できますが、すべての書き込みアクティビティはプライマリノードで行われる
必要があります。
すべてのレプリケーショングループにはプライマリエンドポイントがあります。プライマリエンドポイ
ントは、常にレプリケーショングループ内のプライマリノードに解決される DNS 名です。プライマリ
エンドポイントは、リードレプリカのプライマリロールへの昇格など、レプリケーショングループに対
する変更の影響を受けません。書き込みアクティビティの場合、アプリケーションを直接プライマリ
ノードに接続する代わりに、プライマリエンドポイントに接続することをお勧めします。
読み取りアクティビティの場合、アプリケーションはレプリケーショングループ内の各ノードに接続で
きます。プライマリエンドポイントとは異なり、レプリカエンドポイントは特定のエンドポイントに解
決されます。レプリカの追加または削除など、レプリケーショングループに変更を加える場合、アプリ
ケーションのレプリカエンドポイントを更新する必要があります。
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、プライマリを検索して見つ
けてレプリケーショングループのエンドポイントを読み込みます。
トピック
• レプリケーショングループのエンドポイントの検索 AWS マネジメントコンソールの使用 (p. 153)
• レプリケーショングループのエンドポイントの検索 AWS CLI の使用 (p. 154)
• レプリケーショングループのエンドポイントの検索 ElastiCache API の使用 (p. 154)
レプリケーショングループのエンドポイントの検索
AWS マネジメントコンソールの使用
次の手順では、プライマリと ElastiCache レプリケーショングループのエンドポイントを ElastiCache
コンソールを使用して検索し読む方法について説明します。
ElastiCache コンソールを使用してレプリケーショングループのエンドポイント検索するには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左側のナビゲーションペインで [Replication Groups] をクリックします。
3.
Replication Group ウィンドウが表示されて、レプリケーショングループが一覧されます。
レプリケーショングループの一覧から、エンドポイントを検索するレプリケーショングループの名
前をクリックします。
4.
レプリケーショングループの詳細セクションが開きます。
プライマリエンドポイントを検索するには、[Primary Endpoint] が見つかるまで詳細セクションを
下にスクロールします。
読み取りエンドポイントを検索するには、[Nodes] の下でレプリケーショングループクラスターの
一覧が見つかるまで、下にスクロールします。次に、[Read Endpoint] 列を探して、そのエンドポ
イント読み込み列を見つけて、このレプリケーショングループの各クラスターの読み取りエンドポ
イントを特定します。
API Version 2015-02-02
153
Amazon ElastiCache ユーザーガイド
レプリケーショングループのエンドポイントの検索 AWS
CLI の使用
レプリケーショングループのエンドポイントの検索
AWS CLI の使用
AWS CLI describe-replication-groups コマンドと -replication-group-id パラメータを使
用してクラスターの詳細を表示し、特定のレプリケーショングループを指定できます。
次のコードは、レプリケーショングループ my-repl-group のエンドポイントを含む、詳細を一覧し
ます。
aws elasticache describe-replication-group --replication-group-id my-repl-group
レプリケーショングループのエンドポイントの検索
ElastiCache API の使用
ElastiCache API DescribeReplicationGroups アクションと ReplicationGroupId パラメータを
使用して、クラスターの詳細を表示し、特定のレプリケーショングループを指定できます。
次のコードは myReplGroup の詳細を一覧します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeReplicationGroups
&MaxRecords=100
&ReplicationGroupId=myReplGrp
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
前述のアクションは、以下のような出力を生成します。
<DescribeReplicationGroupsResponse xmlns="http://elasticache.amazon
aws.com/doc/2015-02-02/">
<DescribeReplicationGroupsResult>
<ReplicationGroups>
<ReplicationGroup>
<SnapshottingClusterId>myreplgrp</SnapshottingClusterId>
<MemberClusters>
<ClusterId>myreplgrp-001</ClusterId>
API Version 2015-02-02
154
Amazon ElastiCache ユーザーガイド
レプリケーショングループのエンドポイントの検索
ElastiCache API の使用
</MemberClusters>
<NodeGroups>
<NodeGroup>
<NodeGroupId>0001</NodeGroupId>
<PrimaryEndpoint>
<Port>6379</Port>
<Address>myreplgrp.q68zge.ng.0001.use1devo.elmodev.amazonaws.com</Address>
</PrimaryEndpoint>
<Status>available</Status>
<NodeGroupMembers>
<NodeGroupMember>
<CacheClusterId>myreplgrp-001</CacheClusterId>
<ReadEndpoint>
<Port>6379</Port>
<Address>myreplgrp-001.q68zge.0001.use1devo.elmodev.amazonaws.com</Address>
</ReadEndpoint>
<PreferredAvailabilityZone>us-west-2c</PreferredAvail
abilityZone>
<CacheNodeId>0001</CacheNodeId>
<CurrentRole>primary</CurrentRole>
</NodeGroupMember>
<NodeGroupMember>
<CacheClusterId>myreplgrp-002</CacheClusterId>
<ReadEndpoint>
<Port>6379</Port>
<Address>myreplgrp-002.q68zge.0002.use1devo.elmodev.amazonaws.com</Address>
</ReadEndpoint>
<PreferredAvailabilityZone>us-west-2b</PreferredAvail
abilityZone>
<CacheNodeId>0002</CacheNodeId>
<CurrentRole>replica</CurrentRole>
</NodeGroupMember>
</NodeGroupMembers>
</NodeGroup>
</NodeGroups>
<ReplicationGroupId>myreplgrp</ReplicationGroupId>
<Status>available</Status>
<PendingModifiedValues />
<Description>My replication group</Description>
</ReplicationGroup>
</ReplicationGroups>
</DescribeReplicationGroupsResult>
<ResponseMetadata>
<RequestId>144745b0-b9d3-11e3-8a16-7978bb24ffdf</RequestId>
</ResponseMetadata>
</DescribeReplicationGroupsResponse>
ポートを含むプライマリエンドポイントは、<PrimaryEndpoint> タグと </PrimaryEndpoint> タ
グの間にあります。
<CacheClusterId>myreplgrp-001</CacheClusterId>
<PrimaryEndpoint>
<Port>6379</Port>
<Address>myreplgrp-001.q68zge.ng.0001.use1devo.elmo-dev.amazonaws.com</Ad
API Version 2015-02-02
155
Amazon ElastiCache ユーザーガイド
レプリケーショングループのエンドポイントの検索
ElastiCache API の使用
dress>
</PrimaryEndpoint>
読み取りエンドポイントは、レプリケーショングループの各クラスターの <ReadEndpoint> タグおよ
び </ReadEndpoint> タグの間にあります。
<CacheClusterId>myreplgrp-002</CacheClusterId>
<ReadEndpoint>
<Port>6379</Port>
<Address>myreplgrp-002.q68zge.0001.use1devo.elmo-dev.amazonaws.com</Address>
</ReadEndpoint>
および
<ReadEndpoint>
<Port>6379</Port>
<Address>myreplgrp.q68zge.0002.use1devo.elmo-dev.amazonaws.com</Address>
</ReadEndpoint>
API Version 2015-02-02
156
Amazon ElastiCache ユーザーガイド
レプリケーショングループの変更
レプリケーショングループの変更
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、レプリケーショングループ
の設定を変更できます。
トピック
• レプリケーショングループの変更 AWS マネジメントコンソールの使用 (p. 157)
• レプリケーショングループの変更 AWS CLI の使用 (p. 158)
• レプリケーショングループの変更 ElastiCache API の使用 (p. 158)
レプリケーショングループの変更 AWS マネジメント
コンソールの使用
以下の手順で、既存のレプリケーショングループの設定を変更します。
レプリケーショングループの設定を変更するには AWS マネジメントコンソールを使用した
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
[Replication Groups] をクリックします。
4.
[Replication Groups] 画面が表示され、レプリケーショングループが一覧されます。
レプリケーショングループのリストで、変更するレプリケーショングループの名前をクリックしま
す。
[Modify] をクリックします。
5.
[Modify Replication Group] 画面が表示されます。
希望する変更を行います。
3.
新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供しているた
め、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache マネジメントコンソールから
廃止されました。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必要がある場
合は、AWS CLI または ElastiCache API を使用できます。
詳細については、以下のトピックを参照してください。
AWS CLI
ElastiCache API
キャッシュクラスターの作成
キャッシュクラスターの作成
AWS CLI の使用 (p. 107)
キャッシュクラスターの作成
ElastiCache API の使用 (p. 107)
キャッシュクラスターの変更
キャッシュクラスターの変更
AWS CLI の使用 (p. 111)
キャッシュクラスターの変更
ElastiCache API の使用 (p. 111)
レプリケーショングループの作 利用可能な Redis キャッシュ
成
クラスターがない場合のレプリ
ケーショングループの作成
AWS CLI の使用 (p. 148)
利用可能な Redis キャッシュク
ラスターがない場合のレプリ
ケーショングループの作成
ElastiCache API の使用 (p. 150)
レプリケーショングループの変 レプリケーショングループの変 レプリケーショングループの変
更
更 AWS CLI の使用 (p. 158)
更 ElastiCache API の使
用 (p. 158)
API Version 2015-02-02
157
Amazon ElastiCache ユーザーガイド
レプリケーショングループの変更 AWS CLI の使用
6.
変更を適用するには、[Modify] をクリックします。レプリケーショングループを変更しない場合
は、[Cancel] をクリックします。
レプリケーショングループのステータスが [modifying] に変わります。変更には数分かかる場合があり
ます。レプリケーショングループのステータスが [available] に戻ると、変更が完了し、レプリケーショ
ングループが使用できる状態になります。
レプリケーショングループの変更 AWS CLI の使用
以下の AWS CLI コマンドは既存の Redis レプリケーショングループでマルチ AZ を有効にします。レ
プリケーショングループのそのほかの変更も同じコマンドを使用できます。
Linux, OS X, or Unix 用:
aws elasticache modify-replication-group \
--replication-group-id myReplGroup \
--automatic-failover-enabled
Windows の場合:
aws elasticache modify-replication-group ^
--replication-group-id myReplGroup ^
--automatic-failover-enabled
AWS CLI modify-replication-group コマンドの詳細については、「modify-replication-group」を
参照してください。
レプリケーショングループの変更 ElastiCache API の
使用
以下の ElastiCache API アクションは既存の Redis レプリケーショングループでマルチ AZ を有効にし
ます。レプリケーショングループのそのほかの変更も同じコマンドを使用できます。
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyReplicationGroup
&AutomaticFailoverEnabled=true
&ReplicationGroupId=myReplGroup
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&Version=2014-12-01
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
ElastiCache API ModifyReplicationGroup アクションの詳細については、「ModifyReplicationGroup」
を参照してください。
API Version 2015-02-02
158
Amazon ElastiCache ユーザーガイド
レプリケーショングループの削除
レプリケーショングループの削除
レプリケーショングループが不要になった場合は、削除することができます。レプリケーショングルー
プを削除すると、ElastiCache によって、プライマリクラスターやすべてのリードレプリカを含む、そ
のグループ内のすべてのクラスターが削除されます。
この操作を開始したら、中断することはできません。
レプリケーショングループの削除 AWS マネジメント
コンソールの使用
レプリケーショングループを削除するには AWS マネジメントコンソールを使用した
1.
2.
3.
4.
5.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左側のナビゲーションペインで [Replication Groups] をクリックします。
[Replication Groups] リストで、削除するレプリケーショングループをクリックします。
[Delete] をクリックします。
[Delete Replication Group] ダイアログボックスで、[Yes, Delete] をクリックします。
レプリケーショングループのステータスが [deleting] に変わります。削除プロセスは数分かかる場合が
あります。レプリケーショングループがリストからなくなると、レプリケーショングループが削除され
レプリケーショングループおよびそのクラスターに対する料金が停止します。
レプリケーショングループの削除 AWS CLI の使用
レプリケーショングループを削除するには、delete-replication-group コマンドを使用します。
aws elasticache delete-replication-group --replication-group-id my-repgroup
実行する操作を確認するよう求められます。「y」(yes)を入力すると、操作は直ちに開始されます。
プロセスが起動した場合、元に戻すことはできません。
Once you begin deleting this replication group, all of its clusters will
be deleted as well.
Are you sure you want to delete this replication group? [Ny]y
REPLICATIONGROUP
my-repgroup
My replication group
deleting
レプリケーショングループの削除 ElastiCache API の
使用
ReplicationGroup パラメータを使って DeleteReplicationGroup を呼び出します。
API Version 2015-02-02
159
Amazon ElastiCache ユーザーガイド
レプリケーショングループの削除 ElastiCache API の使用
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=DeleteReplicationGroup
&ReplicationGroupId=my-repgroup
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
Note
RetainPrimaryCluster パラメータを true に設定した場合、リードレプリカはすべて削除
されますが、プライマリキャッシュクラスターは保持されます。
API Version 2015-02-02
160
Amazon ElastiCache ユーザーガイド
リードレプリカの追加
レプリケーショングループへのリードレプリカの
追加
読み取りトラフィックが増えるにつれて、これらの読み取りをより多くのクラスターに分散させて、1
つのクラスターの読み取りの負荷を減らすことを考えます。このトピックでは、リードレプリカをレプ
リケーショングループに追加する方法について説明します。ElastiCache コンソール、AWS CLI、また
は ElastiCache API を使用して、レプリケーショングループにリードレプリカを追加できます。
トピック
• レプリケーショングループへのリードレプリカの追加 AWS マネジメントコンソールの使用 (p. 161)
• レプリケーショングループへのリードレプリカの追加 AWS CLI の使用 (p. 162)
• レプリケーショングループへのリードレプリカの追加 ElastiCache API の使用 (p. 162)
レプリケーショングループへのリードレプリカの追
加 AWS マネジメントコンソールの使用
レプリケーショングループに Redis のリードレプリカクラスターを追加する手順は次のとおりです。
リードレプリカを既存のレプリケーショングループに追加するには AWS マネジメントコンソー
ルを使用した
1.
2.
3.
4.
5.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左側のナビゲーションペインで [Replication Groups] をクリックします。
[Replication Group] 画面で、Redis キャッシュクラスターを追加するレプリケーショングループを
選択します。
[Add Read Replica] をクリックします。
[Add Read Replica to Replication Group] ウィザードで以下を実行します:
a.
b.
[Replication Group] リストで、リードレプリカを追加するレプリケーショングループの名前を
クリックして選択します。
[Read Replica ID] テキストボックスに、Redis リードレプリカの名前を入力します。
クラスターの名前に関する制約は次のとおりです:
• クラスターの名前には 01 ~ 20 文字の英数字またはハイフンを含める必要があります。
• 1 字目は文字である必要があります。
• ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
6.
c.
[Availability Zone] リストで、リードレプリカを作成するアベイラビリティーゾーンをクリック
します。耐障害性を高めるために、できる限り多くの異なるアベイラビリティーゾーンでリー
ドレプリカを起動します。
d.
[Add] をクリックします。
ElastiCache マネジメントコンソールに戻り、[Cache Clusters] をクリックします。新しい Redis
キャッシュクラスターが creating のステータスで表示されます。ステータスを available に変更し
たら、リードレプリカを使用できます。
API Version 2015-02-02
161
Amazon ElastiCache ユーザーガイド
レプリケーショングループへのリードレプリカの追加 AWS
CLI の使用
レプリケーショングループへのリードレプリカの追
加 AWS CLI の使用
レプリケーショングループにリードレプリカを追加するには、AWS CLI create-cache-cluster コ
マンドを --replication-group-id パラメータを指定して使用して、クラスターを追加するレプリ
ケーショングループを指定します。
レプリケーショングループでは、最大 5 つのリードレプリカを作成できます。すでに 5 個のリードレ
プリカのあるレプリケーショングループにリードレプリカを追加しようとすると、オペレーションが失
敗します。
次の例では、クラスター my-read-replica を作成して、レプリケーショングループ
my-replication-group に追加します。リードレプリカのノードタイプ、パラメータグループ、セ
キュリティグループ、メンテナンスの時間などの設定は、レプリケーショングループの他のクラスター
の設定と同じです
Linux, OS X, or Unix 用:
aws elasticache create-cache-cluster \
--cache-cluster-id my-read-replica \
--replicationgroup-id my-replication-group
Windows の場合:
aws elasticache create-cache-cluster ^
--cache-cluster-id my-read-replica ^
--replicationgroup-id my-replication-group
詳細については、AWS CLI トピックの「create-cache-cluster」を参照してください。
レプリケーショングループへのリードレプリカの追
加 ElastiCache API の使用
レプリケーショングループにリードレプリカを追加するには、ElastiCache CreateCacheCluster ア
クションを ReplicationGroupId パラメータを指定して使用して、クラスターを追加するレプリケー
ショングループを指定します。
レプリケーショングループでは、最大 5 つのリードレプリカを作成できます。すでに 5 個のリードレ
プリカのあるレプリケーショングループにリードレプリカを追加しようとすると、オペレーションが失
敗します。
次の例では、クラスター myReadReplica を作成して、レプリケーショングループ
myReplicationGroup に追加します。リードレプリカのノードタイプ、パラメータグループ、セキュ
リティグループ、メンテナンスの時間などの設定は、レプリケーショングループの他のクラスターの設
定と同じです
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateCacheCluster
&CacheClusterId=myReadReplica
&ReplicationGroupId=myReplicationGroup
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
API Version 2015-02-02
162
Amazon ElastiCache ユーザーガイド
レプリケーショングループへのリードレプリカの追加
ElastiCache API の使用
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
詳細については、ElastiCache API トピックの「CreateCacheCluster」を参照してください。
API Version 2015-02-02
163
Amazon ElastiCache ユーザーガイド
リードレプリカの昇格
リードレプリカをプライマリに昇格させる
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、リードレプリカをプライマ
リに昇格させることができます。ただし、レプリケーショングループでマルチ AZ を有効にしている場
合はリードレプリカをプライマリに昇格させることはできません。マルチ AZ を有効にしている場合
は、以下を実行する必要があります:
リードレプリカクラスターをプライマリクラスターに昇格させるには
1.
マルチ AZ を無効にするようにレプリケーショングループを変更します。
2.
3.
レプリケーショングループの設定変更の詳細については、「レプリケーショングループの変
更 (p. 157)」を参照してください。
リードレプリカをプライマリに昇格させます。
マルチ AZ を再び有効にするためにレプリケーショングループを変更します。
自動フェイルオーバーとマルチ AZ は、Redis 2.6.13 を実行するレプリケーショングループでは使用で
きません。
トピック
• リードレプリカをプライマリに昇格させる AWS マネジメントコンソールの使用 (p. 164)
• リードレプリカをプライマリに昇格させる AWS CLI の使用 (p. 165)
• リードレプリカをプライマリに昇格させる ElastiCache API の使用 (p. 165)
リードレプリカをプライマリに昇格させる AWS マネ
ジメントコンソールの使用
リードレプリカをプライマリに昇格させるには AWS マネジメントコンソールを使用した
1.
2.
3.
4.
5.
6.
昇格させるレプリカが、マルチ AZ が有効なレプリケーショングループのメンバーである場合は、
先に進む前に、レプリケーショングループを変更してマルチ AZ を無効にします。レプリケーショ
ングループの変更の詳細については、「レプリケーショングループの変更 (p. 157)」を参照してく
ださい。
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
[Replication Groups] をクリックします。
[Replication Groups] 画面が表示され、レプリケーショングループが一覧されます。
レプリケーショングループのリストで、変更するレプリケーショングループの名前をクリックしま
す。
画面の下部の詳細ペインで、クラスターの一覧まで下にスクロールし、昇格させたいリードレプリ
カの後ろにある [Promote] をクリックします。
[Promote Read Replica] ダイアログボックスで [Promote] をクリックしてレプリカをプライマリに
昇格させるか。または [Cancel] をクリックして現在の状態を維持します。
レプリケーショングループのステータスが [modifying] に変わります。ステータスが [available] に
戻ると、変更前のレプリカがプライマリになり、レプリケーショングループの使用を再開できま
す。
7.
昇格プロセスを開始する前にレプリケーショングループでマルチ AZ を有効にしている場合は、レ
プリケーショングループを変更してマルチ AZ をもう一度有効にします。レプリケーショングルー
プの変更の詳細については、「レプリケーショングループの変更 (p. 157)」を参照してください。
API Version 2015-02-02
164
Amazon ElastiCache ユーザーガイド
リードレプリカをプライマリに昇格させる AWS CLI の使
用
リードレプリカをプライマリに昇格させる AWS CLI
の使用
現在、レプリケーショングループでマルチ AZ を有効にしている場合はリードレプリカをプライマリに
昇格させることはできません。昇格させるレプリカが、マルチ AZ が有効なレプリケーショングループ
のメンバーである場合は、先に進む前に、レプリケーショングループを変更してマルチ AZ を無効にす
る必要があります。レプリケーショングループの変更の詳細については、「レプリケーショングループ
の変更 (p. 157)」を参照してください。
次の AWS CLI コマンドは、レプリケーショングループ my-repl-group を変更して、リードレプリカ
my-replica-1 をそのレプリケーショングループのプライマリクラスターにします。
Linux, OS X, or Unix 用:
aws elasticache modify-replication-group \
--replication-group-id my-repl-group \
--primary-cluster-id my-replica-1
Windows の場合:
aws elasticache modify-replication-group ^
--replication-group-id my-repl-group ^
--primary-cluster-id my-replica-1
レプリケーショングループの変更の詳細については、AWS CLI トピックの「modify-replication-group」
を参照してください。
リードレプリカをプライマリに昇格させる
ElastiCache API の使用
現在、レプリケーショングループでマルチ AZ を有効にしている場合はリードレプリカをプライマリに
昇格させることはできません。昇格させるレプリカが、マルチ AZ が有効なレプリケーショングループ
のメンバーである場合は、先に進む前に、レプリケーショングループを変更してマルチ AZ を無効にす
る必要があります。レプリケーショングループの変更の詳細については、「レプリケーショングループ
の変更 (p. 157)」を参照してください。
次の ElastiCache API アクションは、レプリケーショングループ myReplGroup を変更して、リードレ
プリカ myReplica-1 をそのレプリケーショングループのプライマリクラスターにします。
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyReplicationGroup
&ReplicationGroupId=myReplGroup
&PrimaryClusterId=myReplica-1
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
API Version 2015-02-02
165
Amazon ElastiCache ユーザーガイド
リードレプリカをプライマリに昇格させる ElastiCache API
の使用
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
レプリケーショングループの変更の詳細については、ElastiCache API トピックの
「ModifyReplicationGroup」を参照してください。
API Version 2015-02-02
166
Amazon ElastiCache ユーザーガイド
リードレプリカの削除
リードレプリカの削除
レプリケーショングループの読み取りトラフィックを変更すると、リードレプリカの追加または削除を
行いたくなります。レプリケーショングループからクラスターを削除することには、いくつかの制限は
ありますが、単なるクラスターの削除と同じです。
レプリケーショングループからのクラスター削除の制限
• レプリケーショングループからプライマリクラスターを削除することはできません。プライマリを削
除する場合は、以下を実行する必要があります:
1.
2.
リードレプリカをプライマリに昇格させます。リードレプリカをプライマリに昇格させる詳細に
ついては、「リードレプリカをプライマリに昇格させる (p. 164)」を参照してください。
古いプライマリを削除します。この方法の制限については、次のポイントを参照してください。
• レプリケーショングループでマルチ AZ が有効になっている場合は、そのレプリケーショングループ
から最後のリードレプリカを削除することはできません。その場合は、以下を実行する必要がありま
す:
1.
2.
マルチ AZ を無効にしてレプリケーショングループを変更します。詳細については、「レプリ
ケーショングループの変更 (p. 157)」を参照してください。
リードレプリカを削除します。
ElastiCache コンソール、ElastiCache 用 AWS CLI、または ElastiCache API を使用して、レプリケー
ショングループからリードレプリカを削除できます。
クラスターの削除については、以下を参照してください:
• クラスターの削除 AWS マネジメントコンソールの使用 (p. 125)
• クラスターの削除 AWS CLI の使用 (p. 125)
• クラスターの削除 ElastiCache API の使用 (p. 125)
API Version 2015-02-02
167
Amazon ElastiCache ユーザーガイド
ElastiCache バックアップと復元
(Redis)
Abstract
バックアップと復元のために、Redis クラスターの自動または手動バックアップを作成します。
Redis を実行している Amazon ElastiCache クラスターでは、データをバックアップできます。バック
アップがクラスターを復元するか、または新しいクラスターをシードできます。バックアップは、特定
の時点でのクラスターのスナップショットです。バックアップは、クラスター内の全データとクラス
ターのメタデータで構成されます。すべてのバックアップは、堅牢なストレージを提供する Amazon
Simple Storage Service (Amazon S3) に書き込まれます。いつでも、新しい Redis クラスターを作成
し、バックアップのデータを挿入することでデータを復元できます。ElastiCache では、AWS マネジ
メントコンソール、AWS; コマンドラインインターフェイス (AWS CLI)、および ElastiCache アプリ
ケーションプログラミングインターフェイス (API) を使用してバックアップを管理できます。
Redis 2.8.22 バージョンからは、使用可能なメモリに基づいてバックアップ方法が選択されるようにな
りました。十分な利用可能なメモリがある場合は、キャッシュのバックアップ中にすべての変更をキャッ
シュのリザーブドメモリに書き込む子プロセスが生成されます。このプロセスは、バックアップ処理中
のキャッシュへの書き込み数に応じて、すべての reserved memory を消費して、バックアップを失
敗させる場合があります。
使用可能なメモリが不足している場合は、分岐なしの協調的なバックグラウンドプロセスが使用されま
す。分岐なしの方法は、レイテンシーとスループットの両方に影響を与える場合があります。詳細につ
いては、「ElastiCache レプリケーション (Redis) (p. 131)」を参照してください。
バックアッププロセスを実行する際のパフォーマンスへの影響については、「パフォーマンスに対する
バックアップの影響 (p. 169)」を参照してください。
このセクションでは、バックアップとリストアシナリオを使用する場合の概要について説明します。
トピック
• 制約 (p. 169)
• コスト (p. 169)
• パフォーマンスに対するバックアップの影響 (p. 169)
• Scheduling Automatic Snapshots (p. 171)
• Taking Manual Snapshots (p. 172)
API Version 2015-02-02
168
Amazon ElastiCache ユーザーガイド
制約
• Taking a Final Snapshot (p. 174)
• スナップショットのリストの表示 (p. 176)
• スナップショットのコピー (p. 177)
• スナップショットのエクスポート (p. 179)
• Restoring From a Snapshot (p. 180)
• Using a Snapshot to Seed a Cluster (p. 182)
• Tagging Snapshots (p. 185)
• Deleting a Snapshot (p. 186)
• AOF (Redis Append Only Files) (p. 187)
制約
現時点では、バックアップと復元は Redis で実行されるクラスターでのみサポートされます。
バックアップと復元は、cache.t1.micro または cache.t2.* キャッシュノードではサポートされま
せん。他のキャッシュノードタイプはすべてサポートされます。
連続する 24 時間で、クラスターあたり 20 個までの手動バックアップを作成できます。
コスト
ElastiCache では、アクティブなそれぞれの Redis クラスターについて、1 つのバックアップを無料で
保存することができます。追加バックアップのストレージ領域については、すべてのリージョンで 1 か
月あたり $0.085/GB の料金が課金されます。バックアップの作成や、バックアップから Redis クラス
ターへのデータの復元には、データ転送料金はかかりません。
パフォーマンスに対するバックアップの影響
バックアッププロセスは実行中の Redis バージョンによって異なります。Redis 2.8.22 からは、プロセ
スは分岐なしとなっています。
Redis 2.8.22 以降を実行する場合のバックアップ
バージョン 2.8.22 以降の Redis バックアップでは、2 つのバックアップ方法から選択します。分岐し
たバックアップをサポートするメモリが不足している場合、ElastiCache 協調的なバックグラウンドプ
ロセスを使用する分岐なしの方法を使用します。分岐した保存プロセスをサポートするのに十分なメモ
リがある場合は、以前の Redis バージョンと同じプロセスが使用されます。
分岐なしバックアップ中の書き込みのワークロードが高い場合は、キャッシュへの書き込み遅延が発
生、し多すぎる数の変更が蓄積されないようにして、正常なスナップショットが妨げられないようにし
ます。
Redis バージョン 2.8.22 以前を実行する場合のバッ
クアップ
バックアップは、Redis のネイティブの BGSAVE コマンドを使用して作成されます。キャッシュノー
ドの Redis プロセスは、子プロセスを生成して、キャッシュから Redis .rdb ファイルにすべてのデー
タを書き込みます。この子プロセスの生成は最大で 10 秒かかる場合があり、この間、親プロセスは受
API Version 2015-02-02
169
Amazon ElastiCache ユーザーガイド
Redis バージョン 2.8.22 以前を実行する場合のバックアッ
プ
信アプリケーションリクエストを受け付けることができません。子プロセスが個別に実行された後、親
プロセスは通常のオペレーションを再開します。子プロセスはバックアップオペレーションが完了する
と終了します。
バックアップが書き込まれるとき、新しい書き込みには、追加のキャッシュノードメモリが使用されま
す。この追加のメモリ使用量がノードの使用可能なメモリを超えた場合、過剰なページングよって処理
が低速になるか失敗する可能性があります。
次に、スナップショットのパフォーマンスを向上させるためのガイドラインを示します。
• reserved-memory パラメータを設定する - 過剰なページングを軽減するために、reserved-memory パ
ラメータを設定することをお勧めします。このパラメータは、Redis がノードの使用可能なメモリを
すべて消費することを防止し、ページング容量を削減するのに役立ちます。また、大容量のノードを
使用するだけでパフォーマンスが向上する場合があります。reserved-memory パラメータとノードの
メモリサイズの詳細については、「Redis 固有のパラメータ (p. 219)」を参照してください。
• リードレプリカでバックアップを作成する - 複数のノードを含むノードグループで Redis を実行して
いる場合、プライマリノードまたはいずれかのリードレプリカからバックアップを作成できます。
BGSAVE の実行時に必要なシステムリソースのために、プライマリではなく、いずれかのリードレ
プリカでバックアップを作成することをお勧めします。レプリカでバックアップが作成される間、プ
ライマリノードは BGSAVE のリソースの要件の影響を受けず、処理速度を低下させることなくリク
エストを処理し続けることができます。
レプリケーショングループを削除し、最終バックアップをリクエストした場合、ElastiCache は常にプ
ライマリノードでバックアップを作成します。これにより、レプリケーショングループが削除される前
に、最新の Redis データがキャプチャされます。
API Version 2015-02-02
170
Amazon ElastiCache ユーザーガイド
Scheduling Automatic Snapshots
Scheduling Automatic Snapshots
すべての Redis クラスターで、自動バックアップを有効にできます。自動バックアップを有効にする
と、ElastiCache はクラスターのバックアップを毎日作成します。自動バックアップは、データの損失
に対する予防策として役立ちます。ノードに障害が発生した場合、最新バックアップからすべてのデー
タを復元して、新しいクラスターを作成できます。結果は、ウォームスタートのクラスターで、データ
がプリロードされており、すぐに使用できます。詳細については、「Restoring From a Snapshot (p. 180)」
を参照してください。
自動バックアップをスケジュールする場合は、次の設定を検討する必要があります:
• スナップショット期間 - 毎日、ElastiCache がバックアップの作成を開始する期間。バックアップ期
間の最短時間は 60 分です。バックアップ期間は、いつでもお客様にとって都合のよい時間、つま
り、バックアップの実行が特に使用率の高い時間と重ならないような時間に設定できます。
バックアップ期間を指定していない場合、ElastiCache によって自動的にバックアップ期間が割り当
てられます。
• スナップショット保持期限 - バックアップが Amazon S3 に保持される日数。たとえば、保持期限を
5 に設定すると、今日作成されたバックアップは 5 日間保持されます。保持期限が切れると、バック
アップは自動的に削除されます。
最大バックアップ保持期限は 35 日です。バックアップ保持期限を 0 に設定すると、クラスターの自
動バックアップが無効になります。
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、既存の Redis クラスターま
たはレプリケーショングループの自動バックアップを有効または無効にできます。既存のクラスターま
たはレプリケーショングループの自動バックアップを有効または無効にする方法の詳細については、
「ElastiCache キャッシュクラスターの変更 (p. 110)」または「レプリケーショングループの変更 (p. 157)」
を参照してください。
Redis クラスターまたはレプリケーショングループ ElastiCache コンソール、AWS CLI、または
ElastiCache API を作成すると、自動バックアップを有効または無効にすることができます。Enable
Automatic Backups ボックス ([Configure Advanced Settings] ページの) をオンにして、Redis クラス
ターを作成したときに自動バックアップを有効にできます。詳細については、「画面 3: 詳細設定を編
集する (p. 105)」のステップ 2 を参照してください。既存のクラスターをプライマリクラスターとして
使用しない場合は、Redis レプリケーショングループを作成したときに自動バックアップを有効にでき
ます。詳細については、「利用可能な Redis キャッシュクラスターがない場合のレプリケーショング
ループの作成 (p. 146)」を参照してください。
API Version 2015-02-02
171
Amazon ElastiCache ユーザーガイド
Taking Manual Snapshots
Taking Manual Snapshots
自動バックアップに加えて、いつでも手動バックアップを作成できます。たとえば、自動バックアップ
のバックアップ保持期限が近い場合、そのバックアップのコピーを作成し、自分で削除することを決定
するまで、コピーを保管しておくことができます。
手動バックアップはアーカイブにも役立ちます。たとえば、テスト目的で一連の基本データを策定した
とします。このデータの手動バックアップを作成して、いつでも必要なときにデータを復元できます。
このデータを変更するアプリケーションをテストした後、新しいクラスターを作成し、基本データの
バックアップから復元することによって、データをリセットできます。クラスターの準備ができたら、
再び基本データでアプリケーションをテストし、必要に応じてこのプロセスを繰り返すことができま
す。
次のいずれかの方法で手動バックアップを作成できます。
• 「クラスターの Taking Manual Snapshots (p. 172)」これは、クラスターで有効にしている自動バック
アップに加えて作成されます。
• 「スナップショットのコピー (p. 177)」ソースのバックアップが自動で作成されたか、手動で作成さ
れたかは問題ではありません。
• 「Taking a Final Snapshot (p. 174)」クラスターまたはレプリケーショングループを削除する直前に最
終バックアップを作成します。
手動バックアップの作成頻度には制限があります。連続する 24 時間の間に、クラスターごとに 20 を
超える手動バックアップを作成することはできません。
手動バックアップに保持期限はなく、ElastiCache によって自動的に削除されません。クラスターを削
除した場合でも、そのクラスターの手動バックアップはすべて保持されます。手動バックアップを保持
する必要がなくなった場合は、自分で明示的に削除する必要があります。
クラスターの Taking Manual Snapshots
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、クラスターの手動バックアッ
プを作成できます。
手動バックアップの作成 AWS マネジメントコンソールの使用
クラスターのバックアップを作成するには AWS マネジメントコンソールを使用した
1.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
[Cache Clusters] を選択します。
[Cache Clusters] 画面が表示されます。
3.
4.
バックアップするクラスターの名前を選択します。
[Backup] を選択します。
5.
[Create Cache Snapshot] 画面が表示されます。
[Snapshot Name] ボックスにバックアップの名前を入力します。
6.
[Create Snapshot] を選択します。
クラスターのステータスが snapshotting に変わります。ステータスが [Available] に戻ると、スナッ
プショットの作成が完了です。
API Version 2015-02-02
172
Amazon ElastiCache ユーザーガイド
クラスターの Taking Manual Snapshots
手動バックアップの作成 AWS CLI の使用
クラスター AWS CLI の使用 の手動バックアップを作成するには、create-snapshot AWS CLI コマ
ンドを使用して、スナップショットに対するクラスターの名前 (--cache-cluster-id) とスナップ
ショットの名前 (--snapshot-name) を指定します。
次の AWS CLI コマンドは、スナップショット snap-20150515 をクラスター myRedisCluster から
作成します。
Linux, OS X, or Unix 用:
aws elasticache create-snapshot \
--cache-cluster-id myRedisCluster \
--snapshot-name snap-20150515
Windows の場合:
aws elasticache create-snapshot ^
--cache-cluster-id myRedisCluster ^
--snapshot-name snap-20150515
詳細については、AWS CLI トピックの「create-snapshot」を参照してください。
手動バックアップの作成 ElastiCache API の使用
クラスター ElastiCache API を使用 の手動バックアップを作成するには、CreateSnapshot ElastiCache
API アクションを使用して、スナップショットに対するクラスターの名前 (CacheClusterId) とスナッ
プショットの名前 (snap-20150515) を指定します。
次の ElastiCacheAPI アクションは、スナップショット snap-20150515 をクラスター myRedisCluster
から作成します。
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateSnapshot
&CacheClusterId=myRedisCluster
&SnapshotName=snap-20150515
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
詳細については、ElastiCache API トピックの「CreateSnapshot」を参照してください。
API Version 2015-02-02
173
Amazon ElastiCache ユーザーガイド
Taking a Final Snapshot
Taking a Final Snapshot
Redis クラスターまたはレプリケーショングループを削除すると、最終スナップショットを作成できま
す。
最終スナップショットの作成 AWS マネジメントコン
ソールの使用
最終スナップショットを作成するには AWS マネジメントコンソールを使用した
1.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
キャッシュクラスターを削除するには、[Cache Clusters] を選択します。
レプリケーショングループを削除するには、[Replication Groups] を選択します。
3.
4.
5.
6.
キャッシュクラスターまたはレプリケーショングループの画面に、クラスターまたはレプリケー
ショングループのリストが表示されます。
削除するクラスターまたはレプリケーショングループの名前を選択します。
[Delete] を選択します。
[Delete Cache Cluster] または [Delete Replication Group] 画面で、[Yes] ([Create final snapshot] で)
を選択して、[Final Snapshot Name] ボックスに最終スナップショットの名前を入力します。
[Delete] を選択します。
最終スナップショットの作成 AWS CLI の使用
次のコードは、最終スナップショット snap-20150515-final をクラスター myRedisCluster を削
除したときに作成します。
Linux, OS X, or Unix 用:
aws elasticache delete-cache-cluster \
--cache-cluster-id myRedisCluster \
--final-snapshot-identifier snap-20150515-final
Windows の場合:
aws elasticache delete-cache-cluster ^
--cache-cluster-id myRedisCluster ^
--final-snapshot-identifier snap-20150515-final
詳細については、AWS CLI トピックの「delete-cache-cluster」を参照してください。
次のコードは、最終スナップショット snap-20150515-final をレプリケーショングループ
myReplGroup を削除したときに作成します。
Linux, OS X, or Unix 用:
API Version 2015-02-02
174
Amazon ElastiCache ユーザーガイド
最終スナップショットの作成 ElastiCache API の使用
aws elasticache delete-replication-group \
--replication-group-id myReplGroup \
--final-snapshot-identifier snap-20150515-final
Windows の場合:
aws elasticache delete-replication-group ^
--replication-group-id myReplGroup ^
--final-snapshot-identifier snap-20150515-final
詳細については、AWS CLI トピック「delete-replication-group」を参照してください。
最終スナップショットの作成 ElastiCache API の使用
キャッシュクラスターを削除したときに最終スナップショットを作成するには、アクション
DeleteCacheCluster をパラメータ CacheClusterId と共に使用して、削除するクラスターと、最
終スナップショットの名前に FinalSnapshotIdentifier を指定します。
次の ElastiCache API アクションは、スナップショット snap-20150515-final をクラスター
myRedisCluster を削除時に作成します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DeleteCacheCluster
&CacheClusterId=myRedisCluster
&FinalSnapshotIdentifier=snap-20150515-final
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
詳細については、ElastiCache API トピックの「DeleteCacheCluster」を参照してください。
レプリケーショングループを削除したときに最終スナップショットを作成するには、アクション
DeleteReplicationGroup をパラメータ ReplicationGroupId と共に使用して、削除するグルー
プと、最終スナップショットの名前に FinalSnapshotIdentifier を指定します。
次の ElastiCache API アクションは、スナップショット snap-20150515-final をレプリケーション
グループ myReplGroup を削除したときに作成します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DeleteReplicationGroup
&FinalSnapshotIdentifier=snap-20150515-final
&ReplicationGroupId=myReplGroup
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
詳細については、ElastiCache API トピックの「DeleteReplicationGroup」を参照してください。
API Version 2015-02-02
175
Amazon ElastiCache ユーザーガイド
スナップショットのリストの表示
スナップショットのリストの表示
次の手順は、スナップショットのリストを表示する方法を示しています。
スナップショットのリストの表示 AWS マネジメント
コンソールの使用
AWS マネジメントコンソール を使用してスナップショットを表示するには
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ElastiCache コンソールダッシュボードで [Snapshots] を選択します。
[Filter] フィールドを使用して、手動スナップショット、自動スナップショット、またはすべての自
動スナップショットを表示します。
スナップショットのリストの表示 AWS CLI の使用
スナップショットのリストを表示するには、describe-snapshots コマンドを使用します以下の例で
は、現在の AWS アカウントにあるすべてのスナップショットを示すリストを表示します。
aws elasticache describe-snapshots
詳細については、AWS CLI トピックの「describe-snapshots」を参照してください。
スナップショットのリストの表示 ElastiCache API の
使用
スナップショットのリストを表示するには、DescribeSnapshots アクションを使用します
以下の例では、現在の AWS アカウントにあるすべてのスナップショットのリストを表示します。
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeSnapshots
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
API Version 2015-02-02
176
Amazon ElastiCache ユーザーガイド
スナップショットのコピー
スナップショットのコピー
自動で作成されたか手動で作成されたかにかかわらず、どのスナップショットのコピーでも作成できま
す。次の手順は、スナップショットをコピーする方法を示しています。
スナップショットのコピー AWS マネジメントコン
ソールの使用
スナップショットをコピーするには AWS マネジメントコンソールを使用した
1.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
3.
ElastiCache コンソールダッシュボードで [Snapshots] を選択します。
スナップショットのリストで、コピーするスナップショットを選択し、[Copy Snapshot] をクリッ
クします。
[New Cache Snapshot Identifier] テキストボックスに、新しいスナップショットの名前を入力し、
[Copy] を選択します。
4.
スナップショットのコピー AWS CLI の使用
スナップショットをコピーするには、copy-snapshot コマンドを使用します。以下の例では、自動ス
ナップショットのコピーを作成します。
Linux, OS X, or Unix 用:
aws elasticache copy-snapshot \
--source-snapshot-name automatic.my-redis-primary-2014-03-27-03-15 \
--target-snapshot-name my-snapshot-copy
Windows の場合:
aws elasticache copy-snapshot ^
--source-snapshot-name automatic.my-redis-primary-2014-03-27-03-15 ^
--target-snapshot-name my-snapshot-copy
詳細については、AWS CLI トピックの「copy-snapshot」を参照してください。
スナップショットのコピー ElastiCache API の使用
スナップショットをコピーするには、以下のパラメータを指定し CopySnapshot パラメータを使用し
ます。
• SourceSnapshotName
• TargetSnapshotName
以下の例では、自動スナップショットのコピーを作成します。
API Version 2015-02-02
177
Amazon ElastiCache ユーザーガイド
スナップショットのコピー ElastiCache API の使用
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=CopySnapshot
&TargetSnapshotName=my-snapshot-copy
&SourceSnapshotName=automatic.my-redis-primary-2014-03-27-03-15
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
API Version 2015-02-02
178
Amazon ElastiCache ユーザーガイド
スナップショットのエクスポート
スナップショットのエクスポート
意図しない破損からファイルを保護するために、Amazon ElastiCache では ElastiCache スナップショッ
トファイルへのアクセスが許可されていません。ただし、スナップショットに直接アクセスするデータ
をエクスポートする必要がある場合は、自己管理型の Amazon EC2 環境に Redis スナップショットを
作成するプロセスがあります。
ElastiCache の外部で作業するため、ElastiCache マネジメントコンソール、AWS CLI、または
ElastiCache API を使用してこのプロセスを実行することはできません。Redis コマンドを使用する必
要があります。Redis コマンドの使用については、『Redis コマンドのドキュメント』を参照してくだ
さい。
直接アクセスできるスナップショットを作成するには
1.
2.
Amazon Elastic Compute Cloud (Amazon EC2) で外部の Redis 自己管理型インスタンスを作成し
ます。
詳細については、『Redis クイックスタート』を参照してください。
ElastiCache レプリケーショングループのプライマリノードに、このインスタンスをリードレプリ
カとして接続します。
詳細については、「SLAVEOFhost port」を参照してください。
Important
ElastiCache は外部レプリカにフェイルオーバーできないため、通常のワークロードの一
部として外部レプリカを作成することはお勧めしません。
Redis 2.8.22 から、ElastiCache は外部リードレプリカをサポートしていません。
3.
4.
このリードレプリカ外部のスナップショットを作成します。この外部 .rdb ファイルへのアクセス
権限がありません。
詳細については、「BGSAVE」を参照してください。
ElastiCache レプリケーショングループからこのレプリカを切り離します。
詳細については、「SLAVEOFNO ONE」を参照してください。
API Version 2015-02-02
179
Amazon ElastiCache ユーザーガイド
Restoring From a Snapshot
Restoring From a Snapshot
バックアップから新しいクラスターにいつでもデータを復元できます。デフォルトでは、新しいクラス
ターは、バックアップを作成したときのソースクラスターと同じ設定になります。ただし、ノードサイ
ズなど、一部のパラメータは変更できます。
復元操作時に、ElastiCache は新しいクラスターを作成し、バックアップファイルからのデータを使用
してキャッシュに入力します。このプロセスが完了すると、Redis のキャッシュはウォームアップ状態
になり、クラスターはリクエストを受け付けることができます。
以下の手順では、新しいクラスターにバックアップを復元する方法を示しています。
Restoring From a Snapshot AWS マネジメントコン
ソールの使用
新規クラスターへバックアップを復元するには
1.
2.
3.
4.
5.
6.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ElastiCache コンソールダッシュボードで [Snapshots] を選択します。
バックアップのリストで、復元するバックアップを選択し、[Restore Snapshot] を選択します。
[Restore Cluster] ウィンドウで、[Cache Cluster Id] ボックスに新しいキャッシュクラスターの名前
を入力します。
[オプション] [Instance Type]、[Cache Port]、および他のプロパティに新しい値を選択することで、
新しいクラスターをカスタマイズできます。
設定が完了したら、[Launch Cache Cluster] を選択します。
Restoring From a Snapshot AWS CLI の使用
バックアップから新しいクラスターにデータを復元するには、以下のパラメータを指定して
create-cache-cluster コマンドを使用します。
• --snapshot-name
• --cache-cluster-id
以下の例では、my-restored-redis という名前の新しいキャッシュクラスターを作成し、my-manual-backup
からそのクラスターにデータを復元します。
Linux, OS X, or Unix 用:
aws elasticache create-cache-cluster \
--cache-cluster-id my-restored-redis \
--snapshot-name my-manual-backup
Windows の場合:
aws elasticache create-cache-cluster ^
--cache-cluster-id my-restored-redis ^
--snapshot-name my-manual-backup
API Version 2015-02-02
180
Amazon ElastiCache ユーザーガイド
Restoring From a Snapshot ElastiCache API の使用
詳細については、AWS CLI トピックの「create-cache-cluster」を参照してください。
Restoring From a Snapshot ElastiCache API の使用
バックアップから新しいクラスターにデータを復元するには、以下のパラメータを指定して
CreateCacheCluster アクションを使用します。
• SnapshotName
• CacheClusterId
以下の例では、my-restored-redis という名前の新しいキャッシュクラスターを作成し、my-manual-backup
からそのクラスターにデータを復元します。
例
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateCacheCluster
&SnapshotName=my-manual-backup
&CacheClusterId=my-restored-redis
&Version=2015-02-02
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
詳細については、ElastiCache API トピックの「CreateCacheCluster」を参照してください。
API Version 2015-02-02
181
Amazon ElastiCache ユーザーガイド
Using a Snapshot to Seed a Cluster
Using a Snapshot to Seed a Cluster
新しい Redis クラスターを作成するときに、Redis .rdb スナップショットファイルのデータを使用して
シードすることができます。クラスターをシードすることは、現在 ElastiCache の外部で Redis インス
タンスを管理していて、新しい ElastiCache クラスターに既存の Redis データを入力する場合に役に立
ちます。
Important
Redis スナップショットデータがノードのリソースを超えていないことを確認する必要があり
ます。たとえば、2.9 GB のメモリがある cache.m3. ミディアムノードに、5 GB の Redis デー
タがある .rdb ファイルをアップロードすることはできません。
スナップショットが大きすぎる場合、結果として作成されるキャッシュクラスターのステータ
スが restore-failed になります。その場合は、クラスターを削除してやり直す必要があります。
ノードの種類および仕様の一覧については、「Redis のノードタイプ固有のパラメータ (p. 230)」
および Amazon ElastiCache 製品の機能と詳細を参照してください。
次のトピックで、ElastiCache Redis 以外のクラスターを Amazon ElastiCache に移行させる方法につ
いて説明します。
トピック
1. Redis バックアップを作成します。 (p. 182)
2. バックアップを Amazon S3 にアップロードします。 (p. 182)
3. .rdb ファイルへの読み込みアクセスを ElastiCache に許可します。 (p. 183)
4. ElastiCache クラスターと .rdb ファイルデータを提携させます。 (p. 184)
1. Redis バックアップを作成します。
ElastiCache Redis インスタンスのシード元の Redis バックアップを作成するには
1.
2.
既存の Redis インスタンスに接続します。
BGSAVE または SAVE コマンドを実行してバックアップを作成します。
BGSAVE は非同期処理であり、処理中も他のクライアントをブロックしません。詳細については、
http://redis.io/commands/bgsave を参照してください。
SAVE が同期され、完了するまで他のプロセスがブロックされます。詳細については、http://redis.io/
commands/save を参照してください。
バックアップの作成の詳細については、http://redis.io/topics/persistence を参照してください。
2. バックアップを Amazon S3 にアップロードしま
す。
バックアップファイルを作成したら、Amazon S3 バケットにアップロードする必要があります。この
タスクの詳細については、『Amazon Simple Storage Service 入門ガイド』を参照してください。
API Version 2015-02-02
182
Amazon ElastiCache ユーザーガイド
3. .rdb ファイルへの読み込みアクセスを ElastiCache に許
可します。
また、.rdb ファイルの S3 パスを書き留めることも重要です。たとえば、バケット名が myBucket であ
りパスが myFolder/redis.rdb である場合、myBucket/myFoolder/redis.rdb と入力します。新
しいクラスターにこのバックアップのデータをシードする際にこのパスが必要です。
Amazon S3 バケット名は DNS 準拠にする必要があります。準拠していないと、ElastiCache はバック
アップファイルにアクセスできません。DNS 準拠のルールでは、次のようになります:
• 名前は、3 ~ 63 文字以内にする必要があります。
• 名前は、ピリオド(.)区切られた 1 つ以上の一連のラベルに必要があります。各ラベルの条件は次
のとおりです。
• 先頭の文字には小文字の英文字または数字を使います。
• 末尾の文字には小文字の英文字または数字を使います。
• 小文字、数字、ダッシュのみを含める必要があります。
• 名前は、IP アドレスとしてフォーマットされていてはいけません(例: 192.0.2.0)。
詳細については、『Amazon Simple Storage Service 開発者ガイド』の「バケットの制約と制限」を参
照してください。
Amazon S3 バケットは ElastiCache クラスターと同じリージョンで使用することを強くお勧めします。
この手法により、ElastiCache が Amazon S3 から .rdb ファイルを読み取る場合のデータ転送速度が最
大限に速くなります。
3. .rdb ファイルへの読み込みアクセスを ElastiCache
に許可します。
バックアップファイルへの読み込みアクセスを ElastiCache に許可するには
1.
2.
3.
4.
5.
6.
AWS マネジメントコンソールにサインインして Amazon S3 コンソール(https://
console.aws.amazon.com/s3/)を開きます。
[All Buckets] を選択し、.rdb ファイルを含む Amazon S3 バケットの名前を選択します。
.rdb ファイルを含むフォルダの名前を選択します。
.rdb バックアップファイルの名前を選択します。
[Actions] ドロップダウンメニューを選択して、[Properties] を選択します。
[Grantee] ボックスに、E メールアドレス「[email protected]」を入力しま
す。[email protected] アカウントは、Amazon S3 から Redis スナップショッ
トデータをアップロードするお客様だけが使用します。
Important
次のリージョンでは、[email protected] ではなく、リージョン固有
の正規 ID に接続してください:
• 中国(北京)リージョン:
b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83
• 欧州(フランクフルト)リージョン:
540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
• アジアパシフィック(ソウル)リージョン:
26fe0dd5b316696a27201d875df7ca7d2dd30bf9a33ee3ae7f81573edf0f53b1
• AWS GovCloud(米国)リージョン:
40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6
API Version 2015-02-02
183
Amazon ElastiCache ユーザーガイド
4. ElastiCache クラスターと .rdb ファイルデータを提携さ
せます。
Note
スナップショットを GovCloud Redis クラスターにダウンロードするには、ス
ナップショットが GovCloud S3 バケットに存在している必要があります。
7.
[Open/Download] を選択して、次に [Save] を選択します。
4. ElastiCache クラスターと .rdb ファイルデータを
提携させます。
これで ElastiCache クラスターを作成し、.rdb ファイルのデータと提携する準備が整いました。クラス
ターを作成するには、「クラスターの作成 (p. 98)」のリダイレクトに従ってください。Redis がクラス
ターエンジンとして選択されていることを確認してください。
さらに、お客様が ElastiCache に使用するよう指示した方法は、Amazon S3 にアップロードしたバッ
クアップがどこにあるのかを検索するものですが、これはクラスターの作成に使用する方法によって異
なります。
• ElastiCache クラスターと .rdb ファイルデータを提携させます (ElastiCache コンソールを使用して)。
[Specify Cluster Details] ページ ([Configuration] セクションの下部) で Redis エンジンを選択したら、
[S3 Location of the Redis .rdb file] を検索して、Amazon S3 バケットにアップロードするバックアッ
プの S3 パスを入力します。Amazon S3 パスは次のように表示されます。
myBucket/myFolder/myBackupFilename.rdb
• AWS CLI を使用して ElastiCache クラスターと .rdb ファイルデータを提携させます。
aws elasticache create-cache-cluster コマンドを使用した場合、--snapshot-arns パラ
メータを使用して完全修飾 ARN を指定します。
("arn:aws:s3:::myBucket/myFolder/myBackupFilename.rdb" など)。ARN は、Amazon
S3 に保存したバックアップファイルに解決される必要があります。
• ElastiCache クラスターと .rdb ファイルデータを提携させます (ElastiCache API を使用して)。
CreateCacheClusterElastiCache API を使用している場合、SnapshotArns パラメータを使用し
て完全修飾 ARN を指定します。("arn:aws:s3:::myBucket/myFolder/myBackupFilename.rdb"
など)。ARN は、Amazon S3 に保存したバックアップファイルに解決される必要があります。
クラスターの作成処理中、Redis バックアップ内のデータがクラスターに書き込まれます。ElastiCache
イベントメッセージを表示して、進行状況をモニタリングできます。これを行うには、ElastiCache コ
ンソールに移動し、[Cache Events] を選択します。AWS ElastiCache コマンドラインインターフェイ
スまたは ElastiCache API を使用して、イベントメッセージを取得することもできます。詳細について
は、「Viewing ElastiCache Events (p. 281)」を参照してください。
API Version 2015-02-02
184
Amazon ElastiCache ユーザーガイド
Tagging Snapshots
Tagging Snapshots
コスト配分タグは、費用を請求書タグ値別にグループ化することで、複数の AWS サービスのコストを
追跡する方法です。コスト配分タグの詳細については、「コスト配分タグの使用」と「コスト配分のタ
グによるコストのモニタリング (p. 287)」を参照してください。
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、またはスナップショットの
コスト配分タグを追加、一覧、変更、削除、またはコピーできます。詳細については、以下のトピック
を参照してください。
• Adding Tags to Your ElastiCache Resource (p. 289)
• Listing Your ElastiCache Resource's Tags (p. 291)
• Modifying Your ElastiCache Resource's Tags (p. 293)
• Removing Tags from Your ElastiCache Resource (p. 294)
• Copying Tags to Your ElastiCache Resource (p. 296)
API Version 2015-02-02
185
Amazon ElastiCache ユーザーガイド
Deleting a Snapshot
Deleting a Snapshot
自動バックアップは、保持期限を過ぎると自動的に削除されます。クラスターを削除すると、そのクラ
スターのすべての自動バックアップも削除されます。レプリケーショングループを削除すると、そのグ
ループのクラスターからすべて自動バックアップも削除されます。
ElastiCache には、バックアップが自動と手動のいずれで作成されたかにかかわらず、いつでもバック
アップを削除できる削除 API が用意されています (手動バックアップには保持期限がないため、手動削
除は手動スナップショットを削除する唯一の方法です)。
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してスナップショットを削除でき
ます。
Deleting a Snapshot AWS マネジメントコンソールの
使用
次の手順では、ElastiCache コンソールを使用してスナップショットを削除します。
スナップショットを削除するには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左側のナビゲーションペインで、[Snapshots] を選択します。
3.
4.
スナップショット画面にスナップショットのリストが表示されます。
削除するスナップショットの名前を選択します。
[Delete Snapshot] を選択します。
5.
[Delete Cache Snapshot] 確認画面が表示されます。
このスナップショットを削除する場合は、[Delete] を選択します。ステータスが deleting に変わり
ます。
このスナップショットを維持する場合は、[Cancel] を選択します。
Deleting a Snapshot AWS CLI の使用
delete-snapshot コマンドを使用してスナップショットを削除します。次のコードはスナップショット
mySnapshot を削除します。
aws elasticache delete-snapshot --snapshot-name mySnapshot
詳細については、AWS CLI トピックの「delete-snapshot」を参照してください。
Deleting a Snapshot ElastiCache API の使用
DeleteSnapshot コマンドを使用してスナップショットを削除します。次のコードはスナップショット
mySnapshot を削除します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DeleteSnapshot
&SignatureVersion=4
API Version 2015-02-02
186
Amazon ElastiCache ユーザーガイド
AOF (Redis Append Only Files)
&SignatureMethod=HmacSHA256
&SnapshotId=mySnapshot
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
詳細については、ElastiCache CLI トピックの「DeleteSnapshot」を参照してください。
AOF (Redis Append Only Files)
デフォルトでは、ElastiCache の Redis ノード内のデータはメモリにのみ存在し、永続的ではありませ
ん。ノードが再起動されるか、基になる物理サーバーでハードウェア障害が発生した場合、キャッシュ
内のデータは失われます。
データの耐久性が必要な場合、Redis の AOF(Append-Only File)機能を有効にすることができます。
この機能を有効にすると、キャッシュノードは、キャッシュデータを変更するすべてのコマンドを
Append-Only File に書き込みます。ノードが再起動されてキャッシュエンジンが開始すると AOF が「再
生」されます。その結果、すべてのデータが変更されていないウォーム状態の Redis キャッシュとなり
ます。
AOF はデフォルトでは無効になっています。Redis を実行しているクラスターで AOF を有効にするに
は、appendonly パラメータを yes に設定してパラメータグループを作成した後、そのパラメータグ
ループをクラスターに割り当てます。appendfsync パラメータを変更して、Redis が AOF ファイル
に書き込む頻度を制御することもできます。
Important
AOF (Append Only File) は、cache.t1.micro ノードおよび cache.t2* ノードではサポートされま
せん。これらのタイプのノードの場合、appendonly パラメータ値は無視されます。
マルチ AZ レプリケーショングループでは、AOF は無効になります。
AOF は、Redis バージョン 2.8.22 以降ではサポートされません。
Warning
AOF はすべての障害のシナリオに対応できるわけではありません。たとえば、基になる物理
サーバーでハードウェア障害が発生したためノードでエラーが発生した場合、ElastiCache は
別のサーバーで新しいノードをプロビジョニングします。この場合、AOF ファイルは使用でき
なくなり、データの復旧には使用できません。したがって、Redis はコールドキャッシュを使っ
て再開されます。
信頼性を高め、より迅速な復旧を可能にするため、クラスターの異なるアベイラビリティー
ゾーンに 1 つ以上のリードレプリカを作成し、AOF を使用する代わりにレプリケーショング
ループでマルチ AZ を有効にすることをお勧めします。AOF はマルチ AZ レプリケーショング
ループでは無効になります。
障害の軽減の詳細については、「Redis 実行時の障害の軽減 (p. 56)」を参照してください。
詳しくは次を参照してください。
• Redis 固有のパラメータ (p. 219)
• マルチ AZ と自動フェイルオーバーをサポートするレプリケーショングループ (Redis) (p. 134)
• 障害の軽減 (p. 55)
API Version 2015-02-02
187
Amazon ElastiCache ユーザーガイド
キャッシュセキュリティグループ
[EC2-Classic]
Abstract
キャッシュクラスターへのアクセスを制御するキャッシュセキュリティグループを管理します。
Important
Amazon ElastiCache キャッシュセキュリティグループは、Amazon Virtual Private Cloud 環境
(VPC)で実行されていないキャッシュクラスターにのみ適用されます。Amazon Virtual Private
Cloud で実行している場合、[Cache Security Groups] はコンソールのナビゲーションペインで
は使用できません。
ElastiCache ノードを Amazon VPC で実行している場合は、Amazon VPC セキュリティグルー
プでキャッシュクラスターへのアクセスを制御します。これは、ElastiCache セキュリティグ
ループとは異なります。Amazon VPC での ElastiCache の使用に関する詳細は、「Amazon
Virtual Private Cloud (Amazon VPC) を ElastiCache で使用する (p. 242)」を参照してください。
Amazon ElastiCache を使用すると、ElastiCache キャッシュセキュリティグループを使用して、キャッ
シュクラスターへのアクセスを制御できます。ElastiCache キャッシュセキュリティグループは、クラ
スターへのネットワークアクセスを制御するファイアウォールのように動作します。デフォルトでは、
クラスターへのネットワークアクセスは無効になっています。アプリケーションからキャッシュクラス
ターにアクセスできるようにするには、特定の Amazon EC2 セキュリティグループのホストからのア
クセスを明示的に有効にする必要があります。入口ルールが設定されると、同じルールがそのキャッ
シュセキュリティグループに関連するすべてのクラスターに適用されます。
キャッシュクラスターへのネットワークアクセスを許可するには、キャッシュセキュリティグループを
作成し、AuthorizeCacheSecurityGroupIngress API または ElastiCache 用
authorize-cache-security-group-ingress AWS CLI コマンドを使用して、必要な Amazon EC2
セキュリティグループを認証します(その結果として、許可されている Amazon EC2 インスタンスを
指定します)。セキュリティグループは、作成時に、または ModifyCacheCluster コマンドを使用し
て、または modify-cache-cluster、クラスターに関連付けることができます。
API Version 2015-02-02
188
Amazon ElastiCache ユーザーガイド
Important
IP 範囲に基づくアクセス制御は現在、個々のクラスターレベルでは有効になっていません。ク
ラスターのすべてのクライアントは、EC2 ネットワーク内にある必要があり、前に説明したよ
うに、セキュリティグループによって許可されている必要があります。
Amazon RDS での ElastiCache の使用に関する詳細は、「Amazon Virtual Private Cloud (Amazon VPC)
を ElastiCache で使用する (p. 242)」を参照してください。
Amazon EC2 インスタンスは、Amazon VPC で実行されている場合 ElastiCache キャッシュクラスター
(EC2-Classic 内の) に接続できないことに注意してください。
トピック
• キャッシュセキュリティグループの作成 (p. 190)
• 使用可能なキャッシュセキュリティグループのリスト (p. 192)
• キャッシュセキュリティグループの表示 (p. 194)
• Amazon EC2 セキュリティグループへのネットワークアクセスの許可 (p. 196)
API Version 2015-02-02
189
Amazon ElastiCache ユーザーガイド
キャッシュセキュリティグループの作成
キャッシュセキュリティグループの作成
このトピックは、Amazon VPC で実行していない場合にのみ該当します。Amazon VPC で実行してい
る場合は、「Amazon Virtual Private Cloud (Amazon VPC) を ElastiCache で使用する (p. 242)」を参照
してください。
キャッシュセキュリティグループを作成するには、名前と説明を入力する必要があります。
以下の手順では、新しいキャッシュセキュリティグループを作成する方法を示します。
セキュリティグループを作成する AWS マネジメント
コンソールの使用
1.
2.
3.
4.
5.
6.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Security Groups] を選択します。
[Create Cache Security Group] を選択します。
[Create Cache Security Group] で、[Cache Security Group] に新しいキャッシュセキュリティグルー
プの名前を入力します。
[Description] に、新しいキャッシュセキュリティグループの説明を入力します。
[Create] を選択します。
セキュリティグループを作成する AWS CLI の使用
コマンドプロンプトで、create-cache-security-group パラメータを指定して以下のコマンドを使
用します:
• --cache-security-group-name
• --description
Linux, OS X, or Unix 用:
aws elasticache create-cache-security-group \
--cache-security-group-name mycachesecuritygroup \
--description "My new security group"
Windows の場合:
aws elasticache create-cache-security-group ^
--cache-security-group-name mycachesecuritygroup ^
--description "My new security group"
詳細については、「create-cache-security-group」を参照してください。
セキュリティグループを作成する ElastiCache API の
使用
以下のパラメータを指定して、ElastiCache API を使用して CreateCacheSecurityGroup を呼び出し
ます。
API Version 2015-02-02
190
Amazon ElastiCache ユーザーガイド
セキュリティグループを作成する ElastiCache API の使用
• CacheSecurityGroupName=mycachesecuritygroup
• Description="My new security group"
Example
次のコード例の改行が読み込みのために追加されます。
https://elasticache.us-west-2.amazonaws.com /
?Action=CreateCacheSecurityGroup
&CacheSecurityGroupName=mycachesecuritygroup
&Description=My%20cache%20security%20group
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
API Version 2015-02-02
191
Amazon ElastiCache ユーザーガイド
使用可能なキャッシュセキュリティグループのリスト
使用可能なキャッシュセキュリティグループのリ
スト
このトピックは、Amazon VPC で実行していない場合にのみ該当します。Amazon VPC で実行してい
る場合は、「Amazon Virtual Private Cloud (Amazon VPC) を ElastiCache で使用する (p. 242)」を参照
してください。
AWS アカウント用に作成されたキャッシュセキュリティグループをリスト表示できます。
以下の手順では、AWS アカウントで使用可能なキャッシュセキュリティグループを表示する方法を示
します。
使用可能なキャッシュセキュリティグループのリス
ト AWS マネジメントコンソールの使用
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Security Groups] を選択します。
使用可能なキャッシュセキュリティグループが、[Cache Security Groups] のリストに表示されま
す。
使用可能なキャッシュセキュリティグループのリス
ト AWS CLI の使用
コマンドプロンプトで、AWS アカウントで利用可能なすべてのキャッシュセキュリティグループをリ
スト表示するには、describe-cache-security-groups コマンドを使用します。
aws elasticache describe-cache-security-groups
詳細については、「describe-cache-security-groups」を参照してください。
使用可能なキャッシュセキュリティグループのリス
ト ElastiCache API の使用
ElastiCache API を使用して DescribeCacheSecurityGroups を呼び出します。
API Version 2015-02-02
192
Amazon ElastiCache ユーザーガイド
使用可能なキャッシュセキュリティグループのリスト
ElastiCache API の使用
Example
次のコード例の改行が読み込みのために追加されます。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheSecurityGroups
&MaxRecords=100
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
API Version 2015-02-02
193
Amazon ElastiCache ユーザーガイド
キャッシュセキュリティグループの表示
キャッシュセキュリティグループの表示
このトピックは、Amazon VPC で実行していない場合にのみ該当します。Amazon VPC で実行してい
る場合は、「Amazon Virtual Private Cloud (Amazon VPC) を ElastiCache で使用する (p. 242)」を参照
してください。
キャッシュセキュリティグループに関する詳細情報を表示できます。
以下の手順では、お客様のキャッシュセキュリティグループのプロパティを表示する方法を示します。
キャッシュセキュリティグループの表示 AWS マネジ
メントコンソールの使用
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Security Groups] を選択します。
3.
使用可能なキャッシュセキュリティグループが、[Cache Security Groups] のリストに表示されま
す。
[Cache Security Groups] リストからキャッシュセキュリティグループを選択します。
キャッシュセキュリティグループに対して定義されている許可のリストが、ウィンドウ下部の詳細
セクションに表示されます。
キャッシュセキュリティグループの表示 AWS CLI の
使用
コマンドプロンプトで、キャッシュセキュリティグループを表示するには AWS CLI
describe-cache-security-groups コマンドを使用します。
aws elasticache describe-cache-security-groups mycachesecuritygroup
詳細については、「describe-cache-security-groups」を参照してください。
キャッシュセキュリティグループの表示 ElastiCache
API の使用
以下のパラメータを指定して、ElastiCache API を使用して DescribeCacheSecurityGroups を呼び
出します。
• CacheSecurityGroupName=mycachesecuritygroup
API Version 2015-02-02
194
Amazon ElastiCache ユーザーガイド
キャッシュセキュリティグループの表示 ElastiCache API
の使用
Example
次のコード例の改行が読み込みのために追加されます。
https://elasticache.amazonaws.com/
?Action=DescribeCacheSecurityGroups
&CacheParameterGroupName=mycachesecuritygroup
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
API Version 2015-02-02
195
Amazon ElastiCache ユーザーガイド
Amazon EC2 セキュリティグループへのネットワークアク
セスの許可
Amazon EC2 セキュリティグループへのネットワー
クアクセスの許可
このトピックは、Amazon VPC で実行していない場合にのみ該当します。Amazon VPC で実行してい
る場合は、「Amazon Virtual Private Cloud (Amazon VPC) を ElastiCache で使用する (p. 242)」を参照
してください。
Amazon EC2 インスタンスからキャッシュクラスターにアクセスする場合、EC2 インスタンスが属す
る Amazon EC2 セキュリティグループにアクセスを許可する必要があります。以下の手順では、Amazon
EC2 セキュリティグループにアクセスを許可する方法を示します。
Important
Amazon EC2 セキュリティグループを認可する場合、その Amazon EC2 セキュリティグルー
プに属する EC2 インスタンスからキャッシュクラスターへのアクセスのみが許可されます。
Amazon EC2 セキュリティグループへのネットワー
クアクセスの許可 AWS マネジメントコンソールの使
用
1.
2.
3.
4.
5.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Security Groups] を選択します。
[Cache Security Groups] リストで、許可するアクセスの対象となるキャッシュセキュリティグルー
プの横にあるチェックボックスをオンにします。
ウィンドウの下部にある [EC2 Security Group Name] リストで、お客様の Amazon EC2 セキュリ
ティグループを選択します。
[Add] を選択します。
Note
アクセス許可に対する変更が有効になるまでに約 1 分かかります。
Amazon EC2 セキュリティグループへのネットワー
クアクセスの許可 AWS CLI の使用
コマンドプロンプトで、Amazon EC2 セキュリティグループにアクセスを許可するには、
authorize-cache-security-group-ingress コマンドを使用します。
Linux, OS X, or Unix 用:
aws elasticache authorize-cache-security-group-ingress \
--cache-security-group-name default \
--ec2-security-group-name myec2group \
--ec2-security-group-owner-id 987654321021
Windows の場合:
API Version 2015-02-02
196
Amazon ElastiCache ユーザーガイド
Amazon EC2 セキュリティグループへのネットワークアク
セスの許可 ElastiCache API の使用
aws elasticache authorize-cache-security-group-ingress ^
--cache-security-group-name default ^
--ec2-security-group-name myec2group ^
--ec2-security-group-owner-id 987654321021
このコマンドでは、次のような出力が生成されます。
SECGROUP Name
Description
SECGROUP default default
EC2-SECGROUP myec2group
987654321021
authorizing
詳細については、「authorize-cache-security-group-ingress」を参照してください。
Amazon EC2 セキュリティグループへのネットワー
クアクセスの許可 ElastiCache API の使用
以下のパラメータを指定して、ElastiCache API を使用して AuthorizeCacheSecurityGroupIngress
を呼び出します。
• EC2SecurityGroupName=myec2group
• EC2SecurityGroupOwnerId=987654321021
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=AuthorizeCacheSecurityGroupIngress
&EC2SecurityGroupOwnerId=987654321021
&EC2SecurityGroupName=myec2group
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
API Version 2015-02-02
197
Amazon ElastiCache ユーザーガイド
パラメータとパラメータグループ
Abstract
一般的なお客様の問題を識別し、これらの問題を回避する方法についてのガイダンスを提供します。
Amazon ElastiCache はパラメータを使用して、ノードとクラスターの実行時のプロパティを制御しま
す。通常、新しいエンジンバージョンには新しい機能をサポートするための追加のパラメータが含まれ
ます。エンジンやバージョンごとのパラメータのテーブルについては、「Memcached 固有のパラメー
タ (p. 212)」および「Redis 固有のパラメータ (p. 219)」を参照してください。
期待されているとおり、max_cache_memory などのパラメータ値はエンジンやキャッシュノードのタ
イプによって決まります。ノードタイプ別のパラメータ値のテーブルについては、「Memcached の
ノードタイプ固有のパラメータ (p. 218)」および「Redis のノードタイプ固有のパラメータ (p. 230)」を
参照してください。
トピック
• パラメータグループを作成する (p. 199)
• パラメータグループを名前別に一覧表示する (p. 202)
• パラメータグループの値を一覧する (p. 205)
• パラメータグループを変更する (p. 208)
• パラメータグループを削除する (p. 210)
• Memcached 固有のパラメータ (p. 212)
• Redis 固有のパラメータ (p. 219)
パラメータの管理を容易にするために、パラメータは名前付きのパラメータグループに分類されます。
パラメータグループは、起動時にキャッシュエンジンソフトウェアに渡されるパラメータの特定の値の
組み合わせを表しています。これらの値により、各ノードのキャッシュエンジンプロセスが実行時にど
のように動作するかが決まります。特定のパラメータグループのパラメータ値は、クラスターが属する
グループに関係なく、そのグループに関連付けられているすべてのノードに適用されます。
クラスターのパフォーマンスを最適化するには、パラメータ値を変更するか、またはクラスターのパラ
メータグループを変更できます。
• デフォルトのパラメータグループの変更や削除はできません。カスタムパラメータ値が必要な場合
は、独自のパラメータグループを作成する必要があります。
• パラメータグループファミリーとユーザーが割り当てているクラスターには、互換性が必要です。た
とえば、クラスターで Redis バージョン 2.8.6 を実行している場合は、Redis 2.8 ファミリーのグルー
API Version 2015-02-02
198
Amazon ElastiCache ユーザーガイド
パラメータグループを作成する
プからデフォルトまたはカスタムのパラメータグループのみを使用できます。Redis 2.6 パラメータ
グループファミリーのものは使用できません。
• クラスターのパラメータグループを変更する場合は、条件付きで変更可能なパラメータ(例:
activerehashing、databases)の値は、現在のパラメータグループと新しいパラメータグループ
の両方で同じである必要があります。
• クラスターのパラメータを変更する場合は、クラスターのパラメータグループまたはクラスターのパ
ラメータグループのパラメータ値を変更することによって、変更がすぐにまたはクラスターの再起動
後にクラスターに適用されます。特定のパラメータの変更が適用するタイミングであるかを確認する
には、以下のテーブルの Changes Take Effect 列を参照してください。Memcached 固有のパラメー
タ (p. 212) および Redis 固有のパラメータ (p. 219)クラスターの再起動については、「クラスターの再
起動 (p. 112)」を参照してください。
パラメータグループを作成する
セキュリティグループは、ElastiCache コンソール、AWS CLI または ElastiCache API を使って作成で
きます。
パラメータグループを作成する AWS マネジメントコ
ンソールの使用
次の手順では、ElastiCache コンソールを使用してパラメータグループを編集する方法を示します。
ElastiCache コンソールを使用してパラメータグループを作成するには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Parameter Groups] をクリックします。
3.
使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。
パラメータグループを作成するには、[Create Cache Parameter Group] をクリックします。
4.
[Create Cache Parameter Group] 画面が表示されます。
[Family] のリストから、パラメータグループのテンプレートとなるパラメータグループファミリー
を選択します。
5.
パラメータグループファミリーは、redis2.8 などの実際のパラメータグループの実際のパラメータ
およびその初期値を定義します。パラメータグループファミリーは、クラスターのエンジンおよび
バージョンと一致している必要があります。たとえば、redis2.8 ファミリーでパラメータグループ
を作成して Redis バージョン 2.6 を実行しているクラスターでそれを使用することはできません。
[Name] ボックスで、このパラメータグループの一意の名前を入力します。
6.
7.
クラスターのパラメータグループを作成または変更するときは、パラメータグループを名前で選択
します。したがって、わかりやすくパラメータグループのファミリーを特定するのに役立つ名前を
お勧めします。たとえば、Redis2-8-6-Custom のような名前を付けます。
[Description] ボックスに、パラメータグループの説明を入力します。
パラメータグループを作成するには、[Create] をクリックします。
パラメータグループを作成しないでプロセスを終了するには、[Cancel] をクリックします。
パラメータグループが作成されると、ファミリーのデフォルト値が設定されます。デフォルト値を変更
する方法の詳細については、トピック「パラメータグループを変更する (p. 208)」を参照してください。
API Version 2015-02-02
199
Amazon ElastiCache ユーザーガイド
パラメータグループを作成する AWS CLI の使用
パラメータグループを作成する AWS CLI の使用
AWS CLI を使用してパラメータグループを作成するには、create-cache-parameter-group コマン
ドを使用します。
次の例では、redis2.8 ファミリーをテンプレートとして使用して、myRedis28 という名前のパラメータ
グループを作成します。--cache-parameter-group-name、--cache-parameter-group-family、
--description の 3 つのパラメータがすべて必要です。
Linux, OS X, or Unix 用:
aws elasticache create-cache-parameter-group \
--cache-parameter-group-name myRedis28 \
--cache-parameter-group-family redis2.8 \
--description "My first cache parameter group"
Windows の場合:
aws elasticache create-cache-parameter-group ^
--cache-parameter-group-name myRedis28 ^
--cache-parameter-group-family redis2.8 ^
--description "My first cache parameter group"
このコマンドの出力は次のようになります。
CACHEPARAMETERGROUP
meter group
myRedis28
redis2.8
My first cache para
詳細については、create-cache-parameter-groupを参照してください。
パラメータグループを作成する ElastiCache API の使
用
ElastiCache API を使用したパラメータグループを作成するには、CreateCacheParameterGroup ア
クションを使用します。
次の例では、redis2.8 ファミリーをテンプレートとして使用して、myRedis28という名前のパラメータ
グループを作成します。CacheParameterGroupName、CacheParameterGroupFamily、Description
の 3 つのパラメータがすべて必要です。
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateCacheParameterGroup
&CacheParameterGroupFamily=redis2.8
&CacheParameterGroupName=myRedis28
&Description=My%20first%20cache%20parameter%20group
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
このアクションからの応答は、次のようになります。
API Version 2015-02-02
200
Amazon ElastiCache ユーザーガイド
パラメータグループを作成する ElastiCache API の使用
<CreateCacheParameterGroupResponse xmlns="http://elasticache.amazon
aws.com/doc/2013-06-15/">
<CreateCacheParameterGroupResult>
<CacheParameterGroup>
<CacheParameterGroupName>myRedis28</CacheParameterGroupName>
<CacheParameterGroupFamily>redis2.8</CacheParameterGroupFamily>
<Description>My first cache parameter group</Description>
</CacheParameterGroup>
</CreateCacheParameterGroupResult>
<ResponseMetadata>
<RequestId>d8465952-af48-11e0-8d36-859edca6f4b8</RequestId>
</ResponseMetadata>
</CreateCacheParameterGroupResponse>
詳細については、CreateCacheParameterGroupを参照してください。
API Version 2015-02-02
201
Amazon ElastiCache ユーザーガイド
パラメータグループを名前別に一覧表示する
パラメータグループを名前別に一覧表示する
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、パラメータグループを一覧
できます。
パラメータグループを名前別に一覧表示する AWS マ
ネジメントコンソールの使用
次の手順は、ElastiCache コンソールを使用してパラメータグループのリストを表示する方法を示しま
す。
ElastiCache コンソールを使用してパラメータグループを一覧するには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Parameter Groups] をクリックします。
使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。リスト内の
各行にはパラメータグループの名前、ファミリー、および説明が表示されます。
パラメータグループを名前別に一覧表示する AWS
CLI の使用
AWS CLI を使用してパラメータグループのリストを生成するには、
describe-cache-parameter-groups コマンドを使用します。パラメータグループの名前を指定し
た場合は、そのパラメータグループのみが一覧表示されます。パラメータグループの名前を指定しない
場合は、最大で --max-records のパラメータグループが一覧表示されます。いずれの場合も、パラ
メータグループの名前、ファミリー、および説明が表示されます。
次のサンプルコードは、パラメータグループ myRedis28 のリストです。
Linux, OS X, or Unix 用:
aws elasticache describe-cache-parameter-groups \
--cache-parameter-group-name myRedis28
Windows の場合:
aws elasticache describe-cache-parameter-groups ^
--cache-parameter-group-name myRedis28
このコマンドの出力は、名前の一覧、ファミリー、パラメータグループの説明となります。
CACHEPARAMETERGROUP
myRedis28
redis2.8
My Redis 2.8 parameter group
次のサンプルコードリストには、最大で 10 個のパラメータグループが一覧されています。
aws elasticache describe-cache-parameter-groups --max-records 10
このコマンドの出力は、名前の一覧、ファミリー、各パラメータグループの説明となります。
API Version 2015-02-02
202
Amazon ElastiCache ユーザーガイド
パラメータグループを名前別に一覧表示する ElastiCache
API の使用
CACHEPARAMETERGROUP
CACHEPARAMETERGROUP
myRedis28
myMem14
redis2.8
My Redis 2.8 parameter group
memcached1.4 My Memcached 1.4 parameter group
詳細については、describe-cache-parameter-groupsを参照してください。
パラメータグループを名前別に一覧表示する
ElastiCache API の使用
ElastiCache API を使用してパラメータグループのリストを生成するには、
DescribeCacheParameterGroups アクションを使用します。パラメータグループの名前を指定した
場合は、そのパラメータグループのみが一覧表示されます。パラメータグループの名前を指定しない場
合は、最大で MaxRecords のパラメータグループが一覧表示されます。いずれの場合も、パラメータ
グループの名前、ファミリー、および説明が表示されます。
次のサンプルコードは、パラメータグループ myRedis28 のリストです。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheParameterGroups
&CacheParameterGroupName=myRedis28
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
このアクションからの応答は、各グループパラメータの名前の一覧、ファミリー、説明となります。
<DescribeCacheParameterGroupsResponse xmlns="http://elasticache.amazon
aws.com/doc/2013-06-15/">
<DescribeCacheParameterGroupsResult>
<CacheParameterGroups>
<CacheParameterGroup>
<CacheParameterGroupName>myRedis28</CacheParameterGroupName>
<CacheParameterGroupFamily>redis 2.8</CacheParameterGroupFamily>
<Description>My Redis 2.8 parameter group</Description>
</CacheParameterGroup>
</CacheParameterGroups>
</DescribeCacheParameterGroupsResult>
<ResponseMetadata>
<RequestId>3540cc3d-af48-11e0-97f9-279771c4477e</RequestId>
</ResponseMetadata>
</DescribeCacheParameterGroupsResponse>
次のサンプルコードリストには、最大で 10 個のパラメータグループが一覧されています。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheParameterGroups
&MaxRecords=10
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
API Version 2015-02-02
203
Amazon ElastiCache ユーザーガイド
パラメータグループを名前別に一覧表示する ElastiCache
API の使用
このアクションからの応答は、各グループパラメータの名前の一覧、ファミリー、説明となります。
<DescribeCacheParameterGroupsResponse xmlns="http://elasticache.amazon
aws.com/doc/2013-06-15/">
<DescribeCacheParameterGroupsResult>
<CacheParameterGroups>
<CacheParameterGroup>
<CacheParameterGroupName>myRedis28</CacheParameterGroupName>
<CacheParameterGroupFamily>redis2.8</CacheParameterGroupFamily>
<Description>My Redis 2.8 parameter group</Description>
</CacheParameterGroup>
<CacheParameterGroup>
<CacheParameterGroupName>myMem14</CacheParameterGroupName>
<CacheParameterGroupFamily>memcached1.4</CacheParameterGroupFamily>
<Description>My Memcached 1.4 parameter group</Description>
</CacheParameterGroup>
</CacheParameterGroups>
</DescribeCacheParameterGroupsResult>
<ResponseMetadata>
<RequestId>3540cc3d-af48-11e0-97f9-279771c4477e</RequestId>
</ResponseMetadata>
</DescribeCacheParameterGroupsResponse>
詳細については、DescribeCacheParameterGroupsを参照してください。
API Version 2015-02-02
204
Amazon ElastiCache ユーザーガイド
パラメータグループの値を一覧する
パラメータグループの値を一覧する
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、パラメータグループのパラ
メータとその値を一覧できます。
パラメータグループの値を一覧する AWS マネジメン
トコンソールの使用
次の手順は、ElastiCache コンソールを使用してパラメータグループのパラメータと値を一覧する方法
を示しています。
ElastiCache コンソールを使用してパラメータグループのパラメータとその値を表示するには
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Parameter Groups] をクリックします。
使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。
パラメータグループ名の左側にあるボックスをクリックして、パラメータと値を一覧するパラメー
タグループを選択します。
パラメータと値は画面の下部に表示されます。パラメータの数によっては、スクロールして関心の
あるパラメータを検索するに必要がある場合もあります。
パラメータグループの値を一覧する AWS CLI の使用
AWS CLI を使用してパラメータグループのパラメータとその値の一覧を表示するには、
describe-cache-parameters コマンドを使用します。
次のサンプルコードは、パラメータグループ myRedis28 のすべてのパラメータと値リストを一覧しま
す。
Linux, OS X, or Unix 用:
aws elasticache describe-cache-parameters \
--cache-parameter-group-name myRedis28
Windows の場合:
aws elasticache describe-cache-parameters ^
--cache-parameter-group-name myRedis28
このコマンドの出力は次のようになります。
CACHEPARAMETER Parameter Name
Type Is Modifiable Minimum Version
CACHEPARAMETER backlog_queue_limit
false
1.4.5
CACHEPARAMETER binding_protocol
false
1.4.5
CACHEPARAMETER cas_disabled
API Version 2015-02-02
205
Parameter Value
1024
auto
0
Source
system
system
system
Data
integer
string
boolean
Amazon ElastiCache ユーザーガイド
パラメータグループの値を一覧する ElastiCache API の使
用
true
1.4.5
CACHEPARAMETER chunk_size
true
1.4.5
CACHEPARAMETER chunk_size_growth_factor
true
1.4.5
CACHEPARAMETER error_on_memory_exhausted
true
1.4.5
CACHEPARAMETER large_memory_pages
false
1.4.5
(...sample truncated...)
48
1.25
system
integer
system
float
0
system
boolean
0
system
boolean
詳細については、describe-cache-parametersを参照してください。
パラメータグループの値を一覧する ElastiCache API
の使用
ElastiCache API を使用してパラメータグループのパラメータとその値の一覧を表示するには、
DescribeCacheParameters アクションを使用します。
次のサンプルコードは、パラメータグループ myRedis28 のすべてのパラメータを一覧します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheParameters
&CacheParameterGroupName=myRedis28
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
このアクションからの応答は、次のようになります。この応答には短縮されています。
<DescribeCacheParametersResponse xmlns="http://elasticache.amazon
aws.com/doc/2013-06-15/">
<DescribeCacheParametersResult>
<CacheClusterClassSpecificParameters>
<CacheNodeTypeSpecificParameter>
<DataType>integer</DataType>
<Source>system</Source>
<IsModifiable>false</IsModifiable>
<Description>The maximum configurable amount of memory to use to store
items, in megabytes.</Description>
<CacheNodeTypeSpecificValues>
<CacheNodeTypeSpecificValue>
<Value>1000</Value>
<CacheClusterClass>cache.c1.medium</CacheClusterClass>
</CacheNodeTypeSpecificValue>
<CacheNodeTypeSpecificValue>
<Value>6000</Value>
<CacheClusterClass>cache.c1.xlarge</CacheClusterClass>
</CacheNodeTypeSpecificValue>
<CacheNodeTypeSpecificValue>
<Value>7100</Value>
<CacheClusterClass>cache.m1.large</CacheClusterClass>
API Version 2015-02-02
206
Amazon ElastiCache ユーザーガイド
パラメータグループの値を一覧する ElastiCache API の使
用
</CacheNodeTypeSpecificValue>
<CacheNodeTypeSpecificValue>
<Value>1300</Value>
<CacheClusterClass>cache.m1.small</CacheClusterClass>
</CacheNodeTypeSpecificValue>
...output omitted...
</CacheNodeTypeSpecificValues>
<AllowedValues>1-100000</AllowedValues>
<ParameterName>max_cache_memory</ParameterName>
<MinimumEngineVersion>1.4.5</MinimumEngineVersion>
</CacheNodeTypeSpecificParameter>
<CacheNodeTypeSpecificParameter>
<DataType>integer</DataType>
<Source>system</Source>
<IsModifiable>false</IsModifiable>
<Description>The number of memcached threads to use.</Description>
<CacheNodeTypeSpecificValues>
<CacheNodeTypeSpecificValue>
<Value>2</Value>
<CacheClusterClass>cache.c1.medium</CacheClusterClass>
</CacheNodeTypeSpecificValue>
<CacheNodeTypeSpecificValue>
<Value>8</Value>
<CacheClusterClass>cache.c1.xlarge</CacheClusterClass>
</CacheNodeTypeSpecificValue>
...output omitted...
</CacheNodeTypeSpecificValues>
<AllowedValues>1-8</AllowedValues>
<ParameterName>num_threads</ParameterName>
<MinimumEngineVersion>1.4.5</MinimumEngineVersion>
</CacheNodeTypeSpecificParameter>
</CacheClusterClassSpecificParameters>
<Parameters>
<Parameter>
<ParameterValue>1024</ParameterValue>
<DataType>integer</DataType>
<Source>system</Source>
<IsModifiable>false</IsModifiable>
<Description>The backlog queue limit.</Description>
<AllowedValues>1-10000</AllowedValues>
<ParameterName>backlog_queue_limit</ParameterName>
<MinimumEngineVersion>1.4.5</MinimumEngineVersion>
</Parameter>
<Parameter>
<ParameterValue>auto</ParameterValue>
<DataType>string</DataType>
<Source>system</Source>
<IsModifiable>false</IsModifiable>
<Description>Binding protocol.</Description>
<AllowedValues>auto,binary,ascii</AllowedValues>
<ParameterName>binding_protocol</ParameterName>
<MinimumEngineVersion>1.4.5</MinimumEngineVersion>
</Parameter>
API Version 2015-02-02
207
Amazon ElastiCache ユーザーガイド
パラメータグループを変更する
...output omitted...
</Parameters>
</DescribeCacheParametersResult>
<ResponseMetadata>
<RequestId>6d355589-af49-11e0-97f9-279771c4477e</RequestId>
</ResponseMetadata>
</DescribeCacheParametersResponse>
詳細については、DescribeCacheParametersを参照してください。
パラメータグループを変更する
Important
デフォルトのパラメータグループを変更することはできません。
パラメータグループでいくつかのパラメータを変更できます。これらのパラメータ値は、パラメータグ
ループに関連付けられるクラスターに適用されます。パラメータ値の変更がパラメータグループに適用
される場合の詳細については、「Memcached 固有のパラメータ (p. 212)」および「Redis 固有のパラ
メータ (p. 219)」を参照してください。
パラメータグループを変更する AWS マネジメントコ
ンソールの使用
次の手順に、ElastiCache コンソールを使用してパラメータ値を変更する方法を示します。
ElastiCache コンソールを使用してパラメータ値を変更するには
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Parameter Groups] をクリックします。
使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。
パラメータグループ名の左側にあるボックスをクリックして、変更するパラメータグループを選択
します。
パラメータグループのパラメータは、画面の下部に表示されます。すべてのパラメータを確認する
には、ページでリストを作成する必要があります。
4.
複数のパラメータを修正するには、[Edit Parameters] をクリックします。
[Edit Cache Parameter Group: ParameterGroupName] 画面が表示されます。
5.
[Edit Cache Parameter Group:] 画面で、値を変更するパラメータが見つかるまで、左または右の矢
印を使用してスクロールします。次に、そのパラメータの [Value] 列に新しい値を入力します。
6.
変更を保存するには、[Save Changes] をクリックします。
古い値に戻すには、[Cancel] をクリックします。
すべてのパラメータをデフォルト値にリセットするには、[Reset to Defaults] をクリックします。
API Version 2015-02-02
208
Amazon ElastiCache ユーザーガイド
パラメータグループを変更する AWS CLI の使用
パラメータグループを変更する AWS CLI の使用
AWS CLI を使用してパラメータ値を変更するには、modify-cache-parameter-group コマンドを使
用します。
次のサンプルコードは、reserved-memory の値を myRedis28 パラメータグループの 1024 に設定し
ます。
Linux, OS X, or Unix 用:
aws elasticache modify-cache-parameter-group \
--cache-parameter-group-name myRedis28 \
--parameter-name-values ParameterName=reserved-memory,ParameterValue=1024
Windows の場合:
aws elasticache modify-cache-parameter-group ^
--cache-parameter-group-name myRedis28 ^
--parameter-name-values ParameterName=reserved-memory,ParameterValue=1024
詳細については、modify-cache-parameter-groupを参照してください。
パラメータグループを変更する ElastiCache API の使
用
ElastiCache API を使用してパラメータグループのパラメータ値を変更するには、
ModifyCacheParameterGroup アクションを使用します。
次のサンプルコードは、reserved-memory の値をパラメータグループ myRedis28 の 1024 に設定し
ます。
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyCacheParameterGroup
&CacheParameterGroupName=myRedis28
?ParameterNameValues.member.1.ParameterName=reserved-memory
&ParameterNameValues.member.1.ParameterValue=1024
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
詳細については、ModifyCacheParameterGroupを参照してください。
API Version 2015-02-02
209
Amazon ElastiCache ユーザーガイド
パラメータグループを削除する
パラメータグループを削除する
ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してカスタムのパラメータグルー
プを削除できます。
パラメータグループがキャシュクラスターに関連付けられている場合は、パラメータグループを削除で
きません。デフォルトのパラメータグループも削除できません。
パラメータグループを削除する AWS マネジメントコ
ンソールの使用
次の手順では、ElastiCache コンソールを使用してパラメータグループを削除する方法を示します。
ElastiCache コンソールを使用してパラメータグループを削除するには
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Parameter Groups] をクリックします。
使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。
パラメータグループ名の左側にあるボックスをクリックして、削除するパラメータグループを選択
します。
4.
[Delete] ボタンがアクティブになります。
[Delete] をクリックします。
5.
[Delete Cache Parameter Groups] の確認画面が表示されます。
パラメータグループを削除するには、[Delete] をクリックします。
パラメータグループを保持するには、[Cancel] をクリックします。
パラメータグループを削除する AWS CLI の使用
AWS CLI を使用してパラメータグループを削除するには、delete-cache-parameter-group コマン
ドを使用します。削除するパラメータグループで、--cache-parameter-group-name で指定された
パラメータグループは、それに関連付けられるクラスターを持つことはできません。また、デフォルト
のパラメータグループも持つことはできません。
次のサンプルコードは、myRedis28 パラメータグループを削除します。
Linux, OS X, or Unix 用:
aws elasticache delete-cache-parameter-group \
--cache-parameter-group-name myRedis28
Windows の場合:
aws elasticache delete-cache-parameter-group ^
--cache-parameter-group-name myRedis28
詳細については、delete-cache-parameter-groupを参照してください。
API Version 2015-02-02
210
Amazon ElastiCache ユーザーガイド
パラメータグループを削除する ElastiCache API の使用
パラメータグループを削除する ElastiCache API の使
用
ElastiCache API を使用したパラメータグループを削除するには、DeleteCacheParameterGroup ア
クションを使用します。削除するパラメータグループで、CacheParameterGroupName で指定された
パラメータグループは、それに関連付けられるクラスターを持つことはできません。また、デフォルト
のパラメータグループも持つことはできません。
次のサンプルコードは、myRedis28 パラメータグループを削除します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DeleteCacheParameterGroup
&CacheParameterGroupName=myRedis28
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
詳細については、DeleteCacheParameterGroupを参照してください。
API Version 2015-02-02
211
Amazon ElastiCache ユーザーガイド
Memcached 固有のパラメータ
Memcached 固有のパラメータ
Memcached クラスターにパラメータグループを指定しない場合、デフォルトのパラメータグループ
(default.memcached1.4)が使用されます。デフォルトのパラメータグループ内のパラメータは、
どれも値を変更できません。ただし、いつでもカスタムパラメータグループを作成して、クラスターに
割り当てることができます。
トピック
• Memcached 1.4.24 で追加されたパラメータ (p. 212)
• Memcached 1.4.14 で追加されたパラメータ (p. 215)
• Memcached 1.4.5 では、パラメータがサポートされていました。 (p. 216)
• Memcached 接続オーバーヘッド (p. 217)
• Memcached のノードタイプ固有のパラメータ (p. 218)
Memcached 1.4.24 で追加されたパラメータ
Memcached 1.4.24 では、次のパラメータが追加でサポートされます。
名前
Default
タイプ
disable_flush_all
0 (無効) boolean
変更可
能
変更の
適用
説明
はい
起動時
flush_all を無効化するパラ
メータ -F を追加します。本
稼働インスタンスでフル
キャッシュフラッシュを実行
しない場合に便利です。
値: 0、1 (値が 0 の場合にユー
ザーは flush_all を実行で
きます。)
hash_algorithm
Jenkins
文字列
はい
API Version 2015-02-02
212
起動時
使用されるハッシュアルゴリ
ズム。使用可能な値: murmur3 と jenkins。
Amazon ElastiCache ユーザーガイド
Memcached 1.4.24 で追加されたパラメータ
名前
Default
タイプ
lru_crawler
0 (無効) boolean
変更可
能
はい
変更の
適用
説明
期限が切れた項目のスラブク
ラスを消去します。これによ
り、バックグラウンドで実行
されるプロセスの影響を小さ
くなります。現在は、手動コ
マンドを使用して Crawl を起
動する必要があります。
一時的に有効にするには、コ
マンドラインで lru_crawler enable を実行します。
lru_crawler 1,3,5 はスラ
ブクラス 1、3、5 をクロール
し、freelist に追加する期限切
れの項目を検索します。
値: 0、1
Note
コマンドラインで
lru_crawler を有
効にして、コマンド
ラインまたは次の再
起動で無効化される
までクローラを有効
にします。永続的に
有効にするには、パ
ラメータ値を変更す
る必要があります。
詳細については、
「パラメータグルー
プを変更す
る (p. 208)」を参照し
てください。
API Version 2015-02-02
213
Amazon ElastiCache ユーザーガイド
Memcached 1.4.24 で追加されたパラメータ
名前
Default
タイプ
変更可
能
変更の
適用
説明
再起動
後
etN
o
実
行
時
、に
コ
マ
ン
ド
ラ
イ
ン
か
ら
l
w
a
r
c
_
u
r
e
を
一
時
的
に
有
効
に
す
る
こ
と
が
で
き
ま
。す
詳
細
に
つ
い
て
、は
-e
「
D
」
ebi rcs
列
を
参
照
し
て
く
だ
API Version 2015-02-02
214
Amazon ElastiCache ユーザーガイド
Memcached 1.4.14 で追加されたパラメータ
名前
Default
タイプ
変更可
能
変更の
適用
説明
さ
。い
lru_maintainer
0 (無効) boolean
はい
起動時
容量に到達すると LRU 間で
項目をシャッフルするバック
グラウンドスレッドです。値:
0、1。
expirezero_does_not_evict
0 (無効) boolean
はい
起動時
lru_maintainer と併用す
ると、項目の期限切れ時間が
0 (期限切れなし) になりま
す。
Warning
これにより、期限切
れでクリアされる他
の項目をメモリから
排除して、メモリを
使用できるようにす
ることができます。
lru_maintainer を無視す
るよう設定できます。
Memcached 1.4.14 で追加されたパラメータ
Memcached 1.4.14 では、次のパラメータが追加でサポートされます。
Memcached 1.4.14 で追加されたパラメータ
名前
- eタイプ
D
t luaf
変更可能
変更の適用
説明
con6 1 integer
fig_max
いいえ
ElastiCache 設定エントリの最大数。
con63556 integer
fig_size_max
いいえ
設定エントリの最大サイズ(バイト単
位)。
hash6 1 integer
power_int
いいえ
ElastiCache ハッシュテーブルの初期サイ
ズは、2 の累乗で表されます。デフォルト
は 2^16、つまり 65536 のキーです。
max0 Boolean
conns_fast)eslaf(
はい
再起動後
API Version 2015-02-02
215
最大接続制限に達したときに新しい接続リ
クエストを処理する方法を変更します。こ
のパラメータを 0(ゼロ)に設定した場
合、新しい接続がバックログキューに追加
され、他の接続が終了するまで待機しま
す。パラメータを 1 に設定した場合、
ElastiCache はクライアントにエラーを送
信し、すぐに接続を終了します。
Amazon ElastiCache ユーザーガイド
Memcached 1.4.5 では、パラメータがサポートされていま
した。
名前
- eタイプ
D
t luaf
変更可能
変更の適用
説明
slab_auto- 0 integer
move
はい
再起動後
スラブ自動移動アルゴリズムを調整しま
す。このパラメータを 0(ゼロ)に設定し
た場合、自動移動アルゴリズムは無効で
す。1 に設定した場合、ElastiCache 低速
で控えめな手法を使用して、スラブを自動
的に移動します。2 に設定した場合、
キャッシュの削除が生じると必ず ElastiCache はスラブを積極的に移動します(こ
のモードは、テスト目的以外では推奨され
ません)。
slab_reas- 0 Boolean
)eslaf(
sign
はい
再起動後
スラブの再割り当てを有効または無効にし
ます。このパラメータを 1 に設定した場
合、「slabs reassign」コマンドを使用し
てメモリを手動で再割り当てできます。
Memcached 1.4.5 では、パラメータがサポートされ
ていました。
Memcached 1.4.5 では、さらに次のパラメータがサポートされています。
Memcached 1.4.5 で追加されたパラメータ
名前
- eタイプ
D
t luaf
変更可能
変更の適用
説明
back4201 integer
log_queue_limit
いいえ
バックログキューの制限。
bindo t ua 文字列
ing_protocol
いいえ
バインディングプロトコル。
cas_dis0 Boolean
)eslaf(
abled
はい
再起動後
1 (true) の場合、CAS (Check and Set) 操
作が無効になり、格納されている項目が消
費するバイト数は CAS が有効な場合より
8 バイト少なくなります。
chunk_size
8 4 integer
はい
再起動後
最も小さい項目のキー、値、およびフラグ
(バイト単位) に割り当てる領域の最小量
(バイト単位)。
chunk_size_growth_fact5or
2.1
はい
再起動後
連続する各 memcached チャンクのサイズ
を制御する増加係数。各チャンクは、前の
チャンクより
chunk_size_growth_factor 倍大きく
なります。
はい
再起動後
1(true)の場合、項目を格納するメモリ
がないと、memcached により項目が削除
されるのではなくエラーが返されます。
float
er0 Boolean
eslaf(
ror_on_memory_ex)hausted
API Version 2015-02-02
216
Amazon ElastiCache ユーザーガイド
Memcached 接続オーバーヘッド
名前
- eタイプ
D
t luaf
変更可能
変更の適用
説明
large_memory_pages 0 Boolean
)eslaf(
いいえ
1(true)の場合、ElastiCache は大量のメ
モリページを使用しようとします。
lock_down_paged_memory 0 Boolean
)eslaf(
いいえ
1(true)の場合、ElastiCache はすべての
ページ分割メモリをロックダウンします。
max_item_size
6758401 integer
はい
max_simul00056 integer
taneous_connections
いいえ
同時接続の最大数。
maxim0 Boolean
eslaf(
ize_core_file_lim)it
いいえ
1(true)の場合、ElastiCache はコアファ
イルの制限を最大限に高くします。
mem0 0 1 integer
cached_connections_overhead
はい
re0 2 integer
quests_per_event
いいえ
再起動後
再起動後
キャッシュに格納できる最も大きい項目の
サイズ(バイト単位)。
Memcached 接続および他のさまざまな
オーバーヘッド用に予約されるメモリの
量。このパラメータの詳細については、
「Memcached 接続オーバーヘッ
ド (p. 217)」を参照してください。
特定の接続のイベントごとの最大リクエス
ト数。この制限は、リソース不足を防ぐた
めに必要です。
Memcached 接続オーバーヘッド
各キャッシュノードで、キャッシュ項目の格納に使用可能なメモリは、ノード上の使用可能な合計メモ
リ (max_cache_memory パラメータに格納されています) から、接続や他のオーバーヘッドに使用され
ているメモリ (memcached_connections_overhead パラメータに格納されています) を引いた量で
す。たとえば、タイプが cache.m1.small のノードには 1300MB の max_cache_memory があるとし
ます。memcached_connections_overhead がデフォルト値の 100 MB の場合、Memcached プロセ
スはキャッシュ項目を保存するために 1200 MB 使用できます。
memcached_connections_overhead パラメータのデフォルト値は、ほとんどのユースケースに適し
ています。ただし、接続オーバーヘッドの割り当てに必要な量は、リクエストの頻度、ペイロードサイ
ズ、接続数など、複数の要因によって変化します。
アプリケーションのニーズにさらに合うように memcached_connections_overhead の値を変更で
きます。たとえば、memcached_connections_overhead パラメータの値を大きくすると、キャッ
シュ項目の格納に使用可能なメモリの量が減少し、接続オーバーヘッド用のバッファーが大きくなりま
すが、memcached_connections_overhead パラメータの値を小さくすると、キャッシュ項目を格納
するメモリが大きくなります。ただし、スワップの使用とパフォーマンス低下のリスクが高まる可能性
があります。スワップの使用やパフォーマンスの低下が観察される場合、
memcached_connections_overhead パラメータの値を大きくしてみてください。
Important
ノードタイプが cache.t1.micro の場合、memcached_connections_overhead の値は次
のように決まります。
API Version 2015-02-02
217
Amazon ElastiCache ユーザーガイド
Memcached のノードタイプ固有のパラメータ
• クラスターがデフォルトのパラメータグループを使用している場合、ElastiCache は
memcached_connections_overhead の値を 13 MB に設定します。
• 自身で作成したパラメータグループをクラスターが使用している場合、
memcached_connections_overhead の値を選択した値に設定できます。
Memcached のノードタイプ固有のパラメータ
ほとんどのパラメータの値は 1 つですが、一部のパラメータには、使用されているノードタイプによっ
て複数の値が設定されることがあります。次の表は、各ノードタイプの max_cache_memory パラメー
タと num_threads パラメータのデフォルト値を示しています。これらのパラメータの値は変更できま
せん。
ノードタイプ固有のパラメータ
Node Type
max_cache_memory
num-threads
cache.t1.micro
213
1
cache.t2.micro
555
1
cache.t2.small
1588
1
cache.t2.medium
3301
2
cache.m1.small
1300
1
cache.m1.medium
3350
1
cache.m1.large
7100
2
cache.m1.xlarge
14600
4
cache.m2.xlarge
16700
2
cache.m2.2xlarge
33800
4
cache.m2.4xlarge
68000
8
cache.m3.medium
2850
1
cache.m3.large
6200
2
cache.m3.xlarge
13600
4
cache.m3.2xlarge
28600
8
6600
8
cache.r3.large
13800
2
cache.r3.xlarge
29100
4
cache.r3.2xlarge
59600
8
cache.r3.4xlarge
120600
16
cache.r3.8xlarge
242600
32
cache.c1.xlarge
API Version 2015-02-02
218
Amazon ElastiCache ユーザーガイド
Redis 固有のパラメータ
Redis 固有のパラメータ
Redis クラスターにパラメータグループを指定しない場合、デフォルトのパラメータグループが使用さ
れます(default.redis2.6 または default.redis2.8)。デフォルトのパラメータグループのす
べてのパラメータの値は変更できません。ただし条件付きで変更可能なパラメータの値が両方のパラ
メータグループで同じである限り、独自のパラメータグループを作成して、それをクラスターに割り当
てることができます。
トピック
• Redis 2.8.24 で追加されたパラメータ (p. 219)
• Redis 2.8.23 で追加されたパラメータ (p. 220)
• Redis 2.8.22 で追加されたパラメータ (p. 221)
• Redis 2.8.21 で追加されたパラメータ (p. 222)
•
•
•
•
Redis 2.8.19 で追加されたパラメータ (p. 222)
Redis 2.8.6 で追加されたパラメータ (p. 222)
Redis 2.6.13 パラメータ (p. 225)
Redis のノードタイプ固有のパラメータ (p. 230)
Note
新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供している
ため、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache マネジメントコンソール
から廃止されました。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必要
がある場合は、AWS CLI または ElastiCache API を使用できます。
詳細については、以下のトピックを参照してください。
AWS CLI
ElastiCache API
キャッシュクラスターの作成 キャッシュクラスターの作成 キャッシュクラスターの作成
AWS CLI の使用 (p. 107)
ElastiCache API の使用 (p. 107)
キャッシュクラスターの変更 キャッシュクラスターの変更 キャッシュクラスターの変更
AWS CLI の使用 (p. 111)
ElastiCache API の使用 (p. 111)
レプリケーショングループの 利用可能な Redis キャッシュ
作成
クラスターがない場合のレプ
リケーショングループの作成
AWS CLI の使用 (p. 148)
利用可能な Redis キャッシュ
クラスターがない場合のレプ
リケーショングループの作成
ElastiCache API の使用 (p. 150)
レプリケーショングループの レプリケーショングループの レプリケーショングループの
変更
変更 AWS CLI の使用 (p. 158) 変更 ElastiCache API の使
用 (p. 158)
Redis 2.8.24 で追加されたパラメータ
Redis 2.8.24 では、追加でサポートされているパラメータはありません。
API Version 2015-02-02
219
Amazon ElastiCache ユーザーガイド
Redis 2.8.23 で追加されたパラメータ
Redis 2.8.23 で追加されたパラメータ
Redis 2.8.23 では、以下のパラメータが追加でサポートされます。
名前
closeonslavewrite
Default
はい
タイプ
変更可能
文字列
(はい/い
いえ)
はい
変更の適
用
即時
説明
有効にした場合、読み取り専用レプ
リカに書き込もうとするクライアン
トの接続は切断されます。
close-on-slave-write
close-on-slave-write パラメータが ElastiCache に導入されたことで、リードレプリカがプライマ
リクラスターに昇格するために両者間でロールが入れ替わるときのキャッシュの応答を、より細かく制
御できるようになりました。
リードレプリカクラスターが、マルチ AZ 対応レプリケーショングループのフェイルオーバー以外の理
由で、プライマリに昇格する場合、クライアントは引き続きエンドポイント A に書き込もうとします。
エンドポイント A はこの時点でリードレプリカのエンドポイントであるため、これらの書き込みは失
敗します。これは、close-on-slave-write が ElastiCache に導入される前の Redis に対する動作で
あり、close-on-slave-write を無効にした場合の動作です。
API Version 2015-02-02
220
Amazon ElastiCache ユーザーガイド
Redis 2.8.22 で追加されたパラメータ
close-on-slave-write が有効になっていると、クライアントがリードレプリカに書き込もうとする
たびに、クラスターへのクライアントの接続は切断されます。アプリケーションロジックは、切断を検
出し、DNS テーブルを確認して、プライマリエンドポイント(この時点でエンドポイント B になって
いる)に再接続する必要があります。
close-on-slave-write
を無効にする理由
close-on-slave-write を無効にしてクラスターへの書き込みが失敗する場合、
close-on-slave-write を無効にする理由を考えてみます。
前述したように、close-on-slave-write が有効になっていると、クライアントがリードレプリカに
書き込もうとするたびに、クラスターへのクライアントの接続は切断されます。ノードへの新たな接続
が確立されるまでに時間がかかるため、レプリカへの書き込みリクエストの結果としての切断と再接続
は、その新たな接続が確立されるまで同じ接続を使用する読み取りリクエストのレイテンシーにも影響
を与えます。したがって、アプリケーションが特に読み取り過多だったり、レイテンシーの影響を非常
に受けやすかったりする場合、読み取りパフォーマンスが落ちないように、クライアントは接続された
ままにするほうが良いことがあります。
Redis 2.8.22 で追加されたパラメータ
Redis 2.8.22 では、追加でサポートされているパラメータはありません。
API Version 2015-02-02
221
Amazon ElastiCache ユーザーガイド
Redis 2.8.21 で追加されたパラメータ
Important
Redis バージョン 2.8.22 から、プライマリクラスターとレプリカクラスターに
repl-backlog-size が適用されるようになりました。
次のパラメータはサポートされなくなりました。
• appendonly
• appendfsync
Redis 2.8.21 で追加されたパラメータ
Redis 2.8.21 では、追加でサポートされているパラメータはありません。
Redis 2.8.19 で追加されたパラメータ
Redis 2.8.19 では、追加でサポートされているパラメータはありません。
Redis 2.8.6 で追加されたパラメータ
Redis 2.8.6 では、次のパラメータが追加でサポートされます。
名前
minslavesmax-lag
Default
タイプ
10
変更可能
integer
はい
変更の適
用
即時
説明
プライマリノードからリードレプリ
カから ping リクエストを受け取る必
要がある秒数。この時間が経過して
もプライマリが ping を受け取らない
場合、レプリカは使用可能と見なさ
れなくなります。使用可能なレプリ
カの数が min-slaves-to-write を下回っ
た場合、プライマリはその時点で書
き込みの受け入れを停止します。
このパラメータか min-slaves-to-write
のどちらかが 0 の場合、レプリカが
使用できない場合でもプライマリノー
ドは常に書き込みリクエストを受け
入れます。
minslavesto-write
0
integer
はい
即時
プライマリノードがクライアントか
らの書き込みを受け入れるために、
使用可能でなければならないリード
レプリカの数。使用可能なレプリカ
の数がこの数を下回った場合、プラ
イマリノードは書き込みリクエスト
を受け入れなくなります。
このパラメータか min-slaves-max-lag
のどちらかが 0 の場合、レプリカが
使用できない場合でもプライマリノー
ドは常に書き込みリクエストを受け
入れます。
API Version 2015-02-02
222
Amazon ElastiCache ユーザーガイド
Redis 2.8.6 で追加されたパラメータ
名前
Default
notifykeyspaceevents
(空の文字
列)
タイプ
変更可能
文字列
はい
変更の適
用
即時
説明
Redis はクライアントに通知できる
keyspace のタイプ。各イベントタイ
プは 1 文字で表されます。
• K - Keyspace イベント。プレフィッ
クス __keyspace@<db>__ を付け
て発行
• E - Key-event イベント。プレ
フィックス __keyevent@<db>__ を
付けて発行
• g - 固有でない汎用コマンド
(DEL、EXPIRE、RENAME など)
•
•
•
•
•
•
$ - 文字列コマンド
l - リストコマンド
s - 設定コマンド
h - ハッシュコマンド
z - ソート対象セットコマンド
x - 期限切れのイベント(キーの期
限が切れるたびにイベントが生成
されます)
• e - 削除されたイベント
(maxmemory に達したためにキー
が削除された場合にイベントが生
成されます)
• A - g$lshzxe のエイリアス
これらのイベントタイプは自由に組
み合わせることができます。たとえ
ば、AKE は Redis がすべてのイベン
トタイプの通知を発行できることを
意味します。
上に挙げられた文字以外の文字を使
用しないでください。使用しようと
すると、エラーメッセージが表示さ
れます。
デフォルトでは、このパラメータは
空の文字列に設定されます。これは、
keyspace イベント通知が無効である
ことを意味します。
API Version 2015-02-02
223
Amazon ElastiCache ユーザーガイド
Redis 2.8.6 で追加されたパラメータ
名前
replbacklogsize
Default
タイプ
1048576
変更可能
integer
はい
変更の適
用
即時
説明
プライマリノードバックログバッ
ファーのサイズ (バイト単位)。バック
ログは、プライマリノードのデータ
の更新を記録するために使用されま
す。リードレプリカは、プライマリ
に接続すると、部分同期 (psync) の
実行を試みます。このとき、プライ
マリノードに追いつくことができる
ようにバックログからデータを適用
します。psync に失敗した場合は、
完全同期が必要です。
このパラメータの最小値は 16384 で
す。
Note
Redis 2.8.22 から、このパラ
メータはプライマリクラス
ターとリードレプリカに適用
されます。
replbacklogttl
3600
integer
はい
即時
プライマリノードがバックログバッ
ファーを保持する秒数。最後のレプ
リカノードが切断されたときから、
バックログ内のデータは replbacklog-ttl の期限が切れるまで変
更されません。レプリカがこの時間
内にプライマリに接続されない場合、
プライマリはバックログバッファー
を解放します。レプリカが最終的に
再接続した場合、プライマリとの完
全同期を実行する必要があります。
このパラメータを 0 に設定した場合、
バックログバッファーは解放されま
せん。
repltimeout
60
integer
はい
即時
次のタイムアウト時間(秒単位)を
表します。
• 同期中の一括データ転送(リード
レプリカの観点から)
• プライマリノードのタイムアウト
(レプリカの観点から)
• レプリカのタイムアウト(プライ
マリノードの観点から)
API Version 2015-02-02
224
Amazon ElastiCache ユーザーガイド
Redis 2.6.13 パラメータ
Redis 2.6.13 パラメータ
Redis バージョン 2.6.13 は、ElastiCache でサポートされた Redis の最初のバージョンです。次の表
は、ElastiCache によりサポートされている Redis 2.6.13 パラメータを示しています。
名前
activerehashing
Default
はい
タイプ
変更可能
文字列
(はい/い
いえ)
条件付き
変更の適
用
説明
再起動後
Redis のアクティブな再ハッシュ機能
を有効にするかどうかを決定します。
主要なハッシュテーブルは、1 秒あた
り 10 回再ハッシュされます。再ハッ
シュ操作ごとに 1 ミリ秒の CPU が消
費されます。
Note
このパラメータは条件付きで
変更可能です。これは、クラ
スターに関連付けられたパラ
メータグループのインスタン
スがない限り変更できます。
appendonly
いいえ
文字列
はい
即時
Redis の AOF(Append Only File)機
能を有効または無効にします。AOF
は、キャッシュ内のデータを変更す
る Redis コマンドをキャプチャし、
特定のノード障害からの復元に使用
されます。
デフォルト値は no です(AOF が無
効であることを意味します)。AOF
を有効にするには、このパラメータ
を yes に設定します。
詳細については、「障害の軽
減 (p. 55)」を参照してください。
Note
AOF (Append Only File) は、
cache.t1.micro ノードおよび
cache.t2* ノードではサポー
トされません。このタイプの
ノードの場合、appendonly
パラメータ値は無視されま
す。
Note
マルチ AZ レプリケーション
グループでは、AOF は許可
されません。
API Version 2015-02-02
225
Amazon ElastiCache ユーザーガイド
Redis 2.6.13 パラメータ
名前
appendfsync
Default
タイプ
everysec
変更可能
文字列
はい
変更の適
用
即時
説明
AOF 出力バッファーがディスクに書
き込まれる頻度を制御します。
• no - バッファーは必要に応じてディ
スクにフラッシュされます。
• everysec - バッファーは 1 秒に 1
回フラッシュされます。これがデ
フォルト値です。
• always - バッファーは、キャッシュ
が変更されるたびにフラッシュさ
れます。
clientoutputbufferlimitnormalhardlimit
0
integer
はい
即時
クライアントの出力バッファーが指
定されたバイト数に達した場合、ク
ライアントの接続が切断されます。
デフォルトは 0 です(ハード制限な
し)。
clientoutputbufferlimitnormalsoftlimit
0
integer
はい
即時
クライアントの出力バッファーが指
定されたバイト数に達した場合、ク
ライアントの接続が切断されますが、
この条件が client-output-buffer-limit-normal-soft-seconds
の間存続した場合に限ります。デフォ
ルトは 0 です(ソフト制限なし)。
clientoutputbufferlimitnormalsoftseconds
0
integer
はい
即時
クライアントの出力バッファーが、
この秒数より長い時間 client-output-buffer-limit-normal-softlimit バイトのままの場合、クライ
アントの接続が切断されます。デフォ
ルトは 0 です(時間制限なし)。
clientoutputbufferlimitpubsubhardlimit
33554432
integer
はい
即時
Redis 発行/サブスクライブクライア
ントの場合: クライアントの出力バッ
ファーが指定されたバイト数に達し
た場合、クライアントの接続が切断
されます。
clientoutputbufferlimitpubsubsoftlimit
8388608
integer
はい
即時
Redis 発行/サブスクライブクライア
ントの場合: クライアントの出力バッ
ファーが指定されたバイト数に達し
た場合、クライアントの接続が切断
されますが、この条件が clientoutput-buffer-limit-pubsubsoft-seconds の間存続した場合に
限ります。
API Version 2015-02-02
226
Amazon ElastiCache ユーザーガイド
Redis 2.6.13 パラメータ
名前
Default
タイプ
変更可能
変更の適
用
即時
説明
clientoutputbufferlimitpubsubsoftseconds
60
integer
はい
clientoutputbufferlimitslavehardlimit
値について
は、Redis
のノードタ
イプ固有の
パラメー
タ (p. 230)を
参照してく
ださい。
integer
いいえ
Redis リードレプリカの場合: クライ
アントの出力バッファーが指定され
たバイト数に達した場合、クライア
ントの接続が切断されます。
clientoutputbufferlimitslavesoftlimit
値について
は、Redis
のノードタ
イプ固有の
パラメー
タ (p. 230)を
参照してく
ださい。
integer
いいえ
Redis リードレプリカの場合: クライ
アントの出力バッファーが指定され
たバイト数に達した場合、クライア
ントの接続が切断されますが、この
条件が client-output-bufferlimit-slave-soft-seconds の間
存続した場合に限ります。
clientoutputbufferlimitslavesoftseconds
60
integer
いいえ
Redis リードレプリカの場合: クライ
アントの出力バッファーが、この秒
数より長い時間 client-outputbuffer-limit-slave-soft-limit
バイトのままの場合、クライアント
の接続が切断されます。
databases
16
integer
条件付き
再起動後
Redis 発行/サブスクライブクライア
ントの場合: クライアントの出力バッ
ファーがこの秒数より長い間 client-output-buffer-limit-pubsub-soft-limit バイトのままの場
合、クライアントの接続が切断され
ます。
論理パーティションデータベース数
は分割されます。この値を低く抑え
ることをお勧めします。
Note
このパラメータは条件付きで
変更可能です。これは、クラ
スターに関連付けられたパラ
メータグループのインスタン
スがない限り変更できます。
hashmaxziplistentries
512
integer
はい
即時
API Version 2015-02-02
227
ハッシュに使用されるメモリ量を決
定します。エントリが指定された数
より少ないハッシュは、領域を節約
する特殊なエンコードを使用して格
納されます。
Amazon ElastiCache ユーザーガイド
Redis 2.6.13 パラメータ
名前
Default
タイプ
変更可能
変更の適
用
説明
hashmaxziplistvalue
64
integer
はい
即時
ハッシュに使用されるメモリ量を決
定します。エントリが指定されたバ
イト数より小さいハッシュは、領域
を節約する特殊なエンコードを使用
して格納されます。
listmaxziplistentries
512
integer
はい
即時
リストに使用されるメモリ量を決定
します。エントリが指定された数よ
り少ないリストは、領域を節約する
特殊なエンコードを使用して格納さ
れます。
listmaxziplistvalue
64
integer
はい
即時
リストに使用されるメモリ量を決定
します。エントリが指定されたバイ
ト数より小さいリストは、領域を節
約する特殊なエンコードを使用して
格納されます。
5000
integer
いいえ
luatimelimit
ElastiCache がスクリプトを停止する
アクションを実行までの Lua スクリ
プトの最大実行時間(ミリ秒単位)。
lua-time-limit を超過した場合、
すべての Redis コマンドによりエラー
が ____-BUSY の形式で返されます。
この状態により、多く必須 Redis 操
作との干渉が発生する可能性がある
ため、ElastiCache はまず SCRIPT
KILL コマンドを発行します。これに
失敗すると、ElastiCache は強制的に
Redis を再開します。
maxclients
maxmemorypolicy
65000
integer
いいえ
volatile-lru
文字列
はい
一度に接続できるクライアントの最
大数。
即時
メモリの最大使用量に到達したとき
のキーの削除ポリシー。
有効な値は次のとおりです。volatile-lru | allkeys-lru |
volatile-random | allkeysrandom | volatile-ttl | noeviction
maxmemorysamples
3
integer
はい
即時
API Version 2015-02-02
228
LRU(least-recently-used)と TTL
(time-to-live)の計算の場合、このパ
ラメータはチェックするキーのサン
プルサイズを表します。デフォルト
で、Redis は 3 個のキーを選択し、最
も長い間使用されていないキーを使
用します。
Amazon ElastiCache ユーザーガイド
Redis 2.6.13 パラメータ
名前
set-maxintsetentries
Default
タイプ
変更可能
変更の適
用
説明
512
integer
はい
即時
特定のタイプのセットに使用される
メモリの量を決定します(64 ビット
符号付き整数の範囲に収まる基数 10
の整数である文字列)。エントリが
指定された数より少ないセットは、
領域を節約する特殊なエンコードを
使用して格納されます。
0
integer
はい
即時
非キャッシュ用に予約されたメモリ
の量(バイト単位)。デフォルトで
は、Redis キャッシュは、ノードの
maxmemory を消費するまで大きくな
ります(「Redis のノードタイプ固有
のパラメータ (p. 230)」を参照)。こ
の場合、メモリページングが大量に
行われるため、ノードパフォーマン
スが低下する可能性が高くなります。
reserved-memory を使用する場合、
使用可能なメモリの一部を Redis 以
外の用途に確保しておいて、ページ
ングの量を減らすことができます。
reservedmemory
たとえば、maxmemory が 900MB の
cache.m1.small ノードがあるとしま
す。reserved-memory を 200 MB
に設定した場合、Redis はこのメモリ
を消費しなくなります。代わりに、
この 200 MB は、キャッシュノード
のオペレーティングシステムと他の
バックグラウンドプロセス用に予約
されます。
リードレプリカ、AOF (Append-Only
File)、または多くのメモリを消費する
他の Redis 機能を使用している場合
は、reserved-memory パラメータ
を大きくすることを検討してくださ
い。
Note
このパラメータは ElastiCache に固有であり、標準的
な Redis ディストリビュー
ションには含まれていませ
ん。
slaveallowchaining
いいえ
文字列
いいえ
API Version 2015-02-02
229
Redis のリードレプリカは自身のリー
ドレプリカを持つことができるかど
うかを決定します。
Amazon ElastiCache ユーザーガイド
Redis のノードタイプ固有のパラメータ
名前
Default
タイプ
変更可能
変更の適
用
説明
slowloglogslowerthan
10000
integer
はい
即時
Redis の Slow Log 機能によりコマン
ドを記録する最大実行時間(マイク
ロ秒単位)。
slowlogmax-len
128
integer
はい
即時
Redis Slow Log の最大長。
tcpkeepalive
0
integer
はい
即時
0 以外の値(N)に設定した場合、接
続が維持されていることを確認する
ためにノードクライアントが N 秒ご
とにポーリングされます。デフォル
ト設定の 0 では、このようなポーリ
ングが行われません。
timeout
0
integer
はい
即時
0 以外の値(N)に設定した場合、ク
ライアントが N 秒間アイドル状態に
なると、ノードが接続を終了します。
デフォルト設定の 0 では、ノードは
アイドル状態のクライアントを切断
しません。
zsetmaxziplistentries
128
integer
はい
即時
ソート対象セットに使用されるメモ
リ量を決定します。要素が指定され
た数より少ないソート対象セットは、
領域を節約する特殊なエンコードを
使用して格納されます。
zsetmaxziplistvalue
64
integer
はい
即時
ソート対象セットに使用されるメモ
リ量を決定します。エントリが指定
されたバイト数より小さいソート対
象セットは、領域を節約する特殊な
エンコードを使用して格納されます。
Note
Redis 2.6.13 クラスターにパラメータグループを指定しない場合、デフォルトのパラメータグ
ループ(default.redis2.6)が使用されます。デフォルトのパラメータグループ内のパラ
メータは、どれも値を変更できません。ただし、いつでもカスタムパラメータグループを作成
して、クラスターに割り当てることができます。
Redis のノードタイプ固有のパラメータ
ほとんどのパラメータの値は 1 つですが、一部のパラメータには、使用されているノードタイプによっ
て複数の値が設定されることがあります。次の表は、各ノードタイプの maxmemory パラメータのデ
フォルト値を示しています。maxmemory の値は、ノードでデータやその他の用途に使用できる最大バ
イト数です。
API Version 2015-02-02
230
Amazon ElastiCache ユーザーガイド
Redis のノードタイプ固有のパラメータ
Note
maxmemory パラメータは変更できません。
Node Type
maxmemory
client-outputclient-outputbuffer-limitbuffer-limitslave-hard-limit slave-soft-limit
cache.t1.micro
142606336
14260633
14260633
cache.t2.micro
581959680
58195968
58195968
cache.t2.small
1665138688
166513868
166513868
cache.t2.medium
3461349376
346134937
346134937
943718400
943718400
943718400
cache.m1.medium
3093299200
309329920
309329920
cache.m1.large
7025459200
702545920
702545920
cache.m1.xlarge
14889779200
1488977920
1488977920
cache.m2.xlarge
17091788800
1709178880
1709178880
cache.m2.2xlarge
35022438400
3502243840
3502243840
cache.m2.4xlarge
70883737600
7088373760
7088373760
cache.m3.medium
2988441600
309329920
309329920
cache.m3.large
6501171200
650117120
650117120
cache.m3.xlarge
14260633600
1426063360
1426063360
cache.m3.2xlarge
29989273600
2998927360
2998927360
6501171200
650117120
650117120
cache.r3.large
14470348800
1468006400
1468006400
cache.r3.xlarge
30513561600
3040870400
3040870400
cache.r3.2xlarge
62495129600
6081740800
6081740800
cache.r3.4xlarge
126458265600
12268339200
12268339200
cache.r3.8xlarge
254384537600
24536678400
24536678400
cache.m1.small
cache.c1.xlarge
Note
T2 インスタンスでは、Redis バックアップ/復元はサポートされません。
t1 および t2 のインスタンスは、Redis AOF またはマルチ AZ をサポートしていません。
API Version 2015-02-02
231
Amazon ElastiCache ユーザーガイド
サブネットおよびサブネットグルー
プ
Abstract
ElastiCache リソースへのアクセスコントロールの方法を示します。
サブネットグループは、Amazon Virtual Private Cloud(VPC)環境で実行しているクラスターに対して
指定できるサブネット(通常はプライベート)の集合です。
Amazon VPC でクラスターを作成する場合は、キャッシュサブネットグループを指定する必要があり
ます。ElastiCache はそのキャッシュサブネットグループを使用して、そのサブネット内でキャッシュ
ノードに関連付けるサブネットおよび IP アドレスを選択します。
このセクションでは、サブネットおよびサブネットグループを作成し活用して、ElastiCache リソース
へのアクセスを管理する方法を扱います。
Amazon VPC 環境でのキャッシュサブネットグループの使用方法の詳細については、「ステップ 4: ア
クセスを許可する (p. 23)」を参照してください。
トピック
• キャッシュサブネットグループの作成 (p. 233)
• キャッシュクラスターへのキャッシュサブネットグループの割り当て (p. 236)
• キャッシュサブネットグループの変更 (p. 236)
• サブネットグループの削除 (p. 238)
API Version 2015-02-02
232
Amazon ElastiCache ユーザーガイド
キャッシュサブネットグループの作成
キャッシュサブネットグループの作成
新しいキャッシュサブネットグループを作成する場合は、使用可能な IP アドレス数に注意してくださ
い。サブネットの空き IP アドレス数が非常に少ない場合は、キャッシュクラスターに追加できるキャッ
シュノード数が制約される可能性があります。この問題を解決するために、クラスターのアベイラビリ
ティーゾーンで十分な数の IP アドレスを使用できるように、キャッシュサブネットグループに 1 つ以
上のサブネットを割り当てることができます。その後で、クラスターにキャッシュノードを追加できま
す。
以下の手順では、AWS マネジメントコンソールを使用した、AWS CLI、ElastiCache API により、
mycachesubnetgroup というキャッシュサブネットグループを作成する方法を示します。
キャッシュサブネットグループの作成 AWS マネジメ
ントコンソールの使用
次の手順では、AWS マネジメントコンソールを使用した というキャッシュサブネットグループを作成
する方法を示します。
キャッシュサブネットグループを作成する方法 AWS マネジメントコンソールの使用
1.
2.
3.
4.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ナビゲーションリストで [Cache Subnet Groups] を選択します。
[Create Cache Subnet Group] を選択します。
Create Cache Subnet Group ウィザードで、次の操作を行います。すべての設定が正しいことを確
認したら、[Yes, Create] を選択します。
a.
b.
c.
d.
5.
[Name] ボックスにキャッシュサブネットグループの名前を入力します。
[Description] ボックスにキャッシュサブネットグループの説明を入力します。
[VPC ID] ボックスで、作成した Amazon VPC を選択します。
[Availability Zone] および [Subnet ID] リストで、プライベートサブネットのアベイラビリティー
ゾーンと ID を選択し、[Add] を選択します。
表示された確認メッセージで、[Close] を選択します。
API Version 2015-02-02
233
Amazon ElastiCache ユーザーガイド
キャッシュサブネットグループの作成 AWS CLI の使用
ElastiCache コンソールの [Cache Subnet Groups] リストに新しいキャッシュサブネットグループが表
示されます。ウィンドウの下部で、サブネットグループを選択して、ウィンドウの下部で詳細(このグ
ループに関連付けられているすべてのサブネットなど)を確認します。
キャッシュサブネットグループの作成 AWS CLI の使
用
コマンドプロンプトで、create-cache-subnet-group コマンドを使用してキャッシュサブネットグ
ループを作成します。
Linux, OS X, or Unix 用:
aws elasticache create-cache-subnet-group \
--cache-subnet-group-name mycachesubnetgroup \
--cache-subnet-group-description "Testing" \
--subnet-ids subnet-53df9c3a
Windows の場合:
aws elasticache create-cache-subnet-group ^
--cache-subnet-group-name mycachesubnetgroup ^
--cache-subnet-group-description "Testing" ^
--subnet-ids subnet-53df9c3a
このコマンドでは、次のような出力が生成されます。
SUBNETGROUP mycachesubnetgroup Testing
SUBNET subnet-53df9c3a us-west-2b
vpc-5a2e4c35
詳細については、AWS CLI トピックの「create-cache-subnet-group」を参照してください。
キャッシュサブネットグループの作成 ElastiCache
API の使用
ElastiCache API を使用して、以下のパラメータを指定して CreateCacheSubnetGroup を呼び出しま
す:
• CacheSubnetGroupName=mycachesubnetgroup
• CacheSubnetGroupDescription==Testing
• SubnetIds.member.1=subnet-53df9c3a
API Version 2015-02-02
234
Amazon ElastiCache ユーザーガイド
キャッシュサブネットグループの作成 ElastiCache API の
使用
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=CreateCacheSubnetGroup
&CacheSubnetGroupDescription=Testing
&CacheSubnetGroupName=mycachesubnetgroup
&SignatureMethod=HmacSHA256
&SignatureVersion=4
&SubnetIds.member.1=subnet-53df9c3a
&Timestamp=20141201T220302Z
&Version=2014-12-01
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=<credential>
&X-Amz-Date=20141201T220302Z
&X-Amz-Expires=20141201T220302Z
&X-Amz-Signature=<signature>
&X-Amz-SignedHeaders=Host
API Version 2015-02-02
235
Amazon ElastiCache ユーザーガイド
キャッシュクラスターへのキャッシュサブネットグループ
の割り当て
キャッシュクラスターへのキャッシュサブネット
グループの割り当て
キャッシュサブネットグループを作成したら、Amazon VPC でキャッシュクラスターを起動できます。
詳細については、「Amazon VPC でのキャッシュクラスターの作成 (p. 250)」を参照してください。
キャッシュサブネットグループの変更
キャッシュサブネットグループの説明を変更することや、キャッシュサブネットグループに関連付けら
れたサブネット ID のリストを変更することができます。キャッシュクラスターが現在サブネットを使
用している場合、キャッシュサブネットグループからそのサブネット ID を削除することはできません。
次の手順では、キャッシュサブネットグループを変更する方法を示します。
サブネットグループの変更 AWS マネジメントコン
ソールの使用
サブネットグループを変更するには
1.
2.
3.
4.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Subnet Groups] を選択します。
キャッシュサブネットグループのリストで、変更するグループを選択します。
ElastiCache コンソールの下部で、キャッシュサブネットグループの説明またはサブネット ID の
リストを変更します。変更を保存するには [Save] を選択します。
サブネットグループの変更 AWS CLI の使用
コマンドプロンプトで、modify-cache-subnet-group コマンドを使用してキャッシュサブネットグ
ループを変更します。
Linux, OS X, or Unix 用:
aws elasticache modify-cache-subnet-group \
--cache-subnet-group-name mycachesubnetgroup \
--cache-subnet-group-description "New description" \
--subnet-ids subnet-42df9c3a,subnet-48fc21a9
Windows の場合:
aws elasticache modify-cache-subnet-group ^
--cache-subnet-group-name mycachesubnetgroup ^
--cache-subnet-group-description "New description" ^
--subnet-ids subnet-42df9c3a,subnet-48fc21a9
このコマンドでは、次のような出力が生成されます。
API Version 2015-02-02
236
Amazon ElastiCache ユーザーガイド
サブネットグループの変更 ElastiCache API の使用
SUBNETGROUP mycachesubnetgroup Testing
SUBNET subnet-42df9c3a us-west-2b
SUBNET subnet-48fc21a9 us-west-2b
vpc-5a2e4c35
詳細については、AWS CLI トピックの「modify-cache-subnet-group」を参照してください。
サブネットグループの変更 ElastiCache API の使用
以下のパラメータを指定して、ElastiCache API を使用して ModifyCacheSubnetGroup を呼び出しま
す。
• CacheSubnetGroupName=mycachesubnetgroup
• 変更したいその他のパラメータ値。この例では、
CacheSubnetGroupDescription=New%20description を使用してキャッシュサブネットグルー
プの説明を変更します。
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyCacheSubnetGroup
&CacheSubnetGroupDescription=New%20description
&CacheSubnetGroupName=mycachesubnetgroup
&SubnetIds.member.1=subnet-42df9c3a
&SubnetIds.member.2=subnet-48fc21a9
&SignatureMethod=HmacSHA256
&SignatureVersion=4
&Timestamp=20141201T220302Z
&Version=2014-12-01
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=<credential>
&X-Amz-Date=20141201T220302Z
&X-Amz-Expires=20141201T220302Z
&X-Amz-Signature=<signature>
&X-Amz-SignedHeaders=Host
Note
新しいキャッシュサブネットグループを作成する場合は、使用可能な IP アドレス数に注意し
てください。サブネットの空き IP アドレス数が非常に少ない場合は、キャッシュクラスター
に追加できるキャッシュノード数が制約される可能性があります。この問題を解決するため
に、クラスターのアベイラビリティーゾーンで十分な数の IP アドレスを使用できるように、
キャッシュサブネットグループに 1 つ以上のサブネットを割り当てることができます。その後
で、クラスターにキャッシュノードを追加できます。
API Version 2015-02-02
237
Amazon ElastiCache ユーザーガイド
サブネットグループの削除
サブネットグループの削除
キャッシュサブネットグループが必要ではなくなったと判断した場合、キャッシュサブネットグループ
を削除できます。キャッシュサブネットグループがキャッシュクラスターで現在使用されている場合、
キャッシュサブネットグループを削除できません。
次の手順では、キャッシュサブネットグループを削除する方法を示します。
サブネットグループの削除 AWS マネジメントコン
ソールの使用
サブネットグループを削除するには
1.
2.
3.
4.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインで [Cache Subnet Groups] を選択します。
キャッシュサブネットグループのリストで、削除する項目を選択し、[Delete] を選択します。
この操作を確認するよう求められた場合は、[Yes, Delete] を選択します。
サブネットグループの削除 AWS CLI の使用
コマンドプロンプトで、delete-cache-subnet-group コマンドを使用してキャッシュサブネットグ
ループを削除します。
Linux, OS X, or Unix 用:
aws elasticache delete-cache-subnet-group \
--cache-subnet-group-name mycachesubnetgroup
Windows の場合:
aws elasticache delete-cache-subnet-group ^
--cache-subnet-group-name mycachesubnetgroup
このコマンドでは何も出力されません。
詳細については、AWS CLI トピックの「delete-cache-subnet-group」を参照してください。
サブネットグループの削除 ElastiCache API の使用
以下のパラメータを指定して、ElastiCache API を使用して DeleteCacheSubnetGroup を呼び出しま
す。
• CacheSubnetGroupName=mycachesubnetgroup
API Version 2015-02-02
238
Amazon ElastiCache ユーザーガイド
サブネットグループの削除 ElastiCache API の使用
Example
次のコード例の改行が読み込みのために追加されます。
https://elasticache.us-west-2.amazonaws.com/
?Action=DeleteCacheSubnetGroup
&CacheSubnetGroupName=mycachesubnetgroup
&SignatureMethod=HmacSHA256
&SignatureVersion=4
&Timestamp=20141201T220302Z
&Version=2014-12-01
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=<credential>
&X-Amz-Date=20141201T220302Z
&X-Amz-Expires=20141201T220302Z
&X-Amz-Signature=<signature>
&X-Amz-SignedHeaders=Host
API Version 2015-02-02
239
Amazon ElastiCache ユーザーガイド
Amazon Virtual Private Cloud で起動した場合のアクセス制
御
認証とアクセスコントロール
(Amazon ElastiCache 用)
Abstract
ElastiCache リソースへのアクセスコントロールの方法を示します。
データのセキュリティが重要であるため、ElastiCache には、データへのアクセス権限を持つユーザー
を制御するための手段が用意されています。データへのアクセスを制御する方法は、Amazon VPC で
クラスターを起動したかどうかによって決まります。
Amazon Virtual Private Cloud で起動した場合のア
クセス制御
Amazon Virtual Private Cloud でクラスターを起動した場合、Amazon VPC の設定で、IP アドレス範囲
を選択し、サブネットを作成し、ルートテーブル、ネットワークゲートウェイ、セキュリティの設定を
定義できます。また、仮想ネットワークにキャッシュクラスターを追加でき、Amazon ElastiCache セ
キュリティグループではなく Amazon Virtual Private Cloud セキュリティグループを使用して、キャッ
シュクラスターへのアクセスを制御できます。詳細については、このセクションの「Amazon Virtual
Private Cloud (Amazon VPC) を ElastiCache で使用する (p. 242)」を参照してください。
Amazon Virtual Private Cloud で起動しなかった場
合のアクセス制御
Amazon ElastiCache を使用すると、ElastiCache キャッシュセキュリティグループを使用して、キャッ
シュクラスターへのアクセスを制御できます。ElastiCache キャッシュセキュリティグループは、クラ
スターへのネットワークアクセスを制御するファイアウォールのように動作します。デフォルトでは、
クラスターへのネットワークアクセスは無効になっています。アプリケーションからキャッシュクラス
ターにアクセスできるようにするには、特定の Amazon EC2 セキュリティグループのホストからのア
クセスを明示的に有効にする必要があります。詳細については、「キャッシュセキュリティグループ
[EC2-Classic] (p. 188)」を参照してください。
API Version 2015-02-02
240
Amazon ElastiCache ユーザーガイド
Amazon Virtual Private Cloud で起動しなかった場合のアク
セス制御
トピック
• Amazon Virtual Private Cloud (Amazon VPC) を ElastiCache で使用する (p. 242)
• IAM による ElastiCache のアクセス制御 (p. 256)
API Version 2015-02-02
241
Amazon ElastiCache ユーザーガイド
Amazon VPC を ElastiCache に使用する
Amazon Virtual Private Cloud (Amazon VPC) を
ElastiCache で使用する
Abstract
仮想ネットワークに ElastiCache クラスターを追加し、Amazon VPC のセキュリティグループを使用して、キャッ
シュクラスターへのアクセスを制御します。
Amazon Virtual Private Cloud (Amazon VPC) サービスは、従来のデータセンターに非常によく似た仮
想ネットワークを定義します。お客様が Amazon VPC を設定すると、IP アドレス範囲の選択、サブ
ネットの作成、ルートテーブル、ネットワークゲートウェイ、セキュリティの設定などが可能になりま
す。仮想ネットワークにキャッシュクラスターを追加でき、Amazon VPC のセキュリティグループを
使用して、キャッシュクラスターへのアクセスを制御できます。
このセクションでは、Amazon VPC 内で手動で ElastiCache クラスターを設定する方法を説明します。
この情報は、ElastiCache と Amazon VPC との連携について理解を深めたいユーザーを対象としてい
ます。
トピック
• ElastiCache と Amazon Virtual Private Cloud (p. 243)
• Virtual Private Cloud (VPC) の作成 (p. 247)
• キャッシュサブネットグループの作成 (p. 249)
• Amazon VPC でのキャッシュクラスターの作成 (p. 250)
• Amazon VPC で実行されるキャッシュクラスターへの接続 (p. 251)
API Version 2015-02-02
242
Amazon ElastiCache ユーザーガイド
ElastiCache と Amazon Virtual Private Cloud
ElastiCache と Amazon Virtual Private Cloud
Abstract
クラスターが Amazon VPC の内部と外部のどちらにデプロイされるかに関係なく、ElastiCache でソフトウェアの
アップグレード、パッチ適用、障害検出、および復旧を管理します。
Note
ElastiCache は完全に Amazon Virtual Private Cloud(VPC)と統合します。ElastiCache ユー
ザーにとって、これは次のことを意味します。
• AWS アカウントが EC2-VPC プラットフォームのみをサポートしている場合、ElastiCache
は常に VPC でクラスターを起動します。
• AWS を初めて利用する場合、クラスターは VPC にデプロイされます。デフォルト VPC が
自動的に作成されます。
• デフォルト VPC をお持ちのお客様が、クラスター起動時にサブネットを指定しなかった場
合は、そのクラスターはお客様のデフォルト VPC で起動されます。
詳細については、「Detecting Your Supported Platforms and Whether You Have a Default VPC」
を参照してください。
Amazon Virtual Private Cloud を使用することによって、従来のデータセンターに非常によく似た仮想
ネットワークを AWS クラウド内に作成できます。お客様の Amazon VPC はお客様が設定できます。
たとえば、IP アドレス範囲の選択、サブネットの作成、ルートテーブル、ネットワークゲートウェイ、
セキュリティの設定などが可能です。
ElastiCache の基本機能は仮想プライベートクラウドの場合と同じです。ElastiCache は、クラスター
が Amazon VPC の内部と外部のどちらにデプロイされるかに関係なく、ソフトウェアのアップグレー
ド、パッチ適用、障害検出、および復旧を管理します。
Amazon VPC の外部にデプロイされた ElastiCache キャッシュノードには、エンドポイント/DNS 名の
解決先となる IP アドレスが割り当てられます。これにより、Amazon Elastic Compute Cloud (Amazon
EC2) インスタンスからの接続が提供されます。Amazon VPC プライベートサブネットで ElastiCache
クラスターを起動した場合、すべてのキャッシュノードにはそのサブネット内のプライベート IP アド
レスが割り当てられます。
Amazon VPC 内の ElastiCache の概要
次の図と表で、ElastiCache クラスターと Amazon EC2 インスタンスが Amazon VPC で起動された場
合の Amazon VPC 環境について説明します。
API Version 2015-02-02
243
Amazon ElastiCache ユーザーガイド
ElastiCache と Amazon Virtual Private Cloud
Amazon VPC は、独自の IP アドレスのブロックが割り当てられた AWS クラウドの独立した
部分です。
インターネットゲートウェイは Amazon VPC を直接インターネットに接続し、Amazon Simple
Storage Service(Amazon S3)など、Amazon VPC の外部で実行されている他の AWS リソー
スへのアクセスを提供します。
Amazon VPC サブネットは、セキュリティおよび運用上のニーズに合わせて AWS リソースを
分離できる Amazon VPC の IP アドレス範囲のセグメントです。
Amazon VPC のルーティングテーブルは、サブネットとインターネットとの間でネットワーク
トラフィックを送信します。Amazon VPC には暗黙のルーターがあり、この図では円と R で
表されています。
Amazon VPC のセキュリティグループは、ElastiCache クラスターと Amazon EC2 インスタン
スのインバウンドおよびアウトバウンドのトラフィックを制御します。
サブネットで ElastiCache クラスターを起動できます。キャッシュノードは、サブネットのア
ドレス範囲のプライベート IP アドレスを持ちます。
サブネットで Amazon EC2 インスタンスを起動することもできます。各 Amazon EC2 インス
タンスはサブネットのアドレス範囲内のプライベート IP アドレスを持ちます。Amazon EC2
インスタンスは、同じサブネット内のすべてのキャッシュノードに接続できます。
インターネットからアクセス可能な Amazon VPC 内の Amazon EC2 インスタンスの場合は、
インスタンスに Elastic IP アドレスと呼ばれる静的なパブリックアドレスを割り当てる必要が
あります。
API Version 2015-02-02
244
Amazon ElastiCache ユーザーガイド
ElastiCache と Amazon Virtual Private Cloud
なぜ EC2 Classic の代わりに Amazon VPC を ElastiCache デプ
ロイメントで使用するのですか。
VPC へのインスタンスを起動すると、次のことが可能となります:
• 開始から停止までの間に維持される静的プライベート IP アドレスをインスタンスに割り当てる.
• 複数の IP アドレスをインスタンスに割り当てる.
• ネットワークインターフェイスを定義し、1 つまたは複数のネットワークインターフェイスをインス
タンスに割り当てる.
• 実行中にインスタンスのセキュリティグループメンバーシップを変更する.
• インスタンスからのアウトバウンドトラフィックを制御し (egress フィルタリング)、インスタンス
へのインバウンドトラフィックを制御する (ingress フィルタリング)。
• ネットワークアクセスコントロールリスト (ACL) の形でインスタンスにアクセス制御の層を追加す
る。
• 単一テナントハードウェアでインスタンスを実行する.
Amazon EC2 Classic、デフォルトの VPC、デフォルト以外の VPC の比較については、「EC2-Classic
と EC2-VPC の違い」を参照してください。
Amazon VPC は、専用ではない Amazon EC2 インスタンスを許可する必要があります。専用インスタ
ンスのテナンシー用に設定された Amazon VPC では ElastiCache を使用できません。
Note
ElastiCache は完全に Amazon Virtual Private Cloud(VPC)と統合します。ElastiCache ユー
ザーにとって、これは次のことを意味します。
• AWS アカウントが EC2-VPC プラットフォームのみをサポートしている場合、ElastiCache
は常に VPC でクラスターを起動します。
• AWS を初めて利用する場合、クラスターは VPC にデプロイされます。デフォルト VPC が
自動的に作成されます。
• デフォルト VPC をお持ちのお客様が、クラスター起動時にサブネットを指定しなかった場
合は、そのクラスターはお客様のデフォルト VPC で起動されます。
詳細については、「Detecting Your Supported Platforms and Whether You Have a Default VPC」
を参照してください。
前提条件
Amazon VPC 内に ElastiCache クラスターを作成するには、Amazon VPC が次の要件を満たしている
必要があります。
• Amazon VPC は、専用ではない Amazon EC2 インスタンスを許可する必要があります。専用インス
タンスのテナンシー用に設定された Amazon VPC では ElastiCache を使用できません。
• キャッシュサブネットグループを Amazon VPC 用に定義する必要があります。ElastiCache はその
キャッシュサブネットグループを使用して、そのサブネット内でキャッシュノードに関連付けるサブ
ネットおよび IP アドレスを選択します。
• Amazon VPC 用にキャッシュセキュリティグループを定義する必要があります。または、用意され
ているデフォルトを使用できます。
• 各サブネットの CIDR ブロックは、メンテナンス作業で使用する予備の IP アドレスを ElastiCache
に提供するのに十分な大きさが必要です。
API Version 2015-02-02
245
Amazon ElastiCache ユーザーガイド
ElastiCache と Amazon Virtual Private Cloud
ルーティングとセキュリティ
Amazon VPC でルーティングを設定して、トラフィックの送信先(インターネットゲートウェイ、仮
想プライベートゲートウェイなど)を制御できます。インターネットゲートウェイの場合、Amazon
VPC は、同じ Amazon VPC で実行されているのではない他の AWS リソースに直接アクセスできま
す。お客様の組織のローカルネットワークに接続された仮想プライベートゲートウェイのみを選択した
場合、VPN 経由でインターネット宛てのトラフィックをルーティングし、ローカルセキュリティポリ
シーとファイアウォールを使用して送信を制御できます。この場合、インターネット経由で AWS リ
ソースにアクセスする際に、帯域の追加料金が発生します。
Amazon VPC セキュリティグループを使用して、Amazon VPC 内の ElastiCache クラスターと Amazon
EC2 インスタンスをセキュリティで保護することができます。セキュリティグループは、サブネット
レベルでなくインスタンスレベルでファイアウォールのように動作します。
Amazon VPC 内のクラスターは、同じ Amazon VPC 内の Amazon EC2 インスタンスからアクセスで
きます。Elastic IP が関連付けられたパブリックサブネット内にこのような Amazon EC2 インスタンス
をデプロイしている場合は、インターネットを介して Amazon EC2 インスタンスにアクセスできます。
Note
キャッシュノードを再起動すると、基になる IP アドレスは変わる可能性があるため、キャッ
シュノードに接続するには DNS 名を使用することを強くお勧めします。
Amazon VPC ドキュメント
Amazon VPC に関するドキュメントには、Amazon VPC の作成および使用方法について説明する独自
のドキュメントがあります。Amazon VPC ガイドへのリンクについて以下の表にまとめます。
説明
ドキュメント
Amazon VPC の使用を開始するには
Amazon VPC 入門ガイド
AWS マネジメントコンソールで Amazon VPC を Amazon VPC ユーザーガイド
使用する方法
すべての Amazon VPC コマンドの詳細説明
Amazon EC2 コマンドラインリファレンス
(Amazon VPC コマンドは、Amazon EC2 リファ
レンスの一部です)
Amazon VPC API アクション、データタイプ、お Amazon EC2 API Reference
よびエラーの詳細説明
(Amazon VPC API アクションは、Amazon EC2
リファレンスの一部です)
オプションとして IPsec VPN 接続のゲートウェイ Amazon VPC ネットワーク管理者ガイド
を設定する必要のあるネットワーク管理者向け情
報
Amazon Virtual Private Cloud の詳細情報については、http://aws.amazon.com/vpc を参照してくださ
い。
API Version 2015-02-02
246
Amazon ElastiCache ユーザーガイド
Virtual Private Cloud (VPC) の作成
Virtual Private Cloud (VPC) の作成
Abstract
各アベイラビリティーゾーンについてプライベートサブネットを持つ Virtual Private Cloud を作成します。
この例では、各アベイラビリティーゾーンのプライベートサブネットを持つ Amazon VPC を作成しま
す。
Amazon VPC バケットの作成 AWS マネジメントコンソールの
使用
Abstract
Amazon Virtual Private Cloud 内に ElastiCache キャッシュクラスターを作成します。
Amazon Virtual Private Cloud 内に ElastiCache キャッシュクラスターを作成するには
1.
2.
AWS マネジメントコンソールにサインインして Amazon VPC コンソール(https://
console.aws.amazon.com/vpc/)を開きます。
Amazon Virtual Private Cloud ウィザードを使用して新しい Amazon VPC を作成します。
a.
b.
c.
d.
e.
3.
ナビゲーションリストで、[VPC Dashboard] を選択します。
[Start VPC Wizard] を選択します。
Amazon VPC ウィザードで、[VPC with Public and Private Subnets] を選択し、[Next] を選択
します。
[VPC with Public and Private Subnets] ページで、デフォルトのオプションを変更せずに、
[Create VPC] を選択します。
表示された確認メッセージで、[Close] を選択します。
Amazon VPC 内にパブリックサブネットとプライベートサブネットの 2 つのサブネットがあるこ
とを確認します。これらのサブネットは自動的に作成されます。
a.
b.
ナビゲーションリストで、[Subnets] を選択します。
サブネットのリストで、Amazon VPC にある 2 つのサブネットを探します。
パブリックサブネットで使用可能な IP アドレスは 1 つ少なくなります。これは、ウィザード
によって、プライベートサブネットからインターネットへのアウトバウンド通信用に Amazon
EC2 NAT インスタンスと Elastic IP アドレス(Amazon EC2 料金が適用される)が作成され
るためです。
Tip
2 つのサブネットの識別子と、どちらがパブリックで、どちらがプライベートであるかを
書き留めておきます。この情報は、後でキャッシュクラスターを起動し、Amazon VPC に
Amazon EC2 インスタンスを追加するときに必要になります。
4.
Amazon VPC セキュリティグループを作成します。キャッシュクラスターと Amazon EC2 インス
タンスでは、このグループを使用します。
a.
b.
Amazon VPC マネジメントコンソールで、左のナビゲーションペインの [Security Groups] を
選択します。
[Create Security Group] を選択します。
API Version 2015-02-02
247
Amazon ElastiCache ユーザーガイド
Virtual Private Cloud (VPC) の作成
5.
c.
対応するボックスにセキュリティグループの名前と説明を入力します。[VPC] ボックスで
Amazon VPC の ID を選択します。
d.
すべての設定が正しいことを確認したら、[Yes, Create] を選択します。
セキュリティグループのネットワーク Ingress ルールを定義します。このルールは、Secure Shell
(SSH)を使用して Amazon EC2 インスタンスに接続することを許可します。
a.
b.
c.
d.
ナビゲーションリストで [Security Groups] を選択します。
リストで対象となるセキュリティグループを探して選択します。
[Security Group] の下で、[Inbound] タブを選択します。[Create a new rule] ボックスで、[SSH]
を選択し、[Add Rule] を選択します。
[Apply Rule Changes] を選択します。
これで、キャッシュサブネットグループを作成して Amazon VPC でキャッシュクラスターを起動する
準備が整いました。
API Version 2015-02-02
248
Amazon ElastiCache ユーザーガイド
キャッシュサブネットグループの作成
キャッシュサブネットグループの作成
Abstract
キャッシュサブネットグループ、つまり Amazon VPC 内でキャッシュクラスターとして指定できるサブネットの
集合を作成します。
キャッシュサブネットグループは、Amazon VPC 内でキャッシュクラスターとして指定できるサブネッ
トの集合です。Amazon VPC でキャッシュクラスターを起動するときに、キャッシュサブネットグルー
プを選択する必要があります。次に、ElastiCache ではそのキャッシュサブネットグループを使用して、
サブネット内の IP アドレスをクラスター内の各キャッシュノードに割り当てます。
ElastiCache 管理コンソール、AWS CLI、または ElastiCache API を使用してサブネットグループを作
成する方法のガイダンスについては、「キャッシュサブネットグループの作成 (p. 233)」を参照してく
ださい。
キャッシュサブネットグループを作成した後、キャッシュクラスターを起動して Amazon VPC で実行
できます。次のトピック「Amazon VPC でのキャッシュクラスターの作成 (p. 250)」に進みます。
API Version 2015-02-02
249
Amazon ElastiCache ユーザーガイド
Amazon VPC でのキャッシュクラスターの作成
Amazon VPC でのキャッシュクラスターの作成
Abstract
Amazon VPC でのキャッシュクラスターの作成 AWS マネジメントコンソールを使用した。
この例では、Amazon VPC でキャッシュクラスターを作成します。
Amazon VPC でのキャッシュクラスターの作成 AWS マネジメ
ントコンソールの使用
• Redis キャッシュクラスターを起動するには、「1 つの Redis キャッシュクラスターの作成 AWS マ
ネジメントコンソールの使用 (p. 103)」を参照してください。[Screen 3: Configure Advanced Settings]
画面で、VPC サブネットグループを選択します。
• Memcached キャッシュクラスターを起動するには、「Memcached キャッシュクラスターの作成
AWS マネジメントコンソールの使用 (p. 99)」を参照してください。[Screen 3: Configure Advanced
Settings] 画面で、VPC サブネットグループを選択します。
これで、Amazon VPC 内でキャッシュクラスターを起動できました。Amazon VPC で実行されている
新しいキャッシュクラスターに接続する方法の例については、「Amazon VPC で実行されるキャッシュ
クラスターへの接続 (p. 251)」に進んでください。
API Version 2015-02-02
250
Amazon ElastiCache ユーザーガイド
Amazon VPC で実行されるキャッシュクラスターへの接続
Amazon VPC で実行されるキャッシュクラスターへ
の接続
Abstract
Amazon VPC で Amazon EC2 インスタンスを起動し、Amazon VPC で実行中であるキャッシュクラスターに接続
します。
この例では、Amazon VPC で Amazon EC2 インスタンスを起動する方法を示します。次に、このイン
スタンスにログインし、その Amazon VPC で実行中の ElastiCache クラスターにアクセスできます。
Amazon VPC で実行されるキャッシュクラスターへの接続 AWS
マネジメントコンソールの使用
この例では、Amazon VPC 内で Amazon EC2 インスタンスを作成します。この Amazon EC2 インス
タンスを使用して、Amazon VPC で実行しているキャッシュノードに接続できます。
Note
Amazon EC2 の使用については、「Amazon EC2 入門ガイド」(『Amazon EC2 ドキュメン
ト』) を参照してください。
Amazon EC2 インスタンスを作成するには (Amazon VPC で Amazon EC2 コンソールを使用し
て)
1.
2.
3.
4.
5.
AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ に
ある Amazon EC2 コンソールを開きます。
コンソールで、[Launch Instance] を選択し、以下の手順を実行します。
[Choose an Amazon Machine Image (AMI)] ページで、64 ビット Amazon Linux AMI を選択し、
[Select] を選択します。
[Choose an Instance Type] ページで、[3] を選択します。インスタンスの設定.
[Configure Instance Details] ページで以下の項目を選択します。
a.
b.
6.
7.
[Network] リストで、Amazon VPC を選択します。
[Subnet] リストで、パブリックサブネットを選択します。
すべての設定が正しいことを確認したら、[4] を選択します。ストレージの追加.
[Add Storage] ページで、[5] を選択します。インスタンスのタグ付け.
[Tag Instance] ページで、Amazon EC2 インスタンスの名前を入力し、[6] を選択します。セキュ
リティグループの設定.
API Version 2015-02-02
251
Amazon ElastiCache ユーザーガイド
Amazon VPC で実行されるキャッシュクラスターへの接続
8.
[Configure Security Group] ページで [Select an existing security group] を選択します。
Amazon VPC セキュリティグループの名前を選択し、[Review and Launch] を選択します。
9.
[Review Instance and Launch] ページで、[Launch] を選択します。
[Select an existing key pair or create a new key pair] ウィンドウで、このインスタンスで使用する
キーペアを指定します。
Note
キーペアの管理については、『Amazon EC2 入門ガイド』を参照してください。
10. Amazon EC2 インスタンスを起動する準備ができたら、[Launch Instances] を選択します。
これで、作成した Amazon EC2 インスタンスに Elastic IP アドレスを割り当てることができます。
Amazon EC2 インスタンスに接続するには、この IP アドレスを使用する必要があります。
Elastic IP アドレスを割り当てるには AWS マネジメントコンソールの使用
1.
2.
3.
4.
5.
6.
Amazon VPC コンソール(https://console.aws.amazon.com/vpc/)を開きます。
ナビゲーションリストで [Elastic IPs] を選択します。
[Allocate New Address] を選択します。
[Allocate New Address] ダイアログボックスの [EIP used in] ボックスで、[VPC] を選択してさらに
[Yes, Allocate] を選択します。
リストから割り当てた Elastic IP アドレスを選択し、[Associate Address] を選択します。
[Associate Address] ダイアログボックスの [Instance] ボックスで、起動した Amazon EC2 インス
タンスの ID を選択し、[Yes, Associate] を選択します。
API Version 2015-02-02
252
Amazon ElastiCache ユーザーガイド
Amazon VPC で実行されるキャッシュクラスターへの接続
これで、作成した Elastic IP アドレスを使用して、SSH で Amazon EC2 インスタンスに接続でき
ます。
Tip
SSH を使用して Linux/UNIX インスタンスに接続する手順については、「Linux/UNIX イン
スタンスへの接続」(『Amazon EC2 入門ガイド』) を参照してください。
Amazon EC2 インスタンスに接続するには
•
コマンドウィンドウを開きます。コマンドプロンプトで、次のコマンドを実行します。mykeypair.pem
をご使用のキーペアファイルの名前に、54.207.55.251 をご使用の Elastic IP アドレスに置き換え
ます。
ssh -i mykeypair.pem [email protected]
Important
まだ、Amazon EC2 インスタンスからログアウトしないでください。
これで、ElastiCache クラスターを操作する準備ができました。まだ telnet ユーティリティをインストー
ルしていない場合、これを行うには、このユーティリティをインストールする必要があります。
telnet をインストールし、キャッシュクラスターを操作するには AWS CLI の使用
1.
コマンドウィンドウを開きます。コマンドプロンプトで、次のコマンドを実行します。確認のプロ
ンプトが表示されたら、「y」を入力します。
sudo yum install telnet
Loaded plugins: priorities, security, update-motd, upgrade-helper
Setting up Install Process
API Version 2015-02-02
253
Amazon ElastiCache ユーザーガイド
Amazon VPC で実行されるキャッシュクラスターへの接続
Resolving Dependencies
--> Running transaction check
...(output omitted)...
Total download size: 63 k
Installed size: 109 k
Is this ok [y/N]: y
Downloading Packages:
telnet-0.17-47.7.amzn1.x86_64.rpm
|
63 kB
00:00
...(output omitted)...
Complete!
2.
3.
ElastiCache コンソール(https://console.aws.amazon.com/elasticache/)に移動し、キャッシュク
ラスターのいずれかのノードのエンドポイントを取得します。
telnet を使用して、ポート 11211 でキャッシュノードのエンドポイントに接続します。次の例のホ
スト名を、キャッシュノードのホスト名に置き換えてください。
telnet my-cache-cluster.7wufxa.0001.use1.cache.amazonaws.com 11211
これで、キャッシュエンジンに接続されたので、コマンドを実行できます。この例では、キャッ
シュにデータ項目を追加した後、直ちにデータ項目を取得します。最後に、キャッシュノードから
切断します。
キーと値を保存するには、次の 2 行を入力します。
add mykey 0 3600 28
This is the value for my key
キャッシュエンジンは次のように応答します。
STORED
mykey の値を取得するには、次のように入力します。
get mykey
キャッシュエンジンは次のように応答します。
VALUE mykey 0 28
This is the value for my key
END
キャッシュエンジンから切断するには、次のように入力します。
quit
API Version 2015-02-02
254
Amazon ElastiCache ユーザーガイド
Amazon VPC で実行されるキャッシュクラスターへの接続
Important
AWS アカウントの追加料金が発生しないように、これらの例を試した後で、今後使用しない
AWS リソースはすべて削除してください。
API Version 2015-02-02
255
Amazon ElastiCache ユーザーガイド
IAM によるアクセス制御
IAM による ElastiCache のアクセス制御
Abstract
Identity and Access Management や ElastiCache と共にキャッシュセキュリティグループを使用して、キャッシュ
クラスターへのネットワークアクセスを制御します。
トピック
• IAM について (p. 256)
• ElastiCache セキュリティグループと IAM (p. 257)
• ElastiCache IAM ARN が存在しない (p. 257)
• ElastiCache のアクション (p. 257)
• ElastiCache のキー (p. 257)
• ElastiCache のポリシー例 (p. 258)
• アカウント属性を取得できない (p. 259)
ElastiCache を使用すると、キャッシュセキュリティグループを使用して、キャッシュクラスターへの
アクセスを制御することができます。キャッシュセキュリティグループは、キャッシュクラスターへの
ネットワークアクセスをコントロールするファイアウォールのように動作します。
Important
ElastiCache では、キャッシュセキュリティグループを使用して特定の ElastiCache キャッシュ
クラスターにアクセスできるユーザーを制御します。IAM システムには、特定のキャッシュク
ラスターへのアクセスを許可または拒否する方法は存在しません。
セキュリティグループと ElastiCache の使用の詳細については、「キャッシュセキュリティグループ
[EC2-Classic] (p. 188)」と「ElastiCache セキュリティグループと IAM (p. 257)」を参照してください。
IAM について
Amazon ElastiCache は AWS Identity and Access Management(IAM)と統合することで、次のことが
実行できるようになります。
•
•
•
•
•
お客様の AWS アカウントでユーザーとグループを作成する
お客様の AWS アカウントのリソースをアカウント内のユーザー間で共有する
各ユーザーに一意のセキュリティ認証情報を割り当てる
各ユーザーのサービスとリソースへのアクセスを管理する
お客様の AWS アカウントの下の全ユーザー分の AWS 請求書を 1 つにまとめる
たとえば、IAM を ElastiCache と共に使用することによって、AWS アカウント内で、AWS アカウント
のキャッシュクラスターを作成または変更できるユーザーを制御できます。
IAM の詳細については、以下を参照してください。
• Identity and Access Management(IAM)
• IAM 入門ガイド
• IAM ユーザーガイド
ElastiCache で IAM を使用する方法については、「IAM による ElastiCache のアクセス制御 (p. 256)」を
参照してください。
API Version 2015-02-02
256
Amazon ElastiCache ユーザーガイド
ElastiCache セキュリティグループと IAM
ElastiCache セキュリティグループと IAM
IAM を ElastiCache と共に使用する場合、ElastiCache のキャッシュセキュリティグループを使用して
キャッシュクラスターへのアクセスを許可する方法は変わりません。ただし、IAM ポリシーを使用し
て、AWS アカウント内のユーザーが一般的に ElastiCache リソースと共に使用できる ElastiCache ア
クションを指定できます。このポリシーでは特定のキャッシュクラスターを指定できないため、AWS
アカウント内のすべてのキャッシュクラスターを示す * をリソースとして指定する必要があります。
Example
Developers グループに CreateCacheCluster、DescribeCacheClusters、ModifyCacheCluster、
RebootCacheCluster、DeleteCacheCluster、DescribeEvents の各 API のみを使用するアクセ
ス許可を付与するポリシーを作成できます。Developers グループは、AWS アカウントに属するすべて
のキャッシュクラスターで、これらの API を使用できます。
ElastiCache のアクションを対象とする IAM ポリシーの例については、「ElastiCache のポリシー
例 (p. 258)」を参照してください。
ElastiCache IAM ARN が存在しない
IAM ポリシー内で特定の ElastiCache リソースを指定できないため、ElastiCache には IAM ポリシーで
使用できる ARN はありません。ElastiCache アクションへのアクセスを制御するポリシーを記述する
場合は、リソースとして * を使用します。ARN の詳細については、『IAM ユーザーガイド』の「ARN」
を参照してください。
ElastiCache のアクション
IAM ポリシーでは、ElastiCache が提供するすべてのアクションを指定することができます。各アク
ション名の前には、小文字の elastiCache: を付ける必要があります。たとえば、
elastiCache:ModifyCacheCluster、elastiCache:DescribeCacheCluster、または
elastiCache:*(すべての ElastiCache アクションの場合)のように指定します。アクションのリス
トについては、「Amazon ElastiCache API Reference」のクエリ API アクション名を参照してくださ
い。
ElastiCache のキー
ElastiCache は、次のポリシーキーを実装しますが、それ以外は実装しません。ポリシーキーの詳細に
ついては、『IAM ユーザーガイド』の「条件」を参照してください。
AWS 全体のポリシーのキー
• aws:CurrentTime—日付/時間の条件を確認する。
• aws:EpochTime—エポックまたは UNIX 時間を使用して、日付/時間の条件を確認する。
• aws:principaltype—現在のリクエストに対するプリンシパルのタイプ (ユーザー、アカウント、
フェデレーティッドユーザーなど)を確認する。
• aws:SecureTransport—リクエストが SSL を使用して送信されたかどうかを確認する。Amazon
RDS や Amazon Route 53 など、SSL のみを使用するサービスでは、aws:SecureTransport キー
は意味がありません。
• aws:SourceArn— ソースの Amazon リソースネーム(ARN)を使用して、リクエストのソースを確
認します。(この値はいくつかのサービスでのみ利用可能です。詳細は、「Amazon Simple Queue
Service 開発者ガイド」の「Element Descriptions」の下にある「Amazon Resource Name (ARN)」
を参照してください)。
API Version 2015-02-02
257
Amazon ElastiCache ユーザーガイド
ElastiCache のポリシー例
• aws:SourceIp—リクエスタの IP アドレスを確認する。お客様が aws:SourceIp を使用していて
Amazon EC2 インスタンスからリクエストが来た場合、そのインスタンスのパブリック IP アドレス
が評価されます。
• aws:UserAgent—リクエストを作成したクライアントアプリケーションを確認する。
• aws:userid—リクエスタのユーザー ID を確認する。
• aws:username—リクエスタのユーザー名を確認する(可能な場合)。
Note
キー名では大文字と小文字は区別されます。
ElastiCache のポリシー例
このセクションでは、Amazon ElastiCache に対するユーザーアクセスを制御するいくつかの簡単なポ
リシーを説明します。
Note
ElastiCache では、将来新しいアクションが加えられる可能性があり、ポリシーの目的に応じ
て、以下のポリシーのいずれかに含められることがあります。
Example 1: Network Admin グループに対して、ElastiCache セキュリティグループに関連する
API にのみアクセスすることを許可する
この例では、関連するアクションへのアクセスを許可するポリシーを作成し、グループにポリシーをア
タッチします。IAM ポリシーでは特定の ElastiCache リソースを指定できないため、リソースは "*" で
表されます。
{
"Version": "2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":[
"elasticache:CreateCacheSecurityGroup",
"elasticache:DeleteCacheSecurityGroup",
"elasticache:DescribeCacheSecurityGroup",
"elasticache:AuthorizeCacheSecurityGroupIngress",
"elasticache:RevokeCacheSecurityGroupIngress"],
"Resource":"*"
}
]
}
API Version 2015-02-02
258
Amazon ElastiCache ユーザーガイド
アカウント属性を取得できない
Example 2: マネージャに対して、現在の AWS アカウントの ElastiCache リソースをリスト表
示することのみを許可する
この例では、マネージャが名前に Describe を含む ElastiCache アクションを使用できるようにするポ
リシーを作成します。
{
"Version": "2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":"elasticache:Describe*",
"Resource":"*"
}
]
}
Example 3: システム管理者に対して、一連の ElastiCache アクションにアクセスすることを許
可する
この例では、システム管理者に対して、関連するアクションへのアクセスを許可するポリシーを作成
し、グループにそのポリシーをアタッチします。他の例と同じように、IAM ポリシーでは特定の
ElastiCache リソースを指定できないため、リソースは "*" と表されます。
{
"Version": "2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":[
"elasticache:ModifyCacheCluster",
"elasticache:RebootCacheCluster",
"elasticache:DescribeCacheClusters",
"elasticache:DescribeEvents",
"elasticache:ModifyCacheParameterGroup",
"elasticache:DescribeCacheParameterGroups",
"elasticache:DescribeCacheParameters",
"elasticache:ResetCacheParameterGroup",
"elasticache:DescribeEngineDefaultParameters"],
"Resource":"*"
}
]
}
アカウント属性を取得できない
ElastiCache に対する最近の変更により、ElastiCache の Full Access ポリシーテンプレートに基づくア
クセス許可を付与してセットアップされた一部の IAM ユーザーでエラーが発生することがあります。
エラーは、"Failed to retrieve account attributes, certain console functions may be impaired." とページの
上部に表示されるか、"Error calling EC2.DescribeSecurityGroups" と表示されます。このエラーは、
ElastiCache の Full Access ポリシーで明示的にアクセス許可が付与されていなかったアクションを、
コンソールで呼び出したことによって発生します。
この問題を解決するには、IAM 管理者が IAM ユーザーのポリシードキュメントを更新して、
ec2:DescribeAccountAttributes と ec2:DescribeSecurityGroups の 2 つの追加の Amazon
EC2 アクションを許可する必要があります。この変更は、ElastiCache の Full Access ポリシーテンプ
API Version 2015-02-02
259
Amazon ElastiCache ユーザーガイド
アカウント属性を取得できない
レートに基づいたポリシーが割り当てられている、すべての IAM ユーザーまたはグループに対して行
う必要があります。
たとえば、次のコードは、ElastiCache Full Access ポリシーテンプレートのデフォルトのポリシード
キュメントです。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"elasticache:*",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeVpcs",
"cloudwatch:GetMetricStatistics",
"cloudwatch:DescribeAlarms",
"sns:ListTopics",
"sns:ListSubscriptions"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
前に示した 2 つのアクションを追加すると、ポリシードキュメントは次のようになり、必要なアクショ
ンを呼び出すためのアクセス許可がコンソールに付与されます。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"elasticache:*",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeVpcs",
"ec2:DescribeAccountAttributes",
"ec2:DescribeSecurityGroups",
"cloudwatch:GetMetricStatistics",
"cloudwatch:DescribeAlarms",
"sns:ListTopics",
"sns:ListSubscriptions"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
IAM ポリシーの更新については、「IAM ポリシーの管理」を参照してください。
API Version 2015-02-02
260
Amazon ElastiCache ユーザーガイド
要件
AWS 外部からの ElastiCache リソー
スへのアクセス
Amazon ElastiCache は、クラウドベースのメモリ内のキー値ストアを提供する AWS サービスです。
これは、バックエンドで Memcached エンジンまたは Redis エンジンを使用します。このサービスは、
AWS 内からのみアクセスできるように設計されています。ElastiCache クラスターが VPC 内でホスト
されている場合は、ネットワークアドレス変換(NAT)インスタンスを使用して外部からアクセスでき
るようにできます。
トピック
• 要件 (p. 261)
• 考慮事項 (p. 261)
• 制約事項 (p. 262)
• AWS 外部から ElastiCache リソースにアクセスする方法 (p. 262)
• 以下の資料も参照してください。 (p. 264)
要件
AWS 外部から ElastiCache リソースにアクセスするには、以下の要件を満たしている必要があります。
• クラスターが VPC 内にあり、ネットワークアドレス変換(NAT)インスタンスを介してアクセスで
きる必要があります。これは必須の要件であり、例外はありません。
• NAT インスタンスがクラスターと同じ VPC 内で起動されている必要があります。
• NAT インスタンスがクラスターとは別のパブリックサブネットで起動されている必要があります。
• Elastic IP(EIP)アドレスが NAT インスタンスに関連付けられている必要があります。NAT インス
タンスのポートは、iptables のポート転送機能を使用して VPC 内のキャッシュノードポートに転送
されます。
考慮事項
ElastiCache 外部から ElastiCache リソースにアクセスする際には、以下の点を考慮してください。
API Version 2015-02-02
261
Amazon ElastiCache ユーザーガイド
制約事項
• クライアントは EIP に接続し、NAT インスタンスのポートをキャッシュします。NAT インスタンス
でポート転送すると、トラフィックは適切なキャッシュクラスターノードに転送されます。
• クラスターノードが追加または交換されたら、この変更が反映されるように iptables ルールが更新さ
れる必要があります。
制約事項
このアプローチは、テストおよび開発の目的にしか使用できません。以下の制限があるため、本稼働で
使用することは推奨されません。
• NAT インスタンスは、クライアントと複数のクラスターの間のプロキシとして機能します。プロキ
シを追加すると、キャッシュクラスターのパフォーマンスに影響が及びます。この影響は、NAT イ
ンスタンスを介してアクセスするキャッシュクラスターの数に応じて増大します。
• クライアントから NAT インスタンスへのトラフィックは暗号化されません。したがって、NAT イン
スタンスを介して機密データを送信することは回避してください。
• NAT インスタンスは、別のインスタンスを維持するためのオーバーヘッドを増加させます。
• NAT インスタンスは単一障害点として機能します。VPC で高可用性 NAT をセットアップする方法
については、「Amazon VPC NAT インスタンスの高可用性: 例」を参照してください。
AWS 外部から ElastiCache リソースにアクセスす
る方法
次の手順は、NAT インスタンスを使用して ElastiCache リソースに接続する方法を示しています。
これらのステップは、以下を前提としています。
• IP アドレス 10.0.1.230、デフォルトの Memcached ポート 11211、およびセキュリティグループ
sg-bd56b7da を使用して Memcached クラスターにアクセスしている。
• 信頼済みクライアントの IP アドレスが 198.51.100.27 である。
• NAT インスタンスの Elastic IP アドレスが 203.0.113.73 である。
• NAT インスタンスのセキュリティグループが sg-ce56b7a9 である。
NAT インスタンスを使用して ElastiCache リソースに接続するには
1.
キャッシュクラスターと同じ VPC 内のパブリックサブネット内に NAT インスタンスを作成しま
す。
デフォルトでは、VPC ウィザードが cache.m1.small ノードタイプを起動します。必要に応じて
ノードサイズを選択する必要があります。
NAT インスタンスの作成については、『AWS VPC User Guide』の「NAT インスタンス」を参照
してください。
2.
キャッシュクラスターと NAT インスタンスのセキュリティグループルールを作成します。
NAT インスタンスのセキュリティグループには以下のルールが必要です。
• 2 つのインバウンドルール
• 信頼済みクライアントから、NAT インスタンスから転送された各キャッシュポート (11211 11213) への TCP 接続を許可するルール。
• 信頼済みクライアントへの SSH アクセスを許可するルール。
API Version 2015-02-02
262
Amazon ElastiCache ユーザーガイド
AWS 外部から ElastiCache リソースにアクセスする方法
NAT インスタンスのセキュリティグループ - インバウンドルール
タイプ
プロトコル
ポート範囲
送信元
カスタム TCP ルール
TCP
11211-11213
198.51.100.27/32
SSH
TCP
22
198.51.100.27/32
• 転送された各キャッシュポート(11211 ~ 11213)への TCP 接続を許可するアウトバウンド
ルール。
NAT インスタンスのセキュリティグループ - アウトバウンドルール
タイプ
カスタム TCP ルール
プロトコル
ポート範囲
TCP
11211-11213
送信先
sg-bd56b7da(キャッ
シュクラスターのセ
キュリティグループ)
• NAT インスタンスからクラスター内の各インスタンスのキャッシュポート(11211 ~ 11213)
への TCP 接続を許可するクラスターのセキュリティグループのインバウンドルール。
キャッシュクラスターのセキュリティグループ - インバウンドルール
タイプ
カスタム TCP ルール
3.
プロトコル
ポート範囲
TCP
11211-11213
送信元
sg-ce56b7a9(NAT イ
ンスタンスのセキュリ
ティグループ)
ルールを検証します。
• 信頼済みクライアントが NAT インスタンスに SSH 接続できることを確認します。
• 信頼済みクライアントが NAT インスタンスからクラスターに接続できることを確認します。
4.
NAT インスタンスに iptables ルールを追加します。
NAT インスタンスからのキャッシュポートをクラスターノードに転送するには、iptables ルールを
クラスターのノードごとに NAT テーブルに追加する必要があります。以下に例を示します。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to
10.0.1.230:11211
ポート番号は、クラスターのノードごとに一意である必要があります。たとえば、ポート 11211
~ 11213 を使用する 3 つのノードで構成される Memcached クラスターを使用している場合、ルー
ルは次のようになります。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to
10.0.1.230:11211
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11212 -j DNAT --to
10.0.1.231:11211
API Version 2015-02-02
263
Amazon ElastiCache ユーザーガイド
以下の資料も参照してください。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11213 -j DNAT --to
10.0.1.232:11211
5.
信頼済みクライアントがクラスターに接続できることを確認します。
信頼済みクライアントは、NAT インスタンスに関連付けられている EIP と、適切なクラスターノー
ドに対応するクラスターポートに接続できる必要があります。たとえば、PHP の接続文字列は次
のようになります。
$memcached->connect( '203.0.113.73', 11211 );
$memcached->connect( '203.0.113.73', 11212 );
$memcached->connect( '203.0.113.73', 11213 );
telnet クライアントを使用して接続を検証することもできます。以下に例を示します。
telnet 203.0.113.73 11211
telnet 203.0.113.73 11212
telnet 203.0.113.73 11213
6.
iptables 設定を保存します。
ルールをテストし、検証してから保存します。Red Hat ベースの Linux ディストリビューション
(Amazon Linux など)を使用している場合は、次のコマンドを実行します。
service iptables save
以下の資料も参照してください。
• NAT インスタンス
• ElastiCache クライアントの設定
• Amazon VPC NAT インスタンスの高可用性: 例
API Version 2015-02-02
264
Amazon ElastiCache ユーザーガイド
使用状況、イベント、コストのモニ
タリング
Abstract
ElastiCache クラスターとそのパフォーマンスのモニタリングを行います。
クラスターの動作状況、リソースの使用状況、生成されたイベント、およびデプロイのコストを知るこ
とは、エンタープライズキャッシュソリューションの管理における重要な要因です。CloudWatch は、
キャッシュパフォーマンスをモニタリングするためのメトリックスを提供します。コスト配分タグは、
コストのモニタリングと管理に役立ちます。
トピック
• CloudWatch メトリックスを使用したモニタリング (p. 266)
• ElastiCache イベントのモニタリング (p. 277)
• コスト配分のタグによるコストのモニタリング (p. 287)
API Version 2015-02-02
265
Amazon ElastiCache ユーザーガイド
使用状況のモニタリング
CloudWatch メトリックスを使用したモニタリング
Abstract
メトリックスにアクセスして、ElastiCache に用意された Amazon CloudWatch を使用してキャッシュクラスター
を監視できます。
ElastiCache には、クラスターを監視できるようにするメトリックスが用意されています。CloudWatch
を通じてこれらのメトリックスにアクセスできます。CloudWatch の詳細については、CloudWatch の
ドキュメントを参照してください。
ElastiCache では、ホストレベルのメトリックス(たとえば、CPU 使用率など)とキャッシュエンジン
ソフトウェアに固有のメトリックス(たとえば、キャッシュの取得やキャッシュの損失など)の両方が
提供されます。これらのメトリックスは 60 秒間隔で各キャッシュノードに対して測定およびパブリッ
シュされます。
Important
キャッシュクラスターのパフォーマンスが低下し始めた場合に通知を受け取ることができるよ
うに、特定の主要メトリックスに CloudWatch アラームを設定することを検討してください。
詳細については、「モニタリングすべきメトリックス (p. 272)」を参照してください。
トピック
• ElastiCache メトリックスのディメンション (p. 266)
• ホストレベルのメトリックス (p. 267)
• Memcached のメトリックス (p. 267)
• Redis のメトリックス (p. 269)
• モニタリングすべきメトリックス (p. 272)
• メトリックスの統計と期間の選択 (p. 274)
• Monitoring CloudWatch Cache Cluster and Cache Node Metrics (p. 274)
ElastiCache メトリックスのディメンション
すべての ElastiCache メトリックスは "AWS/ElastiCache" 名前空間を使用し、CacheNodeId という
1 つのディメンションに関するメトリックスを提供します。このディメンションは、キャッシュクラス
ターの各キャッシュノードに対して自動的に生成される識別子です。キャッシュノードに対するこれら
の値を確認するには、DescribeCacheClusters API または elasticache-describe-cache-clusters コマ
ンドラインユーティリティを使用します。詳細については、Amazon ElastiCache API Referenceの
「DescribeCacheClusters」および AWS Command Line Interface Referenceの「
describe-cache-clusters」を参照してください。
メトリックスはそれぞれ 1 組のディメンションの下でパブリッシュされます。メトリックスを取得する
ときは、CacheClusterId と CacheNodeId の両方のディメンションを指定する必要があります。
トピック
• ホストレベルのメトリックス (p. 267)
• Memcached のメトリックス (p. 267)
• Redis のメトリックス (p. 269)
• モニタリングすべきメトリックス
API Version 2015-02-02
266
Amazon ElastiCache ユーザーガイド
ホストレベルのメトリックス
ホストレベルのメトリックス
次の表は、ElastiCache が各キャッシュノードに対して提供するホストレベルのメトリックスを示しま
す。
以下の資料も参照してください。
• Memcached のメトリックス (p. 267)
• Redis のメトリックス (p. 269)
メトリックス
説明
単位
CPUUtilization
CPU 使用率。
パーセント
FreeableMemory
ホストで使用可能な空きメモリの量。
Bytes
NetworkBytesIn
ホストがネットワークから読み取ったバイト数。 Bytes
NetworkBytesOut
ホストがネットワークから書き込んだバイト数。 Bytes
SwapUsage
ホストで使用されるスワップの量。
Bytes
Memcached のメトリックス
次の表は、ElastiCache によって提供され、Memcached stats コマンドから算出されるメトリックスを
示します。各メトリックスは、キャッシュノードレベルで算出されます。
Memcached stats コマンドの詳細については、https://github.com/memcached/memcached/blob/master/
doc/protocol.txt にアクセスしてください。
以下の資料も参照してください。
• ホストレベルのメトリックス (p. 267)
メトリックス
説明
BytesReadIntoMemcached
キャッシュノードによってネットワークから読み Bytes
取られたバイト数。
BytesUsedForCacheItems
キャッシュ項目の格納に使用したバイト数。
BytesWrittenOutFromMemcached
キャッシュノードによってネットワークに書き込 Bytes
まれたバイト数。
CasBadval
キャッシュが受信したが、その Cas (チェックと カウント
設定)値と格納されている Cas 値が一致しない
CAS リクエストの数。
CasHits
キャッシュが受信し、リクエストされたキーが見 カウント
つかって Cas 値が一致した Cas リクエストの数。
CasMisses
キャッシュが受信したが、リクエストされたキー カウント
が見つからない Cas リクエストの数。
CmdFlush
キャッシュが受信した flush コマンドの数。
API Version 2015-02-02
267
単位
Bytes
カウント
Amazon ElastiCache ユーザーガイド
Memcached のメトリックス
メトリックス
説明
単位
CmdGet
キャッシュが受信した get コマンドの数。
カウント
CmdSet
キャッシュが受信した set コマンドの数。
カウント
CurrConnections
特定の時点でキャッシュに接続された接続回数。 カウント
CurrItems
キャッシュに現在格納されている項目の数。
DecrHits
キャッシュが受信し、リクエストされたキーが見 カウント
つかったデクリメントリクエストの数。
DecrMisses
キャッシュが受信したが、リクエストされたキー カウント
が見つからなかったデクリメントリクエストの
数。
DeleteHits
キャッシュが受信し、リクエストされたキーが見 カウント
つかった削除リクエストの数。
DeleteMisses
キャッシュが受信したが、リクエストされたキー カウント
が見つからなかった削除リクエストの数。
Evictions
新しく書き込むための領域を確保するためにキャッ カウント
シュが排除した、期限切れではない項目の数。
GetHits
キャッシュが受信し、リクエストされたキーが見 カウント
つかった get リクエストの数。
GetMisses
キャッシュが受信したが、リクエストされたキー カウント
が見つからなかった get リクエストの数。
IncrHits
キャッシュが受信し、リクエストされたキーが見 カウント
つかったインクリメントリクエストの数。
IncrMisses
キャッシュが受信したが、リクエストされたキー カウント
が見つからなかったインクリメントリクエストの
数。
Reclaimed
新しく書き込むための領域を確保するためにキャッ カウント
シュが排除した、期限切れ項目の数。
カウント
Memcached 1.4.14 では、次のメトリックスが追加で提供されます。
メトリックス
説明
単位
BytesUsedForHash
ハッシュテーブルで現在使用されているバイト
数。
Bytes
CmdConfigGet
config get リクエストの累積数。
カウント
CmdConfigSet
config set リクエストの累積数。
カウント
CmdTouch
touch リクエストの累積数。
カウント
CurrConfig
現在格納されている設定の数。
カウント
EvictedUnfetched
設定されてからまったくタッチされていない LRU カウント
キャッシュから排除された有効な項目の数。
API Version 2015-02-02
268
Amazon ElastiCache ユーザーガイド
Redis のメトリックス
メトリックス
説明
単位
ExpiredUnfetched
設定されてからまったくタッチされていない LRU カウント
キャッシュから再生された有効期限切れの項目の
数。
SlabsMoved
移動されたスラブページの合計数。
TouchHits
タッチされて新しい有効期限を与えられたキーの カウント
数。
TouchMisses
タッチされたが見つからなかった項目の数。
カウント
カウント
次の表では、算出されたキャッシュレベルのメトリックスについて説明します。
メトリックス
説明
単位
NewConnections
キャッシュが受信した新しい接続の数。これは、 カウント
Memcached total_connections 統計に基づ
き、一定期間にわたる total_connections の
変更を記録することで算出されます。この値は、
ElastiCache に予約された接続が 1 つあるため、
少なくとも 1 になります。
NewItems
キャッシュが格納した新しい項目の数。これは、 カウント
Memcached total_items 統計に基づき、一定
期間にわたる total_items の変更を記録するこ
とで算出されます。
UnusedMemory
データに使用されていないメモリの量。この値
Bytes
は、Memcached 統計の limit_maxbytes と
bytes のうち、limit_maxbytes から bytes を
引いたものから派生しています。
Memcached がデータに加えてオーバーヘッドに
もメモリを使用するため、UnusedMemory は追加
データに使用できるメモリ量としてはみなされま
せん。未使用メモリがまだ残っている状態でも削
除が発生する場合があります。
詳細については、「Memcached item memory usage」を参照してください。
Redis のメトリックス
次の表は、ElastiCache が提供するメトリックスを示します。ReplicationLag を除き、これらのメト
リックスは、Redis info コマンドから算出されます。各メトリックスは、キャッシュノードレベルで算
出されます。
Redis info コマンドの詳細は、http://redis.io/commands/info を参照してください。
以下の資料も参照してください。
API Version 2015-02-02
269
Amazon ElastiCache ユーザーガイド
Redis のメトリックス
• ホストレベルのメトリックス (p. 267)
メトリックス
説明
単位
BytesUsedForCache
Redis によって割り当てられた総バイト数。
Bytes
CacheHits
成功したキー検索の数。
カウント
CacheMisses
失敗したキー検索の数。
カウント
CurrConnections
クライアントの接続数(リードレプリカからの接 カウント
続を除く)。
Evictions
maxmemory の制限のため排除されたキーの数。
HyperLogLogBasedCmds
HyperLogLog ベースのコマンドの総数。これは、 カウント
Redis commandstats 統計に基づき、すべての pf
方のコマンド (pfadd、pfcount、pfmerge) を合計
することで算出されます。
NewConnections
この期間内にサーバーによって受け入れられた接 カウント
続の総数。
Reclaimed
キーの有効期限切れイベントの総数。
ReplicationBytes
レプリカがアタッチされたプライマリについて
Bytes
は、ReplicationBytes は、プライマリがすべ
てのレプリカに対して送信するバイト数を報告し
ます。このメトリックスは、レプリケーショング
ループに対する書き込み負荷を表します。レプリ
カおよびスタンドアロンのプライマリについて
は、ReplicationBytes は常に 0 です。
ReplicationLag
このメトリックスは、リードレプリカとして実行 Seconds
中のキャッシュノードにのみ適用できます。レプ
リカのプライマリキャッシュクラスターからの変
更適用の進行状況を秒で表します。
SaveInProgress
このバイナリメトリックスは、バックグラウンド カウント
保存 (分岐または分岐なし) が進行中の場合は常に
1 を返し、それ以外の場合は 0 を返します。バッ
クグラウンド保存プロセスは一般に、スナップ
ショットおよび同期の際に使用されます。これら
のオペレーションによりパフォーマンスが低下す
る可能性があります。 SaveInProgress メト
リックスを使用して、パフォーマンスが低下した
原因がバックグラウンド保存プロセスであるかど
うかを診断できます。
カウント
カウント
これらは特定の種類のコマンドの集計で、info commandstats から算出されています。
メトリックス
説明
CurrItems
キャッシュの項目数。これは、Redis keyspace カウント
統計に基づき、キー空間全体のすべてのキーを合
計することで算出されます。
API Version 2015-02-02
270
単位
Amazon ElastiCache ユーザーガイド
Redis のメトリックス
メトリックス
説明
GetTypeCmds
get の種類のコマンドの総数。これは、Redis
カウント
commandstats 統計に基づき、get 型のすべての
コマンド (get、mget、hget など) を合計すること
で算出されます。
HashBasedCmds
ハッシュベースのコマンドの総数。これは、Redis カウント
commandstats 統計に基づき、1 つ以上のハッ
シュに対して実行されるすべてのコマンドを合計
することで算出されます。
KeyBasedCmds
キーベースのコマンドの総数。これは、Redis
カウント
commandstats 統計に基づき、1 つ以上のキーに
対して実行されるすべてのコマンドを合計するこ
とで算出されます。
ListBasedCmds
リストベースのコマンドの総数。これは、Redis カウント
commandstats 統計に基づき、1 つ以上のリスト
に対して実行されるすべてのコマンドを合計する
ことで算出されます。
SetBasedCmds
セットベースのコマンドの総数。これは、Redis カウント
commandstats 統計に基づき、1 つ以上のセット
に対して実行されるすべてのコマンドを合計する
ことで算出されます。
SetTypeCmds
set の種類のコマンドの総数。これは、Redis
カウント
commandstats 統計に基づき、set 型のすべての
コマンド (set、hset など) を合計することで算出
されます。
SortedSetBasedCmds
ソートされたセットベースのコマンドの総数。こ カウント
れは、Redis commandstats 統計に基づき、1 つ
以上のソートされたセットに対して実行されるす
べてのコマンドを合計することで算出されます。
StringBasedCmds
文字列ベースのコマンドの総数。これは、Redis カウント
commandstats 統計に基づき、1 つ以上の文字列
に対して実行されるすべてのコマンドを合計する
ことで算出されます。
API Version 2015-02-02
271
単位
Amazon ElastiCache ユーザーガイド
モニタリングすべきメトリックス
モニタリングすべきメトリックス
Abstract
ElastiCache パフォーマンスのモニタリングに使用する CloudWatch メトリックスに関するベストプラクティスを
一覧に示します。
次の CloudWatch メトリックスは、ElastiCache パフォーマンスを把握するのに役立ちます。ほとんど
の場合、パフォーマンスの問題が発生する前に修正作業を行うことができるように、これらのメトリッ
クスに CloudWatch アラームを設定することをお勧めします。
CPUUtilization
パーセント単位でレポートされるホストレベルのメトリックスです。詳細については、「ホストレベル
のメトリックス (p. 267)」を参照してください。
• Memcached: Memcached はマルチスレッドのため、このメトリックスは約 90% です。このしきい
値を超えた場合、より大きいキャッシュノードタイプを使用してキャッシュクラスターをスケールす
るか、さらにキャッシュノードを追加してスケールアウトしてください。
• Redis: Redis はシングルスレッドのため、しきい値は(90/プロセッサのコア数)で計算されます。
たとえば、4 個のコアを搭載する cache.m1.xlarge ノードを使用しているとします。この場合、
CPUUtilization のしきい値は(90/4)、つまり 22.5% になります。
使用しているキャッシュノードのコア数に基づいて独自のしきい値を決定する必要があります。この
しきい値を超えた場合で、主なワークロードが読み込みリクエストから生成されている場合、リード
レプリカを追加してキャッシュクラスターをスケールします。主なワークロードが書き込みリクエス
トから生成されている場合、大きいキャッシュインスタンスタイプを使用してスケールアップするこ
とをお勧めします。
SwapUsage
バイト単位でレポートされるホストレベルのメトリックスです。詳細については、「ホストレベルのメ
トリックス (p. 267)」を参照してください。
• Memcached: このメトリックスは 50 MB を超えてはなりせん。超えた場合、ConnectionOverhead
パラメータ値を大きくすることをお勧めします。
• Redis: 現時点では、このパラメータに関する推奨事項はありません。CloudWatch アラームを設定す
る必要はありません。
Evictions
これは、Memcached キャッシュクラスターと Redis キャッシュクラスターの両方に対して発行される
キャッシュエンジンメトリックスです。アプリケーションニーズに基づいてこのメトリックスの独自の
アラームしきい値を決定することをお勧めします。
• Memcached: 選択したしきい値を超過した場合、大きいキャッシュノードタイプを使用してキャッ
シュクラスターをスケールするか、さらにキャッシュノードを追加してスケールアウトしてくださ
い。
• Redis: 指定したしきい値を超過する場合は、さらに上のノードタイプを使用してクラスターを拡張し
ます。
CurrConnections
これは、Memcached キャッシュクラスターと Redis キャッシュクラスターの両方に対して発行される
キャッシュエンジンメトリックスです。アプリケーションニーズに基づいてこのメトリックスの独自の
アラームしきい値を決定することをお勧めします。
API Version 2015-02-02
272
Amazon ElastiCache ユーザーガイド
モニタリングすべきメトリックス
Memcached と Redis のどちらを実行しているかにかかわらず、CurrConnections の値が大きくなった
場合、アプリケーションに問題があることを示している可能性があります。アプリケーション動作を調
査してこの問題を解決する必要があります。
API Version 2015-02-02
273
Amazon ElastiCache ユーザーガイド
メトリックスの統計と期間の選択
メトリックスの統計と期間の選択
CloudWatch では、各メトリックスの統計および期間を選択できますが、すべての組み合わせが役に立
つとは言えません。たとえば、CPUUtilization の Average、Minimum、および Maximum 統計は役に立
ちますが、Sum 統計は役に立ちません。
ElastiCache のすべてのサンプルは、個々のキャッシュノードに対して 60 秒間発行されています。任
意の 60 秒間において、キャッシュノードメトリックスに含められるサンプルは 1 つだけです。
キャッシュノードのメトリックスを取得する方法の詳細については、「Monitoring CloudWatch Cache
Cluster and Cache Node Metrics (p. 274)」を参照してください。
Monitoring CloudWatch Cache Cluster and Cache
Node Metrics
Abstract
CloudWatch を使用して、メトリックスによりキャッシュクラスターとキャッシュノードをモニタリングします。
ElastiCache と CloudWatch は、多様なメトリックスを収集できるように統合されています。CloudWatch
を使用して、これらのメトリックスをモニタリングできます。
Note
次の例には、コマンドラインツール CloudWatch が必要です。CloudWatch の詳細についてと
開発者ツールのダウンロードについては、CloudWatch 製品ページを参照してください。
次の手順は、CloudWatch を使用して、過去 1 時間のキャッシュクラスターのストレージ領域統計を収
集する方法を示しています。
Note
以下の例で指定されている StartTime 値と EndTime 値は、例示を目的としています。実際
のキャッシュノードに適した開始時刻値および終了時刻値で置き換える必要があります。
ElastiCache の制限の詳細については、「AWS サービスの制限」(ElastiCache 用) を参照してくださ
い。
Monitoring CloudWatch Cache Cluster and Cache Node Metrics
AWS マネジメントコンソールの使用
キャッシュクラスターの CPU 使用率統計を収集するには
1.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
メトリックスを表示するキャッシュノードを選択します。
Note
20 個を超えるノードを選択すると、コンソールでメトリックスを表示できなくなります。
a.
AWS マネジメントコンソールの [Cache Clusters] ページで、1 つ以上のキャッシュクラスター
の名前をクリックします。
API Version 2015-02-02
274
Amazon ElastiCache ユーザーガイド
Monitoring CloudWatch Cache Cluster and Cache Node
Metrics
b.
c.
キャッシュクラスターの詳細ページが表示されます。
ウィンドウ上部にある [Nodes] タブをクリックします。
詳細ウィンドウの [Nodes] タブで、メトリックスを表示するキャッシュノードを選択します。
d.
使用可能な CloudWatch メトリックスのリストがコンソールウィンドウの下部に表示されま
す。
[CPU Utilization] メトリックスをクリックします。
CloudWatch コンソールが開き、選択されたメトリックスが表示されます。[Statistic] および
[Period] ドロップダウンリストボックスや [Time Range] タブを使用すると、表示されるメト
リックスを変更できます。
Monitoring CloudWatch Cache Cluster and Cache Node Metrics
CloudWatch CLI の使用
キャッシュクラスターの CPU 使用率統計を収集するには
•
以下のパラメータを指定して、CloudWatch コマンド mon-get-stats を使用します(示されている
開始時刻と終了時刻は例です。適切な開始時刻と終了時刻に置き換える必要があります)。
Linux, OS X, or Unix 用:
mon-get-stats CPUUtilization \
--dimensions="CacheClusterId=mycachecluster,CacheNodeId=0002" \
--statistics=Average \
--namespace="AWS/ElastiCache" \
--start-time 2013-07-05T00:00:00 \
--end-time 2013-07-06T00:00:00 \
--period=60
Windows の場合:
mon-get-stats CPUUtilization ^
--dimensions="CacheClusterId=mycachecluster,CacheNodeId=0002" ^
--statistics=Average ^
--namespace="AWS/ElastiCache" ^
--start-time 2013-07-05T00:00:00 ^
--end-time 2013-07-06T00:00:00 ^
--period=60
Monitoring CloudWatch Cache Cluster and Cache Node Metrics
CloudWatch API の使用
キャッシュクラスターの CPU 使用率統計を収集するには
•
以下のパラメータを指定して、CloudWatch API GetMetricStatistics を呼び出します(示され
ている開始時刻と終了時刻は例です。適切な開始時刻と終了時刻に置き換える必要があります)。
• Statistics.member.1=Average
• Namespace=AWS/ElastiCache
API Version 2015-02-02
275
Amazon ElastiCache ユーザーガイド
Monitoring CloudWatch Cache Cluster and Cache Node
Metrics
• StartTime=2013-07-05T00:00:00
• EndTime=2013-07-06T00:00:00
• Period=60
• MeasureName=CPUUtilization
• Dimensions=CacheClusterId=mycachecluster,CacheNodeId=0002
Example
http://monitoring.amazonaws.com/
?SignatureVersion=4
&Action=GetMetricStatistics
&Version=2014-12-01
&StartTime=2013-07-16T00:00:00
&EndTime=2013-07-16T00:02:00
&Period=60
&Statistics.member.1=Average
&Dimensions.member.1="CacheClusterId=mycachecluster"
&Dimensions.member.2="CacheNodeId=0002"
&Namespace=AWS/ElastiCache
&MeasureName=CPUUtilization
&Timestamp=2013-07-07T17%3A48%3A21.746Z
&AWSAccessKeyId=<AWS Access Key ID>
&Signature=<Signature>
API Version 2015-02-02
276
Amazon ElastiCache ユーザーガイド
イベントのモニタリング
ElastiCache イベントのモニタリング
Abstract
ElastiCache イベントとその表示方法について説明します。
ノード追加の失敗、ノード追加の成功、セキュリティグループの変更などのような重要なイベントが
キャッシュクラスターで発生すると、ElastiCache は特定の Amazon SNS トピックに通知を送信しま
す。主要イベントをモニタリングすることで、クラスターの現在の状態を知り、イベントに基づいて是
正措置を取ることができます。
トピック
• ElastiCacheAmazon SNS 通知の管理 (p. 277)
• Viewing ElastiCache Events (p. 281)
• イベント通知と Amazon SNS (p. 282)
ElastiCacheAmazon SNS 通知の管理
Amazon Simple Notification Service (Amazon SNS) を使用して重要なクラスターイベントの通知が送信
されるように ElastiCache を設定できます。これらの例では、Amazon SNS トピックの Amazon リソー
スネーム(ARN)を使用してクラスターを設定し、通知を受け取るようにします。
Note
このトピックでは、Amazon SNS にサインアップし、Amazon SNS トピックをセットアップ
およびサブスクライブしていることを前提としています。この方法の詳細については、「Amazon
Simple Notification Service 開発者ガイド」を参照してください。
Amazon SNS トピックの追加
以下のセクションでは、Amazon SNS トピックを AWS コンソール、AWS CLI、または ElastiCache
API を使用して追加する方法について説明します。
Amazon SNS トピックの追加 AWS マネジメントコンソールの使用
以下の手順は、クラスターの Amazon SNS トピックを追加する方法を示しています。レプリケーショ
ングループの Amazon SNS トピックを追加するには、ステップ 2 でクラスターを選択する代わりにレ
プリケーショングループを選択して、残りの同じステップに従います。
Note
このプロセスは、Amazon SNS トピックの変更に使用できます。
クラスターの Amazon SNS トピックを追加または変更するには AWS マネジメントコンソール
の使用
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
[Cache Clusters] リストで、Amazon SNS トピック ARN を追加または変更するクラスターを選択
します。
[Modify] ボタンを選択します。
[Modify Cache Cluster] ウィンドウが表示されます。
API Version 2015-02-02
277
Amazon ElastiCache ユーザーガイド
ElastiCacheAmazon SNS 通知の管理
4.
5.
[Topic for SNS Notification] で追加する SNS トピックを選択するか、または [Manual ARN input] を
選択して Amazon SNS トピックの ARN を入力します。
[Modify] ボタンを選択します。
Amazon SNS トピックの追加 AWS CLI の使用
クラスターの Amazon SNS トピックを追加または変更するには、AWS CLI コマンド
modify-cache-cluster を使用します。レプリケーショングループの Amazon SNS トピックを追加
または変更するには、AWS CLI コマンド modify-replication-group を使用します。
次のコード例は、Amazon SNS トピック ARN を my-cache-cluster へ追加します。
Linux, OS X, or Unix 用:
aws elasticache modify-cache-cluster \
--cache-cluster-id my-cache-cluster \
--notification-topic-arn arn:aws:sns:us-west-2:565419523791:ElastiCacheNo
tifications
Windows の場合:
aws elasticache modify-cache-cluster ^
--cache-cluster-id my-cache-cluster ^
--notification-topic-arn arn:aws:sns:us-west-2:565419523791:ElastiCacheNo
tifications
詳細については、「modify-cache-cluster」および「modify-replication-group」を参照してください。
Amazon SNS トピックの追加 ElastiCache API の使用
クラスターの Amazon SNS トピックを追加または変更するには、以下のパラメータを指定して
ModifyCacheCluster アクションを呼び出します。
• CacheClusterId=my-cache-cluster
• TopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications
レプリケーショングループの Amazon SNS トピックを追加または変更するには、
ModifyReplicationGroup アクションを呼び出します。
API Version 2015-02-02
278
Amazon ElastiCache ユーザーガイド
ElastiCacheAmazon SNS 通知の管理
Example
https://elasticache.amazon.com/
?Action=ModifyCacheCluster
&ApplyImmediately=false
&CacheClusterId=my-cache-cluster
&NotificationTopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiC
acheNotifications
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
詳細については、「ModifyCacheCluster」および「ModifyReplicationGroup」を参照してください。
Amazon SNS 通知の有効化と無効化
クラスターでは、通知を有効または無効にすることができます。次の手順は、Amazon SNS 通知を無
効にする方法を示しています。
Amazon SNS 通知の有効化と無効化 AWS マネジメントコンソールの使用
AWS マネジメントコンソール を使用して Amazon SNS 通知を無効にするには
1.
2.
3.
4.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
[Cache Clusters] リストで、Amazon SNS トピック ARN を無効にするクラスターの横にある [Modify]
リンクを選択します。
[Modify Cache Cluster] ウィンドウが表示されます。
[Topic for SNS Notification] リストで、[Disable Notifications] を選択します。
[Modify] ボタンを選択します。
Amazon SNS 通知の有効化と無効化 AWS CLI の使用
Amazon SNS 通知を無効にするには、以下のパラメータを指定して modify-cache-cluster コマン
ドを使用します。
Linux, OS X, or Unix 用:
aws elasticache modify-cache-cluster \
--cache-cluster-id my-cache-cluster \
--notification-topic-status inactive
Windows の場合:
API Version 2015-02-02
279
Amazon ElastiCache ユーザーガイド
ElastiCacheAmazon SNS 通知の管理
aws elasticache modify-cache-cluster ^
--cache-cluster-id my-cache-cluster ^
--notification-topic-status inactive
このコマンドでは、以下のような出力が生成されます。
CACHECLUSTER my-cache-cluster 2013-07-26T01:21:46.607Z cache.m1.large mem
cached
available 3 us-west-2c 1.4.5
SECGROUP default active
PARAMGRP default.memcached1.4 in-sync
NOTIFICATION arn:aws:sns:us-west-2:565419523791:ElastiCacheNotifications
inactive
Amazon SNS 通知の有効化と無効化 ElastiCache API の使用
Amazon SNS 通知を無効にするには、以下のパラメータを指定して ModifyCacheCluster アクショ
ンを呼び出します。
• CacheClusterId=my-cache-cluster
• NotificationTopicStatus=inactive
この呼び出しにより、以下のような出力が返されます。
Example
https://elasticache.us-west-2.amazonaws.com/
?Action=ModifyCacheCluster
&ApplyImmediately=false
&CacheClusterId=my-cache-cluster
&NotificationTopicStatus=inactive
&Version=2014-12-01
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20141201T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20141201T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20141201T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
API Version 2015-02-02
280
Amazon ElastiCache ユーザーガイド
Viewing ElastiCache Events
Viewing ElastiCache Events
ElastiCache は、キャッシュインスタンス、キャッシュセキュリティグループ、キャッシュパラメータ
グループに関連するイベントを記録します。この情報には、イベントの日付と時刻、イベントのソース
名とソースタイプ、イベントの説明などがあります。ElastiCache コンソール、AWS CLI
describe-events コマンド、または ElastiCache API アクション DescribeEvents を使用して、ロ
グから簡単にイベントを取得できます。
次の手順は、過去 24 時間 (1440 分) のすべての ElastiCache イベントを表示する方法を示しています。
Viewing ElastiCache Events AWS マネジメントコンソールの使
用
次の手順は、ElastiCache コンソールを使用してイベントを表示します。
ElastiCache コンソールを使用してイベント表示するには
1.
2.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左のナビゲーションペインの [Cache Events] を選択します。
[Cache Events] 画面に、利用可能なすべてのイベントが一覧されます。リスト内の各行は 1 個の
イベントを表し、イベントのソース、イベントの種類 (キャッシュクラスター、キャッシュパラメー
タグループ、キャッシュサブネットグループ)、イベントの GMT 時間、イベントの説明が表示され
ます。
[Filter] を使用して、イベントリストにすべてのイベントを表示するか特定タイプのイベントのみを
表示するかを指定できます。
Viewing ElastiCache Events AWS CLI の使用
AWS CLI を使用して ElastiCache イベントのリストを作成するには、describe-events コマンドを
使用します。オプションパラメータを使用して、一覧されるイベントのタイプ、イベントの期間、イベ
ント一覧の最大数などを制御できます。
次のコードは、40 個の最新のキャッシュクラスターイベントを一覧します。
aws elasticache describe-events --source-type cache-cluster --max-items 40
次のコードは、過去 24 時間 (1440 分) のキャッシュクラスターイベントを一覧します。
aws elasticache describe-events --source-type cache-cluster --duration 1440
詳細については、describe-events を参照してください。
Viewing ElastiCache Events ElastiCache API の使用
ElastiCache イベントのリストを ElastiCache API を使用して生成するには、DescribeEvents アク
ションを使用します。オプションパラメータを使用して、一覧されるイベントのタイプ、イベントの期
間、イベント一覧の最大数などを制御できます。
次のコードは、40 個の最新のキャッシュクラスターイベントを一覧します。
API Version 2015-02-02
281
Amazon ElastiCache ユーザーガイド
イベント通知と Amazon SNS
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeEvents
&MaxRecords=40
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&SourceType=cache-cluster
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
次のコードは、過去 24 時間 (1440 分) のキャッシュクラスターイベントを一覧します。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeEvents
&Duration=1440
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&SourceType=cache-cluster
&Timestamp=20150202T192317Z
&Version=2015-02-02
&X-Amz-Credential=<credential>
上記のアクションでは、次のような出力が生成されます。
<DescribeEventsResponse xmlns="http://elasticache.amazonaws.com/doc/2015-0202/">
<DescribeEventsResult>
<Events>
<Event>
<Message>Cache cluster created</Message>
<SourceType>cache-cluster</SourceType>
<Date>2015-02-02T18:22:18.202Z</Date>
<SourceIdentifier>my-redis-primary</SourceIdentifier>
</Event>
(...output omitted...)
</Events>
</DescribeEventsResult>
<ResponseMetadata>
<RequestId>e21c81b4-b9cd-11e3-8a16-7978bb24ffdf</RequestId>
</ResponseMetadata>
</DescribeEventsResponse>
詳細については、DescribeEvents を参照してください。
イベント通知と Amazon SNS
Abstract
ElastiCache および Amazon SNS メッセージを含むキャッシュクラスターで発生した重要なイベントの通知を一覧
に示します。
ElastiCache は、キャッシュクラスターで重要なイベントが発生したときに Amazon Simple Notification
Service(SNS)を使用してメッセージを発行できます。この機能を使用すると、キャッシュクラスター
API Version 2015-02-02
282
Amazon ElastiCache ユーザーガイド
イベント通知と Amazon SNS
の個々のキャッシュノードエンドポイントに接続されたクライアントコンピュータでサーバーリストを
更新できます。
Note
料金情報や Amazon SNS ドキュメントへのリンクなど、Amazon Simple Notification Service
(SNS)の詳細については、Amazon SNS 製品ページを参照してください。
通知は、指定した Amazon SNS トピックに発行されます。通知の要件は以下のとおりです:
• ElastiCache 通知に対して設定できるトピックは 1 つだけです。
• Amazon SNS トピックを所有する AWS アカウントは、通知が有効になっているキャッシュクラス
ターを所有するアカウントと同じアカウントである必要があります。
ElastiCache イベント
以下の ElastiCache イベントにより Amazon SNS 通知がトリガーされます。
イベント名
説明 & テキスト
ElastiCache:AddCacheNodeComplete
キャッシュノードがキャッシュクラスターに追加
され、使用可能になっています。
メッセージ: "Finished modifying number
of nodes from %d to %d"
ElastiCache:AddCacheNodeFailed(使用できる
IP アドレスが不足しているため)
使用できる IP アドレスが不足しているため、
キャッシュノードを追加できませんでした。
メッセージ: "Failed to modify number of
nodes from %d to %d due to insufficient
free IP addresses"
ElastiCache:CacheClusterParametersChanged
1 つ以上のキャッシュクラスターパラメータが変
更されました。
メッセージ: "Updated parameter %s to %s"
作成の場合は、"Updated to use a CacheParameterGroup %s" も送ります。
ElastiCache:CacheClusterProvisioningComplete
キャッシュクラスターのプロビジョニングが完了
し、キャッシュクラスター内のキャッシュノード
が使用可能になりました。
メッセージ: "Cache cluster created"
ElastiCache:CacheClusterProvisioningFailed(ネッ 存在しない Virtual Private Cloud(VPC)に新しい
トワーク状態に互換性がないため)
キャッシュクラスターに起動する試みが行われま
した。
メッセージ: "Failed to create the cache
cluster due to incompatible network
state"
API Version 2015-02-02
283
Amazon ElastiCache ユーザーガイド
イベント通知と Amazon SNS
イベント名
説明 & テキスト
ElastiCache:CacheClusterRestoreFailed
ElastiCache が、キャッシュクラスターに Redis
スナップショットデータを入力できませんでし
た。これは、Amazon S3 にスナップショットファ
イルが存在しないか、そのファイルに対するアク
セス許可が間違っていることが原因の可能性があ
ります。キャッシュクラスターを記述する場合、
ステータスは restore-failed です。キャッシュ
クラスターを削除してやり直す必要があります。
詳細については、「Using a Snapshot to Seed a
Cluster (p. 182)」を参照してください。
メッセージ: "Restore from %s failed for
node %s"
ElastiCache:CacheClusterSecurityGroupModified 以下のいずれかのイベントが発生しました。
• キャッシュクラスターに承認されたキャッシュ
セキュリティグループのリストが修正されまし
た。
• 1 つ以上の新しい EC2 セキュリティグループ
が、キャッシュクラスターに関連付けられた
キャッシュセキュリティグループで承認されま
した。
• 1 つ以上の EC2 セキュリティグループが、
キャッシュクラスターに関連付けられたキャッ
シュセキュリティグループから取り消されまし
た。
メッセージ: "Applied change to security
group"
ElastiCache:CacheNodeReplaceComplete
ElastiCache が、キャッシュノードを実行してい
るホストのパフォーマンスが低下しているか、到
達できないことを検出したため、キャッシュノー
ドの置き換えを完了しました。
Note
置き換えられたキャッシュノードの DNS
エントリは変更されません。
ほとんどのインスタンスでは、このイベントが発
生したときにクライアントのサーバーリストを更
新する必要はありません。ただし、一部のキャッ
シュクライアントライブラリは、ElastiCache が
キャッシュノードを置き換えた後でもキャッシュ
ノードの使用を停止する可能性があります。この
場合、このイベントが発生したとき、アプリケー
ションがサーバーリストを更新する必要がありま
す。
メッセージ: "Finished recovery for cache
nodes %s"
API Version 2015-02-02
284
Amazon ElastiCache ユーザーガイド
イベント通知と Amazon SNS
イベント名
説明 & テキスト
ElastiCache:CacheNodesRebooted
1つ以上のキャッシュノードが再起動されました。
メッセージ(Memcached): "Cache node %s
shutdown" 2 番目のメッセージ: "Cache node
%s restarted"
メッセージ(Redis): "Cache node %s restarted"
ElastiCache: CreateReplicationGroupComplete
レプリケーショングループは正常に作成されてい
ます。
メッセージ: "Replication group %s created"
ElastiCache: CreateReplicationGroupFailed
レプリケーショングループは作成されませんでし
た。
メッセージ: "Failed to create replication
group %s due to unsuccessful creation
of its cache cluster(s)." と "Deleting
all cache clusters belonging to this
replication group."
ElastiCache:DeleteCacheClusterComplete
キャッシュクラスターと関連するすべてのアプリ
ケーションキャッシュノードの削除が完了しまし
た。
メッセージ: "Cache cluster deleted"
ElastiCache:NodeReplacementCanceled
置き換え対象となっていたクラスター内のノード
が置き換え対象ではなくなりました。
メッセージ: "The replacement for Cache
Cluster ID: %s, Node ID: %s scheduled
during the maintenance window from
Start Time: %s, End Time: %s has been
canceled"
ElastiCache:NodeReplacementRescheduled
以前置き換え対象になったクラスター内のノード
のスケジュールが、通知に記載されている新しい
期間に変更されました。
実行可能なアクションについては、「ノードが置
き換え対象となった場合に実行可能なアクショ
ン (p. 81)」を参照してください。
メッセージ: "The replacement in maintenance window for node with Cache Cluster
ID: %s, Node ID: %s has re-scheduled
from Previous Start Time: %s, Previous
End Time: %s to New Start Time: %s,
New End Time: %s""
API Version 2015-02-02
285
Amazon ElastiCache ユーザーガイド
イベント通知と Amazon SNS
イベント名
説明 & テキスト
ElastiCache:NodeReplacementScheduled
クラスター内のノードが、通知に記載されている
期間中の置き換え対象となりました。
実行可能なアクションについては、「ノードが置
き換え対象となった場合に実行可能なアクショ
ン (p. 81)」を参照してください。
メッセージ: "The node with Cache Cluster
ID: %s, Node ID: %s is scheduled for
replacement during the maintenance
window from Start Time: %s, End Time:
%s"
ElastiCache:RemoveCacheNodeComplete
キャッシュノードがキャッシュクラスターから削
除されました。
メッセージ: "Removed cache nodes %s"
ElastiCache:SnapshotComplete
キャッシュスナップショットの作成が正常に完了
しました。
メッセージ: "Snapshot succeeded for
snapshot with ID '%s' of cache cluster
with ID '%s'"
ElastiCache:SnapshotFailed
キャッシュスナップショットの作成に失敗しまし
た。詳細な原因については、クラスターのキャッ
シュイベントを参照してください。
スナップショットを表示する場合は、「DescribeSnapshots」を参照してください。ステータスは
failed です。
メッセージ: "Snapshot failed for snapshot
with ID '%s' of cache cluster with ID
'%s'"
ElastiCache イベントの表示方法については、「Viewing ElastiCache Events (p. 281)」を参照してくだ
さい。
API Version 2015-02-02
286
Amazon ElastiCache ユーザーガイド
コストのモニタリング
コスト配分のタグによるコストのモニタリング
Abstract
Amazon ElastiCache でリソースにコスト配分タグを追加する場合、リソースのタグ値に基づいて請求
書の費用をグループ化してコストを追跡できます。
ElastiCache コスト配分タグは、ElastiCache リソースを定義してそのリソースに関連付けるキーと値
のペアです。キーと値は大文字と小文字が区別されます。タグキーを使用してカテゴリを定義し、タグ
値をそのカテゴリの項目にすることができます。たとえば、「CostCenter」というタグキーと「10010」
というタグ値を定義して、リソースがコストセンター 10010 に割り当てられていることを示すことが
できます。また、Environment などのキーと、test や production などの値を使用して、リソース
がテスト用なのか本稼働用なのかを示すこともできます。リソースに関連付けられているコストの追跡
が簡単になるように、一貫した一連のタグキーを使用することをお勧めします。
コスト配分タグを使用して AWS 請求書を整理し、自分のコスト構造を反映します。そのためには、
AWS アカウントにサインアップして、タグキー値が含まれた AWS アカウントの請求書を取得する必
要があります。 次に、結合したリソースのコストを見るには、同じタグキー値のリソースに従って請
求書情報を整理します。たとえば、複数のリソースに特定のアプリケーション名のタグを付け、請求情
報を整理することで、複数のサービスを利用しているアプリケーションの合計コストを確認することが
できます。
タグを組み合わせてさらに細かくコストを追跡することもできます。たとえば、リージョンごとのサー
ビスのコストを追跡するために、Service と Region というタグキーを使用できます。1 つのリソー
スでは値を ElastiCache と にし、別のリソースでは値を ElastiCache と にします。これによって、ElastiCache のコストの合計を表示することも、リージョンご
との内訳を表示することもできます。詳細については、『AWS 請求とコスト管理ユーザーガイド』の
「コスト配分タグの使用」を参照してください。
クラスターやスナップショットに ElastiCache コスト配分タグを追加できます。タグを追加、一覧表
示、コピー、または削除すると、レプリケーショングループ内のクラスターであっても、指定されたク
ラスターまたはスナップショットにのみそのアクションが適用されます。
スナップショットに追加されたタグは、コスト配分レポートには使用されません。スナップショットの
タグは、クラスターのタグを保持または復元するために使用されます。スナップショットを作成すると
きに、クラスターにあるタグはスナップショットにコピーされます。スナップショットから復元すると
きには、スナップショットにあるタグがクラスターにコピーされます。
ElastiCache コスト配分タグの特徴
• タグキーは、必須のタグ名です。キーの文字列値は、長さが 1 ~ 128 文字の Unicode 文字です。
「aws:」をプレフィックスとして使用することはできません。文字列には、一連の Unicode 文字、
数字、空白、「_」、「.」、「:」、「/」、「=」、「+」、「-」、「@」を含めることができます。
• タグ値は、オプションのタグの値です。値の文字列値は、長さが 1 ~ 256 文字の Unicode 文字です。
「aws:」をプレフィックスとして使用することはできません。文字列には、一連の Unicode 文字、
数字、空白、「_」、「.」、「:」、「/」、「=」、「+」、「-」、「@」を含めることができます。
• リソースには、最大 10 個のタグを設定できます。
• 値はタグセット内で一意である必要はありません。たとえば、タグセット内に Servide と Application
というキーがあり、両方の値として ElastiCache を指定できます。
AWS は、タグに意味を適用しません。タグは文字列として厳密に解釈されます。AWS によって、どの
ElastiCache リソースのタグも自動的には設定されません。
ElastiCache マネジメントコンソール、AWS CLI、ElastiCache API を使用して、ElastiCache リソース
のタグを追加、リスト表示、変更、または削除することができます。
API Version 2015-02-02
287
Amazon ElastiCache ユーザーガイド
コストのモニタリング
Important
Amazon ElastiCache のタグ付けは、ElastiCache CLI ではサポートされていません。代わりに
AWS CLI for ElastiCache を使用します。
トピック
• Adding Tags to Your ElastiCache Resource (p. 289)
• Listing Your ElastiCache Resource's Tags (p. 291)
• Modifying Your ElastiCache Resource's Tags (p. 293)
• Removing Tags from Your ElastiCache Resource (p. 294)
• Copying Tags to Your ElastiCache Resource (p. 296)
API Version 2015-02-02
288
Amazon ElastiCache ユーザーガイド
Adding Tags to Your ElastiCache Resource
Adding Tags to Your ElastiCache Resource
ElastiCache マネジメントコンソール、AWS CLI、ElastiCache API を使用して、ElastiCache リソース
にタグを追加できます。
トピック
• Adding Tags to Your ElastiCache Resource AWS マネジメントコンソールの使用 (p. 289)
• Adding Tags to Your ElastiCache Resource AWS CLI の使用 (p. 290)
• Adding Tags to Your ElastiCache Resource ElastiCache API の使用 (p. 291)
Adding Tags to Your ElastiCache Resource AWS マネジメント
コンソールの使用
ElastiCache マネジメントコンソールを使用して、ElastiCache リソースにタグを追加できます。リソー
スには、最大 10 個のタグを設定できます。
ElastiCache マネジメントコンソールを使用して、ElastiCache リソースにタグを追加するには
1.
2.
3.
4.
5.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
タグを追加する対象の ElastiCache リソースに応じて、[Clusters] または [Snapshots] をクリック
します。
タグを追加する対象の ElastiCache リソースを選択します。
リソースを選択すると、詳細エリアの下部にこのリソースの現在のタグ名と値が表示されます。
画面の上部にある [Manage Tags] をクリックします。
このリソースにタグを追加するには、[Manage Tags] ダイアログボックスで、次の操作を行いま
す。
1.
2.
[Key] 列で、「Add key」と表示されているテキストボックスにキー名を入力します。
このキーに値を追加するには、キー名の右側にある [Value] 列のテキストボックスにキーの値
を入力します。
このリソースに複数のタグを追加するには、追加する各タグについて前の手順を繰り返します。
このリソースに追加したくないタグキーを入力した場合は、タグの右側にある [X] をクリックして
削除します。
API Version 2015-02-02
289
Amazon ElastiCache ユーザーガイド
Adding Tags to Your ElastiCache Resource
6.
作業が終了したら、[Apply Changes] をクリックして変更を保存するか、[Cancel] をクリックして
変更を破棄します。
Adding Tags to Your ElastiCache Resource AWS CLI の使用
AWS CLI の add-tags-to-resource ElastiCache 用 AWS CLI のコマンド を使用して、既存の
ElastiCache リソースにタグを追加できます。
次のコードは、AWS CLI を使用して、us-west-2 リージョンのリソース myCluster に、Service と
Region というキーを追加し、それぞれの値を elasticache と us-west-2 に設定します。
resource-name パラメータ値は ARN の形式(arn:aws:elasticache:<region>:<customer
id>:<resource type>:<resource name>)になります。
Linux, OS X, or Unix 用:
aws elasticache add-tags-to-resource \
--resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster \
--tags Key=Service,Value=elasticache \
Key=Region,Value=us-west-2
Windows の場合:
aws elasticache add-tags-to-resource ^
--resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster ^
--tags Key=Service,Value=elasticache ^
Key=Region,Value=us-west-2
詳細については、ElastiCache 用 AWS CLI の「add-tags-to-resource」を参照してください。
AWS CLI を使用することによって、create-cache-cluster コマンドで新しいクラスターを作成すると
き、または create-replication-group コマンドで新しいレプリケーショングループを作成するときに、ク
ラスターにタグを追加することもできます。ElastiCache マネジメントコンソールでは、リソースの作
成時にタグを追加できないことに注意してください。クラスターやレプリケーショングループを作成し
た後は、コンソールを使用してリソースにタグを追加できます。
API Version 2015-02-02
290
Amazon ElastiCache ユーザーガイド
Listing Your ElastiCache Resource's Tags
Adding Tags to Your ElastiCache Resource ElastiCache API の
使用
ElastiCache API の AddTagsToResource アクションを使用して、既存の ElastiCache リソースにタグ
を追加できます。
次のコードは、ElastiCache API を使用して、us-west-2 リージョンのリソース myCluster に、Service
と Region というキーを追加し、それぞれの値を elasticache と us-west-2 に設定します。
ResourceName パラメータ値は ARN の形式(arn:aws:elasticache:<region>:<customer
id>:<resource type>:<resource name>)になります。
https://elasticache.us-west-2.amazonaws.com/
?Action=AddTagsToResource
&ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Tags.member.1.Key=Service
&Tags.member.1.Value=elasticache
&Tags.member.2.Key=Region
&Tags.member.2.Value=us-west-2
&Version=2015-02-02
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
詳細については、「AddTagsToResource」(ElastiCache API ドキュメント) を参照してください。
Listing Your ElastiCache Resource's Tags
ElastiCache マネジメントコンソール、AWS CLI、ElastiCache API を使用して、指定したリソースの
タグをリスト表示することができます。
トピック
• Listing Your ElastiCache Resource's Tags AWS マネジメントコンソールの使用 (p. 291)
• Listing Your ElastiCache Resource's Tags AWS CLI の使用 (p. 292)
• Listing Your ElastiCache Resource's Tags ElastiCache API の使用 (p. 292)
Listing Your ElastiCache Resource's Tags AWS マネジメントコ
ンソールの使用
ElastiCache マネジメントコンソールを使用して、リソースのタグを表示できます。
ElastiCache マネジメントコンソールを使用してリソースのタグを表示するには
1.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
2.
現在のタグを表示する対象のリソースのタイプに応じて、[Clusters] または [Snapshots] をクリッ
クします。
タグリストを表示する対象の ElastiCache リソースを選択します。
3.
このリソースの現在のタグのリストが詳細エリアの下部に表示されます。
API Version 2015-02-02
291
Amazon ElastiCache ユーザーガイド
Listing Your ElastiCache Resource's Tags
Listing Your ElastiCache Resource's Tags AWS CLI の使用
AWS CLI の list-tags-for-resource コマンドを使用して、既存の ElastiCache リソースのタグをリスト表
示できます。
次のコードは、ElastiCache AWS CLI を使用して、us-west-2 リージョンのリソース myCluster のタ
グをリスト表示します。
resource-name パラメータ値は ARN の形式(arn:aws:elasticache:<region>:<customer
id>:<resource type>:<resource name>)になります。
Linux, OS X, or Unix 用:
aws elasticache list-tags-for-resource \
--resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster
Windows の場合:
aws elasticache list-tags-for-resource ^
--resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster
詳細については、ElastiCache 用 AWS CLI の「list-tags-for-resource」を参照してください。
Listing Your ElastiCache Resource's Tags ElastiCache API の使
用
ElastiCache API の ListTagsForResource アクションを使用して、既存のリソースのタグをリスト表示
できます。
次のコードは、ElastiCache API を使用して、us-west-2 リージョンのリソース myCluster のタグをリ
スト表示します。
ResourceName パラメータ値は ARN の形式(arn:aws:elasticache:<region>:<customer
id>:<resource type>:<resource name>)になります。
https://elasticache.us-west-2.amazonaws.com/
?Action=ListTagsForResource
&ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Version=2015-02-02
API Version 2015-02-02
292
Amazon ElastiCache ユーザーガイド
Modifying Your ElastiCache Resource's Tags
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
Modifying Your ElastiCache Resource's Tags
ElastiCache マネジメントコンソール、AWS CLI、ElastiCache API を使用して、ElastiCache リソース
の既存のタグを変更できます。
トピック
• Modifying Your ElastiCache Resource's Tags AWS マネジメントコンソールの使用 (p. 293)
• Modifying Your ElastiCache Resource's Tags AWS CLI の使用 (p. 293)
• Modifying Your ElastiCache Resource's Tags ElastiCache API の使用 (p. 294)
Modifying Your ElastiCache Resource's Tags AWS マネジメン
トコンソールの使用
ElastiCache マネジメントコンソールを使用して、リソースの既存のタグを変更できます。
ElastiCache マネジメントコンソールを使用して、ElastiCache リソースのタグを変更するには
1.
2.
3.
4.
5.
6.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
タグを変更する対象の ElastiCache リソースに応じて、[Clusters] または [Snapshots] をクリック
します。
タグを変更する対象の ElastiCache リソースを選択します。
画面の上部にある [Manage Tags] をクリックします。
タグの値を変更するには、タグのキー名の右側にある [Value] テキストボックスの値を削除する
か、別の値を入力します。
作業が終了したら、[Apply Changes] をクリックして変更を保存するか、[Cancel] をクリックして
変更を破棄します。
Modifying Your ElastiCache Resource's Tags AWS CLI の使用
AWS CLI を使用して、ElastiCache リソースのタグを変更できます。
API Version 2015-02-02
293
Amazon ElastiCache ユーザーガイド
Removing Tags from Your ElastiCache Resource
タグの値を変更するには、add-tags-to-resource を使用して新しい値のタグを追加するか、
remove-tags-from-resource を使用してリソースから指定したタグを削除します。
Modifying Your ElastiCache Resource's Tags ElastiCache API
の使用
ElastiCache API を使用して、ElastiCache リソースのタグを変更できます。
タグの値を変更するには、AddTagsToResource アクションを使用してタグを追加するか、
RemoveTagsFromResource を使用してリソースからタグを削除します。
Removing Tags from Your ElastiCache Resource
ElastiCache マネジメントコンソール、AWS CLI、ElastiCache API を使用して、リソースから 1 つ以
上のタグを削除できます。
Removing Tags from Your ElastiCache Resource AWS マネジ
メントコンソールの使用
ElastiCache マネジメントコンソールを使用して、既存の ElastiCache リソースからタグを削除できま
す。
ElastiCache マネジメントコンソールを使用して、ElastiCache リソースからタグを削除するに
は
1.
2.
3.
4.
5.
AWS マネジメントコンソールにサインインして Amazon ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
タグを削除する対象の ElastiCache リソースに応じて、[Clusters] または [Snapshots] をクリック
します。
タグを削除する対象の ElastiCache リソースを選択します。
画面の上部にある [Manage Tags] をクリックします。
このリソースから削除する各タグについて、タグの右側にある [Delete] チェックボックスをオンに
します。
API Version 2015-02-02
294
Amazon ElastiCache ユーザーガイド
Removing Tags from Your ElastiCache Resource
6.
作業が終了したら、[Apply Changes] をクリックして変更を保存するか、[Cancel] をクリックして
変更を破棄します。
Removing Tags from Your ElastiCache Resource AWS CLI の使
用
AWS CLI の remove-tags-from-resource コマンドを使用して、既存の ElastiCache リソースからタグを
削除できます。
次のコードは、AWS CLI を使用して、us-west-2 リージョンのリソース myCluster から、Service
と Region というキーのタグを削除します。
resource-name パラメータ値は ARN の形式(arn:aws:elasticache:<region>:<customer
id>:<resource type>:<resource name>)になります。
Linux, OS X, or Unix 用:
aws elasticache remove-tags-from-resource \
--resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster \
--tag-keys Service Region
Windows の場合:
aws elasticache remove-tags-from-resource ^
--resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster ^
--tag-keys Service Region
詳細については、ElastiCache 用 AWS CLI の「remove-tags-from-resource」を参照してください。
Removing Tags from Your ElastiCache Resource ElastiCache
API の使用
ElastiCache API の RemoveTagsFromResource アクションを使用して、既存の ElastiCache リソース
からタグを削除できます。
次のコードは、ElastiCache API を使用して、us-west-2 リージョンのリソース myCluster から、
Service と Region というキーのタグを削除します。
ResourceName パラメータ値は ARN の形式(arn:aws:elasticache:<region>:<customer
id>:<resource type>:<resource name>)になります。
https://elasticache.us-west-2.amazonaws.com/
?Action=RemoveTagsFromResource
&ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&TagKeys.member.1=Service
&TagKeys.member.2=Region
&Version=2015-02-02
&Timestamp=20150202T192317Z
&X-Amz-Credential=<credential>
API Version 2015-02-02
295
Amazon ElastiCache ユーザーガイド
Copying Tags to Your ElastiCache Resource
Copying Tags to Your ElastiCache Resource
ElastiCache API または AWS CLI を使用して ElastiCache リソースに対して特定のオペレーションを実
行するときに、リソースにタグが存在する場合は、タグがコピーされます。次のリストで、このような
オペレーションと実行されるコピーについて説明します。
• CopySnapshot または copy-snapshot – スナップショットのコピーを作成するときに、ソースのス
ナップショットにタグがある場合、タグもコピー先にコピーされます。
• CreateSnapshot または create-snapshot – スナップショットを作成するときに、ソースクラスターに
タグがある場合、タグもスナップショットにコピーされます。
• RestoreFromSnapshot または restore-from-snapshot – ElastiCache によって作成されたスナップショッ
トからクラスターを復元するときに、スナップショットにタグがある場合、タグも復元されたクラス
ターにコピーされます。
• DeleteSnapshot または delete-snapshot – スナップショットを削除するときに、スナップショットに
タグがある場合、タグもスナップショットとともに削除されます。
• DeleteCluster または delete-cluster – クラスターを削除するときに、クラスターのタグはクラスター
とともに削除されます。ただし、最終スナップショットを作成する場合、タグはスナップショットに
コピーされます。
API Version 2015-02-02
296
Amazon ElastiCache ユーザーガイド
クエリ API の使用
ElastiCache API の使用
Abstract
ElastiCache API を使用する方法の基本について説明します。
このセクションでは、ElastiCache のオペレーションを使用および実装する方法を、メソッドに重点を
置いて説明します。これらのオペレーションの詳細な説明については、「Amazon ElastiCache API
Reference」を参照してください。
トピック
• クエリ API の使用 (p. 297)
• 利用可能なライブラリ (p. 300)
• アプリケーションのトラブルシューティング (p. 300)
• AWS CloudTrail を使用した Amazon ElastiCache API 呼び出しのログ記録 (p. 301)
クエリ API の使用
Abstract
クエリ API を使用して、認証と選択したアクションを処理する一般的なパラメータを含むリクエストを実行しま
す。
Query パラメータ
HTTP クエリベースのリクエストとは、HTTP 動詞(GET または POST)とクエリパラメータ Action
で記述する HTTP リクエストです。
各クエリリクエストに、アクションの認証と選択を処理するための一般的なパラメータがいくつか含ま
れている必要があります。
オペレーションの中にはパラメータのリストを取るものがあります。これらのリストは、param.n 表
記を使用して指定されます。n 値は、1 から始まる整数です。
API Version 2015-02-02
297
Amazon ElastiCache ユーザーガイド
クエリリクエストの認証
クエリリクエストの認証
HTTPS 経由でのみリクエストを送信できます。また、各クエリリクエストには署名を含める必要があ
ります。このセクションでは、署名を作成する方法について説明します。次に説明する方法は、署名
バージョン 4 と呼ばれます。
AWS へのリクエストを認証するために使用される基本的なステップを次に示します。この手順では、
AWS に登録されており、アクセスキー ID とシークレットアクセスキーを持っていることを前提として
います。
クエリ認証プロセス
1.
2.
3.
4.
5.
6.
送信者は、AWS へのリクエストを構築します。
このトピックの次のセクションに示すように、送信者は、SHA-1 ハッシュ関数を使用してリクエ
ストの署名(ハッシュベースメッセージ認証コード(HMAC)のキー付きハッシュ)を生成しま
す。
リクエストの送信者は、リクエストデータ、署名、およびアクセスキー ID(使用するシークレッ
トアクセスキーのキー識別子)を AWS に送信します。
AWS ではアクセスキー ID を使用して、シークレットアクセスキーを調べます。
AWS では、リクエストの署名を生成する際に使用したものと同じアルゴリズムを使い、リクエス
トデータとシークレットアクセスキーから署名を生成します。
署名が一致すると、リクエストは認証されたものと見なされます。署名が一致しなかった場合、リ
クエストの処理は拒否され、AWS はエラーレスポンスを返します。
Note
リクエストに Timestamp パラメータが含まれている場合、リクエストに対して生成された署
名はパラメータの値の 15 分後に期限が切れます。
リクエストに Expires パラメータが含まれている場合、署名は Expires パラメータで指定さ
れた時刻に期限が切れます。
リクエストの署名を計算するには
1.
本手順で後に必要となる、正規化されたクエリ文字列を作成します。
a.
b.
自然なバイト順のパラメータ名で、UTF-8 のクエリ文字列コンポーネントを並び替えます。パ
ラメータは、GET URI または POST ボディから取得される場合があります。(Content-Type
が application/x-www-form-urlencoded の場合)
URL は、以下の規則に応じてパラメータ名と値をエンコードします。
i.
ii.
iii.
iv.
c.
d.
RFC 3986 が定義する非予約文字を、URL がエンコードすることはありません。非予約文
字とは、A-Z, a-z, 0-9, ハイフン(-)、アンダーバー(_)、ピリオド(.)、およびチル
ダ(~)です。
他のすべての文字についても、%XY (X および Y には HEX 文字の 0-9 および大文字の
A-F が入る) によるパーセントエンコードが必要です。
パーセントは、拡張 UTF-8 文字を %XY%ZA.... 形式でエンコードします。
パーセントは、スペース文字を %20(通常エンコードスキーマが行なうような + ではあ
りません)としてエンコードします。
パラメータの値が空値の場合でも、エンコードされるパラメータ名とエンコードされる値の間
に等号(=)(ASCII コード 61)を入れます。
それぞれのパラメータ名と値のペアをアンド(&)(ASCII コード 38)で分割します。
API Version 2015-02-02
298
Amazon ElastiCache ユーザーガイド
クエリリクエストの認証
2.
文字列を作成し、以下の擬似文法に従って("\n" は ASCII 新規行を意味します)署名を作成しま
す。
StringToSign = HTTPVerb + "\n" +
ValueOfHostHeaderInLowercase + "\n" +
HTTPRequestURI + "\n" +
CanonicalizedQueryString <from the preceding step>
HTTPRequestURI 要素は URI の HTTP 絶対パス要素ですが、クエリ文字列は含みません。
HTTPRequestURI が空値の場合は、スラッシュ(/)を使用してください。
3.
作成したばかりの文字列を使い、シークレットアクセスキーをキーとして、また SHA256 または
SHA1 をハッシュアルゴリズムとして、RFC 2104 に準拠した HMAC を計算します。
詳細については、https://www.ietf.org/rfc/rfc2104.txt を参照してください。
4.
5.
結果の値を base64 に変換します。
その値は、Signature パラメータの値としてリクエストに含めます。
サンプルのリクエストを次に示します(見やすくするために改行が追加されています)。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheClusters
&CacheClusterIdentifier=myCacheCluster
&SignatureMethod=HmacSHA256
&SignatureVersion=4
&Version=2014-12-01
前のクエリ文字列では、次の文字列に対する HMAC 署名が生成されます。
GET\n
elasticache.amazonaws.com\n
Action=DescribeCacheClusters
&CacheClusterIdentifier=myCacheCluster
&SignatureMethod=HmacSHA256
&SignatureVersion=4
&Version=2014-12-01
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=AKIADQKE4SARGYLE%2F20140523%2Fus-west-2%2Felastic
ache%2Faws4_request
&X-Amz-Date=20141201T223649Z
&X-Amz-SignedHeaders=content-type%3Bhost%3Buser-agent%3Bx-amz-contentsha256%3Bx-amz-date
content-type:
host:elasticache.us-west-2.amazonaws.com
user-agent:CacheServicesAPICommand_Client
x-amz-content-sha256:
x-amz-date:
結果の署名付きリクエストは次のようになります。
https://elasticache.us-west-2.amazonaws.com/
?Action=DescribeCacheClusters
&CacheClusterIdentifier=myCacheCluster
API Version 2015-02-02
299
Amazon ElastiCache ユーザーガイド
利用可能なライブラリ
&SignatureMethod=HmacSHA256
&SignatureVersion=4
&Version=2014-12-01
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=AKIADQKE4SARGYLE/20141201/us-west-2/elasticache/aws4_re
quest
&X-Amz-Date=20141201T223649Z
&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;xamz-date
&X-Amz-Signa
ture=2877960fced9040b41b4feaca835fd5cfeb9264f768e6a0236c9143f915ffa56
プロセスへの署名とリクエスト署名の生成の詳細については、トピック「署名バージョン 4 の署名プロ
セス」とそのサブトピックを参照してください。
利用可能なライブラリ
Abstract
>AWS によって提供される言語固有の API やライブラリを使用して、ElastiCache アプリケーションを構築しま
す。
AWS では、クエリ API の代わりに言語固有の API を使用してアプリケーションを構築するソフトウェ
ア開発者向け Software Development Kit(SDK)を提供します。こうした SDK には、リクエスト認証、
リクエストの再実行、エラー処理など、(API には含まれない)基本的な機能が用意されていて、簡単
に開始できるようになっています。次のプログラミング言語の SDK と追加のリソースがあります。
•
•
•
•
•
Java
Windows および .NET
PHP
Python
Ruby
他の言語については、「サンプルコードとライブラリ」を参照してください。
アプリケーションのトラブルシューティング
Abstract
問題のトラブルシューティングを行って、ElastiCache API を使用する際に発生する可能性がある問題を診断して
解決します。
ElastiCache では、ElastiCache API とのやり取りで発生する問題をトラブルシューティングする際に役
立つ、具体的でわかりやすいエラーを提供します。
エラーの取得
通常、アプリケーションでは、結果を処理する前にリクエストでエラーが生成されたかどうかを必ず確
認します。エラーが発生したかどうかを確認する最も簡単な方法は、ElastiCache API からのレスポン
スで Error ノードを検索することです。
API Version 2015-02-02
300
Amazon ElastiCache ユーザーガイド
トラブルシューティングのヒント
XPath 構文を使用すると、簡単な方法で Error ノードがあるかどうかを検索し、エラーコードとメッ
セージを取得することができます。次のコードでは、Perl および XML::XPath モジュールによって、リ
クエスト時のエラーの発生を判定しています。エラーが発生した場合、レスポンス内の最初のエラー
コードとメッセージが表示されます。
use XML::XPath;
my $xp = XML::XPath->new(xml =>$response);
if ( $xp->find("//Error") )
{print "There was an error processing your request:\n", " Error code: ",
$xp->findvalue("//Error[1]/Code"), "\n", " ",
$xp->findvalue("//Error[1]/Message"), "\n\n"; }
トラブルシューティングのヒント
ElastiCache API の問題を診断して解決するには、次の手順を実行することをお勧めします。
• ElastiCache が正しく実行されていることを確認します。
これを行うには、ブラウザウィンドウを開いて、ElastiCache サービス
(https://elasticache.amazonaws.com など)に対してクエリリクエストを送信します。
MissingAuthenticationTokenException または内部サーバーエラー 500 は、サービスが利用可能であ
り、リクエストに応答していることを示します。
• リクエストの構文を確認します。
『ElastiCache API リファレンス』には、各 ElastiCache オペレーションについてのリファレンスペー
ジがあります。パラメータを正しく使用していることをもう一度確認してください。間違っている可
能性がある部分を判断するヒントとして、同様のオペレーションを実行しているサンプルのリクエス
トやユーザーシナリオを調べてください。
• フォーラムを確認します。
ElastiCache にはディスカッションフォーラムがあります。このフォーラムでは、これまで他のユー
ザーが経験してきた問題に対する解決策を探すことができます。フォーラムを表示するには、次の
URL にアクセスしてください。
https://forums.aws.amazon.com/ .
AWS CloudTrail を使用した Amazon ElastiCache
API 呼び出しのログ記録
Abstract
AWS CloudTrail で Amazon ElastiCache API 呼び出しのログを記録します。
Amazon ElastiCache は AWS CloudTrail と統合されています。AWS CloudTrail は、AWS アカウントで
ElastiCache によって行われたか ElastiCache に代わって行われた API 呼び出しをキャプチャし、指定
した Amazon S3 バケットにログファイルを渡すサービスです。CloudTrail は、ElastiCache コンソー
ル、ElastiCache API、または ElastiCache CLI からの API 呼び出しをキャプチャします。CloudTrail に
よって収集された情報を使用して、ElastiCache に対してどのようなリクエストが行われたか(リクエ
ストの実行元 IP アドレス、実行者、実行日時など)を判断できます。
CloudTrail を設定して有効にする方法など、CloudTrail の詳細については、『AWS CloudTrail User
Guide』を参照してください。
API Version 2015-02-02
301
Amazon ElastiCache ユーザーガイド
CloudTrail 内の ElastiCache 情報
CloudTrail 内の ElastiCache 情報
AWS アカウントで CloudTrail のログ記録を有効にすると、ElastiCache アクションに対する API 呼び
出しがログファイルに記録されます。たとえば、CreateCacheCluster、DescribeCacheCluster、および
ModifyCacheCluster API の呼び出しにより、CloudTrail ログファイルにエントリが生成されます。すべ
ての ElastiCache アクションがログに記録されます。ElastiCache アクションの詳細なリストについて
は、「http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/」を参照してください。
各ログファイルには、ElastiCache のレコードだけでなく、他の AWS サービスのレコードも含まれま
す。CloudTrail は、期間とファイルサイズに基づいて、新しいログファイルをいつ作成して書き込むか
を決定します。
各ログエントリには、誰がリクエストを生成したかに関する情報が含まれます。ログのユーザー ID 情
報は、リクエストが、ルートまたは IAM ユーザーの認証情報を使用して送信されたか、ロールまたは
フェデレーションユーザーの一時的なセキュリティ認証情報を使用して送信されたか、あるいは別の
AWS サービスによって送信されたかを確認するのに役立ちます。詳細については、『CloudTrail イベ
ントリファレンス』で userIdentity フィールドのドキュメントを参照してください。
ログファイルは任意の期間にわたってバケットに保存できます。ログファイルを自動的にアーカイブま
たは削除するにように Amazon S3 ライフサイクルルールを定義することもできます。デフォルトでは
Amazon S3 のサーバー側の暗号化(SSE)を使用して、ログファイルが暗号化されます。
ログファイルの配信時にすぐにアクションを実行する必要がある場合、新しいログファイルの配信時に
CloudTrail により Amazon SNS 通知を発行できます。詳細については、「Amazon SNS 通知の構成」
を参照してください。
また、複数の AWS リージョンと複数の AWS アカウントからの ElastiCache ログファイルを 1 つの
Amazon S3 バケットに集約することもできます。詳細については、「CloudTrail ログファイルの単一
の Amazon S3 バケットへの集約」を参照してください。
ElastiCache ログファイルエントリの解読
CloudTrail ログファイルには、複数の JSON 形式イベントで構成される 1 つ以上のログエントリが記
録されます。ログエントリは任意の送信元からの単一のリクエストを表し、リクエストされたアクショ
ン、パラメータ、アクションの日時などに関する情報が含まれます。ログエントリは、特定の順序にな
るように生成されるわけではありません。つまり、パブリック API 呼び出しの順序付けられたスタッ
クトレースではありません。
CreateCacheCluster アクションを記録する CloudTrail のログエントリの例を以下に示します。
{
"eventVersion":"1.01",
"userIdentity":{
"type":"IAMUser",
"principalId":"EXAMPLEEXAMPLEEXAMPLE",
"arn":"arn:aws:iam::123456789012:user/elasticache-allow",
"accountId":"123456789012",
"accessKeyId":"AKIAIOSFODNN7EXAMPLE",
"userName":"elasticache-allow"
},
"eventTime":"2014-12-01T22:00:35Z",
"eventSource":"elasticache.amazonaws.com",
"eventName":"CreateCacheCluster",
"awsRegion":"us-west-2",
"sourceIPAddress":"192.0.2.01",
"userAgent":"Amazon CLI/ElastiCache 1.10 API 2014-12-01",
API Version 2015-02-02
302
Amazon ElastiCache ユーザーガイド
ElastiCache ログファイルエントリの解読
"requestParameters":{
"numCacheNodes":2,
"cacheClusterId":"test-memcached",
"engine":"memcached",
"aZMode":"cross-az",
"cacheNodeType":"cache.m1.small"
},
"responseElements":{
"engine":"memcached",
"clientDownloadLandingPage":"https://console.aws.amazon.com/elastic
ache/home#client-download:",
"cacheParameterGroup":{
"cacheParameterGroupName":"default.memcached1.4",
"cacheNodeIdsToReboot":{
},
"parameterApplyStatus":"in-sync"
},
"preferredAvailabilityZone":"Multiple",
"numCacheNodes":2,
"cacheNodeType":"cache.m1.small",
"cacheClusterStatus":"creating",
"autoMinorVersionUpgrade":true,
"preferredMaintenanceWindow":"thu:05:00-thu:06:00",
"cacheClusterId":"test-memcached",
"engineVersion":"1.4.14",
"cacheSecurityGroups":[
{
"status":"active",
"cacheSecurityGroupName":"default"
}
],
"pendingModifiedValues":{
}
},
"requestID":"104f30b3-3548-11e4-b7b8-6d79ffe84edd",
"eventID":"92762127-7a68-42ce-8787-927d2174cde1"
}
DescribeCacheCluster アクションを記録する CloudTrail のログエントリの例を以下に示します。
ElastiCache のすべての Describe 呼び出し(Describe*)について、ResponseElements セクション
が削除され、null と表示されます。
{
"eventVersion":"1.01",
"userIdentity":{
"type":"IAMUser",
"principalId":"EXAMPLEEXAMPLEEXAMPLE",
"arn":"arn:aws:iam::123456789012:user/elasticache-allow",
"accountId":"123456789012",
"accessKeyId":"AKIAIOSFODNN7EXAMPLE",
"userName":"elasticache-allow"
},
"eventTime":"2014-12-01T22:01:00Z",
"eventSource":"elasticache.amazonaws.com",
"eventName":"DescribeCacheClusters",
API Version 2015-02-02
303
Amazon ElastiCache ユーザーガイド
ElastiCache ログファイルエントリの解読
"awsRegion":"us-west-2",
"sourceIPAddress":"192.0.2.01",
"userAgent":"Amazon CLI/ElastiCache 1.10 API 2014-12-01",
"requestParameters":{
"showCacheNodeInfo":false,
"maxRecords":100
},
"responseElements":null,
"requestID":"1f0b5031-3548-11e4-9376-c1d979ba565a",
"eventID":"a58572a8-e81b-4100-8e00-1797ed19d172"
}
ModifyCacheCluster アクションを記録する CloudTrail のログエントリの例を以下に示します。
{
"eventVersion":"1.01",
"userIdentity":{
"type":"IAMUser",
"principalId":"EXAMPLEEXAMPLEEXAMPLE",
"arn":"arn:aws:iam::123456789012:user/elasticache-allow",
"accountId":"123456789012",
"accessKeyId":"AKIAIOSFODNN7EXAMPLE",
"userName":"elasticache-allow"
},
"eventTime":"2014-12-01T22:32:21Z",
"eventSource":"elasticache.amazonaws.com",
"eventName":"ModifyCacheCluster",
"awsRegion":"us-west-2",
"sourceIPAddress":"192.0.2.01",
"userAgent":"Amazon CLI/ElastiCache 1.10 API 2014-12-01",
"requestParameters":{
"applyImmediately":true,
"numCacheNodes":3,
"cacheClusterId":"test-memcached"
},
"responseElements":{
"engine":"memcached",
"clientDownloadLandingPage":"https://console.aws.amazon.com/elastic
ache/home#client-download:",
"cacheParameterGroup":{
"cacheParameterGroupName":"default.memcached1.4",
"cacheNodeIdsToReboot":{
},
"parameterApplyStatus":"in-sync"
},
"cacheClusterCreateTime":"Dec 1, 2014 10:16:06 PM",
"preferredAvailabilityZone":"Multiple",
"numCacheNodes":2,
"cacheNodeType":"cache.m1.small",
"cacheClusterStatus":"modifying",
"autoMinorVersionUpgrade":true,
"preferredMaintenanceWindow":"thu:05:00-thu:06:00",
"cacheClusterId":"test-memcached",
"engineVersion":"1.4.14",
"cacheSecurityGroups":[
API Version 2015-02-02
304
Amazon ElastiCache ユーザーガイド
ElastiCache ログファイルエントリの解読
{
"status":"active",
"cacheSecurityGroupName":"default"
}
],
"configurationEndpoint":{
"address":"test-memcached.example.cfg.use1prod.cache.amazonaws.com",
"port":11211
},
"pendingModifiedValues":{
"numCacheNodes":3
}
},
"requestID":"807f4bc3-354c-11e4-9376-c1d979ba565a",
"eventID":"e9163565-376f-4223-96e9-9f50528da645"
}
API Version 2015-02-02
305
Amazon ElastiCache ユーザーガイド
Cluster Client のインストール
ElastiCache クライアント
Abstract
ElastiCache クライアントの使用
このセクションでは、ElastiCache PHP と .NET クライアントのインストールと構成について説明しま
す。
トピック
• ElastiCache Cluster Client のインストール (p. 306)
• ElastiCache クライアントの設定 (p. 315)
ElastiCache Cluster Client のインストール
Abstract
ElastiCache Cluster Client のコンポーネントのインストール、更新、および削除
このセクションでは、PHP および .NET Amazon ElastiCache 自動検出クラスタークライアントのイン
ストール、設定、コンパイルを取り上げます。
トピック
• ElastiCache Cluster Client for .NET のインストール (p. 306)
• ElastiCache Cluster Client for PHP のインストール (p. 309)
• PHP 向けの ElastiCache クラスタークライアントのソースコードのコンパイル (p. 314)
ElastiCache Cluster Client for .NET のインストール
ElastiCache .NET Cluster Client のコードは、オープンソースとして https://github.com/awslabs/
elasticache-cluster-config-net から入手できます。
このセクションでは、Amazon EC2 インスタンスで ElastiCache Cluster Client の .NET コンポーネン
トをインストール、更新、および削除する方法について説明します。自動検出の詳細については、「ノー
ドの自動検出(Memcached) (p. 84)」を参照してください。クライアントを使用するサンプル .NET
コードについては、「.NET 向けの ElastiCache Cluster Client の使用 (p. 91)」を参照してください。
API Version 2015-02-02
306
Amazon ElastiCache ユーザーガイド
.NET Cluster Client のインストール
トピック
• .NET のインストール (p. 307)
• ElastiCache .NET Cluster Client for ElastiCache のダウンロード (p. 307)
• NuGet を使用した AWS アセンブリのインストール (p. 307)
.NET のインストール
AWS .NET SDK for ElastiCache を使用するには、.NET 3.5 以降がインストールされている必要があり
ます。.NET 3.5 以降がインストールされていない場合は、http://www.microsoft.com/net から最新バー
ジョンをダウンロードしてインストールできます。
ElastiCache .NET Cluster Client for ElastiCache のダウンロード
ElastiCache .NET Cluster Client をダウンロードするには
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
左側のナビゲーションペインで [ElastiCache Cluster Client] をクリックします。
[Download ElastiCache Memcached Cluster Client] リストで、[.NET] を選択し、[Download] をク
リックします。
NuGet を使用した AWS アセンブリのインストール
NuGet は .NET プラットフォームのパッケージ管理システムです。NuGet ではアセンブリの依存関係
が認識され、必要なすべてのファイルが自動的にインストールされます。NuGet によってインストー
ルされるアセンブリは、Program Files などの一元的な場所ではなく、ソリューションと共に保存さ
れるため、互換性の問題を発生させることなく、アプリケーションに固有のバージョンをインストール
できます。
NuGet のインストール
NuGet は MSDN の Installation Gallery からインストールできます。https://
visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c を参照してください。
Visual Studio 2010 以降を使用している場合、NuGet は自動的にインストールされます。
NuGet はソリューションエクスプローラーまたはパッケージマネージャコンソールから使用できます。
ソリューションエクスプローラーからの NuGet の使用
Visual Studio 2010 でソリューションエクスプローラーから NuGet を使用するには
1.
2.
[Tools] メニューから、[Library Package Manager] を選択します。
[Package Manager Console] をクリックします。
Visual Studio 2012 または Visual Studio 2013 でソリューションエクスプローラーから NuGet
を使用するには
1.
2.
[Tools] メニューから、[NuGet Package Manager] を選択します。
[Package Manager Console] をクリックします。
コマンドラインから、次のように Install-Package を使用してアセンブリをインストールできます。
API Version 2015-02-02
307
Amazon ElastiCache ユーザーガイド
.NET Cluster Client のインストール
Install-Package Amazon.ElastiCacheCluster
AWSSDK や AWS.Extensions アセンブリなど、NuGet を通じて利用できる各パッケージ用のページを
表示するには、NuGet ウェブサイト(http://www.nuget.org)を参照してください。各パッケージのペー
ジには、コンソールを使用してパッケージをインストールするためのサンプルコマンドラインや、NuGet
を通じて利用できるパッケージの以前のバージョンのリストが含まれています。
Package Manager Console のコマンドの詳細については、http://nuget.codeplex.com/
wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29 を参
照してください。
API Version 2015-02-02
308
Amazon ElastiCache ユーザーガイド
PHP Cluster Client のインストール
ElastiCache Cluster Client for PHP のインストール
Abstract
ElastiCache Cluster Client の PHP コンポーネントのインストール、更新、および削除
このセクションでは、Amazon EC2 インスタンスで ElastiCache Cluster Client の PHP コンポーネント
をインストール、更新、および削除する方法について説明します。自動検出の詳細については、「ノー
ドの自動検出(Memcached) (p. 84)」を参照してください。クライアントを使用するサンプル PHP
コードについては、「PHP 向けの ElastiCache クラスタークライアントの使用 (p. 90)」を参照してく
ださい。
トピック
• インストールパッケージのダウンロード (p. 309)
• 新規ユーザーのインストール手順 (p. 310)
• 既に php-memcached 拡張機能をインストールしているユーザーの場合 (p. 313)
• PHP Cluster Client の削除 (p. 313)
インストールパッケージのダウンロード
適切なバージョンの ElastiCache Cluster Client for PHP を使用するには、Amazon EC2 インスタンスに
インストールされている PHP のバージョンを確認する必要があります。また、Amazon EC2 インスタ
ンスが Linux の 64 ビットバージョンと 32 ビットバージョンのどちらを実行しているかも確認する必
要があります。
Amazon EC2 インスタンスにインストールされている PHP のバージョンを確認するには
•
コマンドプロンプトで、次のコマンドを入力します。
$ php -v
PHP のバージョンは、次の例のように出力に表示されます。
PHP 5.4.10 (cli) (built: Jan 11 2013 14:48:57)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
Note
PHP と Memcached のバージョンに互換性がない場合は、以下のようなエラーメッセージ
が表示されます。
PHP Warning: PHP Startup: memcached: Unable to initialize module
Module compiled with module API=20100525
PHP compiled with module API=20131226
These options need to match
in Unknown on line 0
この場合は、ソースコードからモジュールをコンパイルする必要があります。詳細につい
ては、「PHP 向けの ElastiCache クラスタークライアントのソースコードのコンパイ
ル (p. 314)」を参照してください。
API Version 2015-02-02
309
Amazon ElastiCache ユーザーガイド
PHP Cluster Client のインストール
Amazon EC2 AMI アーキテクチャ(64 ビットまたは 32 ビット)を確認するには
1.
AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ に
ある Amazon EC2 コンソールを開きます。
2.
3.
[Instances] リストで、Amazon EC2 インスタンスをクリックします。
[Description] タブで、[AMI:] フィールドを検索します。64 ビットのインスタンスでは、説明に
x86_64 が含まれています。32 ビットのインスタンスの場合は、このフィールドで i386 または
i686 を探します。
これで ElastiCache Cluster Client をダウンロードする準備ができました。
ElastiCache Cluster Client for PHP をダウンロードするには
1.
2.
3.
AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://
console.aws.amazon.com/elasticache/)を開きます。
ElastiCache コンソールで、[Download ElastiCache Cluster Client] をクリックします。
PHP のバージョンと AMI アーキテクチャに適した ElastiCache Cluster Client を選択し、[Download
ElastiCache Cluster Client] ボタンをクリックします。
新規ユーザーのインストール手順
Amazon Linux AMI 2014.03(64 ビットおよび 32 ビット)にインストールするには
1.
2.
Amazon Linux インスタンス(64 ビットまたは 32 ビット)を起動し、ログインします。
PHP の依存関係をインストールします。
$ sudo yum install gcc-c++ php php-pear
3.
4.
Amazon EC2 インスタンスと PHP のバージョンに合った適切な php-memcached パッケージをダ
ウンロードします。詳細については、「インストールパッケージのダウンロード (p. 309)」を参照
してください。
インストール php-memcached. URI にはインストールパッケージのダウンロードパスを指定しま
す。
$ sudo pecl install <package download path>
PHP 5.4、64 ビット Linux 用のサンプルインストールコマンドを次に示します。このサンプルで
は、X.Y.Z を実際のバージョン番号に置き換えてください。
$ sudo pecl install /home/AmazonElastiCacheClusterClient-X.Y.Z-PHP54-64bit.tgz
Note
インストールアーティファクトの最新バージョンを使用してください。
5.
root/sudo アクセス許可を使用して、memcached.ini という名前の新しいファイルを /etc/php.d
ディレクトリに追加し、このファイルに「extension=amazon-elasticache-cluster-client.so」を挿入
します。
API Version 2015-02-02
310
Amazon ElastiCache ユーザーガイド
PHP Cluster Client のインストール
$ echo "extension=amazon-elasticache-cluster-client.so" | sudo tee
/etc/php.d/memcached.ini
Red Hat Enterprise Linux 7.0 AMI(64 ビットおよび 32 ビット)にインストールするには
1.
Red Hat Enterprise Linux インスタンス(64 ビットまたは 32 ビット)を起動し、ログインします。
2.
PHP の依存関係をインストールします。
$ sudo yum install gcc-c++ php php-pear
3.
4.
Amazon EC2 インスタンスと PHP のバージョンに合った適切な php-memcached パッケージをダ
ウンロードします。詳細については、「インストールパッケージのダウンロード (p. 309)」を参照
してください。
インストール php-memcached. URI にはインストールパッケージのダウンロードパスを指定しま
す。
$ sudo pecl install <package download path>
5.
root/sudo アクセス許可を使用して、memcached.ini という名前の新しいファイルを /etc/php.d
ディレクトリに追加し、このファイルに
「extension=amazon-elasticache-cluster-client.so」を挿入します。
$ echo "extension=amazon-elasticache-cluster-client.so" | sudo tee
/etc/php.d/memcached.ini
他の Linux ディストリビューション
特に CentOS7 や Red Hat Enterprise Linux (RHEL) 7.1 など、一部のシステムでは、libsasl2.so.3
が libsasl2.so.2 に置き換えられました。これらのシステムは、ElastiCache クラスタークライアン
トをロードする際、libsasl2.so.2 をロードしようとしますが見つけることができません。この問題
を解決するには、クライアントが libsasl2.so.2 をロードしようとしたときに libsasl2.so.3 にリダ
イレクトされるように、libsasl2.so.3 へのシンボリックリンクを作成します。次のコードでは、こ
のシンボリックリンクが作成されます。
$ cd /usr/lib64
$ sudo ln libsasl2.so.3 libsasl2.so.2
Ubuntu Server 14.04 LTS AMI(64 ビットおよび 32 ビット)にインストールするには
1.
2.
Ubuntu Linux インスタンス(64 ビットまたは 32 ビット)を起動し、ログインします。
PHP の依存関係をインストールします。
$ sudo apt-get update sudo apt-get install gcc g++ php5 php-pear
3.
Amazon EC2 インスタンスと PHP のバージョンに合った適切な php-memcached パッケージをダ
ウンロードします。詳細については、「インストールパッケージのダウンロード (p. 309)」を参照
してください。
API Version 2015-02-02
311
Amazon ElastiCache ユーザーガイド
PHP Cluster Client のインストール
4.
インストール php-memcached. URI にはインストールパッケージのダウンロードパスを指定しま
す。
$ sudo pecl install <package download path>
Note
このインストール手順では、ビルドアーティファクト
amazon-elasticache-cluster-client.so を /usr/lib/php5/20121212* ディレ
クトリにインストールします。次のステップで必要になるため、ビルドアーティファクト
の絶対パスを確認してください。
前のコマンドが機能しない場合は、PHP クライアントアーティファクト
amazon-elasticache-cluster-client.so を、ダウンロードした *.tgz ファイルから手動で
抽出し、/usr/lib/php5/20121212* ディレクトリにコピーする必要があります。
$ tar -xvf <package download path>
cp amazon-elasticache-cluster-client.so /usr/lib/php5/20121212/
5.
root/sudo アクセス許可を使用して、memcached.ini という名前の新しいファイルを
/etc/php5/cli/conf.d ディレクトリに追加し、このファイルに
「extension=<amazon-elasticache-cluster-client.so への絶対パス>」を挿入します。
$ echo "extension=<absolute path to amazon-elasticache-cluster-client.so>"
| sudo tee /etc/php5/cli/conf.d/memcached.ini
SUSE Linux Enterprise Server 11 AMI(64 ビットまたは 32 ビット)にインストールするには
1.
2.
SUSE Linux インスタンス(64 ビットまたは 32 ビット)を起動し、ログインします。
PHP の依存関係をインストールします。
$ sudo zypper install gcc php53-devel
3.
Amazon EC2 インスタンスと PHP のバージョンに合った適切な php-memcached パッケージをダ
ウンロードします。詳細については、「インストールパッケージのダウンロード (p. 309)」を参照
してください。
4.
インストール php-memcached. URI にはインストールパッケージのダウンロードパスを指定しま
す。
$ sudo pecl install <package download path>
5.
root/sudo アクセス許可を使用して、memcached.ini という名前の新しいファイルを
/etc/php5/php.d ディレクトリに追加し、このファイルに
「extension=amazon-elasticache-cluster-client.so」を挿入します。
$ echo "extension=amazon-elasticache-cluster-client.so" | sudo tee
/etc/php5/conf.d/memcached.ini
API Version 2015-02-02
312
Amazon ElastiCache ユーザーガイド
PHP Cluster Client のインストール
Note
前のプラットフォームのいずれかでステップ 5 が機能しない場合は、
amazon-elasticache-cluster-client.so のインストールパスを確認し、extension でこ
のバイナリの完全なパスを指定します。また、使用中の PHP がサポートされているバージョ
ンであることも確認します。バージョン 5.3 ~ 5.5 がサポートされています。
既に php-memcached 拡張機能をインストールしているユー
ザーの場合
php-memcached のインストールを更新するには
1.
2.
PHP 用の Memcached 拡張機能の以前のインストールを削除します。
前に「新規ユーザーのインストール手順 (p. 310)」で説明したように、新しい ElastiCache
php-memcached 拡張機能をインストールします。
PHP Cluster Client の削除
1.
php-memcached 拡張機能を削除します。
$ sudo pecl uninstall __uri/AmazonElastiCacheClusterClient
2.
前のインストールの手順に従って適切なディレクトリに追加した memcached.ini ファイルを削
除します。
API Version 2015-02-02
313
Amazon ElastiCache ユーザーガイド
PHP Cluster Client 用のソースコードのコンパイル
PHP 向けの ElastiCache クラスタークライアントの
ソースコードのコンパイル
このセクションでは、PHP 向けの ElastiCache クラスタークライアントのソースコードを取得しコン
パイルする方法を説明します。
GitHub から取得し、コンパイルする必要がある 2 つのパッケージがあります。
aws-elasticache-cluster-client-libmemcached および aws-elasticache-cluster-client-memcached-for-php。
aws-elasticache-cluster-client-libmemcached
aws-elasticache-cluster-client-libmemcached/ フォルダの下の libmemcached ライブラリをコンパイル
するには、以下のコマンドを実行します。
configure
make
make install
aws-elasticache-cluster-client-memcached-for-php
aws-elasticache-cluster-client-memcached-for-php/ フォルダで、次のコマンドを実行します。
phpize
./configure --with-libmemcached-dir=<path to libmemcached build directory>
make
make install
API Version 2015-02-02
314
Amazon ElastiCache ユーザーガイド
クライアントの設定
ElastiCache クライアントの設定
Abstract
クラスターの作成時に Memcached キャッシュエンジンと Redis キャッシュエンジンのどちらを使用したかに応じ
て、ElastiCache クラスタークライアントを設定します。
ElastiCache クラスターは、クラスターの作成時に選択したキャッシュエンジンに応じて Memcached
または Redis に準拠したプロトコルです。既存の Memcached または Resdis 環境で現在使用している
コード、アプリケーション、および広く使用されているほとんどのツールは、このサービスでもシーム
レスに動作します。
このセクションでは、ElastiCache のキャッシュノードに接続するための特定の考慮事項について説明
します。
トピック
• 制限されるコマンド (p. 315)
• キャッシュノードのエンドポイントおよびポート番号を検索する (p. 315)
• 自動検出を使用するための接続 (p. 317)
• レプリケーショングループのクラスターへの接続 (p. 317)
• DNS 名と基になっている IP (p. 319)
制限されるコマンド
マネージドサービス操作性を実現するため、ElastiCache では高度な特権を必要とする特定のキャッシュ
エンジン固有のコマンドへのアクセスが制限されます。
• Memcached を実行するキャッシュクラスターの場合、制限されるコマンドはありません。
• Redis を実行するキャッシュクラスターの場合、次のコマンドは使用できせん。
• bgrewriteaof
• bgsave
• config
• debug
• migrate
• save
• slaveof
• shutdown
キャッシュノードのエンドポイントおよびポート番
号を検索する
キャッシュノードに接続するには、アプリケーションがそのノードのエンドポイントとポート番号を認
識している必要があります。
キャッシュノードのエンドポイントおよびポート番号を検索す
る AWS マネジメントコンソールの使用
キャッシュノードのエンドポイントとポート番号を調べるには
API Version 2015-02-02
315
Amazon ElastiCache ユーザーガイド
ノードのエンドポイントおよびポート番号を検索する
1.
2.
3.
Amazon ElastiCache マネジメントコンソールにサインインし、[Cache Clusters] をクリックしま
す。
キャッシュクラスターの名前をクリックします。
[Nodes] タブをクリックします。キャッシュクラスター内のすべてのノードが、完全修飾 DNS 名
およびポート番号と共に表示されます。
キャッシュノードのエンドポイントおよびポート番号を検索す
る AWS CLI の使用
キャッシュノードのエンドポイントとポート番号を確認するには、describe-cache-clusters コマ
ンドを --show-cache-node-info パラメータを指定して使用します。
aws elasticache describe-cache-clusters --show-cache-node-info
このコマンドでは、次のような出力が生成されます。
CACHECLUSTER my-memcached
https://console.aws.amazon.com/elastic
ache/home#client-download: 2013-07-09T22:12:42.151Z cache.t1.micro memcached
available 1 us-west-2a 1.4.14
CACHESECURITYGROUP
default active
CACHEPARAMETERGROUP default.memcached1.4 in-sync
CACHENODE 0001 available my-memcached.f310xz.cache.amazonaws.com 11211
in-sync
CACHECLUSTER my-redis-primary
https://console.aws.amazon.com/elastic
ache/home#client-download: 2013-07-10T22:47:16.586Z cache.m1.small redis
available 1 us-west-2a 2.6.13 repgroup01
CACHESECURITYGROUP default active
CACHEPARAMETERGROUP default redis2.6 in-sync
CACHENODE 0001 available my-redis-primary.f310xz.0001.cache.amazon
aws.com 6379 in-sync
CACHECLUSTER my-redis-replica-01 https://console.aws.amazon.com/elastic
ache/home#client-download: 2013-07-10T23:11:07.704Z cache.m1.small redis
available 1 us-west-2b 2.6.13 repgroup01
CACHESECURITYGROUP default active
CACHEPARAMETERGROUP default redis2.6 in-sync
CACHENODE 0001 available my-redis-replica01.f310xz.0001.cache.amazonaws.com 6379 in-sync
完全修飾 DNS 名とポート番号は、出力の CACHENODE 行にあります。
キャッシュノードのエンドポイントおよびポート番号を検索す
る ElastiCache API の使用
キャッシュノードのエンドポイントとポート番号を確認するには、DescribeCacheClusters アクショ
ンを ShowCacheNodeInfo=true パラメータを指定して使用します。
API Version 2015-02-02
316
Amazon ElastiCache ユーザーガイド
自動検出を使用するための接続
Example
https://elasticache.us-west-2.amazonaws.com /
?Action=DescribeCacheClusters
&ShowCacheNodeInfo=true
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20140421T220302Z
&Version=2014-09-30
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=<credential>
&X-Amz-Date=20140421T220302Z
&X-Amz-Expires=20140421T220302Z
&X-Amz-Signature=<signature>
&X-Amz-SignedHeaders=Host
自動検出を使用するための接続
アプリケーションが自動検出を使用する場合、調べる必要があるのは各キャッシュノードの個々のエン
ドポイントではなく、クラスターの設定エンドポイントだけです。詳細については、「ノードの自動検
出(Memcached) (p. 84)」を参照してください。
Note
現在のところ、自動検出は Memcached エンジンを実行しているキャッシュクラスターでのみ
使用できます。
レプリケーショングループのクラスターへの接続
Note
現在のところ、レプリケーショングループとリードレプリカは、Redis を実行するキャッシュ
クラスターでのみサポートされています。
レプリケーショングループの場合、ElastiCache には個々のノードの接続情報を取得するためのコンソー
ル、CLI、および API インターフェイスが用意されています。
読み取り専用アクティビティの場合、アプリケーションはレプリケーショングループ内の各ノードに接
続できます。ただし、書き込みアクティビティの場合、アプリケーションを直接プライマリノードに接
続する代わりに、レプリケーショングループのプライマリエンドポイントに接続することをお勧めしま
す。これにより、リードレプリカをプライマリロールに昇格させることでレプリケーショングループを
再設定することにした場合でも、アプリケーションが常に最新のプライマリノードを検索するようにな
ります。
レプリケーショングループのクラスターへの接続 AWS マネジ
メントコンソールの使用
エンドポイントとポート番号を調べるには
1.
Amazon ElastiCache マネジメントコンソールにサインインし、[Cache Clusters] をクリックしま
す。
2.
[Replication Group] をクリックし、レプリケーショングループを選択します。
API Version 2015-02-02
317
Amazon ElastiCache ユーザーガイド
レプリケーショングループへの接続
3.
[Node Groups] タブをクリックします。リードレプリカとノードグループのエンドポイントが、そ
れぞれ完全修飾 DNS 名およびポート番号と共に表示されます。
レプリケーショングループのクラスターへの接続 AWS CLI の
使用
キャッシュノードのエンドポイントとポート番号を調べるには
レプリケーショングループの名前を指定して、describe-replication-groups コマンドを使用しま
す。
aws elasticache describe-replication-groups my-repgroup
このコマンドでは、次のような出力が生成されます。
REPLICATIONGROUP my-repgroup My replication group available
CLUSTERID my-redis-primary
CLUSTERID my-replica-1
NODEGROUP 0001 my-repgroup.f310xz.ng.0001.cache.amazonaws.com
available
NODEGROUPMEMBER my-redis-primary
0001 my-redisprimary.f310xz.0001.cache.amazonaws.com
6379 us-west-2a primary
NODEGROUPMEMBER my-replica-1
0001 my-replica1.f310xz.0001.cache.amazonaws.com
6379 us-west-2b replica
6379
レプリケーショングループのクラスターへの接続 ElastiCache
API の使用
キャッシュノードのエンドポイントとポート番号を調べるには
以下のパラメータを使って DescribeReplicationGroups を呼び出します。
ReplicationGroupId = レプリケーショングループの名前。
Example
https://elasticache.us-west-2.amazonaws.com /
?Action=DescribeCacheClusters
&ReplicationGroupId=repgroup01
&Version=2014-09-30
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=20140421T220302Z
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Date=20140421T220302Z
&X-Amz-SignedHeaders=Host
&X-Amz-Expires=20140421T220302Z
&X-Amz-Credential=<credential>
&X-Amz-Signature=<signature>
API Version 2015-02-02
318
Amazon ElastiCache ユーザーガイド
DNS 名と基になっている IP
DNS 名と基になっている IP
Memcached クライアントと Redis クライアントには、キャッシュデータが保存されているサーバーの
アドレスとポートが含まれるサーバーリストが保持されています。ElastiCache を使用すると、
DescribeCacheClusters API(または、describe-cache-clusters コマンドラインユーティリティ)によ
り、サーバーリストに使用できる完全修飾 DNS エントリとポート番号が返されます。
Important
キャッシュノードエンドポイントに接続するときは、クライアントアプリケーションがキャッ
シュノードの DNS 名を頻繁に解決するように設定することが重要です。
VPC インストール
キャッシュノードが障害から復帰した場合に、キャッシュノードの DNS 名と IP アドレスの両方が同
じままかどうかを ElastiCache が確認します。
非 VPC インストール
ElastiCache は、障害発生時にキャッシュノードが復元されても、キャッシュノードの DNS 名が変わ
らないようにします。ただし、基になっているキャッシュノードの IP アドレスは変更される可能性が
あります。
ほとんどの Memcached および Redis クライアントライブラリでは、永続的なキャッシュノード接続が
デフォルトでサポートされるため、ElastiCache を使用するときは永続的なキャッシュノード接続の使
用をお勧めします。クライアント側の DNS キャッシュが複数の場所 (クライアントライブラリ、言語
ランタイム、クライアントオペレーティングシステムなど) で行われる場合があります。各レイヤーの
アプリケーション設定を確認して、キャッシュノードの IP アドレスを頻繁に解決するようにしてくだ
さい。
API Version 2015-02-02
319
Amazon ElastiCache ユーザーガイド
ElastiCache チュートリアル
Abstract
ElastiCache の重要なシナリオのチュートリアルと、他の AWS サービスでの ElastiCache の使用方法のチュートリ
アルです。
次のチュートリアルでは、Amazon ElastiCache ユーザーにとって興味深いタスクを紹介します。
• チュートリアル: Amazon VPC の Amazon ElastiCache にアクセスする Lambda 関数の設定
API Version 2015-02-02
320
Amazon ElastiCache ユーザーガイド
ドキュメント履歴
Abstract
Amazon ElastiCache ユーザーガイドの改訂日、関連リリース、重要な変更を一覧表示します。
次の表に、『Amazon ElastiCache ユーザーガイド』の前回のリリース以降に行われたドキュメントの
重要な変更を示します。
• API バージョン: 2015-02-02
• ドキュメントの最終更新日: 2016 年 2 月 12 日
変更
説明
日付変更
Lambda 関数を使用 Amazon VPC の ElastiCache にアクセスする Lambda 関 2016 年 2 月 12 日
した ElastiCache へ 数の設定についてのチュートリアルを追加しました。詳
のアクセス
細については、「ElastiCache チュートリアル (p. 320)」
を参照してください。
Redis 2.8.24 のサ
ポート
ElastiCache に Redis 2.8.23 以降に実施された改善を含
む Redis 2.8.24 バージョンのサポートが追加されまし
た。改善には、バグ修正および不正なメモリーアクセス
のアドレスのログ記録のサポートが含まれます。
2016 年 1 月 20 日
詳細については、Redis バージョン 2.8.24 (p. 34)および
「Redis 2.8 リリースノート」を参照してください。
アジアパシフィック ElastiCache で、t2、m3、r3 ノードタイプの アジアパシ 2016 年 1 月 6 日
(ソウル) リージョン フィック (ソウル)(ap-northeast-2)リージョンのサポー
のサポート
トを追加しました。
Amazon ElastiCache コンソールを
変更しました。
新しいバージョンの Redis ほど、より良く安定したユー 2015 年 12 月 15 日
ザーエクスペリエンスを提供しているため、Redis バー
ジョン 2.6.13、2.8.6、2.8.19 は ElastiCache マネジメン
トコンソールに表示されなくなりました。
他のオプションと詳細については、「Redis バージョン
の比較 (p. 33)」を参照してください。
API Version 2015-02-02
321
Amazon ElastiCache ユーザーガイド
変更
説明
日付変更
Redis 2.8.23 のサ
ポート。
ElastiCache では、Redis バージョン 2.8.23 がサポート 2015 年 13 月 11 日
されるようになりました。バージョン 2.8.22 以降に追加
された機能拡張には、バグ修正と新しいパラメータ
close-on-slave-write のサポートが含まれます。こ
のパラメータを有効にした場合、読み取り専用レプリカ
に書き込もうとするクライアントの接続は切断されます。
詳細については、「Redis バージョン 2.8.23 (p. 34)」を
参照してください。
Redis 2.8.22 のサ
ポート。
ElastiCache に Redis バージョン 2.8.21 サポートが追加 2015 年 9 月 28 日
され、バージョン 2.8.22 から以下のような ElastiCache
の機能拡張と改善が行われました:
• 保存プロセスが実装され、利用可能なメモリが少なく
分岐保存が失敗する場合に、保存が正常に行われるよ
うになりました。
• CloudWatch メトリックス – SaveInProgress と ReplicationBytes が追加されました。
• 部分同期を有効にするために、Redis パラメータ replbacklog-size がすべてのクラスターに適用されるよ
うになりました。
変更および詳細についての詳細なリストについては、
「Redis バージョン 2.8.22 (p. 34)」を参照してくださ
い。
このドキュメントのリリースには、ドキュメントの再構
成と ElastiCache コマンドラインインターフェイス (CLI)
ドキュメントの削除が含まれています。コマンドライン
の使用については、ElastiCache 用の「AWS Command
Line」を参照してください。
Memcached 1.4.28 ElastiCache に、Memcached バージョン 1.4.24 のサポー 2015 年 8 月 27 日
がサポートされまし トと、バージョン 1.4.14 以降の Memcached の改善が追
た。
加されました。このリリースには、バックグラウンドタ
スクとしての LRU (least recently used) キャッシュ管理、
ハッシュアルゴリズムとしての jenkins または murmur3
の選択、新しいコマンド、さまざまバクフィックスが追
加されています。
詳細については、「Memcached リリースノート」およ
び「Memcached バージョンの比較 (p. 33)」(『ElastiCache ユーザーガイド』) を参照してください。
API Version 2015-02-02
322
Amazon ElastiCache ユーザーガイド
変更
説明
日付変更
Redis 2.8.21 のサ
ポート。
ElastiCache では、Redis バージョン 2.8.21 とバージョ 2015 年 7 月 29 日
ン 2.8.19 以降の改善点が追加されました。この Redis リ
リースは複数のバグ修正が行われています。詳細につい
PHP 5.6 を使用した ては、「Redis 2.8 リリースノート」を参照してくださ
Memcached Auto
い。
Discovery のサポー
ト。
Amazon ElastiCache のこのリリースでは、PHP バージョ
ン 5.6 用の Memcached Auto Discovery クライアントの
サポートが追加されました。詳細については、「PHP 向
けの ElastiCache クラスタークライアントのソースコー
ドのコンパイル (p. 314)」を参照してください。
新しいトピック:
AWS 外部から ElastiCache リソースにアクセスする方法 2015 年 7 月 9 日
AWS 外部からの
に関する新しいトピックを追加しました。
ElastiCache へのア
詳細については、ElastiCache の「AWS 外部からの
クセス
ElastiCache リソースへのアクセス (p. 261)」を参照して
ください。
ノード置き換えに関 ElastiCache に、置き換え対象のノードに関する次の 3
2015 年 6 月 11 日
するメッセージが追 つのメッセージが追加されました。ElastiCache:NodeRe加されました
placementScheduled、ElastiCache:NodeReplacementRescheduled、および ElastiCache:NodeReplacementCanceled。
ノードが置き換え対象になった場合の詳細および実行可
能なアクションについては、ElastiCache の「イベント通
知と Amazon SNS (p. 282)」を参照してください。
Redis バージョン
ElastiCache は Redis バージョン 2.8.19 のサポートと、 2015 年 3 月 11 日
2.8.19 のサポート。 バージョン 2.8.6 以降の Redis の機能拡張を追加しまし
た。これには、次のサポートが含まれています。
• HyperLogLog データ構造と Redis コマンド PFADD、
PFCOUNT、および PFMERGE。
• 辞書式範囲のクエリと新しいコマンド
ZRANGEBYLEX、ZLEXCOUNT、および ZREMRANGEBYLEX。
• 多くのバグ修正を導入しました。バックグラウンド保
存(bgsave)の子プロセスが予期せずに終了したとき
に、マスター SYNC の障害によりプライマリノードが
レプリカノードに古いデータを送信することを防ぎま
す。
HyperLogLog の詳細については、「Redis の新しいデー
タ構造: HyperLogLog」を参照してください。PFADD、
PFCOUNT、および PFMERGE の詳細については、Redis
のドキュメントに移動し、[HyperLogLog] をクリックし
てください。
コスト配分タグのサ ElastiCache にコスト配分タグのサポートが追加されまし 2015 年 2 月 9 日
ポート
た。
詳細については、「コスト配分のタグによるコストのモ
ニタリング (p. 287)」を参照してください。
API Version 2015-02-02
323
Amazon ElastiCache ユーザーガイド
変更
説明
日付変更
AWS GovCloud
(US) リージョンの
サポート
ElastiCache が AWS GovCloud (US)(us-gov-west-1)
リージョンをサポートするようになりました。
2015 年 1 月 29 日
欧州(フランクフル ElastiCache が 欧州(フランクフルト)(eu-central-1) 2015 年 1 月 19 日
ト) リージョンの リージョンをサポートするようになりました。
サポート
Redis レプリケー
ショングループの自
動フェイルオーバー
をサポートするマル
チ AZ
ElastiCache で、プライマリノードから Redis レプリケー 2014 年 10 月 24 日
ショングループ内のリードレプリカへの自動フェイルオー
バーを備えたマルチ AZ のサポートが追加されました。
ElastiCache はレプリケーショングループの状態をモニタ
リングします。プライマリに障害が発生した場合、
ElastiCache は自動的にレプリカをプライマリに昇格させ
た後、レプリカを置き換えます。
詳細については、「マルチ AZ と自動フェイルオーバー
をサポートするレプリケーショングループ (Redis) (p. 134)」を参照してください。
AWS CloudTrail に ElastiCache で AWS CloudTrail を使用したすべての
2014 年 9 月 15 日
よる API 呼び出し ElastiCache API 呼び出しのログ記録のサポートが追加さ
のログ記録のサポー れました。
ト
詳細については、「AWS CloudTrail を使用した Amazon
ElastiCache API 呼び出しのログ記録 (p. 301)」を参照し
てください。
サポートされる新し ElastiCache で新しい汎用(T2)インスタンスのサポー
いインスタンスサイ トが追加されました。
ズ
詳細については、「パラメータとパラメータグルー
プ (p. 198)」を参照してください。
2014 年 9 月 11 日
Memcached 用の柔 ElastiCache で、複数のアベイラビリティーゾーンにまた 2014 年 7 月 23 日
軟なノード配置のサ がる Memcached ノードの作成のサポートが追加されま
ポート
した。
詳細については、「ステップ 2: クラスターを起動す
る (p. 22)」を参照してください。
サポートされる新し ElastiCache は、追加の汎用目的(M3)インスタンスと 2014 年 7 月 1 日
いインスタンスサイ メモリ最適化(R3)インスタンスのサポートを追加しま
ズ
した。
詳細については、「パラメータとパラメータグルー
プ (p. 198)」を参照してください。
PHP 自動検出
PHP バージョン 5.5 の自動検出のサポートを追加しまし 2014 年 5 月 13 日
た。
詳細については、「ElastiCache Cluster Client for PHP
のインストール (p. 309)」を参照してください。
API Version 2015-02-02
324
Amazon ElastiCache ユーザーガイド
変更
説明
日付変更
Redis クラスターの このリリースでは、ElastiCache によりお客様が Redis
2014 年 4 月 24 日
バックアップと復元 クラスターのスナップショットを作成し、それらのスナッ
プショットを使用して新しいクラスターを作成できます。
スナップショットは特定の時刻におけるクラスターのバッ
クアップコピーであり、クラスターメタデータと Redis
キャッシュ内のすべてのデータで構成されます。スナッ
プショットは Amazon S3 に格納され、お客様はいつで
もスナップショットから新しいクラスターにデータを復
元できます。
詳細については、「ElastiCache バックアップと復元
(Redis) (p. 168)」を参照してください。
Redis 2.8.6
ElastiCache では、Redis 2.8.6 に加えて Redis 2.6.13 が 2014 年 3 月 13 日
サポートされます。Redis 2.8.6 を使用すると、お客様は
部分再同期のサポートによりリードレプリカの弾力性と
耐障害性を高めることができ、常に使用可能にする必要
があるリードレプリカのユーザー定義の最小数を増やす
ことができます。Redis 2.8.6 では、サーバーで発生した
イベントについてクライアントに通知を送信できる publish-and-subscribe が完全にサポートされます。
Redis キャッシュエ ElastiCache には、Memcached に加えて Redis キャッ
2013 年 9 月 3 日
ンジン
シュエンジンソフトウェアが用意されています。現在
Redis を使用しているお客様は、新しい ElastiCache
キャッシュクラスターに Redis スナップショットファイ
ルから既存のデータを初期データ値として投入できるた
め、管理対象 ElastiCache 環境への移行が容易になりま
す。
Redis レプリケーション機能をサポートするため、ElastiCache API ではレプリケーショングループがサポートさ
れるようになりました。お客様は、プライマリ Redis
キャッシュノードを含むレプリケーショングループを作
成し、プライマリノードのキャッシュデータと自動的に
同期される 1 つ以上のリードレプリカノードを追加でき
ます。読み込み量が多いアプリケーションは、リードレ
プリカにオフロードしてプライマリノードの負荷を軽減
できます。リードレプリカは、プライマリキャッシュノー
ド障害時のデータ損失から保護することもできます。
デフォルト Amazon このリリースでは、ElastiCache は Amazon Virtual Private 2013 年 1 月 8 日
Virtual Private Cloud Cloud(VPC)と完全に統合されています。初めて使用
(VPC)のサポート する場合、キャッシュクラスターはデフォルトで Amazon
VPC に作成されます。
詳細については、「Amazon Virtual Private Cloud (Amazon
VPC) を ElastiCache で使用する (p. 242)」を参照してく
ださい。
キャッシュノード自 キャッシュノード自動検出の初期リリースでは、Java プ 2013 年 1 月 2 日
動検出の PHP サ
ログラムのサポートが提供されていました。このリリー
ポート
スでは、ElastiCache により PHP にキャッシュノード自
動検出のサポートが提供されます。
API Version 2015-02-02
325
Amazon ElastiCache ユーザーガイド
変更
説明
日付変更
Amazon Virtual
このリリースでは、Amazon Virtual Private Cloud(VPC) 2012 年 12 月 20 日
Private Cloud
で ElastiCache クラスターを起動できます。デフォルト
(VPC)のサポート では、初めて使用する場合のキャッシュクラスターは自
動的 Amazon VPC に作成されます。既存のお客様は、自
分のペースで Amazon VPC に移行できます。
詳細については、「Amazon Virtual Private Cloud (Amazon
VPC) を ElastiCache で使用する (p. 242)」を参照してく
ださい。
キャッシュノード自
動検出および新しい
キャッシュエンジン
バージョン
ElastiCache には、キャッシュノード自動検出が備わって 2012 年 11 月 28 日
います。これは、クライアントプログラムがクラスター
内のキャッシュノードをすべて特定し、それらのすべて
のノードへの接続を開始して維持する機能です。
このリリースには、新しいキャッシュエンジンバージョ
ンである Memcached バージョン 1.4.14 が用意されてい
ます。この新しいキャッシュエンジンでは、スラブ再分
散機能の強化、パフォーマンスと拡張性の大幅な向上、
複数のバグ修正が加えられています。設定できる新しい
キャッシュパラメータは複数あります。
詳細については、「パラメータとパラメータグルー
プ (p. 198)」を参照してください。
新しいキャッシュ
ノードタイプ
このリリースには、4 個の追加キャッシュノードタイプ
が用意されています。
2012 年 11 月 13 日
リザーブドキャッ
シュノード
このリリースは、リザーブドキャッシュノードのサポー
トを追加します。
2012 年 4 月 5 日
新規ガイド
これは『Amazon ElastiCache ユーザーガイド』の最初の 2011 年 8 月 22 日
リリースです。
API Version 2015-02-02
326
Amazon ElastiCache ユーザーガイド
AWS の用語集
Abstract
最新の AWS の主要な用語と用法を示しています。
最新の AWS の用語については、『AWS General Reference』の「AWS の用語集」を参照してくださ
い。
API Version 2015-02-02
327