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
© Copyright 2025 ExpyDoc