Comments
Description
Transcript
Amazon ElastiCache - ユーザーガイド
Amazon ElastiCache ユーザーガイド API Version 2015-02-02 Amazon ElastiCache ユーザーガイド Amazon ElastiCache: ユーザーガイド Copyright © 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. 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 以下の資料も参照してください。 .................................................................................................. 1 ElastiCache が適している用途 ...................................................................................................... 2 インメモリデータキャッシュ ................................................................................................ 2 ゲームリーダーボード (Redis ソートリスト) ........................................................................... 3 メッセージング (Redis pub/sub) ........................................................................................... 4 推奨データ (Redis カウンターとハッシュ) .............................................................................. 5 その他の Redis の用途 ........................................................................................................ 5 お客様の声 ........................................................................................................................ 6 ElastiCache リソース .................................................................................................................. 7 チュートリアルの動画 ................................................................................................................. 8 入門動画チュートリアル ...................................................................................................... 8 上級者向け動画チュートリアル ............................................................................................. 9 用語 ........................................................................................................................................ 10 コンポーネントと機能 ............................................................................................................... 12 ノード ............................................................................................................................. 12 シャード (Redis) ............................................................................................................... 13 クラスター ....................................................................................................................... 13 レプリケーション .............................................................................................................. 15 リージョンとアベイラビリティーゾーン ............................................................................... 17 エンドポイント ................................................................................................................. 17 パラメータグループ .......................................................................................................... 18 セキュリティ .................................................................................................................... 18 セキュリティグループ ....................................................................................................... 18 サブネットグループ .......................................................................................................... 19 バックアップ/スナップショット (Redis) ............................................................................... 19 イベント .......................................................................................................................... 19 ElastiCache へのアクセス .......................................................................................................... 20 ElastiCache の管理 ................................................................................................................... 21 ElastiCache の管理 (コンソール) ......................................................................................... 21 ElastiCache の管理 (AWS CLI) ........................................................................................... 21 ElastiCache の管理 (AWS SDK) .......................................................................................... 21 ElastiCache の管理 (ElastiCache API) .................................................................................. 21 はじめに .......................................................................................................................................... 22 ステップ 1: AWS アカウントの作成 ............................................................................................ 22 ステップ 2: クラスターを起動する .............................................................................................. 23 ステップ 3: (オプション) クラスターの詳細を表示する ................................................................... 25 ステップ 4: アクセスを許可する ................................................................................................. 26 EC2-VPC でクラスターを起動した場合 ................................................................................ 27 EC2-Classic でクラスターを起動した場合 ............................................................................ 27 ステップ 5: クラスターのノードに接続する .................................................................................. 28 ステップ 5.1: ノードのエンドポイントを見つける .................................................................. 28 ステップ 5.2: Memcached ノードに接続する ........................................................................ 28 ステップ 5.2: Redis クラスターまたはレプリケーショングループに接続する ............................. 30 ステップ 6: クラスターを削除する .............................................................................................. 31 ここからどこへ進むべきですか? ................................................................................................. 33 エンジンとバージョン ....................................................................................................................... 34 エンジンの選択: Memcached、Redis (クラスターモードが無効)、または Redis (クラスターモードが 有効) ....................................................................................................................................... 35 使用可能なエンジンバージョンの確認 .......................................................................................... 37 使用可能なエンジンバージョンの確認 (コンソール) ................................................................ 37 使用可能なエンジンバージョンの確認 (AWS CLI) .................................................................. 37 使用可能なエンジンバージョンの確認 (ElastiCache API) ......................................................... 37 Memcached バージョンの比較 .................................................................................................... 39 API Version 2015-02-02 iii Amazon ElastiCache ユーザーガイド Memcached バージョン 1.4.33 ........................................................................................... Memcached バージョン 1.4.24 ........................................................................................... Memcached バージョン 1.4.14 ........................................................................................... Memcached バージョン 1.4.5 ............................................................................................. Redis バージョンの比較 ............................................................................................................. Redis バージョン 3.2.4 (拡張) ............................................................................................ Redis バージョン 2.8.24 (拡張) ........................................................................................... Redis バージョン 2.8.23 (拡張) ........................................................................................... Redis バージョン 2.8.22 (拡張) ........................................................................................... Redis バージョン 2.8.21 .................................................................................................... Redis バージョン 2.8.19 .................................................................................................... Redis バージョン 2.8.6 ...................................................................................................... Redis バージョン 2.6.13 .................................................................................................... エンジンバージョンのアップグレード .......................................................................................... Memcached エンジンのアップグレードに関する重要事項 ....................................................... Redis エンジンのアップグレードに関する重要事項 ................................................................ エンジンバージョンのアップグレード方法 ............................................................................ メンテナンスウィンドウ ............................................................................................................ リージョンとアベイラビリティーゾーンの選択 ...................................................................................... Redis リードレプリカおよび Memcached ノードの配置 ................................................................. サポートされているリージョンおよびエンドポイント .................................................................... エンドポイントの検索 ....................................................................................................................... コンソールを使用した Memcached エンドポイントの検索 .............................................................. コンソールを使用した Redis クラスターのエンドポイントの検索 ..................................................... 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 の追加 .............................................................................................................................. コード例 .......................................................................................................................... API Version 2015-02-02 iv 39 39 40 40 41 42 43 43 43 44 44 44 44 44 45 45 46 46 48 48 49 52 53 55 57 59 59 60 63 63 63 65 65 66 66 67 67 68 68 69 71 71 72 72 73 74 76 76 76 77 77 78 78 78 79 79 79 Amazon ElastiCache ユーザーガイド 関連トピック ............................................................................................................................ 80 ノード ............................................................................................................................................. 81 シャード (Redis) ....................................................................................................................... 81 ノードサイズの選択 .................................................................................................................. 83 Memcached ノードサイズの選択 ......................................................................................... 83 Redis ノードサイズの選択 ................................................................................................. 84 リザーブドノード ...................................................................................................................... 87 リザーブドノードサービス ................................................................................................. 87 使用可能なリザーブドキャッシュノードサービスの説明 ......................................................... 89 リザーブドノードの購入 .................................................................................................... 91 リザーブドノードの説明 .................................................................................................... 94 サポートされているノードの種類 ................................................................................................ 96 ノードが置き換え対象となった場合に実行可能なアクション ........................................................... 98 Memcached ..................................................................................................................... 98 Redis .............................................................................................................................. 98 ノードの自動検出 (Memcached) ........................................................................................................ 101 自動検出の利点 ....................................................................................................................... 102 自動検出の動作 ....................................................................................................................... 103 キャッシュノードへの接続 ................................................................................................ 103 通常のクラスターオペレーション ...................................................................................... 104 その他のオペレーション ................................................................................................... 105 自動検出の使用 ....................................................................................................................... 107 ステップ 1: 設定エンドポイントを取得する ........................................................................ 107 ステップ 2: ElastiCache クラスタークライアントをダウンロードする ..................................... 108 ステップ 3: アプリケーションプログラムを変更する ............................................................ 109 キャッシュノードへの手動接続 ................................................................................................. 112 クライアントライブラリへの自動検出の追加 ............................................................................... 113 キャッシュエンジンバージョン 1.4.14 以上 ......................................................................... 113 キャッシュエンジンバージョン 1.4.14 未満 ......................................................................... 113 出力形式 ........................................................................................................................ 114 自動検出クライアント .............................................................................................................. 114 クライアントのインストールとコンパイル .......................................................................... 115 クライアントの設定 ......................................................................................................... 125 シャード (Redis) ............................................................................................................................. 130 クラスター ..................................................................................................................................... 131 Memcached のバージョン ........................................................................................................ 132 Redis のバージョン ................................................................................................................. 132 その他の ElastiCache クラスターオペレーション ......................................................................... 132 クラスターの作成 .................................................................................................................... 133 クラスターの作成: Memcached (コンソール) ....................................................................... 134 Redis (クラスターモードが無効) クラスターの作成 ((コンソール)) .......................................... 136 Redis (クラスターモードが有効) クラスターの作成 ((コンソール)) .......................................... 140 クラスター (CLI) の作成 ................................................................................................... 144 クラスター (API) の作成 ................................................................................................... 146 クラスターの詳細を表示する ..................................................................................................... 148 クラスターの詳細を表示する: Memcached (コンソール) ........................................................ 148 Redis (クラスターモードが無効) クラスターの詳細の表示 ((コンソール)) ................................. 150 Redis (クラスターモードが有効) クラスターの詳細の表示 ((コンソール)) ................................. 151 クラスターの詳細の表示 ((AWS CLI)) ................................................................................. 152 クラスターの詳細の表示 ((ElastiCache API)) ....................................................................... 154 クラスターの変更 .................................................................................................................... 155 クラスターの変更 ((コンソール)) ....................................................................................... 155 キャッシュクラスターの変更 ((AWS CLI)) ........................................................................... 156 キャッシュクラスターの変更 ((ElastiCache API)) ................................................................. 157 クラスターの再起動 ................................................................................................................. 158 クラスターの再起動 ((コンソール)) .................................................................................... 158 キャッシュクラスターの再起動 ((AWS CLI)) ....................................................................... 158 API Version 2015-02-02 v Amazon ElastiCache ユーザーガイド キャッシュクラスターの再起動 ((ElastiCache API)) .............................................................. 159 クラスターのモニタリング ........................................................................................................ 160 クラスターへのノードの追加 ..................................................................................................... 160 クラスターへのノードの追加 ((コンソール)) ........................................................................ 160 キャッシュクラスターへのノードの追加 ((AWS CLI)) ........................................................... 163 キャッシュクラスターへのノードの追加 ((ElastiCache API)) .................................................. 164 クラスターからのノードの削除 ................................................................................................. 166 クラスターからのノードの削除 ((コンソール)) ..................................................................... 166 クラスターからのノードの削除 ((AWS CLI)) ....................................................................... 167 クラスターからのノードの削除 ((ElastiCache API)) .............................................................. 170 保留中のノードの追加または削除オペレーションのキャンセル ....................................................... 172 保留中のノードの追加またはノード削除オペレーションのキャンセル ((コンソール)) ................. 172 クラスターの削除 .................................................................................................................... 173 クラスターの削除 ((コンソール)) ....................................................................................... 173 キャッシュクラスターの削除 ((AWS CLI)) ........................................................................... 173 キャッシュクラスターの削除 ((ElastiCache API)) ................................................................. 173 スケーリング .................................................................................................................................. 175 Memcached のスケーリング ..................................................................................................... 176 Memcached の水平スケーリング ....................................................................................... 176 Memcached の垂直スケーリング ....................................................................................... 177 Redis (クラスターモードが無効) クラスターのスケーリング .......................................................... 179 Redis クラスターのスケールアップ .................................................................................... 179 単一ノード Redis キャッシュクラスターのスケールダウン .................................................... 185 レプリカノードを含む Redis のクラスターのスケーリング ............................................................ 188 レプリカを含む Redis クラスターのスケールアップ ............................................................. 189 レプリカを含む Redis クラスターのスケールダウン ............................................................. 195 読み込みキャパシティーの増加 ......................................................................................... 197 読み込みキャパシティーの削減 ......................................................................................... 198 レプリケーション (Redis) ................................................................................................................. 199 Redis レプリケーション ........................................................................................................... 201 Redis (クラスターモードが無効) ........................................................................................ 201 Redis (クラスターモードが有効) ........................................................................................ 201 レプリケーション: Redis (クラスターモードが無効) と Redis (クラスターモードが有効) .................... 202 どちらを使用すればよいですか? ........................................................................................ 204 レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis) ....................................................... 205 自動フェイルオーバーの概要 ............................................................................................. 205 自動フェイルオーバーと Multi-AZ に関する注意事項 ............................................................. 205 マルチ AZ および自動フェイルオーバーレスポンスの障害シナリオ ......................................... 206 マルチ AZ で自動フェイルオーバーを有効にする ................................................................. 209 同期とバックアップの実装方法 ................................................................................................. 211 Redis バージョン 2.8.22 以降 ........................................................................................... 211 Redis バージョン 2.8.22 以前 ........................................................................................... 211 レプリカを持つクラスターの作成 .............................................................................................. 212 既存のクラスターによる、レプリカを持つクラスターの作成 .................................................. 213 ゼロからのレプリケーショングループの作成 ....................................................................... 217 レプリケーショングループの詳細の表示 ..................................................................................... 231 レプリカを持つ Redis (クラスターモードが無効) の詳細の表示: Redis (クラスターモードが無効) 231 レプリケーショングループの詳細の表示: Redis (クラスターモードが有効) ............................... 232 レプリケーショングループの詳細の表示: (AWS CLI) ............................................................ 232 レプリケーショングループの詳細の表示: (ElastiCache API) ................................................... 234 レプリケーショングループのエンドポイントの検索 ...................................................................... 236 レプリカを持つクラスターの変更 .............................................................................................. 237 Redis クラスターの変更 ((コンソール)) .............................................................................. 237 レプリケーショングループの変更 ((AWS CLI)) .................................................................... 237 レプリケーショングループの変更 ((ElastiCache API)) ........................................................... 237 レプリカを持つクラスターの削除 .............................................................................................. 239 レプリケーショングループの削除 ((コンソール)) .................................................................. 239 API Version 2015-02-02 vi Amazon ElastiCache ユーザーガイド レプリケーショングループの削除 ((AWS CLI)) .................................................................... レプリケーショングループの削除 ((ElastiCache API)) ........................................................... リードレプリカの追加 .............................................................................................................. クラスターへのリードレプリカの追加 ((コンソール)) ............................................................ レプリケーショングループへのリードレプリカの追加 ((AWS CLI)) ......................................... レプリケーショングループへのリードレプリカの追加 ((ElastiCache API)) ................................ リードレプリカの昇格 .............................................................................................................. リードレプリカをプライマリに昇格させる ((コンソール)) ...................................................... リードレプリカをプライマリに昇格させる ((AWS CLI)) ........................................................ リードレプリカをプライマリに昇格させる ((ElastiCache API)) ............................................... リードレプリカの削除 .............................................................................................................. バックアップと復元の管理 (Redis) ..................................................................................................... 制約 ...................................................................................................................................... コスト ................................................................................................................................... パフォーマンスに対するバックアップの影響 ............................................................................... Redis 2.8.22 以降を実行する場合のバックアップ ................................................................. Redis バージョン 2.8.22 以前を実行する場合のバックアップ ................................................. Scheduling Automatic Backups .................................................................................................. Taking Manual Backups ........................................................................................................... 手動バックアップの作成 (コンソール) ................................................................................ 手動バックアップの作成 (AWS CLI) ................................................................................... 手動バックアップの作成 (ElastiCache API) ......................................................................... Taking a Final Backup ............................................................................................................. 最終バックアップの作成 ((コンソール)) .............................................................................. 最終バックアップの作成 ((AWS CLI)) ................................................................................. 最終バックアップの作成 ((ElastiCache API)) ....................................................................... バックアップの詳細の表示 ........................................................................................................ バックアップの詳細の表示 ((コンソール)) ........................................................................... バックアップの詳細の表示 ((AWS CLI)) .............................................................................. バックアップの詳細の表示 ((ElastiCache API)) .................................................................... バックアップのコピー .............................................................................................................. バックアップのコピー ((コンソール)) ................................................................................. バックアップのコピー ((AWS CLI)) .................................................................................... バックアップのコピー ((ElastiCache API)) .......................................................................... バックアップのエクスポート ..................................................................................................... ステップ 1: Amazon S3 バケットを作成する ....................................................................... ステップ 2: ElastiCache に Amazon S3 バケットへのアクセスを許可する ............................... ステップ 3: ElastiCache バックアップをエクスポートする .................................................... Restoring From a Backup ......................................................................................................... Restoring From a Backup (コンソール) .............................................................................. Restoring From a Backup (AWS CLI) ................................................................................. Restoring From a Backup (ElastiCache API) ....................................................................... Using a Backup to Seed a Cluster ............................................................................................. ステップ 1: Redis バックアップを作成する ......................................................................... ステップ 2: バックアップを Amazon S3 にアップロードする ................................................ ステップ 3: .rdb ファイルへの読み込みアクセスを ElastiCache に許可する .............................. ステップ 4: ElastiCache クラスターと .rdb ファイルデータを提携させる ................................. Tagging Backups .................................................................................................................... Deleting a Backup ................................................................................................................... Deleting a Backup (コンソール) ........................................................................................ Deleting a Backup (AWS CLI) ........................................................................................... Deleting a Backup (ElastiCache API) ................................................................................. AOF (Redis Append Only Files) ................................................................................................ セキュリティグループ [EC2-Classic] .................................................................................................. セキュリティグループを作成する .............................................................................................. セキュリティグループを作成する (コンソール) .................................................................... セキュリティグループを作成する (AWS CLI) ...................................................................... API Version 2015-02-02 vii 239 239 240 240 240 241 242 242 243 243 245 246 246 247 247 247 247 249 250 250 251 253 256 256 256 257 259 259 259 259 261 261 261 262 263 263 264 265 269 269 269 270 271 271 271 272 273 274 275 275 275 275 276 277 279 279 279 Amazon ElastiCache ユーザーガイド セキュリティグループを作成する (ElastiCache API) ............................................................. 利用可能な セキュリティグループを一覧表示する ........................................................................ 使用可能なセキュリティグループの一覧表示 ((コンソール)) ................................................... 使用可能なセキュリティグループの一覧表示 ((AWS CLI)) ..................................................... 使用可能なセキュリティグループの一覧表示 ((ElastiCache API)) ............................................ セキュリティグループの表示 ..................................................................................................... セキュリティグループの表示 ((コンソール)) ........................................................................ セキュリティグループの表示 ((AWS CLI)) ........................................................................... セキュリティグループの表示 ((ElastiCache API)) ................................................................. Amazon EC2 セキュリティグループへのネットワークアクセスの許可 ............................................. Amazon EC2 セキュリティグループへのネットワークアクセスの許可 (コンソール) .................. Amazon EC2 セキュリティグループへのネットワークアクセスの許可 (AWS CLI) ..................... Amazon EC2 セキュリティグループへのネットワークアクセスの許可 (ElastiCache API) ............ パラメータとパラメータグループ ...................................................................................................... パラメーター管理 .................................................................................................................... パラメータグループの階層 ........................................................................................................ パラメーターグループを作成する .............................................................................................. パラメータグループを作成する (コンソール) ....................................................................... パラメータグループを作成する (AWS CLI) ......................................................................... パラメータグループを作成する (ElastiCache API) ................................................................ パラメータグループを名前別に一覧表示する ............................................................................... パラメータグループを名前別に一覧表示する (コンソール) ..................................................... パラメータグループを名前別に一覧表示する (AWS CLI) ....................................................... パラメータグループを名前別に一覧表示する (ElastiCache API) .............................................. パラメータグループの値を一覧する ........................................................................................... パラメータグループの値を一覧する (コンソール) ................................................................. パラメータグループの値を一覧する (AWS CLI) ................................................................... パラメータグループの値を一覧する (ElastiCache API) .......................................................... パラメータグループを変更する ................................................................................................. パラメータグループを変更する (コンソール) ....................................................................... パラメータグループを変更する (AWS CLI) ......................................................................... パラメータグループを変更する (ElastiCache API) ................................................................ パラメータグループを削除する ................................................................................................. パラメータグループを削除する (コンソール) ....................................................................... パラメータグループを削除する (AWS CLI) ......................................................................... パラメータグループを削除する (ElastiCache API) ................................................................ Memcached 固有のパラメータ .................................................................................................. Memcached 1.4.33 で追加されたパラメータ ....................................................................... Memcached 1.4.24 で追加されたパラメータ ....................................................................... Memcached 1.4.14 で追加されたパラメータ ....................................................................... Memcached 1.4.5 では、パラメータがサポートされていました。 ........................................... Memcached 接続オーバーヘッド ....................................................................................... Memcached のノードタイプ固有のパラメータ ..................................................................... Redis 固有のパラメータ ........................................................................................................... Redis 3.2.4 パラメーターの変更 ........................................................................................ Redis 2.8.24 (拡張) で追加されたパラメータ ....................................................................... 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 CLI)) .............................................................................. API Version 2015-02-02 viii 279 281 281 281 281 282 282 282 282 284 284 284 285 286 287 288 289 289 289 290 292 292 292 293 295 295 295 296 298 298 298 299 300 300 300 300 302 302 304 305 309 311 312 313 314 316 317 318 319 319 319 322 328 331 332 332 333 Amazon ElastiCache ユーザーガイド サブネットグループの作成 ((ElastiCache API)) .................................................................... クラスターまたはレプリケーショングループにサブネットグループを割り当てる .............................. サブネットグループの変更 ........................................................................................................ サブネットグループの変更 ((コンソール)) ........................................................................... サブネットグループの変更 ((AWS CLI)) .............................................................................. サブネットグループの変更 ((ElastiCache API)) .................................................................... サブネットグループの削除 ........................................................................................................ サブネットグループの削除 ((コンソール)) ........................................................................... サブネットグループの削除 ((AWS CLI)) .............................................................................. サブネットグループの削除 ((ElastiCache API)) .................................................................... Amazon VPC と ElastiCache ............................................................................................................ ElastiCache および Amazon VPC .............................................................................................. Amazon VPC 内の ElastiCache の概要 ............................................................................... なぜ EC2 Classic の代わりに Amazon VPC を ElastiCache デプロイメントで使用するのです か。 .............................................................................................................................. 前提条件 ........................................................................................................................ ルーティングとセキュリティ ............................................................................................. Amazon VPC ドキュメント .............................................................................................. Virtual Private Cloud (VPC) の作成 ............................................................................................ Amazon VPC バケットの作成 (コンソール) ......................................................................... キャッシュサブネットグループの作成 ........................................................................................ Amazon VPC でのキャッシュクラスターの作成 ........................................................................... Amazon VPC でのキャッシュクラスターの作成 (コンソール) ................................................ Amazon VPC でレプリケーショングループを作成する .................................................................. Amazon VPC でレプリケーショングループを作成する (コンソール) ....................................... Amazon VPC で実行中のクラスターまたはレプリケーショングループに接続する ............................. 1. Amazon EC2 インスタンスを作成する ............................................................................ 2. Amazon EC2 インスタンスに IP アドレスを割り当てる ..................................................... 3. Amazon EC2 インスタンスに接続する ............................................................................ セキュリティ .................................................................................................................................. セキュリティグループ .............................................................................................................. Amazon VPC: Amazon VPC セキュリティグループ .............................................................. Amazon EC2-Classic: ElastiCache セキュリティグループ ..................................................... 認証とアクセスコントロール ..................................................................................................... 認証 .............................................................................................................................. アクセスコントロール ...................................................................................................... アクセス管理の概要 ......................................................................................................... アイデンティティベースのポリシー (IAM ポリシー) を使用する ............................................. ElastiCache API の権限リファレンス ................................................................................. AWS 外部からの ElastiCache リソースへのアクセス ............................................................................ 要件 ...................................................................................................................................... 考慮事項 ................................................................................................................................ 制約事項 ................................................................................................................................ AWS 外部から ElastiCache リソースにアクセスする方法 .............................................................. 以下の資料も参照してください。 .............................................................................................. モニタリング .................................................................................................................................. 使用状況のモニタリング ........................................................................................................... ElastiCache メトリクスのディメンション ........................................................................... ホストレベルのメトリクス ................................................................................................ Memcached のメトリクス ................................................................................................ Redis のメトリクス ......................................................................................................... モニタリングすべきメトリクス ......................................................................................... メトリクスの統計と期間の選択 ......................................................................................... Monitoring CloudWatch Cache Cluster and Cache Node Metrics ............................................. イベントのモニタリング ........................................................................................................... ElastiCacheAmazon SNS 通知の管理 ................................................................................. Viewing ElastiCache Events .............................................................................................. API Version 2015-02-02 ix 333 335 336 336 336 336 338 338 338 338 340 341 341 343 344 344 344 346 346 348 349 349 350 350 351 351 352 353 356 356 356 356 358 358 359 360 364 369 373 373 373 374 374 376 377 378 378 378 379 381 384 385 385 388 388 392 Amazon ElastiCache ユーザーガイド イベント通知と Amazon SNS ........................................................................................... タグによるコストのモニタリング .............................................................................................. コンソールを使用したタグの管理 ...................................................................................... AWS CLI を使用したタグの管理 ........................................................................................ ElastiCache API を使用したタグの管理 .............................................................................. Copying Tags to Your ElastiCache Resource ...................................................................... ElastiCache API の使用 .................................................................................................................... クエリ API の使用 ................................................................................................................... Query パラメータ ............................................................................................................ クエリリクエストの認証 ................................................................................................... 利用可能なライブラリ .............................................................................................................. アプリケーションのトラブルシューティング ............................................................................... エラーの取得 .................................................................................................................. トラブルシューティングのヒント ...................................................................................... API 呼び出しのログ作成 ........................................................................................................... CloudTrail 内の ElastiCache 情報 ...................................................................................... ElastiCache ログファイルエントリの解読 ........................................................................... チュートリアル ............................................................................................................................... ドキュメント履歴 ............................................................................................................................ AWS の用語集 ................................................................................................................................ API Version 2015-02-02 x 393 399 400 404 407 409 411 411 411 411 413 414 414 414 415 415 415 419 420 428 Amazon ElastiCache ユーザーガイド 以下の資料も参照してください。 Amazon 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 など他の AWS サービスとの統合によるセキュ アで高パフォーマンスなマネージドインメモリキャッシングソリューションの提供。 以下の資料も参照してください。 Amazon ElastiCache を使用したスケールに応じたパフォーマンス API Version 2015-02-02 1 Amazon ElastiCache ユーザーガイド ElastiCache が適している用途 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. 76)」を参照してください。 ゲームリーダーボード (Redis ソートリスト) Redis ソートセットは、計算の複雑性がアプリケーションから Redis クラスターへのリーダーボードに関 連付けられています。 ゲームのハイスコアのトップ 10 のなどのリーダーボードは計算が複雑で、大勢のプレーヤーが同時にプ レーしており、スコアが継続的に変化する場合は、とくに複雑となります。Redis ソートセットは、一意 性と要素の順番を保証します。Redis ソートセットを使用すると、ソートセットに新しい要素が追加され るたびに リアルタイムで再ランキングが行われ、セットの適切な順位の位置にその要素が設定されます。 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 のドキュメント」を参照してください。 API Version 2015-02-02 3 Amazon ElastiCache ユーザーガイド メッセージング (Redis pub/sub) メッセージング (Redis pub/sub) E メールメッセージを送信すると、1 人以上の指定された受信者にメッセージが送信されます。publish/ subscribe のパラダイムでは、メッセージをその受信者にではなく、受信者を特定しないまま特定の チャンネルに送信します。メッセージの受信者は、そのチャネルに登録している人物です。たとえば、 お客様が news.sports.golf チャネルに登録しているとします。news.sports.golf へのすべての登録者 は、news.sports.golf チャンネルに発行されるメッセージをすべて受信します。 Redis の publish/subscribe 機能は、キー空間とは無関係です。したがって、あらゆるレベルで干渉される ことはありません。 登録中 チャンネルに発行されるメッセージを受信するには、チャンネルに登録する必要があります。1 つのチャ ンネル、複数の指定されたチャンネル、またはパターンに一致するすべてのチャンネルに登録できます。 登録をキャンセルするには、登録時に指定したチャンネルから、またはパターンマッチングを使用して登 録した場合はパターンに一致するすべてのチャンネルから登録解除します。 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 API Version 2015-02-02 4 Amazon ElastiCache ユーザーガイド 推奨データ (Redis カウンターとハッシュ) UNSUBSCRIBE Example - パターンマッチングを使用した登録 クライアントは PSUBSCRIBE コマンドを使用して、パターンに一致するすべてのチャンネルに登録でき ます。 以下の例では、クライアントはすべてのチャンネルに登録します。SUBSCRIBE 使用してすべてのスポー ツチャンネルを個々に登録するのではなく、PSUBSCRIBE コマンドでパターンマッチングを使用します。 PSUBSCRIBE news.sports.* これらのチャンネルへの登録をキャンセルするには、PUNSUBSCRIBE コマンドを使用します。 PUNSUBSCRIBE news.sports.* Important [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 その他の Redis の用途 Salvatore Sanfilippo による記事 (How to take advantage of Redis just adding it to your stack) で、数多くの よく知られたデータベースが、Redis を使用して問題を簡単に解決している方法が紹介されており、デー タベースからのロードが不要になり、パフォーマンスが向上することが説明されています。 API Version 2015-02-02 5 Amazon ElastiCache ユーザーガイド お客様の声 お客様の声 「お客様の声」を参照して、airbnb、PBS、esri、その他の企業が、Amazon ElastiCache を活用して自社 の顧客体験を向上させながら成長しているのをご覧ください。 API Version 2015-02-02 6 Amazon ElastiCache ユーザーガイド ElastiCache リソース Amazon ElastiCache リソース 以下のセクションを読んでから開始することをお勧めします。また、必要に応じて参照し直してくださ い。 • サービスのハイライトと価格設定 – 製品詳細ページには、ElastiCache の全般的な製品概要、サービス のハイライト、価格設定が掲載されています。 • ElastiCache 動画 –「ElastiCache チュートリアルの動画 (p. 8)」セクションでは Amazon ElastiCache が紹介されており、ElastiCache の一般的ユースケースと、ElastiCache を使用してレイテ ンシーを減らしアプリケーションのスループットを向上させる方法のデモがあります。 • はじめに –「Amazon ElastiCache の使用開始 (p. 22)」セクションには、キャッシュクラスターの作 成、キャッシュクラスターへのアクセス認可、キャッシュノードへの接続、キャッシュクラスターの削 除のプロセスを実行する例が掲載されています。 • スケールに応じたパフォーマンス – Amazon ElastiCache を使用したスケールに応じたパフォーマンス ホワイトペーパーでは、アプリケーションがスケールに応じて適切に機能するためのキャッシュ戦略を ご紹介しています。 前述のセクションを完了したら、これらのセクションを参照してください。 • エンジンとバージョン (p. 34) ElastiCache では、— Memcached と Redis の 2 つのエンジンがサポートされます。このトピックで は、どのエンジンがお客様のシナリオに最良であるかを判断するのに役立ちます。 • ノードサイズの選択 (p. 83) キャッシュは、キャッシュしたいすべてのデータに対応できるだけの十分な大きさにします。同時に、 必要以上にキャッシュを大きくしたくはないものです。このトピックでは、最良のノードのサイズを選 択するのに役立ちます。 • Amazon ElastiCache の実装のベストプラクティス (p. 65) クラスターの効率に影響を及ぼす可能性がある問題を特定し、対処します。 AWS Command Line Interface を使用する場合は、以下のドキュメントが作業を始めるのに役立ちます。 • AWS Command Line Interface のドキュメント このセクションには、AWS CLI のダウンロード、システムでの CLI の実行、AWS 認証情報の指定に関 する情報が記載されています。 • ElastiCache に関する AWS CLI のドキュメント これは、構文と例など、ElastiCache 用 AWS CLI のコマンド に関するすべてが掲載された別個のドキュ メントです。 一般に使用されているさまざまなプログラミング言語を使用して、ElastiCache API を活用するアプリケー ションプログラムを記述できます。次にいくつかのリソースを示します。 • Amazon Web Services 用のツール Amazon Web Services には、ElastiCache をサポートする多数のソフトウェア開発キット (SDK) が用意 されています。ElastiCache のコードは、Java、.NET、PHP、Ruby、および他の言語で記述できます。 これらの SDK では、リクエストが ElastiCache の形式に設定されて、レスポンスが解析され、再試行ロ ジックとエラー処理が提供されるため、アプリケーション開発が大幅に簡略化されます。 • ElastiCache API の使用 (p. 411) API Version 2015-02-02 7 Amazon ElastiCache ユーザーガイド チュートリアルの動画 AWS SDK を使用しない場合、クエリ API を使用して ElastiCache を直接操作することができます。こ のセクションには、リクエストを作成および認証してレスポンスを処理する際のトラブルシューティン グのヒントと情報が掲載されています。 • Amazon ElastiCache API Reference これは、構文と例など、ElastiCache API 操作に関するすべてが掲載された別個のドキュメントです。 ElastiCache チュートリアルの動画 このセクションには、Amazon ElastiCache の基本的な概念と高度な概念を理解できるチュートリアルの動 画が含まれています。AWS のトレーニングについては、「AWS トレーニングと認定」を参照してくださ い。 入門動画チュートリアル Amazon ElastiCache に関する入門者向け動画チュートリアルは、以下を参照してください。 トピック • Amazon ElastiCache のご紹介 (p. 8) • DAT204—AWS NoSQL サービスでのスケーラブルなアプリケーションの構築 (re:Invent 2015) (p. 8) • DAT207 — Amazon ElastiCache によるアプリケーションパフォーマンスの向上 (AWS re:Invent 2013) (p. 8) 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 8 Amazon ElastiCache ユーザーガイド 上級者向け動画チュートリアル ことによりメリットが得られるさまざまなシナリオとユースケースについて調べ、Amazon ElastiCache に 用意されている機能について説明します。 DAT207 - Amazon ElastiCache によるアプリケーションパフォーマンスの向上 (re:Invent 2013) 上級者向け動画チュートリアル Amazon ElastiCache に関する上級者向けチュートリアル動画は、以下を参照してください。 トピック • DAT407 — Amazon ElastiCache の詳細 (re:Invent 2015) (p. 9) • SDD402 — Amazon ElastiCache の詳細 (re:Invent 2014) (p. 9) • DAT307 — Amazon ElastiCache のアーキテクチャおよびデザインパターンの詳細 (re:Invent 2013) (p. 9) 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 9 Amazon ElastiCache ユーザーガイド 用語 ElastiCache の用語 2016 年 10 月に、Amazon ElastiCache では Redis 3.2 のサポートが発表され、特に、データの分割のサ ポートが追加されました。以前のバージョンとの互換性を維持するために、新しい Redis の機能を含むよ うに現在の API/CLI (API バージョン 2015-02-02) オペレーションを拡張する予定です。並行して、この新 しい機能に使用される ElastiCache コンソールでは、業界全体で一般的となっている用語を使用する予定 です。つまり、API/CLI で使用される用語が、コンソールで使用される用語と異なる場合があります。以 下の表では、API/CLI とコンソールとで異なる場合のある用語を示しています。 キャッシュクラスター/ノードとノードの比較 レプリカノードがないときは、ノードとキャッシュクラスターは 1 対 1 で対応するため、ElastiCache コンソールでは多くの場合、それらの用語は区別しないで使用されます。今後、コンソールでは一貫 してノードという用語を使用します。唯一の例外は、レプリカノードの有無にかかわらずクラスター の作成プロセスを開始する、[Create Cluster] ボタンです。 ElastiCache API または AWS CLI の用語に変更はありません。 キャッシュ xxx と xxx の比較 コンソールでは、キャッシュノード、キャッシュクラスター、キャッシュパラメータグループのよう な用語からキャッシュという単語が省かれました。コンソールでは現在、これらをノード、クラス ター、パラメータグループと呼んでいます。 ElastiCache API または AWS CLI の用語に変更はありません。 ノードグループとシャードの比較 ノードグループとシャードは、リードレプリカノードがある場合にのみ存在します。シャードとノー ドグループは似ています。いずれもレプリケーションを実装しますが、内部構造がわずかに異なりま す。シャードは最大 6 の Redis ノードの集合です。ノードグループは最大 6 の Redis 単一ノードクラ スターの集合です。いずれの場合も、レプリケーションは、1 つのノード/クラスターを読み書き可能 プライマリとして、他のすべてのノード/クラスターを読み取り専用レプリカとして実装されます。視 覚的な比較については、以下の「レプリケーショングループとクラスターの比較」の図を参照してく ださい。ElastiCache コンソールでは、レプリケーショングループという用語は使用されなくなり、代 わりにクラスターという用語が使用されます。 ElastiCache API または AWS CLI の用語に変更はありません。 API Version 2015-02-02 10 Amazon ElastiCache ユーザーガイド 用語 レプリケーショングループとクラスターの比較 上記で定義しているように、Redis クラスター (API/CLI ではレプリケーショングループ) はシャード (API/CLI ではノードグループ) の集合です。 Redis (クラスターモードが無効) クラスターに複数のシャード (API/CLI ではノードグループ) が含ま れることはありません。Redis (クラスターモードが有効) クラスターのデータは 15 のシャード (API/ CLI ではノードグループ) 間で分割できます。 ElastiCache API または AWS CLI の用語に変更はありません。 API Version 2015-02-02 11 Amazon ElastiCache ユーザーガイド コンポーネントと機能 ElastiCache コンポーネントと機能 このセクションのトピックは、Amazon ElastiCache デプロイメントの主なコンポーネントの概要です。 トピック • ElastiCache ノード (p. 12) • ElastiCache シャード (Redis) (p. 13) • ElastiCache クラスター (p. 13) • ElastiCache レプリケーション (Redis) (p. 15) • リージョンとアベイラビリティーゾーン (p. 17) • ElastiCache エンドポイント (p. 17) • ElastiCache パラメータグループ (p. 18) • ElastiCache のセキュリティ (p. 18) • ElastiCache セキュリティグループ (p. 18) • ElastiCache サブネットグループ (p. 19) • ElastiCache バックアップ/スナップショット (Redis) (p. 19) • ElastiCache イベント (p. 19) ElastiCache ノード ノードとは、ElastiCache のデプロイにおける最小の構成要素です。ノードは他のノードから分離する か、一定の関係を設定できます。 ノードは、安全なネットワークに接続された RAM の固定サイズの断片です。各ノードでは、クラスター の作成時に選択された項目に応じて、Memcached または Redis のインスタンスが実行されます。必要に 応じて、異なるインスタンスタイプにノードのクラスターを拡大または縮小できます。詳細については、 「スケーリング (p. 175)」を参照してください。 クラスター内の各ノードは同じインスタンスタイプで、同じキャッシュエンジンを実行します。各キャッ シュノードはそれぞれ Domain Name Service (DNS) 名とポートを持っています。それぞれ関連付けられて いる異なるメモリ量で、複数のタイプのキャッシュノードがサポートされています。サポートされるイン スタンスタイプノードのリストについては、「サポートされているノードの種類 (p. 96)」を参照してく ださい。 従量課金制ノードを購入して、ノードの使用分に対してのみ料金を支払うか、大幅な割引価格でリザーブ ドノードを購入できます。使用率が高い場合は、リザーブドノードを購入するほうがコストを削減できま す。クラスターを常に使用しており、急激な使用率の増加には一時的にノードを追加して対処している場 合は、多数のリザーブドノードを購入してほとんどの時間実行することができます。一時的にノードを追 加する必要がある場合は従量制料金で購入できます。リザーブドノードの詳細については、「ElastiCache リザーブドノード (p. 87)」を参照してください。 Memcached エンジンでは自動検出がサポートされます。– 自動検出は、クライアントプログラムが、 キャッシュクラスター内のすべてのノードを識別し、それらのすべてのノードへの接続を開始して維持す る機能です。自動検出を使用すると、アプリケーションは個々のノードに手動で接続する必要がありませ ん。その代わり、アプリケーションは設定エンドポイントに接続します。設定エンドポイントの DNS エ ントリには、各キャッシュノードエンドポイントの CNAME エントリが含まれています。したがって、 設定エンドポイントに接続することによって、アプリケーションはクラスター内のすべてのノードについ てすぐに知ることができ、すべてのノードに接続できます。アプリケーションで個々のキャッシュノード エンドポイントをハードコードする必要はありません。自動検出の詳細については、「ノードの自動検出 (Memcached) (p. 101)」を参照してください。 ノードの詳細については、「ElastiCache ノード (p. 81)」を参照してください。 API Version 2015-02-02 12 Amazon ElastiCache ユーザーガイド シャード (Redis) ElastiCache シャード (Redis) Redis シャード (API/CLI ではノードグループ) は 1 ~ 6 の関連ノードのグループです。Redis (クラスター モードが無効) クラスターには、常に 1 つのみのシャードが含まれます。Redis (クラスターモードが有効) クラスターには、1 ~ 15 のシャードを含めることができます。 複数ノードシャードでは、1 つの読み書き可能プライマリノードと 1 ~ 5 のレプリカノードを含 めることで、レプリケーションを実装します。詳細については、「ElastiCache レプリケーション (Redis) (p. 199)」を参照してください。 Redis シャードの構成 シャードの詳細については、「シャード (Redis) (p. 130)」を参照してください。 ElastiCache クラスター クラスターは、単一または複数の ElastiCache ノード (p. 12) または ElastiCache シャード (Redis) (p. 13) の論理グループです。データは Redis (クラスターモードが有効) クラスター内のシャード間で 分割されます。 クラスターを対象とした多くの ElastiCache オペレーションがあります。 • クラスターの作成 • クラスターの変更 • クラスター (Redis のすべてのバージョン) のスナップショットを作成する • クラスターの削除 • クラスターのエレメントの表示 • クラスター間で送受信されるコスト配分タグの追加または削除 詳細については、次の関連トピックを参照してください。 • ElastiCache クラスター (p. 131) および ElastiCache ノード (p. 81) クラスター、ノードおよび関連オペレーションに関する情報。 • AWS サービスの制限: Amazon ElastiCache ノードまたはクラスターの最大数など、ElastiCache の制限についての情報。 これらの制限を超過する必要がある場合は、Amazon ElastiCache キャッシュノードリクエストフォー ムを使用してリクエストを作成します。 API Version 2015-02-02 13 Amazon ElastiCache ユーザーガイド クラスター • 障害の軽減 (p. 68) クラスターおよびレプリケーショングループの耐障害性向上に関する情報。 一般的なクラスターの設定 選択したエンジンによって、クラスター設定は異なります。 Memcached は、1 つのリージョンのお客様あたり最大 100 のノードと、1 ~ 20 のノードを持つ各クラス ターをサポートします。Memcached クラスターのノードにデータを分割することができます。 Redis クラスターには 1 ~ 15 のシャード (API ではノードグループ) が含まれており、それぞれがデータ のパーティションです。Redis (クラスターモードが無効) クラスターには、常に 1 つのみのシャードが含 まれます。 以下は、Memcached エンジンと Redis エンジンの一般的なクラスター設定です。 Memcached クラスター Memcached エンジンを実行している場合、クラスターは 1 ~ 20 個のノードを持つことができます。デー タベースをノード間で分割できます。アプリケーションによって各ノードのエンドポイントに対して読み 書きされます。詳細については、「ノードの自動検出 (Memcached) (p. 101)」を参照してください。 耐障害性を改善するために、クラスターのリージョン内のさまざまなアベイラビリティーゾーン (AZs) に Memcached ノードを配置します。この方法により、1 つのアベイラビリティーゾーンで発生した障 害がクラスター全体とアプリケーションに与える影響を最小限できます。詳細については、「障害の軽 減 (p. 68)」を参照してください。 Memcached クラスターの需要の変化に合わせて、ノードの追加や削除で規模を拡大したり縮小したりで きます。また、新しいノードにまたがってデータを再分割できます。データを分割するときは、整合性の あるハッシュを使用することをお勧めします。整合性のあるハッシュの詳細については、「効率的な負荷 分散のための ElastiCache クライアントの設定 (p. 71)」を参照してください。 単一ノードおよび複数ノード Memcached クラスター Memcached クラスター: 単一ノードおよび複数ノードクラスター Redis クラスター Redis クラスターには、1 ~ 15 のシャード (API / CLI ではノードグループ) が含まれます。Redis (クラ スターモードが無効) クラスターには、常に 1 つのみのシャード (API/CLI ではノードグループ) が含まれ ます。Redis シャードには、1 ~ 6 のノードが含まれます。シャードに複数のノードがある場合、シャー ドでは、1 つを読み書き可能プライマリノード、その他を読み取り専用レプリカノードとするレプリケー ションが可能です。 耐障害性を高めるために、Redis クラスターでは 2 つ以上のノードを含め、自動フェイルオーバーを備え たマルチ AZ を有効にすることをお勧めします。詳細については、「障害の軽減 (p. 68)」を参照してく ださい。 Redis (クラスターモードが無効) クラスターの需要の変化に応じて、別のノードインスタンスタイプにク ラスターを移動することで、クラスターをスケールアップ/ダウンできます。アプリケーションで読み取り API Version 2015-02-02 14 Amazon ElastiCache ユーザーガイド レプリケーション のワークロードが高い場合は、Redis (クラスターモードが無効) クラスターに読み取り専用レプリカを追 加することをお勧めします。それにより、読み取りを適切な数のノード間に分散させることができます。 ElastiCache では、Redis (クラスターモードが無効) クラスターのより大きいノードタイプへの動的な変更 がサポートされています。スケールアップ/ダウンの詳細については、「Redis (クラスターモードが無効) クラスターのスケーリング (p. 179)」または「レプリカノードを含む Redis のクラスターのスケーリン グ (p. 188)」を参照してください。 ElastiCache レプリケーション (Redis) ここでの説明を読み進める前に、「ElastiCache の用語 (p. 10)」を参照して、ElastiCache コンソールと API/CLI とでの用語の違いを理解してください。 レプリケーションは、2 ~ 6 のノードをシャード (API/CLI ではノードグループ) にまとめることで実装さ れます。これらのノードの 1 つは読み書き可能プライマリノードです。他のすべてのノードは読み取り専 用レプリカノードです。 各レプリカノードは、プライマリノードからのデータのコピーを維持します。レプリカノードは、非同期 レプリケーションメカニズムを使用して、プライマリノードとの同期を維持します。アプリケーション は、クラスターのどのノードからでも読み込みことができますが、書き込むことができるのはプライマリ ノードのみになります。リードレプリカは、読み取りを複数のエンドポイントに分散させることで拡張で きます。リードレプリカは、データの複数のコピーを維持することで、耐障害性が向上します。複数のア ベイラビリティーゾーンにリードレプリカを配置することで、耐障害性が向上します。耐障害性の詳細に ついては、「障害の軽減 (p. 68)」を参照してください。 Redis (クラスターモードが無効) クラスターでは、1 つのみのシャード (API/CLI ではノードグループ) が サポートされています。Redis (クラスターモードが有効) クラスターでは、1 ~ 15 のシャード (ノードグ ループ) がサポートされています。 以下の図では、コンソールのビューと用語を使用して、Redis (クラスターモードが無効) と Redis (クラス ターモードが有効) クラスターのレプリケーションを示しています。 Redis のレプリケーション (コンソールビュー)、1 つのシャードと複数のシャード API/CLI の観点からのレプリケーションでは、以前のバージョンとの互換性を維持するために異なる用語 を使用していますが、結果は同じです。以下の図では、レプリケーションの実装に関する API/CLI の用語 を示しています。 レプリケーション: Redis (クラスターモードが無効) および Redis (クラスターモードが有効) の比較 API Version 2015-02-02 15 Amazon ElastiCache ユーザーガイド レプリケーション 次の表では、Redis (クラスターモードが無効) レプリケーショングループと Redis (クラスターモードが有 効) レプリケーショングループのさまざまな機能を比較しています。 Redis (クラスターモードが無効) Redis (クラスターモードが有効) 1 1 ~ 15 ノードグループあたりのレプリ カ数 0~5 0~5 データのパーティション化 いいえ はい はい いいえ いいえ いいえ サポートの拡大 はい いいえ エンジンアップグレードのサ ポート はい 該当なし レプリカをプライマリに昇格 はい いいえ オプション 必須 はい はい ノードグループ レプリカの追加/削除 ノードグループの追加/削除 自動フェイルオーバーを備えた マルチ AZ バックアップ/復元 注: どのプライマリにもレプリカがなく、プライマリに障害が発生した場合、そのプライマリのデータがす べて失われます。 バックアップ/復元は、同じ数のノードグループを持つレプリケーショングループに対して行う必要があ ります。 すべてのシャード (API/CLI ではノードグループ) とノードは同じリージョンに存在する必要があります。 ただし、そのリージョン内の複数のアベイラビリティーゾーンに個別のノードをプロビジョニングできま す。 リードレプリカでは、データが 2 つ以上のノードにプライマリと 1 つ以上のリードレプリカにレプリケー トされているので、潜在的なデータ損失からデータが保護されます。信頼性を高め、より迅速な復旧を可 能にするために、異なるアベイラビリティーゾーンに 1 つ以上のリードレプリカを作成し、AOF を使用 する代わりに自動フェイルオーバーを備えたマルチ AZ を有効にすることをお勧めします。自動フェイル オーバーを備えたマルチ AZ が有効になっている場合、AOF は無効になります。詳細については、「レプ リケーション: 自動フェイルオーバーとマルチ AZ (Redis) (p. 205)」を参照してください。 レプリケーション: 制限と例外 • AOF は cache.t1.micro のノードタイプではサポートされていません。 • 自動フェイルオーバーを備えたマルチ AZ は Redis バージョン 2.6.8 以降でのみサポートされていま す。 • 自動フェイルオーバーを備えたマルチ AZ はノードタイプ T1 および T2 ではサポートされていません。 AOF とマルチ AZ の詳細については、「障害の軽減 (p. 68)」を参照してください。 API Version 2015-02-02 16 Amazon ElastiCache ユーザーガイド リージョンとアベイラビリティーゾーン リージョンとアベイラビリティーゾーン Amazon ElastiCache は世界中の複数のリージョンで利用でき、ビジネス要件に合った場所で ElastiCache クラスターを起動できます。たとえば、顧客に最も近いリージョンで起動する場合や、特定の法的な要件 を満たす必要がある場合などです。 デフォルトでは、AWS SDK、AWS CLI、ElastiCache API、ElastiCache コンソールは米国西部 (オレゴン) リージョンを参照しています。ElastiCache が他のリージョンでも利用可能になると、そのリージョンの エンドポイントもアプリケーションの HTTP リクエスト、AWS SDK、AWS CLI、ElastiCache コンソール で利用できるようになります。 各リージョンは、他のリージョンと完全に分離されるように設計されています。各リージョンには複数の アベイラビリティーゾーンがあります。別のアベイラビリティーゾーンでノードを起動して、最大限の耐 障害性を実現できます。リージョンとアベイラビリティーゾーンの詳細については、「リージョンとアベ イラビリティーゾーンの選択 (p. 48)」を参照してください。 リージョンとアベイラビリティーゾーン ElastiCache でサポートされているリージョンおよびそのエンドポイントについては、「サポートされて いるリージョンおよびエンドポイント (p. 49)」を参照してください。 ElastiCache エンドポイント エンドポイントは、アプリケーションが ElastiCache ノードまたはクラスターに接続するのに使用する一 意のアドレスです。 Memcached のエンドポイント Memcached クラスターの各ノードには、独自のエンドポイントがあります。クラスターには、設定エン ドポイントと呼ばれるエンドポイントもあります。自動検出を有効にして設定エンドポイントに接続した 場合、クラスターからノードの追加や削除を行った後であっても、アプリケーションは自動的に各ノード エンドポイントを検出します。詳細については、「ノードの自動検出 (Memcached) (p. 101)」を参照し てください。 単一ノード Redis クラスターのエンドポイント 単一ノード Redis クラスターのエンドポイントは、読み取りおよび書き込みのためにクラスターに接続す るのに使用されます。 複数ノード Redis クラスターのエンドポイント 複数ノード Redis (クラスターモードが無効) クラスターには、2 種類のエンドポイントがあります。プラ イマリエンドポイントは常に、プライマリロールで特定のノードが変わっても、クラスター内のプライ マリノードに接続します。クラスターへのすべての書き込みには、プライマリエンドポイントを使用しま す。 Redis (クラスターモードが無効) クラスター内のリードエンドポイントは常に、特定のノードを参照しま す。リードレプリカを追加または削除するたびに、アプリケーションで関連するノードエンドポイントを 更新する必要があります。 API Version 2015-02-02 17 Amazon ElastiCache ユーザーガイド パラメータグループ Redis (クラスターモードが有効) クラスターには、1 つの設定エンドポイントがあります。設定エンドポイ ントに接続することで、アプリケーションはクラスター内のシャードごとにプライマリおよびリードエン ドポイントを検出できます。 詳細については、「ElastiCache エンドポイントの検索 (p. 52)」を参照してください。 ElastiCache パラメータグループ キャッシュパラメータグループは、サポートされるエンジンソフトウェアのランタイム設定を管理する簡 単な方法です。Memcached と Redis には、メモリの使用状況、削除のポリシー、項目サイズなどを制御 する多くのパラメータがあります。ElastiCache パラメータグループは、一連の Memcached または Redis 固有のパラメータで、クラスターに適用してそのクラスター内のすべてのノードで正確に同じ設定が行わ れることを保証します。 サポートされているパラメータのリスト、デフォルト値、変更可能なパラメータについて は、DescribeEngineDefaultParameters (describe-engine-default-parameters) を参照してください。 ElastiCache パラメータグループの詳細については、「パラメータとパラメータグループ (p. 286)」を参 照してください。 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. 340)」を参照してください。 ElastiCache を使用すると、セキュリティグループを使用して、クラスターへのアクセスを制御すること ができます。セキュリティグループは、クラスターへのネットワークアクセスをコントロールするファイ アウォールのように動作します。デフォルトでは、クラスターへのネットワークアクセスはオフになって います。アプリケーションからクラスターにアクセスできるようにするには、特定の Amazon EC2 セキュ リティグループのホストからのアクセスを明示的に有効にする必要があります。進入ルールの設定後、同 じルールがそのセキュリティグループに関連するすべてのクラスターに適用されます。 クラスターへのネットワークアクセスを許可するには、セキュリティグループを作成 し、AuthorizeCacheSecurityGroupIngress API または authorize-cache-security-group-ingress AWS CLI コ マンドを使用して、必要な Amazon EC2 セキュリティグループを認証します (その結果として、許可さ れている Amazon EC2 インスタンスを指定します)。セキュリティグループは、作成時にクラスターに関 連付けるか、ElastiCache マネージメントコンソールまたは ModifyCacheCluster または (modify-cachecluster) ElastiCache 用 AWS CLI のコマンド を使用して、クラスターに関連付けることができます。 API Version 2015-02-02 18 Amazon ElastiCache ユーザーガイド サブネットグループ Important IP レンジベースのアクセスコントロールは現在、クラスターでは有効になっていません。クラス ターのすべてのクライアントは、Amazon EC2 ネットワーク内にある必要があり、前に説明した ように、セキュリティグループによって許可されている必要があります。 セキュリティグループの詳細については、セキュリティグループ [EC2-Classic] (p. 277) を参照してくだ さい。 ElastiCache サブネットグループ サブネットグループは、Amazon Virtual Private Cloud (Amazon VPC) 環境で実行しているクラスターに対 して指定できるサブネット (通常はプライベート) の集合です。 Amazon VPC でクラスターを作成する場合は、キャッシュサブネットグループを指定する必要がありま す。ElastiCache はそのキャッシュサブネットグループを使用して、そのサブネット内でキャッシュノー ドに関連付けるサブネットおよび IP アドレスを選択します。 Amazon VPC 環境でのキャッシュサブネットグループの使用方法の詳細については、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」、「ステップ 4: アクセスを許可す る (p. 26)」、「サブネットおよびサブネットグループ (p. 331)」を参照してください。 ElastiCache バックアップ/スナップショット (Redis) バックアップは、Redis クラスターのポイントインタイムコピーです。バックアップは、既存のクラス ターを復元するか、または新しいクラスターをシードするのに使用できます。バックアップは、クラス ターのすべてのデータといくつかのメタデータで構成されます。バックアップは Memcached エンジンで はサポートされません。 ポイントインタイムバックアップを保持するために Redis がバックアップを作成している間、バックアッ プされているクラスターのデータとは別に、プロセス分岐とクラスターへのすべての書き込みが利用可能 なメモリに記録されます。このため、これらの書き込み対応するための十分なメモリが追加で必要となり ます。ノードタイプを選択する場合、Redis を使用する場合はこのことに注意します。Redis デプロイ用 のノードタイプの選択については、「Redis スナップショットを作成するための十分なメモリがあること の確認 (p. 65)」を参照してください。 詳細については、「ElastiCache バックアップと復元 (Redis) (p. 246)」を参照してください。 ElastiCache イベント ノード追加の失敗、ノード追加の成功、セキュリティグループの変更などのような重要なイベントが キャッシュクラスターで発生すると、ElastiCache は特定の Amazon SNS トピックに通知を送信します。 主要イベントをモニタリングすることで、クラスターの現在の状態を知り、イベントに基づいて是正措置 を取ることができます。 ElastiCache イベントの詳細については、「ElastiCache イベントのモニタリング (p. 388)」を参照して ください。 API Version 2015-02-02 19 Amazon ElastiCache ユーザーガイド ElastiCache へのアクセス Amazon ElastiCache へのアクセス Amazon ElastiCache インスタンスは、Amazon EC2 インスタンス経由でのみアクセスできます。 Amazon Virtual Private Cloud (Amazon VPC) で ElastiCache を起動した場合、同一 Amazon VPC の Amazon EC2 インスタンスから、または別の Amazon VPC の Amazon EC2 から VPC ピア接続を使用し て、ElastiCache インスタンスにアクセスできます。 ElastiCache インスタンスを EC2 Classic で起動した場合、そのインスタンスに関連付けられた Amazon EC2 セキュリティグループに、キャッシュセキュリティグループへのアクセスを許可することで、EC2 イ ンスタンスにクラスターへのアクセスを許可することができます。デフォルトでは、クラスターへのアク セスはそのクラスターを起動したアカウントに制限されています。 Amazon EC2 にクラスターへのアクセス許可を付与する方法の詳細については、「ステップ 4: アクセスを 許可する (p. 26)」と「AWS 外部からの ElastiCache リソースへのアクセス (p. 373)」を参照してくだ さい。 API Version 2015-02-02 20 Amazon ElastiCache ユーザーガイド ElastiCache の管理 ElastiCache の管理 Amazon EC2 インスタンスに ElastiCache クラスターへのアクセスを許可した場合、ElastiCache ク ラスターを管理するには、AWS マネジメントコンソール、AWS CLI for ElastiCache、AWS SDK for ElastiCache、ElastiCache API の 4 つの方法があります。 ElastiCache の管理 (コンソール) AWS マネジメントコンソール は、Amazon ElastiCache を管理する最も簡単な方法です。このコンソー ルを使用すると、コードを記述しなくても、キャッシュクラスターの作成、キャッシュノードの追加と削 除、他の管理タスクを実行することができます。コンソールには、CloudWatch からのキャッシュノード パフォーマンスグラフも表示され、キャッシュエンジンアクティビティ、メモリと CPU の使用率などの メトリクスが示されます。詳細については、この「ユーザーガイド」の特定のトピックを参照してくださ い。 ElastiCache の管理 (AWS CLI) AWS Command Line Interface (AWS CLI) for ElastiCache を使用することもできます。AWS CLI では、 キャッシュクラスターの起動や停止など、1 つずつ行う操作を簡単に実行できます。さらに、選択したス クリプト言語から ElastiCache 用 AWS CLI のコマンド を呼び出して、繰り返し行うタスクを自動化する こともできます。AWS CLI の詳細については、『ユーザーガイド』と『AWS Command Line Interface Reference』を参照してください。 ElastiCache の管理 (AWS SDK) アプリケーションから ElastiCache にアクセスする場合、AWS Software Development Kit (SDK) のいずれ かを使用できます。SDK は、ElastiCache API 呼び出しをラップし、ElastiCache API の低レベルの詳細か らアプリケーションを隔離します。開発者が認証情報を指定すれば、SDK ライブラリによって認証とリク エスト署名の処理が自動的に行われます。AWS SDK の使用の詳細については、「Amazon Web Services 用のツール」を参照してください。 ElastiCache の管理 (ElastiCache API) さらに、ElastiCache ウェブサービス API に対して直接アプリケーションコードを記述することもでき ます。API を使用する場合、HTTP リクエストの構築と認証、ElastiCache からの結果の解析、エラーの 処理に必要なコードを記述する必要があります。この API の詳細については、「ElastiCache API の使 用 (p. 411)」を参照してください。 API Version 2015-02-02 21 Amazon ElastiCache ユーザーガイド ステップ 1: AWS アカウントの作成 Amazon ElastiCache の使用開始 独自の AWS アカウントを作成するにあたって、このセクションのトピックでは、ElastiCache コンソー ルを使用したスタンドアロン Redis (クラスターモードが無効) クラスターの作成、アクセス権限付与、接 続、削除の手順について説明します。 Amazon ElastiCache では、Redis レプリケーショングループを使用することで、高可用性がサポートされ ています。Redis レプリケーショングループとその作成方法については、「ElastiCache レプリケーション (Redis) (p. 199)」を参照してください。 Redis バージョン 3.2 から、ElastiCache Redis は、レプリケーショングループを実装した各ノードグルー プにより、複数のノードにわたるデータの分割をサポートします。この演習では、スタンドアロン Redis クラスターを作成します。 トピック • ステップ 1: AWS アカウントの作成 [1 回] (p. 22) • ステップ 2: クラスターを起動する (p. 23) • ステップ 3: (オプション) クラスターの詳細を表示する (p. 25) • ステップ 4: アクセスを許可する (p. 26) • ステップ 5: クラスターのノードに接続する (p. 28) • ステップ 6: クラスターを削除します [追加料金の発生を防ぐため]。 (p. 31) • ここからどこへ進むべきですか? (p. 33) ステップ 1: AWS アカウントの作成 [1 回] ElastiCache を使用するには、AWS アカウントが必要です。アカウントを持っていない場合は、サイン アップ時に作成するための画面が表示されます。サインアップした AWS サービスの料金は、そのサービ スを使用しない限り発生することはありません。 AWS アカウントを作成するには 1. https://aws.amazon.com/ を開き、[AWS アカウントの作成] を選択します。 2. オンラインの手順に従います。 サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力す ることが求められます。 API Version 2015-02-02 22 Amazon ElastiCache ユーザーガイド ステップ 2: クラスターを起動する ステップ 2: クラスターを起動する 続ける前に、「ステップ 1: AWS アカウントの作成 [1 回] (p. 22)」を完了したことを確認してくださ い。 ここで起動するクラスターはライブとなります。サンドボックスで実行されるわけではありません。イ ンスタンスを削除するまで、ElastiCache の標準使用料が発生します。ここで説明する演習を一気に完了 し、終了時にクラスターを削除すれば、使用料合計はごくわずかです (通常 1 ドル未満です)。ElastiCache 使用料の詳細については、https://aws.amazon.com/elasticache/ を参照してください。 Important Amazon VPC でクラスターが起動されます。クラスターの作成を開始する前に、サブネットグ ループを作成する必要があります。詳細については、「サブネットグループの作成 (p. 332)」を 参照してください。 スタンドアロン Redis (クラスターモードが無効) クラスターを作成するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. [Get Started Now] を選択します。 すでに使用可能なクラスターがある場合は、[Launch Cluster] を選択します。 3. [Cluster engine] で、[Redis] を選択します。 4. [Cluster Mode enabled (Scale Out)] が選択されていないことを確認してください。 5. [Redis settings] セクションに以下のように入力します。 a. [Name] ボックスに、クラスターの名前を入力します。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 b. [Engine version compatibility] リストから、このクラスターで実行する Redis エンジンバージョン を選択します。ここでは、以前のバージョンを実行する特定の理由がある場合を除いて、最新の バージョンを選択することをお勧めします。 c. [Port] の値は、デフォルトポート (6379) のままにしておきます。異なるポートを使用する理由が ある場合は、そのポート番号を入力します。 d. [Parameter group] で、このクラスターで使用するパラメータグループを選択するか、[Create new] を選択して、このクラスターで使用する新しいパラメータグループを作成します。この演習 では、[default] のパラメータグループを受け入れます。 詳細については、「パラメーターグループを作成する (p. 289)」を参照してください。 e. [Node type] で、このクラスターに使用するノードタイプを選択します。この演習では、上記の表 で [t2] インスタンスファミリーを選択してから、[cache.t2.small]、[Save] の順に選択します。 詳細については、「ノードサイズの選択 (p. 83)」を参照してください。 f. [Number of replicas] から、このクラスターに必要なリードレプリカの数を選択します。この演習 ではスタンドアロンクラスターを作成するため、[None] を選択します。 [None] を選択すると、[Replication group description] フィールドが消えます。 6. [Advanced Redis settings] を選択し、セクションに以下のように入力します。 API Version 2015-02-02 23 Amazon ElastiCache ユーザーガイド ステップ 2: クラスターを起動する Note Redis (クラスターモードが有効) レプリケーショングループを作成する場合、[Advanced Redis settings] の詳細はわずかに異なります。Redis (クラスターモードが有効) レプリケー ショングループを作成するステップバイステップのウォークスルーについては、「ゼロから の Redis (クラスターモードが有効) レプリケーショングループの作成 (p. 224)」を参照して ください。 a. [Subnet group] リストから、このクラスターに適用するサブネットを選択します。この演習で は、[default] を選択します。 詳細については、「サブネットおよびサブネットグループ (p. 331)」を参照してください。 b. このクラスターに対して [Availability zone(s)] を選択する方法を選択します。これには 2 つのオプ ションがあります。 • No preference – ElastiCache がアベイラビリティーゾーンを選択します。 • Specify availability zones – ユーザーがクラスターに対するアベイラビリティーゾーンを指定し ます。 この演習では、[Specify availability zones] を選択してから、[Primary] の下のリストからアベイラ ビリティーゾーンを選択します。 詳細については、「リージョンとアベイラビリティーゾーンの選択 (p. 48)」を参照してくださ い。 c. [Security groups] リストから、このクラスターに使用するセキュリティグループを選択します。 この演習では、[default] を選択します。 詳細については、「ElastiCache とセキュリティグループ (p. 356)」を参照してください。 d. .RDB ファイルからクラスターにデータをシードする場合は、[Seed RDB file S3 location] ボック スに .RDB ファイルの Amazon S3 の場所を入力します。 詳細については、「Using a Backup to Seed a Cluster (p. 271)」を参照してください。 e. これが本稼働クラスターではないため、[Enable automatic backups] チェックボックスはオフにし ます。 Redis のバックアップと復元の詳細については、「ElastiCache バックアップと復元 (Redis) (p. 246)」を参照してください。 f. [Maintenance window] では、ElastiCache によってクラスターに対してスケジュールされる 毎週のシステムメンテナンス期間 (通常は 1 時間) を指定します。メンテナンス期間の日時 は、ElastiCache によって選択されるようにするか ([No preference])、自分で選択できます ([Specify maintenance window])。[Specify maintenance window] を選択した場合は、メンテナ ンス期間の [Start day]、[Start time]、[Duration] (時間単位) を指定します。この演習では、[No preference] を選択します。 詳細については、「メンテナンスウィンドウ (p. 46)」を参照してください。 g. 7. [Notifications] は [Disabled] のままにします。 [Create cluster] を選択してクラスターを起動するか、[Cancel] を選択してオペレーションをキャンセ ルします。 API Version 2015-02-02 24 Amazon ElastiCache ユーザーガイド ステップ 3: (オプション) クラスターの詳細を表示する ステップ 3: (オプション) クラスターの詳細を表示 する 続行する前に、「ステップ 2: クラスターを起動する (p. 23)」を完了したことを確認してください。 Redis (クラスターモードが無効) クラスターの詳細を表示するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. ElastiCache コンソールのダッシュボードで [Redis] を選択し、いずれかのバージョンの Redis を実行 しているすべてのクラスターを一覧表示します。 3. クラスターの詳細を表示するには、クラスター名の左側にあるボックスを選択します。クラスター化 された Redis ではなく、Redis エンジンを実行しているクラスターを必ず選択してください。これに より、クラスターのプライマリエンドポイントを含む、クラスターの詳細が表示されます。 4. ノード情報を表示するには a. クラスターの名前を選択します。 b. [Nodes] タブを選択します。これにより、クラスターから読み込むために使用する必要がある ノードのエンドポイントを含む、各ノードの詳細が表示されます。 c. 1 つまたは複数のノードのメトリクスを表示するには、ノード ID の左側のボックスを選択し、 [Time range] からメトリクスの時間範囲を選択します。複数のノードを選択すると、オーバーレ イグラフが表示されます。 2 つの Redis ノードに関する過去 1 時間のメトリクス API Version 2015-02-02 25 Amazon ElastiCache ユーザーガイド ステップ 4: アクセスを許可する ステップ 4: アクセスを許可する このセクションでは、Amazon EC2 インスタンスの起動と接続に慣れていることを前提としています。詳 細については、Amazon EC2 入門ガイド をご覧ください。 すべての ElastiCache クラスターは Amazon EC2 インスタンスからアクセスするように設計されていま す。クラスターとその関連 EC2 インスタンスは同じ Amazon Virtual Private Cloud (Amazon VPC) にある ことが必要です。同じ VPC 内の EC2 インスタンス以外の場所から ElastiCache クラスターにアクセスす る必要がある場合は、回避策としてキャッシュの VPC 内に EC2 ホストを 1 つ以上セットアップして外部 のプロキシとして動作させることができます。ホストをセットアップすると、追加のネットワークホップ または追加の Secure Sockets Layer (SSL) オーバーヘッド (または両方) が追加され、料金が発生します。 ただし、多くのユースケースではコストは少額です。プロキシとなる EC2 インスタンスにクラスターへの アクセスを許可する必要があります。AWS の外部から ElastiCache リソースにアクセスする方法について は、「AWS 外部からの ElastiCache リソースへのアクセス (p. 373)」を参照してください。 デフォルトでは、クラスターへのネットワークアクセスは、クラスターの起動に使用されたユーザーアカ ウントに制限されます。EC2 インスタンスからクラスターに接続するには、EC2 インスタンスにクラス ターへのアクセスを許可する必要があります。必要な手順はクラスターを Amazon 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. 27)」に進みま す。 [EC2] および [VPC] の両方が表示されている場合は、「EC2-Classic でクラスターを起動した場 合 (p. 27)」に進みます。 詳細については、「Detecting Your Supported Platforms and Whether You Have a Default VPC」を参照し てください。 AWS Command Line Interface (AWS CLI) を使用して EC2-VPC と EC2-Classic のどちらでクラス ターを起動したかを調べるには 1. コマンドウィンドウを開きます。 2. コマンドプロンプトで、次のコマンドを入力します。 aws ec2 describe-account-attributes 出力に [VPC] のみが表示されている場合は、「EC2-VPC でクラスターを起動した場合 (p. 27)」に 進みます。 API Version 2015-02-02 26 Amazon ElastiCache ユーザーガイド EC2-VPC でクラスターを起動した場合 出力に [EC2] および [VPC] の両方が表示されている場合は、「EC2-Classic でクラスターを起動した 場合 (p. 27)」に進みます。 EC2-VPC でクラスターを起動した場合 クラスターを Amazon Virtual Private Cloud (Amazon VPC) で起動した場合、同じ Amazon VPC で実行さ れている Amazon EC2 インスタンスからのみ ElastiCache クラスターに接続できます。この場合、クラス ターに対するネットワーク進入を許可する必要があります。 Caution ElastiCache クラスターを 0.0.0.0/0 (ステップ 4.e.) に設定した場合、パブリック IP アドレスが割 り当てられず VPC 外からアクセスできないため、クラスターはインターネット接続できません。 ただし、お客様のアカウントの他の Amazon EC2 インスタンスにデフォルトのセキュリティグ ループが適用され、そのインスタンスにパブリック IP アドレスが付与される場合があります。そ れがポート 6379 で実行された場合、意図しなくてもサービスが公開されることがあります。そ のため、ElastiCache でのみ使用される VPC のセキュリティグループを作成されることをお勧め します。詳細については、「 カスタムセキュリティグループ」を参照してください。 Amazon VPC セキュリティグループからクラスターへのネットワーク進入を許可するには 1. AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ にある Amazon EC2 コンソールを開きます。 2. 左のナビゲーションペインで、[Network & Security] の下にある [Security Groups] を選択します。 3. セキュリティグループのリストで、Amazon VPC のセキュリティグループを選択します。ElastiCache 用のセキュリティグループを作成した場合を除き、このセキュリティグループは、default という名前 になります。 4. [Inbound] タブを選択し、次の操作を行います。 a. [Edit] を選択します。 b. [Add rule] を選択します。 c. [Type] 列で [Custom TCP rule] を選択します。 d. [Port range] ボックスに、クラスターノードのポート番号を入力します。この番号は、クラスター の起動時に指定した番号と同じ番号である必要があります。デフォルトのポートは次のとおりで す。 • Memcached: ポート 11211 • Redis: ポート 6379 e. [Source] ボックスで [Anywhere] を選択します。ポート範囲が 0.0.0.0/0 になるため、Amazon VPC 内で起動したすべての Amazon EC2 インスタンスを ElastiCache ノードに接続できます。 f. [Save] を選択します。 Amazon VPC で Amazon EC2 インスタンスを起動する場合、そのインスタンスは ElastiCache クラスター に接続できます。 EC2-Classic でクラスターを起動した場合 クラスターを EC2-Classic で起動した場合、Amazon EC2 インスタンスにクラスターへのアクセスを許可 するには、そのインスタンスに関連付けられた Amazon EC2 セキュリティグループに、キャッシュセキュ リティグループへのアクセスを許可する必要があります。 API Version 2015-02-02 27 Amazon ElastiCache ユーザーガイド ステップ 5: クラスターのノードに接続する Amazon EC2 セキュリティグループにクラスターへのアクセスを許可するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [Cache Security Groups] を選択します。 キャッシュセキュリティグループのリストが表示されます。 3. default セキュリティグループを選択します。 4. 画面の下部のリストから、許可する EC2 セキュリティグループを選択します。 5. [Add] を選択し、アクセスを許可します。 これで、セキュリティグループに関連付けられた Amazon EC2 インスタンスを、ElastiCache クラス ターに接続できるようになりました。 セキュリティグループのアクセスを取り消すには、許可されたセキュリティグループのリストから該当の セキュリティグループを選択し、[Remove] を選択します。 ステップ 5: クラスターのノードに接続する 続ける前に、「ステップ 4: アクセスを許可する (p. 26)」を完了したことを確認してください。 このセクションでは、Amazon EC2 インスタンスが作成済みであり、このインスタンスに接続できること を前提としています。これを行う方法の手順については、『Amazon EC2 入門ガイド』を参照してくださ い。 Amazon EC2 インスタンスは、許可されている場合にのみクラスターノードに接続できます。詳細につい ては、「ステップ 4: アクセスを許可する (p. 26)」を参照してください。 ステップ 5.1: ノードのエンドポイントを見つける クラスターへのアクセスを許可し、クラスターが available 状態になり、クラスターへのアクセスを許可 したら、Amazon EC2 インスタンスにログインし、クラスターのノードに接続できます。そのためには、 最初にノードエンドポイントを確認する必要があります。 ノードのエンドポイントを見つける方法については、該当するトピックを参照してください。必要なエン ドポイントを見つけたら、ステップ 5.2 で使用するために、クリップボードにコピーします。 • ElastiCache エンドポイントの検索 (p. 52) • Memcached クラスターのエンドポイントの検索 (コンソール) (p. 53) • Redis (クラスターモードが無効) クラスターのエンドポイントの検索 ((コンソール)) (p. 55) • Redis (クラスターモードが有効) クラスターのエンドポイントの検索 ((コンソール)) (p. 57) • エンドポイントの検索 (AWS CLI) (p. 59) • エンドポイントの検索 (ElastiCache API) (p. 63) ステップ 5.2: Memcached ノードに接続する これで、エンドポイントがわかったので、Amazon EC2 インスタンスにログインし、キャッシュノードに 接続できます。手順は使用するエンジンによって異なります。 次の例では、telnet ユーティリティを使用して Memcached を実行しているノードに接続します。 API Version 2015-02-02 28 Amazon ElastiCache ユーザーガイド ステップ 5.2: Memcached ノードに接続する Note Memcached およびその使用可能なコマンドの詳細については、Memcached のウェブサイトを参 照してください。 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 '^]'. > 4. Memcached コマンドを実行します。 これで、ノードに接続され、Memcached のコマンドを実行できます。次に例を示します。 set a 0 0 5 hello STORED get a VALUE a 0 5 hello // Set key "a" with no expiration and 5 byte value // Set value as "hello" // Get value for key "a" API Version 2015-02-02 29 Amazon ElastiCache ユーザーガイド ステップ 5.2: Redis クラスターまたは レプリケーショングループに接続する END get b END > // Get value for key "b" results in miss ステップ 5.2: Redis クラスターまたはレプリケーショ ングループに接続する これで、必要なエンドポイントがわかったので、EC2 インスタンスにログインし、キャッシュノードに接 続できます。手順は使用するエンジンによって異なります。 次の例では、redis-cli ユーティリティを使用して Redis を実行しているクラスターに接続します。 Note Redis とその使用可能なコマンドの詳細については、「Redis のコマンド」ウェブページを参照し てください。 redis-cli を使用して Redis クラスターに接続するには 1. 選択した接続ユーティリティを使用して、Amazon EC2 インスタンスに接続します。 Note Amazon EC2 インスタンスに接続する手順については、『Amazon EC2 入門ガイド』を参照 してください。 2. redis-cli をビルドするには、GNU Compiler Collection (gcc) をダウンロードしてインストールする必 要があります。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 (2/11): cpp46-4.6.3-2.67.amzn1.x86_64.rpm (3/11): gcc-4.6.3-3.10.amzn1.noarch.rpm | 5.2 MB | 4.8 MB | 2.8 kB 00:00 00:00 00:00 ...(output omitted)... Complete! 3. redis-cli ユーティリティをダウンロードし、コンパイルします。このユーティリティは Redis ソフト ウェアディストリビューションに含まれています。EC2 インスタンスのコマンドプロンプトで、以下 のコマンドを入力します。 Note Ubuntu システムでは、make を実行する前に、make distclean. API Version 2015-02-02 30 Amazon ElastiCache ユーザーガイド ステップ 6: クラスターを削除する wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make を実行します。 4. EC2 インスタンスのコマンドプロンプトで、以下のコマンドを入力します。この例に示されているク ラスターのエンドポイントを実際のものに置き換えてください。 src/redis-cli -c -h mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com -p 6379 以下のような Redis コマンドのプロンプトが表示されます。 redis mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 6379> 5. Redis コマンドを実行します。 これで、クラスターに接続され、Redis のコマンドを実行できます。次に例を示します。 set a "hello" OK get a "hello" get b (nil) set b "Good-bye" EX 5 get b "Good-bye" // Set key "a" with a string value and no expiration // Get value for key "a" // Get value for key "b" results in miss // Set key "b" with a string value and a 5 second expiration // wait 5 seconds get b (nil) quit // key has expired, nothing returned // Exit from redis-cli ステップ 6: クラスターを削除します [追加料金の発 生を防ぐため]。 作業を始める前に、少なくとも「ステップ 2: クラスターを起動する (p. 23)」まで完了したことを確認 してください。 Important ほとんどの場合、使用していないクラスターの削除が推奨されます。クラスターのステータス状 態が削除済みになるまで、利用に対して課金されます。 クラスターを削除するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. ElastiCache コンソールダッシュボードで、削除するクラスターが実行されているエンジン (Memcached または Redis) を選択します。 選択したエンジンを実行しているクラスターがすべて一覧表示されます。 3. 削除するクラスターを選択するには、クラスターのリストからそのクラスターの名前を選択します。 API Version 2015-02-02 31 Amazon ElastiCache ユーザーガイド ステップ 6: クラスターを削除する Important ElastiCache コンソールから、一度に 1 つずつクラスターを削除できます。複数のクラス ターを選択すると、削除オペレーションが無効になります。 4. 5. [Actions] ボタンを選択し、アクションのリストから [Delete] を選択します。 [Delete Cluster] 確認画面: a. これが Redis クラスターである場合、最終スナップショットを取得するかどうかと、最終スナップ ショットが必要な場合は最終スナップショット名を指定します。 b. [Delete] を選択してクラスターを削除するか、[Cancel] を選択してクラスターを保持します。 [Delete] を選択した場合は、クラスターのステータスが削除中に変わります。 クラスターがクラスターのリストに表示されなくなるとすぐに、課金が停止されます。 おめでとうございます。Redis クラスターの起動、アクセス権の設定、クラスターへの接続、クラスター の表示、クラスターの削除をひととおり体験しました。 API Version 2015-02-02 32 Amazon ElastiCache ユーザーガイド ここからどこへ進むべきですか? ここからどこへ進むべきですか? これで入門演習は完了しました。ElastiCache と利用可能なツールについてさらに知識を深めるには、次 の各セクションを参照してください。 • AWS の使用開始 • アマゾン ウェブ サービスのツール • AWS コマンドラインインターフェイス • Amazon ElastiCacheAPI リファレンス まだそれらをお読みでない場合は、ここにある ElastiCache トピックをお読みください。 開始方法の演習を完了したら、以下のセクションで ElastiCache の管理に関する詳細を確認できます。 • エンジンとバージョン (p. 34) ElastiCache では、– Memcached と Redis の 2 つのエンジンがサポートされます。このトピックでは、 どのエンジンがお客様のシナリオに最良であるかを判断するのに役立ちます。 • ノードサイズの選択 (p. 83) キャッシュは、キャッシュしたいすべてのデータに対応できるだけの十分な大きさにします。同時に、 必要以上にキャッシュを大きくしたくはないものです。このトピックでは、最良のノードのサイズを選 択するのに役立ちます。 • Amazon ElastiCache の実装のベストプラクティス (p. 65) クラスターの効率に影響を及ぼす可能性がある問題を特定し、対処します。 API Version 2015-02-02 33 Amazon ElastiCache ユーザーガイド エンジンとバージョン Amazon ElastiCache では、Memcached と Redis のキャッシュエンジンがサポートされています。各エン ジンにはいくつかのメリットがあります。このトピックの情報を参考にして、要件を満たす最適なエンジ ンとバージョンを選択してください。 Important キャッシュクラスターまたはレプリケーショングループの作成後、より新しいエンジンバージョ ンにアップグレードできますが (「エンジンバージョンのアップグレード (p. 44)」を参照)、以 前のエンジンバージョンにダウングレードすることはできません。以前のエンジンバージョンを 使用する場合は、既存のキャッシュクラスターまたはレプリケーショングループを削除し、新た にそれを以前のエンジンバージョンで作成する必要があります。 トピック • エンジンの選択: Memcached、Redis (クラスターモードが無効)、または Redis (クラスターモードが 有効) (p. 35) • 使用可能なエンジンバージョンの確認 (p. 37) • Memcached バージョンの比較 (p. 39) • Redis バージョンの比較 (p. 41) • エンジンバージョンのアップグレード (p. 44) • メンテナンスウィンドウ (p. 46) API Version 2015-02-02 34 Amazon ElastiCache ユーザーガイド エンジンの選択: Memcached、Redis (クラスターモー ドが無効)、または Redis (クラスターモードが有効) エンジンの選択: Memcached、Redis (クラスター モードが無効)、または Redis (クラスターモードが 有効) 見かけ上エンジンは似ています。それぞれのエンジンは、インメモリキー/値ストアです。ただし、実際に は大きな違いがあります。 以下がお客様の状況に当てはまる場合は、Memcached を選択します。 • できるだけシンプルなモデルが必要である。 • 複数のコアまたはスレッドを持つ大きなノードを実行する必要がある。 • システムでの需要の増減に応じてノードを追加または削除するスケールアウト / スケールイン機能が必 要である。 • 複数のシャード間でデータを分割する必要がある。 • データベースなどのオブジェクトをキャッシュする必要がある。 以下がお客様の状況に当てはまる場合は、Redis 2.8.x または Redis 3.2 (非クラスターモード) を 選択します。 • 文字列、ハッシュ、リスト、セット、ストアドセット、ビットマップなど、複雑なデータ型が必要であ る。 • インメモリデータセットをソートまたはランク付けする必要がある。 • キーストアの永続性が必要である。 • 読み取り量が多いアプリケーションのために、プライマリからのデータを 1 つ以上のリードレプリカに レプリケートする必要がある。 • プライマリノードが失敗した場合に、自動的なフェイルオーバーが必要である。 • 発行とサブスクライブ (pub/sub) 機能が必要 - クライアントにサーバー上のイベントを通知する必要が ある。 • バックアップと復元の機能が必要である。 • 複数のデータベースをサポートする必要がある。 以下の違いがある Redis 2.8.x のすべての機能が必要な場合は、Redis 3.2 (クラスターモード) を 選択します。 • 2~ 15 のノードグループ間でデータを分割する必要がある (クラスターモードのみ)。 • 地理空間インデックス作成 (クラスターモードまたは非クラスターモード) が必要。 • 複数のデータベースをサポートする必要がない。 Important Redis (クラスターモードが有効) クラスターモードには以下の制限があります。 • 大きなノードタイプに拡張しない。 • ノードグループ (パーティション) の数の変更なし。 • ノードグループ (パーティション) のレプリカの数の変更なし。 API Version 2015-02-02 35 Amazon ElastiCache ユーザーガイド エンジンの選択: Memcached、Redis (クラスターモー ドが無効)、または Redis (クラスターモードが有効) Memcached、Redis (クラスターモードが無効)、Redis (クラスターモードが有効) の比較の概要 エンジンバージョン データ型 Memcached Redis (クラス ターモードが無効) Redis (クラス ターモードが有効) 1.4.x 2.8.x & 3.2.x 3.2.x シンプル Redis 2.8.x - 混在 * 複雑 Redis 3.2.x - 混在 マルチスレッド はい いいえ いいえ クラスターが変更可能 はい はい いいえ ノードタイプのアップ グレード いいえ はい いいえ エンジンのアップグ レード はい はい いいえ データのパーティショ ン化 はい いいえ はい キーストアの永続性 いいえ はい はい 高可用性 (レプリケー ション) いいえ はい はい プライマリの自動フェ イルオーバー いいえ オプション 必須 パブリック/サブ機能 いいえ はい はい リストのソート いいえ はい はい カウンターとハッシュ いいえ はい はい バックアップ/復元機能 いいえ はい はい 地理空間インデックス 作成 いいえ Redis 2.8.x - いいえ Redis の 3.2.x - はい はい 注: 文字列、オブジェクト (データベースなど) *文字列セット、並べ替えられたセット、リスト、ハッシュ、ビットマップ、Hyperloglog 文字列、セット、ソートされたセット、リスト、ハッシュ、ビットマップ、Hyperloglog、Geospacial イ ンデックス クラスターのエンジンを選択した後は、そのエンジンの最新バージョンを使用することをお勧めしま す。詳細については、「Memcached バージョンの比較 (p. 39)」または「Redis バージョンの比 較 (p. 41)」を参照してください。 API Version 2015-02-02 36 Amazon ElastiCache ユーザーガイド 使用可能なエンジンバージョンの確認 使用可能なエンジンバージョンの確認 一部のリージョンでは、利用できないエンジンバージョンがある場合があります。そのため、クラスター またはレプリケーショングループを作成する前に、リージョンでサポートされているエンジンバージョン を確認する必要があります。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使って、リージョンでサポートされている エンジンバージョンを確認することができます。 使用可能なエンジンバージョンの確認 (コンソール) クラスターまたはレプリケーショングループを作成するときに、エンジンバージョンをリストから選択す るように求められます。リストには現在のリージョンで使用可能なエンジンバージョンが含まれていま す。 詳細については、「クラスターの作成 (p. 133)」または「ゼロからのレプリケーショングループの作 成 (p. 217)」を参照してください。 使用可能なエンジンバージョンの確認 (AWS CLI) リージョンで使用可能なエンジンバージョンを確認するには、describe-cache-engine-versions オペ レーションを使用します。 aws elasticache describe-cache-engine-versions このオペレーションからの出力は以下のような JSON 形式になります。 { "CacheEngineVersions": [ { "Engine": "memcached", "CacheEngineDescription": "memcached", "CacheEngineVersionDescription": "memcached version 1.4.14", "CacheParameterGroupFamily": "memcached1.4", "EngineVersion": "1.4.14" }, ... some output omitted for brevity { "Engine": "redis", "CacheEngineDescription": "Redis", "CacheEngineVersionDescription": "redis version 2.8.6", "CacheParameterGroupFamily": "redis2.8", "EngineVersion": "2.8.6" } ] } 詳細については、「describe-cache-engine-versions」を参照してください。 使用可能なエンジンバージョンの確認 (ElastiCache API) リージョンで使用可能なエンジンバージョンを確認するには、DescribeCacheEngineVersions アクション を使用します。 API Version 2015-02-02 37 Amazon ElastiCache ユーザーガイド 使用可能なエンジンバージョンの確認 (ElastiCache API) https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheEngineVersions &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、「DescribeCacheEngineVersions」を参照してください。 API Version 2015-02-02 38 Amazon ElastiCache ユーザーガイド Memcached バージョンの比較 Memcached バージョンの比較 ElastiCache は Memcached のこれらのバージョンをサポートします。 トピック • Memcached バージョン 1.4.33 (p. 39) • Memcached バージョン 1.4.24 (p. 39) • Memcached バージョン 1.4.14 (p. 40) • Memcached バージョン 1.4.5 (p. 40) Memcached バージョン 1.4.33 バージョン 1.4.24 以降に追加された Memcached の機能拡張には、以下が含まれます。 • 特定のスラブクラス、スラブクラスのリスト、またはすべてのスラブクラスのメタデータをダンプでき る機能詳細については、「Memcached 1.4.31 リリースノート」を参照してください。 • デフォルト値が 1 MB を超える大きなアイテムに対応詳細については、「Memcached 1.4.29 リリース ノート」を参照してください。 • 閉じる前にクライアントがアイドル状態だった時間を指定できる機能 クラスターを再起動せずに、Memcached で使用可能なメモリの量を動的に増やすことができる機能詳 細については、「Memcached 1.4.27 リリースノート」を参照してください。 • fetchers、mutations、evictions のログ記録がサポートされるようになりました。詳細については、 「Memcached 1.4.26 リリースノート」を参照してください。 • 解放されたメモリは、再度グローバルのプールに戻し、新しいスラブクラスに割り当て直すことができ ます。詳細については、「Memcached 1.4.25 リリースノート」を参照してください。 • 複数のバグ修正。 • いくつかの新しいコマンドとパラメータ。リストについては、「Memcached 1.4.33 で追加されたパラ メータ (p. 302)」を参照してください。 アップグレードの要件 古いバージョンの Memcached からアップグレードするときは、次の要件に注意する必要があります。以 下の条件では、CreateCacheCluster および ModifyCacheCluster は失敗します。 • もし slab_chunk_max > max_item_size. • もし max_item_size modulo slab_chunk_max != 0. • もし max_item_size > ((max_cache_memory - memcached_connections_overhead) / 4). Note (max_cache_memory - memcached_connections_overhead) は、データに使用可能なノードの メモリです。詳細については、「Memcached 接続オーバーヘッド (p. 311)」を参照してくだ さい。 Memcached バージョン 1.4.24 バージョン 1.4.14 以降に追加された Memcached の機能拡張には、以下が含まれます。 • バックグラウンドプロセスを使用した LRU (least recently used) の管理 API Version 2015-02-02 39 Amazon ElastiCache ユーザーガイド Memcached バージョン 1.4.14 • ハッシュアルゴリズムとして使用する jenkins または murmur3 のオプションを追加しました。 • いくつかの新しいコマンドとパラメータ。リストについては、「Memcached 1.4.24 で追加されたパラ メータ (p. 304)」を参照してください。 • 複数のバグ修正。 Memcached バージョン 1.4.14 バージョン 1.4.5 以降に追加された Memcached の機能拡張には、以下が含まれます。 • スラブ再分散機能の強化。 • パフォーマンスとスケーラビリティの強化。 • touch コマンドの導入により、既存の項目の有効期限を取得せずに更新する機能。 • 自動検出 — クライアントプログラムが、クラスター内のすべてのキャッシュノードを自動的に識別し、 それらのすべてのノードへの接続を開始して維持する機能。 Memcached バージョン 1.4.5 Memcached バージョン 1.4.5 は、Amazon ElastiCache でサポートされた最初のエンジンとバージョンで す。 API Version 2015-02-02 40 Amazon ElastiCache ユーザーガイド Redis バージョンの比較 Redis バージョンの比較 ElastiCache はこれらの Redis バージョンをサポートします。 トピック • Redis バージョン 3.2.4 (拡張) (p. 42) • Redis バージョン 2.8.24 (拡張) (p. 43) • Redis バージョン 2.8.23 (拡張) (p. 43) • Redis バージョン 2.8.22 (拡張) (p. 43) • Redis バージョン 2.8.21 (p. 44) • Redis バージョン 2.8.19 (p. 44) • Redis バージョン 2.8.6 (p. 44) • Redis バージョン 2.6.13 (p. 44) Note 新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供しているた め、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache コンソールから廃止されまし た。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必要がある場合は、AWS CLI または ElastiCache API を使用できます。 詳細については、以下のトピックを参照してください。 AWS AWS CLI ElastiCache API クラスターの作成 キャッシュクラスターの作成 ((AWS CLI)) (p. 144) キャッシュクラスターの作成 ((ElastiCache API)) (p. 146) クラスターの変更 キャッシュクラスターの変更 ((AWS CLI)) (p. 156) キャッシュクラスターの変更 ((ElastiCache API)) (p. 157) レプリケーショングループの 作成 ゼロからの Redis (クラスター モードが無効) レプリケー ショングループの作成 ((AWS CLI)) (p. 218) ゼロからの Redis (クラス ターモードが無効) レプリ ケーショングループの作成 ((ElastiCache API)) (p. 220) ゼロからの Redis (クラスター モードが有効) レプリケー ショングループの作成 ((AWS CLI)) (p. 224) ゼロからの Redis (クラス ターモードが有効) レプリ ケーショングループの作成 ((ElastiCache API)) (p. 228) レプリケーショングループの 変更 ((AWS CLI)) (p. 237) レプリケーショングルー プの変更 ((ElastiCache API)) (p. 237) レプリケーショングループの 変更 Redis (クラスターモードが有効) クラスターまたはレプリケーショングループの作成に使用す ることはできません。 Redis (クラスターモードが有効) クラスターまたはレプリケーショングループの変更に使用す ることはできません。 API Version 2015-02-02 41 Amazon ElastiCache ユーザーガイド Redis バージョン 3.2.4 (拡張) Redis バージョン 3.2.4 (拡張) Redis バージョン 3.2.4 で、Amazon ElastiCache でサポートされている Redis エンジンの次の主要バー ジョンが導入されます。Redis 3.2.4 のユーザーは、以前のバージョンの Redis のすべての機能に加え て、クラスターモードまたは非クラスターモードで実行するオプションも使用できます。次の表に以下の 内容がまとめてあります。 Redis 3.2.4 非クラスターモードとクラスターモードの比較 機能 非クラスターモード クラスターモード データのパーティション化 いいえ はい 地理空間インデックス作成 はい はい ノードタイプの変更 はい いいえ レプリカの拡張 はい いいえ スケールアウト いいえ いいえ 複数 単一 データベースのサポート 注: • パーティション – データを 2 ~ 15 のノードグループ (シャード) 間で分割可能 (各ノードグループでレ プリケーションが有効)。 • 地理空間インデックス作成 – Redis 3.2 で、6 つの GEO コマンドによる地理空間インデックス作成の サポートが追加されました。詳細については、Redis GEO* コマンドのドキュメントの Redis コマンド ページ (GEO でフィルタリング) の「Redis コマンド: GEO」を参照してください。 Redis 3 の追加の機能については、『Redis 3.2 リリースノート』と『Redis 3.0 リリースノート』を参照 してください。 現在、ElastiCache マネージド Redis (クラスターモードが有効) では、Redis 3.2 の以下の機能はサポート されていません。 • レプリカの移行 • クラスターの再分散 • Lua デバッガー ElastiCache では、Redis 3.2 の以下の管理コマンドは無効になっています。 • cluster meet • cluster replicate • cluster flushslots • cluster addslots • cluster delslots • cluster setslot • cluster saveconfig • cluster forget • cluster failover API Version 2015-02-02 42 Amazon ElastiCache ユーザーガイド Redis バージョン 2.8.24 (拡張) • cluster bumpepoch • cluster set-config-epoch • cluster reset Redis 3.2.4 のパラメーターの詳細については、「Redis 3.2.4 パラメーターの変更 (p. 314)」を参照して ください。 Redis バージョン 2.8.24 (拡張) バージョン 2.8.23 以降に追加された、バグ修正および不正なメモリーアクセスのアドレスのログ記録を含 む Redis の改善詳細については、「Redis 2.8 リリースノート」を参照してください。 Redis バージョン 2.8.23 (拡張) バージョン 2.8.22 以降に追加された Redis の機能拡張には、バグ修正も含まれます。詳細については、 「Redis 2.8 リリースノート」を参照してください。また、このリリースでは、新しいパラメータ closeon-slave-write もサポートされており、有効にした場合、読み取り専用レプリカに書き込もうとするクラ イアントの接続は切断されます。 Redis 2.8.23 のパラメータの詳細については、『ElastiCache ユーザーガイド』の「Redis 2.8.23 (拡張) で 追加されたパラメータ (p. 317)」を参照してください。 Redis バージョン 2.8.22 (拡張) バージョン 2.8.21 以降に追加された Redis の機能拡張には、以下が含まれます。 • 分岐なしのバックアップと同期のサポートにより、バックアップオーバーヘッドによるメモリの割り当 てを減らしてより多くのメモリをアプリケーションに割り当てることができます。詳細については、 「同期とバックアップの実装方法 (p. 211)」を参照してください。分岐なしのプロセスは、レイテン シーとスループットの両方に影響を与える場合があります。レプリカの再同期時に書き込みのスルー プットが高い場合、同期の時間全体を通じてアクセスできない場合があります。 • フェイルオーバーが発生した場合、可能な場合はレプリカがフル同期ではなくプライマリとの部分同期 を実行するため、レプリケーショングループはより早く復旧されます。さらに、プライマリとレプリカ は同期中にディスクを使用しないため、速度が向上します。 • 2 つの新しい CloudWatch メトリクスのサポート。 • ReplicationBytes - レプリケーショングループのプライマリクラスターがリードレプリカに送信して いるバイト数。 • SaveInProgress - バックグラウンド保存プロセスが実行されるかどうかを示すバイナリ値。 詳細については、「Redis のメトリクス (p. 381)」を参照してください。 • レプリケーション PSYNC 動作のいくつかの重要なバク修正。詳細については、「Redis 2.8 リリース ノート」を参照してください。 • マルチ AZ レプリケーショングループのレプリケーションパフォーマンスの拡張とクラスターの安定性 を維持するために、非 ElastiCache レプリカのサポートが終了しました。 • レプリケーショングループのプライマリクラスターとレプリカ間でデータの整合性を改善するために、 プライマリクラスターと無関係にレプリカでキーを削除できなくしました。 • Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサポートされていま せん。 • メモリが少ない状況で、大きな出力アップロードバッファを持つクライアントはレプリカクラスターか らの接続が解除される場合があります。接続が解除された場合、クライアントは再接続する必要があり ます。このような状況は、多くの場合 PUBSUB クライアントで発生する可能性があります。 API Version 2015-02-02 43 Amazon ElastiCache ユーザーガイド Redis バージョン 2.8.21 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. 381)」を参照してください。 Redis バージョン 2.8.6 バージョン 2.6.13 以降に追加された Redis の機能拡張には、以下が含まれます。 • リードレプリカの弾力性と耐障害性の向上。 • 部分的な再同期のサポート。 • 常に使用できる必要があるリードレプリカの最小数に関するユーザー定義のサポート。 • pub/sub のフルサポート — サーバー上のイベントをクライアントに通知。 • プライマリノードの障害の自動検出と、プライマリノードからセカンダリノードへのフェイルオー バー。 Redis バージョン 2.6.13 Redis バージョン 2.6.13 は、Amazon ElastiCache でサポートされた Redis の最初のバージョンです。マ ルチ AZ と自動フェイルオーバーは Redis 2.6.13 ではサポートされません。 エンジンバージョンのアップグレード キャッシュクラスターを実現するプロトコルに準拠したソフトウェアを、ElastiCache でサポートされる 新しいバージョンにアップグレードするかどうかと、アップグレードの時期を管理します。このレベルの コントロールにより、特定の Memcached または Redis のバージョンとの互換性を維持する、本稼働環境 にデプロイする前にアプリケーションで新しいバージョンをテストする、および独自の条件とタイムライ ンでバージョンのアップグレードを実行することができます。 バージョンアップグレードは、互換性のリスクが伴うことがあるため、自動的には行われません。ご自分 の責任で実施してください。 クラスターまたはレプリケーショングループを変更し、新しいエンジンのバージョンを指定することで、 クラスターのバージョンアップグレードを開始します。詳細については、「ElastiCache クラスターの変 更 (p. 155)」または「レプリカを持つクラスターの変更 (p. 237)」を参照してください。 API Version 2015-02-02 44 Amazon ElastiCache ユーザーガイド Memcached エンジンのアップグレードに関する重要事項 Important • より新しいエンジンバージョンにアップグレードできますが、以前のエンジンバージョンにダ ウングレードすることはできません。以前のエンジンバージョンを使用する場合は、既存のク ラスターを削除し、新たにそれを以前のエンジンバージョンで作成する必要があります。 • エンジンのバージョン管理機能では、パッチ適用を可能な限りお客様が管理できるようにして いますが、システムやキャッシュソフトウェアにおいて重要なセキュリティ脆弱性が万一発生 した場合は、お客様に代わって ElastiCache がクラスターにパッチを適用する可能性がありま す。 • Redis (クラスターモードが有効) は、エンジンバージョンの変更をサポートしていません。 • ElastiCache では、有効なクラスターと無効なクラスターとの切り替えはサポートされていませ ん。 Memcached エンジンのアップグレードに関する重要 事項 Memcached エンジンでは永続性がサポートされていないため、そのエンジンバージョンのアップグレー ドは常に、クラスターのすべてのキャッシュデータを消去する破壊的なプロセスです。 Redis エンジンのアップグレードに関する重要事項 Amazon ElastiCache エンジンのアップグレードプロセスは、既存のデータをベストエフォートで保持する ように設計されており、Redis レプリケーションが正常に実行される必要があります。 Important Redis 2.x から Redis 3.x にエンジンをアップグレードできますが、Redis (クラスターモードが無 効) から Redis (クラスターモードが有効) にアップグレードすることはできません。Redis (クラ スターモードが有効) にアップグレードするには、古いクラスターと新しいクラスターのシャード (API/CLI: ノードグループ) の数が同じである限り、Redis (クラスターモードが無効) のスナップ ショットを使用してシードできる新しい Redis (クラスターモードが有効) クラスターを作成する 必要があります。 • 単一の Redis クラスターや、マルチ AZ が無効になっているクラスターの場合、「Redis スナップ ショットを作成するための十分なメモリがあることの確認 (p. 65)」で説明されているように、Redis 用に十分なメモリを確保することをお勧めします。これらの例では、プライマリがアップグレードプロ セスの実行中にリクエストに対応できなくなります。 • マルチ AZ が有効になっている Redis クラスターの場合は、前述に加えて、書き込みの受信トラフィッ クが少ない期間中にエンジンのアップグレードを予定することをお勧めします。プライマリは、フェイ ルオーバー開始時の数分を除いて、アップグレードプロセスの実行中でも、引き続きリクエストに対応 します。 ブロックされた Redis エンジンのアップグレード 以下の表に示すように、保留中のスケールアップオペレーションがある場合、Redis エンジンのアップグ レードオペレーションはブロックされます。 保留中のオペレーション ブロックされたオペレーション スケールアップ 即時のエンジンのアップグレード エンジンのアップグレード 即時のスケールアップ API Version 2015-02-02 45 Amazon ElastiCache ユーザーガイド エンジンバージョンのアップグレード方法 保留中のオペレーション ブロックされたオペレーション スケールアップとエンジンのアップグレード 即時のスケールアップ スケールアップとエンジンのアップグレード 即時のエンジンのアップグレード エンジンのアップグレードのブロックを解除するには、以下のいずれかを実行します。 • [Apply immediately] チェックボックスをオフにすることで (CLI では --no-apply-immediately、API で は ApplyImmediately=false を使用)、Redis エンジンのアップグレードオペレーションを次のメンテナ ンス期間に予定します。 • Redis のエンジンアップグレードオペレーションを実行する次のメンテナンス期間 (またはその後) まで 待ちます。 • [Apply Immediately] チェックボックスをオンにし、このクラスターの変更に Redis のスケールアップ オペレーションを追加します (CLI では --apply-immediately、API では ApplyImmediately=true を使 用)。 (これにより、エンジンのアップグレードがすぐに実行されて、次のメンテナンス期間中のエンジ ンのアップグレードはキャンセルされます) エンジンバージョンのアップグレード方法 クラスターまたはレプリケーショングループのバージョンアップは、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、より新しいエンジンバージョンを指定することで開始します。 詳細については、以下のトピックを参照してください。 Important Redis (クラスターモードが有効) では、クラスターまたはレプリケーショングループを変更でき ないことに注意してください。 クラスター レプリケーショングループ コンソールの使用 クラスターの変更 ((コンソー ル)) (p. 155) Redis クラスターの変更 ((コン ソール)) (p. 237) AWS CLI の使用 キャッシュクラスターの変更 ((AWS CLI)) (p. 156) レプリケーショングループの変 更 ((AWS CLI)) (p. 237) ElastiCache API の使用 キャッシュクラスターの変更 ((ElastiCache API)) (p. 157) レプリケーショングループの変 更 ((ElastiCache API)) (p. 237) メンテナンスウィンドウ すべてのクラスターには、週ごとのメンテナンス時間があります。その時間内にシステムの変更が適 用されます。キャッシュクラスターの作成または変更時に、必要なメンテナンス時間を指定しない場 合、ElastiCache では、ランダムに選択された曜日に対してリージョン内で 60 分のメンテナンス時間を割 り当てます。 60 分のメンテナンス時間は、リージョンごとに決められた 8 時間の中でランダムに選択されます。次の表 に、デフォルトでメンテナンス時間が割り当てられる各リージョンの時間ブロックを示します。リージョ ンのメンテナンス期間外で、希望するメンテナンス期間を選択できます。 API Version 2015-02-02 46 Amazon ElastiCache ユーザーガイド メンテナンスウィンドウ リージョンコード ap-northeast-1 ap-south-1 ap-southeast-1 ap-southeast-2 cn-north-1 eu-central-1 eu-west-1 sa-east-1 us-east-1 us-gov-west-1 us-west-1 us-west-2 リージョン名 リージョンメンテナンスウィンドウ アジアパシ フィック (東京) リージョン 13:00–21:00 UTC アジアパシ フィック (ムン バイ) リージョ ン 17:30–1:30 UTC アジアパシ フィック (シン ガポール) リー ジョン 14:00–22:00 UTC アジアパシ フィック (シド ニー) リージョ ン 12:00–20:00 UTC 中国(北京) リージョン 14:00–22:00 UTC 欧州 (フランク フルト) リー ジョン 23:00–07:00 UTC 欧州 (アイルラ ンド) リージョ ン 22:00–06:00 UTC 南米 (サンパウ ロ) リージョン 01:00–09:00 UTC 米国東部 (バー ジニア北部) リージョン 03:00–11:00 UTC AWS GovCloud (US) リージョン 06:00–14:00 UTC 米国西部 (北カ リフォルニア) リージョン 06:00–14:00 UTC 米国西部 (オレ ゴン) リージョ ン 06:00–14:00 UTC メンテナンス時間は使用率の最も低い時間帯に設定する必要があります。このため、場合によっては変更 が必要になります。お客様がリクエストしたメンテナンス作業が発生する、時間範囲を最大 24 時間で指 定できます。お客様のリクエストにより延期または保留中のクラスターの変更は、この時間に行われま す。 キャッシュクラスターの優先メンテナンス期間の調整方法の詳細については、「ElastiCache クラスター の変更 (p. 155)」または「レプリカを持つクラスターの変更 (p. 237)」を参照してください。 API Version 2015-02-02 47 Amazon ElastiCache ユーザーガイド Redis リードレプリカおよび Memcached ノードの配置 リージョンとアベイラビリティー ゾーンの選択 AWS クラウドコンピューティングリソースは、高可用性データセンター設備に収容されています。スケー ラビリティと信頼性を向上させるために、これらのデータセンターの設備は物理的に異なる場所に配置さ れています。これらの場所は、リージョンとアベイラビリティーゾーンに分類されます。 リージョンは大きく、広く分散した地理的な場所です。アベイラビリティーゾーンは、他のゾーンからの 影響を受けないようにそれぞれが独立しており、同一リージョンの他のアベイラビリティーゾーンに対し て、レイテンシーが短くコストのかからないネットワーク接続を提供します。 Important 各リージョンは完全に独立しています。お客様が開始した ElastiCache アクティビティ (クラス ターの作成など) は、お客様の現在のデフォルトのリージョンでのみ実行されます。 特定のリージョン内のクラスターを作成または操作するには、対応するリージョンのサービスエンドポイ ントを使用します。サービスエンドポイントについては、「サポートされているリージョンおよびエンド ポイント (p. 49)」を参照してください。 リージョンとアベイラビリティーゾーン トピック • Redis リードレプリカおよび Memcached ノードの配置 (p. 48) • サポートされているリージョンおよびエンドポイント (p. 49) Redis リードレプリカおよび Memcached ノードの 配置 Amazon ElastiCache は、1 つまたは複数のアベイラビリティーゾーン (AZs) 内のすべてのクラスターの検 索をサポートしています。さらに、アベイラビリティーゾーン内のクラスターのメンバーの検索を選択し API Version 2015-02-02 48 Amazon ElastiCache ユーザーガイド サポートされているリージョンおよびエンドポイント た場合は (推奨)、ElastiCache で、各メンバーの AZ を選択するか、ElastiCache に選択させることができ ます。 クラスターやノードを複数のアベイラビリティーゾーンに配置することによって、1 つのアベイラビリ ティーゾーンでの停電などの障害がシステム全体の障害の原因となる可能性を排除できます。1 つのアベ イラビリティーゾーンにすべてのノードを配置した場合と、複数のアベイラビリティーゾーンにノードを 分散させた場合では、レイテンシーに大きな違いがないことがテストによって証明されました。 Memcached ノードのアベイラビリティーゾーンを指定するには、通常の方法で Memcached クラスター を作成します。Launch Cluster ウィザードの [Cluster Details] ページで、[Preferred Zone] リストを使用し てこのノードのアベイラビリティーゾーンを指定します。 Redis リードレプリカのアベイラビリティーゾーンを指定するには、まずレプリケーショングループを作 成し、そのレプリケーショングループに 1 ~ 5 個のリードレプリカを追加します。各リードレプリカに 異なるアベイラビリティーゾーンを指定できます。プライマリ Redis キャッシュクラスターとは異なるア ベイラビリティーゾーンに Redis リードレプリカを作成する方法の詳細については、「レプリカを持つ Redis クラスターの作成 (p. 212)」および「Redis クラスターへのリードレプリカの追加 (p. 240)」を 参照してください。 サポートされているリージョンおよびエンドポイン ト Amazon ElastiCache は複数のリージョンで利用でき、要件に合った場所で ElastiCache クラスターを起動 できます。たとえば、顧客に最も近いリージョンで起動する場合や、特定の法的な要件を満たす必要があ る場合などです。 デフォルトでは、AWS SDK、AWS CLI、ElastiCache API、および ElastiCache コンソールは、米国西部 – オレゴンリージョンを参照しています。ElastiCache が他のリージョンでも利用可能になると、そのリー ジョンのエンドポイントもアプリケーションの HTTP リクエスト、AWS SDK、AWS CLI、およびコン ソールで利用できるようになります。 各リージョンは、他のリージョンと完全に分離されるように設計されています。各リージョンには複数の アベイラビリティーゾーン (AZ) があります。別のアベイラビリティーゾーンのノードを起動して、最大限 の耐障害性を実現できます。リージョンとアベイラビリティーゾーンの詳細については、「リージョンと アベイラビリティーゾーンの選択 (p. 48)」でこのトピックを参照してください。 ElastiCache がサポートされているリージョン リージョン名 リージョン エンドポイント 米国東部 (バージニア北 部) リージョン us-east-1 elasticache.useast-1.amazonaws.com 米国東部(オハイオ) リージョン us-east-2 elasticache.useast-2.amazonaws.com 米国西部 (北カリフォル ニア) リージョン us-west-1 elasticache.uswest-1.amazonaws.com 米国西部 (オレゴン) リージョン us-west-2 elasticache.uswest-2.amazonaws.com カナダ (中部) リージョ ン ca-central-1 プロトコル HTTPS HTTPS HTTPS HTTPS elasticache.caHTTPS central-1.amazonaws.com このリージョンでは現 在、T2、M4 のノードタ API Version 2015-02-02 49 Amazon ElastiCache ユーザーガイド サポートされているリージョンおよびエンドポイント リージョン名 リージョン エンドポイント ap-south-1 elasticache.apsouth-1.amazonaws.com プロトコル イプのみがサポートさ れています。 アジアパシフィック (ム ンバイ) リージョン HTTPS このリージョンでは現 在、T2、R3、M4 の ノードタイプのみがサ ポートされています。 アジアパシフィック (ソ ウル) リージョン ap-northeast-2 elasticache.apHTTPS northeast-2.amazonaws.com アジアパシフィック (シ ンガポール) リージョン ap-southeast-1 elasticache.apHTTPS southeast-1.amazonaws.com アジアパシフィック (シ ドニー) リージョン ap-southeast-2 elasticache.apHTTPS southeast-2.amazonaws.com アジアパシフィック (東 京) リージョン ap-northeast-1 elasticache.apHTTPS northeast-1.amazonaws.com 欧州 (フランクフルト) リージョン eu-central-1 elasticache.euHTTPS central-1.amazonaws.com 欧州 (アイルランド) リージョン eu-west-1 elasticache.euwest-1.amazonaws.com 欧州 (ロンドン) リー ジョン eu-west-2 elasticache.euwest-2.amazonaws.com 南米 (サンパウロ) リー ジョン sa-east-1 elasticache.saeast-1.amazonaws.com 中国 (北京) リージョン cn-north-1 AWS GovCloud (米国) us-gov-west-1 HTTPS HTTPS このリージョンでは現 在、T2、M4 のノードタ イプのみがサポートさ れています。 このリージョンでは現 在、M4 ノードタイプは サポートされていませ ん。 HTTPS elasticache.cnHTTPS north-1.amazonaws.com.cn elasticache.us-govwest-1.amazonaws.com ElastiCache での AWS GovCloud (米国) の使 用の詳細については、 「AWS GovCloud (米国) リージョンでのサービ ス: ElastiCache」を参照 してください。 API Version 2015-02-02 50 HTTPS Amazon ElastiCache ユーザーガイド サポートされているリージョンおよびエンドポイント リージョンごとの AWS 製品およびサービスの表については、「リージョンごとの製品とサービス」を参 照してください。 API Version 2015-02-02 51 Amazon ElastiCache ユーザーガイド ElastiCache エンドポイントの検索 エンドポイントを使用してアプリケーションがクラスターに接続します。エンドポイントはノードまたは クラスターの一意のアドレスです。 使用するエンドポイント • Memcached クラスター。自動検出を使用する場合は、クラスターの設定エンドポイントを Memcached クライアントの設定に使用できます。つまり、自動検出をサポートするクライアントを使用する必要が あります。 自動検出を使用しない場合は、読み取りと書き込みに個々のノードのエンドポイントを使用するように クライアントを設定する必要があります。また、ノードの追加や削除時にはそれらのエンドポイントを 更新する必要があります。 • Redis スタンドアロンノード。ノードのエンドポイントを読み取りと書き込みの両方のオペレーション に使用します。 • Redis (クラスターモードが無効) クラスター。プライマリエンドポイントをすべての書き込みオペレー ションに使用します。個々のノードエンドポイント (API/CLI ではリードエンドポイント) を読み取りオ ペレーションに使用します。 • Redis (クラスターモードが有効) クラスター。クラスターの設定エンドポイントをすべてのオペレー ションに使用します。Redis クラスター (Redis 3.2) をサポートするクライアントを使用する必要があ ります。個々のノードエンドポイント (API/CLI ではリードエンドポイント) から読み取ることもできま す。 以下のセクションで、実行するエンジンに必要なエンドポイントの検索について説明します。 API Version 2015-02-02 52 Amazon ElastiCache ユーザーガイド コンソールを使用した Memcached エンドポイントの検索 Memcached クラスターのエンドポイントの検索 (コンソール) すべての Memcached エンドポイントは読み取り/書き込みエンドポイントです。Memcached クラスター 内のノードに接続するには、アプリケーションは、各ノードのエンドポイントを使用できるか、クラス ターの設定エンドポイントと自動検出を使用できる必要があります。自動検出を使用するには、自動検出 をサポートするクライアントを使用する必要があります。 自動検出を使用するとき、クライアントアプリケーションは設定エンドポイントを使用して Memcached クラスターに接続します。ノードの追加や削除を行ってクラスターをスケーリングするたびに、アプ リケーションは自動的にクラスターのすべてのノードを「検出して、それらのどのノードにも接続で きます。アプリケーションで自動検出が行われない場合は、ノードを追加したり削除したりするたびに エンドポイントを手動で更新する必要があります。自動検出の詳細については、「ノードの自動検出 (Memcached) (p. 101)」を参照してください。 以下の手順では、ElastiCache コンソールを使用して、クラスターの設定エンドポイントまたは任意の ノードエンドポイントを検索してコピーする方法について説明しています。 Memcached クラスターのエンドポイントを検索してコピーするには ((console)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Memcached] を選択します。 3. キャッシュクラスター画面には Memcached クラスターの一覧が表示されています。 エンドポイントについて希望する Memcached クラスターを検索します。 必要なすべてのエンドポイントが設定エンドポイントである場合は、これで完了です。設定エンドポ イントは [設定エンドポイント] にあり、clusterName.xxxxxx.cfg.usw2.cache.amazonaws.com:port のように表示されます。 個々のノードのエンドポイントを表示したり、クリップボードにコピーしたりするには、[Copy Node Endpoint] を選択します。 Memcached クラスターのエンドポイント 4. エンドポイントをクリップボードにコピーするには: a. b. [Copy Node Endpoints] 画面で、コピーするエンドポイントを強調表示します。 強調表示されたエンドポイントを右 – クリックして、コンテキストメニューから [Copy] を選択し ます。 強調表示されたエンドポイントがクリップボードにコピーされます。 API Version 2015-02-02 53 Amazon ElastiCache ユーザーガイド コンソールを使用した Memcached エンドポイントの検索 設定エンドポイントとノードエンドポイントはよく似ています。その違いは以下の太字の部分です。 myclustername.xxxxxx.cfg.usw2.cache.amazonaws.com:port "cfg" myclustername.xxxxxx.0001.usw2.cache.amazonaws.com:port # configuration endpoint contains # node endpoint for node 0001 Important 自動検出クライアントが設定エンドポイントとして CNAME を認識するように、Memcached 設 定エンドポイントの CNAME を作成する場合は、CNAME に .cfg. を含める必要があります。 API Version 2015-02-02 54 Amazon ElastiCache ユーザーガイド コンソールを使用した Redis ク ラスターのエンドポイントの検索 Redis (クラスターモードが無効) クラスターのエン ドポイントの検索 ((コンソール)) Redis (クラスターモードが無効) クラスターに 1 つのみのノードがある場合、ノードのエンドポイントは 読み取りと書き込みの両方に使用されます。Redis (クラスターモードが無効) クラスターに複数のノード がある場合、2 種類のエンドポイントがあります。つまり、プライマリとして動作しているノードを参照 するプライマリエンドポイントと、ノードエンドポイントです。プライマリエンドポイントは書き込みに 使用されます。ノードエンドポイントは読み取りに使用されます。 Redis (クラスターモードが無効) クラスターのエンドポイントを検索するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Redis] を選択します。 クラスター画面には、Redis (クラスターモードが無効) および Redis (クラスターモードが有効) クラ スターのリストが表示されます。 3. クラスターのプライマリエンドポイントを検索するには、クラスターの名前の左にあるチェックボッ クスをオンにします。 クラスターに 1 つのみのノードがある場合、プライマリエンドポイントはないため、次のステップに 進むことができます。 Redis (クラスターモードが無効) クラスターのプライマリエンドポイント 4. クラスターのノードエンドポイントを検索するには、クラスターの名前を選択します。 ノードの画面では、クラスター内の各ノードがそのエンドポイントと共に表示されます。 Redis (クラスターモードが無効) クラスターのノードエンドポイント 5. エンドポイントをクリップボードにコピーするには: a. コピーするエンドポイントを見つけ、選択します (一度に 1 つのみ)。 b. 選択したエンドポイントを右クリックし、コンテキストメニューから [Copy] を選択します。 強調表示されたエンドポイントがクリップボードにコピーされます。 API Version 2015-02-02 55 Amazon ElastiCache ユーザーガイド コンソールを使用した Redis ク ラスターのエンドポイントの検索 Redis のエンドポイントは clusterName.xxxxxx.0001.usw2.cache.amazonaws.com port のようになりま す。 API Version 2015-02-02 56 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが有効) クラス ターのエンドポイントの検索 ((コンソール)) Redis (クラスターモードが有効) クラスターのエン ドポイントの検索 ((コンソール)) 設定エンドポイントを読み取りと書き込みの両方のオペレーションに使用します。Redis によってアクセ ス先のクラスターのノードが決定されます。 以下の手順では、Redis (クラスターモードが有効) クラスターエンドポイントを検索してコピーする方法 を示しています。 Redis (クラスターモードが有効) クラスターの設定エンドポイントを検索するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Redis] を選択します。 Redis のいずれかのバージョンを実行しているクラスターのリストが表示されます。 3. クラスターのリストから、"Clustered Redis" を実行中のクラスターの左にあるチェックボックスをオ ンにします。 画面が展開されて、選択したクラスターの詳細が表示されます。 4. 設定エンドポイントを見つけます。 Redis (クラスターモードが有効) クラスターの設定エンドポイント Redis (クラスターモードが有効) クラスターのノードエンドポイントを検索するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Redis] を選択します。 Redis のいずれかのバージョンを実行しているクラスターのリストが表示されます。 3. クラスターのリストから、"Clustered Redis" を実行中のクラスターの名前を選択します。 シャードのページが開きます。 4. ノードエンドポイントの対応するシャードの名前を選択します。 5. シャードのノードのリストには、各ノードのエンドポイントが表示されます。 [Endpoint] 列で、各ノードのエンドポイントを確認します。 API Version 2015-02-02 57 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが有効) クラス ターのエンドポイントの検索 ((コンソール)) Redis (クラスターモードが有効) クラスターのノードエンドポイント エンドポイントをクリップボードにコピーするには 1. 2. 先ほどのいずれかの手順を使用して、コピーするエンドポイントを検索します。 コピーするエンドポイントを選択します。 3. 強調表示されたエンドポイントを右クリックして、コンテキストメニューから [Copy] を選択します。 強調表示されたエンドポイントがクリップボードにコピーされます。 API Version 2015-02-02 58 Amazon ElastiCache ユーザーガイド エンドポイントの検索 (AWS CLI) エンドポイントの検索 (AWS CLI) AWS CLI for Amazon ElastiCache を使用して、ノード、クラスター、レプリケーショングループのエンド ポイントを検出できます。 トピック • ノードとクラスターのエンドポイントの検索 (AWS CLI) (p. 59) • レプリケーショングループのエンドポイントの検索 (AWS CLI) (p. 60) ノードとクラスターのエンドポイントの検索 (AWS CLI) AWS CLI で describe-cache-clusters コマンドを使用して、クラスターとそのノードのエンドポ イントを検出できます。Redis クラスターでは、そのコマンドがクラスターエンドポイントを返しま す。Memcached クラスターでは、コマンドは設定エンドポイントを返します。オプションのパラメータ --show-cache-node-info を含めた場合、コマンドはクラスター内の個々のノードにエンドポイントを返 します。 以下のコマンドは、Memcached クラスター mycluster の設定エンドポイント (ConfigurationEndpoint) と個別のノードエンドポイント (Endpoint) を取得します。 Linux, macOS, 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 上記のオペレーションからの出力は以下のような JSON 形式になります。 { "CacheClusters": [ { "Engine": "memcached", "CacheNodes": [ { "CacheNodeId": "0001", "Endpoint": { "Port": 11211, "Address": "mycluster.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", "CustomerAvailabilityZone": "us-west-2b" }, { "CacheNodeId": "0002", "Endpoint": { "Port": 11211, API Version 2015-02-02 59 Amazon ElastiCache ユーザーガイド レプリケーショングループのエ ンドポイントの検索 (AWS CLI) "Address": "mycluster.1abc4d.0002.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", "CustomerAvailabilityZone": "us-west-2b" }, { "CacheNodeId": "0003", "Endpoint": { "Port": 11211, "Address": "mycluster.1abc4d.0003.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", "CustomerAvailabilityZone": "us-west-2b" } ], "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.memcached1.4", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "mycluster", "PreferredAvailabilityZone": "us-west-2b", "ConfigurationEndpoint": { "Port": 11211, "Address": "mycluster.1abc4d.cfg.usw2.cache.amazonaws.com" }, "CacheSecurityGroups": [], "CacheClusterCreateTime": "2016-09-22T21:30:29.967Z", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "available", "NumCacheNodes": 3, "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/ home#client-download:", "CacheSubnetGroupName": "default", "EngineVersion": "1.4.24", "PendingModifiedValues": {}, "PreferredMaintenanceWindow": "mon:09:00-mon:10:00", "CacheNodeType": "cache.m4.large" } ] } Important Memcached 設定エンドポイントの CNAME を作成する場合、PHP クライアントが設定エンドポ イントとして CNAME を認識するためには、.cfg. を CNAME に含める必要があります。たとえ ば、php.ini ファイルの session.save_path パラメータで mycluster.cfg.local を含めます。 詳細については、トピック「describe-cache-clusters」を参照してください。 レプリケーショングループのエンドポイントの検索 (AWS CLI) AWS CLI で describe-replication-groups コマンドを使用して、レプリケーショングループとそのクラ スターのエンドポイントを検出できます。このコマンドはそのレプリケーショングループのプライマリエ ンドポイントと、レプリケーショングループのすべてのクラスターとそのエンドポイントのリストを返し ます。 API Version 2015-02-02 60 Amazon ElastiCache ユーザーガイド レプリケーショングループのエ ンドポイントの検索 (AWS CLI) 以下のオペレーションは、レプリケーショングループ myreplgroup のプライマリエンドポイント (PrimaryEndpoint) と個々のノードのエンドポイント (ReadEndpoint) を取得します。プライマリエンドポ イントはすべての書き込みオペレーションに使用し、個々のノードのエンドポイントはすべての読み取り オペレーションに使用します。 Linux, macOS, or Unix 用: aws elasticache describe-replication-groups \ --replication-group-id myreplgroup Windows の場合: aws elasticache describe-replication-groups ^ --replication-group-id myreplgroup このオペレーションからの出力は以下のような JSON 形式になります。 { "ReplicationGroups": [ { "Status": "available", "Description": "test", "NodeGroups": [ { "Status": "available", "NodeGroupMembers": [ { "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2a", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup-001.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "myreplgroup-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup-002.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "myreplgroup-002" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup-003.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "myreplgroup-003" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "myreplgroup.1abc4d.ng.0001.usw2.cache.amazonaws.com" } API Version 2015-02-02 61 Amazon ElastiCache ユーザーガイド レプリケーショングループのエ ンドポイントの検索 (AWS CLI) } ], "ReplicationGroupId": "myreplgroup", "AutomaticFailover": "enabled", "SnapshottingClusterId": "myreplgroup-002", "MemberClusters": [ "myreplgroup-001", "myreplgroup-002", "myreplgroup-003" ], "PendingModifiedValues": {} } ] } 詳細については、『AWS Command Line Interface Reference』の「describe-replication-groups」を参照し てください。 API Version 2015-02-02 62 Amazon ElastiCache ユーザーガイド エンドポイントの検索 (ElastiCache API) エンドポイントの検索 (ElastiCache API) Amazon ElastiCache API を使用して、ノード、クラスター、レプリケーショングループのエンドポイント を検索できます。 トピック • ノードとクラスターのエンドポイントの検索 (ElastiCache API) (p. 63) • レプリケーショングループのエンドポイントの検索 (ElastiCache API) (p. 63) ノードとクラスターのエンドポイントの検索 (ElastiCache API) ElastiCache API を使用して、DescribeCacheClusters アクションでクラスターのエンドポイントとその ノードを検出することができます。Redis クラスターでは、そのアクションがクラスターエンドポイント を返します。Memcached クラスターでは、そのアクションは設定エンドポイントを返します。オプショ ンのパラメーター ShowCacheNodeInfo を含めた場合、アクションはクラスター内の個々のノードのエンド ポイントも返します。 以下のコマンドは、Memcached クラスター mycluster の設定エンドポイント (ConfigurationEndpoint) と個別のノードエンドポイント (Endpoint) を取得します。 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> Important Memcached 設定エンドポイントの CNAME を作成する場合、PHP クライアントが設定エンドポ イントとして CNAME を認識するためには、.cfg. を CNAME に含める必要があります。たとえ ば、php.ini ファイルの session.save_path パラメータで mycluster.cfg.local を含めます。 レプリケーショングループのエンドポイントの検索 (ElastiCache API) ElastiCache API を使用して、DescribeReplicationGroups アクションでレプリケーショングループのエ ンドポイントとそのクラスターを検出できます。このアクションはそのレプリケーショングループのプラ イマリエンドポイントと、レプリケーショングループのすべてのクラスターとそのエンドポイントのリス トを返します。 以下のオペレーションは、レプリケーショングループ myreplgroup のプライマリエンドポイント (PrimaryEndpoint) と個々のノードのエンドポイント (ReadEndpoint) を取得します。プライマリエンドポ イントはすべての書き込みオペレーションに使用し、個々のノードのエンドポイントはすべての読み取り オペレーションに使用します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=myreplgroup API Version 2015-02-02 63 Amazon ElastiCache ユーザーガイド レプリケーショングループのエン ドポイントの検索 (ElastiCache API) &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &Version=2015-02-02 &X-Amz-Credential=<credential> 詳細については、「DescribeReplicationGroups」を参照してください。 API Version 2015-02-02 64 Amazon ElastiCache ユーザーガイド Redis スナップショットを作成する ための十分なメモリがあることの確認 Amazon ElastiCache の実装のベスト プラクティス このトピックでは、Amazon ElastiCache を実装するためのベストプラクティスを示します。 トピック • Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65) • Redis AOF 使用時のディスク容量不足の問題の緩和 (p. 67) • 障害の軽減 (p. 68) • 効率的な負荷分散のための ElastiCache クライアントの設定 (p. 71) Redis スナップショットを作成するための十分なメ モリがあることの確認 バージョン 2.8.22 以降の Redis のスナップショットと同期 Redis 2.8.22 で分岐なしの保存プロセスが導入されました。これにより、同期および保存中にスワップを 使用することなく、アプリケーションにより多くのメモリを割り当てて使用することができます。詳細に ついては、「同期とバックアップの実装方法 (p. 211)」を参照してください。 バージョン 2.8.22 以前の Redis のスナップショットおよび同期 Redis ElastiCache を使用する場合、Redis は多くの場合バックグラウンドの書き込みコマンドを呼び出し ます。 • バックアップのためのスナップショットを作成するとき。 • レプリカとレプリケーショングループ内のプライマリを同期させるとき。 • Redis の AOF (Append-Only File) 機能を有効にするとき。 • レプリカをマスターに昇格するとき (プライマリ/レプリカの同期が実行される)。 API Version 2015-02-02 65 Amazon ElastiCache ユーザーガイド バックグラウンド書き込みプロセスとメモリ使用率 Redis がバックグラウンドの書き込みプロセスを実行するときは、常に、このプロセスのオーバーヘッド に対応するのに十分なメモリが利用できる必要があります。十分なメモリを利用できない場合、このプロ セスは失敗します。このため、Redis クラスターの作成時には、十分なメモリがあるノードインスタンス タイプを選択することが重要です。 バックグラウンド書き込みプロセスとメモリ使用率 バックグラウンド書き込みプロセスが呼び出されると、Redis は常にそのプロセスを生成 (フォーク) しま す (Redis はシングルスレッドであることを思い出してください)。1 つのフォークがデータをディスクの Redis .rdb スナップショットファイルに永続化します。もう 1 つのフォークは、すべての読み取りと書き 込みのオペレーションを処理します。スナップショットがポイントインタイムスナップショットであるこ とを保証するために、すべてのデータの更新と追加が、データ領域とは別の使用可能なメモリ領域に書き 込まれます。 データをディスクに永続化しながら、すべての書き込みオペレーションを記録するのに十分なメモリが使 用できる限り、メモリ不足の問題は発生しません。次のいずれかに該当する場合は、メモリ不足の問題が 発生する可能性があります。 • アプリケーションで頻繁に書き込みオペレーションが実行され、新しいデータや更新されたデータを受 け入れるために使用可能なメモリが大量に必要になる。 • 新しいデータや更新されたデータを書き込むために使用できるメモリが少なすぎる。 • ディスクに永続化するのに長時間かかる大規模なデータセットがあり、大量の書き込みオペレーション が必要になる。 次の図は、バックグラウンド書き込みプロセス実行時のメモリの使用を示しています。 バックアップを実行する際のパフォーマンスへの影響については、「パフォーマンスに対するバックアッ プの影響 (p. 247)」を参照してください。 Redis がスナップショットを実行する方法の詳細については、http://redis.io を参照してください。 リージョンとアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーンの 選択 (p. 48)」を参照してください。 バックグラウンド書き込み実行中のメモリ不足の回避 BGSAVE または BGREWRITEAOF のようなバックグラウンド書き込みプロセスが呼び出されると、プロ セスの失敗を防ぐためには、処理中の書き込みオペレーションが消費する量以上のメモリが必要となりま す。最悪の場合のシナリオでは、バックグラウンド書き込みのオペレーション中にすべての Redis レコー ドが更新され、新しいレコードがキャッシュに追加されます。このような理由で、reserved-memory を API Version 2015-02-02 66 Amazon ElastiCache ユーザーガイド Redis AOF 使用時のディスク容量不足の問題の緩和 maxmemory の値の半分以上に設定することをお勧めします。ノードタイプごとの maxmemory 値について は、「Redis のノードタイプ固有のパラメータ (p. 328)」を参照してください。 maxmemory 値は、データとオペレーションのオーバーヘッドで使用できるメモリを示します。デフォルト のパラメータグループの reserved-memory パラメータを変更することはできないため、クラスター用のカ スタムパラメータグループを作成する必要があります。reserved-memory のデフォルト値は 0 です。この 場合、Redis はすべての maxmemory をデータ用に消費でき、バックグラウンド書き込みプロセスなどの 他の用途に使用できるメモリがほとんど残されない可能性があります。ノードインスタンスタイプごとの maxmemory 値については、「Redis のノードタイプ固有のパラメータ (p. 328)」を参照してください。 ボックスで reserved-memory パラメータを使用して、Redis のメモリ使用量を抑えることができます。 ElastiCache での Redis 固有のパラメータの詳細については、「Redis 固有のパラメータ (p. 313)」を参 照してください。 パラメータグループの作成と変更については、「パラメーターグループを作成する (p. 289)」と「パラ メータグループを変更する (p. 298)」を参照してください。 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 を無効にします。 詳細については、次のトピックを参照してください。 • 障害の軽減 (p. 68) • ElastiCache レプリケーション (Redis) (p. 199) • レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis) (p. 205) API Version 2015-02-02 67 Amazon ElastiCache ユーザーガイド 障害の軽減 障害の軽減 Amazon ElastiCache の実装を計画した場合、障害がアプリケーションやデータに及ぼす影響を最小限にと どめるように計画する必要があります。このセクションのトピックでは、アプリケーションおよびデータ を障害から保護するために実行できるアプローチについて説明します。 トピック • Memcached 実行時の障害を軽減する (p. 68) • Redis 実行時の障害の軽減 (p. 69) • ベストプラクティス (p. 71) Memcached 実行時の障害を軽減する Memcached エンジンを実行する場合に、障害の影響を最小にするためのオプションとして次のものがあ ります。障害の軽減に対処する方法には、ノードの障害の軽減とアベイラビリティーゾーンの障害の軽減 の 2 つのタイプがあります。 ノードの障害の軽減 ノードの障害の影響を軽減するには、キャッシュデータをより多くのノードに広げます。Memcached が レプリケーションをサポートしていないため、ノードの障害によって必ずクラスターからある程度のデー タが失われます。 Memcached クラスターを作成すると、1 ~ 20 のノード、または特殊なリクエストによってそれ以上の ノードを作成できます。大量のノード間でデータのパーティションを行うと、ノードで障害が発生した場 合のデータの損失が小さくなります。たとえば、10 のノード間でデータのパーティションを行うと、単一 のノードに約 10% のキャッシュデータが保存されることになります。この場合、ノードの障害が起きる とキャッシュの約 10% が失われ、代替ノードが作成されプロビジョニングされたときに置き換える必要が あります。同じデータがより大きな 3 つのノードにキャッシュされている場合は、ノードの障害によって キャッシュされたデータの約 33% が失われます。 Memcached クラスターで 20 を超えるノードが必要な場合、またはリージョンで合計 100 を超えるノー ドが必要な場合は、ElastiCache 上限緩和申請 (https://aws.amazon.com/http://aws.amazon.com/contactus/elasticache-node-limit-request/) に入力してください。 Memcached クラスターのノード数を指定する方法の詳細については、「クラスターの作成 ((コンソール)): Memcached (p. 134)」を参照してください。 アベイラビリティーゾーンの障害の軽減 アベイラビリティーゾーンの障害の影響を軽減するためには、可能な限り多くのアベイラビリティーゾー ンでノードを見つけます。AZ の障害が発生した場合には、アベイラビリティーゾーンでキャッシュされた データではなく、その AZ でキャッシュされたデータのみが失われます。 なぜ大量のノードが必要ですか。 自分のリージョンに 3 つのアベイラビリティーゾーンのみがある場合、AZ で障害が発生してデータの約 3 分の 1 を失った場合に、なぜ 3 つ以上のノードが必要になるのですか。 これはいい質問です。当社では、ノードの障害とアベイラビリティーゾーンの障害の 2 つの明確な障害を 軽減しようとしてきました。ご指摘のとおり、データが各アベイラビリティーゾーンにまたがっており、 ゾーンの 1 つで障害が発生した場合は、ノード数に関係なくその AZ でキャッシュされたデータのみが失 われます。ただしノードで障害が発生した場合は、できるだけ多くのノードがあったほうが、失われる キャッシュデータの割合が減ります。 API Version 2015-02-02 68 Amazon ElastiCache ユーザーガイド Redis 実行時の障害の軽減 クラスターのノード数を決定する「魔法の公式」はありません。データ損失の影響と障害が発生する可能 性を考慮して、個別に判断を下してください。 Memcached クラスターのノード数を指定する方法の詳細については、「クラスターの作成 ((コンソール)): Memcached (p. 134)」を参照してください。 リージョンとアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーンの 選択 (p. 48)」を参照してください。 Redis 実行時の障害の軽減 Redis エンジンを実行する場合に、クラスターまたはアベイラビリティーゾーンの障害の影響を最小にす る方法として、次のオプションがあります。 クラスターの障害の軽減 Redis クラスターの障害の影響を軽減するには、次のオプションがあります: トピック • クラスターの障害の軽減: Redis Append Only Files (AOF) (p. 69) • クラスターの障害の軽減: Redis レプリケーショングループ (p. 70) クラスターの障害の軽減: Redis Append Only Files (AOF) Redis で AOF が有効になっている場合、データが Redis クラスターに書き込まれるときは、常に対応する トランザクションレコードが AOF に書き込まれます。Redis プロセスが再起動されると、ElastiCache が 代替のクラスターを作成しプロビジョニングします。次に、クラスターに対して AOF を実行して、データ を再入力します。 クラスターの障害を軽減するための AOF を使用するショートカットには次のものがあります: • これには時間がかかります。 クラスターの作成とプロビジョニングには数分かかります。AOF のサイズに応じて、クラスターに対し て実行すると、アプリケーションがクラスターのデータにアクセスできないため、データベースに強制 的に直接アクセスしようとするため、より多くの時間がかかります。 • AOF は大きくできます。 クラスターへのすべての書き込みはトランザクションレコードに書き込まれるため、問題のデータセッ トの .rdb ファイルよりも AOF のサイズがはるかに大きくなる場合があります。ElastiCache は、サイズ に制限があるローカルインスタンスストアを利用するため、AOF を有効にすると、ディスク容量不足の 問題が発生する可能性があります。ディスク容量不足の問題は、マルチ AZ を有効にしたのレプリケー ショングループを使用することで回避できます。 • AOF を使用してもすべての障害シナリオからデータを保護することはできません。 たとえば、基になる物理サーバーでハードウェア障害が発生したためクラスターでエラーが発生した場 合、ElastiCache は別のサーバーで新しいクラスターをプロビジョニングします。この場合、AOF ファ イルが使用可能になることはなく、データの復元に使用できないため、Redis はコールドキャッシュか ら開始します。 詳細については、「AOF (Redis Append Only Files) (p. 276)」を参照してください。 API Version 2015-02-02 69 Amazon ElastiCache ユーザーガイド Redis 実行時の障害の軽減 クラスターの障害の軽減: Redis レプリケーショングループ Redis レプリケーショングループは、アプリケーションの読み取りと書き込みが可能な単一のプライマリ クラスターと、1 ~ 5 つの読み取り専用のレプリカクラスターで構成されます。データがプライマリクラ スターに書き込まれるときは、常にリードレプリカクラスターでデータが非同期的に更新されます。 リードレプリカが失敗した場合 1. ElastiCache が、失敗したリードレプリカを検出します。 2. ElastiCache が、障害のあるクラスターをオフラインにします。 3. ElastiCache が、同じ AZ の代替のクラスターを起動し、プロビジョニングします。 4. 新しいクラスターはそのプライマリクラスターと同期されます。 この間、アプリケーションは他のクラスターを使って読み書きを続行できます。 Redis マルチ AZ と自動フェイルオーバー Redis レプリケーショングループでマルチ AZ の自動フェイルオーバーを有効にできます。マルチ AZ と自 動フェイルオーバーが有効になっているかどうかにかかわらず、障害のあるプライマリが検出され、自動 的に置き換えが行われます。これを実行する方法は、マルチ AZ が有効かどうかによって異なります。 マルチ AZ と自動フェイルオーバーが有効な場合 1. ElastiCache がプライマリの障害を検出します。 2. ElastiCache が、レプリケーションの遅延が最も小さいリードレプリカをプライマリに昇格します。 3. 他のレプリカと新しいプライマリクラスターを同期します。 4. ElastiCache が、障害が発生したプライマリの AZ のリードレプリカをスピンアップします。 5. 新しいクラスターが、新たに昇格されたプライマリと同期されます。 レプリカクラスターへのフェイルオーバーは、一般的に新しいクラスターを作成しプロビジョニングする よりも高速となります。これは、マルチ AZ が有効でない場合よりも、アプリケーションがクラスターへ の書き込みを素早く再開できることを意味します。 詳細については、「レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis) (p. 205)」を参照して ください。 マルチ AZ と自動フェイルオーバーが無効な場合 1. ElastiCache がプライマリの障害を検出します。 2. ElastiCache がプライマリをオフラインにします。 3. ElastiCache が新しいプライマリノードを作成、プロビジョニングし、失敗したプライマリと置き換 えます。 4. ElastiCache が、新しいプライマリを既存のレプリカのいずれと同期させます。 5. 同期が終了すると、新しいノードはクラスターのプライマリとして機能します。 ステップ 1~4 のプロセス実行中、アプリケーションは、プライマリクラスターに書き込むことができませ ん。ただし、アプリケーションはレプリカクラスターから読み込みを続けることができます。 保護を強化するために、別のアベイラビリティーゾーン (AZ) でレプリケーショングループのクラスター を起動することをお勧めします。これを行った場合、AZ の障害の影響をその AZ のクラスターのみにとど め、他のクラスターには影響を与えません。 詳細については、「ElastiCache レプリケーション (Redis) (p. 199)」を参照してください。 API Version 2015-02-02 70 Amazon ElastiCache ユーザーガイド ベストプラクティス アベイラビリティーゾーンの障害の軽減 アベイラビリティーゾーンの障害の影響を軽減するためには、可能な限り多くのアベイラビリティーゾー ンでクラスターを見つけます。 クラスターがいくつあったとしても、そのすべてが同じアベイラビリティーゾーンにある場合は、その AZ で壊滅的な障害が発生するとキャッシュデータのすべてが失われます。ただし、複数の AZ にクラスター がある場合は、いずれかの AZ で障害が発生しても失われるのはその AZ のクラスターのみとなります。 クラスターを失った場合は、読み込みオペレーションがより少ない数のクラスターによって共有されるよ うになるため、パフォーマンスが低下します。このパフォーマンスの低下は、クラスターが置き換えられ ますまで継続します。データが Redis クラスターで仕切られないため、まずクラスターが失われる場合に のみ、データ損失のリスクは、プライマリクラスタが失われた場合に限定されます。 Redis クラスター用でアベイラビリティーゾーンを指定する方法の詳細については、「Redis (クラスター モードが無効) クラスターの作成 ((コンソール)) (p. 136)」を参照してください。 リージョンとアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーンの 選択 (p. 48)」を参照してください。 ベストプラクティス 計画を立てる必要のある障害には、個別ノードまたはクラスターの障害と、幅広いアベイラビリティー ゾーンの障害の 2 つのタイプがあります。ベストの障害軽減プランは、両方のタイプの障害に対処しま す。 ノードの障害とクラスターの障害の影響の最小化 ノードまたはクラスターの障害の影響を最小限に抑えるには、複数のノードまたはクラスターを実装して 使用することをお勧めします。 Memcached を実行してノード間でデータを仕切っている場合は、ノードの数を増やすほど 1 つのノード で障害が発生した場合のデータの損失をより小さくすることができます。 Redis を実行している場合は、レプリケーショングループでマルチ AZ を有効にして、プライマリクラス ターで障害が発生すると ElastiCache が自動的にレプリカにフェイルオーバーするようにしておくことを お勧めします。 アベイラビリティーゾーンの障害の影響を最小限に抑える アベイラビリティーゾーンの障害の影響を最小限に抑えるには、できるだけ多くの異なるアベイラビリ ティーゾーンでノードまたはクラスターを起動することをお勧めします。ノードまたはクラスターを AZ 間に広げることで、予期しない AZ の障害が発生した場合の影響を最小化します。 その他の対策 Redis を実行する場合は、上記に加えてクラスターのバックアップを定期的に取ることをお勧めします。 バックアップ (スナップショット) によって、障害や破損が発生した場合にクラスターを復元するのに使 用できる .rdb ファイルが作成されます。詳細については、「ElastiCache バックアップと復元 (Redis) (p. 246)」を参照してください。 効率的な負荷分散のための ElastiCache クライアン トの設定 Note このセクションは、複数ノードの Memcached クラスターに適用されます。 API Version 2015-02-02 71 Amazon ElastiCache ユーザーガイド Java を使用した整合性のあるハッシュ 複数の ElastiCache Memcached ノードを効果的に使用するには、ノード間でキャッシュキーを分散でき る必要があります。n 個のノードがあるクラスターを負荷分散するための簡単な方法では、オブジェクト のキーのハッシュを計算し、n - hash(key) mod n で結果の余りを求めます。結果の値 (0 ~ n – 1) が、オ ブジェクトを配置するノードの数になります。 この手法は単純で、ノードの数 (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-memcachedclient/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 72 Amazon ElastiCache ユーザーガイド .NET を使用した整合性のあるハッシュ .NET を使用した整合性のあるハッシュ ElastiCache Memcached .NET クライアントは、Enyim Memcached のラッパーです。デフォルトで は、Enyim Memcached クライアントによって、整合性のあるハッシュが有効になります。 詳細については、memcached/locator のドキュメント (https://github.com/enyim/EnyimMemcached/wiki/ MemcachedClient-Configurationuser-content-memcachedlocator) を参照してください。 API Version 2015-02-02 73 Amazon ElastiCache ユーザーガイド Amazon ElastiCache エラーメッセー ジ 以下のエラーメッセージが Amazon ElastiCache によって返されます。ElastiCache、他の AWS サー ビス、または Memcached や Redis によって返される他のエラーメッセージを受け取る場合もありま す。ElastiCache 以外のソースからのエラーメッセージの説明については、エラーメッセージ生成元のド キュメントを参照してください。 • Cluster node quota exceeded (p. 74) • Customer's node quota exceeded (p. 74) • Manual snapshot quota exceeded (p. 75) エラーメッセージ: Cluster node quota exceeded.Each cluster can have at most %n nodes in this region. 原因: クラスターで %n を超える数のノードが発生するようなクラスターの作成または変更を試みまし た。 解決策: リクエストを変更し、クラスターで %n を超える数のノードが発生しないようにします。また は、%n を超える数のノードが必要な場合は、Amazon ElastiCache ノードリクエストフォームを使用 してリクエストを作成します。 詳細については、『アマゾン ウェブ サービス全般のリファレンス』の「Amazon ElastiCache の制 限」を参照してください。 エラーメッセージ: Customer node quota exceeded. You can have at most %n nodes in this region または You have already reached your quota of %s nodes in this region. 原因: このリージョンのすべてのクラスター間で、アカウントに %n を超える数のノードが発生するよ うなクラスターの作成または変更を試みました。 解決策: リクエストを変更し、このアカウントのすべてのクラスター間のリージョンの合計ノー ド数が %n を超えないようにします。または、%n を超える数のノードが必要な場合は、Amazon ElastiCache ノードリクエストフォームを使用してリクエストを作成します。 詳細については、『アマゾン ウェブ サービス全般のリファレンス』の「Amazon ElastiCache の制 限」を参照してください。 API Version 2015-02-02 74 Amazon ElastiCache ユーザーガイド エラーメッセージ: The maximum number of manual snapshots for this cluster taken within 24 hours has been reached または The maximum number of manual snapshots for this node taken within 24 hours has been reached its quota of %n 原因: 24 時間で許可される最大数の手動スナップショットをすでに作成している場合に、クラスター の手動スナップショットを作成しようとしました。 解決策: 24 時間待ってから、クラスターの別の手動スナップショットを試みます。または、すぐに手 動スナップショットを作成する必要がある場合は、レプリケーショングループの別のクラスターな ど、同じデータがある別のクラスターのスナップショットを作成します。 API Version 2015-02-02 75 Amazon ElastiCache ユーザーガイド 遅延読み込み キャッシュ戦略 このトピックでは、キャッシュを入力して維持する戦略について説明します。 キャッシュするデータとデータへのアクセスパターンに基づいて、キャッシュを入力し維持するために 実装する戦略です。たとえば、おそらくゲームサイト、Facebook の投稿、トレンドのニュースのランキ ングトップ 10 で同じ同じ戦略は使用したくないでしょう。このセクションの後半では、一般的なキャッ シュのメンテナンス戦略、利点および欠点について説明します。 トピック • 遅延読み込み (p. 76) • 書き込みスルー (p. 78) • TTL の追加 (p. 79) • 関連トピック (p. 80) 遅延読み込み その名前が示すようため、遅延読み込みは、必要なときにのみキャッシュにデータを読み込むキャッシュ 戦略です。 遅延読み込みの仕組み Amazon ElastiCache メモリ内のキー / 値ストアで、アプリケーションとアプリケーションがアクセス するデータストア (データベース) 間にあります。アプリケーションがデータをリクエストする場合は、 常に ElastiCache キャッシュに最初にリクエストを行います。データがキャッシュにあり最新である 場合、ElastiCache はアプリケーションにデータを返します。データがキャッシュにない場合、または キャッシュのデータの期限が切れている場合は、アプリケーションは、アプリケーションにデータを返す データストアに対してデータをリクエストします。次に、アプリケーションは、ストアから受信したデー タをキャッシュに書き込みます。したがって、次回リクエストされたときはより迅速に取得できます。 シナリオ 1: キャッシュヒット データがキャッシュにあり期限切れでない場合 1. アプリケーションは、キャッシュに対してデータをリクエストします。 API Version 2015-02-02 76 Amazon ElastiCache ユーザーガイド シナリオ 2: キャッシュミス 2. キャッシュはアプリケーションにデータを返します。 シナリオ 2: キャッシュミス データがキャッシュにないか期限切の場合 1. アプリケーションは、キャッシュに対してデータをリクエストします。 2. キャッシュにはリクエストされたデータがないため、null を返します。 3. アプリケーションはデータベースに対してデータをリクエストし、取得します。 4. アプリケーションは、新しいデータでキャッシュを更新します。 次の図は、これらの両方のプロセスを示しています。 遅延読み込みの利点と欠点 遅延読み込みの利点 • リクエストされたデータのみをキャッシュします。 ほとんどのデータがリクエストされないため、遅延読み込みではデータでキャッシュがいっぱいになる ことを回避できます。 • ノードの障害は致命的ではありません。 ノードで障害が発生して新しい空のノードに置き換えられた場合、アプリケーションはレイテンシーが 長くなっても機能し続けます。リクエストは新しいノードに対して行われるため、各キャッシュでエ ラーが発生すると、後続のリクエストがキャッシュからデータを取得できるように、データベースクエ リが生じて、キャッシュへのデータのコピーが行われます。 遅延読み込みの欠点 • キャッシュミスのペナルティがあります。 1 回のキャッシュのミスで 3 回のトリップ、 1. キャッシュに対する最初のデータリクエスト 2. データベースへのデータクエリ 3. キャッシュにデータを書き込む アプリケーションによるデータの取得に相当な遅延が発生する可能性があります。 API Version 2015-02-02 77 Amazon ElastiCache ユーザーガイド 遅延読み込みコード • 古いデータ。 キャッシュミスがある場合にのみデータがキャッシュに書き込まれる場合は、データベスのデータが変 更されるまでキャッシュが更新されないため、キャッシュのデータが古くなる可能性があります。この 問題は、「書き込みスルー (p. 78)」および「TTL の追加 (p. 79)」戦略で扱います。 遅延読み込みコード 次のコードは、遅延読み込みロジックの擬似コードの例です。 // ***************************************** // 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) 書き込みスルー 書き込みスルー戦略では、データがデータベースに書き込まれると常にデータを追加するか、キャッシュ のデータを更新します。 書き込みスルーの利点と欠点 書き込みスルーの利点 • キャッシュのデータが古くなりません。 キャッシュにデータベースにデータが書き込まれるたびにキャッシュのデータが更新されるため、 キャッシュのデータが常に最新の状態になります。 • 書き込みペナルティ対読み込みペナルティ 1 回の書き込みで 2 回のトリップ: 1. キャッシュへの書き込み 2. データベースへの書き込み レイテンシーをプロセスに追加します。つまり、エンドユーザーは一般的に、データの取得時よりも データの更新時のレイテンシーに対して寛容です。更新は作業量が大きく時間がかかるのが常です。 API Version 2015-02-02 78 Amazon ElastiCache ユーザーガイド 書き込みスルーコード 書き込みスルーの欠点 • 欠落データ。 新規ノードをスピンアップする場合は、ノード障害または拡張により、データの欠落が生じてデー タベースにそれが追加されるか更新されるまで欠落した状態が継続します。これは、「遅延読み込 み (p. 76)」を書き込みスルーと共に使用することで最小限にできます。 • キャッシュの変動。 ほとんどのデータは読み込まれないため、読まれることのないクラスターに大量のデータが存在するこ とになります。これはリソース浪費です。「TTL の追加 (p. 79)」で、無駄な領域を最小限に抑えるこ とができます。 書き込みスルーコード 次のコードは、書き込みスルーロジックの擬似コードの例です。 // ***************************************** // 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 では、キーの有効期間を秒またはミリ秒で指定できま す)。アプリケーションが期限の切れたキーを読み込もうとすると、キーが見つからないものとして処理さ れます。これは、データベースにキーのクエリが行われて、キャッシュが更新されることを意味します。 これにより値が古くならないことが保証されますが、古すぎるデータが維持されるため、キャッシュの値 をデータベースから時々更新する必要があります。 詳細については、「Redis setコマンド」または「Memcached setコマンド」を参照してください。 コード例 次のコードは、TTL のある書き込みスルーロジックの擬似コードの例です。 // ***************************************** // function that saves a customer's record. API Version 2015-02-02 79 Amazon ElastiCache ユーザーガイド 関連トピック // 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}", customer_id) cache.set(customer_id, customer_record, 300) // update the cache return customer_record // return the newly retrieved record and exit function アプリケーションコードは次のとおりです: save_customer(12345,{"address":"123 Main"}) customer_record = get_customer(12345) 関連トピック • キャッシュの方法。 (p. 2) • エンジンとバージョン (p. 34) • スケーリング (p. 175) API Version 2015-02-02 80 Amazon ElastiCache ユーザーガイド シャード (Redis) ElastiCache ノード ノードは、Amazon ElastiCache デプロイを構成する最小単位の要素です。これは、安全なネットワー クに接続された RAM の固定サイズの断片です。各ノードでは、キャッシュクラスターの作成時に選択 された項目に応じて、Memcached または Redis が実行されます。各ノードはそれぞれ Domain Name Service (DNS) 名とポートを持っています。それぞれ関連付けられている異なるメモリ量で、複数のタイ プの ElastiCache ノードがサポートされています。 デプロイメントに必要なノードインスタンスタイプは、クラスターで必要なデータ量と使用するエンジン の両方の影響を受けます。一般的に、シャーディングがサポートされていることから Memcached のデプ ロイメントではより多くの小さなノードがあり、Redis では少数の大きなノードタイプがあります。使用 するノードサイズの詳細な説明については、「Memcached ノードサイズの選択 (p. 83)Redis ノードサ イズの選択 (p. 84)」を参照してください。 トピック • シャード (Redis) (p. 81) • ノードサイズの選択 (p. 83) • ElastiCache リザーブドノード (p. 87) • サポートされているノードの種類 (p. 96) • ノードが置き換え対象となった場合に実行可能なアクション (p. 98) 他の ElastiCache ノードのオペレーション ノードを含めた追加のオペレーション: • クラスターへのノードの追加 (p. 160) • クラスターからのノードの削除 (p. 166) • スケーリング (p. 175) • ElastiCache エンドポイントの検索 (p. 52) • ノードの自動検出 (Memcached) (p. 101) シャード (Redis) シャード (API/CLI: ノードグループ) は、ノードの階層的配列であり、各ノードはキャッシュクラスターに ラップされます。シャードはレプリケーションをサポートします。シャード内では、1 つのノードが読み 取り/書き込みのプライマリノードとなります。他のすべてのノードは、プライマリノードの読み取り専用 API Version 2015-02-02 81 Amazon ElastiCache ユーザーガイド シャード (Redis) のレプリカとなります。Redis バージョン 3.2 以降では、クラスター (API/CLI: レプリケーショングルー プ) を複数のシャードで構成できるため、Redis (クラスターモードが有効) クラスター内でデータを分割で きます。 次の図は、Redis (クラスターモードが無効) クラスターと Redis (クラスターモードが有効) クラスターの 違いを示しています。 Redis (クラスターモードが無効) でも Redis (クラスターモードが有効) でもシャードを介したレプリケー ションがサポートされます。API オペレーションの DescribeReplicationGroups (CLI: describe-replicationgroups) を使うと、ノードグループとそれを構成するメンバーノード、ノードグループ内での各ノードの 役割などを確認できます。 Redis クラスターの作成時には、クラスタリングを有効にするかどうかを指定します。Redis (クラス ターモードが無効) クラスターを構成するシャードは 1 つに限られます。このシャードは、読み取り専 用のレプリカノードを追加 (最大 5 つ) または削除することで、水平にスケールできます。詳細について は「ElastiCache レプリケーション (Redis) (p. 199)」、「Redis クラスターへのリードレプリカの追 加 (p. 240)」または「リードレプリカの削除 (p. 245)」を参照してください。Redis (クラスターモー ドが無効) クラスターは、ノードタイプを変更することで垂直にもスケールできます。詳細については、 「レプリカノードを含む Redis のクラスターのスケーリング (p. 188)」を参照してください。 Redis (クラスターモードが有効) クラスターを作成する際は 1 〜 15 個のシャードを指定します。Redis (クラスターモードが無効) クラスターとは異なり、現段階では、Redis (クラスターモードが有効) クラス ターを作成した後でその構造を変更したり、ノードやシャードを追加または削除したりすることはできま せん。ノードを追加または削除したり、ノードタイプを変更したりする場合は、クラスターを新たに作成 する必要があります。 新しいクラスターを作成する際は、古いクラスターのシャード数と同じである限り、古いクラスターの データをシードできるため、新しいクラスターが空のまま開始されることはありません。これは、ノー ドタイプまたはエンジンバージョンの変更が必要な場合に便利です。詳細については、「Taking Manual Backups (p. 250)」および「Restoring From a Backup (p. 269)」を参照してください。 API Version 2015-02-02 82 Amazon ElastiCache ユーザーガイド ノードサイズの選択 ノードサイズの選択 このセクションは、使用するノードシナリオどのインスタンスタイプが必要となるかを判断するのに役立 ちます。エンジン、Memcached、および Redis ではクラスターの実装方法が異なるため、エンジンの選択 により、アプリケーションで必要となるノードサイズに違いが発生します。 トピック • Memcached ノードサイズの選択 (p. 83) • Redis ノードサイズの選択 (p. 84) Memcached ノードサイズの選択 Memcached クラスターには 1 個または複数のノードが含まれます。このため、クラスターで必要なメモ リとノードで必要なメモリには関連性がありますが、同じではありません。ノードの数を減らすか、より 多くのより小さなノードを確保することにより、必要なクラスターメモリの容量を実現できます。また、 ニーズの変化に応じてクラスターへのノードの追加や削除を行い、必要なものだけに支払うことができま す。 クラスターの合計メモリ容量は、クラスター内のキャッシュノードの数に各ノードの RAM 容量を乗算し て計算されます。各キャッシュノードの容量はキャッシュノードタイプに基づいています。 クラスター内のキャッシュノード数は、Memcached を実行するクラスターの可用性の重要な要素です。1 つのキャッシュノードで障害が発生した場合、ElastiCache で障害が発生したキャッシュノードの置き換 えをプロビジョニングして再入力する間、アプリケーションの可用性やバックエンドデータベースへの負 荷に影響を及ぼす可能性があります。この潜在的な可用性に対する影響を軽減するには、少数の容量の大 きいノードを使用する代わりに、それぞれが容量の小さい多数のキャッシュノードにメモリとコンピュー ティングの容量を分散させます。 40 GB のキャッシュメモリが必要なシナリオでは、次のいずれかを設定できます。 • それぞれ 3.22 GB のメモリと 2 つのスレッドを持つ 13 の cache.t2.medium ノード = 41.86 GB、26 ス レッド。 • それぞれ 6.05 GB のメモリと 2 つのスレッドを持つ 7 つの cache.m3.large ノード = 42.35 GB、14 ス レッド。 それぞれ 6.42 GB のメモリと 2 つのスレッドを持つ 7 つの cache.m4.large ノード = 44.94 GB、14 ス レッド。 • それぞれ 13.50 GB のメモリと 2 つのスレッドを持つ 3 つの cache.r3.large ノード = 40.50 GB、6 ス レッド。 それぞれ 14.28 GB のメモリと 4 つのスレッドを持つ 3 つの cache.m4.xlarge ノード = 42.84 GB、12 スレッド。 ノードオプションの比較 ノードの種 類 メモリ コア Cost * 必要なノー 合計メモリ ド cache.t2.medium3.22 GB 2 0.068 USD 13 cache.m3.large 6.05 GB 2 $ 0.182 7 API Version 2015-02-02 83 合計コア 1 か月あた りコスト 41.86 GB 26 $ 636.48 42.35 GB 14 $ 917.28 Amazon ElastiCache ユーザーガイド Redis ノードサイズの選択 ノードの種 類 メモリ コア Cost * 必要なノー 合計メモリ ド 合計コア 1 か月あた りコスト cache.m4.large 6.42 GB 2 0.156 USD 7 44.94 GB 14 $ 768.24 cache.r3.large 13.50 GB 2 0.228 USD 3 40.50 GB 6 $ 492.48 cache.m4.xlarge 14.28 GB 4 0.311 USD 3 42.84 GB 12 $ 671.76 * 2016 年 8 月 4 日現在のノードあたりの時間あたりのコスト。 30 日 (720 時間) の使用率 100% の場合の 1 か月あたりのコスト。 これらのオプションは、それぞれ同様のメモリ容量を提供しますが、コンピューティング容量とコストは 異なります。特定のオプションのコストを比較するには、「Amazon ElastiCache の料金表」を参照してく ださい。 Memcached を実行するクラスターでは、各キャッシュノードの使用可能なメモリの一部は接続のオー バーヘッド用に使用されます。詳細については、「Memcached 接続オーバーヘッド (p. 311)」を参照し てください。 複数のノードを使用して、それらの間でキーを分散する必要があります。各ノードには、独自のエンドポ イントがあります。エンドポイント管理を簡単にするには、ElastiCache の自動検出機能を使用して、ク ライアントプログラムがキャッシュクラスターのすべてのノードを自動的に識別できるようにします。詳 細については、「ノードの自動検出 (Memcached) (p. 101)」を参照してください。 必要な容量が不明な場合は、試験的に 1 個の cache.m3.medium のノードから始めて、ElastiCache に 発行される CloudWatch のメトリクスで、メモリの使用状況、CPU 使用率、キャッシュヒット率をモ ニタリングすることをお勧めします。CloudWatch のメトリクス (ElastiCache 用) の詳細については、 「CloudWatch メトリクスを使用したモニタリング (p. 378)」を参照してください。本稼働のより大きな 優れたワークロードの場合は、R3 ノードが最高のパフォーマンスと RAM のコストバリューを提供しま す。 クラスターで目的のヒットレートが達成されない場合は、簡単な操作でノードを追加し、クラスター内の 合計使用可能メモリを増やすことができます。 クラスターが、ヒットレートが十分ではない CPU の制約を受けていることがわかった場合は、キャッ シュノードタイプでより大きな処理能力を持つ新しい新しいクラスターをセットアップしてみてくださ い。 Redis ノードサイズの選択 以下の項目に回答することで、Redis の実装に必要な最小ノードタイプを決定できます。 • データに必要となる合計メモリ量。 キャッシュする項目のサイズを取得して、キャッシュで同時に維持する項目数を乗算することで、一般 的な予測値が得られます。項目のサイズを合理的に見積もるには、キャッシュ項目をシリアル化して文 字数をカウントし、その文字数をクラスターのシャード数で分割します。 • アプリケーションでの書き込み負荷の大きさ。 書き込み量が多いアプリケーションでは、スナップショットの作成時またはフェイルオーバー時 に、Redis データでは使用されないより多くの使用可能メモリが必要となります。BGSAVE プロセスの API Version 2015-02-02 84 Amazon ElastiCache ユーザーガイド Redis ノードサイズの選択 実行時 – スナップショットの作成時、クラスターでのプライマリクラスターとレプリカの同期時、AOF (append-only file) 機能を有効にした場合、レプリカのプライマリへの昇格時 (マルチ AZ で自動フェイル オーバーを有効にした場合) – データが使用する十分な量のメモリを用意して、BGSAVE プロセスの実行 時に生じるすべての書き込みに対応する必要があります。最悪の場合は、処理中にすべての Redis デー タが書き換えられます。その場合、データ単独で必要なメモリの倍のサイズのノードインスタンスが必 要になります。 詳細については、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65)」 を参照してください。 • スタンドアロンの Redis (クラスターモードが無効) クラスターを実装するか、複数のシャードを持つ Redis (クラスターモードが有効) クラスターを実装するか。 Redis (クラスターモードが無効) クラスター Redis (クラスターモードが無効) クラスターを実装する場合は、ノードタイプがすべてのデータと前の 項目で説明した必要なオーバーヘッドに対応できる必要があります。 たとえば、すべての項目の合計サイズが 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 のメモリが必要であることを意味し ます。 複数のシャードを持つ Redis (クラスターモードが有効) クラスター 複数のシャードを持つ Redis (クラスターモードが有効) クラスターを実装する場合は、ノードタイプが bytes-for-data-and-overhead / number-of-shards バイトのデータに対応できる必要があります。 たとえば、すべての項目の合計見積りサイズが 12 GB で 2 つのシャードがある場合は、6.05 GB のメモ リを持つ cache.m3.large ノードを 2 つ使用できます。ただし、BGSAVE オペレーションではより多くの メモリが必要になる場合があります。書き込み量が多いアプリケーションの場合は、シャードごとに倍 の 12 GB 以上のメモリが必要であり、13.3 GB の cache.m3.xlarge または 13.5 GB のcache.r3.large を使います。 現在 Redis (クラスターモードが有効) クラスターにシャードを追加することはできません。したがっ て、予測される負荷の増大に対応するために、ある程度大きなノードタイプを使用することが必要にな ります。 キャッシュクラスターが実行中であるときに、CloudWatch に発行される、メモリの使用状況、プロセッ サの使用率、キャッシュヒット、およびキャッシュミスのメトリクスをモニタリングできます。クラス ターで目的のヒットレートが達成されない場合や、キーが頻繁に削除されている場合は、CPU やメモリの 容量が大きい別のキャッシュノードサイズを選択できます。 API Version 2015-02-02 85 Amazon ElastiCache ユーザーガイド Redis ノードサイズの選択 CPU の使用率をモニタリングする場合、Redis はシングルスレッドであることに留意します。したがっ て、報告された CPU 使用率に CPU のコア数を乗算することで、実際の使用率が得られます。たとえ ば、4 つのコアを持つ CPU で使用率 20% と報告された場合、実際に Redis が使用している 1 つのコアは 80% で稼働しています。 API Version 2015-02-02 86 Amazon ElastiCache ユーザーガイド リザーブドノード ElastiCache リザーブドノード リザーブドキャッシュノードでは、キャッシュノードに対して一括前払いが可能で、低料金で 1 年間また は 3 年間キャッシュノードを予約することができます。 T2、M3、および R3 ファミリーでは、リザーブドキャッシュノードは高使用率サービスとして使用で きます。古いノードタイプで使用可能なリザーブドキャッシュノードには 3 つの提供タイプ — 軽度、 中度、重度使用 — があるため、予想される使用状況に基づいていずれかの提供タイプを選択すること で、ElastiCache のコストを最適化できます。 コマンドラインツール、API、または AWS マネジメントコンソールを使用して、使用可能なリザーブド キャッシュノードを一覧表示および購入できます。リザーブドキャッシュノードサービスの 3 つのタイプ は、クラスや期間に基づいています。 リザーブドキャッシュノードの詳細については、「Amazon ElastiCache リザーブドキャッシュノード」を 参照してください。 トピック • リザーブドノードサービス (p. 87) • 使用可能なリザーブドキャッシュノードサービスの説明 (p. 89) • リザーブドノードの購入 (p. 91) • リザーブドノードの説明 (p. 94) リザーブドノードサービス 重度使用のリザーブドキャッシュノードでは、基準となる処理能力を一定に保った安定したワークロード が可能になります。重度使用のリザーブドキャッシュノードの予約金は最も高くなりますが、インスタン スの実行時間がリザーブドキャッシュノードの期間の 79% を超える場合は、節約額が最も大きくなる可能 性があります (最大でオンデマンド料金の 70% 引き)。重度使用のリザーブドキャッシュノードは、他のリ ザーブドキャッシュノードとは異なり、予約金を 1 回支払えば、キャッシュノードが実行されているかど うかにかかわらず、期間中は低額の使用料が時間単位で適用されます。 中度使用のリザーブドキャッシュノードは、リザーブドキャッシュノードを長い時間使用する場合に、予 約金を低く抑えたいときや、キャッシュノードが停止したらすぐに支払いを中止できるようにしたいと きに最適です。中度使用のリザーブドキャッシュノードは、インスタンスの実行時間がリザーブドキャッ シュノードの期間の 40% を超える予定の場合に、コスト効果の高い選択肢になります。このオプション を使用すると、オンデマンド料金から最大 64% を節約できます。中度使用のリザーブドキャッシュノー ドは、軽度使用のリザーブドキャッシュノードと比べると、予約金はわずかに上回りますが、キャッシュ ノード実行時の時間あたりの使用料は低く抑えられます。 軽度使用のリザーブドキャッシュノードは、1 日に数時間、週に数日間のみ実行される定期的なワーク ロードに最適です。軽度使用のリザーブドキャッシュノードでは、予約金を 1 回支払えば、キャッシュ ノードの実行時に時間単位で割引使用料が適用されます。キャッシュノードの実行時間がリザーブド キャッシュノードの期間の 17% を超えるとコスト節減が始まり、リザーブドキャッシュノードの全期間を 通してオンデマンド料金から最大 56% を節約できます。 リザーブドキャッシュノードサービス 提供タイプ 前払いコスト 使用料 メリット 重度使用 高 時間当たりの使用料が 最も低く、リザーブ ドキャッシュノードの 使用状況にかかわらず 期間全体に適用されま す。 リザーブドキャッシュ ノードの使用が 3 年間 で全体の 79% を超える 場合は、全体的なコス トを最も抑えることが できます。 API Version 2015-02-02 87 Amazon ElastiCache ユーザーガイド リザーブドノードサービス 提供タイプ 前払いコスト 使用料 メリット 中度使用 平均 キャッシュノードの使 用時間に応じて使用料 が時間単位で発生しま す。 作業負荷が一定してい ない場合、または、そ れほど頻繁には利用し ない (3 年間で全体の 40% を超える) 場合に適 しています。 軽度使用 低 時間当たりの使用料で 課金されます。3 種類の うち最も高い料金設定 ですが、課金されるの は、リザーブドキャッ シュノードを使用し ているときに限られま す。 常時実行する場合は全 体的なコストが最も高 くなりますが、まれに しかリザーブドキャッ シュノードを使用しな い (3 年間で全期間の約 15% を超える程度) 場合 は、このオプションが 適しています。 API Version 2015-02-02 88 Amazon ElastiCache ユーザーガイド 使用可能なリザーブドキャッシュノードサービスの説明 使用可能なリザーブドキャッシュノードサービスの説 明 リザーブドクラスターを購入する前に、使用可能なリザーブドクラスターサービスに関する情報を取得で きます。 以下の例では、使用可能なリザーブドクラスターサービスの料金表と情報を入手する手順を示します。 使用可能なリザーブドキャッシュノードサービスの説明 ((コン ソール)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. ナビゲーションリストで、[Reserved Cache Nodes] リンクを選択します。 3. [Purchase Reserved Cache Node] ボタンを選択します。 4. [Product Description] ドロップダウンリストボックスで、エンジンを Memcached または Redis から 選択します。 5. 使用できるサービスを確認するには、次の 3 つのドロップダウンリストボックスから選択します。 • キャッシュノードタイプ • 期間 • 提供タイプ 選択後、ノードあたりの費用および選択した内容の全費用が [Purchase Reserved Cache Nodes] ウィ ザードに表示されます。 6. これらのノードを購入して料金が発生することを防ぐには、[Cancel] を選択します。 使用可能なリザーブドキャッシュノードサービスの説明 ((AWS CLI)) 使用可能なリザーブドクラスターサービスの料金表と情報を入手するには、コマンドプロンプトで次のコ マンドを入力します。 aws elasticache describe-reserved-cache-nodes-offerings --headers この呼び出しにより、以下のような出力が返されます。 OFFERING OfferingId Class Usage Price Description Offering Type OFFERING 438012d3-4052-4cc7-b2e3-8d3372e0e706 cache.m1.large 0.368 USD memcached Medium Utilization OFFERING 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f cache.m1.small 0.046 USD memcached Medium Utilization OFFERING 123456cd-ab1c-47a0-bfa6-12345667232f cache.m1.small 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 0.00 USD memcached Heavy Utilization Recurring Charges: Amount Currency Frequency Recurring Charges: 1.25 USD Hourly API Version 2015-02-02 89 Duration Fixed Price 1y 1820.00 USD 1y 227.50 USD 1y 162.00 USD 1y 700.00 USD Amazon ElastiCache ユーザーガイド 使用可能なリザーブドキャッシュノードサービスの説明 OFFERING 123456cd-ab1c-17d0-bfa6-12345667234e 2.42 USD memcached Light Utilization cache.m1.xlarge 1y 4242.00 USD 使用可能なリザーブドキャッシュノードサービスの説明 ((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.uswest-2.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-b2e3-8d3372e0e706</ 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 90 Amazon ElastiCache ユーザーガイド リザーブドノードの購入 リザーブドノードの購入 以下の例は、リザーブドノードサービスを購入する方法を示しています。 Important このセクションの例に従うと、料金が発生してお客様の AWS アカウントに請求されます。 リザーブドノードの購入 ((コンソール)) この例では、リザーブドキャッシュノード ID が myreservationID の特定のリザーブドキャッシュノード サービス 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f を購入する方法を示しています。 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 3. ナビゲーションリストで、[Reserved Cache Nodes] リンクを選択します。 [Purchase Reserved Cache Node] ボタンを選択します。 4. [Product Description] ドロップダウンリストボックスで、キャッシュノードタイプを選択します。 5. [Cache Node Class] ドロップダウンリストボックスからキャッシュノードクラスを選択します。 6. [Term] ドロップダウンリストボックスで、キャッシュノードを予約する期間を選択します。 7. [Offering Type] ドロップダウンリストボックスで、提供タイプを選択します。 8. 必要に応じて、[Reserved Cache Node ID] テキストボックスにリザーブドキャッシュノード ID を入 力できます。 Note 9. リザーブドキャッシュノード ID は、この予約を追跡するユーザー指定の一意識別子です。こ のボックスが空白のまま場合、ElastiCache により予約の識別子が自動的に生成されます。 [Next] ボタンを選択します。 [Purchase Reserved Cache Node] ダイアログボックスに、選択したリザーブドキャッシュノードの属 性の要約と支払い額が表示されます。 10. 先に進む場合は、[Yes, Purchase] ボタンを選択して、リザーブドキャッシュノードを購入します。 Important [Yes, Purchase] を選択すると、選択したリザーブドノードの料金が発生します。これらの料 金の発生を避けるには、[Cancel] を選択します。 リザーブドノードの購入 ((AWS CLI)) 以下の例では、リザーブドクラスター ID が myreservationID の特定のリザーブドクラスターサービス 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f を購入する方法を示しています。 コマンドプロンプトで以下のコマンドを入力します。 Linux, macOS, or Unix 用: 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 ^ API Version 2015-02-02 91 Amazon ElastiCache ユーザーガイド リザーブドノードの購入 --reserved-cache-nodes-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f ^ --reserved-cache-node-id myreservationID このコマンドにより、以下のような出力が返されます。 RESERVATION ReservationId Class Start Time Duration Price Usage Price Count State Description Offering Type RESERVATION myreservationid cache.m1.small 2013-12-19T00:30:23.247Z 1y USD 0.092 USD 1 payment-pending memcached Medium Utilization Fixed 455.00 リザーブドノードの購入 ((ElastiCache API)) 以下の例では、リザーブドクラスター ID が myreservationID の特定のリザーブドクラスターサービス 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f を購入する方法を示しています。 以下のパラメーターを指定して PurchaseReservedCacheNodesOffering オペレーションを呼び出します。 • ReservedCacheNodesOfferingId = 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f • ReservedCacheNodeID = myreservationID • CacheNodeCount = 1 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.uswest-2.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</ ReservedCacheNodesOfferingId> <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> API Version 2015-02-02 92 Amazon ElastiCache ユーザーガイド リザーブドノードの購入 </PurchaseReservedCacheNodesOfferingResult> <ResponseMetadata> <RequestId>7f099901-29cf-11e1-bd06-6fe008f046c3</RequestId> </ResponseMetadata> </PurchaseReservedCacheNodesOfferingResponse> API Version 2015-02-02 93 Amazon ElastiCache ユーザーガイド リザーブドノードの説明 リザーブドノードの説明 次のような AWS アカウントのリザーブドノードに関する情報を取得できます。 リザーブドノードの説明 ((コンソール)) 1. 2. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 ナビゲーションリストで、[Reserved Cache Nodes] リンクを選択します。 アカウントのリザーブドキャッシュノードが [Reserved Cache Nodes] の一覧に表示されます。リス ト内のいずれかのリザーブドキャッシュノードを選択して、コンソールの下部にある詳細ペインにリ ザーブドキャッシュノードの詳細を表示できます。 リザーブドノードの説明 ((AWS CLI)) AWS アカウントのリザーブドノードに関する情報を入手するには、コマンドプロンプトで次のコマンドを 入力します。 aws elasticache describe-reserved-cache-nodes --headers このコマンドにより、以下のような出力が返されます。 RESERVATION ReservationId Class Start Time Price Usage Price Count State Description Offering Type RESERVATION ki-real-ri-test5 cache.m1.small 2013-07-09T23:37:44.720Z USD 0.092 USD 1 retired memcached Medium Utilization Duration Fixed 1y 455.00 リザーブドノードの説明 ((ElastiCache API)) AWS アカウントのリザーブドノードに関する情報を取得するには、DescribeReservedCacheNodes オペ レーションを呼び出します。 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-west-2.amazonaws.com/ doc/2013-06-15/"> <DescribeReservedCacheNodesResult> <ReservedCacheNodes> <ReservedCacheNode> API Version 2015-02-02 94 Amazon ElastiCache ユーザーガイド リザーブドノードの説明 <OfferingType>Medium Utilization</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges/> <ProductDescription>memcached</ProductDescription> <ReservedCacheNodesOfferingId>649fd0c8-cf6d-47a0-bfa6-060f8e75e95f</ 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 95 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.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge • 以前の世代: 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, , サポートされているノードタイプは、次の表に示していない限り、すべてのリージョンで使用できます。 例外 リージョン名 リージョン 例外 アジアパシフィック (ソウル) ap-northeast-2 現行世代のノードタイプのみをサポートします。 欧州 (フランクフルト) eu-central-1 現行世代のノードタイプのみをサポートします。 AWS GovCloud (US) us-gov-west-1 現行世代のノードタイプのみをサポートします。 M4 ノードタイプをサポートしません。 米国東部 (オハイオ) us-east-2 ノードタイプ T2、M4、および R3 のみをサポート します。 次のエンジンバージョンのみをサポートします。 • Memcached: 1.4.24 • Redis 2.8.21、2.8.23、2.8.24、3.2.4 Note • すべての T2 インスタンスは Amazon VPC (Amazon VPC) で作成されます。 • Redis バックアップおよび復元は、T2 インスタンスではサポートされません。 • Redis AOF (Append-Only File) は、T1 または T2 インスタンスではサポートされません。 • 自動フェイルオーバー機能を備えた Redis マルチ AZ は、T1 または T2 インスタンスではサ ポートされていません。 • Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサポートさ れていません。 ノードタイプおよび仕様の完全な一覧については、以下を参照してください。 • Amazon ElastiCache製品の特徴と詳細 • Memcached のノードタイプ固有のパラメータ API Version 2015-02-02 96 Amazon ElastiCache ユーザーガイド サポートされているノードの種類 • Redis のノードタイプ固有のパラメータ API Version 2015-02-02 97 Amazon ElastiCache ユーザーガイド ノードが置き換え対象となった場合に実行可能なアクション ノードが置き換え対象となった場合に実行可能なア クション 以下のセクションでは、ElastiCache によって 1 つ以上のノードが置き換え対象となっているときに取る ことのできるアクションを指定します。 Memcached 次のリストで、ElastiCache が Memcached ノードの 1 つの置き換えをスケジュールしている場合に取る ことのできるアクションを識別します。 • 何もしない – 何もしない場合、ElastiCache はスケジュールどおりにノードを置き換えま す。ElastiCache によってノードが新しいノードに自動的に置き換えられたとき、新しいノードは最初 は空です。 • メンテナンス時間の変更 – ElastiCache からメールを受信する、スケジュールされたメンテナンスイベ ントで、スケジュールされている置き換え時刻になる前にメンテナンス時間を変更した場合には、新し い時刻にノードが置き換えられます。新しいメンテナンス時刻は、最初にスケジュールされていた日時 よりも早くすることはできず、最初にスケジュールされていた日時よりも 1 週間を超えて遅らせること はできません。 例えば、7 月 4 日 (月) に定期メンテナンスが予定されており、毎月曜日の 04:00 ~ 05:00 (UTC) にメン テナンス時間が設定されているとします。ここで、メンテナンス時間を 08:00 ~ 09:00 (UTC) に変更し た場合、7 月 4 日 (月) の 08:00 ~ 09:00 (UTC) に置き換えが行われます。メンテナンス時間を月曜日の 01:00 ~ 02:00 (UTC) に変更した場合、7 月 11 日 (月) の 01:00 ~ 02:00 (UTC)、つまり翌週に置き換え が行われます。手順については、「メンテナンスウィンドウ (p. 46)」を参照してください。 • 手動でノードを置き換える – 次のメンテナンス時間の前にノードを置き換える必要がある場合は、手動 で置き換えます。 ノードを手動で置き換える場合、キーを再配分するとキャッシュミスが起こります。 手動で Memcached ノードを置き換えるには 1. 置き換え対象となったノードを削除します。手順については、「クラスターからのノードの削 除 (p. 166)」を参照してください。 2. 新しいノードをクラスターに追加します。手順については、「クラスターへのノードの追 加 (p. 160)」を参照してください。 3. このクラスター上で「ノードの自動検出 (Memcached) (p. 101)」を使用していない場合は、アプ リケーションで古いノードのエンドポイントのすべてのインスタンスを新しいノードのエンドポイ ントに置き換えます。 Redis 次のリストで、ElastiCache が Redis ノードの 1 つの置き換えをスケジュールしている場合に取ることの できるアクションを識別します。状況に応じて必要となる情報をすばやく見つけるには、次のメニューか ら選択します。 • Do nothing (p. 99) – Amazon ElastiCache でスケジュールどおりにノードを置き換えます。 • Change your maintenance window (p. 99) – メンテナンス時間をより適切な時刻に変更します。 • Replace a read-replica (p. 99) – Redis レプリケーショングループのリードレプリカを手動で置き換え る手順です。 • Replace the primary node (p. 99) – Redis レプリケーショングループのプライマリノードを手動で置 き換える手順です。 API Version 2015-02-02 98 Amazon ElastiCache ユーザーガイド Redis • Replace a standalone node (p. 100) – スタンドアロン Redis ノードを置き換える 2 つの異なる手順で す。 Redis ノード置き換えオプション • 何もしない – 何もしない場合、ElastiCache はスケジュールどおりにノードを置き換えます。 ノードが Redis (クラスターモードが無効) クラスターに属する場合、代替ノードはプライマリノードと 同期されます。 ノードがスタンドアロンである場合は、ElastiCache によってまず代替ノードが起動されてから、既存 のノードと同期されます。既存のノードは、この時点で、サービスリクエストに使用できなくなりま す。同期が完了すると、既存のノードは終了し、新しいノードに置き換えられます。ElastiCache は、 このオペレーションの実行中、ベストエフォートでデータを保持します。 • メンテナンス時間の変更 – ElastiCache からメールを受信する、スケジュールされたメンテナンスイベ ントで、スケジュールされている置き換え時刻になる前にメンテナンス時間を変更した場合には、新し い時刻にノードが置き換えられます。新しいメンテナンス時刻は、最初にスケジュールされていた日時 よりも早くすることはできず、最初にスケジュールされていた日時よりも 1 週間を超えて遅らせること はできません。 例えば、7 月 4 日 (月) に定期メンテナンスが予定されており、毎月曜日の 04:00 ~ 05:00 (UTC) にメン テナンス時間が設定されているとします。ここで、メンテナンス時間を 08:00 ~ 09:00 (UTC) に変更し た場合、7 月 4 日 (月) の 08:00 ~ 09:00 (UTC) に置き換えが行われます。メンテナンス時間を月曜日の 01:00 ~ 02:00 (UTC) に変更した場合、7 月 11 日 (月) の 01:00 ~ 02:00 (UTC)、つまり翌週に置き換え が行われます。手順については、「メンテナンスウィンドウ (p. 46)」を参照してください。 • リードレプリカを置き換える – ノードがリードレプリカである場合、ノードを置き換えます。 クラスターに 2 つのノードのみがあり、マルチ AZ が有効になっている場合は、マルチ AZ を無効に してからレプリカを削除する必要があります。手順については、「レプリカを持つクラスターの変 更 (p. 237)」を参照してください。 リードレプリカと置き換えるには 1. 置き換え対象となったレプリカを削除します。手順については、「クラスターの削除 (p. 173)」を 参照してください。 2. 置き換え対象となったレプリカと置き換える新しいレプリカを追加します。先ほど削除したレプリ カと同じ名前を使用する場合は、手順 3 を省略できます。手順については、「Redis クラスターへ のリードレプリカの追加 (p. 240)」を参照してください。 3. アプリケーションで、古いレプリカのエンドポイントを新しいレプリカのエンドポイントに置き換 えます。 4. 開始時にマルチ AZ が無効になっている場合は、この時点で再び有効にします。手順については、 「マルチ AZ で自動フェイルオーバーを有効にする (p. 209)」を参照してください。 • プライマリノードを置き換える – ノードがプライマリノードである場合、リードレプリカをプライマリ に昇格させてから、前のプライマリノードを削除します。 クラスターに 2 つのノードのみがあり、マルチ AZ が有効になっている場合は、マルチ AZ を無効にし てからステップ 2 でレプリカを削除する必要があります。手順については、「レプリカを持つクラス ターの変更 (p. 237)」を参照してください。 プライマリノードを置き換えるには 1. リードレプリカをプライマリに昇格させます。手順については、「リードレプリカをプライマリに 昇格させる (p. 242)」を参照してください。 2. 置き換え対象となったノード (前のプライマリ) を削除します。手順については、「クラスターの削 除 (p. 173)」を参照してください。 API Version 2015-02-02 99 Amazon ElastiCache ユーザーガイド Redis 3. 4. 5. 置き換え対象となったレプリカと置き換える新しいレプリカを追加します。先ほど削除したレプリ カと同じ名前を使用する場合は、手順 4 を省略できます。 手順については、「Redis クラスターへのリードレプリカの追加 (p. 240)」を参照してください。 アプリケーションで、古いノードのエンドポイントを新しいノードのエンドポイントに置き換えま す。 開始時にマルチ AZ が無効になっている場合は、この時点で再び有効にします。手順については、 「マルチ AZ で自動フェイルオーバーを有効にする (p. 209)」を参照してください。 • スタンドアロンノードを置き換える – ノードにリードレプリカがない場合、スタンドアロンクラスター を置き換えるには、以下の 2 つのオプションがあります。 オプション 1: バックアップと復元を使用してノードを置き換える 1. ノードのスナップショットを作成します。手順については、「Taking Manual Backups (p. 250)」 を参照してください。 2. スナップショットから新しいノードを作成します。手順については、「Restoring From a Backup (p. 269)」を参照してください。 3. 置き換え対象となったノードを削除します。手順については、「クラスターの削除 (p. 173)」を参 照してください。 アプリケーションで、古いノードのエンドポイントを新しいノードのエンドポイントに置き換えま す。 4. オプション 2: レプリケーションを使用してノードを置き換える 1. プライマリとして置き換え対象になったノードがあるクラスターにレプリケーションを追加しま す。このクラスターでマルチ AZ を有効にしないでください。手順については、「シャードがない Redis クラスターにレプリケーションを追加するには (p. 160)」を参照してください。 2. クラスターにリードレプリカを追加します。手順については、「Memcached または 1 つ のシャードを持つ Redis (クラスターモードが無効) クラスターにノードを追加するには ((console)) (p. 161)」を参照してください。 3. 新たに作成したリードレプリカをプライマリに昇格させます。手順については、「リードレプリカ をプライマリに昇格させる (p. 242)」を参照してください。 4. 置き換え対象となったノードを削除します。手順については、「クラスターの削除 (p. 173)」を参 照してください。 5. アプリケーションで、古いノードのエンドポイントを新しいノードのエンドポイントに置き換えま す。 API Version 2015-02-02 100 Amazon ElastiCache ユーザーガイド ノードの自動検出 (Memcached) Memcached エンジンを実行するクラスターの場合、ElastiCache では自動検出がサポートされます。自動 検出は、クライアントプログラムが、キャッシュクラスター内のすべてのノードを識別し、それらのすべ てのノードへの接続を開始して維持する機能です。 Note 自動検出は、Amazon ElastiCache Memcached で実行されているキャッシュクラスターに追加さ れます。Redis (クラスターモードが有効) クラスターは、元々自動検出に対応しています。 自動検出によって、アプリケーションは手動で個々のキャッシュノードに接続する必要はありません。そ の代わり、アプリケーションは Memcached のノードの 1 つに接続してノードのリストを取得します。そ のリストからアプリケーションはクラスターの残りのノードを発見して、それらにも接続できます。アプ リケーションで個々のキャッシュノードエンドポイントをハードコードする必要はありません。 クラスター内のすべてのキャッシュノードには、他のすべてのノードに関するメタデータのリストが保持 されます。このメタデータは、クラスターにノードが追加または削除されるたびに更新されます。 トピック • 自動検出の利点 (p. 102) • 自動検出の動作 (p. 103) • 自動検出の使用 (p. 107) • キャッシュノードへの手動接続 (p. 112) • クライアントライブラリへの自動検出の追加 (p. 113) • ElastiCache クライアント自動検出クライアントの使用 (p. 114) API Version 2015-02-02 101 Amazon ElastiCache ユーザーガイド 自動検出の利点 自動検出の利点 自動検出には、次の利点があります。 • キャッシュクラスター内のノード数を増やすと、新しいノードは、設定エンドポイントと他のすべての ノードに自身を登録します。キャッシュクラスターからノードを削除すると、削除対象のノードが自身 の登録を解除します。いずれの場合も、クラスター内の他のすべてのノードが、最新のキャッシュノー ドメタデータで更新されます。 • キャッシュノードの障害は自動的に検出されます。障害が発生したノードは、自動的に置き換えられま す。 Note ノードの交換が完了するまで、そのノードは正常になりません。 • クライアントプログラムは、設定エンドポイントにのみ接続する必要があります。その後、自動検出ラ イブラリはクラスター内の他のすべてのノードに接続します。 • クライアントプログラムは、1 分に 1 回クラスターをポーリングします (この間隔は必要に応じて調整で きます)。クラスター設定の変更がある場合 (新しいノードや削除されたノードなど)、クライアントは更 新されたメタデータリストを受け取ります。その後、クライアントは必要に応じてそれらのノードに接 続したり、それらのノードから切断したりします。 自動検出は、すべての ElastiCache Memcached キャッシュクラスターで有効になります。この機能を使 用するためにキャッシュノードを再起動する必要はありません。 API Version 2015-02-02 102 Amazon ElastiCache ユーザーガイド 自動検出の動作 自動検出の動作 トピック • キャッシュノードへの接続 (p. 103) • 通常のクラスターオペレーション (p. 104) • その他のオペレーション (p. 105) このセクションでは、ElastiCache クライアントアプリケーションを使用してキャッシュノード接続を管 理し、キャッシュ内のデータ項目を操作する方法について説明します。 キャッシュノードへの接続 アプリケーションの観点からは、クラスター設定エンドポイントへの接続は、個々のキャッシュノードに 直接接続するのと変わりません。次の一連の図は、キャッシュノードに接続するプロセスを示したもので す。 API Version 2015-02-02 103 Amazon ElastiCache ユーザーガイド 通常のクラスターオペレーション キャッシュノードへの接続プロセス アプリケーションは、設定エンドポイントの DNS 名を解決します。設定エンドポイントには、すべ てのキャッシュノードの CNAME エントリが保持されているため、DNS 名はいずれかのノードに解 決されます。その後、クライアントはそのノードに接続できます。 クライアントは、他のすべてのノードの設定情報をリクエストします。各ノードにはクラスター内の すべてのノードの設定情報が保持されているため、どのノードでも必要に応じて設定情報をクライア ントに渡すことができます。 クライアントは、キャッシュノードのホスト名と IP アドレスの最新のリストを受け取ります。その 後、クライアントはクラスター内の他のすべてのノードに接続できます。 Note クライアントプログラムは、キャッシュノードのホスト名と IP アドレスのリストを 1 分に 1 回 更新します。このポーリング間隔は、必要に応じて変更できます。 通常のクラスターオペレーション アプリケーションがすべてのキャッシュノードに接続されている場合、ElastiCache クラスタークライア ントは、個々のデータ項目を格納する必要があるノードと、それらのデータ項目のクエリを実行する必要 があるノードを判断します。次の一連の図は、通常のクラスターオペレーションのプロセスを示していま す。 API Version 2015-02-02 104 Amazon ElastiCache ユーザーガイド その他のオペレーション 通常のクラスターオペレーションのプロセス アプリケーションは、特定のデータ項目に対して get リクエストを発行します (キーにより識別され ます)。 クライアントは、キーに対してハッシュアルゴリズムを使用して、データ項目が格納されている キャッシュノードを調べます。 データ項目が適切なノードからリクエストされます。 データ項目がアプリケーションに戻ります。 その他のオペレーション 追加要求に対応するために追加ノードを追加したり、削減された要求の期間中のコストを節約するために ノードを削除したり、何らかのノード障害のためにノードを交換したりするために、クラスターが変更さ れる状況が発生する場合があります。 API Version 2015-02-02 105 Amazon ElastiCache ユーザーガイド その他のオペレーション クラスターのエンドポイントへのメタデータ更新を必要とするクラスターを変更するときは、すべての ノードへの変更が同時に行われます。したがって、特定のノードのメタデータと、クラスター内の他のす べてのノードのメタデータの整合性がとられます。 ノードの追加 ノードがスピンアップされている間、エンドポイントはメタデータには含まれません。エンドポイント は、ノードが利用可能となった時点で、クラスターの各ノードのメタデータに追加されます。このシナリ オではメタデータはすべてのノード間で整合性がとられ、新しいノードとは、それが利用可能になった後 にやり取りできるようになります。ノードが利用可能になる前にはそのノードについては認識できず、新 しいノードが存在しないかのようにクラスターのノードとやり取りすることになります。 ノードの削除 ノードが削除されるときは、まずエンドポイントがメタデータから削除され、ノードがクラスターから削 除されます。このシナリオではメタデータはすべてのノード間で整合性がとられており、ノードが利用で きない間、削除されるノードのエンドポイントがメタデータに含まれることはありません。ノードを削除 している間、そのノードはメタデータでは報告されないため、アプリケーションはそのノードが存在しな いかのように n-1 の残りのノードのみとやり取りします。 ノードの置換 ノードに障害が発生した場合、ElastiCache がそのノードを停止し、別のノードを起動します。この置換 プロセスは数分かかります。この間、すべてのノードのメタデータには、障害のあるノードに対応するエ ンドポイントが表示されますが、そのノードとのやり取りの試みは失敗します。そのため、ロジックには 必ず再試行ロジックを組み込んでください。 この場合、メタデータは、クラスター内のすべてのノードで同時に更新されるため、すべてのノード間で 整合性がとられます。クラスターのさまざまなノードのエンドポイントを取得するため、設定エンドポイ ントを必ず使用する必要があります。設定エンドポイントを使用して、「非表示」のノードからはエンド ポイントデータを取得しないようにしてください。 API Version 2015-02-02 106 Amazon ElastiCache ユーザーガイド 自動検出の使用 自動検出の使用 自動検出の使用を開始するには、以下のステップに従います。 • ステップ 1: 設定エンドポイントを取得する (p. 107) • ステップ 2: ElastiCache クラスタークライアントをダウンロードする (p. 108) • ステップ 3: アプリケーションプログラムを変更する (p. 109) ステップ 1: 設定エンドポイントを取得する クラスターに接続するには、クライアントプログラムがクラスター設定エンドポイントを認識している必 要があります。トピック「Memcached クラスターのエンドポイントの検索 (コンソール) (p. 53)」を参照 してください。 --show-cache-node-info パラメーターを指定して、aws elasticache describe-cache-clusters コマン ドを使用することもできます。 クラスターのエンドポイント検索に使用する方法に関係なく、設定エンドポイントのアドレスには、必ず .cfg が含まれます。 Example ElastiCache の AWS CLI によるエンドポイントの検索 Linux, macOS, 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 このオペレーションでは、以下のような (JSON 形式の) 出力が生成されます。 { "CacheClusters": [ { "Engine": "memcached", "CacheNodes": [ { "CacheNodeId": "0001", "Endpoint": { "Port": 11211, "Address": "mycluster.fnjyzo.cfg.0001.use1.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", "CustomerAvailabilityZone": "us-east-1e" }, { "CacheNodeId": "0002", "Endpoint": { "Port": 11211, "Address": "mycluster.fnjyzo.cfg.0002.use1.cache.amazonaws.com" API Version 2015-02-02 107 Amazon ElastiCache ユーザーガイド ステップ 2: ElastiCache クラスター クライアントをダウンロードする }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", "CustomerAvailabilityZone": "us-east-1a" } ], "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.memcached1.4", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "mycluster", "PreferredAvailabilityZone": "Multiple", "ConfigurationEndpoint": { "Port": 11211, "Address": "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com" }, "CacheSecurityGroups": [], "CacheClusterCreateTime": "2016-10-12T21:39:28.001Z", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "available", "NumCacheNodes": 2, "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/ home#client-download:", "CacheSubnetGroupName": "default", "EngineVersion": "1.4.24", "PendingModifiedValues": {}, "PreferredMaintenanceWindow": "sat:06:00-sat:07:00", "CacheNodeType": "cache.r3.large" } ] } ステップ 2: ElastiCache クラスタークライアントをダ ウンロードする 自動検出を利用するには、クライアントプログラムが ElastiCache クラスタークライアントする必要が あります。ElastiCache Cluster Client は、Java、PHP、および .NET 向けが用意されており、すべての キャッシュノードを検出して接続するのに必要なロジックすべてが含まれています。 ElastiCache クラスタークライアントをダウンロードするには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. ElastiCache コンソールで、[ElastiCache Cluster Client] を選択して [Download] を選択します。 Java 向けの ElastiCache クラスタークライアントのソースコードは、https://github.com/ amazonwebservices/aws-elasticache-cluster-client-memcached-for-java で入手できます。このライブラ リは、広く使用されている Spymemcached クライアントがベースとなっています。ElastiCache Cluster Client は、Amazon ソフトウェアライセンス https://aws.amazon.com/asl の下にリリースされています。 ソースコードは必要に合わせて自由に変更できます。他のオープンソース Memcached ライブラリや独自 のクライアントコードにコードを組み込むこともできます。 Note PHP 向けの ElastiCache クラスタークライアントを使用するには、まず Amazon EC2 インスタン スにインストールする必要があります。詳細については、「ElastiCache Cluster Client for PHP の インストール (p. 117)」を参照してください。 API Version 2015-02-02 108 Amazon ElastiCache ユーザーガイド ステップ 3: アプリケーションプログラムを変更する .NET 向けの ElastiCache Cluster Client を使用するには、まず Amazon EC2 インスタンスにイン ストールする必要があります。詳細については、「ElastiCache Cluster Client for .NET のインス トール (p. 115)」を参照してください。 ステップ 3: アプリケーションプログラムを変更する 自動検出を使用するようにアプリケーションプログラムを変更する準備ができました。以下のセクション では、Java、PHP、および .NET 向けの ElastiCache Cluster Client を使用する方法を示します。 Important クラスターの設定エンドポイントを指定する際は必ず、ここに示す設定エンドポイントのアドレ スに「.cfg」が含まれていることを確認してください。「.cfg」のない CNAME またはエンドポイ ントは使用しないでください。 "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com"; クラスターの設定エンドポイントを明示的に指定しない場合は、特定のノードが設定されます。 トピック • Java 向けの ElastiCache クラスタークライアントの使用 (p. 109) • PHP 向けの ElastiCache クラスタークライアントの使用 (p. 110) • .NET 向けの ElastiCache Cluster Client の使用 (p. 111) 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. // 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"); } } API Version 2015-02-02 109 Amazon ElastiCache ユーザーガイド ステップ 3: アプリケーションプログラムを変更する PHP 向けの ElastiCache クラスタークライアントの使用 以下のプログラムは、ElastiCache クラスタークライアントを使用してクラスター設定エンドポイントに 接続し、キャッシュにデータ項目を追加する方法を示しています。さらに操作を行わなくても、プログラ ムは自動検出を使用してクラスター内のすべてのノードに接続します。 PHP 向けの ElastiCache クラスタークライアントを使用するには、まず Amazon EC2 インスタンスに インストールする必要があります。詳細については、「ElastiCache Cluster Client for PHP のインストー ル (p. 117)」を参照してください。 <?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 = "mycluster.fnjyzo.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 Discovery 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. * * By default the Memcached instances are destroyed at the end of the request. * To create an instance that persists between requests, * use persistent_id to specify a unique ID for the instance. * All instances created with the same persistent_id will share the same connection. * See http://php.net/manual/en/memcached.construct.php for more information. */ $dynamic_client = new Memcached('persistent-id'); $dynamic_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLIENT_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); /** * 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('persistent-id'); $static_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::STATIC_CLIENT_MODE); $static_client->addServer($server_endpoint, $server_port); /** * Store the data without expiration. * The client will decide which cache host will store this item. */ API Version 2015-02-02 110 Amazon ElastiCache ユーザーガイド ステップ 3: アプリケーションプログラムを変更する $static_client->set('key', 'value'); ?> .NET 向けの ElastiCache Cluster Client の使用 ElastiCache の .NET クライアントは、オープンソースとして https://github.com/awslabs/elasticachecluster-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; 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 111 Amazon ElastiCache ユーザーガイド キャッシュノードへの手動接続 キャッシュノードへの手動接続 プログラムクライアントが自動検出を使用していない場合、各キャッシュノードに手動で接続できます。 これは、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 112 Amazon ElastiCache ユーザーガイド クライアントライブラリへの自動検出の追加 クライアントライブラリへの自動検出の追加 自動検出の設定情報は、各キャッシュクラスターノードに冗長的に保存されます。クライアントアプリ ケーションは、任意のキャッシュノードのクエリを実行し、クラスター内のすべてのノードの設定情報を 取得できます。 アプリケーションがこれを行う方法は、キャッシュエンジンバージョンによって異なります。 • キャッシュエンジンバージョンが 1.4.14 以上の場合、config コマンドを使用します。 • キャッシュエンジンバージョンが 1.4.14 未満の場合、get AmazonElastiCache:cluster コマンドを使 用します。 これらの 2 つのコマンドの出力は同じです。以下の「出力形式 (p. 114)」セクションで説明します。 キャッシュエンジンバージョン 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 キャッシュエンジンバージョン 1.4.14 未満 クラスターの設定情報を取得するには、以下のコマンドを使用します。 get AmazonElastiCache:cluster API Version 2015-02-02 113 Amazon ElastiCache ユーザーガイド 出力形式 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 myCluster.pc4ldq.0002.use1.cache.amazonaws.com|10.80.249.27|11211\n\r\n END\r\n Note • 2 行目は、設定情報がこれまで 12 回変更されたことを示しています。 • 3 行目のノードのリストでは、ホスト名がアルファベット順に並んでいます。この順序は、現 在クライアントアプリケーションで何を使用しているかにより異なる場合があります。 ElastiCache クライアント自動検出クライアントの 使用 このセクションでは、ElastiCache PHP と .NET クライアントのインストールと構成について説明しま す。 トピック • クラスタークライアントのインストールとコンパイル (p. 115) • ElastiCache クライアントの設定 (p. 125) API Version 2015-02-02 114 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル クラスタークライアントのインストールとコンパイル このセクションでは、PHP および .NET Amazon ElastiCache 自動検出クラスタークライアントのインス トール、設定、コンパイルを取り上げます。 トピック • ElastiCache Cluster Client for .NET のインストール (p. 115) • ElastiCache Cluster Client for PHP のインストール (p. 117) • PHP 向けの ElastiCache クラスタークライアントのソースコードのコンパイル (p. 123) 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. 101)」を参照してください。クライアントを使用するサンプル .NET コードに ついては、「.NET 向けの ElastiCache Cluster Client の使用 (p. 111)」を参照してください。 トピック • .NET のインストール (p. 115) • ElastiCache .NET Cluster Client for ElastiCache のダウンロード (p. 115) • NuGet を使用した AWS アセンブリのインストール (p. 115) .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 は自動的にインストールされます。 API Version 2015-02-02 115 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル NuGet はソリューションエクスプローラーまたはパッケージマネージャコンソールから使用できます。 ソリューションエクスプローラーからの NuGet の使用 Visual Studio 2010 でソリューションエクスプローラーから NuGet を使用するには 1. [Tools] メニューから、[Library Package Manager] を選択します。 2. [Package Manager Console] をクリックします。 Visual Studio 2012 または Visual Studio 2013 でソリューションエクスプローラーから NuGet を 使用するには 1. [Tools] メニューから、[NuGet Package Manager] を選択します。 2. [Package Manager Console] をクリックします。 コマンドラインから、次のように Install-Package を使用してアセンブリをインストールできます。 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 116 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル ElastiCache Cluster Client for PHP のインストール このセクションでは、Amazon EC2 インスタンスで ElastiCache Cluster Client の PHP コンポーネントを インストール、更新、および削除する方法について説明します。自動検出の詳細については、「ノードの 自動検出 (Memcached) (p. 101)」を参照してください。クライアントを使用するサンプル PHP コードに ついては、「PHP 向けの ElastiCache クラスタークライアントの使用 (p. 110)」を参照してください。 トピック • インストールパッケージのダウンロード (p. 117) • 新規ユーザーのインストール手順 (p. 118) • 既に php-memcached 拡張機能をインストールしているユーザーの場合 (p. 121) • PHP Cluster Client の削除 (p. 121) インストールパッケージのダウンロード 適切なバージョンの 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. 123)」を参照してください。 Amazon EC2 AMI アーキテクチャ (64 ビットまたは 32 ビット) を確認するには 1. AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ にある Amazon EC2 コンソールを開きます。 2. [Instances] リストで、Amazon EC2 インスタンスをクリックします。 API Version 2015-02-02 117 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル 3. [Description] タブで、[AMI:] フィールドを検索します。64 ビットのインスタンスでは、説明に x86_64 が含まれています。32 ビットのインスタンスの場合は、このフィールドで i386 または i686 を探し ます。 これで ElastiCache Cluster Client をダウンロードする準備ができました。 ElastiCache Cluster Client for PHP をダウンロードするには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. ElastiCache コンソールで、[Download ElastiCache Cluster Client] をクリックします。 3. PHP のバージョンと AMI アーキテクチャに適した ElastiCache Cluster Client を選択し、[Download ElastiCache Cluster Client] ボタンをクリックします。 新規ユーザーのインストール手順 トピック • 新規ユーザー向けの PHP 7.x のインストール (p. 118) • 新規ユーザー向けの PHP 5.x のインストール (p. 119) 新規ユーザー向けの PHP 7.x のインストール Ubuntu Server 14.04 LTS AMI (64 ビットおよび 32 ビット) に PHP 7 をインストールするには 1. AMI から新しいインスタンスを起動します。 2. 以下のコマンドを実行します。 sudo apt-get update sudo apt-get install gcc g++ 3. PHP 7 をインストールします。 4. Amazon ElastiCache Cluster Client をダウンロードし、解凍します。 5. root アクセス権限を使用して、抽出されたアーティファクトファイル amazon-elasticache-clusterclient.so を /usr/lib/php/20151012 にコピーします。 6. /etc/php/7.0/cli/php.ini ファイルに extension=amazon-elasticache-cluster-client.so 行を挿 入します。 Amazon Linux 201509 AMI または Red Hat 7 AMI に PHP 7 をインストールするには 1. AMI から新しいインスタンスを起動します。 2. 次のコマンドを実行します。 sudo yum install gcc-c++ 3. PHP 7 をインストールします。 4. Amazon ElastiCache Cluster Client をダウンロードし、解凍します。 5. root アクセス権限を使用して、抽出されたアーティファクトファイル amazon-elasticache-clusterclient.so を /usr/lib64/php/modules/ にコピーします。 6. /etc/php.ini ファイルに extension=amazon-elasticache-cluster-client.so 行を挿入します。 API Version 2015-02-02 118 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル SUSE Linux AMI に PHP 7 をインストールするには 1. AMI から新しいインスタンスを起動します。 2. 次のコマンドを実行します。 sudo zypper install gcc 3. PHP 7 をインストールします。 4. Amazon ElastiCache Cluster Client をダウンロードし、解凍します。 5. root アクセス権限を使用して、抽出されたアーティファクトファイル amazon-elasticache-clusterclient.so を /usr/lib64/php7/extensions/ にコピーします。 6. /etc/php7/cli/php.ini ファイルに extension=amazon-elasticache-cluster-client.so 行を挿入 します。 新規ユーザー向けの PHP 5.x のインストール Amazon Linux AMI 2014.03 (64 ビットおよび 32 ビット) に PHP 5 をインストールするには 1. Amazon Linux インスタンス (64 ビットまたは 32 ビット) を起動し、ログインします。 2. PHP の依存関係をインストールします。 $ sudo yum install gcc-c++ php php-pear 3. Amazon EC2 インスタンスと PHP のバージョンに合った適切な php-memcached パッケージをダウン ロードします。詳細については、「インストールパッケージのダウンロード (p. 117)」を参照してく ださい。 4. インストール 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」を挿入しま す。 $ echo "extension=amazon-elasticache-cluster-client.so" | sudo tee /etc/php.d/ memcached.ini Red Hat Enterprise Linux 7.0 AMI (64 ビットおよび 32 ビット) に PHP 5 をインストールするには 1. Red Hat Enterprise Linux インスタンス (64 ビットまたは 32 ビット) を起動し、ログインします。 2. PHP の依存関係をインストールします。 $ sudo yum install gcc-c++ php php-pear API Version 2015-02-02 119 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル 3. Amazon EC2 インスタンスと PHP のバージョンに合った適切な php-memcached パッケージをダウン ロードします。詳細については、「インストールパッケージのダウンロード (p. 117)」を参照してく ださい。 4. インストール 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 ビット) に PHP 5 をインストールするには 1. Ubuntu Linux インスタンス (64 ビットまたは 32 ビット) を起動し、ログインします。 2. PHP の依存関係をインストールします。 $ sudo apt-get update sudo apt-get install gcc g++ php5 php-pear 3. Amazon EC2 インスタンスと PHP のバージョンに合った適切な php-memcached パッケージをダウン ロードします。詳細については、「インストールパッケージのダウンロード (p. 117)」を参照してく ださい。 4. インストール php-memcached. URI にはインストールパッケージのダウンロードパスを指定します。 $ sudo pecl install <package download path> Note このインストール手順では、ビルドアーティファクト amazon-elasticache-clusterclient.so を /usr/lib/php5/20121212* ディレクトリにインストールします。次のステップ で必要になるため、ビルドアーティファクトの絶対パスを確認してください。 前のコマンドが機能しない場合は、PHP クライアントアーティファクト amazon-elasticachecluster-client.so を、ダウンロードした *.tgz ファイルから手動で抽出し、/usr/lib/ php5/20121212* ディレクトリにコピーする必要があります。 $ tar -xvf <package download path> cp amazon-elasticache-cluster-client.so /usr/lib/php5/20121212/ API Version 2015-02-02 120 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル 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 ビット) に PHP 5 をインストールする には 1. SUSE Linux インスタンス (64 ビットまたは 32 ビット) を起動し、ログインします。 2. PHP の依存関係をインストールします。 $ sudo zypper install gcc php53-devel 3. Amazon EC2 インスタンスと PHP のバージョンに合った適切な php-memcached パッケージをダウン ロードします。詳細については、「インストールパッケージのダウンロード (p. 117)」を参照してく ださい。 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 Note 前のプラットフォームのいずれかでステップ 5 が機能しない場合は、amazon-elasticachecluster-client.so のインストールパスを確認し、extension でこのバイナリの完全なパスを指 定します。また、使用中の PHP がサポートされているバージョンであることも確認します。バー ジョン 5.3 ~ 5.5 がサポートされています。 既に php-memcached 拡張機能をインストールしているユーザーの場合 php-memcached のインストールを更新するには 1. 「PHP Cluster Client の削除 (p. 121)」トピックで説明しているように、PHP 用の Memcached 拡張 機能の以前のインストールを削除します。 2. 前に「新規ユーザーのインストール手順 (p. 118)」で説明したように、新しい ElastiCache phpmemcached 拡張機能をインストールします。 PHP Cluster Client の削除 トピック • PHP 7 の以前のバージョンの削除 (p. 122) • PHP 5 の以前のバージョンの削除 (p. 122) API Version 2015-02-02 121 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル PHP 7 の以前のバージョンの削除 PHP 7 の以前のバージョンを削除するには 1. インストール手順で先ほど示した該当する PHP lib ディレクトリから amazon-elasticache-clusterclient.so ファイルを削除します。「既に php-memcached 拡張機能をインストールしているユー ザーの場合 (p. 121)」でインストールのセクションを参照してください。 2. php.ini ファイルから extension=amazon-elasticache-cluster-client.so 行を削除します。 PHP 5 の以前のバージョンの削除 PHP 5 の以前のバージョンを削除するには 1. php-memcached 拡張機能を削除します。 $ sudo pecl uninstall __uri/AmazonElastiCacheClusterClient 2. 前のインストールの手順に従って適切なディレクトリに追加した memcached.ini ファイルを削除しま す。 API Version 2015-02-02 122 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル PHP 向けの ElastiCache クラスタークライアントのソースコー ドのコンパイル このセクションでは、ElastiCache Cluster Client for PHP のソースコードを取得しコンパイルする方法に ついて説明します。 GitHub から取得し、コンパイルする必要がある 2 つのパッケージがあります。aws-elasticache-clusterclient-libmemcached および aws-elasticache-cluster-client-memcached-for-php。 トピック • libmemcached ライブラリのコンパイル (p. 123) • PHP 用 ElastiCache Memcached Auto Discovery クライアントのコンパイル (p. 123) libmemcached ライブラリのコンパイル aws-elasticache-cluster-client-libmemcached ライブラリをコンパイルするには 1. Amazon EC2 インスタンスの起動 2. ライブラリの依存関係をインストールします。 • Amazon Linux 201509 AMI 上 sudo yum install gcc gcc-c++ autoconf libevent-devel • Ubuntu 14.04 AMI 上 sudo apt-get update sudo apt-get install libevent-dev gcc g++ make autoconf libsasl2-dev 3. リポジトリをプルし、コードをコンパイルします。 git clone https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached.git cd aws-elasticache-cluster-client-libmemcached mkdir BUILD cd BUILD ../configure --prefix=<libmemcached-install-directory> --with-pic make sudo make install PHP 用 ElastiCache Memcached Auto Discovery クライアントのコンパイル 以下のセクションでは、ElastiCacheMemcached Auto Discovery クライアントをコンパイルする方法につ いて説明します。 トピック • PHP 7 用 ElastiCache Memcached クライアントのコンパイル (p. 123) • PHP 5 用 ElastiCache Memcached クライアントのコンパイル (p. 124) PHP 7 用 ElastiCache Memcached クライアントのコンパイル code ディレクトリで以下の一連のコマンドを実行します。 git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git API Version 2015-02-02 123 Amazon ElastiCache ユーザーガイド クライアントのインストールとコンパイル cd aws-elasticache-cluster-client-memcached-for-php git checkout php7 sudo yum install php70-devel phpize ./configure --with-libmemcached-dir=<libmemcached-install-directory> --disable-memcachedsasl make make install Note PHP バイナリに libmemcached ライブラリを静的にリンクして、さまざまな Linux プラット フォーム間で移植できるようにします。そのためには、make の前に sed -i "s#-lmemcached#<libmemcached-install-directory>/lib/libmemcached.a -lcrypt lpthread -lm -lstdc++ -lsasl2#" Makefile コマンドを実行します。 PHP 5 用 ElastiCache Memcached クライアントのコンパイル aws-elasticache-cluster-client-memcached-for-php/ フォルダーで、以下のコマンドを実行して awselasticache-cluster-client-memcached-for-php をコンパイルします。 git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git cd aws-elasticache-cluster-client-memcached-for-php sudo yum install zlib-devel phpize ./configure --with-libmemcached-dir=<libmemcached-install-directory> make make install API Version 2015-02-02 124 Amazon ElastiCache ユーザーガイド クライアントの設定 ElastiCache クライアントの設定 ElastiCache クラスターは、クラスターの作成時に選択したキャッシュエンジンに応じて Memcached ま たは Redis に準拠したプロトコルです。既存の Memcached または Redis 環境で現在使用しているコー ド、アプリケーション、および広く使用されているほとんどのツールは、このサービスでもシームレスに 動作します。 このセクションでは、ElastiCache のキャッシュノードに接続するための特定の考慮事項について説明し ます。 トピック • 制限されるコマンド (p. 125) • ノードのエンドポイントおよびポート番号を検索する (p. 125) • 自動検出を使用するための接続 (p. 127) • Redis クラスター内のノードへの接続 (p. 127) • DNS 名と基になっている IP (p. 128) 制限されるコマンド マネージドサービス操作性を実現するため、ElastiCache では高度な特権を必要とする特定のキャッシュ エンジン固有のコマンドへのアクセスが制限されます。 • Memcached を実行するキャッシュクラスターの場合、制限されるコマンドはありません。 • Redis を実行するキャッシュクラスターの場合、次のコマンドは使用できせん。 • bgrewriteaof • bgsave • config • debug • migrate • save • slaveof • shutdown ノードのエンドポイントおよびポート番号を検索する キャッシュノードに接続するには、アプリケーションがそのノードのエンドポイントとポート番号を認識 している必要があります。 ノードエンドポイントおよびポート番号を検索する (コンソール) ノードエンドポイントとポート番号を調べるには 1. 「Amazon ElastiCache マネジメントコンソール」にサインインし、[Memcached] または [Redis] を選 択します。 選択したエンジンを実行しているクラスターがすべて一覧表示されます。 2. 実行しているエンジンや設定に対して、以下を行います。 Memcached 1. 対象のクラスターの名前を選択します。 API Version 2015-02-02 125 Amazon ElastiCache ユーザーガイド クライアントの設定 2. 関心があるノードの [ポート] および [エンドポイント] 列を見つけます。 Redis: 非クラスターモード 1. 対象のクラスターの名前を選択します。 2. 関心があるノードの [ポート] および [エンドポイント] 列を見つけます。 Redis: クラスターモード 1. 対象のクラスターの名前を選択します。 対象クラスターのシャードがすべて一覧表示されます。 2. 関心のあるシャードの名前を選択します。 シャード内のノードがすべて一覧表示されます。 3. 関心があるノードの [ポート] および [エンドポイント] 列を見つけます。 キャッシュノードのエンドポイントおよびポート番号を検索する (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/elasticache/home#clientdownload: 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/elasticache/home#clientdownload: 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.amazonaws.com 6379 in-sync CACHECLUSTER my-redis-replica-01 https://console.aws.amazon.com/elasticache/home#clientdownload: 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-replica-01.f310xz.0001.cache.amazonaws.com 6379 in-sync 完全修飾 DNS 名とポート番号は、出力の CACHENODE 行にあります。 キャッシュノードのエンドポイントおよびポート番号を検索する (ElastiCache API) キャッシュノードのエンドポイントとポート番号を確認するには、DescribeCacheClusters アクションを ShowCacheNodeInfo=true パラメータを指定して使用します。 API Version 2015-02-02 126 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. 101)」を参照してください。 Note 現在のところ、自動検出は Memcached エンジンを実行しているキャッシュクラスターでのみ使 用できます。 Redis クラスター内のノードへの接続 Note 現時点では、レプリケーションとリードレプリカをサポートするクラスター (API/CLI: レプリケー ショングループ) は、Redis を実行するクラスターでのみサポートされます。 クラスターの場合、ElastiCache には個々のノードの接続情報を取得するためのコンソール、CLI、および API インターフェイスが用意されています。 読み取り専用アクティビティの場合、アプリケーションはクラスター内のいずれのノードにも接続できま す。ただし、書き込みアクティビティの場合、アプリケーションから直接ノードに接続する代わりに、ア プリケーションからクラスターのプライマリエンドポイント (Redis (クラスターモードが無効)) または設 定エンドポイント (Redis (クラスターモードが有効)) に接続することをお勧めします。これにより、リー ドレプリカをプライマリロールに昇格させることでクラスターを再設定することにした場合でも、アプリ ケーションは常に正しいノードを見つけることができます。 クラスター内のクラスターへの接続 ((コンソール)) エンドポイントとポート番号を調べるには • トピックを参照してください。Redis (クラスターモードが無効) クラスターのエンドポイントの検索 ((コンソール)) (p. 55) レプリケーショングループのクラスターへの接続 (AWS CLI) キャッシュノードのエンドポイントとポート番号を調べるには レプリケーショングループの名前を指定して、describe-replication-groups コマンドを使用します。 API Version 2015-02-02 127 Amazon ElastiCache ユーザーガイド クライアントの設定 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 6379 NODEGROUPMEMBER my-redis-primary 0001 my-redisprimary.f310xz.0001.cache.amazonaws.com 6379 us-west-2a primary NODEGROUPMEMBER my-replica-1 0001 myreplica-1.f310xz.0001.cache.amazonaws.com 6379 us-west-2b replica available レプリケーショングループのクラスターへの接続 (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> DNS 名と基になっている IP Memcached クライアントと Redis クライアントには、キャッシュデータが保存されているサー バーのアドレスとポートが含まれるサーバーリストが保持されています。ElastiCache を使用する と、DescribeCacheClusters API (または、describe-cache-clusters コマンドラインユーティリティ) によ り、サーバーリストに使用できる完全修飾 DNS エントリとポート番号が返されます。 Important キャッシュノードエンドポイントに接続するときは、クライアントアプリケーションがキャッ シュノードの DNS 名を頻繁に解決するように設定することが重要です。 VPC インストール キャッシュノードが障害から復帰した場合に、キャッシュノードの DNS 名と IP アドレスの両方が同じま まかどうかを ElastiCache が確認します。 非 VPC インストール ElastiCache は、障害発生時にキャッシュノードが復元されても、キャッシュノードの DNS 名が変わらな いようにします。ただし、基になっているキャッシュノードの IP アドレスは変更される可能性がありま す。 API Version 2015-02-02 128 Amazon ElastiCache ユーザーガイド クライアントの設定 ほとんどの Memcached および Redis クライアントライブラリでは、永続的なキャッシュノード接続がデ フォルトでサポートされるため、ElastiCache を使用するときは永続的なキャッシュノード接続の使用を お勧めします。クライアント側の DNS キャッシュが複数の場所 (クライアントライブラリ、言語ランタイ ム、クライアントオペレーティングシステムなど) で行われる場合があります。各レイヤーのアプリケー ション設定を確認して、キャッシュノードの IP アドレスを頻繁に解決するようにしてください。 API Version 2015-02-02 129 Amazon ElastiCache ユーザーガイド シャード (Redis) シャード (API/CLI: ノードグループ) は、1 〜 6 個の Redis ノードで構成されるコレクションです。Redis (クラスターモードが無効) クラスターを構成するシャードは 1 つに限られます。Redis (クラスターモー ドが有効) クラスターは 1 から 15 個のシャードで構成できます。クラスターのデータは、クラスターの シャード間で分割されます。シャードに複数のノードがある場合、1 つを読み書きのプライマリノード、 その他を読み取り専用のレプリカノードとするレプリケーションが実装されます。 ElastiCache コンソールを使用して Redis (クラスターモードが有効) クラスターを作成する際は、クラス ター内のシャード数とシャード内のノード数を指定します。詳細については、「Redis (クラスターモード が有効) クラスターの作成 ((コンソール)) (p. 140)」を参照してください。ElastiCache API または AWS CLI を使用してクラスター (API/CLI ではレプリケーショングループ) を作成する場合は、シャード内の ノード (API/CLI: ノードグループ) の数を個別に設定できます。詳細については、以下を参照してくださ い。 • API: CreateReplicationGroup • CLI: create-replication-group シャード内の各ノードのコンピューティング、ストレージ、メモリの仕様は同じです。ElastiCache API を 使用すると、ノード数、セキュリティ設定、システムメンテナンス時間など、シャード全体の属性を制御 できます。 Redis シャードの構成 API Version 2015-02-02 130 Amazon ElastiCache ユーザーガイド ElastiCache クラスター クラスターは、1 つ以上のキャッシュノードの集合であり、すべてのノードが、サポートされている キャッシュエンジンソフトウェア、Memcached、または Redis のインスタンスを実行します。クラスター の作成時に、すべてのノードで使用するエンジンを指定します。 次の図は、一般的な Memcached と Redis クラスターを説明しています。Memcached クラスターには 1 から 20 のノードがあり、データを水平に分割することができるノードが含まれます。Redis クラスターの シャード (API/CLI: ノードグループ) は 1 から 6 個までのノードで構成できます。Redis (クラスターモード が無効) クラスターは常に 1 つのシャードで構成されます。Redis (クラスターモードが有効) クラスターは 最大 15 のシャードで構成できます。シャードに複数のノードがある場合、1 つのノードは読み取り/書き 込みのプライマリノードです。シャード内の他のすべてのノードは、読み取り専用のレプリカです。 一般的な Memcached と Redis クラスター ElastiCache の多くのオペレーションは、クラスターレベルで実行されます。クラスターは、特定数の キャッシュノードと、各ノードのプロパティを制御するパラメータグループを使用して設定できます。 クラスター内のすべてのノードは、同じノードタイプで、同一のパラメーター設定およびセキュリティグ ループ設定となるように設計されています。 すべてのクラスターにはクラスター識別子が必要です。クラスター識別子は、お客様が指定するクラス ターの名前です。この識別子によって、ElastiCache API コマンドと AWS CLI コマンドを使用して操作す るときに、特定のクラスターを指定します。クラスター識別子は、AWS リージョン内でお客様別に一意で ある必要があります。 ElastiCache は各エンジンの複数のバージョンをサポートします。特定の原因がないかぎり、エンジンの 最新バージョンを必ず使用することをお勧めします。 API Version 2015-02-02 131 Amazon ElastiCache ユーザーガイド Memcached のバージョン Memcached のバージョン • Memcached バージョン 1.4.24 (p. 39) • Memcached バージョン 1.4.14 (p. 40) • Memcached バージョン 1.4.5 (p. 40) Redis のバージョン • Redis バージョン 3.2.4 (拡張) (p. 42) • Redis バージョン 2.8.23 (拡張) (p. 43) • Redis バージョン 2.8.22 (拡張) (p. 43) • Redis バージョン 2.8.19 (p. 44) • Redis バージョン 2.8.6 (p. 44) • Redis バージョン 2.6.13 (p. 44) その他の ElastiCache クラスターオペレーション クラスターに関係する追加のオペレーション: • ElastiCache エンドポイントの検索 (p. 52) • AWS 外部からの ElastiCache リソースへのアクセス (p. 373) トピック • クラスターの作成 (p. 133) • クラスターの詳細を表示する (p. 148) • ElastiCache クラスターの変更 (p. 155) • クラスターの再起動 (p. 158) • クラスターのモニタリング (p. 160) • クラスターへのノードの追加 (p. 160) • クラスターからのノードの削除 (p. 166) • 保留中のノードの追加または削除オペレーションのキャンセル (p. 172) • クラスターの削除 (p. 173) API Version 2015-02-02 132 Amazon ElastiCache ユーザーガイド クラスターの作成 クラスターの作成 Amazon ElastiCache クラスターの起動時に、使用するエンジンとして Memcached または Redis を選択 できます。Redis エンジンには Redis (クラスターモードが無効) と Redis (クラスターモードが有効) の 2 種類があります。どちらのエンジンがニーズに合っているかを確認するには、このガイドの「エンジンと バージョン (p. 34)」を参照してください。 このセクションでは、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してスタンドア ロンクラスターを作成する方法について説明します。 開始する前にこれらの質問の答えを知ることで、クラスター作成の参考になります。 • どのエンジンを使用しますか。 エンジンとエンジンバージョンの比較については、「エンジンとバージョン (p. 34)」を参照してくださ い。 • どのノードインスタンスタイプが必要ですか。 インスタンスのノードタイプを選択する際のガイダンスについては、「ノードサイズの選択 (p. 83)」を 参照してください。 • VPC または Amazon VPC でクラスターを起動しますか。 Important Amazon VPC でクラスターを起動する場合、クラスターの作成を開始する前に同じ VPC でサ ブネットグループを作成する必要があります。詳細については、「サブネットおよびサブネッ トグループ (p. 331)」を参照してください。 Amazon VPC を起動するメリットは、ElastiCache は Amazon EC2 を使って AWS 内からアク セスするように設計されていますが、クラスターが Amazon VPC にあれば、AWS 外部からア クセスを提供できることにあります。詳細については、「AWS 外部からの ElastiCache リソー スへのアクセス (p. 373)」を参照してください。 • パラメーター値をカスタマイズする必要がありますか。 パラメーター値をカスタマイズする場合は、カスタムのパラメータグループを作成する必要がありま す。詳細については、「パラメーターグループを作成する (p. 289)」を参照してください。 Redis を実行する場合は、少なくとも reserved-memory 設定を検討するといいでしょう。詳細について は、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65)」を参照してく ださい。 • 独自のセキュリティグループまたは、VPC セキュリティグループを作成する必要がありますか。 詳細については、「セキュリティグループ [EC2-Classic] (p. 277)」および「VPC のセキュリティ」を 参照してください。 • 耐障害性をどのようにして導入しますか。 詳細については、「障害の軽減 (p. 68)」を参照してください。 トピック • クラスターの作成 ((コンソール)): Memcached (p. 134) • Redis (クラスターモードが無効) クラスターの作成 ((コンソール)) (p. 136) • Redis (クラスターモードが有効) クラスターの作成 ((コンソール)) (p. 140) • キャッシュクラスターの作成 ((AWS CLI)) (p. 144) • キャッシュクラスターの作成 ((ElastiCache API)) (p. 146) API Version 2015-02-02 133 Amazon ElastiCache ユーザーガイド クラスターの作成: Memcached (コンソール) クラスターの作成 ((コンソール)): Memcached Memcached エンジンを使用している場合、Amazon ElastiCache では、複数のノード間でのデータの水平 分割がサポートされます。Memcached によって自動検出が有効になるため、各ノードのエンドポイント を手動で追跡する必要はなくなります。Memcached によって各ノードのエンドポイントは追跡されて、 ノードの追加と削除に応じてエンドポイントのリストが更新されます。アプリケーションとクラスターの やり取りで必要になるのは、設定エンドポイントのみになります。自動検出の詳細については、「ノード の自動検出 (Memcached) (p. 101)」を参照してください。 ElastiCache コンソールを使用して Memcached クラスターを作成するには: 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. [Get Started Now] を選択します。 すでに使用可能なクラスターがある場合は、左のナビゲーションペインから [Memcached] を選択しま す。 3. [Create] を選択します。 4. [Cluster engine] で、[Memcached] を選択します。 5. [Memcached settings] セクションに入力します。 a. [Name] ボックスに、クラスターの名前を入力します。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 b. [Engine version compatibility] で、このクラスターで実行する Memcached エンジンバージョンを 選択します。以前のバージョンを実行する特定の理由がある場合を除いて、最新のバージョンを 選択することをお勧めします。 Important 最新のエンジンバージョンにアップグレードできます。詳細については、「エンジン バージョンのアップグレード (p. 44)」を参照してください。Memcached エンジンバー ジョンの変更は、クラスターのデータを消失する破壊的なプロセスです。 c. [Port] の値は、デフォルトポート (11211) のままにしておきます。理由があって異なるポートを 使用する場合は、そのポート番号を入力します。 d. [Parameter group] で、デフォルトのパラメータグループを選択するか、このクラスターで使用す るパラメータグループを選択します。または、[Create new] を選択して、このクラスターで使用 する新しいパラメータグループを作成します。 パラメータグループはクラスターのランタイムパラメーターを制御します。パラメータグループ の詳細については、「Memcached 固有のパラメータ (p. 302)」および「パラメーターグループ を作成する (p. 289)」を参照してください。 e. [Node type] で、下向き矢印 ( ) をクリックします。[Change node type] ダイアログボックスで、 必要なノードタイプの [Instance family] を選択し、このクラスターで使用するノードタイプを選 択して [Save] を選択します。 詳細については、「ノードサイズの選択 (p. 83)」を参照してください。 f. [Number of Nodes] で、このクラスターに必要なノードの数を選択します。クラスターのノード API Version 2015-02-02 間でデータをパーティション化します。 134 Amazon ElastiCache ユーザーガイド クラスターの作成: Memcached (コンソール) ノード数を後で変更する必要がある場合、水平スケーリングは Memcached を使用すれば非常に 簡単です。詳細については、「Memcached のスケーリング (p. 176)」を参照してください。 6. [Advanced Memcached settings] をクリックし、セクションに入力します。 a. [Subnet group] で、このクラスターに適用するサブネットを選択します。 詳細については、「サブネットおよびサブネットグループ (p. 331)」を参照してください。 b. このクラスターに対して [Availability zone(s)] を選択する方法を指定します。これには 2 つのオプ ションがあります。 • [No preference] – ElastiCache によってクラスターのノードごとにアベイラビリティーゾーンが 選択されます。 • [Specify availability zones] – クラスターのノードごとにアベイラビリティーゾーンを指定しま す。 アベイラビリティーゾーンの指定を選択した場合は、ノードごとにノード名の右にある一覧か らアベイラビリティーゾーンを選択します。 ノードごとに異なるアベイラビリティーゾーンを指定して耐障害性を向上させることをお勧め します。詳細については、「アベイラビリティーゾーンの障害の軽減 (p. 68)」を参照してくだ さい。 詳細については、「リージョンとアベイラビリティーゾーンの選択 (p. 48)」を参照してくださ い。 c. [Security groups] で、このクラスターに適用するセキュリティグループを選択します。 詳細については、「ElastiCache とセキュリティグループ (p. 356)」を参照してください。 d. [Maintenance window] は、ElastiCache がクラスターのシステムメンテナンスを毎週スケジュー ルする時間の長さ (通常は 1 時間単位) です。ElastiCache がメンテナンスの日時を選択するこ とを許可するか ([No preference])、自分で日時と期間を選択できます ([Specify maintenance window])。[Specify maintenance window] を選択した場合は、リストからメンテナンス期間の [Start day]、[Start time]、および [Duration] (時間単位) を選択します。すべての時刻は協定世界時 (UCT) です。 詳細については、「メンテナンスウィンドウ (p. 46)」を参照してください。 e. 7. [Notifications] で、既存の Amazon Simple Notification Service (Amazon SNS) トピックを選択 するか、[Manual ARN input] を選択してトピックの Amazon リソースネーム (ARN) を入力しま す。Amazon SNS では、インターネットに接続されたスマートデバイスに通知をプッシュでき ます。デフォルトでは、通知は無効になります。詳細については、「https://aws.amazon.com/ sns/」を参照してください。 すべてのエントリと選択を確認し、戻って必要な修正を加えます。すべてが目的どおりになったら、 [Create] を選択してクラスターを起動します。 クラスターのステータスが [available] になり次第、Amazon EC2 にアクセス権を付与して接続し、使用を 開始できます。詳細については、「ステップ 4: アクセスを許可する (p. 26)」および「ステップ 5: クラス ターのノードに接続する (p. 28)」を参照してください。 Important クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用してい ない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、 クラスターを削除する必要があります。「クラスターの削除 (p. 173)」を参照してください。 API Version 2015-02-02 135 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが無効) ク ラスターの作成 ((コンソール)) Redis (クラスターモードが無効) クラスターの作成 ((コンソール)) ElastiCache は、Redis エンジンを使用する場合にレプリケーションをサポートします。データが Redis 読み取り/書き込みプライマリクラスターに書き込まれるときと、読み取り専用セカンダリクラ スターに伝達されるときのレイテンシーをモニタリングするため、ElastiCache によって特殊なキー ElastiCacheMasterReplicationTimestamp (現在の UCT 時間) がクラスターに追加されます。Redis クラ スターが後でレプリケーショングループに追加される可能性があるため、このキーは、最初はレプリケー ショングループのメンバーではない Redis クラスターであっても、すべての Redis クラスターに含まれま す。レプリケーショングループの詳細については、「ElastiCache レプリケーション (Redis) (p. 199)」 を参照してください。 スタンドアロン Redis (クラスターモードが無効) クラスターを作成するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. [Get Started Now] を選択します。 すでに使用可能なクラスターがある場合は、左のナビゲーションペインから [Redis] を選択します。 3. [Create] を選択します。 4. [Cluster engine] で、[Redis] を選択し、[Cluster Mode enabled (Scale Out)] チェックボックスをオフに します。 5. [Redis settings] セクションに入力します。 a. [Name] ボックスに、クラスターの名前を入力します。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 b. [Engine version compatibility] で、このクラスターで実行する Redis エンジンバージョンを選択し ます。以前のバージョンを実行する特定の理由がある場合を除いて、最新のバージョンを選択す ることをお勧めします。 Important より新しいバージョンのエンジンにはアップグレードできますが (「エンジンバージョン のアップグレード (p. 44)」を参照)、既存のクラスターを削除して新しく作成し直さない 限り、以前のバージョンのエンジンにはダウングレードできません。 新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供しているた め、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache コンソールから廃止されまし た。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必要がある場合は、AWS CLI または ElastiCache API を使用できます。 詳細については、以下のトピックを参照してください。 クラスターの作成 AWS AWS CLI キャッシュクラスターの作成 ((AWS CLI)) (p. 144) API Version 2015-02-02 136 ElastiCache API キャッシュクラスターの作成 ((ElastiCache API)) (p. 146) Amazon ElastiCache ユーザーガイド Redis (クラスターモードが無効) ク ラスターの作成 ((コンソール)) AWS AWS CLI ElastiCache API クラスターの変更 キャッシュクラスターの変更 ((AWS CLI)) (p. 156) キャッシュクラスターの変更 ((ElastiCache API)) (p. 157) レプリケーショングループの 作成 ゼロからの Redis (クラスター モードが無効) レプリケー ショングループの作成 ((AWS CLI)) (p. 218) ゼロからの Redis (クラス ターモードが無効) レプリ ケーショングループの作成 ((ElastiCache API)) (p. 220) ゼロからの Redis (クラスター モードが有効) レプリケー ショングループの作成 ((AWS CLI)) (p. 224) ゼロからの Redis (クラス ターモードが有効) レプリ ケーショングループの作成 ((ElastiCache API)) (p. 228) レプリケーショングループの 変更 ((AWS CLI)) (p. 237) レプリケーショングルー プの変更 ((ElastiCache API)) (p. 237) レプリケーショングループの 変更 Redis (クラスターモードが有効) クラスターまたはレプリケーショングループの作成に使用す ることはできません。 Redis (クラスターモードが有効) クラスターまたはレプリケーショングループの変更に使用す ることはできません。 c. [Port] の値は、デフォルトポート (6379) のままにしておきます。理由があって異なるポートを使 用する場合は、そのポート番号を入力します。 d. [Parameter group] で、このクラスターで使用するパラメータグループを選択するか、[Create new] を選択して、このクラスターで使用する新しいパラメータグループを作成します。 パラメータグループはクラスターのランタイムパラメーターを制御します。パラメータグループ の詳細については、「Redis 固有のパラメータ (p. 313)」および「パラメーターグループを作成 する (p. 289)」を参照してください。 e. [Node type] で、下向き矢印 ( ) をクリックします。[Change node type] ダイアログボックスで、 必要なノードタイプの [Instance family] を選択し、このクラスターで使用するノードタイプを選 択して [Save] を選択します。 詳細については、「ノードサイズの選択 (p. 83)」を参照してください。 f. [Number of replicas] で、このクラスターに必要なリードレプリカの数を選択します。 [None] を選択すると、[description] フィールドと [Multi-AZ with Auto-Failover] フィールドが消 え、クラスターは次のように表示されます。 レプリカノードを選択しないで作成した Redis (クラスターモードが無効) クラスター 1 つまたは複数のレプリカを選択した場合、作成したクラスターは次のように表示されます。 API Version 2015-02-02 137 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが無効) ク ラスターの作成 ((コンソール)) レプリカノードを選択して作成した Redis (クラスターモードが無効) クラスター 6. [Advanced Redis settings] を選択し、セクションに入力します。 a. 1 つまたは複数のレプリカを選択すると、[Multi-AZ with Auto-Failover] が使用可能になります。 [Multi-AZ with Auto-Failover] を使用することを強くお勧めします。詳細については、「Redis 実 行時の障害の軽減 (p. 69)」を参照してください。 b. [Subnet group] で、このクラスターに適用するサブネットを選択します。 詳細については、「サブネットおよびサブネットグループ (p. 331)」を参照してください。 c. このクラスターに対して [Availability zone(s)] を選択する方法を指定します。これには 2 つのオプ ションがあります。 • [No preference] – ElastiCache によってクラスターのノードのアベイラビリティーゾーンが選択 されます。 • [Specify availability zones] – ノードが一覧表示され、ノード名の右にあるリストからアベイラ ビリティーゾーンを選択して、クラスターのノードごとにアベイラビリティーゾーンを指定で きます。 詳細については、「リージョンとアベイラビリティーゾーンの選択 (p. 48)」を参照してくださ い。 d. [Security groups] で、このクラスターに必要なセキュリティグループを選択します。 詳細については、「ElastiCache とセキュリティグループ (p. 356)」を参照してください。 e. .RDB ファイルからクラスターにデータをシードする場合は、[Seed RDB file S3 location] ボック スに .RDB ファイルの Amazon S3 の場所を入力します。 詳細については、「Using a Backup to Seed a Cluster (p. 271)」を参照してください。 f. 自動バックアップを定期的にスケジュールする場合は、[Enable automatic backups] を選択し、さ らに自動バックアップを保持して自動的に削除するまでの日数を入力します。自動バックアップ を定期的にスケジュールしない場合は、[Enable automatic backups] チェックボックスをオフにし ます。どちらの場合でも、手動バックアップを作成して手動で削除するオプションを常に利用で きます。 Redis のバックアップと復元の詳細については、「ElastiCache バックアップと復元 (Redis) (p. 246)」を参照してください。 g. [Maintenance window] は、ElastiCache がクラスターのシステムメンテナンスを毎週スケジュー ルする時間の長さ (通常は 1 時間単位) です。ElastiCache がメンテナンスの日時を選択するこ とを許可するか ([No preference])、自分で日時と期間を選択できます ([Specify maintenance window])。[Specify maintenance window] を選択した場合は、リストからメンテナンス期間の [Start day]、[Start time]、および [Duration] (時間単位) を選択します。すべての時刻は協定世界時 (UCT) です。 API Version 2015-02-02 138 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが無効) ク ラスターの作成 ((コンソール)) 詳細については、「メンテナンスウィンドウ (p. 46)」を参照してください。 h. 7. [Notifications] で、既存の Amazon Simple Notification Service (Amazon SNS) トピックを選択 するか、[Manual ARN input] を選択してトピックの Amazon リソースネーム (ARN) を入力し ます。Amazon SNS では、インターネットに接続されたスマートデバイスに通知をプッシュ することができます。デフォルトでは、通知は無効になります。詳細については、「https:// aws.amazon.com/sns/」を参照してください。 すべてのエントリと選択を確認し、戻って必要な修正を加えます。すべてが目的どおりになったら、 [Create] を選択してクラスターを起動します。 クラスターのステータスが [available] になり次第、Amazon EC2 にアクセス権を付与して接続し、使用を 開始できます。詳細については、「ステップ 4: アクセスを許可する (p. 26)」および「ステップ 5: クラス ターのノードに接続する (p. 28)」を参照してください。 Important クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用してい ない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、 クラスターを削除する必要があります。「クラスターの削除 (p. 173)」を参照してください。 API Version 2015-02-02 139 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが有効) ク ラスターの作成 ((コンソール)) Redis (クラスターモードが有効) クラスターの作成 ((コンソール)) Redis 3.2.4 以降を実行している場合は、Redis (クラスターモードが有効) クラスターを作成できま す。Redis (クラスターモードが有効) クラスターでは、1 から 15 までのシャード (API/CLI: ノードグ ループ) にデータを分割できます。ただし、現段階ではいくつかの制限があります。Redis (クラスター モードが無効) と 2 種類の Redis (クラスターモードが有効) の比較については、「エンジンの選択: Memcached、Redis (クラスターモードが無効)、または Redis (クラスターモードが有効) (p. 35)」を参照 してください。 Redis (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) は、ElastiCache マネジ メントコンソール、ElastiCache 用 AWS CLI、ElastiCache API を使用して作成できます。 ElastiCache コンソールを使用して Redis (クラスターモードが有効) クラスターを作成するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. [Get Started Now] を選択します。 すでに使用可能なクラスターがある場合は、左のナビゲーションペインから [Redis] を選択します。 3. [Create] を選択します。 4. [Cluster engine] で、[Redis] を選択し、[Cluster Mode enabled (Scale Out)] を選択します。 5. [Redis (クラスターモードが有効) settings] セクションに入力します。 a. [Name] ボックスに、クラスターの名前を入力します。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 b. [Description] ボックスに、このクラスターの説明を入力します。 c. [Major Engine Version] で、[3.2.4] を選択します。 d. [Port] ボックスは、デフォルトポート (6379) のままにしておきます。理由があって異なるポート を使用する場合は、そのポート番号を入力します。 e. [Parameter group] で、このクラスターで使用するパラメータグループを選択するか、[Create new] を選択して、このクラスターで使用する新しいパラメータグループを作成します。 パラメータグループはクラスターのランタイムパラメーターを制御します。パラメータグループ の詳細については、「Redis 固有のパラメータ (p. 313)」および「パラメーターグループを作成 する (p. 289)」を参照してください。 f. [Node type] で、下向き矢印 ( ) を選択します。[Change node type] ダイアログボックスで、必要 なノードタイプの [Instance family] を選択し、このクラスターで使用するノードタイプを選択し て [Save] を選択します。 詳細については、「ノードサイズの選択 (p. 83)」を参照してください。 g. [Number of shards] で、この Redis (クラスターモードが有効) クラスターに必要なシャード (パー ティション) の数を選択します。 Redis (クラスターモードが有効) では、クラスターを作成すると、シャード数が固定されて変更 できなくなります。シャード数を増減する必要がある場合は、新しいシャード数を指定して新し いクラスターを作成する必要があります。Redis (クラスターモードが有効) では、新しいクラス API Version 2015-02-02 140 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが有効) ク ラスターの作成 ((コンソール)) ターのシャード数が既存のクラスターのシャード数と異なる場合、古いクラスターの .RDB ファ イルで新しいクラスターをシードすることはできません。 h. [Replicas per shard] で、各シャードに必要なリードレプリカのノード数を選択します。 Redis (クラスターモードが有効) には次の制約があります。 • コンソールを使用してクラスターを作成する場合、シャードごとのレプリカ数は同じになりま す。 • シャードあたりのリードレプリカ数は固定され、変更できません。ノードグループあたりのレ プリカ数を増減する必要がある場合は、新しい数のレプリカで新しいクラスターを作成する必 要があります。新しいクラスターのノードグループの数が古いクラスターと同じである限り、 古いクラスターの .RDB ファイルを使用して新しいクラスターをシードすることができます。 詳細については、「Using a Backup to Seed a Cluster (p. 271)」を参照してください。 i. [Subnet group] で、このクラスターに適用するサブネットを選択します。 詳細については、「サブネットおよびサブネットグループ (p. 331)」を参照してください。 6. [Advanced Redis settings] をクリックし、セクションに入力します。 a. [Slots and keyspaces] で、シャード (パーティション) にキーを分散する方法を選択します。分散 するキーが 16,384 個あります (0 から 16,383 までの番号が付けられます)。 • [Equal distribution] – ElastiCache は可能な限り均等にシャード間にキースペースを分散しま す。 • [Custom distribution] – [Availability zone(s)] の下の表で各シャードのキーの範囲を指定します。 b. このクラスターに対して [Availability zone(s)] を選択する方法を指定します。これには 2 つのオプ ションがあります。 • [No preference] – ElastiCache がアベイラビリティーゾーンを選択します。 • Specify availability zones – 各クラスターに対するアベイラビリティーゾーンを指定します。 アベイラビリティーゾーンの指定を選択した場合、クラスターのシャードごとに一覧からアベ イラビリティーゾーンを選択します。 詳細については、「リージョンとアベイラビリティーゾーンの選択 (p. 48)」を参照してくださ い。 API Version 2015-02-02 141 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが有効) ク ラスターの作成 ((コンソール)) キースペースとアベイラビリティーゾーンの指定 c. [Security groups] で、このクラスターに必要なセキュリティグループを選択します。 詳細については、「ElastiCache とセキュリティグループ (p. 356)」を参照してください。 d. .RDB ファイルからクラスターにデータをシードする場合は、[Seed RDB file S3 location] ボック スに .RDB ファイルの S3 の場所を入力します。 詳細については、「Using a Backup to Seed a Cluster (p. 271)」を参照してください。 Redis (クラスターモードが有効) では、ノードグループごとに個別の .RDB ファイルが必要で す。 e. 自動バックアップを定期的にスケジュールする場合は、[Enable automatic backups] を選択し、さ らに各自動バックアップを保持して自動的に削除するまでの日数を入力します。自動バックアッ プを定期的にスケジュールしない場合は、[Enable automatic backups] チェックボックスをオフに します。いずれの場合も、常に手動バックアップを作成するオプションがあります。 Redis のバックアップと復元の詳細については、「ElastiCache バックアップと復元 (Redis) (p. 246)」を参照してください。 f. [Maintenance window] は、ElastiCache がクラスターのシステムメンテナンスを毎週スケジュー ルする時間の長さ (通常は 1 時間単位) です。ElastiCache がメンテナンスの日時を選択するこ とを許可するか ([No preference])、自分で日時と期間を選択できます ([Specify maintenance window])。[Specify maintenance window] を選択した場合は、リストからメンテナンス期間の [Start day]、[Start time]、および [Duration] (時間単位) を選択します。すべての時刻は協定世界時 (UCT) です。 詳細については、「メンテナンスウィンドウ (p. 46)」を参照してください。 g. 7. [Notifications] で、既存の Amazon Simple Notification Service (Amazon SNS) トピックを選択 するか、[Manual ARN input] を選択してトピックの Amazon リソースネーム (ARN) を入力しま す。Amazon SNS では、インターネットに接続されたスマートデバイスに通知をプッシュでき ます。デフォルトでは、通知は無効になります。詳細については、「https://aws.amazon.com/ sns/」を参照してください。 すべてのエントリと選択を確認し、戻って必要な修正を加えます。すべてが目的どおりになったら、 [Create cluster] を選択してクラスターを起動します。または、[Cancel] を選択してオペレーションを キャンセルします。 ElastiCache コンソールではなく ElastiCache API または AWS CLI を使用して同じものを作成するには、 以下を参照してください。 API Version 2015-02-02 142 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが有効) ク ラスターの作成 ((コンソール)) • API: CreateReplicationGroup • CLI: create-replication-group クラスターのステータスが [available] になり次第、EC2 にアクセス権を付与して接続し、使用を開始で きます。詳細については、「ステップ 4: アクセスを許可する (p. 26)」および「ステップ 5: クラスターの ノードに接続する (p. 28)」を参照してください。 Important クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用してい ない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、 クラスターを削除する必要があります。「クラスターの削除 (p. 173)」を参照してください。 API Version 2015-02-02 143 Amazon ElastiCache ユーザーガイド クラスター (CLI) の作成 キャッシュクラスターの作成 ((AWS CLI)) AWS CLI を使用してクラスターを作成するには、create-cache-cluster コマンドを使用します。次の例 では、my-redis-cluster という名前の単一ノード Redis (クラスターモードが有効) クラスターを作成し、ス ナップショットファイル snap.rdb (Amazon S3 にコピーされた) を初期データ値として投入します。 レプリケーションをサポートする Redis クラスターが必要な場合は、「ゼロからの Redis (クラスターモー ドが無効) レプリケーショングループの作成 ((AWS CLI)) (p. 218)」を参照してください。 Important クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用してい ない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、 クラスターを削除する必要があります。「クラスターの削除 (p. 173)」を参照してください。 トピック • Memcached キャッシュクラスターの作成 ((AWS CLI)) (p. 144) • Redis (クラスターモードが無効) キャッシュクラスターの作成 ((AWS CLI)) (p. 144) • Redis (クラスターモードが有効) クラスターの作成 ((AWS CLI)) (p. 145) Memcached キャッシュクラスターの作成 ((AWS CLI)) 次の CLI コードでは、Memcached キャッシュクラスターを作成します。 Linux, macOS, or Unix 用: aws elasticache create-cache-cluster \ --cache-cluster-id my-memcached-cluster \ --cache-node-type cache.m4.large \ --engine memcached \ --engine-version 1.4.24 \ --cache-parameter-group default.memcached1.4 \ --num-cache-nodes 3 Windows の場合: aws elasticache create-cache-cluster ^ --cache-cluster-id my-memcached-cluster ^ --cache-node-type cache.m4.large ^ --engine memcached ^ --engine-version 1.4.24 ^ --cache-parameter-group default.memcached1.4 ^ --num-cache-nodes 3 Redis (クラスターモードが無効) キャッシュクラスターの作成 ((AWS CLI)) Example Redis (クラスターモードが無効) クラスター 次の CLI コードでは、Redis (クラスターモードが無効) キャッシュクラスターを作成します。 Linux, macOS, or Unix 用: aws elasticache create-cache-cluster \ --cache-cluster-id my-redis3-cluster \ API Version 2015-02-02 144 Amazon ElastiCache ユーザーガイド クラスター (CLI) の作成 --cache-node-type cache.m4.large \ --engine redis \ --engine-version 3.2.4 \ --num-cache-nodes 1 \ --cache-parameter-group default.redis3.2 \ --snapshot-arns arn:aws:s3:myS3Bucket/snap.rdb Windows の場合: aws elasticache create-cache-cluster ^ --cache-cluster-id my-redis3-cluster ^ --cache-node-type cache.m4.large ^ --engine redis ^ --engine-version 3.2.4 ^ --num-cache-nodes 1 ^ --cache-parameter-group default.redis3.2 ^ --snapshot-arns arn:aws:s3:myS3Bucket/snap.rdb Redis (クラスターモードが有効) クラスターの作成 ((AWS CLI)) create-cache-cluster オペレーションを用いて、Redis (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) を作成することはできません。Redis (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) を作成するには、「ゼロからの Redis (クラスターモードが有効) レ プリケーショングループの作成 ((AWS CLI)) (p. 224)」を参照してください。 詳細については、AWS CLI の「ElastiCache リファレンストピック「create-replication-group」のを参 照してください。 API Version 2015-02-02 145 Amazon ElastiCache ユーザーガイド クラスター (API) の作成 キャッシュクラスターの作成 ((ElastiCache API)) ElastiCache API を使用してクラスターを作成するには、CreateCacheCluster アクションを使用します。 次の例では、my-redis-cluster という名前の単一ノード Redis クラスターを作成し、スナップショットファ イル dump.rdb (Amazon S3 にコピーされた) を初期データ値として投入します。 レプリケーションをサポートする Redis クラスターが必要な場合は、「ゼロからの Redis (クラスターモー ドが無効) レプリケーショングループの作成 ((ElastiCache API)) (p. 220)」を参照してください。 Important クラスターが使用可能になった直後から、そのクラスターがアクティブである間は (クラスターを 使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止 するには、クラスターを削除する必要があります。「クラスターの削除 (p. 173)」を参照してく ださい。 トピック • Memcached キャッシュクラスターの作成 ((ElastiCache API)) (p. 146) • Redis (クラスターモードが無効) キャッシュクラスターの作成 ((ElastiCache API)) (p. 146) • Redis (クラスターモードが有効) キャッシュクラスターの作成 ((ElastiCache API)) (p. 147) Memcached キャッシュクラスターの作成 ((ElastiCache API)) 次のコードでは、Memcached キャッシュクラスター ((ElastiCache API)) を作成します。 次のコード例の改行が読み込みのために追加されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateCacheCluster &CacheClusterId=myMemcachedCluster &CacheNodeType=cache.m4.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> Redis (クラスターモードが無効) キャッシュクラスターの作成 ((ElastiCache API)) 次のコードでは、Redis (クラスターモードが無効) キャッシュクラスター ((ElastiCache API)) を作成 しま す。 次のコード例の改行が読み込みのために追加されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateCacheCluster &CacheClusterId=my-redis2-cluster API Version 2015-02-02 146 Amazon ElastiCache ユーザーガイド クラスター (API) の作成 &CacheNodeType=cache.m4.large &CacheParameterGroup=default &Engine=redis &EngineVersion=3.2.4 &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> Redis (クラスターモードが有効) キャッシュクラスターの作成 ((ElastiCache API)) CreateCacheCluster オペレーションを用いて、Redis (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) を作成することはできません。Redis (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) を作成するには、「ゼロからの Redis (クラスターモードが有効) レ プリケーショングループの作成 ((ElastiCache API)) (p. 228)」を参照してください。 詳細については、ElastiCache API リファレンストピック「CreateReplicationGroup」を参照してくださ い。 API Version 2015-02-02 147 Amazon ElastiCache ユーザーガイド クラスターの詳細を表示する クラスターの詳細を表示する ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、1 つ以上のクラスターについて の詳細を表示できます。 トピック • クラスターの詳細を表示する: Memcached (コンソール) (p. 148) • Redis (クラスターモードが無効) クラスターの詳細の表示 ((コンソール)) (p. 150) • Redis (クラスターモードが有効) クラスターの詳細の表示 ((コンソール)) (p. 151) • クラスターの詳細の表示 ((AWS CLI)) (p. 152) • クラスターの詳細の表示 ((ElastiCache API)) (p. 154) クラスターの詳細を表示する: Memcached (コンソー ル) ElastiCache コンソール、ElastiCache 用 AWS CLI、または ElastiCache API を使用して、Memcached ク ラスターの詳細を表示できます。 次の手順は、ElastiCache コンソールを使用して Memcached クラスターの詳細を表示する方法を示して います。 Memcached クラスターの詳細を表示するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. ElastiCache コンソールダッシュボードで、[Memcached] を選択します。任意のバージョンの Memcached を実行しているすべてのクラスターの一覧が表示されます。 3. クラスターの詳細を表示するには、クラスター名の左側にあるボックスを選択します。 4. ノード情報を表示するには a. クラスターの名前を選択します。 b. [Nodes] タブを選択します。 c. 1 つまたは複数のノードのメトリクスを表示するには、ノード ID の左側のボックスを選択し、 [Time range] からメトリクスの時間範囲を選択します。複数のノードを選択すると、オーバーレ イグラフが生成されます。 API Version 2015-02-02 148 Amazon ElastiCache ユーザーガイド クラスターの詳細を表示する: Memcached (コンソール) 2 つの Memcached ノードに関する過去 1 時間のメトリクス API Version 2015-02-02 149 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが無効) ク ラスターの詳細の表示 ((コンソール)) Redis (クラスターモードが無効) クラスターの詳細の 表示 ((コンソール)) ElastiCache コンソール、ElastiCache 用 AWS CLI、または ElastiCache API を使用して、Redis (クラス ターモードが無効) クラスターの詳細を確認できます。 次の手順では、ElastiCache コンソールを使用して Redis (クラスターモードが無効) クラスターの詳細を 表示する方法を示します。 Redis (クラスターモードが無効) クラスターの詳細を表示するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. ElastiCache コンソールのダッシュボードで [Redis] を選択し、いずれかのバージョンの Redis を実行 しているすべてのクラスターを一覧表示します。 3. クラスターの詳細を表示するには、クラスター名の左側にあるボックスを選択します。クラスター化 された Redis ではなく、Redis エンジンを実行しているクラスターを必ず選択してください。これに より、クラスターのプライマリエンドポイントを含む、クラスターの詳細が表示されます。 4. ノード情報を表示するには a. クラスターの名前を選択します。 b. [Nodes] タブを選択します。これにより、クラスターから読み込むために使用する必要がある ノードのエンドポイントを含む、各ノードの詳細が表示されます。 c. 1 つまたは複数のノードのメトリクスを表示するには、ノード ID の左側のボックスを選択し、 [Time range] からメトリクスの時間範囲を選択します。複数のノードを選択すると、オーバーレ イグラフが表示されます。 2 つの Redis ノードに関する過去 1 時間のメトリクス API Version 2015-02-02 150 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが有効) ク ラスターの詳細の表示 ((コンソール)) Redis (クラスターモードが有効) クラスターの詳細の 表示 ((コンソール)) ElastiCache コンソール、ElastiCache 用 AWS CLI、または ElastiCache API を使用して、Redis (クラス ターモードが有効) クラスターの詳細を確認できます。 次の手順では、ElastiCache コンソールを使用して Redis (クラスターモードが有効) クラスターの詳細を 表示する方法を示します。 Redis (クラスターモードが有効) クラスターの詳細を表示するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. ElastiCache コンソールのダッシュボードで [Redis] を選択し、いずれかのバージョンの Redis を実行 しているすべてのクラスターを一覧表示します。 3. Redis (クラスターモードが有効) クラスターの詳細を表示するには、クラスター名の左側にあるボッ クスを選択します。単なる Redis ではなく、Clusterd Redis エンジンを実行しているクラスターを必 ず選択してください。 クラスターの下の画面が展開され、クラスターに関する詳細 (クラスターの設定エンドポイントなど) が表示されます。 4. クラスター内のシャード数とシャードごとのノード数を一覧表示するには、クラスターの名前を選択 します。 5. ノード固有の情報を表示するには a. シャードの ID を選択します。 b. [Nodes] タブを選択します。 各ノードについて、クラスターからデータを読み取るために必要な各ノードのエンドポイントな どの情報が表示されます。 c. 1 つまたは複数のノードのメトリクスを表示するには、ノード ID の左側のボックスを選択し、 [Time range] からメトリクスの時間範囲を選択します。複数のノードを選択すると、オーバーレ イグラフが生成されます。 API Version 2015-02-02 151 Amazon ElastiCache ユーザーガイド クラスターの詳細の表示 ((AWS CLI)) 2 つの Redis ノードに関する過去 1 時間のメトリクス クラスターの詳細の表示 ((AWS CLI)) AWS CLI describe-cache-clusters コマンドを使用してクラスターの詳細を表示できます。--cachecluster-id パラメーターを省略すると、最大で --max-items のクラスターの詳細が返されます。-cache-cluster-id パラメーターが含まれる場合は、指定したクラスターの詳細が返されます。--maxitems パラメーターで返されるレコード数を制限できます。 次のコードは myCluster の詳細を一覧します。 aws elasticache describe-cache-clusters --cache-cluster-id myCluster 次のコードは最大で 25 のクラスターの詳細を一覧します。 aws elasticache describe-cache-clusters --max-items 25 以下の例のように、describe-cache-cluster コマンドを使用してクラスターのノードのリストを表示し ます。削除するノードの識別子を書き留めてください。 Linux, macOS, or Unix 用: aws elasticache describe-cache-clusters \ --cache-cluster-id my-memcached-cluster \ --show-cache-node-info Windows の場合: aws elasticache describe-cache-clusters ^ API Version 2015-02-02 152 Amazon ElastiCache ユーザーガイド クラスターの詳細の表示 ((AWS CLI)) --cache-cluster-id my-memcached-cluster ^ --show-cache-node-info このオペレーションでは、以下のような (JSON 形式の) 出力が生成されます。 { "CacheClusters": [ { "Engine": "memcached", "CacheNodes": [ { "CacheNodeId": "0001", "Endpoint": { "Port": 11211, "Address": "my-memcached-cluster.7efexample.0001.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", "CustomerAvailabilityZone": "us-west-2b" }, { "CacheNodeId": "0002", "Endpoint": { "Port": 11211, "Address": "my-memcached-cluster.7efexample.0002.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", "CustomerAvailabilityZone": "us-west-2b" }, { "CacheNodeId": "0003", "Endpoint": { "Port": 11211, "Address": "my-memcached-cluster.7efexample.0003.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", "CustomerAvailabilityZone": "us-west-2b" } ], "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.memcached1.4", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "my-memcached-cluster", "PreferredAvailabilityZone": "us-west-2b", "ConfigurationEndpoint": { "Port": 11211, "Address": "my-memcached-cluster.7ef-example.cfg.usw2.cache.amazonaws.com" }, "CacheSecurityGroups": [], "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "available", "NumCacheNodes": 3, "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/ home#client-download:", API Version 2015-02-02 153 Amazon ElastiCache ユーザーガイド クラスターの詳細の表示 ((ElastiCache API)) "SecurityGroups": [ { "Status": "active", "SecurityGroupId": "sg-dbe93fa2" } ], "CacheSubnetGroupName": "default", "EngineVersion": "1.4.24", "PendingModifiedValues": {}, "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", "CacheNodeType": "cache.m3.medium" } ] } 詳細については、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 &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 154 Amazon ElastiCache ユーザーガイド クラスターの変更 ElastiCache クラスターの変更 クラスターへのノードの追加またはクラスターからのノードの削除以外にも、セキュリティグループの追 加、メンテナンスウィンドウやパラメータグループの変更など、既存のクラスターに変更をかける必要が ある場合があります。 メンテナンスウィンドウは使用率の最も低い時間帯に設定することをお勧めします。このため、場合に よっては変更が必要になります。 クラスターのパラメータグループの変更、またはクラスターのパラメータグループのパラメーター値の変 更によるクラスターのパラメーターの変更は、クラスターが再起動された後に適用されます。 クラスターの変更 ((コンソール)) クラスターを変更するには ((console)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [Redis または [Memcached] を選択します。 3. 4. 選択したエンジンのクラスターが一覧表示されます。 クラスターの一覧で、変更するクラスターの名前を選択します。Redis (クラスターモードが有効) ク ラスターで変更できるのは、セキュリティグループ、説明、パラメータグループ、バックアップオプ ション、メンテナンス期間、および SNS 通知に限られます。 [Modify] を選択します。 [Modify Cluster] ウィンドウが表示されます。 5. [Modify Cluster] ウィンドウで、必要な変更を加えます。 Important より新しいバージョンのエンジンにはアップグレードできますが (「エンジンバージョンの アップグレード (p. 44)」を参照)、既存のクラスターを削除して新しく作成し直さない限り、 以前のバージョンのエンジンにはダウングレードできません。 新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供しているた め、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache コンソールから廃止されました。 お勧めしませんが、以前のいずれかの Redis バージョンを使用する必要がある場合は、AWS CLI また は ElastiCache API を使用できます。 詳細については、以下のトピックを参照してください。 AWS AWS CLI ElastiCache API クラスターの作成 キャッシュクラスターの作成 ((AWS CLI)) (p. 144) キャッシュクラスターの作成 ((ElastiCache API)) (p. 146) クラスターの変更 キャッシュクラスターの変更 ((AWS CLI)) (p. 156) キャッシュクラスターの変更 ((ElastiCache API)) (p. 157) レプリケーショングループの作 成 ゼロからの Redis (クラスター モードが無効) レプリケー ショングループの作成 ((AWS CLI)) (p. 218) ゼロからの Redis (クラスター モードが無効) レプリケーショ ングループの作成 ((ElastiCache API)) (p. 220) ゼロからの Redis (クラスター モードが有効) レプリケー ゼロからの Redis (クラスター モードが有効) レプリケーショ API Version 2015-02-02 155 Amazon ElastiCache ユーザーガイド キャッシュクラスターの変更 ((AWS CLI)) レプリケーショングループの変 更 AWS AWS CLI ElastiCache API ショングループの作成 ((AWS CLI)) (p. 224) ングループの作成 ((ElastiCache API)) (p. 228) レプリケーショングループの変 更 ((AWS CLI)) (p. 237) レプリケーショングルー プの変更 ((ElastiCache API)) (p. 237) Redis (クラスターモードが有効) クラスターまたはレプリケーショングループの作成に使用するこ とはできません。 Redis (クラスターモードが有効) クラスターまたはレプリケーショングループの変更に使用するこ とはできません。 [Apply Immediately] チェックボックスはノードタイプとエンジンバージョンの変更にのみ適用されま す。いずれの変更もすぐに適用する場合は、[Apply Immediately] チェックボックスをオンにします。 このチェックボックスがオフになっている場合、エンジンバージョンとノードタイプの変更は次のメ ンテナンス期間中に適用されます。その他の変更 (メンテナンス期間の変更など) はすぐに適用されま す。 6. [Modify] を選択します。 キャッシュクラスターの変更 ((AWS CLI)) AWS CLI modify-cache-cluster オペレーションを使用して既存のクラスターを変更できます。クラス ターの設定値を変更するには、クラスターの ID、変更するパラメーター、パラメーターの新しい値を指定 します。次の例では、myCluster という名前のクラスターのメンテナンスウィンドウを変更し、変更内容 を直ちに適用します。 Important より新しいエンジンバージョンにアップグレードできますが (「エンジンバージョンのアップグ レード (p. 44)」を参照)、既存のキャッシュクラスターまたはレプリケーショングループを削除し て新たにそれを作成しない限り、以前のエンジンバージョンにダウングレードすることはできま せん。 Linux, macOS, or Unix 用: aws elasticache modify-cache-cluster \ --cache-cluster-id myCluster \ --preferred-maintenance-window sun:23:00-mon:02:00 Windows の場合: aws elasticache modify-cache-cluster ^ --cache-cluster-id myCluster ^ --preferred-maintenance-window sun:23:00-mon:02:00 --apply-immediately パラメーターは、ノードタイプとエンジンバージョンの変更、 クラスターのノー ド数の変更にのみ適用されます。これらの変更のいずれもすぐに適用する場合は、--apply-immediately パラメーターを使用します。これらの変更を次のメンテナンス期間に延期する場合は、--no-applyimmediately パラメーターを使用します。その他の変更 (メンテナンス期間の変更など) はすぐに適用され ます。 詳細については、AWS CLI の ElastiCache トピック「modify-cache-cluster」を参照してください。 API Version 2015-02-02 156 Amazon ElastiCache ユーザーガイド キャッシュクラスターの変更 ((ElastiCache API)) キャッシュクラスターの変更 ((ElastiCache API)) ElastiCache API ModifyCacheCluster オペレーションを使用して既存のクラスターを変更できます。クラ スターの設定値を変更するには、クラスターの ID、変更するパラメーター、パラメーターの新しい値を指 定します。次の例では、myCluster という名前のクラスターのメンテナンスウィンドウを変更し、変更内 容を直ちに適用します。 Important より新しいエンジンバージョンにアップグレードできますが (「エンジンバージョンのアップグ レード (p. 44)」を参照)、既存のキャッシュクラスターまたはレプリケーショングループを削除し て新たにそれを作成しない限り、以前のエンジンバージョンにダウングレードすることはできま せん。 次のコード例の改行が読み込みのために追加されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &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> ApplyImmediately パラメーターは、ノードタイプとエンジンバージョンの変更、 クラスターのノー ド数の変更にのみ適用されます。これらの変更のいずれもすぐに適用する場合は、ApplyImmediately パラメーターを true に設定します。これらの変更を次のメンテナンス期間に延期する場合 は、ApplyImmediately パラメーターを false に設定します。その他の変更 (メンテナンス期間の変更な ど) はすぐに適用されます。 詳細については、ElastiCache API リファレンストピック「ModifyCacheCluster」を参照してください。 API Version 2015-02-02 157 Amazon ElastiCache ユーザーガイド クラスターの再起動 クラスターの再起動 変更内容によっては、変更を適用するためにクラスター再起動する必要があります。たとえば、パラメー タグループのパラメーター値を変更した場合は、再起動後のみクラスターに変更が適用されます。 クラスターを再起動すると、クラスターのすべてのデータがフラッシュされ、エンジンが再起動されま す。このプロセス中はクラスターにアクセスできません。クラスターですべてのデータがフラッシュされ るため、そのクラスターもう一度利用可能になったときは、クラスターが空の状態でから開始します。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してクラスターを再起動できま す。ElastiCache コンソール、AWS CLI、または ElastiCache API を使用する場合でも、再起動を開始でき るのは 1 つのクラスターだけです。複数のクラスターを再起動するには、プロセスまたはオペレーション を繰り返す必要があります。 クラスターの再起動 ((コンソール)) ElastiCache コンソールを使用して、クラスターを再起動できます。 クラスターを再起動するには ((console)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで、[Memcached] または [Redis] を選択します。 選択したエンジンを実行しているクラスターが一覧表示されます。 3. クラスター名の左側にあるボックスを選択して、再起動するクラスターを選択します。 [Reboot] ボタンがアクティブになります。 4. 5. 複数のクラスターを選択すると、[Reboot] ボタンが無効になります。 [Reboot] を選択します。 クラスターの再起動確認画面が表示されます。 クラスターを再起動するには、[Reboot] を選択します。クラスターの状態が、クラスターノードの再 起動中に変わります。 クラスターを再起動しない場合は、[Cancel] を選択します。 複数のクラスターを再起動するには、再起動する各クラスターに対してステップ 2 から 5 を繰り返しま す。 キャッシュクラスターの再起動 ((AWS CLI)) クラスターを再起動 ((AWS CLI)) するには、reboot-cache-cluster CLI オペレーションを使用します。 クラスターの特定のノードを再起動するには、--cache-node-ids-to-reboot を使用して再起動するクラ スターを一覧します。次のコマンドは、myCluster のノード 0001、0002、および 0004 を再起動します。 Linux, macOS, or Unix 用: aws elasticache reboot-cache-cluster \ --cache-cluster-id myCluster \ --cache-node-ids-to-reboot 0001 0002 0004 Windows の場合: API Version 2015-02-02 158 Amazon ElastiCache ユーザーガイド キャッシュクラスターの再起動 ((ElastiCache API)) 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 159 Amazon ElastiCache ユーザーガイド クラスターのモニタリング クラスターのモニタリング コスト配分タグは、リソースのタグ値別に費用をグループ化することで AWS のコストを追跡および管理 するのに使用できる、キーと値のペアです。 コスト配分タグを使用して AWS 請求書を整理し、自分のコスト構造を反映することができます。そのた めには、AWS アカウントにサインアップして、タグキー値が含まれた AWS アカウントの請求書を取得す る必要があります。結合したリソースのコストを確認するには、同じタグキー値を持つリソースに従って 請求情報を整理します。たとえば、複数のリソースに特定のアプリケーション名のタグを付け、請求情報 を整理することで、1 つまたは複数のサービスを利用しているアプリケーションの合計コストを確認する ことができます。 コスト配分タグの詳細と、クラスターに対してコスト配分タグを追加または削除する方法については、 「コスト配分のタグによるコストのモニタリング (p. 399)」を参照してください。 クラスターへのノードの追加 クラスターへのノードの追加は、現時点では Memcached または Redis (クラスターモードが無効) を実行 している場合に限り適用されます。Redis (クラスターモードが無効) を実行している場合、クラスターに 追加できるノードはレプリカノードです。 ElastiCache マネジメントコンソール、AWS CLI、または ElastiCache API を使用してクラスターにノード を追加できます。 Memcached クラスターのノードの数を変更するたびに、正しいノードにマップできるようにキースペー スの一部を再マッピングする必要があります。Memcached クラスターの負荷分散の詳細については、 「効率的な負荷分散のための ElastiCache クライアントの設定 (p. 71)」を参照してください。 クラスターへのノードの追加 ((コンソール)) Memcached またはレプリケーションが有効な Redis (クラスターモードが無効) クラスターにノードを追 加するプロセスは同じです。単一ノード Redis (クラスターモードが無効) クラスター (レプリケーション が有効でないクラスター) にノードを追加する場合は、2 ステッププロセスとなり、最初のステップでレプ リケーションを追加し、次のステップでレプリカノードを追加します。 トピック • シャードがない Redis クラスターにレプリケーションを追加するには (p. 160) • Memcached または 1 つのシャードを持つ Redis (クラスターモードが無効) クラスターにノードを追加 するには ((console)) (p. 161) 次の手順では、レプリケーションが有効でない単一ノード Redis にレプリケーションを追加します。レプ リケーションを追加すると、既存のノードはレプリケーションが有効なクラスターのプライマリノードに なります。レプリケーションの追加後に、最大 5 個のレプリカノードをクラスターに追加できます。 シャードがない Redis クラスターにレプリケーションを追加するには 1. 2. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 左のナビゲーションペインから、[Redis] を選択します。 3. Redis エンジンを実行しているクラスターが一覧表示されます。 追加するクラスターの名前を指定します。 レプリケーションが有効でない Redis クラスターは以下に該当します。 API Version 2015-02-02 160 Amazon ElastiCache ユーザーガイド クラスターへのノードの追加 ((コンソール)) • クラスター化された Redis ではなく、Redis を実行しています。 • シャードがありません。 クラスターにシャードがある場合は、レプリケーションがすでに有効になっており、Memcached または 1 つのシャードを持つ Redis (クラスターモードが無効) クラスターにノードを追加するには ((console)) (p. 161) を続行できます。 4. [Add replication] を選択します。 5. [Add Replication] で、このレプリケーションが有効なクラスターの説明を入力します。 6. [Add] を選択します。 クラスターのステータスが [available] になり次第、次の手順に進んでクラスターにレプリカを追加で きます。 Memcached または 1 つのシャードを持つ Redis (クラスターモードが無効) クラスターにノード を追加するには ((console)) 次の手順を使用して Memcached クラスターまたはレプリケーションが有効な Redis (クラスターモードが 無効) クラスターにノードを追加できます。現時点では、Redis (クラスターモードが有効) クラスターに対 してノードを追加または削除することはできません。 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで、[Memcached] または [Redis] を選択します。 選択したエンジンを実行しているクラスターが一覧表示されます。 3. クラスターの一覧から、ノードを追加するクラスターの名前を選択します。Clustered Redis エンジン を実行しているクラスターや、シャードがない Redis クラスターを選択することはできません。 クラスターのノードが一覧表示されて、[Add node] ボタンがアクティブになります。 4. ページの上部の [Add node] を選択します。 5. [Add Node] で、[Add Node] (Memcached) ダイアログボックスまたは [Add Read Replica to Cluster] (Redis) ダイアログボックスに必要な情報を入力します。 6. この変更を直ちに適用する場合は [Apply Immediately - Yes] ボタンを選択します。次のメンテナンス 期間まで変更を延期する場合は [No] を選択します。 保留中のリクエストに対する新しい送信/削除リクエストの影響 シナリオ 保留中の操 作 新しいリク エスト 結果 シナリオ 1 削除 削除 新しい削除リクエストは、保留中か即時かを問わず、保 留中の削除リクエストを置き換えます。 たとえば、ノード 0001、0003、および 0007 の削除が 保留中の場合に、ノード 0002 および 0004 のみを削除 する新しいリクエストが出されると、ノード 0002 およ び 0004 のみが削除されます。ノード 0001、0003、お よび 0007 は削除されません。 シナリオ 2 削除 作成 新しい作成リクエストは、保留中か即時かを問わず、保 留中の削除リクエストを置き換えます。 たとえば、ノード 0001、0003、および 0007 の削除 が保留中の場合に、ノードを作成する新しいリクエス API Version 2015-02-02 161 Amazon ElastiCache ユーザーガイド クラスターへのノードの追加 ((コンソール)) シナリオ 保留中の操 作 新しいリク エスト 結果 トが出されると、新しいノードが作成され、ノード 0001、0003、および 0007 は削除されません。 シナリオ 3 作成 削除 新しい削除リクエストは、保留中か即時かを問わず、保 留中の作成リクエストを置き換えます。 たとえば、2 つのノードを作成する保留中のリクエスト がある場合に、ノード 0003 を削除する新しいリクエス トが出されると、新しいノードは作成されず、ノード 0003 が削除されます。 シナリオ 4 作成 作成 新しい作成リクエストは保留中の作成リクエストに追加 されます。 たとえば、2 つのノードを作成する保留中のリクエスト がある場合に、3 つのノードを作成する新しいリクエス トが出されると、保留中のリクエストに新しいリクエス ト追加され、5 つのノードが作成されます。 Important 新しい作成リクエストを [Apply Immediately Yes] に設定すると、すべての作成リクエスト はすぐに実行されます。新しい作成リクエスト を [Apply Immediately - No] に設定すると、す べてのリクエストは保留中になります。 保留中の操作を特定するには、[Description] タブを選択し、表示される保留中の作成または削除の数 を確認します。保留中の作成と削除が同時に存在することはできません。 7. [Add] ボタンを選択します。 しばらくすると、新しいノードが一覧表示され、ステータス [creating] になります。表示されない場 合は、ブラウザのページを更新します。 API Version 2015-02-02 162 Amazon ElastiCache ユーザーガイド キャッシュクラスターへのノードの追加 ((AWS CLI)) キャッシュクラスターへのノードの追加 ((AWS CLI)) レプリケーションが有効でない既存の Redis (クラスターモードが無効) レプリケーショングループ (コン ソール: クラスター) にノードを追加する場合は、最初にレプリケーショングループを作成して既存のクラ スターをプライマリとして指定する必要があります。詳細については、「利用可能な Redis キャッシュク ラスターを使用したレプリケーショングループの作成 ((AWS CLI)) (p. 213)」を参照してください。レプ リケーショングループが [available] になった後で、次のプロセスを続行できます。 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. 167)」を参照 してください。 • --apply-immediately または --no-apply-immediately は、次のメンテナンス時にこれらのノードを追 加するかどうかを指定します。 Linux, macOS, 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 このオペレーションでは、以下のような (JSON 形式の) 出力が生成されます。 { "CacheCluster": { "Engine": "memcached", "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.memcached1.4", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "my-cache-cluster", "PreferredAvailabilityZone": "us-west-2b", "ConfigurationEndpoint": { "Port": 11211, "Address": "rlh-mem000.7alc7bf-example.cfg.usw2.cache.amazonaws.com" }, "CacheSecurityGroups": [], "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "modifying", "NumCacheNodes": 2, "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/ home#client-download:", API Version 2015-02-02 163 Amazon ElastiCache ユーザーガイド キャッシュクラスターへのノードの追加 ((ElastiCache API)) "SecurityGroups": [ { "Status": "active", "SecurityGroupId": "sg-dbe93fa2" } ], "CacheSubnetGroupName": "default", "EngineVersion": "1.4.24", "PendingModifiedValues": { "NumCacheNodes": 5 }, "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", "CacheNodeType": "cache.m3.medium" } } 詳細については、AWS CLI トピック「modify-cache-cluster」を参照してください。 キャッシュクラスターへのノードの追加 ((ElastiCache API)) レプリケーションが有効でない既存の Redis (クラスターモードが無効) レプリケーショングループ (コン ソール: クラスター) にノードを追加する場合は、最初にレプリケーショングループを作成して既存のクラ スターをプライマリとして指定する必要があります。詳細については、「利用可能な Redis キャッシュク ラスターを使用したレプリケーショングループの作成 ((ElastiCache API)) (p. 215)」を参照してくださ い。レプリケーショングループが [available] になった後で、次のプロセスを続行できます。 ノードをクラスターに追加するには ((ElastiCache API)) • 以下のパラメーターを指定して ModifyCacheCluster API オペレーションを呼び出します。 • CacheClusterId ノードを追加するクラスターの ID。 • NumCacheNodes NumCachNodes パラメーターは、この変更を適用した後に必要となるノードの数 を設定します。このクラスターにノードを追加しても、NumCacheNodes はこのクラスター内の 現在ノードの数よりも大きくする必要があります。この値が現在のノードの数よりより少ない場 合、ElastiCache は CacheNodeIdsToRemove パラメーターとノードのリストがノードをクラスターか ら削除することを想定します (「クラスターからのノードの削除 ((ElastiCache API)) (p. 170)」を 参照)。 • ApplyImmediately は、次のメンテナンス時にこれらのノードを追加するかどうかを指定します。 次の例は、クラスターにノードを追加する呼び出しを示しています。 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> API Version 2015-02-02 164 Amazon ElastiCache ユーザーガイド キャッシュクラスターへのノードの追加 ((ElastiCache API)) &X-Amz-Signature=<signature> 詳細については、ElastiCache API トピック「ModifyCacheCluster」を参照してください。 API Version 2015-02-02 165 Amazon ElastiCache ユーザーガイド クラスターからのノードの削除 クラスターからのノードの削除 クラスターからのノードの削除は、Clustered Redis エンジンを実行している場合に限り適用されます。 Memcached クラスターのノード数を変更するたびに、正しいノードにマップできるようにキースペース の一部を再マッピングする必要があります。Memcached クラスターの負荷分散の詳細については、「効 率的な負荷分散のための ElastiCache クライアントの設定 (p. 71)」を参照してください。 トピック • クラスターからのノードの削除 ((コンソール)) (p. 166) • クラスターからのノードの削除 ((AWS CLI)) (p. 167) • クラスターからのノードの削除 ((ElastiCache API)) (p. 170) クラスターからのノードの削除 ((コンソール)) クラスターからノードを削除するには ((console)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで、[Memcached] または [Redis] を選択します。 3. 選択したエンジンを実行しているクラスターが一覧表示されます。 クラスターの一覧から、ノードを削除するクラスターの名前を選択します。 4. クラスターのノードが一覧表示されます。 削除するノードのノード ID の左側にあるボックスを選択します。ElastiCache コンソール で同時に 削除できるノードは 1 つのみです。複数のノードを選択すると、[Delete node] ボタンは無効になりま す。 [Delete Node] ダイアログが表示されます。 5. ノードを削除するには、[Delete Node] ダイアログボックスに入力し、[Delete Node] を選択します。 ノードを削除しない場合は、[Cancel] を選択します。 保留中のリクエストに対する新しい送信/削除リクエストの影響 シナリオ 保留中の操 作 新しいリク エスト 結果 シナリオ 1 削除 削除 新しい削除リクエストは、保留中か即時かを問わず、保留 中の削除リクエストを置き換えます。 たとえば、ノード 0001、0003、および 0007 の削除が保 留中の場合に、ノード 0002 および 0004 のみを削除する 新しいリクエストが出されると、ノード 0002 および 0004 のみが削除されます。ノード 0001、0003、および 0007 は削除されません。 シナリオ 2 削除 作成 新しい作成リクエストは、保留中か即時かを問わず、保留 中の削除リクエストを置き換えます。 たとえば、ノード 0001、0003、および 0007 の削除が保 留中の場合に、ノードを作成する新しいリクエストが出さ れると、新しいノードが作成され、ノード 0001、0003、 および 0007 は削除されません。 API Version 2015-02-02 166 Amazon ElastiCache ユーザーガイド クラスターからのノードの削除 ((AWS CLI)) シナリオ 保留中の操 作 新しいリク エスト 結果 シナリオ 3 作成 削除 新しい削除リクエストは、保留中か即時かを問わず、保留 中の作成リクエストを置き換えます。 たとえば、2 つのノードを作成する保留中のリクエストが ある場合に、ノード 0003 を削除する新しいリクエストが 出されると、新しいノードは作成されず、ノード 0003 が 削除されます。 シナリオ 4 作成 作成 新しい作成リクエストは保留中の作成リクエストに追加さ れます。 たとえば、2 つのノードを作成する保留中のリクエストが ある場合に、3 つのノードを作成する新しいリクエストが 出されると、保留中のリクエストに新しいリクエスト追加 され、5 つのノードが作成されます。 Important 新しい作成リクエストを [Apply Immediately Yes] に設定すると、すべての作成リクエストは すぐに実行されます。新しい作成リクエストを [Apply Immediately - No] に設定すると、すべての リクエストは保留中になります。 保留中の操作を特定するには、[Description] タブを選択し、表示される保留中の作成または削除の数を確 認します。保留中の作成と削除が同時に存在することはできません。 クラスターからのノードの削除 ((AWS CLI)) 1. 以下の例のように、describe-cache-cluster コマンドを使用してクラスターのノードのリストを表 示します。削除するノードの識別子を書き留めてください。 Linux, macOS, or Unix 用: aws elasticache describe-cache-clusters \ --cache-cluster-id my-memcached-cluster \ --show-cache-node-info API Version 2015-02-02 167 Amazon ElastiCache ユーザーガイド クラスターからのノードの削除 ((AWS CLI)) Windows の場合: aws elasticache describe-cache-clusters ^ --cache-cluster-id my-memcached-cluster ^ --show-cache-node-info このオペレーションでは、以下のような (JSON 形式の) 出力が生成されます。 { "CacheClusters": [ { "Engine": "memcached", "CacheNodes": [ { "CacheNodeId": "0001", "Endpoint": { "Port": 11211, "Address": "my-memcached-cluster.7efexample.0001.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", "CustomerAvailabilityZone": "us-west-2b" }, { "CacheNodeId": "0002", "Endpoint": { "Port": 11211, "Address": "my-memcached-cluster.7efexample.0002.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", "CustomerAvailabilityZone": "us-west-2b" }, { "CacheNodeId": "0003", "Endpoint": { "Port": 11211, "Address": "my-memcached-cluster.7efexample.0003.usw2.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-09-21T16:28:28.973Z", "CustomerAvailabilityZone": "us-west-2b" } ], "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.memcached1.4", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "my-memcached-cluster", "PreferredAvailabilityZone": "us-west-2b", "ConfigurationEndpoint": { "Port": 11211, "Address": "my-memcached-cluster.7efexample.cfg.usw2.cache.amazonaws.com" }, "CacheSecurityGroups": [], API Version 2015-02-02 168 Amazon ElastiCache ユーザーガイド クラスターからのノードの削除 ((AWS CLI)) "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "available", "NumCacheNodes": 3, "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/ home#client-download:", "SecurityGroups": [ { "Status": "active", "SecurityGroupId": "sg-dbe93fa2" } ], "CacheSubnetGroupName": "default", "EngineVersion": "1.4.24", "PendingModifiedValues": {}, "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", "CacheNodeType": "cache.m3.medium" } ] } 2. 次の例のように、削除するノードの一覧を使用して modify-cache-cluster CLI オペレーションを呼 び出します。 コマンドラインインターフェイスを使用してクラスターからノードを削除するには、以下のパラメー ターを指定して 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-memcached-cluster クラスターからノード 0001 を直ちに削除します。 Linux, macOS, or Unix 用: aws elasticache modify-cache-cluster \ --cache-cluster-id my-memcached-cluster \ --num-cache-nodes 2 \ --cache-node-ids-to-remove 0001 \ --apply-immediately Windows の場合: aws elasticache modify-cache-cluster ^ --cache-cluster-id my-memcached-cluster ^ --num-cache-nodes 2 ^ --cache-node-ids-to-remove 0001 ^ --apply-immediately このオペレーションでは、以下のような (JSON 形式の) 出力が生成されます。 { "CacheCluster": { "Engine": "memcached", "CacheParameterGroup": { "CacheNodeIdsToReboot": [], API Version 2015-02-02 169 Amazon ElastiCache ユーザーガイド クラスターからのノードの削除 ((ElastiCache API)) "CacheParameterGroupName": "default.memcached1.4", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "my-memcached-cluster", "PreferredAvailabilityZone": "us-west-2b", "ConfigurationEndpoint": { "Port": 11211, "Address": "rlh-mem000.7ef-example.cfg.usw2.cache.amazonaws.com" }, "CacheSecurityGroups": [], "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", 9dcv5r "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "modifying", "NumCacheNodes": 3, "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/ home#client-download:", "SecurityGroups": [ { "Status": "active", "SecurityGroupId": "sg-dbe93fa2" } ], "CacheSubnetGroupName": "default", "EngineVersion": "1.4.24", "PendingModifiedValues": { "NumCacheNodes": 2, "CacheNodeIdsToRemove": [ "0001" ] }, "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", "CacheNodeType": "cache.m3.medium" } } 詳細については、AWS CLI トピック「describe-cache-cluster」および「modify-cache-cluster」を参 照してください。 クラスターからのノードの削除 ((ElastiCache API)) ElastiCache API を使用してノードを削除するには、次のようにキャッシュクラスター ID と削除するノー ドの一覧を使用して ModifyCacheCluster API オペレーションを呼び出します。 • 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 API Version 2015-02-02 170 Amazon ElastiCache ユーザーガイド クラスターからのノードの削除 ((ElastiCache API)) &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 171 Amazon ElastiCache ユーザーガイド 保留中のノードの追加または削 除オペレーションのキャンセル 保留中のノードの追加または削除オペレーションの キャンセル 保留中のノードの追加またはノード削除オペレーショ ンのキャンセル ((コンソール)) 変更を直ちに適用しないことを選択した場合、オペレーションは、次のメンテナンス時間に実行されるま で pending ステータスになります。保留中のオペレーションはすべてキャンセルできます。 保留中のオペレーションをキャンセルするには 1. 2. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 左のナビゲーションペインで、[Memcached] または [Redis] をクリックします。 選択したエンジンを 実行しているクラスターが一覧表示されます。 3. クラスターの一覧で、保留中のオペレーションをキャンセルするクラスターの名前を選択します。 4. 保留中の操作を特定するには、[Description] タブを選択し、表示される保留中の作成または削除の数 を確認します。保留中の作成と削除が同時に存在することはできません。 5. 6. [Nodes] タブを選択します。 すべての保留中のオペレーションをキャンセルするには、[Cancel Pending] をクリックします。 [Cancel Pending] ダイアログボックスが表示されます。 [Cancel Pending] ボタンを選択して、すべての保留中のオペレーションをキャンセルすることを確認 します。オペレーションを保持する場合は、[Cancel] をクリックします。 7. API Version 2015-02-02 172 Amazon ElastiCache ユーザーガイド クラスターの削除 クラスターの削除 クラスターが使用可能な状態であれば、実際に使用しているかどうかに関係なく課金されます。課金を中 止するには、クラスターを削除します。 クラスターの削除 ((コンソール)) 次の手順では、デプロイから 1 つのクラスターを削除します。複数のクラスターを削除するには、削除す る各クラスターで手順を繰り返してください。別のクラスターの削除手順を開始する前に、1 つのクラス ターの削除が終了するのを待つ必要はありません。 クラスターを削除するには 1. AWS マネジメントコンソールにサインインし、Amazon ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. ElastiCache コンソールダッシュボードで、削除するクラスターが実行されているエンジン (Memcached または Redis) を選択します。 選択したエンジンを実行しているクラスターがすべて一覧表示されます。 3. 削除するクラスターを選択するには、クラスターのリストからそのクラスターの名前を選択します。 Important ElastiCache コンソールから、一度に 1 つずつクラスターを削除できます。複数のクラス ターを選択すると、削除オペレーションが無効になります。 4. [Actions] ボタンを選択し、アクションのリストから [Delete] を選択します。 5. [Delete Cluster] 確認画面: a. これが Redis クラスターである場合、最終スナップショットを取得するかどうかと、最終スナップ ショットが必要な場合は最終スナップショット名を指定します。 b. [Delete] を選択してクラスターを削除するか、[Cancel] を選択してクラスターを保持します。 [Delete] を選択した場合は、クラスターのステータスが削除中に変わります。 クラスターがクラスターのリストに表示されなくなるとすぐに、課金が停止されます。 キャッシュクラスターの削除 ((AWS CLI)) 次のコードでは、キャッシュクラスター myCluster を削除します。 aws elasticache delete-cache-cluster --cache-cluster-id myCluster delete-cache-cluster CLI アクションは 1 つのキャッシュクラスターのみを削除します。複数のキャッ シュクラスターを削除する場合は、削除するキャッシュクラスターごとに delete-cache-cluster を呼び 出します。1 つのキャッシュクラスターの削除が終了するまで待たなくても次のクラスターを削除できま す。 詳細については、AWS CLI の ElastiCache トピック「delete-cache-cluster」を参照してください。 キャッシュクラスターの削除 ((ElastiCache API)) 次のコードはクラスター myCluster を削除します。 API Version 2015-02-02 173 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 API オペレーションは 1 つのキャッシュクラスターのみを削除します。複数の キャッシュクラスターを削除する場合は、削除するキャッシュクラスターごとに DeleteCacheCluster を 呼び出します。1 つのキャッシュクラスターの削除が終了するまで待たなくても次のクラスターを削除で きます。 詳細については、ElastiCache API リファレンストピック「DeleteCacheCluster」を参照してください。 API Version 2015-02-02 174 Amazon ElastiCache ユーザーガイド スケーリング アプリケーションが処理しなければならないデータの量は、一定ではありません。業務の拡大または または通常の変動が発生すると、需要は増加します。キャッシュを自己管理する場合は、需要のピーク に対して充分なハードウェアを用意する必要がありますが、それにより費用が高くなります。Amazon ElastiCache を使用すると、現時点の需要を満たすための拡張を行って、利用した分だけで支払うことが 可能になります。ElastiCache で、需要に合わせてキャッシュをスケーリングできます。 Important Amazon ElastiCache では、Redis (クラスターモードが有効) レプリケーショングループの変更 がサポートされていません。したがって、Redis (クラスターモードが有効) レプリケーショング ループをスケーリングする唯一の方法は、ノードタイプ、スケーリングしたいノードグループの 数およびノードグループあたりのレプリカの数を持つ新しいレプリケーショングループを作成し てから、既存のレプリケーショングループを削除することです。ノードグループの数を変更しな い場合は、既存のレプリケーショングループからのデータを新しいレプリケーショングループに 配置できます。詳細については、「ElastiCache バックアップと復元 (Redis) (p. 246)」を参照 してください。 トピック • Memcached のスケーリング (p. 176) • Redis (クラスターモードが無効) クラスターのスケーリング (p. 179) • レプリカノードを含む Redis のクラスターのスケーリング (p. 188) API Version 2015-02-02 175 Amazon ElastiCache ユーザーガイド Memcached のスケーリング Memcached のスケーリング Memcached クラスターは、1~ 20 のノードで構成されます。Memcached クラスターのスケールアウト/ インはクラスターでのノードの追加/削除と同じくらい簡単です。 Memcached クラスターで 20 を超えるノードが必要な場合、またはリージョンで合計 100 を超えるノー ドが必要な場合は、ElastiCache 上限緩和申請 (https://aws.amazon.com/http://aws.amazon.com/contactus/elasticache-node-limit-request/) に入力してください。 Memcached クラスターのすべてのノード間でデータを分割できるため、メモリのより大きいノードタイ プにスケールアップすることはほとんど必要ありません。ただし、Memcached エンジンによってデータ は永続的に保持されないため、別のノードタイプへのスケーリングを行う場合は、新しい Memcached ク ラスターを作成する必要があります。Memcached クラスターは、アプリケーションによって事前設定さ れない限り、最初は空の状態になります。 トピック • Memcached の水平スケーリング (p. 176) • Memcached の垂直スケーリング (p. 177) Memcached の水平スケーリング Memcached エンジンでは、複数のノード間でのデータの分割がサポートされています。このた め、Memcached クラスターの水平スケーリングは簡単です。Memcached クラスターでは、1 個から 20 までのノードを設定できます。Memcached クラスターの水平スケーリングを行うには、ノードを追加ま たは削除するだけです。 Memcached クラスターで 20 を超えるノードが必要な場合、またはリージョンで合計 100 を超えるノー ドが必要な場合は、ElastiCache 上限緩和申請 (https://aws.amazon.com/http://aws.amazon.com/contactus/elasticache-node-limit-request/) に入力してください。 以下のトピックでは、ノードを追加したり削除したりして Memcached クラスターをスケーリングする方 法について説明します。 • クラスターへのノードの追加 (p. 160) • クラスターからのノードの削除 (p. 166) Memcached クラスターのノードの数を変更するたびに、正しいノードにマップできるようにキースペー スの一部を再マッピングする必要があります。Memcached クラスターの負荷分散の詳細については、 「効率的な負荷分散のための ElastiCache クライアントの設定 (p. 71)」を参照してください。 Memcached クラスターで自動検出を使用する場合は、ノードを追加したり削除するたびに、アプリケー ションのエンドポイントを変更する必要はありません。自動検出の詳細については、「 ノードの自動検出 (Memcached) (p. 101)」を参照してください。自動検出を使用しない場合は、Memcached クラスターの ノード数を変更するたびに、アプリケーションのエンドポイントを更新する必要があります。 API Version 2015-02-02 176 Amazon ElastiCache ユーザーガイド Memcached の垂直スケーリング Memcached の垂直スケーリング Memcached クラスターをスケールアップ/ダウンするときは、新しいクラスターを作成する必要がありま す。Memcached クラスターは、アプリケーションによって事前設定されない限り、最初は空の状態にな ります。 Important より小さいノードタイプにスケールダウンする場合は、そのノードタイプがデータとオーバー ヘッドのニーズを満たしていることを確認してください。詳細については、「Memcached ノー ドサイズの選択 (p. 83)」を参照してください。 トピック • Memcached の垂直スケーリング ((コンソール)) (p. 177) • Memcached の垂直スケーリング ((AWS CLI)) (p. 177) • Memcached の垂直スケーリング ((ElastiCache API)) (p. 177) Memcached の垂直スケーリング ((コンソール)) 以下の手順では、ElastiCache コンソールを使用した Memcached クラスターの垂直スケーリングの手順 について説明しています。 Memcached クラスターの垂直スケーリングを行うには ((console)) 1. 新しいノードインスタンスタイプで新しいクラスターを作成します。詳細については、「クラスター の作成 ((コンソール)): Memcached (p. 134)」を参照してください。 2. アプリケーションでは、新しいクラスターのエンドポイントにエンドポイントが更新されます。詳細 については、「Memcached クラスターのエンドポイントの検索 (コンソール) (p. 53)」を参照してく ださい。 3. 古いクラスターを削除します。詳細については、「クラスターの削除 ((コンソール)) (p. 173)」を参照 してください。 Memcached の垂直スケーリング ((AWS CLI)) 以下の手順では、AWS CLI を使用した Memcached キャッシュクラスターの垂直スケーリングの手順につ いて説明しています。 Memcached キャッシュクラスターの垂直スケーリングを行うには ((AWS CLI)) 1. 新しいノードインスタンスタイプで新しいキャッシュクラスターを作成します。詳細については、 「キャッシュクラスターの作成 ((AWS CLI)) (p. 144)」を参照してください。 2. アプリケーションでは、新しいクラスターのエンドポイントにエンドポイントが更新されます。詳細 については、「エンドポイントの検索 (AWS CLI) (p. 59)」を参照してください。 3. 古いキャッシュクラスターを削除します。詳細については、「キャッシュクラスターの削除 ((AWS CLI)) (p. 173)」を参照してください。 Memcached の垂直スケーリング ((ElastiCache API)) 以下の手順では、ElastiCache API を使用した Memcached キャッシュクラスターの垂直スケーリングの手 順について説明しています。 API Version 2015-02-02 177 Amazon ElastiCache ユーザーガイド Memcached の垂直スケーリング Memcached キャッシュクラスターの垂直スケーリングを行うには ((ElastiCache API)) 1. 2. 3. 新しいノードインスタンスタイプで新しいキャッシュクラスターを作成します。詳細については、 「キャッシュクラスターの作成 ((ElastiCache API)) (p. 146)」を参照してください。 アプリケーションで、エンドポイントを新しいキャッシュクラスターのエンドポイントに更新しま す。詳細については、「エンドポイントの検索 (ElastiCache API) (p. 63)」を参照してください。 古いキャッシュクラスターを削除します。詳細については、「キャッシュクラスターの削除 ((ElastiCache API)) (p. 173)」を参照してください。 API Version 2015-02-02 178 Amazon ElastiCache ユーザーガイド Redis (クラスターモードが無効) クラスターのスケーリング Redis (クラスターモードが無効) クラスターのス ケーリング Redis (クラスターモードが無効) ノードには、すべてのキャッシュのデータと Redis のオーバーヘッドを 保存するのに十分なデータ容量が必要です。Redis (クラスターモードが無効) クラスターのデータ容量を 変更するには、垂直スケーリングを行う (より大きいノードタイプにスケールアップしてデータ容量を増 やすか、より小さいノードタイプにスケールダウンしてデータ容量を減らす) 必要があります。 ElastiCache のスケールアッププロセスは、既存のデータをベストエフォートで保持するように設計さ れており、Redis レプリケーションが正常に実行される必要があります。Redis (クラスターモードが無 効) Redis クラスターの場合、「Redis スナップショットを作成するための十分なメモリがあることの確 認 (p. 65)」トピックで説明しているように、Redis 用に十分なメモリを確保することをお勧めします。 スケールダウンプロセスは完全に手動であり、特に対処しない限り、データの保持は試みられません。 複数の Redis (クラスターモードが無効) クラスター間でデータを分割することはできません。ただし、ク ラスターの読み込みキャパシティーを増減させる必要がある場合は、レプリカノードを含む Redis (クラ スターモードが無効) クラスターを作成し、リードレプリカを追加または削除できます。プライマリクラ スターとして単一ノード Redis キャッシュクラスターを使用して、レプリカノードを含む Redis (クラス ターモードが無効) クラスターを作成するには、「Redis (クラスターモードが無効) クラスターの作成 ((コ ンソール)) (p. 136)」を参照してください。 レプリカを含むクラスターを作成したら、リードレプリカを追加することで、読み込みキャパシティーを 増やすことができます。後で必要に応じて、リードレプリカを削除することで、読み込みキャパシティー を減らすことができます。詳細については、「読み込みキャパシティーの増加 (p. 197)」または「読み込 みキャパシティーの削減 (p. 198)」を参照してください。 読み込みキャパシティーのスケーリングが可能なことに加えて、レプリカを含む Redis (クラスターモード が無効) クラスターには、そのほかにもビジネス上の利点があります。詳細については、「ElastiCache レ プリケーション (Redis) (p. 199)」を参照してください。 トピック • 単一ノード Redis のクラスターのスケールアップ (p. 179) • 単一ノード Redis クラスターのスケールダウン (p. 185) 単一ノード Redis のクラスターのスケールアップ 単一ノード Redis クラスターをスケールアップするとき、ElastiCache コンソール、AWS CLI、ElastiCache API のいずれを使用する場合でも、ElastiCache によって以下のプロセスが実行されま す。 1. 2. キャッシュクラスターに対する読み取りと書き込みはブロックされます。 新しいノードタイプの新しいキャッシュクラスターは既存のキャッシュクラスターと同じアベイラビ リティーゾーンでスピンアップされます。 3. 既存のキャッシュクラスターのキャッシュデータは新しいキャッシュクラスターにコピーされます。 このプロセスの所要時間はノードタイプとキャッシュクラスターのデータ量によって異なります。 読み取りと書き込みは、新しいキャッシュクラスターを使用して再開されます。新しいキャッシュク ラスターのエンドポイントは、古いキャッシュクラスターのものと同じなので、アプリケーションの エンドポイントを更新する必要はありません。 ElastiCache によって古いキャッシュクラスターが削除されます。 4. 5. キャッシュクラスターに対する書き込みと読み取りはスケールアッププロセスの実行中はブロックされる ため、スケールアップはキャッシュクラスターの需要の少ない時間にスケジュールする必要があります。 API Version 2015-02-02 179 Amazon ElastiCache ユーザーガイド Redis クラスターのスケールアップ 以下の表に示しているように、次のメンテナンス期間にエンジンのアップグレードがスケジュールされて いる場合、Redis のスケールアップオペレーションはブロックされます。メンテナンス期間の詳細につい ては、「メンテナンスウィンドウ (p. 46)」を参照してください。 ブロックされた Redis オペレーション 保留中のオペレーション ブロックされたオペレーション スケールアップ 即時のエンジンのアップグレード エンジンのアップグレード 即時のスケールアップ スケールアップとエンジンのアップグレード 即時のスケールアップ 即時のエンジンのアップグレード 保留中のオペレーションによってブロックされている場合は、以下のいずれかを行うことができます。 • 次のメンテナンス期間に Redis スケールアップオペレーションをスケジュールします。そのためには、 [Apply immediately] チェックボックスをオフにします (CLI では --no-apply-immediately、API では ApplyImmediately=false を使用)。 • Redis のスケールアップオペレーションを実行する次のメンテナンス期間 (またはその後) まで待ちま す。 • このキャッシュクラスターの変更に Redis エンジンのアップグレードを追加します。そのためには、 [Apply Immediately] チェックボックスをオンにします (CLI では --apply-immediately、API では ApplyImmediately=true を使用)。これにより、エンジンのアップグレードがすぐに実行されて、スケー ルアップオペレーションのブロックが解除されます。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、単一ノード Redis (クラスター モードが無効) クラスターをスケールアップできます。 単一ノード Redis のクラスターのスケールアップ ((コンソール)) 以下の手順では、ElastiCache マネジメントコンソールを使用して、単一ノード Redis クラスターをス ケールアップする方法について説明しています。 単一ノード Redis クラスターをスケールアップするには ((console)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Redis] を選択します。 3. クラスターのリストから、スケールアップするクラスターを選択します (Clustered Redis エンジンで はなく Redis エンジンを実行している必要があります)。 4. [Modify] を選択します。 5. [Modify Cluster] ウィザードで、[Node type] リストからスケールアップするノードタイプを選択しま す。 このリストには、スケールアップできるすべてのノードタイプが示されています。 6. スケールアッププロセスをすぐに実行する場合は、[Apply immediately] チェックボックスをオンにし ます。[Apply immediately] チェックボックスをオフのままにすると、スケールアッププロセスはこの クラスターの次のメンテナンス期間中に実行されます。 7. [Modify] を選択します。 前の手順で [Apply immediately] を選択した場合、クラスターのステータスは [modifying] に変わりま す。ステータスが [available] に変わると、変更は完了し、新しいクラスターの使用を開始できます。 API Version 2015-02-02 180 Amazon ElastiCache ユーザーガイド Redis クラスターのスケールアップ 単一ノード Redis キャッシュクラスターのスケールアップ ((AWS CLI)) 以下の手順では、AWS CLI を使用して単一ノード Redis キャッシュクラスターをスケールアップする方法 について説明しています。 単一ノード Redis キャッシュクラスターをスケールアップするには ((AWS CLI)) 1. 以下のパラメーターを指定して AWS CLI list-allowed-node-type-modifications コマンドを実行 することで、スケールアップできるノードタイプを調べます。 • --cache-cluster-id - スケールアップする単一ノード Redis キャッシュクラスターの名前。 Linux, macOS, or Unix 用: aws elasticache list-allowed-node-type-modifications \ --cache-cluster-id my-cache-cluster-id Windows の場合: aws elasticache list-allowed-node-type-modifications ^ --cache-cluster-id my-cache-cluster-id 上のコマンドによる出力は次のようになります。 { "ScaleUpModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] } 2. 詳細については、『AWS CLI リファレンス』の「list-allowed-node-type-modifications」を参照してく ださい。 AWS CLI modify-cache-cluster コマンドで以下のパラメーターを使用して、スケールアップする キャッシュクラスターと新しいより大きいノードタイプを指定することで、既存のキャッシュクラス ターを変更します。 • --cache-cluster-id - スケールアップするキャッシュクラスターの名前。 • --cache-node-type - キャッシュクラスターのスケールアップ後の新しいノードタイプ。この値 は、手順 1 で list-allowed-node-type-modifications コマンドによって返されるノードタイプの いずれかであることが必要です。 • --apply-immediately - スケールアッププロセスがすぐに適用されるようにします。スケールアッ ププロセスをクラスターの次のメンテナンス期間に延期するには、--no-apply-immediately パラ メーターを使用します。 API Version 2015-02-02 181 Amazon ElastiCache ユーザーガイド Redis クラスターのスケールアップ Linux, macOS, or Unix 用: aws elasticache modify-cache-cluster \ --cache-cluster-id my-redis-cache-cluster \ --cache-node-type cache.m3.2xlarge \ --apply-immediately Windows の場合: aws elasticache modify-cache-cluster ^ --cache-cluster-id my-redis-cache-cluster ^ --cache-node-type cache.m3.2xlarge ^ --apply-immediately 上のコマンドによる出力は次のようになります。 { "CacheCluster": { "Engine": "redis", "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.redis3.2", "ParameterApplyStatus": "in-sync" }, "SnapshotRetentionLimit": 1, "CacheClusterId": "my-redis-cache-cluster", "CacheSecurityGroups": [], "NumCacheNodes": 1, "SnapshotWindow": "00:00-01:00", "CacheClusterCreateTime": "2017-02-21T22:34:09.645Z", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "modifying", "PreferredAvailabilityZone": "us-west-2a", "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/ home#client-download:", "CacheSubnetGroupName": "default", "EngineVersion": "3.2.4", "PendingModifiedValues": { "CacheNodeType": "cache.m3.2xlarge" }, "PreferredMaintenanceWindow": "tue:11:30-tue:12:30", "CacheNodeType": "cache.m3.medium" } } 詳細については、『AWS CLI リファレンス』の「modify-cache-cluster」を参照してください。 3. --apply-immediately を使用した場合は、以下のパラメーターを指定して AWS CLI describecache-clusters コマンドを使用することで、新しいキャッシュクラスターのステータスを確認しま す。ステータスが [available] に変わると、新しいより大きいキャッシュクラスターの使用を開始でき ます。 • --cache-cache cluster-id - 単一ノード Redis のキャッシュクラスターの名前。すべてのキャッ シュクラスターではなく特定のキャッシュクラスターの定義を表示するには、このパラメータを使 用します。 aws elasticache describe-cache-clusters --cache-cluster-id my-redis-cache-cluster API Version 2015-02-02 182 Amazon ElastiCache ユーザーガイド Redis クラスターのスケールアップ 詳細については、『AWS CLI リファレンス』の「describe-cache-clusters」を参照してください。 単一ノード Redis キャッシュクラスターのスケールアップ ((ElastiCache API)) 以下の手順では、ElastiCache API を使用して単一ノード Redis キャッシュクラスターをスケールアップす る方法について説明しています。 単一ノード Redis キャッシュクラスターをスケールアップするには ((ElastiCache API)) 1. 以下のパラメータを使用して ElastiCache API ListAllowedNodeTypeModifications アクションを実 行することで、スケールアップできるノードタイプを調べます。 • CacheClusterId - スケールアップする単一ノード Redis キャッシュクラスターの名前。 https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &CacheClusterId=MyRedisCacheCluster &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、『Amazon ElastiCache API リファレンス』の 「ListAllowedNodeTypeModifications」を参照してください。 2. ModifyCacheCluster ElastiCache API アクションと以下のパラメータを使用して、スケールアップす るキャッシュクラスターと新しいより大きいノードタイプを指定することで、既存のキャッシュクラ スターを変更します。 • CacheClusterId - スケールアップするキャッシュクラスターの名前。 • CacheNodeType - キャッシュクラスターのスケールアップ後の新しいより大きいノードタイプ。こ の値は、手順 1 で ListAllowedNodeTypeModifications アクションによって返されるノードタイプ のいずれかであることが必要です。 • ApplyImmediately - スケールアッププロセスがすぐに実行されるようにするには、true に 設定します。スケールアッププロセスをクラスターの次のメンテナンス期間に延期するに は、ApplyImmediately=false パラメーターを使用します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &ApplyImmediately=true &CacheClusterId=MyRedisCacheCluster &CacheNodeType=cache.m2.xlarge &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、『Amazon ElastiCache API リファレンス』の「ModifyCacheCluster」を参照してく ださい。 3. ApplyImmediately=true を使用した場合は、以下のパラメータを指定して ElastiCache API DescribeCacheClusters アクションを使用することで、新しいキャッシュクラスターのステータスを API Version 2015-02-02 183 Amazon ElastiCache ユーザーガイド Redis クラスターのスケールアップ 確認します。ステータスが [available] に変わると、新しいより大きいキャッシュクラスターの使用を 開始できます。 • CacheClusterId - 単一ノード Redis のキャッシュクラスターの名前。すべてのキャッシュクラス ターではなく特定のキャッシュクラスターの定義を表示するには、このパラメータを使用します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterId=MyRedisCacheCluster &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、『Amazon ElastiCache API リファレンス』の「DescribeCacheClusters」を参照し てください。 API Version 2015-02-02 184 Amazon ElastiCache ユーザーガイド 単一ノード Redis キャッシュクラスターのスケールダウン 単一ノード Redis クラスターのスケールダウン Redis クラスターをスケールダウンする ElastiCache プロセスは完全に手動であり、特に対処しない限 り、データの保持は試みられません。 以下のセクションでは、単一ノード Redis クラスターをより小さいノードタイプにスケールダウンする方 法について説明します。新しいより小さいノードタイプがデータと Redis オーバーヘッドのすべてのニー ズを満たすのに十分な容量であることを確認するのは、新しいクラスターを長期にわたり適切に運用する ために重要です。詳細については、「Redis スナップショットを作成するための十分なメモリがあること の確認 (p. 65)」を参照してください。 トピック • 単一ノード Redis クラスターのスケールダウン ((コンソール)) (p. 185) • 単一ノード Redis キャッシュクラスターのスケールダウン ((AWS CLI)) (p. 186) • 単一ノード Redis (クラスターモードが無効) キャッシュクラスターのスケールダウン ((ElastiCache API)) (p. 186) 単一ノード Redis クラスターのスケールダウン ((コンソール)) 以下の手順では、ElastiCache コンソールを使用して単一ノード Redis クラスターをより小さいノードタ イプにスケールダウンする方法について説明しています。 単一ノード Redis クラスターをスケールダウンするには ((console)) 1. より小さいノードタイプがデータとオーバーヘッドのニーズを満たしていることを確認します。詳細 については、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65)」を 参照してください。 2. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 3. クラスターのスナップショットを作成します。スナップショットを作成する方法の詳細については、 「手動バックアップの作成 (コンソール) (p. 250)」を参照してください。 4. 新しいクラスターに対して新しいノードタイプを指定して、このスナップショットから復元します。 詳細については、「Restoring From a Backup (コンソール) (p. 269)」を参照してください。 または、新しいノードタイプを使用して、新しいクラスターをスナップショットから作成し、起動で きます。詳細については、「Using a Backup to Seed a Cluster (p. 271)」を参照してください。 5. アプリケーションでは、新しいクラスターのエンドポイントにエンドポイントが更新されます。詳 細については、「Redis (クラスターモードが無効) クラスターのエンドポイントの検索 ((コンソー ル)) (p. 55)」を参照してください。 6. 古いクラスターを削除します。詳細については、「クラスターの削除 ((コンソール)) (p. 173)」を参照 してください。 7. スナップショットは不要になったら削除します。詳細については、「Deleting a Backup (コンソー ル) (p. 275)」を参照してください。 Tip クラスターが作成または復元中に使用不可になっても構わない場合は、アプリケーションのエン ドポイントの更新を不要にすることができます。その場合は、スナップショットの作成直後に古 いクラスターを削除し、古いクラスターの名前を新しいクラスターの名前として再利用します。 API Version 2015-02-02 185 Amazon ElastiCache ユーザーガイド 単一ノード Redis キャッシュクラスターのスケールダウン 単一ノード Redis キャッシュクラスターのスケールダウン ((AWS CLI)) 以下の手順では、AWS CLI を使用して単一ノード Redis キャッシュクラスターをより小さいノードタイプ にスケールダウンする方法について説明しています。 単一ノード Redis キャッシュクラスターをスケールダウンするには ((AWS CLI)) 1. より小さいノードタイプがデータとオーバーヘッドのニーズを満たしていることを確認します。詳細 については、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65)」を 参照してください。 2. 既存の Redis キャッシュクラスターのスナップショットを作成します。手順については、「手動バッ クアップの作成 (AWS CLI) (p. 251)」を参照してください。 3. キャッシュクラスターのノードタイプとして新しいより小さいノードタイプを使用して、スナップ ショットから復元します。詳細については、「Restoring From a Backup (AWS CLI) (p. 269)」を参 照してください。 4. アプリケーションで、エンドポイントを新しいキャッシュクラスターのエンドポイントに更新しま す。詳細については、「ノードとクラスターのエンドポイントの検索 (AWS CLI) (p. 59)」を参照して ください。 5. 古いキャッシュクラスターを削除します。詳細については、「キャッシュクラスターの削除 ((AWS CLI)) (p. 173)」を参照してください。 6. スナップショットは不要になったら削除します。詳細については、「Deleting a Backup (AWS CLI) (p. 275)」を参照してください。 Tip キャッシュクラスターが作成または復元中に使用不可になっても構わない場合は、アプリケー ションのエンドポイントの更新を不要にすることができます。その場合は、スナップショット の作成直後に古いキャッシュクラスターを削除し、古いキャッシュクラスターの名前を新しい キャッシュクラスターの名前として再利用します。 単一ノード Redis (クラスターモードが無効) キャッシュクラス ターのスケールダウン ((ElastiCache API)) 以下の手順では、ElastiCache API を使用して単一ノード Redis キャッシュクラスターをより小さいノード タイプにスケールダウンする方法について説明しています。 単一ノード Redis キャッシュクラスターをスケールダウンするには ((ElastiCache API)) 1. より小さいノードタイプがデータとオーバーヘッドのニーズを満たしていることを確認します。詳細 については、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65)」を 参照してください。 2. 既存の Redis キャッシュクラスターのスナップショットを作成します。手順については、「手動バッ クアップの作成 (ElastiCache API) (p. 253)」を参照してください。 3. キャッシュクラスターのノードタイプとして新しいより小さいノードタイプを使用して、ス ナップショットから復元します。詳細については、「Restoring From a Backup (ElastiCache API) (p. 270)」を参照してください。 4. アプリケーションで、エンドポイントを新しいキャッシュクラスターのエンドポイントに更新しま す。詳細については、「ノードとクラスターのエンドポイントの検索 (ElastiCache API) (p. 63)」を参 照してください。 5. 古いキャッシュクラスターを削除します。詳細については、「キャッシュクラスターの削除 ((ElastiCache API)) (p. 173)」を参照してください。 API Version 2015-02-02 186 Amazon ElastiCache ユーザーガイド 単一ノード Redis キャッシュクラスターのスケールダウン 6. スナップショットは不要になったら削除します。詳細については、「Deleting a Backup (ElastiCache API) (p. 275)」を参照してください。 Tip キャッシュクラスターが作成または復元中に使用不可になっても構わない場合は、アプリケー ションのエンドポイントの更新を不要にすることができます。その場合は、スナップショット の作成直後に古いキャッシュクラスターを削除し、古いキャッシュクラスターの名前を新しい キャッシュクラスターの名前として再利用します。 API Version 2015-02-02 187 Amazon ElastiCache ユーザーガイド レプリカノードを含む Redis のクラスターのスケーリング レプリカノードを含む Redis のクラスターのスケー リング レプリカノード (API/CLI ではレプリケーショングループ) を含む Redis クラスターは、自動フェイルオー バーを備えたマルチ AZ が有効なレプリケーションにより、高可用性を実現します。レプリカノードを含 むクラスターは、最大 6 の Redis クラスターの論理的な集合であり、1 つのクラスター (プライマリ) は読 み取りと書き込みの両方のリクエストに対応できます。クラスター内の他のすべてのクラスターは、プラ イマリの読み取り専用レプリカです。プライマリに書き込まれたデータはクラスターのすべてのリードレ プリカに非同期でレプリケートされます。Redis (クラスターモードが無効) では複数のキャッシュクラス ター間でのデータの分割がサポートされていないため、Redis (クラスターモードが無効) レプリケーショ ングループの各クラスターにはキャッシュ全体のデータセットが保存されます。Redis (クラスターモード が有効) クラスターでは、最大 15 のシャード間でのデータの分割がサポートされています。 Important Redis (クラスターモードが有効) の現在の制限のため、ノードのタイプ、シャード (API/CLI で はノードグループ) の数、またはレプリカノードを含む Redis (クラスターモードが有効) クラス ターのシャード内のレプリカの数をスケーリングするには、新しいノードタイプ、シャード数、 またはレプリカ数で新しい Redis (クラスターモードが有効) クラスターを作成してから、古いク ラスターを削除する必要があります。 クラスターのデータ容量を変更するには、より大きいノードタイプにスケールアップするか、より小さい ノードタイプにスケールダウンする必要があります。 クラスターの読み込みキャパシティーを変更するには、最大 5 のリードレプリカを追加するか、リードレ プリカを削除します。 ElastiCache のスケールアッププロセスは、既存のデータをベストエフォートで保持するように設計され ており、Redis レプリケーションが正常に実行される必要があります。レプリカを含む Redis クラスター の場合、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65)」トピックで 説明しているように、Redis 用に十分なメモリを確保することをお勧めします。 スケールダウンプロセスは完全に手動であり、特に対処しない限り、データの保持は試みられません。 関連トピック • ElastiCache レプリケーション (Redis) (p. 199) • レプリケーション: Redis (クラスターモードが無効) と Redis (クラスターモードが有効) (p. 202) • レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis) (p. 205) • Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65) トピック • レプリカを含む Redis クラスターのスケールアップ (p. 189) • レプリカを含む Redis クラスターのスケールダウン (p. 195) • 読み込みキャパシティーの増加 (p. 197) • 読み込みキャパシティーの削減 (p. 198) API Version 2015-02-02 188 Amazon ElastiCache ユーザーガイド レプリカを含む Redis クラスターのスケールアップ レプリカを含む Redis クラスターのスケールアップ Important Redis (クラスターモードが有効) の現在の制限のため、レプリカを含む Redis (クラスターモード が有効) クラスターのノードグループでノードグループ数またはノードタイプをスケーリングする には、新しいノードグループ数またはノードタイプで新しい Redis (クラスターモードが有効) ク ラスターを作成してから、古いレプリケーショングループを削除する必要があります。 Amazon ElastiCache では、コンソール、CLI、API を使用した Redis (クラスターモードが無効) レプリ ケーショングループのスケールアップがサポートされています。 スケールアッププロセスが開始されると、ElastiCache によって以下の処理が実行されます。 1. プライマリノードに対するすべての読み取りと書き込みをブロックします。ElastiCache で、現行の レプリカから新しいレプリカに切り替えている間に一時的に中断されると、レプリカからの読み込み はステップ 5 まで続きます。 2. 新しいノードタイプを使用して、新しい Redis レプリケーショングループを起動します。 3. 4. 現行プライマリノードのすべてのデータを新しいプライマリノードにコピーします。 新しいリードレプリカを新しいプライマリノードと同期させます。 5. 新しいノードを参照するように DNS エントリを更新します。このため、アプリケーションのエンド ポイントを更新する必要はありません。 Important 6. ElastiCache が現在のレプリカを新しいレプリカに切り替える間、リードレプリカノードから の読み込みが中断されます。 新しいプライマリノードに対する読み取りと書き込みを再開します。 7. 古いクラスター (CLI/API: レプリケーショングループ) を削除します。 このプロセスの所要時間はノードタイプとクラスターのデータ量によって異なります。 以下の表に示しているように、クラスターの次のメンテナンス期間にエンジンのアップグレードがスケ ジュールされている場合、Redis のスケールアップオペレーションはブロックされます。 ブロックされた Redis オペレーション 保留中のオペレーション ブロックされたオペレーション スケールアップ 即時のエンジンのアップグレード エンジンのアップグレード 即時のスケールアップ スケールアップとエンジンのアップグレード 即時のスケールアップ 即時のエンジンのアップグレード 保留中のオペレーションによってブロックされている場合は、以下のいずれかを行うことができます。 • 次のメンテナンス期間に Redis スケールアップオペレーションをスケジュールします。そのためには、 [Apply immediately] チェックボックスをオフにします (CLI では --no-apply-immediately、API では ApplyImmediately=false を使用)。 • Redis のスケールアップオペレーションを実行する次のメンテナンス期間 (またはその後) まで待ちま す。 • このキャッシュクラスターの変更に Redis エンジンのアップグレードを追加します。そのためには、 [Apply Immediately] チェックボックスをオンにします (CLI では --apply-immediately、API では API Version 2015-02-02 189 Amazon ElastiCache ユーザーガイド レプリカを含む Redis クラスターのスケールアップ ApplyImmediately=true を使用)。これにより、エンジンのアップグレードがすぐに実行されて、スケー ルアップオペレーションのブロックが解除されます。 以下のセクションでは、ElastiCache コンソール、AWS CLI、ElastiCache API を使用して、レプリカを含 む Redis のクラスターをスケールアップする方法について説明します。 レプリカを含む Redis クラスターのスケールアップ ((コンソー ル)) 以下のプロセスでは、ElastiCache コンソールを使用して、レプリカを含むクラスターをその現在のノー ドタイプから新しいより大きいノードタイプにスケーリングします。このプロセスの実行中、ステータス が [modifying] から [available] に変わるまで、アプリケーションとプライマリキャッシュクラスターとの間 ですべての読み取りと書き込みはブロックされます。 より大きいノードタイプへのスケールアップにかかる時間はノードタイプと現在のクラスターのデータ量 によって異なります。 レプリカを含む Redis クラスターをスケールアップするには ((console)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Redis] を選択します。 3. クラスターのリストから、スケールアップするクラスターを選択します。このクラスター は、Clustered Redis エンジンではなく Redis エンジンを実行している必要があります。 4. [Modify] を選択します。 5. [Modify Cluster] ダイアログボックスの [Node Types] で、スケールアップするノードのタイプを選択 します。 6. スケールアッププロセスをすぐに実行する場合は、[Apply immediately] チェックボックスをオンにし ます。[Apply immediately] チェックボックスをオフのままにすると、スケールアッププロセスはこの クラスターの次のメンテナンス期間中に実行されます。 7. [Modify] を選択します。 8. クラスターのステータスが [modifying] から [available] に変わると、クラスターは新しいノードタイプ にスケーリングされ、その使用を再開できます。アプリケーションでエンドポイントを更新する必要 はありません。 Redis レプリケーショングループのスケールアップ ((AWS CLI)) 以下のプロセスでは、AWS CLI を使用して、レプリケーショングループ (コンソールではレプリカを含む クラスター) をその現在のノードタイプから新しいより大きいノードタイプにスケーリングします。この プロセスの実行中、ステータスが [modifying] から [available] に変わるまで、アプリケーションとプライマ リキャッシュクラスターとの間ですべての読み取りと書き込みはブロックされます。 より大きいノードタイプへのスケールアップにかかる時間はノードタイプと現在のキャッシュクラスター のデータ量によって異なります。 Redis レプリケーショングループをスケールアップするには ((AWS CLI)) 1. 以下のパラメータを使用して AWS CLI list-allowed-node-type-modifications コマンドを実行す ることで、スケールアップできるノードタイプを調べます。 • --replication-group-id - レプリケーショングループの名前。すべてのレプリケーショングループ ではなく特定のレプリケーショングループの定義を表示するには、このパラメータを使用します。 API Version 2015-02-02 190 Amazon ElastiCache ユーザーガイド レプリカを含む Redis クラスターのスケールアップ Linux, macOS, or Unix 用: aws elasticache list-allowed-node-type-modifications \ --replication-group-id my-repl-group Windows の場合: aws elasticache list-allowed-node-type-modifications ^ --replication-group-id my-repl-group このオペレーションによる出力は、次のようになります。 { "ScaleUpModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] } 詳細については、『AWS CLI リファレンス』の「list-allowed-node-type-modifications」を参照してく ださい。 2. 以下のパラメーターを指定して AWS CLI modify-replication-group コマンドを使用することで、現 在のレプリケーショングループを新しいノードタイプにスケールアップします。 • --replication-group-id - レプリケーショングループの名前。 • --cache-node-type - このレプリケーショングループのキャッシュクラスターの新しいより大きい ノードタイプ。この値は、手順 1 で list-allowed-node-type-modifications コマンドによって返 されるインスタンスタイプのいずれかであることが必要です。 • --apply-immediately - スケールアッププロセスがすぐに適用されるようにします。スケールアッ プオペレーションを次のメンテナンス期間に延期するには、--no-apply-immediately を使用しま す。 Linux, macOS, or Unix 用: aws elasticache modify-replication-group \ --replication-group-id my-repl-group \ --cache-node-type cache.m3.2xlarge \ --apply-immediately Windows の場合: aws elasticache modify-replication-group ^ --replication-group-id my-repl-group ^ API Version 2015-02-02 191 Amazon ElastiCache ユーザーガイド レプリカを含む Redis クラスターのスケールアップ --cache-node-type cache.m3.2xlarge ^ --apply-immediately このコマンドによる出力は次のようになります。 { "ReplicationGroup": { "Status": "available", "Description": "Some description", "NodeGroups": [ { "Status": "available", "NodeGroupMembers": [ { "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-replgroup-001.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-replgroup-002.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-002" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "my-repl-group.8fdx4s.ng.0001.usw2.cache.amazonaws.com" } } ], "ReplicationGroupId": "my-repl-group", "SnapshotRetentionLimit": 1, "AutomaticFailover": "disabled", "SnapshotWindow": "12:00-13:00", "SnapshottingClusterId": "my-repl-group-002", "MemberClusters": [ "my-repl-group-001", "my-repl-group-002", ], "PendingModifiedValues": {} } } 詳細については、『AWS CLI リファレンス』の「modify-replication-group」を参照してください。 3. --apply-immediately パラメータを使用した場合、以下のパラメータを指定して AWS CLI describereplication-group コマンドを使用することで、レプリケーショングループのステータスをモニタリ ングします。ステータスが [modifying] から [available] に変わると、スケールアップした新しいレプリ ケーショングループへの書き込みを開始できます。 API Version 2015-02-02 192 Amazon ElastiCache ユーザーガイド レプリカを含む Redis クラスターのスケールアップ • --replication-group-id - レプリケーショングループの名前。すべてのレプリケーショングループ ではなく特定のレプリケーショングループの定義を表示するには、このパラメータを使用します。 Linux, macOS, or Unix 用: aws elasticache describe-replication-group \ --replication-group-id my-replication-group Windows の場合: aws elasticache describe-replication-groups ^ --replication-group-id my-replication-group 詳細については、『AWS CLI リファレンス』の「describe-replication-groups」を参照してください。 Redis レプリケーショングループのスケールアップ ((ElastiCache API)) 以下のプロセスでは、ElastiCache API を使用して、レプリケーショングループをその現在のノードタ イプから新しいより大きいノードタイプにスケーリングします。このプロセスの実行中、ステータスが [modifying] から [available] に変わるまで、アプリケーションとプライマリキャッシュクラスターとの間で すべての読み取りと書き込みはブロックされます。ただし、リードレプリカキャッシュクラスターからの 読み取りは中断されません。 より大きいノードタイプへのスケールアップにかかる時間はノードタイプと現在のキャッシュクラスター のデータ量によって異なります。 Redis レプリケーショングループをスケールアップするには ((ElastiCache API)) 1. 以下のパラメータを指定して ElastiCache API ListAllowedNodeTypeModifications アクションを使 用することで、スケールアップできるノードタイプを調べます。 • ReplicationGroupId - レプリケーショングループの名前。すべてのレプリケーショングループでは なく特定のレプリケーショングループの定義を表示するには、このパラメータを使用します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 2. 詳細については、『Amazon ElastiCache API リファレンス』の 「ListAllowedNodeTypeModifications」を参照してください。 以下のパラメータを指定して ModifyRedplicationGroup ElastiCache API アクションを使用すること で、現在のレプリケーショングループを新しいノードタイプにスケールアップします。 • ReplicationGroupId - レプリケーショングループの名前。 • CacheNodeType - このレプリケーショングループのキャッシュクラスターの新しいより大きいノー ドタイプ。この値は、手順 1 で ListAllowedNodeTypeModifications アクションによって返される インスタンスタイプのいずれかであることが必要です。 API Version 2015-02-02 193 Amazon ElastiCache ユーザーガイド レプリカを含む Redis クラスターのスケールアップ • ApplyImmediately - スケールアッププロセスがすぐに適用されるようにするには、true に設定し ます。スケールアッププロセスを次のメンテナンス期間に延期するには、ApplyImmediately=false を使用します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.m3.2xlarge &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> 3. 詳細については、『Amazon ElastiCache API リファレンス』の「ModifyReplicationGroup」を参照し てください。 ApplyImmediately=true を使用した場合、以下のパラメータを指定して ElastiCache API DescribeReplicationGroups アクションを使用することで、レプリケーショングループのステータス をモニタリングします。ステータスが [modifying] から [available] に変わると、スケールアップした新 しいレプリケーショングループへの書き込みを開始できます。 • ReplicationGroupId - レプリケーショングループの名前。すべてのレプリケーショングループでは なく特定のレプリケーショングループの定義を表示するには、このパラメータを使用します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、『Amazon ElastiCache API リファレンス』の「DescribeReplicationGroups」を参照 してください。 API Version 2015-02-02 194 Amazon ElastiCache ユーザーガイド レプリカを含む Redis クラスターのスケールダウン レプリカを含む Redis クラスターのスケールダウン 以下のセクションでは、レプリカノードを含む Redis (クラスターモードが無効) キャッシュクラスターを より小さいノードタイプにスケールダウンする方法について説明します。新しいより小さいノードタイプ がデータとオーバーヘッドのすべてのニーズを満たすのに十分な容量であることを確認するのは、新しい クラスターを長期にわたり適切に運用するために重要です。詳細については、「Redis スナップショット を作成するための十分なメモリがあることの確認 (p. 65)」を参照してください。 トピック • レプリカを含む Redis クラスターのスケールダウン ((コンソール)) (p. 195) • Redis レプリケーショングループのスケールダウン ((AWS CLI)) (p. 195) • Redis レプリケーショングループのスケールダウン ((ElastiCache API)) (p. 196) レプリカを含む Redis クラスターのスケールダウン ((コンソー ル)) 以下のプロセスでは、ElastiCache コンソールを使用して、レプリカノードを含む Redis クラスターをよ り小さいノードタイプにスケーリングします。 レプリカノードを含む Redis のクラスターをスケールダウンするには ((console)) 1. より小さいノードタイプがデータとオーバーヘッドのニーズを満たしていることを確認します。詳細 については、「Redis スナップショットを作成するための十分なメモリがあることの確認 (p. 65)」を 参照してください。 2. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 3. クラスターのプライマリノードのスナップショットを作成します。スナップショットを作成する方法 の詳細については、「手動バックアップの作成 (コンソール) (p. 250)」を参照してください。 4. 新しいクラスターに対して新しいノードタイプを指定して、このスナップショットから復元します。 詳細については、「Restoring From a Backup (コンソール) (p. 269)」を参照してください。 または、新しいノードタイプを使用して、新しいクラスターをスナップショットから作成し、起動で きます。詳細については、「Using a Backup to Seed a Cluster (p. 271)」を参照してください。 5. アプリケーションでは、新しいクラスターのエンドポイントにエンドポイントが更新されます。詳 細については、「Redis (クラスターモードが無効) クラスターのエンドポイントの検索 ((コンソー ル)) (p. 55)」を参照してください。 6. 古いクラスターを削除します。詳細については、「レプリケーショングループの削除 ((コンソー ル)) (p. 239)」を参照してください。 7. スナップショットは不要になったら削除します。詳細については、「Deleting a Backup (コンソー ル) (p. 275)」を参照してください。 Tip レプリケーショングループが作成または復元中に使用不可になっても構わない場合は、アプリ ケーションのエンドポイントの更新を不要にすることができます。その場合は、スナップショッ トの作成直後に古いクラスターを削除し、古いクラスターの名前を新しいクラスターの名前とし て再利用します。 Redis レプリケーショングループのスケールダウン ((AWS CLI)) 以下のプロセスでは、AWS CLI を使用して、Redis レプリケーショングループをより小さいノードタイプ にスケーリングします。 API Version 2015-02-02 195 Amazon ElastiCache ユーザーガイド レプリカを含む Redis クラスターのスケールダウン Redis レプリケーショングループをスケールダウンするには ((AWS CLI)) 1. 2. 3. 4. より小さいノードタイプがデータとオーバーヘッドのニーズを満たしていることを確認します。詳細 については、「Redis ノードサイズの選択 (p. 84)」を参照してください。 既存の Redis ノードのスナップショットを作成します。手順については、「手動バックアップの作成 (AWS CLI) (p. 251)」を参照してください。 新しいノードタイプとして新しいより小さいノードタイプを使用して、スナップショットから復元し ます。詳細については、「Restoring From a Backup (AWS CLI) (p. 269)」を参照してください。 アプリケーションで、エンドポイントを新しいキャッシュクラスターのエンドポイントに更新しま す。詳細については、「レプリケーショングループのエンドポイントの検索 (AWS CLI) (p. 60)」を参 照してください。 5. 古いレプリケーショングループを削除します。詳細については、「レプリケーショングループの削除 ((AWS CLI)) (p. 239)」を参照してください。 6. スナップショットは不要になったら削除します。詳細については、「Deleting a Backup (AWS CLI) (p. 275)」を参照してください。 Tip レプリケーショングループが作成または復元中に使用不可になっても構わない場合は、アプリ ケーションのエンドポイントの更新を不要にすることができます。その場合は、スナップショッ トの作成直後に古いレプリケーショングループを削除し、古いレプリケーショングループの名前 を新しいレプリケーショングループの名前として再利用します。 Redis レプリケーショングループのスケールダウン ((ElastiCache API)) 以下のプロセスでは、ElastiCacheAPI を使用して、Redis レプリケーショングループをより小さいノード タイプにスケーリングします。 Redis レプリケーショングループをスケールダウンするには ((ElastiCache API)) 1. 2. 3. 4. 5. 6. より小さいノードタイプがデータとオーバーヘッドのニーズを満たしていることを確認します。詳細 については、「Redis ノードサイズの選択 (p. 84)」を参照してください。 既存の Redis キャッシュクラスターのスナップショットを作成します。手順については、「手動バッ クアップの作成 (ElastiCache API) (p. 253)」を参照してください。 新しいノードタイプとして新しいより小さいノードタイプを使用して、スナップショットから復元し ます。詳細については、「Restoring From a Backup (ElastiCache API) (p. 270)」を参照してくださ い。 アプリケーションで、エンドポイントを新しいキャッシュクラスターのエンドポイントに更新しま す。詳細については、「エンドポイントの検索 (ElastiCache API) (p. 63)」を参照してください。 古いレプリケーショングループを削除します。詳細については、「レプリケーショングループの削除 ((ElastiCache API)) (p. 239)」を参照してください。 スナップショットは不要になったら削除します。詳細については、「Deleting a Backup (ElastiCache API) (p. 275)」を参照してください。 Tip レプリケーショングループが作成または復元中に使用不可になっても構わない場合は、アプリ ケーションのエンドポイントの更新を不要にすることができます。その場合は、スナップショッ トの作成直後に古いレプリケーショングループを削除し、古いレプリケーショングループの名前 を新しいレプリケーショングループの名前として再利用します。 API Version 2015-02-02 196 Amazon ElastiCache ユーザーガイド 読み込みキャパシティーの増加 読み込みキャパシティーの増加 読み込みキャパシティーを増やすには、Redis レプリケーショングループにリードレプリカ (最大 5 個) を 追加します。 Important Redis (クラスターモードが有効) での現在の制限のため、Redis (クラスターモードが有効) クラス ターのシャード内のレプリカの数をスケーリングするには、新しいレプリカ数で新しい Redis (ク ラスターモードが有効) クラスターを作成してから、古いクラスターを削除する必要があります。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、Redis クラスターの読み込み キャパシティーをスケーリングできます。詳細については、「Redis クラスターへのリードレプリカの追 加 (p. 240)」を参照してください。 API Version 2015-02-02 197 Amazon ElastiCache ユーザーガイド 読み込みキャパシティーの削減 読み込みキャパシティーの削減 読み込みキャパシティーを減らすには、レプリカを含む Redis クラスター (API/CLI ではレプリケーショ ングループ) から 1 つ以上のリードレプリカを削除します。クラスターで自動フェイルオーバーを備え たマルチ AZ が有効な場合は、最初に自動フェイルオーバーを備えたマルチ AZ を無効にしないと、最 後のリードレプリカを削除することはできません。詳細については、「レプリカを持つクラスターの変 更 (p. 237)」を参照してください。 Important Redis (クラスターモードが有効) での現在の制限のために、レプリカを含む Redis (クラスター モードが有効) クラスターのノードグループ内のレプリカの数をスケーリングするには、新しいレ プリカ数で新しい Redis (クラスターモードが有効) クラスターを作成してから、古いレプリケー ショングループを削除する必要があります。 詳細については、「リードレプリカの削除 (p. 245)」を参照してください。 API Version 2015-02-02 198 Amazon ElastiCache ユーザーガイド ElastiCache レプリケーション (Redis) 単一ノード Amazon ElastiCache Redis クラスターは、データ保護サービス (AOF) が制限されるメモリ内 エンティティです。クラスターが何らかの理由で停止すると、クラスターのすべてのデータが失われる恐 れがあります。ただし Redis エンジンを実行している場合は、2 〜 6 個のノードをクラスターとしてグ ループ化できます。この場合、1 ~ 5 個の読み取り専用クラスターは、グループに 1 個含まれる読み書き プライマリのレプリカデータです。このシナリオでは、1 個のクラスターが何らかの理由で停止した場合 でも 1 個以上の他のクラスターにレプリケートされているので、すべてのデータが失われることがありま せん。 次のグラフに示すように、レプリケーション構造は Redis クラスターを構成するシャード (API/CLI で はノードグループ) 内に含まれます。Redis (クラスターモードが無効) クラスターは常に 1 つのシャードで 構成されます。Redis (クラスターモードが有効) クラスターは、最大 15 個のシャードで構成し、シャード 間でクラスターのデータを分割できます。 レプリカノードを持つ Redis クラスター レプリカを持つクラスターでマルチ AZ と自動フェイルオーバーが有効になっていると、プライマリで障 害が発生した場合、プライマリはリードレプリカにフェイルオーバーします。データがレプリカノードに 非同期で更新されるため、レプリカノードの更新のレイテンシーにより多少のデータが失われる場合があ ります。詳細については、「Redis 実行時の障害の軽減 (p. 69)」を参照してください。 トピック • Redis レプリケーション (p. 201) API Version 2015-02-02 199 Amazon ElastiCache ユーザーガイド • レプリケーション: Redis (クラスターモードが無効) と Redis (クラスターモードが有効) (p. 202) • • • • • レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis) (p. 205) 同期とバックアップの実装方法 (p. 211) レプリカを持つ Redis クラスターの作成 (p. 212) レプリケーショングループの詳細の表示 (p. 231) レプリケーショングループのエンドポイントの検索 (p. 236) • レプリカを持つクラスターの変更 (p. 237) • レプリカを持つクラスターの削除 (p. 239) • Redis クラスターへのリードレプリカの追加 (p. 240) • リードレプリカをプライマリに昇格させる (p. 242) • リードレプリカの削除 (p. 245) API Version 2015-02-02 200 Amazon ElastiCache ユーザーガイド Redis レプリケーション Redis レプリケーション Redis は 2 つの方法でレプリケーションを実装するようになりました。1) Redis (クラスターモードが無効) は単一のシャードで構成され、そのノードにクラスターのすべてのデータが含まれます。2) Redis (クラス ターモードが有効) は最大 15 のシャードで構成され、シャード間でデータが分割されます。 Redis (クラスターモードが無効) Redis (クラスターモードが無効) クラスターは Redis ノードの集合であり、1 個の読み書きプライマリ ノードと、最大 five 個の読み取り専用セカンダリノード (リードレプリカと呼ばれます) で構成されます。 各リードレプリカは、クラスターのプライマリノードにあるデータのコピーを保持します。非同期レプリ ケーション機能は、リードレプリカとプライマリの同期を維持するのに使用されます。アプリケーション は、クラスター内のどのノードからでも読み取ることができます。アプリケーションは、そのプライマリ ノードにのみ書き込むことができます。リードレプリカは、読み取りスループットを向上させ、データ損 失に対する保護を強化します。 レプリカノードを持つ Redis クラスター レプリカを持つ Redis (クラスターモードが無効) クラスターを使用して ElastiCache の Redis ソリュー ションをスケールし、大量の読み込みを行うアプリケーションを処理したり、同じクラスターから同時に 読み込みを実行する多数のクライアントをサポートしたりすることができます。 Redis (クラスターモードが無効) クラスターのすべてのノードは、同じリージョンに存在する必要があり ます。耐障害性を向上させるために、そのリージョン内の複数のアベイラビリティーゾーンにリードレ プリカをプロビジョニングできます。クラスターにリードレプリカを追加すると、プライマリのすべての データがリードレプリカにコピーされます。その時点から、データがプライマリに書き込まれるときには 常に、変更が非同期的にすべてのリードレプリカに反映されます。アプリケーションはリードレプリカに 接続してクラスター内のデータにアクセスできます (ただし、レプリカにデータを書き込むことはできま せん)。 耐障害性を向上させて書き込みのダウンタイム減少させるには、レプリカを持つ Redis クラスターにマル チ AZ と自動フェイルオーバーを実装します。詳細については、「レプリケーション: 自動フェイルオー バーとマルチ AZ (Redis) (p. 205)」を参照してください。 クラスター内のノードのロールを変更し、プライマリといずれかのレプリカのロールを交換できます。こ の作業は、パフォーマンスチューニングの理由で実行することがあります。たとえば、書き込みアクティ ビティが多いウェブアプリケーションでは、ネットワークレイテンシーが最も低いノードを選択すること ができます。詳細については、「リードレプリカをプライマリに昇格させる (p. 242)」を参照してくださ い。 Redis (クラスターモードが有効) Redis (クラスターモードが有効) クラスターは、1 〜 15 個のシャードで構成されます。各シャードは、プ ライマリノードと最大 five 個の読み取り専用セカンダリノード (リードレプリカ) で構成されます。各リー API Version 2015-02-02 201 Amazon ElastiCache ユーザーガイド レプリケーション: Redis (クラスターモード が無効) と Redis (クラスターモードが有効) ドレプリカは、プライマリからのデータのコピーを維持します。非同期レプリケーション機能は、リード レプリカとプライマリの同期を維持するのに使用されます。アプリケーションは、クラスター内のどの ノードからでも読み取ることができます。アプリケーションは、そのプライマリノードにのみ書き込むこ とができます。リードレプリカは、読み取り拡張性およびデータ損失に対する保護を強化します。データ は Redis (クラスターモードが有効) クラスター内のシャード間で分割されます。 アプリケーションは、Redis (クラスターモードが有効) クラスターの設定エンドポイントを使用してクラ スターのノードと接続できます。詳細については、「ElastiCache エンドポイントの検索 (p. 52)」を参照 してください。 レプリカノードを持つ Redis (クラスターモードが有効) クラスター クラスター内のすべてのノードは、同じリージョンに存在する必要があります。耐障害性を向上させるた めに、そのリージョン内の複数のアベイラビリティーゾーンにプライマリとリードレプリカの両方をプロ ビジョニングできます。アプリケーションはリードレプリカに接続してクラスター内のデータにアクセス できます (ただし、レプリカにデータを書き込むことはできません)。 Redis (クラスターモードが有効) クラスターには、マルチ AZ と自動フェイルオーバーが必要です。詳細に ついては、「レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis) (p. 205)」を参照してくださ い。 現時点の Redis (クラスターモードが有効) には、いくつかの制限があります。 • いずれのレプリカノードもプライマリに昇格できません。 • マルチ AZ と自動フェイルオーバーが必要です。 • クラスター、ノードタイプ、シャード数の構造は作成時に固定され、変更することはできません。 レプリケーション: Redis (クラスターモードが無効) と Redis (クラスターモードが有効) Redis バージョン 3.2 以降では、2 つの異なるタイプの Redis クラスターを作成できます。Redis (クラス ターモードが無効) (すべての Redis バージョン) クラスターは常に 1 つのシャードと最大 5 個のリードレ プリカノードで構成されます。Redis (クラスターモードが有効) クラスターは、最大 15 個のシャードと、 シャードごとに 1 〜 5 個のリードレプリカノードで構成されます。 API Version 2015-02-02 202 Amazon ElastiCache ユーザーガイド レプリケーション: Redis (クラスターモード が無効) と Redis (クラスターモードが有効) Redis (クラスターモードが無効) クラスターと Redis (クラスターモードが有効) クラスター 次の表は、Redis (クラスターモードが無効) クラスターと Redis (クラスターモードが有効) クラスターの 重要な相違点をまとめたものです。 Redis (クラスターモードが無効) クラスターと Redis (クラスターモードが有効) クラスターの比 較 機能 Redis (クラスターモードが無効) Redis (クラスターモードが有効) 変更可能 はい。レプリカノードの追加と 削除、およびノードタイプの スケールアップをサポートしま す。 いいえ. 現在、クラスター作成後 の変更はサポートされていませ ん。 データのパーティション化 いいえ はい シャード 1 1~ 15 ノードグループ数は、レ プリケーショングループの作成 時に設定されます。 リードレプリカ 0~5 0 ~ 5 (シャードあたり)。 Important レプリカがない場合、 ノードに障害が発生する と、データ損失が発生し ます。 マルチ AZ と自動フェイルオー バー はい、少なくとも 1 つのレプリ カ。 はい。必須。 オプション、デフォルト。 スナップショット (バックアップ) はい、1 つの .rdb ファイルを作 成。 はい、シャードごとに独自 の .rdb ファイルを作成。 復元 はい。1 つの .rdb ファイルを使 用。 はい、シャードごとに独自 の .rdb ファイルを使用。 サポート Redis のすべてのバージョン Redis 3.2 以降 API Version 2015-02-02 203 Amazon ElastiCache ユーザーガイド どちらを使用すればよいですか? 機能 Redis (クラスターモードが無効) Redis (クラスターモードが有効) エンジンがアップグレード可能 はい 該当なし どちらを使用すればよいですか? Redis (クラスターモードが無効) または Redis (クラスターモードが有効) のどちらかを選択する場合は、 以下の要因を考慮する必要があります。 • スケーリングとパーティション化 – ビジネスには変化が必要です。ピーク需要に対してプロビジョニ ングするか、需要の変化に応じてスケールする必要があります。Redis (クラスターモードが無効) はス ケーリングをサポートしています。レプリカノードを追加または削除して読み取り容量をスケールす るか、より大きいノードタイプにスケールアップして容量をスケールできます。両方のオペレーション には時間がかかります。詳細については、「レプリカノードを含む Redis のクラスターのスケーリン グ (p. 188)」を参照してください。 現在、Redis (クラスターモードが有効) はスケーリングをサポートしていませんが、最大 15 個のノード までデータのパーティション化をサポートします。パーティション化の 1 つの利点は、より多くのエン ドポイントに負荷を分散し、ピーク需要時のアクセスのボトルネックを減らすことです。また、データ を複数のサーバーに分散させることができるため、より大規模なデータセットに対応できます。Redis (クラスターモードが有効) では、作成後のレプリケーショングループのパーティション数を変更できま せん。 • ノードサイズとノード数 – Redis (クラスターモードが無効) クラスターのシャードは 1 つだけであるた め、ノードタイプはクラスターのすべてのデータと必要なオーバーヘッドに対応できるだけの大きさで ある必要があります。一方、Redis (クラスターモードが有効) クラスターでは複数のシャード間でデー タを分割できるため、ノードタイプはより小さくできます。ただし、全体ではノード数が増えます。 • 読み取りと書き込み – クラスターのプライマリロードがデータを読み取るアプリケーションである場 合、リードレプリカを追加、削除することで Redis (クラスターモードが無効) クラスターをスケールで きます。ただし、リードレプリカの最大数は 5 であることに注意する必要があります。クラスターの書 き込み負荷が高い場合は、複数のシャードを持つ Redis (クラスターモードが有効) クラスターの追加の 書き込みエンドポイントが役立ちます。 どちらのクラスターを実装する場合でも、現在および将来のニーズに合ったノードタイプを選択してくだ さい。詳細については、「Redis ノードサイズの選択 (p. 84)」を参照してください。 API Version 2015-02-02 204 Amazon ElastiCache ユーザーガイド レプリケーション: 自動フェイ ルオーバーとマルチ AZ (Redis) レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis) 自動フェイルオーバー機能を備えた Amazon ElastiCache のマルチ AZ を Redis クラスター (API/CLI では レプリケーショングループ) で有効にすると、何らかの理由でクラスターの読み書き可能プライマリクラ スターにアクセス不能になったり障害が発生したりした場合の、耐障害性が向上します。 トピック • 自動フェイルオーバーの概要 (p. 205) • 自動フェイルオーバーとRedis マルチ AZ に関する注意事項 (p. 205) • マルチ AZ および自動フェイルオーバーレスポンスの障害シナリオ (p. 206) • マルチ AZ で自動フェイルオーバーを有効にする (p. 209) 自動フェイルオーバーの概要 ElastiCache クラスターは、プライマリノードと最大 5 つのリードレプリカノードで構成されます。計画 された特定のタイプのメンテナンス中、またはプライマリノードまたはアベイラビリティーゾーンの予期 しない障害が発生した場合に、クラスターでマルチ AZ が有効にされていると、ElastiCache はプライマリ ノードの障害を自動的に検出し、リードレプリカノードを選択してそれにプライマリクラスターを昇格さ せて、昇格が完了するとすぐに新しいプライマリクラスターに書き込みを再開できるようにします。アプ リケーションがプライマリエンドポイントに書き込みを行っている場合に、アプリケーションでエンドポ イントを変更しなくてもよいように、ElastiCache は昇格されたレプリカの DNS も伝達します。ただし、 個々のエンドポイントから読み取りを行うため、プライマリに昇格されたレプリカのリードエンドポイン トを新しいレプリカのエンドポイントに変更する必要があります。 昇格プロセスは通常、数分かかります。マルチ AZ を有効にしていない場合は、新しいプライマリを再度 作成してプロビジョニングするよりも大幅に高速です。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してマルチ AZ と自動フェイルオー バーを有効にできます。 自動フェイルオーバーとRedis マルチ AZ に関する注 意事項 次の点に注意する必要があります。 • 自動フェイルオーバー機能を持つマルチ AZ は Redis バージョン 2.8.6 以降でのみサポートされます。 • Redis マルチ 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 205 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 206 Amazon ElastiCache ユーザーガイド マルチ AZ および自動フェイル オーバーレスポンスの障害シナリオ 障害が発生したプライマリノードの自動フェイルオーバー プライマリノードでのみ障害が発生した場合の、自動フェイルオーバーを備えた ElastiCache マ ルチ AZ のアクション 1. 障害が発生したプライマリノードがオフラインになります。 2. レプリケーションの遅延が最短のリードレプリカがプライマリに昇格されます。 書き込みは、昇格プロセスが完了するとすぐに (通常は数分) 再開できます。アプリケーションがプラ イマリエンドポイントに書き込む場合、ElastiCache は、昇格されたレプリカの DNS を伝達するとき に、書き込み用のエンドポイントを変更する必要はありません。 3. 置き換えられたリードレプリカが起動し、プロビジョニングされます。 ノードのディストリビューションが維持されるように、障害が発生したプライマリノードがあったア ベイラビリティーゾーンで置き換えリードレプリカが起動されます。 4. レプリカが新しいプライマリノードと同期されます。 新しいレプリカが使用可能になったら、アプリケーションで以下の変更を実行する必要がありま す: • プライマリエンドポイント – 新しいプライマリノードの DNS がプライマリエンドポイントに伝達され るため、アプリケーションに変更は加えません。 • リードエンドポイント – 障害が発生したプライマリのリードエンドポイントを新しいレプリカのエンド ポイントに置き換えます。 クラスターのエンドポイントの検索については、以下のトピックを参照してください。 • Redis (クラスターモードが無効) クラスターのエンドポイントの検索 ((コンソール)) (p. 55) • レプリケーショングループのエンドポイントの検索 (AWS CLI) (p. 60) • レプリケーショングループのエンドポイントの検索 (ElastiCache API) (p. 63) プライマリノードといくつかのリードレプリカで障害が発生した 場合 1 つのリードレプリカを除くすべてで障害が発生した場合、残りの利用可能なレプリカはプライマリクラ スターに昇格され、新しいリードレプリカが作成されてプロビジョニングされます。 API Version 2015-02-02 207 Amazon ElastiCache ユーザーガイド マルチ AZ および自動フェイル オーバーレスポンスの障害シナリオ プライマリノードといくつかのリードレプリカで障害が発生した場合の、ElastiCache マルチ AZ のアクション 1. 障害が発生したプライマリノードとリードレプリカがオフラインになります。 2. レプリケーションの遅延が最短の使用可能なレプリカがプライマリノードに昇格されます。 書き込みは、昇格プロセスが完了するとすぐに (通常は数分) 再開できます。アプリケーションがプラ イマリエンドポイントに書き込む場合、ElastiCache は、昇格されたレプリカの DNS を伝達するとき に、書き込み用のエンドポイントを変更する必要はありません。 3. 複数の置き換えレプリカを作成してプロビジョニングします。 ノードのディストリビューションが維持されるように、障害が発生したノードのアベイラビリティー ゾーンで置き換えレプリカが作成されます。 4. すべてのクラスターが新しいプライマリノードと同期されます。 新しいノードが使用可能になったら、アプリケーションに以下の変更を加える必要があります。 • プライマリエンドポイント – 新しいプライマリノードの DNS がプライマリエンドポイントに伝達され るため、アプリケーションに変更は加えません。 • リードエンドポイント – 障害が発生したプライマリとレプリカのリードエンドポイントを新しいレプリ カのノードエンドポイントに置き換えます。 レプリケーショングループのエンドポイントの検索については、次のトピックを参照してください: • Redis (クラスターモードが無効) クラスターのエンドポイントの検索 ((コンソール)) (p. 55) • レプリケーショングループのエンドポイントの検索 (AWS CLI) (p. 60) • レプリケーショングループのエンドポイントの検索 (ElastiCache API) (p. 63) クラスター全体に障害が発生した場合 すべてで障害が発生した場合は、すべてのノードが再作成されてプロビジョニングされます。 このシナリオでは、クラスター内のすべてのデータがクラスター内のすべてのノードの障害のために失わ れます。これはまれにしか発生しません。 クラスター全体に障害が発生した場合の ElastiCache マルチ AZ のアクション 1. 障害が発生したプライマリノードとリードレプリカがオフラインになります。 2. 置き換えプライマリノードが作成され、プロビジョニングされます。 3. 複数の置き換えレプリカを作成してプロビジョニングします。 ノードのディストリビューションが維持されるように、障害が発生したノードのアベイラビリティー ゾーンで置き換えレプリカが作成されます。 Note クラスター全体に障害が発生したため、データが失われ、すべての新しいノードがコールド 起動されます。 置き換え先の各ノードには置き換え元のノードと同じエンドポイントが含まれるため、アプリケーション でエンドポイントを変更する必要はありません。 レプリケーショングループのエンドポイントの検索については、次のトピックを参照してください: API Version 2015-02-02 208 Amazon ElastiCache ユーザーガイド マルチ AZ で自動フェイルオーバーを有効にする • Redis (クラスターモードが無効) クラスターのエンドポイントの検索 ((コンソール)) (p. 55) • レプリケーショングループのエンドポイントの検索 (AWS CLI) (p. 60) • レプリケーショングループのエンドポイントの検索 (ElastiCache API) (p. 63) 耐障害性レベルを上げるために、プライマリノードとリードレプリカは別々のアベイラビリティーゾーン に作成することをお勧めします。 マルチ AZ で自動フェイルオーバーを有効にする AWS コンソール、AWS CLI、または ElastiCache API を使用して、クラスター (API/CLI ではレプリケー ショングループ) の作成時や変更時に、自動フェイルオーバーを備えたマルチ AZ を有効にすることができ ます。 自動フェイルオーバーを備えたマルチ AZ を有効にできるのは、使用可能なリードレプリカが 1 つ以上あ る Redis クラスターに対してのみです。レプリケーションが有効なクラスターの作成については、「レプ リカを持つ Redis クラスターの作成 (p. 212)」を参照してください。レプリケーションが有効なクラス ターへのリードレプリカの追加については、「Redis クラスターへのリードレプリカの追加 (p. 240)」を 参照してください。 トピック • マルチ AZ で自動フェイルオーバーを有効にする (コンソール) (p. 209) • マルチ AZ で自動フェイルオーバーを有効にする (AWS CLI) (p. 209) • マルチ AZ で自動フェイルオーバーを有効にする (ElastiCache API) (p. 210) マルチ AZ で自動フェイルオーバーを有効にする (コンソール) ElastiCache コンソールを使用して、新しい Redis クラスターの作成時や、レプリケーションが有効な既 存の Redis クラスターの変更時に、自動フェイルオーバーを備えたマルチ AZ を有効にすることができま す。 ElastiCache コンソールを使用してクラスターを作成するときにマルチ AZ で自動 フェイルオーバーを有効にする トピック「Redis (クラスターモードが無効) クラスターの作成 ((コンソール)) (p. 136)」を参照してくださ い。1 つ以上のレプリカがあることを確認し、自動フェイルオーバーを備えたマルチ AZ を有効にしてく ださい。 既存のクラスターで自動フェイルオーバーを備えたマルチ AZ を有効にする ((コ ンソール)) トピック「クラスターの変更 ((コンソール)) (p. 155)」を参照してください。 マルチ AZ で自動フェイルオーバーを有効にする (AWS CLI) 次のコード例では、AWS CLI を使用して、レプリケーショングループ myReplGroup でマルチ AZ と自動 フェイルオーバーを有効にすることができます。 Important レプリケーショングループ myReplGroup が既に存在しており、少なくとも 1 個の利用可能なリー ドレプリカが必要となります。 Linux, macOS, or Unix 用: API Version 2015-02-02 209 Amazon ElastiCache ユーザーガイド マルチ AZ で自動フェイルオーバーを有効にする 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 210 Amazon ElastiCache ユーザーガイド 同期とバックアップの実装方法 同期とバックアップの実装方法 すべてのサポートされている Redis バージョンでは、プライマリクラスターとレプリカクラスター間で バックアップと同期がサポートされます。ただし、バックアップと同期の実装方法は Redis バージョンに よって異なります。 Redis バージョン 2.8.22 以降 バージョン 2.8.22 以降の Redis レプリケーションでは、2 つの方法から選択します。詳細について は、「Redis バージョン 2.8.22 以前 (p. 211)」および「ElastiCache バックアップと復元 (Redis) (p. 246)」を参照してください。 分岐なしプロセス中に書き込み負荷が高い場合は、クラスターへの書き込みを遅延させて、変更が蓄積し すぎて正常なスナップショットが妨げられないようにします。 Redis バージョン 2.8.22 以前 バージョン 2.8.22 以前の Redis のバックアップと同期は、3 つのステップで構成されるプロセスです。 1. バックグラウンドプロセスでは、分岐によりクラスターのデータがディスクにシリアル化されます。 これは、特定の時点のスナップショットを作成します。 2. フォアグラウンドでは、クライアント出力バッファーに変更ログが蓄積されます。 Important 3. 変更ログがクライアント出力バッファーのサイズを超えると、バックアップまたは同期が失 敗します。詳細については、「Redis スナップショットを作成するための十分なメモリがあ ることの確認 (p. 65)」を参照してください。 最後にキャッシュデータが送信され、変更ログがレプリカクラスターに転送されます。 API Version 2015-02-02 211 Amazon ElastiCache ユーザーガイド レプリカを持つクラスターの作成 レプリカを持つ Redis クラスターの作成 レプリカノードを持つクラスターを作成するには、以下のオプションがあります。どれを使用するかは、 すでに使用可能な Redis (クラスターモードが無効) クラスターがあり、プライマリノードとして使用する レプリカを持つクラスターのいずれとも関連付けられていないか、クラスターにプライマリノードとリー ドレプリカを新たに作成する必要があるかどうかで異なります。現時点では、Redis (クラスターモードが 有効) クラスターは最初から作成する必要があります。 オプション 1: 使用可能な Redis (クラスターモードが無効) クラスターによる、レプリカを持つクラスター の作成 (p. 213) このオプションは、既存の単一ノード Redis (クラスターモードが無効) クラスターを利用する場合に 使用します。このクラスターは、新しいクラスターのプライマリとして指定し、さらに クラスターに 1 〜 5 個のリードレプリカを個別に追加します。既存のクラスターがアクティブの場合、リードレプ リカは作成時にそのクラスターと同期されます。 Important Redis (クラスターモードが有効) クラスターは、既存のクラスターを使用して作成できませ ん。ElastiCache コンソールで Redis (クラスターモードが有効) クラスターを作成するには、 「Redis (クラスターモードが有効) クラスターの作成 ((コンソール)) (p. 140)」を参照してく ださい。 オプション 2: ゼロからのレプリケーショングループの作成 (p. 217) このオプションは、クラスターのプライマリとして使用可能な Redis (クラスターモードが無効) クラ スターがまだない場合、または Redis (クラスターモードが有効) クラスターを作成する場合に使用し ます。Redis (クラスターモードが無効) クラスターを作成する場合は、このオプションを使用して、 必要なリードレプリカの数を指定します。Redis (クラスターモードが有効) クラスターを作成する場 合は、このオプションを使用して、必要なシャード数とシャードごとのリードレプリカ数を指定しま す。その後はユーザーからの入力やアクションを必要とせずに、クラスター、シャード、プライマリ ノード、指定した数のリードレプリカが自動的に作成されます。 API Version 2015-02-02 212 Amazon ElastiCache ユーザーガイド 既存のクラスターによる、レプリカを持つクラスターの作成 使用可能な Redis (クラスターモードが無効) クラス ターによる、レプリカを持つクラスターの作成 使用可能なクラスターは、単一ノードの Redis クラスターです。現時点では、Redis (クラスターモードが 有効) では使用可能な単一ノードのクラスターを使用して、レプリカを持つクラスターを作成することは できません。Redis (クラスターモードが有効) クラスターを作成する場合は、「ゼロからの Redis (クラス ターモードが有効) レプリケーショングループの作成 ((コンソール)) (p. 224)」を参照してください。 次の手順は、単一ノードの Redis (クラスターモードが無効) クラスターがある場合に限り使用できます。 このクラスターは新しいクラスターのプライマリになります。新しいクラスターのプライマリとして使用 できる Redis (クラスターモードが無効) クラスターがない場合は、「ゼロからのレプリケーショングルー プの作成 (p. 217)」を参照してください。 関連トピック • トピック「クラスターへのノードの追加 ((コンソール)) (p. 160)」を参照してください。 • 利用可能な Redis キャッシュクラスターを使用したレプリケーショングループの作成 ((AWS CLI)) (p. 213) • 利用可能な Redis キャッシュクラスターを使用したレプリケーショングループの作成 ((ElastiCache API)) (p. 215) 使用可能な Redis クラスターによる、レプリカを持つクラスター の作成 ((コンソール)) トピック「クラスターへのノードの追加 ((コンソール)) (p. 160)」を参照してください。 利用可能な Redis キャッシュクラスターを使用したレプリケー ショングループの作成 ((AWS CLI)) AWS CLI を使う場合、使用可能な Redis キャッシュクラスターをプライマリとして、リードレプリカを持 つレプリケーショングループを作成するには 2 つのステップがあります。 最初に、使用可能な Redis キャッシュクラスターをプライマリとして指定するレプリケーショングループ を作成します。 使用可能な Redis キャッシュクラスターがすでに存在する場合にレプリケーショングループを作成するに は、AWS CLI create-replication-group コマンドを使用します。その際に以下のパラメーターを必ず含 めます。 --replication-group-id 作成するレプリケーショングループの名前。 Redis (クラスターモードが無効) レプリケーショングループの命名に関する制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 --replication-group-description レプリケーショングループの説明。 API Version 2015-02-02 213 Amazon ElastiCache ユーザーガイド 既存のクラスターによる、レプリカを持つクラスターの作成 --primary-cluster-id このレプリケーショングループのプライマリノードとして使用可能な Redis キャッシュクラスターの 名前。 次のコマンドは、レプリケーショングループ my-repl-group を作成します。レプリケーショングループの プライマリノードとして使用できる Redis クラスター my-primary を使用します。my-primary の設定 (パ ラメータグループ、セキュリティグループ、ノードタイプなど) は、レプリケーショングループのすべて のノードに適用されます。 Linux, macOS, 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 のトピック「create-replication-group」を参 照してください。 次に、リードレプリカをレプリケーショングループに追加します。 レプリケーショングループの作成後に、create-cache-cluster コマンドを使用して、そのグループに 1 〜 5 個のリードレプリカを追加します。その際に、以下のパラメーターを必ず含めます。 --cache-cluster-id レプリケーショングループに追加するクラスターの名前。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 --replication-group-id このキャッシュクラスターに追加するレプリケーショングループの名前。 レプリケーショングループに追加するそれぞれのリードレプリカで、このコマンドを --cache-clusterid パラメーターの値のみを変更して繰り返します。 Note レプリケーショングループに追加できるリードレプリカの数は 5 個までです。すでに 5 個のリー ドレプリカを持つレプリケーショングループに別のリードレプリカを追加しようとすると、オペ レーションが失敗します。 API Version 2015-02-02 214 Amazon ElastiCache ユーザーガイド 既存のクラスターによる、レプリカを持つクラスターの作成 次のコードは、リードレプリカ my-replica01 をレプリケーショングループ my-repl-group に追加しま す。プライマリクラスター – パラメータグループ、セキュリティグループ、ノードタイプなどの設定で す。– はレプリケーショングループに追加されると、ノードに適用されます。 Linux, macOS, 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 作成するレプリケーショングループの名前。 Redis (クラスターモードが無効) レプリケーショングループの命名に関する制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 ReplicationGroupDescription レプリケーショングループの説明。 PrimaryClusterId このレプリケーショングループのプライマリクラスターとして使用可能な Redis クラスターの名前。 次のオペレーションでは、使用可能な Redis キャッシュクラスター myPrimary をレプリケーション グループのプライマリクラスターとして使用し、レプリケーショングループ myReplGroup を作成しま す。myPrimary の設定 (パラメータグループ、セキュリティグループ、ノードタイプなど) は、レプリケー ショングループのすべてのノードに適用されます。 読みやすくするために改行が追加されます。 API Version 2015-02-02 215 Amazon ElastiCache ユーザーガイド 既存のクラスターによる、レプリカを持つクラスターの作成 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 レプリケーショングループに追加するクラスターの名前。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 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_request &X-Amz-Date=20150202T170651Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=[signature-value] 使用するパラメーターおよび追加情報については、ElastiCache API トピックの「CreateCacheCluster」を 参照してください。 API Version 2015-02-02 216 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 ゼロからのレプリケーショングループの作成 このトピックでは、既存の Redis クラスターをプライマリとして使用せずに、Redis レプリケーショング ループを作成する方法を説明します。ElastiCache コンソール、AWS CLI、または ElastiCache API を使用 して、Redis (クラスターモードが無効) または Redis (クラスターモードが有効) レプリケーショングルー プを最初から作成できます。 続行する前に、Redis (クラスターモードが無効) レプリケーショングループを作成するのか、Redis (ク ラスターモードが有効) レプリケーショングループを作成するのかを決定します。決定のガイダンス については、「レプリケーション: Redis (クラスターモードが無効) と Redis (クラスターモードが有 効) (p. 202)」を参照してください。 トピック • レプリカを持つ Redis (クラスターモードが無効) クラスターの最初からの作成 (p. 218) • ゼロからの Redis (クラスターモードが有効) レプリケーショングループの作成 (p. 224) API Version 2015-02-02 217 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 レプリカを持つ Redis (クラスターモードが無効) クラスターの最 初からの作成 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、Redis (クラスターモードが無 効) レプリケーショングループを最初から作成できます。Redis (クラスターモードが無効) レプリケーショ ングループには常に 1 つのノードグループ、プライマリクラスター、および最大 5 個のリードレプリカが あります。Redis (クラスターモードが無効) レプリケーショングループでは、データのパーティション化 はサポートされません。 トピック • Redis クラスターの最初からの作成 ((コンソール)) (p. 218) • ゼロからの Redis (クラスターモードが無効) レプリケーショングループの作成 ((AWS CLI)) (p. 218) • ゼロからの Redis (クラスターモードが無効) レプリケーショングループの作成 ((ElastiCache API)) (p. 220) Redis クラスターの最初からの作成 ((コンソール)) レプリカを持つ Redis (クラスターモードが無効) クラスターを作成するには、「Redis (クラスターモード が無効) クラスターの作成 ((コンソール)) (p. 136)」を参照してください。少なくとも 1 つのレプリカ ノー ドを指定します。 ゼロからの Redis (クラスターモードが無効) レプリケーショングループの作成 ((AWS CLI)) 次の手順では、AWS CLI を使用して Redis (クラスターモードが無効) レプリケーショングループを作成し ます。 Redis (クラスターモードが無効) レプリケーショングループを最初から作成する場合、レプリケーション グループとそのすべてのノードを、AWS CLI create-replication-group コマンドへの 1 回の呼び出しで 作成します。以下のパラメーターを含めます。 --replication-group-id 作成するレプリケーショングループの名前。 Redis (クラスターモードが無効) レプリケーショングループの命名に関する制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 --replication-group-description (オプション) レプリケーショングループの説明。 --num-cache-clusters このレプリケーションのグループ、プライマリおよびリードレプリカ全体で作成するクラスター (ノー ド) の総数。 マルチ AZ を有効にした場合 (--automatic-failover-enabled)、--num-cache-clusters の値は 2 以 上であることが必要です。 --cache-node-type レプリケーショングループの各ノードのノードタイプ。 API Version 2015-02-02 218 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.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge • 以前の世代: 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, , サポートされているノードタイプは、次の表に示していない限り、すべてのリージョンで使用できま す。 例外 リージョン名 リージョン 例外 アジアパシフィック (ソウル) ap-northeast-2 現行世代のノードタイプのみをサポートしま す。 欧州 (フランクフルト) eu-central-1 現行世代のノードタイプのみをサポートしま す。 AWS GovCloud (US) us-gov-west-1 現行世代のノードタイプのみをサポートしま す。 M4 ノードタイプをサポートしません。 米国東部 (オハイオ) us-east-2 ノードタイプ T2、M4、および R3 のみをサポー トします。 次のエンジンバージョンのみをサポートしま す。 • Memcached: 1.4.24 • Redis 2.8.21、2.8.23、2.8.24、3.2.4 Note • すべての T2 インスタンスは Amazon VPC (Amazon VPC) で作成されます。 • Redis バックアップおよび復元は、T2 インスタンスではサポートされません。 • Redis AOF (Append-Only File) は、T1 または T2 インスタンスではサポートされません。 • 自動フェイルオーバー機能を備えた Redis マルチ AZ は、T1 または T2 インスタンスでは サポートされていません。 • Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサポー トされていません。 ノードタイプおよび仕様の完全な一覧については、以下を参照してください。 • Amazon ElastiCache製品の特徴と詳細 • Memcached のノードタイプ固有のパラメータ API Version 2015-02-02 219 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 • Redis のノードタイプ固有のパラメータ --cache-parameter-group エンジンバージョンに対応するパラメータグループを指定します。Redis 3.2.4 以降を実行している場 合は、default.redis3.2 パラメータグループ、または default.redis3.2 から派生したパラメータグ ループを指定して Redis (クラスターモードが無効) レプリケーショングループを指定します。詳細に ついては、「Redis 固有のパラメータ (p. 313)」を参照してください。 --engine redis --engine-version 最も豊富な機能のセットを利用するには、最新バージョンのエンジンを選択します。 ノード名は、レプリケーショングループ名の後に「-00」を追加して作成されます。たとえば、レプリ ケーショングループ名 myReplGroup を使用すると、プライマリの名前は myReplGroup-001 となり、リー ドレプリカの名前は myReplGroup-002 から myReplGroup-006 となります。 次のオペレーションでは、3 つのノード、1 つのプライマリ、2 つのレプリカを持つ Redis (クラスター モードが無効) レプリケーショングループ my-repl-group を作成します。 Linux, macOS, 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 \ --cache-parameter-group default.redis3.2 \ --engine redis \ --engine-version 3.2.4 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 ^ --cache-parameter-group default.redis3.2 ^ --engine redis ^ --engine-version 3.2.4 使用するパラメーターおよび追加情報については、AWS CLI のトピック「create-replication-group」を参 照してください。 ゼロからの Redis (クラスターモードが無効) レプリケーショングループの作成 ((ElastiCache API)) 次の手順では、ElastiCache API を使用して Redis (クラスターモードが無効) レプリケーショングループを 作成します。 Redis (クラスターモードが無効) レプリケーショングループを最初から作成する場合、レプリケーション グループとそのすべてのノードを、ElastiCache API CreateReplicationGroup オペレーションへの 1 回の 呼び出しで作成します。以下のパラメーターを含めます。 API Version 2015-02-02 220 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 ReplicationGroupId 作成するレプリケーショングループの名前。 Redis (クラスターモードが有効) レプリケーショングループの命名に関する制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 ReplicationGroupDescription レプリケーショングループの説明。 NumCacheClusters このレプリケーションのグループ、プライマリおよびリードレプリカ全体で作成するクラスター (ノー ド) の総数。 マルチ AZ を有効にした場合 (AutomaticFailoverEnabled=true)、NumCacheClusters の値は 2 以上で あることが必要です。 CacheNodeType レプリケーショングループの各ノードのノードタイプ。 ElastiCache では以下のノードがサポートされています。一般に、現行世代のタイプは、以前の世代の 同等タイプと比較した場合、メモリが多く処理能力が高くなっています。 • 汎用: • 現行世代: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge • 以前の世代: 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, , サポートされているノードタイプは、次の表に示していない限り、すべてのリージョンで使用できま す。 例外 リージョン名 リージョン 例外 アジアパシフィック (ソウル) ap-northeast-2 現行世代のノードタイプのみをサポートしま す。 欧州 (フランクフルト) eu-central-1 現行世代のノードタイプのみをサポートしま す。 AWS GovCloud (US) us-gov-west-1 現行世代のノードタイプのみをサポートしま す。 M4 ノードタイプをサポートしません。 API Version 2015-02-02 221 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 リージョン名 リージョン 例外 米国東部 (オハイオ) us-east-2 ノードタイプ T2、M4、および R3 のみをサポー トします。 次のエンジンバージョンのみをサポートしま す。 • Memcached: 1.4.24 • Redis 2.8.21、2.8.23、2.8.24、3.2.4 Note • すべての T2 インスタンスは Amazon VPC (Amazon VPC) で作成されます。 • Redis バックアップおよび復元は、T2 インスタンスではサポートされません。 • Redis AOF (Append-Only File) は、T1 または T2 インスタンスではサポートされません。 • 自動フェイルオーバー機能を備えた Redis マルチ AZ は、T1 または T2 インスタンスでは サポートされていません。 • Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサポー トされていません。 ノードタイプおよび仕様の完全な一覧については、以下を参照してください。 • Amazon ElastiCache製品の特徴と詳細 • Memcached のノードタイプ固有のパラメータ • Redis のノードタイプ固有のパラメータ CacheParameterGroup エンジンバージョンに対応するパラメータグループを指定します。Redis 3.2.4 以降を実行している場 合は、default.redis3.2 パラメータグループ、または default.redis3.2 から派生したパラメータグ ループを指定して Redis (クラスターモードが無効) レプリケーショングループを指定します。詳細に ついては、「Redis 固有のパラメータ (p. 313)」を参照してください。 エンジン redis EngineVersion 3.2.4 ノード名は、レプリケーショングループ名の後に「-00」を追加して作成されます。たとえば、レプリ ケーショングループ名 myReplGroup を使用すると、プライマリの名前は myReplGroup-001 となり、リー ドレプリカの名前は myReplGroup-002 から myReplGroup-006 となります。 次のオペレーションでは、3 つのノード、1 つのプライマリ、2 つのレプリカを持つ Redis (クラスター モードが無効) レプリケーショングループ myReplGroup を作成します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateReplicationGroup &CacheNodeType=cache.m3.large &CacheParameterGroup=default.redis3.2 &Engine=redis &NumCacheClusters=3 &ReplicationGroupDescription=test%20group &ReplicationGroupId=myReplGroup &Version=2015-02-02 API Version 2015-02-02 222 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 使用するパラメーターおよび追加情報については、ElastiCache API トピックの 「CreateReplicationGroup」を参照してください。 API Version 2015-02-02 223 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 ゼロからの Redis (クラスターモードが有効) レプリケーショング ループの作成 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、レプリカ (API/CLI: レプリケー ショングループ) を持つ Redis (クラスターモードが有効) クラスターをゼロから作成できます。Redis (ク ラスターモードが有効) レプリケーショングループは、1〜 15 個のシャード (API/CLI: ノードグループ) で構成され、各シャードには、1 つのプライマリクラスターと、最大 5 個のリードレプリカが含まれま す。ElastiCache コンソールを使用してクラスターを作成すると、シャードごとのリードレプリカ数は同 一数になります。 トピック • ゼロからの Redis (クラスターモードが有効) レプリケーショングループの作成 ((コンソー ル)) (p. 224) • ゼロからの Redis (クラスターモードが有効) レプリケーショングループの作成 ((AWS CLI)) (p. 224) • ゼロからの Redis (クラスターモードが有効) レプリケーショングループの作成 ((ElastiCache API)) (p. 228) ゼロからの Redis (クラスターモードが有効) レプリケーショングループの作成 ((コンソール)) レプリカを持つ Redis (クラスターモードが有効) クラスターを作成するには、「Redis (クラスターモー ドが有効) クラスターの作成 ((コンソール)) (p. 140)」を参照してください。クラスターモード ([Cluster Mode enabled (Scale Out)]) を必ず有効にし、最低 2 つのシャードと 1 つのレプリカノードを指定しま す。 ゼロからの Redis (クラスターモードが有効) レプリケーショングループの作成 ((AWS CLI)) 次の手順では、AWS CLI を使用して Redis (クラスターモードが有効) レプリケーショングループを作成し ます。 Redis (クラスターモードが有効) レプリケーショングループを最初から作成する場合は、レプリケーショ ングループとそのすべてのノードを、AWS CLI create-replication-group コマンドへの 1 回の呼び出し で作成します。以下のパラメーターを含めます。 --replication-group-id 作成するレプリケーショングループの名前。 Redis (クラスターモードが有効) レプリケーショングループの命名に関する制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 --replication-group-description (オプション) レプリケーショングループの説明。 --cache-node-type レプリケーショングループの各ノードのノードタイプ。 ElastiCache では以下のノードがサポートされています。一般に、現行世代のタイプは、以前の世代の 同等タイプと比較した場合、メモリが多く処理能力が高くなっています。 API Version 2015-02-02 224 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 • 汎用: • 現行世代: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge • 以前の世代: 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, , サポートされているノードタイプは、次の表に示していない限り、すべてのリージョンで使用できま す。 例外 リージョン名 リージョン 例外 アジアパシフィック (ソウル) ap-northeast-2 現行世代のノードタイプのみをサポートしま す。 欧州 (フランクフルト) eu-central-1 現行世代のノードタイプのみをサポートしま す。 AWS GovCloud (US) us-gov-west-1 現行世代のノードタイプのみをサポートしま す。 M4 ノードタイプをサポートしません。 米国東部 (オハイオ) us-east-2 ノードタイプ T2、M4、および R3 のみをサポー トします。 次のエンジンバージョンのみをサポートしま す。 • Memcached: 1.4.24 • Redis 2.8.21、2.8.23、2.8.24、3.2.4 Note • すべての T2 インスタンスは Amazon VPC (Amazon VPC) で作成されます。 • Redis バックアップおよび復元は、T2 インスタンスではサポートされません。 • Redis AOF (Append-Only File) は、T1 または T2 インスタンスではサポートされません。 • 自動フェイルオーバー機能を備えた Redis マルチ AZ は、T1 または T2 インスタンスでは サポートされていません。 • Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサポー トされていません。 ノードタイプおよび仕様の完全な一覧については、以下を参照してください。 • Amazon ElastiCache製品の特徴と詳細 • Memcached のノードタイプ固有のパラメータ • Redis のノードタイプ固有のパラメータ API Version 2015-02-02 225 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 --cache-parameter-group default.redis3.2.cluster.on パラメータグループまたは default.redis3.2.cluster.on から派生 したパラメータグループを指定して、Redis (クラスターモードが有効) レプリケーショングループを 作成します。詳細については、「Redis 3.2.4 パラメーターの変更 (p. 314)」を参照してください。 --engine redis --engine-version 3.2.4 --num-node-groups このレプリケーショングループのノードグループの数。有効な値の範囲は 1~15 です。 --replicas-per-node-group 各ノードグループのレプリカノードの数。有効な値の範囲は 1~5 です。 次のオペレーションでは、3 つのノードグループおよびシャード (--num-node-groups) を持つ Redis (ク ラスターモードが有効) レプリケーショングループ my-repl-group を作成します。各レプリケーショング ループに 3 つのノード、1 つのプライマリ、2 つのリードレプリカ (--replicas-per-node-group) が含まれま す。 Linux, macOS, or Unix 用: aws elasticache create-replication-group \ --replication-group-id my-repl-group \ --replication-group-description "test group" \ --num-node-groups 3 \ --replicas-per-node-group 2 \ --cache-node-type cache.m3.large \ --cache-parameter-group default.redis3.2.cluster.on \ --engine redis \ --engine-version 3.2.4 Windows の場合: aws elasticache create-replication-group ^ --replication-group-id my-repl-group ^ --replication-group-description "test group" ^ --num-node-groups 3 ^ --replicas-per-node-group 2 ^ --cache-node-type cache.m3.large ^ --cache-parameter-group default.redis3.2.cluster.on ^ --engine redis ^ --engine-version 3.2.4 前述のコマンドは、次の出力を生成します。 { "ReplicationGroup": { "Status": "creating", "Description": "test group", "ReplicationGroupId": "my-repl-group", "SnapshotRetentionLimit": 0, "AutomaticFailover": "enabled", "SnapshotWindow": "05:30-06:30", "MemberClusters": [ API Version 2015-02-02 226 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 "my-repl-group-0001-001", "my-repl-group-0001-002", "my-repl-group-0001-003", "my-repl-group-0002-001", "my-repl-group-0002-002", "my-repl-group-0002-003", "my-repl-group-0003-001", "my-repl-group-0003-002", "my-repl-group-0003-003" ], "PendingModifiedValues": {} } } Redis (クラスターモードが有効) レプリケーショングループをゼロから作成する際、次の例に示すように --node-group-configuration パラメーターを使用してクラスター内の各シャードを設定することで、2 つのノードグループ (シャード) を設定できます。1 つめのシャードは、2 つのノード、1 つのプライマ リ、1 つのリードレプリカで構成されます。2 つめのシャードは、3 つのノード、1 つのプライマリ、2 つ のリードレプリカで構成されます。 --node-group-configuration 各ノードグループの設定。--node-group-configuration パラメーターは次のフィールドで構成され ます。 • PrimaryAvailabilityZone – このノードグループのプライマリノードがあるアベイラビリティー ゾーン。このパラメーターを省略すると、ElastiCache によってプライマリノードのアベイラビリ ティーゾーンが選択されます。 例: us-west-2a。 • ReplicaAvailabilityZones – リードレプリカがあるアベイラビリティゾーンのカンマ区切りリス ト。このリストのアベイラビリティーゾーンの数は、ReplicaCount の値と一致する必要がありま す。このパラメーターを省略すると、ElastiCache によってレプリカノードのアベイラビリティー ゾーンが選択されます。 例: "us-west-2a,us-west-2b,us-west-2c" • ReplicaCount – このノードグループのレプリカノードの数。 • Slots – 対象ノードグループのキースペースを指定する文字列。この文字列は次の形式になりま す。startKey-endKey このパラメーターを省略すると、ElastiCache によってノードグループ間で キーが均等に割り当てられます。 例: "0-4999" 次のオペレーションでは、2 つのノードグループとシャード (--num-node-groups) を持つ Redis (クラス ターモードが有効) レプリケーショングループ my-repl-group を作成します。前の例とは異なり、各ノー ドグループは、その他のノードグループ (--node-group-configuration) とは異なった構成になります。 Linux, macOS, or Unix 用: aws elasticache create-replication-group \ --replication-group-id rc-rg \ --replication-group-description "Sharded replication group" \ --engine redis \ --engine-version 3.2.4 \ --cache-parameter-group default.redis3.2.cluster.on \ --snapshot-retention-limit 8 \ --cache-node-type cache.m3.medium \ --num-node-groups 2 \ API Version 2015-02-02 227 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 --node-group-configuration \ "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='useast-1c',ReplicaAvailabilityZones='us-east-1b'" \ "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='useast-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'" Windows の場合: aws elastica6che create-replication-group ^ --replication-group-id rc-rg ^ --replication-group-description "Sharded replication group" ^ --engine redis ^ --engine-version 3.2.4 ^ --cache-parameter-group default.redis3.2.cluster.on ^ --snapshot-retention-limit 8 ^ --cache-node-type cache.m3.medium ^ --num-node-groups 2 ^ --node-group-configuration \ "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='useast-1c',ReplicaAvailabilityZones='us-east-1b'" \ "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='useast-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'" 前述のオペレーションは、次の出力を生成します。 { "ReplicationGroup": { "Status": "creating", "Description": "Sharded replication group", "ReplicationGroupId": "rc-rg", "SnapshotRetentionLimit": 8, "AutomaticFailover": "enabled", "SnapshotWindow": "10:00-11:00", "MemberClusters": [ "rc-rg-0001-001", "rc-rg-0001-002", "rc-rg-0002-001", "rc-rg-0002-002", "rc-rg-0002-003" ], "PendingModifiedValues": {} } } 使用するパラメーターおよび追加情報については、AWS CLI のトピック「create-replication-group」を参 照してください。 ゼロからの Redis (クラスターモードが有効) レプリケーショングループの作成 ((ElastiCache API)) 次の手順では、ElastiCache API を使用して Redis (クラスターモードが有効) レプリケーショングループを 作成します。 Redis (クラスターモードが有効) レプリケーショングループを最初から作成する場合、レプリケーション グループとそのすべてのノードを、ElastiCache API CreateReplicationGroup オペレーションへの 1 回の 呼び出しで作成します。以下のパラメーターを含めます。 ReplicationGroupId 作成するレプリケーショングループの名前。 API Version 2015-02-02 228 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 Redis (クラスターモードが有効) レプリケーショングループの命名に関する制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 ReplicationGroupDescription レプリケーショングループの説明。 NumNodeGroups このレプリケーショングループで作成するノードグループの数。有効な値の範囲は 1~15 です。 ReplicasPerNodeGroup 各ノードグループのレプリカノードの数。有効な値の範囲は 1~5 です。 NodeGroupConfiguration 各ノードグループの設定。NodeGroupConfiguration パラメーターは次のフィールドで構成されま す。 • PrimaryAvailabilityZone – このノードグループのプライマリノードがあるアベイラビリティー ゾーン。このパラメーターを省略すると、ElastiCache によってプライマリノードのアベイラビリ ティーゾーンが選択されます。 例: us-west-2a。 • ReplicaAvailabilityZones – リードレプリカがあるアベイラビリティゾーンのリスト。このリスト のアベイラビリティーゾーンの数は、ReplicaCount の値と一致する必要があります。このパラメー ターを省略すると、ElastiCache によってレプリカノードのアベイラビリティーゾーンが選択されま す。 • ReplicaCount – このノードグループのレプリカノードの数。 • Slots – 対象ノードグループのキースペースを指定する文字列。この文字列は次の形式になりま す。startKey-endKey このパラメーターを省略すると、ElastiCache によってノードグループ間で キーが均等に割り当てられます。 例: "0-4999" CacheNodeType レプリケーショングループの各ノードのノードタイプ。 ElastiCache では以下のノードがサポートされています。一般に、現行世代のタイプは、以前の世代の 同等タイプと比較した場合、メモリが多く処理能力が高くなっています。 • 汎用: • 現行世代: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge • 以前の世代: 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, , API Version 2015-02-02 229 Amazon ElastiCache ユーザーガイド ゼロからのレプリケーショングループの作成 サポートされているノードタイプは、次の表に示していない限り、すべてのリージョンで使用できま す。 例外 リージョン名 リージョン 例外 アジアパシフィック (ソウル) ap-northeast-2 現行世代のノードタイプのみをサポートしま す。 欧州 (フランクフルト) eu-central-1 現行世代のノードタイプのみをサポートしま す。 AWS GovCloud (US) us-gov-west-1 現行世代のノードタイプのみをサポートしま す。 M4 ノードタイプをサポートしません。 米国東部 (オハイオ) us-east-2 ノードタイプ T2、M4、および R3 のみをサポー トします。 次のエンジンバージョンのみをサポートしま す。 • Memcached: 1.4.24 • Redis 2.8.21、2.8.23、2.8.24、3.2.4 Note • すべての T2 インスタンスは Amazon VPC (Amazon VPC) で作成されます。 • Redis バックアップおよび復元は、T2 インスタンスではサポートされません。 • Redis AOF (Append-Only File) は、T1 または T2 インスタンスではサポートされません。 • 自動フェイルオーバー機能を備えた Redis マルチ AZ は、T1 または T2 インスタンスでは サポートされていません。 • Redis 設定変数 appendonly および appendfsync Redis バージョン 2.8.22 以降ではサポー トされていません。 ノードタイプおよび仕様の完全な一覧については、以下を参照してください。 • Amazon ElastiCache製品の特徴と詳細 • Memcached のノードタイプ固有のパラメータ • Redis のノードタイプ固有のパラメータ CacheParameterGroup default.redis3.2.cluster.on パラメータグループまたは default.redis3.2.cluster.on から派生 したパラメータグループを指定して、Redis (クラスターモードが有効) レプリケーショングループを 作成します。詳細については、「Redis 3.2.4 パラメーターの変更 (p. 314)」を参照してください。 エンジン redis EngineVersion 3.2.4 読みやすくするために改行が追加されます。 https://elasticache.us-west-2.amazonaws.com/ API Version 2015-02-02 230 Amazon ElastiCache ユーザーガイド レプリケーショングループの詳細の表示 ?Action=CreateReplicationGroup &CacheNodeType=cache.m3.large &CacheParemeterGroup=default.redis3.2.cluster.on &Engine=redis &EngineVersion=3.2.4 &NumNodeGroups=3 &ReplicasPerNodeGroup=2 &ReplicationGroupDescription=test%20group &ReplicationGroupId=myReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 使用するパラメーターおよび追加情報については、ElastiCache API トピックの 「CreateReplicationGroup」を参照してください。 レプリケーショングループの詳細の表示 レプリケーショングループの詳細を表示すると便利な場合があります。ElastiCache コンソー ル、ElastiCache 用 AWS CLI、または ElastiCache API を使用できます。コンソールプロセスは、Redis (クラスターモードが無効) および Redis (クラスターモードが有効) によって異なります。 トピック • レプリカを持つ Redis (クラスターモードが無効) の詳細の表示: Redis (クラスターモードが無 効) (p. 231) • レプリケーショングループの詳細の表示: Redis (クラスターモードが有効) (p. 232) • レプリケーショングループの詳細の表示: (AWS CLI) (p. 232) • レプリケーショングループの詳細の表示: (ElastiCache API) (p. 234) レプリカを持つ Redis (クラスターモードが無効) の詳 細の表示: Redis (クラスターモードが無効) ElastiCache コンソール、ElastiCache 用 AWS CLI、または ElastiCache API を使用して、レプリカ (API/ CLI: レプリケーショングループ) を持つ Redis (クラスターモードが無効) クラスターの詳細を表示できま す。 トピック • レプリカを持つ Redis (クラスターモードが無効) クラスターの詳細の表示: Redis (クラスターモードが 無効) ((コンソール)) (p. 231) • レプリケーショングループの詳細の表示: Redis (クラスターモードが無効) ((AWS CLI)) (p. 232) • レプリケーショングループの詳細の表示: Redis (クラスターモードが無効) ((ElastiCache API)) (p. 232) レプリカを持つ Redis (クラスターモードが無効) クラスターの詳 細の表示: Redis (クラスターモードが無効) ((コンソール)) ElastiCache コンソールを使ってレプリカを持つ Redis (クラスターモードが無効) クラスターの詳細 を表示するには、トピック「Redis (クラスターモードが無効) クラスターの詳細の表示 ((コンソー ル)) (p. 150)」を参照してください。 API Version 2015-02-02 231 Amazon ElastiCache ユーザーガイド レプリケーショングループの詳細の 表示: Redis (クラスターモードが有効) レプリケーショングループの詳細の表示: Redis (クラスターモー ドが無効) ((AWS CLI)) Redis (クラスターモードが無効) レプリケーショングループの詳細を表示する AWS CLI の例については、 「レプリケーショングループの詳細の表示: (AWS CLI) (p. 232)」を参照してください。 レプリケーショングループの詳細の表示: Redis (クラスターモー ドが無効) ((ElastiCache API)) Redis (クラスターモードが無効) レプリケーショングループの詳細を表示する ElastiCache API の例につい ては、「レプリケーショングループの詳細の表示: (ElastiCache API) (p. 234)」を参照してください。 レプリケーショングループの詳細の表示: Redis (クラ スターモードが有効) レプリカを持つ Redis (クラスターモードが有効) クラスターの詳 細の表示: Redis (クラスターモードが無効) ((コンソール)) ElastiCache コンソールを使ってレプリカを持つ Redis (クラスターモードが有効) クラスターの詳細を表 示するには、「Redis (クラスターモードが有効) クラスターの詳細の表示 ((コンソール)) (p. 151)」を参照 してください。 レプリケーショングループの詳細の表示: Redis (クラスターモー ドが有効) ((AWS CLI)) Redis (クラスターモードが有効) レプリケーショングループの詳細を表示する ElastiCache CLI の例につい ては、「レプリケーショングループの詳細の表示: (AWS CLI) (p. 232)」を参照してください。 レプリケーショングループの詳細の表示: Redis (クラスターモー ドが有効) ((ElastiCache API)) Redis (クラスターモードが有効) レプリケーショングループの詳細を表示する ElastiCache API の例につい ては、「レプリケーショングループの詳細の表示: (ElastiCache API) (p. 234)」を参照してください。 レプリケーショングループの詳細の表示: (AWS CLI) AWS CLI describe-replication-groups コマンドを使用してレプリケーションの詳細を表示できます。 一覧を絞り込むには、以下のオプションパラメーターを使用します。パラメーターを省略すると、最大 100 個のレプリケーショングループの詳細が返されます。 オプションのパラメーター • --replication-group-id – 特定のレプリケーショングループの詳細を表示するには、このパラメーター を使用します。指定されたレプリケーショングループに複数のノードグループがある場合、結果はノー ドグループ別にグループ分けされて返されます。 • --max-items – 表示されるレプリケーショングループの数を制限するには、このパラメーターを使用し ます。--max-items の値は 20 未満、または 100 を超えることはできません。 Example 次のコードは、最大 100 個のレプリケーショングループの詳細を表示します。 API Version 2015-02-02 232 Amazon ElastiCache ユーザーガイド レプリケーショングループの詳細の表示: (AWS CLI) aws elasticache describe-replication-groups 次のコードは my-repl-group の詳細を一覧します。 aws elasticache describe-replication-groups --replication-group-id my-repl-group 次のコードリストは、最大 25 個のレプリケーショングループを示します。 aws elasticache describe-replication-groups --max-items 25 このオペレーションからの出力は以下のような JSON 形式になります。 { "ReplicationGroups": [ { "Status": "available", "Description": "test", "NodeGroups": [ { "Status": "available", "NodeGroupMembers": [ { "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2a", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "rg-name-001.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "rg-name-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "rg-name-002.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "rg-name-002" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "rg-name-003.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "rg-name-003" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "rg-name.1abc4d.ng.0001.usw2.cache.amazonaws.com" } } ], "ReplicationGroupId": "rg-name", "AutomaticFailover": "enabled", "SnapshottingClusterId": "rg-name-002", API Version 2015-02-02 233 Amazon ElastiCache ユーザーガイド レプリケーショングループの詳細の表示: (ElastiCache API) "MemberClusters": [ "rg-name-001", "rg-name-002", "rg-name-003" ], "PendingModifiedValues": {} }, { ... some output omitted for previty } ] } 詳細については、ElastiCache 用 AWS CLI のトピック「describe-replication-groups」を参照してくだ さい。 レプリケーショングループの詳細の表示: (ElastiCache API) AWS CLI DescribeReplicationGroups オペレーションを使用してレプリケーションの詳細を表示できま す。一覧を絞り込むには、以下のオプションパラメーターを使用します。パラメーターを省略すると、最 大 100 個のレプリケーショングループの詳細が返されます。 オプションのパラメーター • ReplicationGroupId – 特定のレプリケーショングループの詳細を表示するには、このパラメーターを使 用します。指定されたレプリケーショングループに複数のノードグループがある場合、結果はノードグ ループ別にグループ分けされて返されます。 • MaxRecords – 表示されるレプリケーショングループの数を制限するには、このパラメーターを使用しま す。MaxRecords の値は 20 未満、または 100 を超えることはできません。デフォルトは 100 です。 Example 次のコードリストは、最大 100 個のレプリケーショングループを示します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 次のコードは myReplGroup の詳細を一覧します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=myReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 次のコードは最大で 25 のクラスターの詳細を一覧します。 https://elasticache.us-west-2.amazonaws.com/ API Version 2015-02-02 234 Amazon ElastiCache ユーザーガイド レプリケーショングループの詳細の表示: (ElastiCache API) ?Action=DescribeReplicationGroups &MaxRecords=25 &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、ElastiCache API リファレンストピック「DescribeReplicationGroups」を参照してくだ さい。 API Version 2015-02-02 235 Amazon ElastiCache ユーザーガイド レプリケーショングループのエンドポイントの検索 レプリケーショングループのエンドポイントの検索 アプリケーションは、ノードの DNS エンドポイントとポート番号がある場合、レプリケーショングルー プ内の任意のノードに接続できます。Redis (クラスターモードが無効) を実行しているか、Redis (クラス ターモードが有効) レプリケーショングループを実行しているかにより、関心のあるエンドポイントが異 なります。 Redis (クラスターモードが無効) レプリカを持つ Redis (クラスターモードが無効) クラスターには、プライマリエンドポイントとノードエ ンドポイントの 2 種類のエンドポイントがあります。プライマリエンドポイントは、常にクラスターの プライマリクラスターに解決される DNS 名です。プライマリエンドポイントは、リードレプリカのプラ イマリロールへの昇格など、クラスターに対する変更の影響を受けません。書き込みアクティビティの場 合、アプリケーションを直接プライマリに接続する代わりに、プライマリエンドポイントに接続すること をお勧めします。 読み取りアクティビティの場合、アプリケーションはクラスター内のいずれのノードにも接続できます。 プライマリエンドポイントとは異なり、ノードエンドポイントは特定のエンドポイントに解決されます。 レプリカの追加または削除など、クラスターに変更を加えた場合は、アプリケーションでノードエンドポ イントを更新する必要があります。 Redis (クラスターモードが有効) レプリカを持つ Redis (クラスターモードが有効) クラスターには、複数のシャード (API/CLI: ノードグ ループ) があり、プライマリノードが複数あるため、Redis (クラスターモードが無効) とはエンドポイン ト構造が異なります。Redis (クラスターモードが有効) には設定エンドポイントがあります。設定エンド ポイントは、クラスターのすべてのプライマリエンドポイントとノードエンドポイントを「知って」い ます。アプリケーションは設定エンドポイントに接続します。アプリケーションからクラスターの設定エ ンドポイントに書き込みまたは読み取りを行うたびに、Redis は背後で、キーが属するシャードと、その シャードで使用するエンドポイントを決定します。これはすべてアプリケーションに対して透過的です。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、レプリケーショングループのエ ンドポイントを確認できます。 レプリケーショングループのエンドポイントの検索 レプリケーショングループのエンドポイントを確認するには、以下のトピックのいずれかを参照してくだ さい。 • Redis (クラスターモードが無効) クラスターのエンドポイントの検索 ((コンソール)) (p. 55) • Redis (クラスターモードが有効) クラスターのエンドポイントの検索 ((コンソール)) (p. 57) • レプリケーショングループのエンドポイントの検索 (AWS CLI) (p. 60) • レプリケーショングループのエンドポイントの検索 (ElastiCache API) (p. 63) API Version 2015-02-02 236 Amazon ElastiCache ユーザーガイド レプリカを持つクラスターの変更 レプリカを持つクラスターの変更 重要な制約 • 現時点では、ElastiCache は Redis (クラスターモードが有効) クラスターの変更をサポートして いません。このようなクラスターを変更する必要がある場合、変更を組み込んだ新しいクラス ターを作成します。 • 新しいバージョンのエンジンにアップグレードすることはできますが、以前のバージョンのエ ンジンにダウングレードすることはできないため、既存のクラスターまたはレプリケーション グループを削除して新しく作成し直す必要があります。詳細については、「エンジンバージョ ンのアップグレード (p. 44)」を参照してください。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、Redis (クラスターモードが無 効) クラスターの設定を変更できます。ElastiCache は現在、Redis (クラスターモードが有効) レプリケー ショングループの変更をサポートしていません。 トピック • Redis クラスターの変更 ((コンソール)) (p. 237) • レプリケーショングループの変更 ((AWS CLI)) (p. 237) • レプリケーショングループの変更 ((ElastiCache API)) (p. 237) Redis クラスターの変更 ((コンソール)) Redis (クラスターモードが無効) クラスターを変更するには、「ElastiCache クラスターの変更 (p. 155)」 を参照してください。 レプリケーショングループの変更 ((AWS CLI)) 次の AWS CLI コマンドは、既存の Redis レプリケーショングループでマルチ AZ を有効にします。レプリ ケーショングループのそのほかの変更も同じコマンドを使用できます。 Linux, macOS, 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 を有効に します。同じオペレーションを使用して、レプリケーショングループに対する他の変更を行うこともでき ます。 API Version 2015-02-02 237 Amazon ElastiCache ユーザーガイド レプリケーショングループの変更 ((ElastiCache API)) 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 238 Amazon ElastiCache ユーザーガイド レプリカを持つクラスターの削除 レプリカを持つクラスターの削除 レプリカを持つクラスター (API/CLI ではレプリケーショングループ) のいずれかが不要になった場合は、 それを削除できます。レプリケーショングループを削除すると、ElastiCache によってそのグループ内の すべてのノードが削除されます。 このオペレーションを開始したら、中断またはキャンセルすることはできません。 レプリケーショングループの削除 ((コンソール)) レプリカがあるクラスターを削除するには、「クラスターの削除 (p. 173)」を参照してください。 レプリケーショングループの削除 ((AWS CLI)) レプリケーショングループを削除するには、delete-replication-group コマンドを使用します。 aws elasticache delete-replication-group --replication-group-id my-repgroup 決定を確認するメッセージが表示されます。すぐにオペレーションを開始する場合は「y」 (Yes) と入力し ます。プロセスの開始後に元に戻すことはできません。 After you begin deleting this replication group, all of its nodes 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 を呼び出します。 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 239 Amazon ElastiCache ユーザーガイド リードレプリカの追加 Redis クラスターへのリードレプリカの追加 Important 現時点では、ElastiCache は Redis (クラスターモードが有効) へのリードレプリカの追加をサポー トしていません。さらにリードレプリカが必要な場合は、必要な数のリードレプリカでクラス ターを作成します。 読み取りトラフィックが増えるにつれて、これらの読み取りをより多くのノードに分散させて、1 つの ノードの読み取りの負荷を減らすことを考えます。このトピックでは、クラスターにリードレプリカを追 加する方法について説明します。ElastiCache コンソール、AWS CLI、または ElastiCache API を使用し て、クラスターにリードレプリカを追加できます。 • クラスターへのノードの追加 (p. 160) • レプリケーショングループへのリードレプリカの追加 ((AWS CLI)) (p. 240) • レプリケーショングループへのリードレプリカの追加 ((ElastiCache API)) (p. 241) トピック • クラスターへのリードレプリカの追加 ((コンソール)) (p. 240) • レプリケーショングループへのリードレプリカの追加 ((AWS CLI)) (p. 240) • レプリケーショングループへのリードレプリカの追加 ((ElastiCache API)) (p. 241) クラスターへのリードレプリカの追加 ((コンソール)) Redis (クラスターモードが無効) クラスターにレプリカを追加するには、「クラスターへのノードの追 加 (p. 160)」を参照してください。 レプリケーショングループへのリードレプリカの追加 ((AWS CLI)) レプリケーショングループにリードレプリカを追加するには、AWS CLI create-cache-cluster コマンド を使用します。パラメーターとして --replication-group-id を使用し、クラスター (ノード) を追加する レプリケーショングループを指定します。 レプリケーショングループでは、最大 5 つのリードレプリカを作成できます。すでに 5 個のリードレプリ カのあるレプリケーショングループにリードレプリカを追加しようとすると、オペレーションが失敗しま す。 次の例では、クラスター my-read-replica を作成して、レプリケーショングループ my-replicationgroup に追加します。リードレプリカのノードタイプ、パラメータグループ、セキュリティグループ、メ ンテナンスの時間などの設定は、レプリケーショングループの他のノードの設定と同じです Linux, macOS, 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 ^ API Version 2015-02-02 240 Amazon ElastiCache ユーザーガイド レプリケーショングループへのリー ドレプリカの追加 ((ElastiCache API)) --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 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、ElastiCache API トピックの「CreateCacheCluster」を参照してください。 API Version 2015-02-02 241 Amazon ElastiCache ユーザーガイド リードレプリカの昇格 リードレプリカをプライマリに昇格させる Important 現在、ElastiCache は Redis (クラスターモードが有効) レプリケーショングループのプライマリへ のリードレプリカの昇格はサポートしていません。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、リードレプリカをプライマリ に昇格させることができます。ただし、レプリケーショングループでマルチ AZ を有効にしている場合は リードレプリカをプライマリに昇格させることはできません。マルチ AZ を有効にしている場合は、以下 を実行する必要があります: リードレプリカノードをプライマリに昇格させるには 1. レプリケーショングループを変更してマルチ AZ を無効にします (すべてのクラスターが同じアベイラ ビリティーゾーンに存在する必要はありません)。 レプリケーショングループの設定変更の詳細については、「レプリカを持つクラスターの変 更 (p. 237)」を参照してください。 2. リードレプリカをプライマリに昇格させます。 3. マルチ AZ を再び有効にするためにレプリケーショングループを変更します。 自動フェイルオーバーとマルチ AZ は、Redis 2.6.13 を実行するレプリケーショングループでは使用でき ません。 トピック • リードレプリカをプライマリに昇格させる ((コンソール)) (p. 242) • リードレプリカをプライマリに昇格させる ((AWS CLI)) (p. 243) • リードレプリカをプライマリに昇格させる ((ElastiCache API)) (p. 243) リードレプリカをプライマリに昇格させる ((コンソー ル)) リードレプリカをプライマリに昇格させるには ((console)) 1. 昇格させるレプリカが属している、レプリカを持つ Redis (クラスターモードが無効) クラスターでマ ルチ AZ が有効になっている場合は、クラスターを変更してマルチ AZ を無効にしてから操作を開始 します (すべてのクラスターが同じアベイラビリティーゾーンに存在する必要はありません)。クラス ターの変更の詳細については、「クラスターの変更 ((コンソール)) (p. 155)」を参照してください。 2. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 3. [Redis] を選択します。 Redis を実行しているクラスターが一覧表示されます。 4. クラスターの一覧で、変更するクラスターの名前を選択します。このクラスターは、「Clusterd Redis」エンジンではなく、「Redis」エンジンを実行していること、また 2 つ以上のノードを持って いることが必要です。 クラスターのノードが一覧表示されます。 5. プライマリに昇格させるレプリカノードの名前の左側にあるボックスを選択します。 [Promote] を選択します。 API Version 2015-02-02 242 Amazon ElastiCache ユーザーガイド リードレプリカをプライマリに昇格させる ((AWS CLI)) 6. [Promote Read Replica] ダイアログボックスで以下の操作を行います。 a. b. 7. リードレプリカをすぐに昇格させる場合は [Yes] を選択し、クラスターの次回のメンテナンス期 間に昇格させる場合は [No] を選択します。 リードレプリカを昇格させる場合は [Promote] を選択し、オペレーションをキャンセルする場合 は [No] を選択します。 昇格プロセスを開始する前にクラスターでマルチ AZ が有効になっている場合は、クラスターを変更 してマルチ AZ をもう一度有効にします。クラスターの変更の詳細については、「クラスターの変更 ((コンソール)) (p. 155)」を参照してください。 リードレプリカをプライマリに昇格させる ((AWS CLI)) 現在、レプリケーショングループでマルチ AZ を有効にしている場合はリードレプリカをプライマリに 昇格させることはできません。昇格させるレプリカが属しているレプリケーショングループでマルチ AZ が有効になっている場合は、レプリケーショングループを変更してマルチ AZ を無効にしてから操作を 開始する必要があります (すべてのクラスターが同じアベイラビリティーゾーンに存在する必要はありま せん)。レプリケーショングループの変更の詳細については、「レプリケーショングループの変更 ((AWS CLI)) (p. 237)」を参照してください。 次の AWS CLI コマンドは、レプリケーショングループ my-repl-group を変更して、リードレプリカ myreplica-1 をレプリケーショングループのプライマリにします。 Linux, macOS, 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 を無効にしてから操 作を開始する必要があります (すべてのクラスターが同じアベイラビリティーゾーンに存在する必要は ありません)。レプリケーショングループの変更の詳細については、「レプリケーショングループの変更 ((ElastiCache API)) (p. 237)」を参照してください。 次の ElastiCache API アクションは、レプリケーショングループ myReplGroup を変更して、リードレプリ カ myReplica-1 をそのレプリケーショングループのプライマリにします。 https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup API Version 2015-02-02 243 Amazon ElastiCache ユーザーガイド リードレプリカをプライマリに 昇格させる ((ElastiCache API)) &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 &X-Amz-Credential=<credential> &X-Amz-Signature=<signature> レプリケーショングループの変更の詳細については、ElastiCache API トピックの 「ModifyReplicationGroup」を参照してください。 API Version 2015-02-02 244 Amazon ElastiCache ユーザーガイド リードレプリカの削除 リードレプリカの削除 Important 現在、ElastiCache は Redis (クラスターモードが有効) レプリケーショングループからのリードレ プリカの削除をサポートしていません。リードレプリカの数を減らす必要がある場合は、必要な 数のリードレプリカで新しいクラスターを作成します。 レプリケーショングループの読み取りトラフィックを変更すると、リードレプリカの追加または削除を行 いたくなります。レプリケーショングループからノードを削除することには、いくつかの制限はあります が、単なるクラスターの削除と同じです。 レプリケーショングループからのノード削除の制限 • レプリケーショングループからプライマリを削除することはできません。プライマリを削除する場合 は、以下を実行する必要があります: 1. 2. リードレプリカをプライマリに昇格させます。リードレプリカをプライマリに昇格させる詳細につ いては、「リードレプリカをプライマリに昇格させる (p. 242)」を参照してください。 古いプライマリを削除します。この方法の制限については、次のポイントを参照してください。 • レプリケーショングループでマルチ AZ が有効になっている場合は、そのレプリケーショングループか ら最後のリードレプリカを削除することはできません。その場合は、以下を実行する必要があります: 1. 2. マルチ AZ を無効にしてレプリケーショングループを変更します。詳細については、「レプリカを 持つクラスターの変更 (p. 237)」を参照してください。 リードレプリカを削除します。 ElastiCache コンソール、ElastiCache 用 AWS CLI、または ElastiCache API を使用して、レプリケーショ ングループからリードレプリカを削除できます。 クラスターの削除については、以下を参照してください: • クラスターの削除 ((コンソール)) (p. 173) • キャッシュクラスターの削除 ((AWS CLI)) (p. 173) • キャッシュクラスターの削除 ((ElastiCache API)) (p. 173) API Version 2015-02-02 245 Amazon ElastiCache ユーザーガイド 制約 ElastiCache バックアップと復元 (Redis) Redis を実行している Amazon ElastiCache クラスターでは、データをバックアップできます。バック アップがクラスターを復元するか、または新しいクラスターをシードできます。バックアップは、クラ スター内の全データとクラスターのメタデータで構成されます。すべてのバックアップは、堅牢なスト レージを提供する Amazon Simple Storage Service (Amazon S3) に書き込まれます。いつでも、新しい Redis クラスターを作成し、バックアップのデータを挿入することでデータを復元できます。ElastiCache では、AWS マネジメントコンソール、AWS Command Line Interface (AWS CLI)、ElastiCache API を使用 してバックアップを管理できます。 Redis 2.8.22 バージョンからは、使用可能なメモリに基づいてバックアップ方法が選択されるようになり ました。十分な利用可能なメモリがある場合は、キャッシュのバックアップ中にすべての変更をキャッ シュのリザーブドメモリに書き込む子プロセスが生成されます。このプロセスは、バックアップ処理中の キャッシュへの書き込み数に応じて、すべての reserved memory を消費して、バックアップを失敗させる 場合があります。 使用可能なメモリが不足している場合は、分岐なしの協調的なバックグラウンドプロセスが使用されま す。分岐なしの方法は、レイテンシーとスループットの両方に影響を与える場合があります。詳細につい ては、「同期とバックアップの実装方法 (p. 211)」を参照してください。 バックアッププロセス実行時のパフォーマンスへの影響については、「パフォーマンスに対するバック アップの影響 (p. 247)」を参照してください。 このセクションでは、バックアップとリストアシナリオを使用する場合の概要について説明します。 制約 バックアップを計画または作成するときは、以下の制約事項を考慮する必要があります。 • 現時点では、バックアップと復元は Redis で実行されるクラスターでのみサポートされます。 • バックアップと復元は、Redis (クラスターモードが無効) クラスターの cache.t1.micro または cache.t2.* ノードでサポートされていません。他のキャッシュノードタイプはすべてサポートされま す。 先頭の Redis (クラスターモードが有効) クラスター、バックアップ、復元はすべてのノードタイプでサ ポートされています。 API Version 2015-02-02 246 Amazon ElastiCache ユーザーガイド コスト • 連続する 24 時間で、クラスターあたり 20 個までの手動バックアップを作成できます。 • Redis (クラスターモードが有効) では、シャード (API/CLI ではノードグループ) レベルではなくクラス ター (API/CLI ではレプリケーショングループ) レベルでのバックアップのみがサポートされています。 • バックアップから復元またはシードするときは、クラスターグループ内のシャードの数は、バックアッ プの作成に使用されるクラスター内のシャードの数と一致する必要があります。 • バックアップ処理中は、クラスターの CLI や API のオペレーションを追加実行することはできません。 コスト 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 秒かかる場合があり、この間、親プロセスは受信 アプリケーションリクエストを受け付けることができません。子プロセスが個別に実行された後、親プロ セスは通常のオペレーションを再開します。子プロセスはバックアップオペレーションが完了すると終了 します。 バックアップが書き込まれるとき、新しい書き込みには、追加のキャッシュノードメモリが使用されま す。この追加のメモリ使用量がノードの使用可能なメモリを超えた場合、過剰なページングよって処理が 低速になるか失敗する可能性があります。 以下に示しているのは、バックアップのパフォーマンスを向上させるためのガイドラインです。 • reserved-memory パラメータを設定する - 過剰なページングを軽減するために、reserved-memory パラ メータを設定することをお勧めします。このパラメータは、Redis がノードの使用可能なメモリをすべ て消費することを防止し、ページング容量を削減するのに役立ちます。また、大容量のノードを使用す るだけでパフォーマンスが向上する場合があります。reserved-memory パラメータとノードのメモリサ イズの詳細については、「Redis 固有のパラメータ (p. 313)」を参照してください。 API Version 2015-02-02 247 Amazon ElastiCache ユーザーガイド Redis バージョン 2.8.22 以前 を実行する場合のバックアップ • リードレプリカからバックアップを作成する - 複数のノードを含むノードグループで Redis を実行 している場合、プライマリノードまたはいずれかのリードレプリカからバックアップを作成できま す。BGSAVE の実行時に必要なシステムリソースのために、プライマリではなく、いずれかのリードレ プリカからバックアップを作成することをお勧めします。レプリカからバックアップが作成される間、 プライマリノードは BGSAVE のリソースの要件の影響を受けず、処理速度を低下させることなくリク エストを処理し続けることができます。 レプリケーショングループを削除し、最終バックアップをリクエストした場合、ElastiCache は常にプラ イマリノードからバックアップを作成します。これにより、レプリケーショングループが削除される前 に、最新の Redis データがキャプチャされます。 API Version 2015-02-02 248 Amazon ElastiCache ユーザーガイド Scheduling Automatic Backups Scheduling Automatic Backups すべての Redis クラスターで、自動バックアップを有効にできます。自動バックアップを有効にする と、ElastiCache はクラスターのバックアップを毎日作成します。自動バックアップは、データの損失に 対する予防策として役立ちます。障害が発生した場合、最新バックアップからすべてのデータを復元し て、新しいクラスターを作成できます。結果は、ウォームスタートのクラスターで、データがプリロード されており、すぐに使用できます。詳細については、「Restoring From a Backup (p. 269)」を参照して ください。 自動バックアップをスケジュールする場合は、次の設定を検討する必要があります: • バックアップ期間 - 毎日、ElastiCache がバックアップの作成を開始する期間。バックアップ期間の最 短時間は 60 分です。バックアップ期間は、いつでもお客様にとって都合のよい時間、つまり、バック アップの実行が特に使用率の高い時間と重ならないような時間に設定できます。 バックアップ期間を指定していない場合、ElastiCache によって自動的にバックアップ期間が割り当て られます。 • バックアップ保持期限 - バックアップが Amazon S3 に保持される日数。たとえば、保持期限を 5 に設 定すると、今日作成されたバックアップは 5 日間保持されます。保持期限が切れると、バックアップは 自動的に削除されます。 最大バックアップ保持期限は 35 日です。バックアップ保持期限を 0 に設定すると、クラスターの自動 バックアップが無効になります。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、既存の Redis クラスターまた はレプリケーショングループの変更時に、自動バックアップを有効または無効にすることができます。 既存のクラスターまたはレプリケーショングループの自動バックアップを有効または無効にする方法の 詳細については、「ElastiCache クラスターの変更 (p. 155)」または「レプリカを持つクラスターの変 更 (p. 237)」を参照してください。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、Redis クラスターまたはレプ リケーショングループの作成時に、自動バックアップを有効または無効にすることができます。Enable Automatic Backups ボックス ([Advanced Redis Settings] セクション) をオンにして、Redis クラスターを 作成するときに自動バックアップを有効にできます。詳細については、「Redis (クラスターモードが無効) クラスターの作成 ((コンソール)) (p. 136)」のステップ 2 を参照してください。既存のクラスターをプライ マリクラスターとして使用しない場合は、Redis レプリケーショングループを作成したときに自動バック アップを有効にできます。詳細については、「ゼロからのレプリケーショングループの作成 (p. 217)」を 参照してください。 API Version 2015-02-02 249 Amazon ElastiCache ユーザーガイド Taking Manual Backups Taking Manual Backups 自動バックアップに加えて、いつでも手動バックアップを作成できます。指定された保持期間後に自動的 に削除される自動バックアップとは異なり、手動バックアップには、経過した後で自動的に削除される保 持期間はありません。手動バックアップは手動で削除する必要があります。 手動バックアップはテストやアーカイブにも役立ちます。たとえば、テスト目的で一連の基本データを策 定したとします。このデータの手動バックアップを作成して、いつでも必要なときにデータを復元できま す。このデータを変更するアプリケーションをテストした後、新しいクラスターを作成し、基本データの バックアップから復元することによって、データをリセットできます。クラスターの準備ができたら、再 び基本データでアプリケーションをテストし、必要に応じてこのプロセスを繰り返すことができます。 手動バックアップの作成に加えて、以下のいずれかの方法で手動バックアップを作成できます。 • 「バックアップのコピー (p. 261)」ソースのバックアップが自動で作成されたか、手動で作成されたか は問題ではありません。 • 「Taking a Final Backup (p. 256)」クラスターまたはノードを削除する直前に最終バックアップを作成 します。 手動バックアップの作成頻度には制限があります。連続する 24 時間の間に、ノードごとに 20 を超える 手動バックアップを作成することはできません。したがって、4 個のノードを持つ Redis (クラスターモー ドが無効) クラスターの場合、ノードごとに 20 回 × 4 で、連続する 24 時間の間に手動バックアップを 80 回行うことができます。Redis (クラスターモードが有効) クラスターを完全にバックアップするには、各 シャードのノードをバックアップする必要があります。 手動バックアップに保持期限はなく、ElastiCache によって自動的に削除されません。クラスターまたは ノードを削除した場合でも、そのクラスターまたはノードの手動バックアップはすべて保持されます。手 動バックアップを保持する必要がなくなった場合は、自分で明示的に削除する必要があります。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、ノードの手動バックアップを作 成できます。 手動バックアップの作成 (コンソール) クラスターのバックアップを作成するには (console) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Redis] を選択します。 [Redis clusters] 画面が表示されます。 3. バックアップする Redis クラスターの名前の左にあるチェックボックスをオンにします。 4. [Backup] を選択します。 5. [バックアップを作成する] ダイアログが表示されます。 a. リードレプリカで Redis (クラスターモードが無効) クラスターをバックアップしている場合は、 [リソース名] から、バックアップソースで使用するノードを選択します。 b. [バックアップ名] ボックスに、バックアップの名前を入力します。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 API Version 2015-02-02 250 Amazon ElastiCache ユーザーガイド 手動バックアップの作成 (AWS CLI) • 末尾をハイフンすることはできません。 6. [Create Backup] を選択します。 クラスターのステータスが snapshotting に変わります。ステータスが [available] に戻ると、バック アップの作成が完了です。 手動バックアップの作成 (AWS CLI) AWS CLI を使用してクラスターの手動バックアップを作成するには、以下のパラメーターを指定して create-snapshot AWS CLI オペレーションを使用します。 • --cache-cluster-id – バックアップのソースとして使用するレプリカを持たない Redis (クラスター モードが無効) クラスターの名前。このパラメーターは、Redis (クラスターモードが無効) クラスターを バックアップするときに使用します。 Important このパラメーター値は、Redis (クラスターモードが無効) クラスターの固有ノードである必要 があります。リードレプリカがない場合は、クラスターの名前 - myCluster を使用します。 リードレプリカがある場合は、プライマリまたはリードレプリカ - myCluster-001 のいずれか になります。 • --replication-group-id – バックアップのソースとして使用する Redis (クラスターモードが有効) クラ スター (CLI/API: レプリケーショングループ) の名前。このパラメーターは、Redis (クラスターモードが 有効) クラスターをバックアップするときに使用します。 • --snapshot-name – 作成するスナップショットの名前。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 CLI コードの例 • 例 1: Redis (クラスターモードが無効) クラスター (リードレプリカなし) のバックアップ (p. 251) • 例 2: Redis (クラスターモードが無効) クラスター (リードレプリカあり) のバックアップ (p. 252) • 例 3: Redis (クラスターモードが有効) クラスターのバックアップ (p. 252) 例 1: Redis (クラスターモードが無効) クラスター (リードレプリカなし) のバックアップ 以下の AWS CLI オペレーションでは、リードレプリカを持たない Redis (クラスターモードが無効) クラ スター myNonClusteredRedis からバックアップ bkup-20150515 が作成されます。 Linux, macOS, or Unix 用: aws elasticache create-snapshot \ --cache-cluster-id myNonClusteredRedis \ --snapshot-name bkup-20150515 Windows の場合: API Version 2015-02-02 251 Amazon ElastiCache ユーザーガイド 手動バックアップの作成 (AWS CLI) aws elasticache create-snapshot ^ --cache-cluster-id myNonClusteredRedis ^ --snapshot-name bkup-20150515 例 2: Redis (クラスターモードが無効) クラスター (リードレプリカあり) のバックアップ 次の AWS CLI オペレーションでは、1 つ以上のリードレプリカを持つ Redis (クラスターモードが無効) ク ラスター myNonClusteredRedis からバックアップ bkup-20150515 が作成されます。 Linux, macOS, or Unix 用: aws elasticache create-snapshot \ --cache-cluster-id myNonClusteredRedis-001 \ --snapshot-name bkup-20150515 Windows の場合: aws elasticache create-snapshot ^ --cache-cluster-id myNonClusteredRedis-001 ^ --snapshot-name bkup-20150515 出力例: Redis (クラスターモードが無効) クラスターのバックアップ オペレーションの出力は次のようになります。 { "Snapshot": { "Engine": "redis", "CacheParameterGroupName": "default.redis3.2", "VpcId": "vpc-91280df6", "CacheClusterId": "myNonClusteredRedis-001", "SnapshotRetentionLimit": 0, "NumCacheNodes": 1, "SnapshotName": "bkup-20150515", "CacheClusterCreateTime": "2017-01-12T18:59:48.048Z", "AutoMinorVersionUpgrade": true, "PreferredAvailabilityZone": "us-east-1c", "SnapshotStatus": "creating", "SnapshotSource": "manual", "SnapshotWindow": "08:30-09:30", "EngineVersion": "3.2.4", "NodeSnapshots": [ { "CacheSize": "", "CacheNodeId": "0001", "CacheNodeCreateTime": "2017-01-12T18:59:48.048Z" } ], "CacheSubnetGroupName": "default", "Port": 6379, "PreferredMaintenanceWindow": "wed:07:30-wed:08:30", "CacheNodeType": "cache.m3.2xlarge" } } 例 3: Redis (クラスターモードが有効) クラスターのバックアップ 以下の AWS CLI オペレーションでは、Redis (クラスターモードが有効) クラスター myClusteredRedis か らバックアップ bkup-20150515 が作成されます。送信元を特定する --cache-cluster-id ではなく、-replication-group-id を使用することに注意してください。 API Version 2015-02-02 252 Amazon ElastiCache ユーザーガイド 手動バックアップの作成 (ElastiCache API) Linux, macOS, or Unix 用: aws elasticache create-snapshot \ --replication-group-id myClusteredRedis \ --snapshot-name bkup-20150515 Windows の場合: aws elasticache create-snapshot ^ --replication-group-id myClusteredRedis ^ --snapshot-name bkup-20150515 出力例: Redis (クラスターモードが有効) クラスターのバックアップ このオペレーションの出力は次のようになります。 { "Snapshot": { "Engine": "redis", "CacheParameterGroupName": "default.redis3.2.cluster.on", "VpcId": "vpc-91280df6", "NodeSnapshots": [ { "CacheSize": "", "NodeGroupId": "0001" }, { "CacheSize": "", "NodeGroupId": "0002" } ], "NumNodeGroups": 2, "SnapshotName": "bkup-20150515", "ReplicationGroupId": "myClusteredRedis", "AutoMinorVersionUpgrade": true, "SnapshotRetentionLimit": 1, "AutomaticFailover": "enabled", "SnapshotStatus": "creating", "SnapshotSource": "manual", "SnapshotWindow": "10:00-11:00", "EngineVersion": "3.2.4", "CacheSubnetGroupName": "default", "ReplicationGroupDescription": "2 shards 2 nodes each", "Port": 6379, "PreferredMaintenanceWindow": "sat:03:30-sat:04:30", "CacheNodeType": "cache.r3.large" } } 詳細については、『AWS Command Line Interface Reference』の「create-snapshot」を参照してくださ い。 手動バックアップの作成 (ElastiCache API) ElastiCache API を使用してクラスターの手動バックアップを作成するには、以下のパラメーターを指定し て CreateSnapshot ElastiCache API オペレーションを行います。 • CacheClusterId – バックアップのソースとして使用するレプリカを持たない Redis (クラスターモード が無効) クラスターの名前。このパラメーターは、Redis (クラスターモードが無効) クラスターをバック アップするときに使用します。 API Version 2015-02-02 253 Amazon ElastiCache ユーザーガイド 手動バックアップの作成 (ElastiCache API) Important このパラメーター値は、Redis (クラスターモードが無効) クラスターの固有ノードである必要 があります。リードレプリカがない場合は、クラスターの名前 - myCluster を使用します。 リードレプリカがある場合は、レプリカ、プライマリ、リードレプリカ - myCluster-001 のい ずれかを使用します。 • ReplicationGroupId – バックアップのソースとして使用する Redis (クラスターモードが有効) クラス ター (CLI/API: レプリケーショングループ) の名前。このパラメーターは、Redis (クラスターモードが有 効) クラスターをバックアップするときに使用します。 • SnapshotName - 作成するバックアップの名前。 クラスターの命名上の制約 • 1~20 文字の英数字またはハイフンを使用する必要があります。 • 先頭は文字にする必要があります。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 API コードの例 • 例 1: Redis (クラスターモードが無効) クラスター (リードレプリカなし) のバックアップ (p. 254) • 例 2: Redis (クラスターモードが無効) クラスター (リードレプリカあり) のバックアップ (p. 254) • 例 3: Redis (クラスターモードが有効) クラスターのバックアップ (p. 254) 例 1: Redis (クラスターモードが無効) クラスター (リードレプリカなし) のバックアップ 以下の ElastiCache API オペレーションでは、リードレプリカを持たない Redis (クラスターモードが無効) クラスター myNonClusteredRedis からバックアップ bkup-20150515 が作成されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateSnapshot &CacheClusterId=myNonClusteredRedis &SnapshotName=bkup-20150515 &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 例 2: Redis (クラスターモードが無効) クラスター (リードレプリカあり) のバックアップ 次の ElastiCache API オペレーションでは、1 つ以上のリードレプリカを持つ Redis (クラスターモードが 無効) クラスター myNonClusteredRedis からバックアップ bkup-20150515 が作成されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateSnapshot &CacheClusterId=myNonClusteredRedis-001 &SnapshotName=bkup-20150515 &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 例 3: Redis (クラスターモードが有効) クラスターのバックアップ API Version 2015-02-02 254 Amazon ElastiCache ユーザーガイド 手動バックアップの作成 (ElastiCache API) 以下の ElastiCache API オペレーションでは、Redis (クラスターモードが有効) クラスター myClusteredRedis からバックアップ bkup-20150515 が作成されます。送信元を特定する CacheClusterId ではなく、ReplicationGroupId を使用することに注意してください。 https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateSnapshot &ReplicationGroupId=myClusteredRedis &SnapshotName=bkup-20150515 &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、『Amazon ElastiCache API Reference』の「CreateSnapshot」を参照してください。 API Version 2015-02-02 255 Amazon ElastiCache ユーザーガイド Taking a Final Backup Taking a Final Backup ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して最終バックアップを作成できま す。 最終バックアップの作成 ((コンソール)) ElastiCache コンソールを使用して、Redis クラスター (API/CLI ではレプリケーショングループ) の削除時 に最終バックアップを作成できます。 Redis クラスターの削除時に最終バックアップを作成するには、削除ダイアログ (ステップ 5) で [Yes] を 選択し、バックアップに名前を付けます。 関連トピック • クラスターの削除 ((コンソール)) (p. 173) • レプリケーショングループの削除 ((コンソール)) (p. 239) 最終バックアップの作成 ((AWS CLI)) AWS CLI を使用して、Redis クラスター (API/CLI ではレプリケーショングループ) の削除時に最終バック アップを作成できます。 トピック • Redis クラスターを削除する場合 (p. 256) • Redis レプリケーショングループを削除する場合 (p. 257) Redis クラスターを削除する場合 最終バックアップを作成するには、以下のパラメーターを指定して、delete-cache-cluster AWS CLI オ ペレーションを行います。 • --cache-cluster-id – 削除するクラスターの名前。 • --final-snapshot-identifier - バックアップの名前。 以下のコードは、最終バックアップ bkup-20150515-final をクラスター myRedisCluster の削除時に作成 します。 Linux, macOS, or Unix 用: aws elasticache delete-cache-cluster \ --cache-cluster-id myRedisCluster \ --final-snapshot-identifier bkup-20150515-final Windows の場合: aws elasticache delete-cache-cluster ^ --cache-cluster-id myRedisCluster ^ --final-snapshot-identifier bkup-20150515-final 詳細については、『AWS Command Line Interface Reference』の「delete-cache-cluster」を参照してくだ さい。 API Version 2015-02-02 256 Amazon ElastiCache ユーザーガイド 最終バックアップの作成 ((ElastiCache API)) Redis レプリケーショングループを削除する場合 レプリケーショングループの削除時に最終バックアップを作成するには、以下のパラメーターを指定し て、delete-replication-group AWS CLI オペレーションを行います。 • --replication-group-id – 削除するレプリケーショングループの名前。 • --final-snapshot-identifier - 最終バックアップの名前。 以下のコードは、最終バックアップ bkup-20150515-final をレプリケーショングループ myReplGroup の 削除時に作成します。 Linux, macOS, or Unix 用: aws elasticache delete-replication-group \ --replication-group-id myReplGroup \ --final-snapshot-identifier bkup-20150515-final Windows の場合: aws elasticache delete-replication-group ^ --replication-group-id myReplGroup ^ --final-snapshot-identifier bkup-20150515-final 詳細については、『AWS Command Line Interface Reference』の「delete-replication-group」を参照して ください。 最終バックアップの作成 ((ElastiCache API)) ElastiCache API を使用して、Redis クラスターまたはレプリケーショングループの削除時に最終バック アップを作成できます。 トピック • Redis クラスターを削除する場合 (p. 257) • Redis レプリケーショングループを削除する場合 (p. 258) Redis クラスターを削除する場合 最終バックアップを作成するには、以下のパラメーターを指定して、DeleteCacheCluster ElastiCache API オペレーションを行います。 • CacheClusterId – 削除するクラスターの名前。 • FinalSnapshotIdentifier - バックアップの名前。 以下の ElastiCache API オペレーションでは、bkup-20150515-finalクラスター削除時myRedisCluster の バックアップが作成されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DeleteCacheCluster &CacheClusterId=myRedisCluster &FinalSnapshotIdentifier=bkup-20150515-final &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 API Version 2015-02-02 257 Amazon ElastiCache ユーザーガイド 最終バックアップの作成 ((ElastiCache API)) &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、『Amazon ElastiCache API Reference』の「DeleteCacheCluster」を参照してくださ い。 Redis レプリケーショングループを削除する場合 レプリケーショングループの削除時に最終バックアップを作成するには、以下のパラメーターを指定し て、DeleteReplicationGroup ElastiCache API オペレーションを行います。 • ReplicationGroupId – 削除するレプリケーショングループの名前。 • FinalSnapshotIdentifier - 最終バックアップの名前。 以下の ElastiCache API オペレーションでは、bkup-20150515-finalレプリケーショングループの削除 時myReplGroup にバックアップが作成されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DeleteReplicationGroup &FinalSnapshotIdentifier=bkup-20150515-final &ReplicationGroupId=myReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> 詳細については、『Amazon ElastiCache API Reference』の「DeleteReplicationGroup」を参照してくだ さい。 API Version 2015-02-02 258 Amazon ElastiCache ユーザーガイド バックアップの詳細の表示 バックアップの詳細の表示 以下の手順では、バックアップのリストを表示する方法を示しています。必要に応じて、特定のバック アップの詳細を表示することもできます。 バックアップの詳細の表示 ((コンソール)) AWS マネジメントコンソール を使用してバックアップの詳細を表示するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Backups] を選択します。 3. [Filter] フィールドを使用して、手動、自動、またはすべてのバックアップを表示します。 4. 特定のバックアップの詳細を表示するには、バックアップの名前の左にあるチェックボックスをオン にします。 バックアップの詳細の表示 ((AWS CLI)) バックアップのリストと必要に応じて特定のバックアップの詳細を表示するには、describe-snapshots CLI オペレーションを使用します。 例 以下のオペレーションでは、パラメーター --max-records を使用して、アカウントに関連付けられた最大 20 個のバックアップをリスト表示します。パラメーター --max-records を省略すると、最大 50 個のバッ クアップが一覧表示されます。 aws elasticache describe-snapshots --max-records 20 以下のオペレーションでは、パラメーター --cache-cluster-id を使用して、クラスター my-cluster に 関連付けられたバックアップのみをリスト表示します。 aws elasticache describe-snapshots --cache-cluster-id my-cluster 以下のオペレーションでは、パラメーター --snapshot-name を使用して、バックアップ my-backup の詳 細を表示します。 aws elasticache describe-snapshots --snapshot-name my-backup 詳細については、『AWS Command Line Interface Reference』の「describe-snapshots」を参照してくだ さい。 バックアップの詳細の表示 ((ElastiCache API)) バックアップのリストを表示するには、DescribeSnapshots オペレーションを使用します。 例 以下のオペレーションでは、パラメーター MaxRecords を使用して、アカウントに関連付けられた最大 20 個のバックアップをリスト表示します。パラメーター MaxRecords を省略すると、最大 50 個のバックアッ プが一覧表示されます。 API Version 2015-02-02 259 Amazon ElastiCache ユーザーガイド バックアップの詳細の表示 ((ElastiCache API)) https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeSnapshots &MaxRecords=20 &SignatureMethod=HmacSHA256 &SignatureVersion=4 &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> 以下のオペレーションでは、パラメーター CacheClusterId を使用して、クラスター MyCluster に関連付 けられているすべてのバックアップをリスト表示します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeSnapshots &CacheClusterId=MyCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &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> 以下のオペレーションでは、パラメーター SnapshotName を使用して、バックアップ MyBackup の詳細を表 示します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeSnapshots &SignatureMethod=HmacSHA256 &SignatureVersion=4 &SnapshotName=MyBackup &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> 詳細については、「DescribeSnapshots」を参照してください。 API Version 2015-02-02 260 Amazon ElastiCache ユーザーガイド バックアップのコピー バックアップのコピー 自動で作成されたか手動で作成されたかにかかわらず、どのバックアップのコピーでも作成できます。 バックアップをエクスポートし、ElastiCache 外部からアクセスすることもできます。バックアップのエ クスポートに関するガイダンスについては、「バックアップのエクスポート (p. 263)」を参照してくださ い。 以下の手順では、バックアップをコピーする方法を示しています。 バックアップのコピー ((コンソール)) バックアップをコピーするには ((console)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. ElastiCache コンソールのダッシュボードで、[Backups] を選択します。 3. バックアップのリストで、コピーするバックアップの名前の左にあるチェックボックスをオンにしま す。 4. [Copy] を選択します。 5. [Create Copy of the Backup?] ダイアログボックスで、次の操作を行います。 a. b. [New backup name] ボックスに、新しいバックアップの名前を入力します。 オプションの [Target S3 Bucket] ボックスは空白のままにします。このフィールドは、バック アップのエクスポートにのみ使用され、S3 の特殊なアクセス権限を必要とします。バックアップ のエクスポートの詳細については、「バックアップのエクスポート (p. 263)」を参照してくださ い。 c. [Copy] を選択します。 バックアップのコピー ((AWS CLI)) バックアップをコピーするには、copy-snapshot オペレーションを使用します。 パラメーター • --source-snapshot-name - コピーするバックアップの名前。 • --target-snapshot-name - バックアップのコピーの名前。 • --target-bucket - バックアップのエクスポート用に予約されています。バックアップのコピーを作成 する場合は、このパラメーターを使用しないでください。詳細については、「バックアップのエクス ポート (p. 263)」を参照してください。 以下の例では、自動バックアップのコピーを作成します。 Linux, macOS, or Unix 用: aws elasticache copy-snapshot \ --source-snapshot-name automatic.my-redis-primary-2014-03-27-03-15 \ --target-snapshot-name my-backup-copy Windows の場合: aws elasticache copy-snapshot ^ --source-snapshot-name automatic.my-redis-primary-2014-03-27-03-15 ^ API Version 2015-02-02 261 Amazon ElastiCache ユーザーガイド バックアップのコピー ((ElastiCache API)) --target-snapshot-name my-backup-copy 詳細については、AWS CLI で「copy-snapshot」を参照してください。 バックアップのコピー ((ElastiCache API)) バックアップをコピーするには、以下のパラメーターを指定して、CopySnapshot オペレーションを行い ます。 パラメーター • SourceSnapshotName - コピーするバックアップの名前。 • TargetSnapshotName - バックアップのコピーの名前。 • TargetBucket - バックアップのエクスポート用に予約されています。バックアップのコピーを作成す る場合は、このパラメーターを使用しないでください。詳細については、「バックアップのエクスポー ト (p. 263)」を参照してください。 以下の例では、自動バックアップのコピーを作成します。 Example https://elasticache.us-west-2.amazonaws.com/ ?Action=CopySnapshot &SourceSnapshotName=automatic.my-redis-primary-2014-03-27-03-15 &TargetSnapshotName=my-backup-copy &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> 詳細については、『Amazon ElastiCache API Reference』の「CopySnapshot」を参照してください。 API Version 2015-02-02 262 Amazon ElastiCache ユーザーガイド バックアップのエクスポート バックアップのエクスポート Amazon ElastiCache では、ElastiCache バックアップの Amazon Simple Storage Service (Amazon S3) バ ケットへのエクスポートがサポートされています。これにより、ElastiCache 外部からバックアップにア クセスできます。ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してバックアップを エクスポートできます。 バックアップのエクスポートは、他のリージョンのクラスターを起動する必要がある場合に便利です。1 つのリージョンでデータをエクスポートし、.rdb ファイルを新しいリージョンにコピーして、その .rdb ファイルを使うことにより、新しいクラスターの入力を待つのではなく、新しいクラスターをシードでき ます。新しいクラスターのシードについては、「Using a Backup to Seed a Cluster (p. 271)」を参照して ください。クラスターのデータをエクスポートする別の理由は、オフライン処理のために .rdb ファイルを 使用するためです。 Important • バックアップと、そのコピー先の Amazon S3 バケットは、同じリージョンにあることが必要 です。 • Amazon S3 バケットにコピーするバックアップは暗号化されません。バックアップを保存する Amazon S3 バケットへのアクセスは他のユーザーに許可しないことを強くお勧めします。 バックアップを Amazon S3 にエクスポートするためには、そのバックアップと同じリージョンに Amazon S3 バケットを配置し、ElastiCache にそのバケットへのアクセスを許可する必要があります。最 初の 2 つのステップで、これを行う方法を示します。 警告: データの脆弱性 以下のシナリオでは、目的の方法でデータを公開します。 • 他のユーザーがバックアップのエクスポート先の Amazon S3 バケットにアクセスできる。 バックアップへのアクセスを制御するには、データにアクセスする必要があるユーザーにの み、Amazon S3 バケットへのアクセスを許可します。Amazon S3 バケットへのアクセスの管 理については、『Amazon S3 開発者ガイド』の「アクセスの管理」を参照してください。 • 他のユーザーが、CopySnapshot API を使用するアクセス権限を持っている。 CopySnapshot API を使用する権限のあるユーザーまたはグループは、独自の Amazon S3 バ ケットを作成し、このバケットにバックアップをコピーできます。バックアップへのアクセス を制御するには、IAM ポリシーを使用して、CopySnapshot API を使用できるユーザーを管理 します。IAM を使用した ElastiCache API の使用の管理については、『認証とアクセスコント ロール (Amazon ElastiCache 用) (p. 358)ElastiCache ユーザーガイド』の「」を参照してく ださい。 トピック • ステップ 1: Amazon S3 バケットを作成する (p. 263) • ステップ 2: ElastiCache に Amazon S3 バケットへのアクセスを許可する (p. 264) • ステップ 3: ElastiCache バックアップをエクスポートする (p. 265) ステップ 1: Amazon S3 バケットを作成する 以下の手順では、ElastiCache バックアップをエクスポートおよび保存できる Amazon S3 バケットを作成 します。 API Version 2015-02-02 263 Amazon ElastiCache ユーザーガイド ステップ 2: ElastiCache に Amazon S3 バケットへのアクセスを許可する 1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール(https:// console.aws.amazon.com/s3/)を開きます。 2. [Create Bucket] を選択します。 3. [Create a Bucket - Select a Bucket Name and Region] で、以下の操作を実行します。 a. [Bucket Name] に Amazon S3 バケットの名前を入力します。 Amazon S3 バケットの名前は DNS に準拠している必要があります。それ以外の場 合、ElastiCache はバックアップファイルにアクセスできません。DNS 準拠のルールでは、次の ようになります: • 名前は、3 ~ 63 文字以内にする必要があります。 • 名前は、ピリオド(.)区切られた 1 つ以上の一連のラベルに必要があります。各ラベルの条件 は次のとおりです。 • 先頭の文字には小文字の英文字または数字を使います。 • 末尾の文字には小文字の英文字または数字を使います。 • 小文字、数字、ダッシュのみを含める必要があります。 • 名前は、IP アドレスとしてフォーマットされていてはいけません(例: 192.0.2.0)。 b. [Region] で、バックアップがある同じリージョンを選択します。 c. [Create] を選択します。 Amazon S3 バケットの作成の詳細については、『Amazon Simple Storage Service コンソールユーザーガ イド』の「バケットの作成」を参照してください。 ステップ 2: ElastiCache に Amazon S3 バケットへの アクセスを許可する 以下の手順では、Amazon ElastiCache に S3 バケットへのアクセスを許可し、バックアップをバケットに コピーできるようにします。 Warning Amazon S3 バケットにコピーするバックアップは暗号化されません。データは、Amazon S3 バ ケットへのアクセス権を持っているユーザーによってアクセスされる可能性があります。この Amazon S3 バケットへの不正アクセスを防ぐよう IAM ポリシーを設定することを強くお勧めし ます。詳細については、『Amazon S3 開発者ガイド』の「アクセスの管理」を参照してくださ い。 1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール(https:// console.aws.amazon.com/s3/)を開きます。 2. [All Buckets] を選択し、エクスポートされるバックアップの書き込み先となる Amazon S3 バケット の名前を選択します。これは、「ステップ 1: Amazon S3 バケットを作成する (p. 263)」で作成した S3 バケットとなります。 3. [Properties] を選択し、[Permissions] を選択します。 4. バケットのリージョンがバックアップのリージョンと同じであることを確認します。同じでない場合 は、「ステップ 1: Amazon S3 バケットを作成する (p. 263)」に戻り、エクスポートするバックアッ プと同じリージョンに新しいバケットを作成します。 5. [Add more permissions] を選択します。 6. [Grantee] に、次の一覧に示すリージョンの正規化 を入力します。 • 中国 (北京) リージョン – b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83 API Version 2015-02-02 264 Amazon ElastiCache ユーザーガイド ステップ 3: ElastiCache バックアップをエクスポートする • AWS GovCloud (US) リージョン – 40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6 Important バックアップは AWS GovCloud (US) 内の S3 バケットにエクスポートする必要がありま す。 • その他のすべてのリージョン – 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353 7. [List]、[Upload/Delete]、および [View Permissions] を選択します。ElastiCache には、S3 バケットで エクスポートされたバックアップを作成するために、これらのアクセス権限が必要です。 8. [Save] を選択します。 Amazon S3 バケットで、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して ElastiCache バックアップをエクスポートする準備ができました。 ステップ 3: ElastiCache バックアップをエクスポート する これで S3 バケットを作成し、これにアクセスする権限を ElastiCache に付与したので、以下のいずれか の方法を使用してバックアップをエクスポートします。 トピック • ElastiCache バックアップのエクスポート ((コンソール)) (p. 265) • ElastiCache バックアップのエクスポート ((AWS CLI)) (p. 266) • ElastiCache バックアップのエクスポート ((ElastiCache API)) (p. 267) ElastiCache バックアップのエクスポート ((コンソール)) 以下のプロセスでは、ElastiCache コンソールを使用してバックアップを Amazon S3 バケットにエクス ポートし、ElastiCache 外部からアクセスできるようにします。Amazon S3 バケットは ElastiCache バッ クアップと同じリージョンにあることが必要です。 1. 2. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 ElastiCache コンソールダッシュボードで [Backups] を選択します。 3. バックアップのリストから、エクスポートするバックアップの名前の左にあるチェックボックスをオ ンにします。 4. 5. [Copy] を選択します。 [Create a Copy of the Backup?] で、次の作業を行います。 a. [New backup name] ボックスに、新しいバックアップの名前を入力します。 この名前は 1~1,000 文字で、UTF-8 エンコードが可能である必要があります。 b. ElastiCache は、ここで入力した値に、インスタンス識別子と .rdb を追加します。たとえば、 「my-exported-backup」と入力した場合、ElastiCache によって my-exported-backup-0001.rdb が作成されます。 [Target S3 Location] リストから、バックアップをコピーする Amazon S3 バケット (「ステップ 1: Amazon S3 バケットを作成する (p. 263)」で作成したバケット) の名前を選択します。 [Target S3 Location] がバックアップのリージョン内の Amazon S3 バケットであり、かつ、バッ クアップをエクスポートするための List、Upload/Delete、View のアクセス権限が ElastiCache に API Version 2015-02-02 265 Amazon ElastiCache ユーザーガイド ステップ 3: ElastiCache バックアップをエクスポートする 付与されている必要があります。詳細については、「ステップ 2: ElastiCache に Amazon S3 バ ケットへのアクセスを許可する (p. 264)」を参照してください。 c. [Copy] を選択します。 Note S3 バケットにバックアップをエクスポートするためのアクセス権限が ElastiCache にない場合、 以下のいずれかのエラーメッセージを受け取ります。示されたアクセス権限を追加し、バック アップのエクスポートを再試行してください。 • ElastiCache has not been granted READ permissions %s on the S3 Bucket. 解決策: バケットでリストと読み取りのアクセス権限を追加します。 • ElastiCache has not been granted WRITE permissions %s on the S3 Bucket. 解決策: バケットでアップロード/削除のアクセス権限を追加します。 • ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket. 解決策: バケットでアクセス許可の表示を追加します。 アクセス権限の追加の詳細については、「ステップ 2: ElastiCache に Amazon S3 バケットへの アクセスを許可する (p. 264)」を参照してください。 別のリージョンにバックアップをコピーする場合は、Amazon S3 を使用してコピーします。詳細について は、『Amazon Simple Storage Service コンソールユーザーガイド』の「オブジェクトのコピー」を参照 してください。 ElastiCache バックアップのエクスポート ((AWS CLI)) 以下のパラメーターを指定して copy-snapshot CLI オペレーションを使用することで、Amazon S3 バ ケットにバックアップをエクスポートします。 パラメーター • --source-snapshot-name - コピーするバックアップの名前。 • --target-snapshot-name - バックアップのコピーの名前。 この名前は 1~1,000 文字で、UTF-8 エンコードが可能である必要があります。 ElastiCache は、ここで入力した値に、インスタンス識別子と .rdb を追加します。たとえば、「myexported-backup」と入力した場合、ElastiCache によって my-exported-backup-0001.rdb が作成され ます。 • --target-bucket - バックアップをエクスポートする Amazon S3 バケットの名前。バックアップのコ ピーは、指定したバケットで作成されます。 [--target-bucket] がバックアップのリージョン内の Amazon S3 バケットであり、かつ、バックアップ をエクスポートするための List、Upload/Delete、View のアクセス権限が ElastiCache に付与されている 必要があります。詳細については、「ステップ 2: ElastiCache に Amazon S3 バケットへのアクセスを 許可する (p. 264)」を参照してください。 以下のオペレーションは、my-s3-bucket にバックアップをコピーします。 Linux, macOS, or Unix 用: aws elasticache copy-snapshot \ API Version 2015-02-02 266 Amazon ElastiCache ユーザーガイド ステップ 3: ElastiCache バックアップをエクスポートする --source-snapshot-name automatic.my-redis-primary-2016-06-27-03-15 \ --target-snapshot-name my-exported-backup \ --target-bucket my-s3-bucket Windows の場合: aws elasticache copy-snapshot ^ --source-snapshot-name automatic.my-redis-primary-2016-06-27-03-15 ^ --target-snapshot-name my-exported-backup ^ --target-bucket my-s3-bucket Note S3 バケットにバックアップをエクスポートするためのアクセス権限が ElastiCache にない場合、 以下のいずれかのエラーメッセージを受け取ります。示されたアクセス権限を追加し、バック アップのエクスポートを再試行してください。 • ElastiCache has not been granted READ permissions %s on the S3 Bucket. 解決策: バケットでリストと読み取りのアクセス権限を追加します。 • ElastiCache has not been granted WRITE permissions %s on the S3 Bucket. 解決策: バケットでアップロード/削除のアクセス権限を追加します。 • ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket. 解決策: バケットでアクセス許可の表示を追加します。 アクセス権限の追加の詳細については、「ステップ 2: ElastiCache に Amazon S3 バケットへの アクセスを許可する (p. 264)」を参照してください。 詳細については、『AWS Command Line Interface Reference』の「copy-snapshot」を参照してくださ い。 別のリージョンにバックアップをコピーする場合は、Amazon S3 を使用してコピーします。詳細について は、『Amazon Simple Storage Service コンソールユーザーガイド』の「オブジェクトのコピー」を参照 してください。 ElastiCache バックアップのエクスポート ((ElastiCache API)) 以下のパラメーターを指定して CopySnapshot API オペレーションを使用し、バックアップを Amazon S3 バケットにエクスポートします。 パラメーター • SourceSnapshotName - コピーするバックアップの名前。 • TargetSnapshotName - バックアップのコピーの名前。 この名前は 1~1,000 文字で、UTF-8 エンコードが可能である必要があります。 ElastiCache は、ここで入力した値に、インスタンス識別子と .rdb を追加します。たとえば、「myexported-backup」と入力した場合、my-exported-backup-0001.rdb を取得します。 • TargetBucket - バックアップをエクスポートする Amazon S3 バケットの名前。バックアップのコピー は、指定したバケットで作成されます。 [TargetBucket] がバックアップのリージョン内の Amazon S3 バケットであり、かつ、バックアップを エクスポートするための List、Upload/Delete、View のアクセス権限が ElastiCache に付与されている必 API Version 2015-02-02 267 Amazon ElastiCache ユーザーガイド ステップ 3: ElastiCache バックアップをエクスポートする 要があります。詳細については、「ステップ 2: ElastiCache に Amazon S3 バケットへのアクセスを許 可する (p. 264)」を参照してください。 以下の例では、Amazon S3 バケット my-s3-bucket に自動バックアップのコピーを作成します。 Example https://elasticache.us-west-2.amazonaws.com/ ?Action=CopySnapshot &SourceSnapshotName=automatic.my-redis-primary-2016-06-27-03-15 &TargetBucket=my-s3-bucket &TargetSnapshotName=my-backup-copy &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2016-01-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> Note S3 バケットに、ElastiCache がスナップショットをエクスポートするために必要なアクセス権 限がない場合、次のいずれかのエラーメッセージを受け取ります。示されたアクセス権限を追加 し、バックアップのエクスポートを再試行してください。 • ElastiCache has not been granted READ permissions %s on the S3 Bucket. 解決策: バケットでリストと読み取りのアクセス権限を追加します。 • ElastiCache has not been granted WRITE permissions %s on the S3 Bucket. 解決策: バケットでアップロード/削除のアクセス権限を追加します。 • ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket. 解決策: バケットでアクセス許可の表示を追加します。 アクセス権限の追加の詳細については、「ステップ 2: ElastiCache に Amazon S3 バケットへの アクセスを許可する (p. 264)」を参照してください。 詳細については、『Amazon ElastiCache API Reference』の「CopySnapshot」を参照してください。 別のリージョンにバックアップをコピーする場合は、Amazon S3 のコピーを使用して、エクスポートさ れたバックアップを別のリージョンの Amazon S3 バケットにコピーします。詳細については、『Amazon Simple Storage Service コンソールユーザーガイド』の「オブジェクトのコピー」を参照してください。 API Version 2015-02-02 268 Amazon ElastiCache ユーザーガイド Restoring From a Backup Restoring From a Backup バックアップから新しいクラスターにいつでもデータを復元できます。デフォルトでは、新しいクラス ターは、バックアップを作成したときのソースクラスターと同じ設定になります。ただし、ノードサイズ など、一部のパラメータは変更できます。 復元操作時に、ElastiCache は新しいクラスターを作成し、バックアップファイルからのデータを使用し てキャッシュに入力します。このプロセスが完了すると、Redis のキャッシュはウォームアップ状態にな り、クラスターはリクエストを受け付けることができます。 以下の手順では、新しいクラスターにバックアップを復元する方法を示しています。 Restoring From a Backup (コンソール) ElastiCache コンソールを使用して、バックアップからクラスターを復元できます。 新しいクラスターにバックアップを復元するには (console) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインから、[Backups] を選択します。 3. バックアップのリストで、復元元のバックアップを選択します。 4. [Restore] を選択します。 5. [Restore Cluster] ダイアログボックスに入力します。 [オプション] [Instance Type]、[Cache Port]、および他のいくつかのプロパティに新しい値を選択する ことで、新しいクラスターをカスタマイズできます。 6. 設定が完了したら、[Launch Cluster] を選択します。 Restoring From a Backup (AWS CLI) バックアップから新しいクラスターにデータを復元するには、以下のパラメーターを指定して createcache-cluster CLI オペレーションを使用します。 • --snapshot-name - 復元するバックアップの名前。 • --cache-cluster-id – 復元後の新しいキャッシュクラスターの名前。 以下の例では、my-restored-redis という名前の新しいキャッシュクラスターを作成し、my-manualbackup からそのクラスターにデータを復元します。 Linux, macOS, 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 269 Amazon ElastiCache ユーザーガイド Restoring From a Backup (ElastiCache API) 詳細については、『AWS Command Line Interface Reference』の「create-cache-cluster」を参照してくだ さい。 Restoring From a Backup (ElastiCache API) バックアップから新しいクラスターにデータを復元するには、以下のパラメーターを指定して CreateCacheCluster API オペレーションを使用します。 • SnapshotName - 復元するバックアップの名前。 • CacheClusterId – 復元後の新しいキャッシュクラスターの名前。 以下の例では、my-restored-redis という名前の新しいキャッシュクラスターを作成し、my-manualbackup からそのクラスターにデータを復元します。 例 https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateCacheCluster &CacheClusterId=my-restored-redis &SignatureVersion=4 &SignatureMethod=HmacSHA256 &SnapshotName=my-manual-backup &Timestamp=20141201T220302Z &Version=2015-02-02 &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> 詳細については、『Amazon ElastiCache API Reference』の「CreateCacheCluster」を参照してくださ い。 API Version 2015-02-02 270 Amazon ElastiCache ユーザーガイド Using a Backup to Seed a Cluster Using a Backup to Seed a Cluster 新しい Redis クラスターを作成するときに、Redis .rdb バックアップファイルのデータでシードできま す。クラスターをシードすることは、現在 ElastiCache の外部で Redis インスタンスを管理していて、新 しい ElastiCache クラスターに既存の Redis データを入力する場合に役に立ちます。 Important • Redis バックアップデータがノードのリソースを超えていないことを確認する必要がありま す。たとえば、2.9 GB のメモリがある cache.m3. ミディアムノードに、5 GB の Redis データ がある .rdb ファイルをアップロードすることはできません。 バックアップが大きすぎる場合、結果として作成されるクラスターのステータスが restorefailed になります。その場合は、クラスターを削除してやり直す必要があります。 ノードの種類および仕様の一覧については、「Redis のノードタイプ固有のパラメー タ (p. 328)」および Amazon ElastiCache 製品の機能と詳細を参照してください。 • S3 SSE を使用した Redis RDB ファイルの暗号化はサポートされていません。 次のトピックで、ElastiCache Redis 以外のクラスターを Amazon ElastiCache に移行させる方法について 説明します。 トピック ステップ 1: Redis バックアップを作成する (p. 271) ステップ 2: バックアップを Amazon S3 にアップロードする (p. 271) ステップ 3: .rdb ファイルへの読み込みアクセスを ElastiCache に許可する (p. 272) ステップ 4: ElastiCache クラスターと .rdb ファイルデータを提携させる (p. 273) ステップ 1: Redis バックアップを作成する ElastiCache Redis インスタンスのシード元の Redis バックアップを作成するには 1. 既存の Redis インスタンスに接続します。 2. BGSAVE オペレーション、または SAVE オペレーションを実行してバックアップを作成します。 BGSAVE は非同期処理であり、処理中も他のクライアントをブロックしません。詳細について は、Redis ウェブサイトの「BGSAVE」を参照してください。 SAVE が同期され、完了するまで他のプロセスがブロックされます。詳細については、Redis ウェブサ イトの「SAVE」を参照してください。 バックアップの作成の詳細については、Redis ウェブサイトの「Redis Persistence」を参照してくださ い。 ステップ 2: バックアップを Amazon S3 にアップロー ドする バックアップファイルを作成したら、Amazon S3 バケットにアップロードする必要があります。このタス クの詳細については、『Amazon Simple Storage Service 入門ガイド』を参照してください。 API Version 2015-02-02 271 Amazon ElastiCache ユーザーガイド ステップ 3: .rdb ファイルへの読み込 みアクセスを ElastiCache に許可する rdb ファイルの S3 バケットへのパスを書き留めることも重要です。たとえば、バケット名が myBucket で ありパスが myFolder/redis.rdb である場合、myBucket/myFolder/redis.rdb と入力します。新しいクラ スターにこのバックアップのデータをシードする際にこのパスが必要です。 Amazon S3 バケットの名前は DNS に準拠している必要があります。それ以外の場合、ElastiCache は バックアップファイルにアクセスできません。DNS 準拠のルールでは、次のようになります: • 名前は、3 ~ 63 文字以内にする必要があります。 • 名前は、ピリオド(.)区切られた 1 つ以上の一連のラベルに必要があります。各ラベルの条件は次のと おりです。 • 先頭の文字には小文字の英文字または数字を使います。 • 末尾の文字には小文字の英文字または数字を使います。 • 小文字、数字、ダッシュのみを含める必要があります。 • 名前は、IP アドレスとしてフォーマットされていてはいけません(例: 192.0.2.0)。 詳細については、『Amazon Simple Storage Service 開発者ガイド』の「Bucket Restrictions and Limitations」を参照してください。 Amazon S3 バケットは ElastiCache クラスターと同じリージョンで使用することを強くお勧めします。こ の手法により、ElastiCache が Amazon S3 から .rdb ファイルを読み取る場合のデータ転送速度が最大限に 速くなります。 ステップ 3: .rdb ファイルへの読み込みアクセスを ElastiCache に許可する バックアップファイルへの読み込みアクセスを ElastiCache に許可するには 1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール(https:// console.aws.amazon.com/s3/)を開きます。 2. [All Buckets] を選択し、.rdb ファイルを含む S3 バケットの名前を選択します。 3. .rdb ファイルを含むフォルダの名前を選択します。 4. .rdb バックアップファイルの名前を選択します。 5. [Actions] ドロップダウンメニューを選択して、[Properties] を選択します。 6. [Grantee] ボックスで、対象リージョンの正規化 ID を入力します。 • 中国 (北京) リージョン: b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83 • AWS GovCloud (US) リージョン: 40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6 Important お客様がバックアップを AWS GovCloud (US) 内の Redis クラスターにダウンロードする には、そのバックアップが AWS GovCloud (US) 内の S3 バケットにあることが必要です。 • その他のすべてのリージョン – 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353 7. [Open/Download] を選択して、次に [Save] を選択します。 API Version 2015-02-02 272 Amazon ElastiCache ユーザーガイド ステップ 4: ElastiCache クラスター と .rdb ファイルデータを提携させる ステップ 4: ElastiCache クラスターと .rdb ファイル データを提携させる これで ElastiCache クラスターを作成し、.rdb ファイルのデータと提携する準備が整いました。クラス ターを作成するには、「クラスターの作成 (p. 133)」のリダイレクトに従ってください。Redis がクラス ターエンジンとして選択されていることを確認してください。 さらに、お客様が ElastiCache に使用するよう指示した方法は、Amazon S3 にアップロードしたバック アップがどこにあるのかを検索するものですが、これはクラスターの作成に使用する方法によって異なり ます。 • ElastiCache クラスターと .rdb ファイルデータを提携させます (ElastiCache コンソールを使用して)。 [Specify Cluster Details] ページ ([Configuration] セクションの下部) で Redis エンジンを選択した ら、[S3 Location of the Redis .rdb file] を検索して、S3 バケットにアップロードするバックアップの Amazon 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. 392)」を参照してください。 API Version 2015-02-02 273 Amazon ElastiCache ユーザーガイド Tagging Backups Tagging Backups コスト配分タグは、費用を請求書タグ値別にグループ化することで、複数の AWS サービスのコストを追 跡する方法です。コスト配分タグの詳細については、「コスト配分タグの使用」と「コスト配分のタグに よるコストのモニタリング (p. 399)」を参照してください。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、バックアップのコスト配分タグ を追加、一覧表示、変更、削除、またはコピーできます。詳細については、次を参照してください。 <xrerf></xrerf> API Version 2015-02-02 274 Amazon ElastiCache ユーザーガイド Deleting a Backup Deleting a Backup 自動バックアップは、保持期限を過ぎると自動的に削除されます。クラスターを削除すると、そのクラス ターのすべての自動バックアップも削除されます。レプリケーショングループを削除すると、そのグルー プのクラスターからすべて自動バックアップも削除されます。 ElastiCache には、バックアップが自動と手動のいずれで作成されたかにかかわらず、いつでもバック アップを削除できる削除 API が用意されています (手動バックアップには保持期限がないため、手動削除 は手動スナップショットを削除する唯一の方法です)。 ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してバックアップを削除できます。 Deleting a Backup (コンソール) 以下の手順では、ElastiCache コンソールを使用してバックアップを削除します。 バックアップを削除するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで、[Backups] を選択します。 [Backups] 画面にバックアップのリストが表示されます。 3. 4. 削除するバックアップの名前の左にあるチェックボックスをオンにします。 [Delete] を選択します。 5. [Delete Backup] 確認画面が表示されます。 このバックアップを削除する場合は、[Delete] を選択します。ステータスが deleting に変わります。 このバックアップを保持する場合は、[Cancel] を選択します。 Deleting a Backup (AWS CLI) バックアップを削除するには、以下のパラメーターを指定して delete-snapshot AWS CLI オペレーション を使用します。 • --snapshot-name - 削除するバックアップの名前。 以下のコードはバックアップ myBackup を削除します。 aws elasticache delete-snapshot --snapshot-name myBackup 詳細については、『AWS Command Line Interface Reference』の「delete-snapshot」を参照してくださ い。 Deleting a Backup (ElastiCache API) 以下のパラメーターを指定して DeleteSnapshot API オペレーションを使用することで、バックアップを削 除します。 • SnapshotName - 削除するバックアップの名前。 以下のコードはバックアップ myBackup を削除します。 API Version 2015-02-02 275 Amazon ElastiCache ユーザーガイド AOF (Redis Append Only Files) https://elasticache.us-west-2.amazonaws.com/ ?Action=DeleteSnapshot &SignatureVersion=4 &SignatureMethod=HmacSHA256 &SnapshotId=myBackup &Timestamp=20150202T192317Z &Version=2015-02-02 &X-Amz-Credential=<credential> 詳細については、『Amazon ElastiCache API Reference』の「DeleteSnapshot」を参照してください。 AOF (Redis Append Only Files) デフォルトでは、ElastiCache の Redis ノード内のデータはメモリにのみ存在し、永続的ではありませ ん。ノードが再起動されるか、基になる物理サーバーでハードウェア障害が発生した場合、キャッシュ内 のデータは失われます。 データの耐久性が必要な場合、Redis の AOF (Append-Only File) 機能を有効にすることができます。こ の機能を有効にすると、キャッシュノードは、キャッシュデータを変更するすべてのコマンドを AppendOnly 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. 69)」を参照してください。 詳しくは次を参照してください。 • Redis 固有のパラメータ (p. 313) • レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis) (p. 205) • 障害の軽減 (p. 68) API Version 2015-02-02 276 Amazon ElastiCache ユーザーガイド セキュリティグループ [EC2-Classic] Important Amazon ElastiCache セキュリティグループは、Amazon Virtual Private Cloud 環境 (VPC) で実行 されていないクラスターにのみ適用されます。Amazon Virtual Private Cloud で実行している場 合、[ Security Groups] はコンソールのナビゲーションペインでは使用できません。 ElastiCache ノードを Amazon VPC で実行している場合は、Amazon VPC セキュリティグループ でクラスターへのアクセスを制御します。これは、ElastiCache セキュリティグループとは異な ります。Amazon VPC での ElastiCache の使用に関する詳細は、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してください。 Amazon ElastiCache では、ElastiCache セキュリティグループを使用してクラスターへのアクセスを制 御できます。ElastiCache セキュリティグループは、クラスターへのネットワークアクセスを制御する ファイアウォールのように動作します。デフォルトでは、クラスターへのネットワークアクセスは無効に なっています。アプリケーションからキャッシュクラスターにアクセスできるようにするには、特定の Amazon EC2 セキュリティグループのホストからのアクセスを明示的に有効にする必要があります。入口 ルールが設定されると、同じルールがそのセキュリティグループに関連するすべてのクラスターに適用さ れます。 クラスターへのネットワークアクセスを許可するには、セキュリティグループを作成 し、AuthorizeCacheSecurityGroupIngress API オペレーション (CLI では authorize-cache-securitygroup-ingress) を使用して、必要な Amazon EC2 セキュリティグループを認証します (その結果として、 許可されている Amazon EC2 インスタンスを指定します)。セキュリティグループは、その作成時に、ま たは ModifyCacheCluster API オペレーション (CLI では modify-cache-cluster) の使用時に、クラスター に関連付けられます。 Important IP 範囲に基づくアクセス制御は現在、個々のクラスターレベルでは有効になっていません。クラ スターのすべてのクライアントは、EC2 ネットワーク内にある必要があり、前に説明したよう に、セキュリティグループによって許可されている必要があります。 Amazon RDS での ElastiCache の使用に関する詳細は、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してください。 Amazon VPC で実行されている Amazon EC2 インスタンスは EC2-Classic の ElastiCache クラスターに 接続できないことに注意してください。 トピック • セキュリティグループを作成する (p. 279) API Version 2015-02-02 277 Amazon ElastiCache ユーザーガイド • 利用可能な セキュリティグループを一覧表示する (p. 281) • セキュリティグループの表示 (p. 282) • Amazon EC2 セキュリティグループへのネットワークアクセスの許可 (p. 284) API Version 2015-02-02 278 Amazon ElastiCache ユーザーガイド セキュリティグループを作成する セキュリティグループを作成する このトピックは、Amazon VPC で実行していない場合にのみ該当します。Amazon VPC で実行している場 合は、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してください。 セキュリティグループを作成するには、名前と説明を入力する必要があります。 以下の手順では、新しいセキュリティグループを作成する方法を示しています。 セキュリティグループを作成する (コンソール) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Security Groups] を選択します。 3. 4. [Create Security Group] を選択します。 [Create Security Group] で、[ Security Group] に新しいセキュリティグループの名前を入力します。 5. [Description] に、新しいセキュリティグループの説明を入力します。 6. [Create] を選択します。 セキュリティグループを作成する (AWS CLI) コマンドプロンプトで、create-cache-security-group パラメータを指定して以下のコマンドを使用しま す: • --cache-security-group-name – 作成するセキュリティグループの名前。 例: mysecuritygroup • --説明 – このセキュリティグループの説明 例:「新しいマイセキュリティグループ」 Linux, macOS, or Unix 用: aws elasticache create-cache-security-group \ --cache-security-group-name mysecuritygroup \ --description "My new security group" Windows の場合: aws elasticache create-cache-security-group ^ --cache-security-group-name mysecuritygroup ^ --description "My new security group" 詳細については、「create-cache-security-group」を参照してください。 セキュリティグループを作成する (ElastiCache API) ElastiCache API オペレーション CreateCacheSecurityGroup で以下のパラメーターを指定します。 • CacheSecurityGroupName – 作成するセキュリティグループの名前。 例: mysecuritygroup API Version 2015-02-02 279 Amazon ElastiCache ユーザーガイド セキュリティグループを作成する (ElastiCache API) • Description – このセキュリティグループの URL のエンコードされた説明。 例: My%20security%20group Example 次のコード例の改行が読み込みのために追加されます。 https://elasticache.us-west-2.amazonaws.com / ?Action=CreateCacheSecurityGroup &CacheSecurityGroupName=mysecuritygroup &Description=My%20security%20group &Version=2015-02-02 &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> API Version 2015-02-02 280 Amazon ElastiCache ユーザーガイド 利用可能な セキュリティグループを一覧表示する 利用可能な セキュリティグループを一覧表示する このトピックは、Amazon VPC で実行していない場合にのみ該当します。Amazon VPC で実行している場 合は、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してください。 AWS アカウント用に作成された セキュリティグループを一覧表示できます。 以下の手順では、AWS アカウントで使用可能なセキュリティグループを表示する方法を示しています。 使用可能なセキュリティグループの一覧表示 ((コン ソール)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Security Groups] を選択します。 利用可能な セキュリティグループが [ Security Groups] リストに一覧表示されます。 使用可能なセキュリティグループの一覧表示 ((AWS CLI)) コマンドプロンプトで、AWS アカウントで利用可能なすべてのセキュリティグループを一覧表示するに は、describe-cache-security-groups コマンドを使用します。 aws elasticache describe-cache-security-groups 詳細については、「describe-cache-security-groups」を参照してください。 使用可能なセキュリティグループの一覧表示 ((ElastiCache API)) ElastiCache API を使用して DescribeCacheSecurityGroups を呼び出します。 Example 次のコード例の改行が読み込みのために追加されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheSecurityGroups &MaxRecords=100 &Version=2015-02-02 &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> API Version 2015-02-02 281 Amazon ElastiCache ユーザーガイド セキュリティグループの表示 セキュリティグループの表示 このトピックは、Amazon VPC で実行していない場合にのみ該当します。Amazon VPC で実行している場 合は、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してください。 セキュリティグループに関する詳細情報を表示できます。 以下の手順では、ElastiCache コンソール、AWS CLI、ElastiCache API を使用してセキュリティグループ のプロパティを表示する方法を示しています。 セキュリティグループの表示 ((コンソール)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Security Groups] を選択します。 使用可能なキャッシュセキュリティグループが、[ Security Groups] のリストに表示されます。 3. [ Security Groups] リストからキャッシュセキュリティグループを選択します。 セキュリティグループに対して定義されている権限のリストがウィンドウの下部の詳細セクションに 表示されます。 セキュリティグループの表示 ((AWS CLI)) コマンドプロンプトで、表示するセキュリティグループの名前を指定して AWS CLI describe-cachesecurity-groups コマンドを使用します。 • --cache-security-group-name - 詳細を返すセキュリティグループの名前。 aws elasticache describe-cache-security-groups --cache-security-group-name mysecuritygroup 詳細については、「describe-cache-security-groups」を参照してください。 セキュリティグループの表示 ((ElastiCache API)) ElastiCache API で、表示するセキュリティグループの名前を指定して DescribeCacheSecurityGroups を 呼び出します。 • CacheSecurityGroupName – 詳細を返すキャッシュセキュリティグループの名前。 Example 次のコード例の改行が読み込みのために追加されます。 https://elasticache.amazonaws.com/ ?Action=DescribeCacheSecurityGroups &CacheSecurityGroupName=mysecuritygroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T220302Z &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Date=20150202T220302Z API Version 2015-02-02 282 Amazon ElastiCache ユーザーガイド セキュリティグループの表示 ((ElastiCache API)) &X-Amz-SignedHeaders=Host &X-Amz-Expires=20150202T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature> API Version 2015-02-02 283 Amazon ElastiCache ユーザーガイド Amazon EC2 セキュリティグルー プへのネットワークアクセスの許可 Amazon EC2 セキュリティグループへのネット ワークアクセスの許可 このトピックは、Amazon VPC で実行していない場合にのみ該当します。Amazon VPC で実行している場 合は、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してください。 Amazon EC2 インスタンスからクラスターにアクセスする場合、EC2 インスタンスが属する Amazon EC2 セキュリティグループにアクセスを許可する必要があります。以下の手順では、Amazon EC2 セキュリ ティグループにアクセスを許可する方法を示します。 Important • Amazon EC2 セキュリティグループにアクセスを許可する場合、その Amazon EC2 セキュリ ティグループに属するすべての EC2 インスタンスからクラスターへのアクセスのみが許可され ます。 • アクセス許可に対する変更が有効になるまでに約 1 分かかります。 Amazon EC2 セキュリティグループへのネットワーク アクセスの許可 (コンソール) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Security Groups] を選択します。 3. [Security Groups] リストで、アクセスを許可するセキュリティグループの左にあるチェックボックス をオンにします。 4. ウィンドウの下部にある [EC2 Security Group Name] リストで、お客様の Amazon EC2 セキュリティ グループを選択します。 5. [Add] を選択します。 Amazon EC2 セキュリティグループへのネットワーク アクセスの許可 (AWS CLI) コマンドプロンプトで、Amazon EC2 セキュリティグループにアクセスを許可するには、authorizecache-security-group-ingress コマンドを使用します。以下のパラメータを使用します。 • --cache-security-group-name – Amazon EC2 アクセスに付与しているセキュリティグループの名前。 • --ec2-security-group-name – Amazon EC2 インスタンスが属する Amazon EC2 セキュリティグルー プの名前。 • --ec2-security-group-owner-id – Amazon EC2 セキュリティグループ所有者の ID。 Example Linux, macOS, 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 API Version 2015-02-02 284 Amazon ElastiCache ユーザーガイド Amazon EC2 セキュリティグループへのネッ トワークアクセスの許可 (ElastiCache API) Windows の場合: 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 を呼 び出します。 • CacheSecurityGroupName – Amazon EC2 アクセスに付与しているセキュリティグループの名前。 • EC2SecurityGroupName – Amazon EC2 インスタンスが属する Amazon EC2 セキュリティグループの名 前。 • EC2SecurityGroupOwnerId – Amazon EC2 セキュリティグループ所有者の ID。 Example https://elasticache.us-west-2.amazonaws.com/ ?Action=AuthorizeCacheSecurityGroupIngress &EC2SecurityGroupOwnerId=987654321021 &EC2SecurityGroupName=myec2group &Version=2015-02-02 &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> 詳細については、「AuthorizeCacheSecurityGroupIngress」を参照してください。 API Version 2015-02-02 285 Amazon ElastiCache ユーザーガイド パラメータとパラメータグループ Amazon ElastiCache はパラメータを使用して、ノードとクラスターの実行時のプロパティを制御しま す。通常、新しいエンジンバージョンには新しい機能をサポートするための追加のパラメータが含まれ ます。エンジンやバージョンごとのパラメータのテーブルについては、「Memcached 固有のパラメー タ (p. 302)」および「Redis 固有のパラメータ (p. 313)」を参照してください。 もちろん、max_cache_memory などのパラメーター値はエンジンやノードのタイプによって決まります。 ノードタイプ別のパラメータ値のテーブルについては、「Memcached のノードタイプ固有のパラメー タ (p. 312)」および「Redis のノードタイプ固有のパラメータ (p. 328)」を参照してください。 トピック • パラメーター管理 (p. 287) • キャッシュパラメータグループの階層 (p. 288) • パラメーターグループを作成する (p. 289) • パラメータグループを名前別に一覧表示する (p. 292) • パラメータグループの値を一覧する (p. 295) • パラメータグループを変更する (p. 298) • パラメータグループを削除する (p. 300) • Memcached 固有のパラメータ (p. 302) • Redis 固有のパラメータ (p. 313) API Version 2015-02-02 286 Amazon ElastiCache ユーザーガイド パラメーター管理 パラメーター管理 パラメータの管理を容易にするために、パラメータは名前付きのパラメータグループに分類されます。パ ラメータグループは、起動時にエンジンソフトウェアに渡されるパラメーターの特定の値の組み合わせを 表しています。これらの値により、各ノードのエンジンプロセスが実行時にどのように動作するかが決ま ります。特定のパラメータグループのパラメータ値は、クラスターが属するグループに関係なく、そのグ ループに関連付けられているすべてのノードに適用されます。 クラスターのパフォーマンスを最適化するには、パラメータ値を変更するか、またはクラスターのパラ メータグループを変更できます。 制約 • デフォルトのパラメータグループの変更や削除はできません。カスタムパラメータ値が必要な場合は、 独自のパラメータグループを作成する必要があります。 • パラメータグループファミリーとユーザーが割り当てているクラスターには、互換性が必要です。たと えば、クラスターで Redis バージョン 2.8.6 を実行している場合は、Redis 2.8 ファミリーのグループか らデフォルトまたはカスタムのパラメータグループのみを使用できます。Redis 2.6 パラメータグループ ファミリーのものは使用できません。 • クラスターのパラメータグループを変更する場合は、条件付きで変更可能なパラメータの値は、現在の パラメータグループと新しいパラメータグループで一致している必要があります。 • クラスターのパラメータを変更する場合は、クラスターのパラメータグループまたはクラスターのパ ラメータグループのパラメータ値を変更することによって、変更がすぐにまたはクラスターの再起動 後にクラスターに適用されます。特定のパラメータの変更が適用するタイミングであるかを確認する には、以下のテーブルの Changes Take Effect 列を参照してください。Memcached 固有のパラメー タ (p. 302) および Redis 固有のパラメータ (p. 313)クラスターの再起動については、「クラスターの 再起動 (p. 158)」を参照してください。 API Version 2015-02-02 287 Amazon ElastiCache ユーザーガイド パラメータグループの階層 キャッシュパラメータグループの階層 Amazon ElastiCache には、ここに説明されるキャッシュパラメータグループの 3 つの階層があります。 Amazon ElastiCache パラメータグループの階層 グローバルデフォルト リージョン内のすべての Amazon ElastiCache のお客様向け最上位ルートパラメータグループ。 グローバルデフォルトのキャッシュパラメータグループ: • ElastiCache 向けに確保されており、お客様が使用することはできません。 お客様デフォルト グローバルデフォルトのキャッシュパラメータグループのコピーは、お客様が使用するために作成されて います。 お客様デフォルトのキャッシュパラメータグループ: • ElastiCache が作成、所有します。 • このキャッシュパラメータグループでサポートされているエンジンのバージョンを実行しているすべ てのクラスターのキャッシュパラメータグループとして使用できます。たとえば、default.redis2.8 は、Redis エンジンのバージョン 2.8 x をサポートします。 • お客様が編集することはできません。 お客様所有 お客様デフォルトのキャッシュパラメータグループのコピー。お客様所有のキャッシュパラメータグルー プは、お客様がキャッシュパラメータグループを作成する度に作成されます。 お客様所有のキャッシュパラメータグループ: • お客様が作成、所有します。 • お客様の互換性のあるいずれのクラスターにも割り当てることができます。たとえば、ファミリー redis2.8 で作成されたキャッシュパラメータグループは、Redis 2.8 x を実行しているどのクラスター でも使用できます。 • カスタムキャッシュパラメータグループを作成するようにお客様が変更できます。カスタムキャッシュ パラメータグループを作成するようにお客様が変更できます。 すべてのパラメーター値を変更できるわけではありません。詳細については、「Memcached 固有のパ ラメータ (p. 302)」または「Redis 固有のパラメータ (p. 313)」を参照してください。 API Version 2015-02-02 288 Amazon ElastiCache ユーザーガイド パラメーターグループを作成する パラメーターグループを作成する デフォルト値から変更するパラメーターの値が 1 つ以上ある場合、新しいパラメータグループを作成する 必要があります。セキュリティグループは、ElastiCache コンソール、AWS CLI または ElastiCache API を使って作成できます。 パラメータグループを作成する (コンソール) 次の手順では、ElastiCache コンソールを使用してパラメータグループを編集する方法を示します。 ElastiCache コンソールを使用してパラメータグループを作成するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Parameter Groups] を選択します。 使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。 3. パラメータグループを作成するには、[Create Parameter Group] を選択します。 [Create Parameter Group] 画面が表示されます。 4. [Family] のリストから、パラメータグループのテンプレートとなるパラメータグループファミリーを 選択します。 パラメータグループファミリーは、redis2.8 などの実際のパラメータグループの実際のパラメータお よびその初期値を定義します。パラメータグループファミリーは、クラスターのエンジンおよびバー ジョンと一致している必要があります。たとえば、redis2.8 ファミリーでパラメータグループを作成 して Redis バージョン 2.6 を実行しているクラスターでそれを使用することはできません。 5. [Name] ボックスで、このパラメータグループの一意の名前を入力します。 クラスターのパラメータグループを作成または変更するときは、パラメータグループを名前で選択し ます。したがって、わかりやすくパラメータグループのファミリーを特定するのに役立つ名前をお勧 めします。たとえば、Redis2-8-24-Custom のような名前を付けます。 パラメーターグループの命名に関する制約 • ASCII 文字で始まる必要があります。 • ASCII文字、数字、ハイフンのみを使用できます。 • 1~255 文字の長さが必要です。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 6. [Description] ボックスに、パラメータグループの説明を入力します。 7. パラメータグループを作成するには、[Create] を選択します。 パラメータグループを作成しないでプロセスを終了するには、[Cancel] を選択します。 8. パラメータグループが作成されると、ファミリーのデフォルト値が設定されます。デフォルト値を変 更するには、パラメータグループを変更する必要があります。詳細については、「パラメータグルー プを変更する (p. 298)」を参照してください。 パラメータグループを作成する (AWS CLI) AWS CLI を使用してパラメータグループを作成するには、以下のパラメータを指定して create-cacheparameter-group コマンドを使用します。 API Version 2015-02-02 289 Amazon ElastiCache ユーザーガイド パラメータグループを作成する (ElastiCache API) • --cache-parameter-group-name — パラメータグループの名前。 パラメーターグループの命名に関する制約 • ASCII 文字で始まる必要があります。 • ASCII文字、数字、ハイフンのみを使用できます。 • 1~255 文字の長さが必要です。 • 連続する 2 つのハイフンを含めることはできません。 • 末尾をハイフンすることはできません。 • --cache-parameter-group-family — パラメータグループのエンジンとバージョンファミリー。たとえ ば、redis2.8 と指定します。 • --description — パラメータグループについてユーザーが入力する説明。 次の例では、redis2.8 ファミリーをテンプレートとして使用して、myRedis28 という名前のパラメータグ ループを作成します。 Linux, macOS, or Unix 用: aws elasticache create-cache-parameter-group \ --cache-parameter-group-name myRedis28 \ --cache-parameter-group-family redis2.8 \ --description "My first parameter group" Windows の場合: aws elasticache create-cache-parameter-group ^ --cache-parameter-group-name myRedis28 ^ --cache-parameter-group-family redis2.8 ^ --description "My first parameter group" このコマンドの出力は次のようになります。 CACHEPARAMETERGROUP myRedis28 redis2.8 My first parameter group パラメータグループが作成されると、ファミリーのデフォルト値が設定されます。デフォルト値を変更す るには、パラメータグループを変更する必要があります。詳細については、「パラメータグループを変更 する (p. 298)」を参照してください。 詳細については、create-cache-parameter-groupを参照してください。 パラメータグループを作成する (ElastiCache API) ElastiCache API を使用してパラメータグループを作成するには、以下のパラメータを指定して CreateCacheParameterGroup アクションを使用します。 • ParameterGroupName — パラメータグループの名前。 パラメーターグループの命名に関する制約 • • • • • ASCII 文字で始まる必要があります。 ASCII文字、数字、ハイフンのみを使用できます。 1~255 文字の長さが必要です。 連続する 2 つのハイフンを含めることはできません。 末尾をハイフンすることはできません。 API Version 2015-02-02 290 Amazon ElastiCache ユーザーガイド パラメータグループを作成する (ElastiCache API) • CacheParameterGroupFamily — パラメータグループのエンジンとバージョンファミリー。たとえ ば、redis2.8 と指定します。 • Description — パラメータグループについてユーザーが入力する説明。 次の例では、redis2.8 ファミリーをテンプレートとして使用して、myRedis28 という名前のパラメータグ ループを作成します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateCacheParameterGroup &CacheParameterGroupFamily=redis2.8 &CacheParameterGroupName=myRedis28 &Description=My%20first%20parameter%20group &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &Version=2015-02-02 &X-Amz-Credential=<credential> このアクションからの応答は、次のようになります。 <CreateCacheParameterGroupResponse xmlns="http://elasticache.amazonaws.com/ doc/2013-06-15/"> <CreateCacheParameterGroupResult> <CacheParameterGroup> <CacheParameterGroupName>myRedis28</CacheParameterGroupName> <CacheParameterGroupFamily>redis2.8</CacheParameterGroupFamily> <Description>My first parameter group</Description> </CacheParameterGroup> </CreateCacheParameterGroupResult> <ResponseMetadata> <RequestId>d8465952-af48-11e0-8d36-859edca6f4b8</RequestId> </ResponseMetadata> </CreateCacheParameterGroupResponse> パラメータグループが作成されると、ファミリーのデフォルト値が設定されます。デフォルト値を変更す るには、パラメータグループを変更する必要があります。詳細については、「パラメータグループを変更 する (p. 298)」を参照してください。 詳細については、CreateCacheParameterGroupを参照してください。 API Version 2015-02-02 291 Amazon ElastiCache ユーザーガイド パラメータグループを名前別に一覧表示する パラメータグループを名前別に一覧表示する ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、パラメータグループを一覧でき ます。 パラメータグループを名前別に一覧表示する (コン ソール) 次の手順は、ElastiCache コンソールを使用してパラメータグループのリストを表示する方法を示しま す。 ElastiCache コンソールを使用してパラメータグループを一覧するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Parameter Groups] を選択します。 使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。リスト内の各 行にはパラメータグループの名前、ファミリー、および説明が表示されます。 パラメータグループを名前別に一覧表示する (AWS CLI) AWS CLI を使用してパラメータグループのリストを生成するには、describe-cache-parameter-groups コマンドを使用します。パラメータグループの名前を指定した場合は、そのパラメータグループのみが一 覧表示されます。パラメータグループの名前を指定しない場合は、最大で --max-records のパラメータグ ループが一覧表示されます。いずれの場合も、パラメータグループの名前、ファミリー、および説明が表 示されます。 次のサンプルコードは、パラメータグループ myRedis28 のリストです。 Linux, macOS, 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 292 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.amazonaws.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> このアクションからの応答は、各グループパラメータの名前の一覧、ファミリー、説明となります。 <DescribeCacheParameterGroupsResponse xmlns="http://elasticache.amazonaws.com/ doc/2013-06-15/"> API Version 2015-02-02 293 Amazon ElastiCache ユーザーガイド パラメータグループを名前別に 一覧表示する (ElastiCache API) <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 294 Amazon ElastiCache ユーザーガイド パラメータグループの値を一覧する パラメータグループの値を一覧する ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、パラメータグループのパラメー タとその値を一覧できます。 パラメータグループの値を一覧する (コンソール) 次の手順は、ElastiCache コンソールを使用してパラメータグループのパラメータと値を一覧する方法を 示しています。 ElastiCache コンソールを使用してパラメータグループのパラメータとその値を表示するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Parameter Groups] を選択します。 使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。 3. パラメータグループ名の左側にあるボックスを選択して、パラメーターと値を一覧するパラメータグ ループを選択します。 パラメータと値は画面の下部に表示されます。パラメータの数によっては、スクロールして関心のあ るパラメータを検索するに必要がある場合もあります。 パラメータグループの値を一覧する (AWS CLI) AWS CLI を使用してパラメータグループのパラメータとその値の一覧を表示するには、describe-cacheparameters コマンドを使用します。 次のサンプルコードは、パラメータグループ myRedis28 のすべてのパラメータと値リストを一覧します。 Linux, macOS, or Unix 用: aws elasticache describe-cache-parameters \ --cache-parameter-group-name myRedis28 Windows の場合: aws elasticache describe-cache-parameters ^ --cache-parameter-group-name myRedis28 このコマンドの出力は次のようになります。 { "Parameters": [ { "Description": "Apply rehashing or not.", "DataType": "string", "ChangeType": "requires-reboot", "IsModifiable": true, "AllowedValues": "yes,no", "Source": "system", "ParameterValue": "yes", "ParameterName": "activerehashing", API Version 2015-02-02 295 Amazon ElastiCache ユーザーガイド パラメータグループの値を一覧する (ElastiCache API) "MinimumEngineVersion": "2.8.6" }, (...sample truncated...) { "Description": "Enable Redis persistence.", "DataType": "string", "ChangeType": "immediate", "IsModifiable": true, "AllowedValues": "yes,no", "Source": "system", "ParameterValue": "no", "ParameterName": "appendonly", "MinimumEngineVersion": "2.8.6" } ] } 詳細については、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.amazonaws.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> </CacheNodeTypeSpecificValue> <CacheNodeTypeSpecificValue> <Value>1300</Value> API Version 2015-02-02 296 Amazon ElastiCache ユーザーガイド パラメータグループの値を一覧する (ElastiCache API) <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> ...output omitted... </Parameters> </DescribeCacheParametersResult> <ResponseMetadata> <RequestId>6d355589-af49-11e0-97f9-279771c4477e</RequestId> </ResponseMetadata> </DescribeCacheParametersResponse> 詳細については、DescribeCacheParametersを参照してください。 API Version 2015-02-02 297 Amazon ElastiCache ユーザーガイド パラメータグループを変更する パラメータグループを変更する Important デフォルトのパラメータグループを変更することはできません。 パラメータグループでいくつかのパラメータを変更できます。これらのパラメータ値は、パラメータグ ループに関連付けられるクラスターに適用されます。パラメータ値の変更がパラメータグループに適用さ れる場合の詳細については、「Memcached 固有のパラメータ (p. 302)」および「Redis 固有のパラメー タ (p. 313)」を参照してください。 パラメータグループを変更する (コンソール) 次の手順では、ElastiCache コンソールで binding_protocol パラメーター値を変更する方法を説明しま す。同じ手順を使用して、すべてのパラメーターを変更します。 ElastiCache コンソールを使用してパラメータ値を変更するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Parameter Groups] を選択します。 使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。 3. パラメータグループ名の左側にあるボックスを選択して、変更するパラメータグループを選択しま す。 パラメータグループのパラメータは、画面の下部に表示されます。すべてのパラメータを確認するに は、ページでリストを作成する必要があります。 4. 複数のパラメーターを修正するには、[Edit Parameters] を選択します。 [Edit Parameter Group: ] 画面が表示されます。 5. [パラメータグループの編集:] 画面において、binding_protocol パラメーターが見つかるまで、左ま たは右の矢印を使用してスクロールします。次に、[値] 列に ascii と入力します。 6. [変更の保存] を選択します。 7. 次のいずれかのトピックで変更したパラメーターの名前を見つけます。 • Memcached 固有のパラメータ (p. 302) • Redis 固有のパラメータ (p. 313) 再起動後にパラメーターを変更する場合は、このパラメータグループを使用するクラスターを再起動 します。詳細については、「クラスターの再起動 (p. 158)」を参照してください。 パラメータグループを変更する (AWS CLI) AWS CLI を使用してパラメータ値を変更するには、modify-cache-parameter-group コマンドを使用しま す。 次のサンプルコードは、binding_protocol の値を MyMemPG パラメータグループの ascii に設定しま す。同一コードを使用すると、以下に表示されるパラメータグループの名前、パラメータの名前、パラ メーターの新しい値が変更されます。 Linux, macOS, or Unix 用: API Version 2015-02-02 298 Amazon ElastiCache ユーザーガイド パラメータグループを変更する (ElastiCache API) aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name MyMemPG \ --parameter-name-values ParameterName=binding_protocol,ParameterValue=ascii Windows の場合: aws elasticache modify-cache-parameter-group ^ --cache-parameter-group-name MyMemPG ^ --parameter-name-values ParameterName=binding_protocol,ParameterValue=ascii 詳細については、modify-cache-parameter-groupを参照してください。 次のいずれかのトピックで変更したパラメーターの名前を見つけます。 • Memcached 固有のパラメータ (p. 302) • Redis 固有のパラメータ (p. 313) 再起動後にパラメーターを変更する場合は、このパラメータグループを使用するクラスターを再起動しま す。詳細については、「クラスターの再起動 (p. 158)」を参照してください。 パラメータグループを変更する (ElastiCache API) ElastiCache API を使用してパラメータグループのパラメータ値を変更するに は、ModifyCacheParameterGroup アクションを使用します。 次のサンプルコードは、binding_protocol の値を myMemPG パラメータグループの ascii に設定しま す。同一コードを使用すると、以下に表示されるパラメータグループの名前、パラメータの名前、パラ メーターの新しい値が変更されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheParameterGroup &CacheParameterGroupName=MyMemPG &ParameterNameValues.member.1.ParameterName=binding_protocol &ParameterNameValues.member.1.ParameterValue=ascii &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &Version=2015-02-02 &X-Amz-Credential=<credential> 詳細については、ModifyCacheParameterGroupを参照してください。 パラメーターの更新および保存を行い、再起動後に変更する場合は、変更後のパラメータグループを使用 する各クラスターを再起動します。詳細については、「クラスターの再起動 (p. 158)」を参照してくださ い。 次のいずれかのトピックで変更したパラメーターの名前を見つけます。 • Memcached 固有のパラメータ (p. 302) • Redis 固有のパラメータ (p. 313) 再起動後にパラメーターを変更する場合は、このパラメータグループを使用するクラスターを再起動しま す。詳細については、「クラスターの再起動 (p. 158)」を参照してください。 API Version 2015-02-02 299 Amazon ElastiCache ユーザーガイド パラメータグループを削除する パラメータグループを削除する ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してカスタムのパラメータグループを 削除できます。 パラメータグループがクラスターに関連付けられている場合は、パラメータグループを削除できません。 デフォルトのパラメータグループも削除できません。 パラメータグループを削除する (コンソール) 次の手順では、ElastiCache コンソールを使用してパラメータグループを削除する方法を示します。 ElastiCache コンソールを使用してパラメータグループを削除するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Parameter Groups] を選択します。 使用できるパラメータグループのリストは、[Parameter Groups] 画面に表示されます。 3. パラメータグループ名の左側にあるボックスを選択して、削除するパラメータグループを選択しま す。 [Delete] ボタンがアクティブになります。 4. [Delete] を選択します。 [Delete Parameter Groups] の確認画面が表示されます。 5. パラメータグループを削除するには、[Delete] を選択します。 パラメータグループを保持するには、[Cancel] を選択します。 パラメータグループを削除する (AWS CLI) AWS CLI を使用してパラメータグループを削除するには、delete-cache-parameter-group コマンドを使 用します。削除するパラメータグループで、--cache-parameter-group-name で指定されたパラメータグ ループは、それに関連付けられるクラスターを持つことはできません。また、デフォルトのパラメータグ ループも持つことはできません。 次のサンプルコードは、myRedis28 パラメータグループを削除します。 Linux, macOS, 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を参照してください。 パラメータグループを削除する (ElastiCache API) ElastiCache API を使用したパラメータグループを削除するには、DeleteCacheParameterGroup アクショ ンを使用します。削除するパラメータグループで、CacheParameterGroupName で指定されたパラメータグ API Version 2015-02-02 300 Amazon ElastiCache ユーザーガイド パラメータグループを削除する (ElastiCache API) ループは、それに関連付けられるクラスターを持つことはできません。また、デフォルトのパラメータグ ループも持つことはできません。 次のサンプルコードは、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 301 Amazon ElastiCache ユーザーガイド Memcached 固有のパラメータ Memcached 固有のパラメータ Memcached クラスターにパラメータグループを指定しない場合、デフォルトのパラメータグループ (default.memcached1.4) が使用されます。デフォルトのパラメータグループ内のパラメータは、どれも値 を変更できません。ただし、いつでもカスタムパラメータグループを作成して、クラスターに割り当てる ことができます。 トピック • Memcached 1.4.33 で追加されたパラメータ (p. 302) • Memcached 1.4.24 で追加されたパラメータ (p. 304) • Memcached 1.4.14 で追加されたパラメータ (p. 305) • Memcached 1.4.5 では、パラメータがサポートされていました。 (p. 309) • Memcached 接続オーバーヘッド (p. 311) • Memcached のノードタイプ固有のパラメータ (p. 312) Memcached 1.4.33 で追加されたパラメータ Memcached 1.4.33 では、次のパラメータが追加でサポートされます。 パラメータグループファミリー: memcached1.4 名前 詳細 説明 modern デフォルト: 有効 各種機能のエイリアス有効化 modern は、次のコマンドをオンに し、murmur3 ハッシュアルゴリズム (slab_reassign、slab_automove、lru_crawler、lr を使用する場合と同等です。 タイプ: ブール値 変更可能: はい 変更の適用: 起動時 watch デフォルト: 有効 タイプ: ブール値 変更可能: はい ログ取得、削除または変異。 たとえば、watch をオンにする と、get、set、delete または update が発生したときにユーザーは ログを表示できます。 変更の適用: 即時 ログ は、watcher_logbuf_size および worker_logbuf_size 制 限に達すると削除でき ます。 idle_timeout デフォルト: 0 (無効) タイプ: 整数 閉じる前にクライアントがアイドル 状態にできる最小秒数。値の範囲: 0 ~86400 変更可能: はい 変更の適用: 起動時 cache_memlimit タイプ: 整数 API Version 2015-02-02 302 メモリが事前に割り当てられていな い場合は、実行中のシステムのメ Amazon ElastiCache ユーザーガイド Memcached 1.4.33 で追加されたパラメータ 名前 詳細 説明 変更可能: はい モリ制限を動的に増やすことができ ます。cache_memlimit N N は、値 (MB) を表します。値は増減できま す。 変更の適用: 即時 範囲: 8 (MB)~ノードタイプの maxmemory。 stats sizes デフォルト: 無効 タイプ: ブール値 変更可能: はい 変更の適用: 即時 各スラブグループの消費サイズを表 示します。 track_sizes を使用していない場合 は、stats sizes_enable を実行して stats sizes を有効にする必要があ ります。stats sizes を無効にする には、stats sizes_disable を実行 します。 track_sizes デフォルト: 無効 タイプ: ブール値 変更可能: はい 変更の適用: 起動時 watcher_logbuf_size デフォルト: 256 (KB) タイプ: 整数 変更可能: はい 変更の適用: 起動時 worker_logbuf_size デフォルト: 64 (KB) タイプ: 整数 変更可能: はい 変更の適用: 起動時 slab_chunk_max デフォルト: 524288 (バ イト) タイプ: 整数 変更可能: はい 変更の適用: 起動時 API Version 2015-02-02 303 各スラブグループの消費サイズを表 示します。 有効化 track_sizes を行うと、stats sizes_enable を実行せずに stats sizes を実行できます。 watch コマンドは、Memcached の 配信ログ作成をオンにします。ただ し、削除、変異、取得によって、ロ ギングバッファがいっぱいになる可 能性がある場合には、watch でログを 削除することができます。このよう な場合、ユーザーは、バッファサイ ズを増やして、ログ損失の可能性を 抑えることができます。 watch コマンドは、Memcached の 配信ログ作成をオンにします。ただ し、削除、変異、取得によって、ロ ギングバッファがいっぱいになる可 能性がある場合には、watch でログを 削除することができます。このよう な場合、ユーザーは、バッファサイ ズを増やして、ログ損失の可能性を 抑えることができます。 スラブの最大サイズを指定しま す。スラブサイズを小さくする と、メモリは効率的に使用されま す。slab_chunk_max より大きい項目 は、複数のスラブに分割されます。 Amazon ElastiCache ユーザーガイド Memcached 1.4.24 で追加されたパラメータ 名前 詳細 説明 lru_crawler metadump [all|1|2|3] デフォルト: 無効 タイプ: ブール値 lru_crawler を有効化すると、このコ マンドによってすべてのキーがダン プされます。 変更可能: はい all|1|2|3 - すべてのスラブ、または 変更の適用: 即時 特定のスラブ数を指定する Memcached 1.4.24 で追加されたパラメータ Memcached 1.4.24 では、次のパラメータが追加でサポートされます。 パラメータグループファミリー: memcached1.4 名前 詳細 説明 disable_flush_all デフォルト: 0 (無効) flush_all を無効化するパラメータ -F を追加します。本稼働インスタンス でフルフラッシュを実行しない場合 に便利です。 タイプ: ブール値 変更可能: はい 変更の適用: 起動時 hash_algorithm デフォルト: jenkins タイプ: 文字列 値: 0、1 (値が 0 の場合にユーザーは flush_all を実行できます。) 使用されるハッシュアルゴリズム。 使用可能な値: murmur3 と jenkins。 変更可能: はい 変更の適用: 起動時 lru_crawler デフォルト: 0 (無効) タイプ: ブール値 変更可能: はい 変更の適用: 再起動後 Note 実行時に、コマ ンドラインから lru_crawler を 一時的に有効 にすることが できます。詳 細については、 「Describe」列 を参照してくだ さい。 API Version 2015-02-02 304 期限が切れた項目のスラブクラスを 消去します。これにより、バックグ ラウンドで実行されるプロセスの影 響を小さくなります。現在は、手動 コマンドを使用して Crawl を起動す る必要があります。 一時的に有効にするには、コマンド ラインで lru_crawler enable を実 行します。 lru_crawler 1,3,5 はスラブクラス 1、3、5 をクロールし、freelist に 追加する期限切れの項目を検索しま す。 値: 0、1 Note コマンドラインで lru_crawler を有効にして、 コマンドラインまたは次の 再起動で無効化されるまで クローラを有効にします。 Amazon ElastiCache ユーザーガイド Memcached 1.4.14 で追加されたパラメータ 名前 詳細 説明 永続的に有効にするには、パ ラメータ値を変更する必要が あります。詳細については、 「パラメータグループを変更 する (p. 298)」を参照してく ださい。 デフォルト: 0 (無効) lru_maintainer タイプ: ブール値 容量に到達すると LRU 間で項目を シャッフルするバックグラウンドス レッドです。値: 0、1。 変更可能: はい 変更の適用: 起動時 expirezero_does_not_evict デフォルト: 0 (無効) タイプ: ブール値 lru_maintainer と併用すると、項目 の期限切れ時間が 0 (期限切れなし) になります。 変更可能: はい Warning 変更の適用: 起動時 これにより、期限切れでクリ アされる他の項目をメモリか ら排除して、メモリを使用で きるようにすることができま す。 lru_maintainer を無視するよう設定 できます。 Memcached 1.4.14 で追加されたパラメータ Memcached 1.4.14 では、次のパラメータが追加でサポートされます。 パラメータグループファミリー: memcached1.4 Memcached 1.4.14 で追加されたパラメータ 名前 config_max 詳 説明 細 デ ElastiCache 設定エントリの最大数。 フォ ル ト: 16 タ イ プ: 整 数 変 更 可 API Version 2015-02-02 305 Amazon ElastiCache ユーザーガイド Memcached 1.4.14 で追加されたパラメータ 名前 詳 説明 細 能: い い え config_size_max デ 設定エントリの最大サイズ (バイト単位)。 フォ ル ト: 65536 タ イ プ: 整 数 変 更 可 能: い い え hashpower_init デ ElastiCache ハッシュテーブルの初期サイズは、2 の累乗として表されます。 フォ デフォルトは 16 (2^16)、つまり 65536 のキーです。 ル ト: 16 タ イ プ: 整 数 変 更 可 能: い い え API Version 2015-02-02 306 Amazon ElastiCache ユーザーガイド Memcached 1.4.14 で追加されたパラメータ 名前 maxconns_fast 詳 説明 細 デ 最大接続制限に達したときに新しい接続リクエストを処理する方法を変更し フォ ます。このパラメータを 0 (ゼロ) に設定した場合、新しい接続がバックログ ル キューに追加され、他の接続が終了するまで待機します。パラメータを 1 に ト: 設定した場合、ElastiCache はクライアントにエラーを送信し、すぐに接続を 0 (false) 終了します。 タ イ プ: ブー ル 値 変 更 可 能: は い 変 更 の 適 用: 再 起 動 後 API Version 2015-02-02 307 Amazon ElastiCache ユーザーガイド Memcached 1.4.14 で追加されたパラメータ 名前 slab_automove 詳 説明 細 デ スラブ自動移動アルゴリズムを調整します。このパラメータを 0 (ゼロ) フォ に設定した場合、自動移動アルゴリズムは無効です。1 に設定した場 ル 合、ElastiCache 低速で控えめな手法を使用して、スラブを自動的に移動しま ト: す。2 に設定した場合、削除が生じると必ず ElastiCache はスラブを積極的 0に移動します (このモードは、テスト目的以外では推奨されません)。 タ イ プ: 整 数 変 更 可 能: は い 変 更 の 適 用: 再 起 動 後 API Version 2015-02-02 308 Amazon ElastiCache ユーザーガイド Memcached 1.4.5 では、パラメー タがサポートされていました。 名前 詳 説明 細 デ スラブの再割り当てを有効または無効にします。このパラメータを 1 に設定 フォ した場合、「slabs reassign」コマンドを使用してメモリを手動で再割り当て ル できます。 ト: 0 (false) slab_reassign タ イ プ: ブー ル 値 変 更 可 能: は い 変 更 の 適 用: 再 起 動 後 Memcached 1.4.5 では、パラメータがサポートされて いました。 パラメータグループファミリー: memcached1.4 Memcached 1.4.5 では、さらに次のパラメータがサポートされています。 Memcached 1.4.5 で追加されたパラメータ 名前 詳細 説明 backlog_queue_limit デフォルト: 1024 バックログキューの制限。 タイプ: 整数 変更可能: いいえ binding_protocolデフォルト: auto バインディングプロトコル。 タイプ: 文字列 許可される値は ascii および auto です。 変更可能: はい binding_protocol の値を変更する際のガイダン 変更の適用: 再起動後 スについては、「パラメータグループを変更す る (p. 298)」を参照してください。 API Version 2015-02-02 309 Amazon ElastiCache ユーザーガイド Memcached 1.4.5 では、パラメー タがサポートされていました。 名前 詳細 説明 cas_disabled デフォルト: 0 (false) 1 (true) の場合、CAS (Check and Set) 操作が無効 タイプ: ブール値 変更可能: はい になり、格納されている項目が消費するバイト数 は CAS が有効な場合より 8 バイト少なくなりま す。 変更の適用: 再起動後 chunk_size デフォルト: 48 最も小さい項目のキー、値、およびフラグ (バイト 単位) に割り当てる領域の最小量 (バイト単位)。 タイプ: 整数 変更可能: はい 変更の適用: 再起動後 chunk_size_growth_factor デフォルト: 1.25 タイプ: 浮動小数点 連続する各 memcached チャンクのサイズを制御 する増加係数。各チャンクは、前のチャンクより chunk_size_growth_factor 倍大きくなります。 変更可能: はい 変更の適用: 再起動後 error_on_memory_exhausted デフォルト: 0 (false) タイプ: ブール値 1 (true) の場合、項目を保存するメモリがない と、Memcached によって項目が削除されるのでは なくエラーが返されます。 変更可能: はい 変更の適用: 再起動後 large_memory_pages デフォルト: 0 (false) タイプ: ブール値 1 (true) の場合、ElastiCache は大量のメモリペー ジを使用しようとします。 変更可能: いいえ lock_down_paged_memory デフォルト: 0 (false) タイプ: ブール値 1 (true) の場合、ElastiCache はすべてのページ分 割メモリをロックダウンします。 変更可能: いいえ max_item_size デフォルト: 1048576 タイプ: 整数 クラスターに保存できる最も大きい項目のサイズ (バイト単位)。 変更可能: はい 変更の適用: 再起動後 max_simultaneous_connections デフォルト: 65000 同時接続の最大数。 タイプ: 整数 変更可能: いいえ API Version 2015-02-02 310 Amazon ElastiCache ユーザーガイド Memcached 接続オーバーヘッド 名前 詳細 説明 maximize_core_file_limit デフォルト: 0 (false) タイプ: ブール値 1 (true) の場合、ElastiCache はコアファイルの制 限を最大限に高くします。 変更可能: 変更の適用: いいえ memcached_connections_overhead デフォルト: 100 タイプ: 整数 変更可能: はい Memcached 接続および他のさまざまなオーバー ヘッド用に予約されるメモリの量。このパラメー タの詳細については、「Memcached 接続オーバー ヘッド (p. 311)」を参照してください。 変更の適用: 再起動後 requests_per_event デフォルト: 20 タイプ: 整数 特定の接続のイベントごとの最大リクエスト数。 この制限は、リソース不足を防ぐために必要で す。 変更可能: いいえ Memcached 接続オーバーヘッド 各ノードで、項目の保存に使用可能なメモリは、ノード上の使用可能な合計メモリ (max_cache_memory パラメーター内) から、接続や他のオーバーヘッドに使用されてい るメモリ (memcached_connections_overhead パラメーター内) を引いた量です。たとえ ば、タイプが cache.m1.small のノードには 1300MB の max_cache_memory があるとしま す。memcached_connections_overhead がデフォルト値の 100 MB の場合、Memcached プロセスは項目 を保存するために 1,200 MB 使用できます。 memcached_connections_overhead パラメータのデフォルト値は、ほとんどのユースケースに適していま す。ただし、接続オーバーヘッドの割り当てに必要な量は、リクエストの頻度、ペイロードサイズ、接続 数など、複数の要因によって変化します。 アプリケーションのニーズにさらに合うように memcached_connections_overhead の値を変 更できます。たとえば、memcached_connections_overhead パラメーターの値を大きくする と、項目の保存に使用できるメモリの量が減り、接続のオーバーヘッド用のバッファが増えま す。memcached_connections_overhead パラメーターの値を小さくすると、項目の保存に使用できるメモ リは増えますが、スワップの使用とパフォーマンスの低下のリスクが高くなります。スワップの使用やパ フォーマンスの低下が観察される場合、memcached_connections_overhead パラメータの値を大きくして みてください。 Important ノードタイプが cache.t1.micro の場合、memcached_connections_overhead の値は次のように 決まります。 • クラスターがデフォルトのパラメータグループを使用している場合、ElastiCache は memcached_connections_overhead の値を 13 MB に設定します。 • 自身で作成したパラメータグループをクラスターが使用している場 合、memcached_connections_overhead の値を選択した値に設定できます。 API Version 2015-02-02 311 Amazon ElastiCache ユーザーガイド Memcached のノードタイプ固有のパラメータ Memcached のノードタイプ固有のパラメータ ほとんどのパラメータの値は 1 つですが、一部のパラメータには、使用されているノードタイプによっ て複数の値が設定されることがあります。次の表は、各ノードタイプの max_cache_memory パラメータと num_threads パラメータのデフォルト値を示しています。これらのパラメータの値は変更できません。 ノードタイプ固有のパラメータ Node Type max_cache_memory (MiB) 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 cache.m4.large 6573 2 cache.m4.xlarge 14618 4 cache.m4.2xlarge 30412 8 cache.m4.4xlarge 62234 16 cache.m4.10xlarge 158355 40 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 312 Amazon ElastiCache ユーザーガイド Redis 固有のパラメータ Redis 固有のパラメータ Redis クラスターにパラメータグループを指定しない場合は、デフォルトのパラメータグループ (default.redis2.6、default.redis2.8、または default.redis3.2) が使用されます。デフォルトのパラ メータグループのすべてのパラメータの値は変更できません。ただし条件付きで変更可能なパラメータの 値が両方のパラメータグループで同じである限り、独自のパラメータグループを作成して、それをクラス ターに割り当てることができます。 トピック • Redis 3.2.4 パラメーターの変更 (p. 314) • Redis 2.8.24 (拡張) で追加されたパラメータ (p. 316) • Redis 2.8.23 (拡張) で追加されたパラメータ (p. 317) • Redis 2.8.22 (拡張) で追加されたパラメータ (p. 318) • Redis 2.8.21 で追加されたパラメータ (p. 319) • Redis 2.8.19 で追加されたパラメータ (p. 319) • Redis 2.8.6 で追加されたパラメータ (p. 319) • Redis 2.6.13 パラメータ (p. 322) • Redis のノードタイプ固有のパラメータ (p. 328) Note 新しいバージョンの Redis ほど、より良く安定したユーザーエクスペリエンスを提供しているた め、Redis バージョン 2.6.13、2.8.6、および 2.8.19 は ElastiCache コンソールから廃止されまし た。お勧めしませんが、以前のいずれかの Redis バージョンを使用する必要がある場合は、AWS CLI または ElastiCache API を使用できます。 詳細については、以下のトピックを参照してください。 AWS AWS CLI ElastiCache API クラスターの作成 キャッシュクラスターの作成 ((AWS CLI)) (p. 144) キャッシュクラスターの作成 ((ElastiCache API)) (p. 146) クラスターの変更 キャッシュクラスターの変更 ((AWS CLI)) (p. 156) キャッシュクラスターの変更 ((ElastiCache API)) (p. 157) レプリケーショングループの 作成 ゼロからの Redis (クラスター モードが無効) レプリケー ショングループの作成 ((AWS CLI)) (p. 218) ゼロからの Redis (クラス ターモードが無効) レプリ ケーショングループの作成 ((ElastiCache API)) (p. 220) ゼロからの Redis (クラスター モードが有効) レプリケー ショングループの作成 ((AWS CLI)) (p. 224) ゼロからの Redis (クラス ターモードが有効) レプリ ケーショングループの作成 ((ElastiCache API)) (p. 228) レプリケーショングループの 変更 ((AWS CLI)) (p. 237) レプリケーショングルー プの変更 ((ElastiCache API)) (p. 237) レプリケーショングループの 変更 Redis (クラスターモードが有効) クラスターまたはレプリケーショングループの作成に使用す ることはできません。 Redis (クラスターモードが有効) クラスターまたはレプリケーショングループの変更に使用す ることはできません。 API Version 2015-02-02 313 Amazon ElastiCache ユーザーガイド Redis 3.2.4 パラメーターの変更 Redis 3.2.4 パラメーターの変更 パラメータグループファミリー: redis3.2 Redis 3.2.4 から、2 つのデフォルトのパラメータグループがあります。 • default.redis3.2 – Redis 3.2.4 を実行する場合は、Redis (クラスターモードが無効) レプリケーション グループを作成し、Redis 3.2.4 のその他の機能を引き続き使用する場合は、このパラメータグループま たはそこから派生したパラメータグループを指定します。 • default.redis3.2.cluster.on – Redis (クラスターモードが有効) レプリケーショングループを作成す る場合は、このパラメータグループまたはそこから派生したパラメータグループを指定します。 トピック • Redis 3.2.4 の新しいパラメーター (p. 314) • Redis 3.2.4 (拡張) で変更されたパラメータ (p. 316) Redis 3.2.4 の新しいパラメーター パラメータグループファミリー: redis3.2 Redis 3.2.4 では、次のパラメータが追加でサポートされます。 名前 list-maxziplist-size 詳細 説明 デフォルト: -2 リストは、領域を節約する特殊な方法でエンコー ドされます。内部リストノードあたり許可される エントリの数は、要素の固定最大サイズまたは 最大数として指定できます。最大固定サイズに は、-5~-1 を使用します。この意味は次のとおり です。 タイプ: 整数 変更可能: いいえ • -5: 最大サイズ: 64 KB - 通常のワークロードには 推奨されません • -4: 最大サイズ: 32 KB - 推奨されません • -3: 最大サイズ: 16 KB - 推奨されません • -2: 最大サイズ: 8 KB - 推奨 • -1: 最大サイズ: 4 KB - 推奨 • 正の値は、リストノードあたり、最大でその数 の要素まで保存することを意味します。 listcompressdepth デフォルト: 0 タイプ: 整数 変更可能: はい 変更の適用: 即時 リストは、圧縮される場合もあります。圧縮の深 さは、圧縮から除外するリストの端からのクイッ クリスト ziplist ノードの数です。リストの先頭と 末尾は、プッシュおよびポップオペレーションを 高速にするために常に圧縮されません。設定は以 下のとおりです。 • 0: すべての圧縮を無効にします。 • 1: 先頭から末尾までの最初のノードで圧縮を開 始します。 [先頭]->ノード->ノード->...->ノード->[末尾] API Version 2015-02-02 314 Amazon ElastiCache ユーザーガイド Redis 3.2.4 パラメーターの変更 名前 詳細 説明 [先頭] と [末尾] を除くすべてのノードで圧縮を 実行します。 • 2: 先頭から末尾までの 2 番目のノードで圧縮を 開始します。 [先頭]->[次]->ノード->ノード->...->ノード->[前]>[末尾] [先頭]、[次]、[前]、[末尾] は圧縮されません。他 のすべてのノードで圧縮を実行します。 • その他 clusterenabled デフォルト: はい/いいえ タイプ: ブール値 変更可能: いいえ これがクラスターモードの Redis (クラスターモー ドが有効) レプリケーショングループ (yes) か、非 クラスターモードの Redis (クラスターモードが有 効) レプリケーショングループである (no) かを示 します。クラスターモードの Redis (クラスター モードが有効) レプリケーショングループはその データを最大 15 のノードグループ間で分割できま す。 Redis 3.2.x には 2 つのデフォルトのパラメータ グループがあります。 • default.redis3.2 – デフォルト値 no。 • default.redis3.2.cluster.on – デフォルト値 yes。 。 clusterrequire-fullcoverage デフォルト: いいえ タイプ: ブール値 変更可能: はい 変更の適用: 即時 いずれのノードの処理対象になっていないハッ シュスロットが検出された場合、デフォルトで は、クラスターモードの Redis (クラスターモード が有効) ノードがクエリの受け入れを停止します。 このように、クラスターが部分的にダウンしてい る場合、クラスターは使用できなくなります。す べてのスロットが再び処理対象になると、クラス ターは自動的に再び使用可能になります。 ただし、まだ処理対象になっているキー空間の部 分に対するクエリを受け入れ続けるようにクラス ターのサブセットが機能していることが必要な場 合があります。その場合は、cluster-requirefull-coverage オプションを no に設定するだけで す。 API Version 2015-02-02 315 Amazon ElastiCache ユーザーガイド Redis 2.8.24 (拡張) で追加されたパラメータ 名前 hll-sparsemax-bytes 詳細 説明 デフォルト: 3000 HyperLogLog のスパースな表示バイト制限。この 制限には 16 バイトのヘッダーが含まれます。ス パースな表現を使用する HyperLogLog がこの制限 を超えると、デンスな表現に変換されます。 タイプ: 整数 変更可能: はい 16,000 より大きい値はお勧めしません。その時点 では、デンスな表現の方がメモリ効率が高くなる ためです。 変更の適用: 即時 PFADD の速度を下げすぎることなく領域効率の 良いエンコードの利点を活かせる (スパースなエン コードで O(N) になる) ように、値は 3,000 までに することをお勧めします。問題が CPU ではなく領 域であり、データセットが 0 ~ 15,000 の濃度の大 量の HyperLogLog で構成されているときは、値を 10,000 まで大きくすることができます。 Redis 3.2.4 (拡張) で変更されたパラメータ パラメータグループファミリー: redis3.2 Redis 3.2.4 の場合、次のパラメーターが Redis 3.2.4 以降に変更されました。 名前 詳細 変更 appendonly デフォルト: オフ 以前のバージョンの Redis からアップグレードす る場合は、最初に appendonly をオフにする必要が あります。 変更可能: いいえ appendfsync repl-timeout デフォルト: オフ 変更可能: いいえ 以前のバージョンの Redis からアップグレードす る場合は、最初に appendfsync をオフにする必要 があります。 デフォルト: 60 現在はデフォルト値 60 で、変更できません。 変更可能: いいえ tcp-keepalive デフォルト: 300 デフォルト値は 0 でした。 パラメーターは使用できなくなりました。 list-maxziplistentries パラメーターは使用できなくなりました。 list-maxziplist-value Redis 2.8.24 (拡張) で追加されたパラメータ パラメータグループファミリー: redis2.8 Redis 2.8.24 では、追加でサポートされているパラメータはありません。 API Version 2015-02-02 316 Amazon ElastiCache ユーザーガイド Redis 2.8.23 (拡張) で追加されたパラメータ Redis 2.8.23 (拡張) で追加されたパラメータ パラメータグループファミリー: redis2.8 Redis 2.8.23 では、以下のパラメータが追加でサポートされます。 名前 close-onslave-write 詳細 説明 デフォルト: はい 有効にした場合、読み取り専用レプリカに書き込 もうとするクライアントの接続は切断されます。 タイプ: 文字列 (はい/いいえ) 変更可能: はい 変更の適用: 即時 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 317 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 (拡張) で追加されたパラメータ パラメータグループファミリー: redis2.8 API Version 2015-02-02 318 Amazon ElastiCache ユーザーガイド Redis 2.8.21 で追加されたパラメータ Redis 2.8.22 では、追加でサポートされているパラメータはありません。 Important • Redis バージョン 2.8.22 から、プライマリクラスターとレプリカクラスターに repl-backlogsize が適用されるようになりました。 • Redis バージョン 2.8.22 以降では、repl-timeout パラメータはサポートされていません。そ のパラメータが変更された場合、appendonly と同様に、ElastiCache によってデフォルト (60 秒) で上書きされます。 次のパラメータはサポートされなくなりました。 • appendonly • appendfsync • repl-timeout Redis 2.8.21 で追加されたパラメータ パラメータグループファミリー: redis2.8 Redis 2.8.21 では、追加でサポートされているパラメータはありません。 Redis 2.8.19 で追加されたパラメータ パラメータグループファミリー: redis2.8 Redis 2.8.19 では、追加でサポートされているパラメータはありません。 Redis 2.8.6 で追加されたパラメータ パラメータグループファミリー: redis2.8 Redis 2.8.6 では、次のパラメータが追加でサポートされます。 名前 詳細 説明 min-slaves-max-lag デフォルト: 10 プライマリノードからリードレプリ カから ping リクエストを受け取る 必要がある秒数。この時間が経過し てもプライマリが ping を受け取ら ない場合、レプリカは使用可能と見 なされなくなります。使用可能なレ プリカの数が min-slaves-to-write を 下回った場合、プライマリはその時 点で書き込みの受け入れを停止しま す。 タイプ: 整数 変更可能: はい 変更の適用: 即時 このパラメータか min-slaves-to-write のどちらかが 0 の場合、レプリカ が使用できない場合でもプライマリ ノードは常に書き込みリクエストを 受け入れます。 min-slaves-to-write デフォルト: 0 API Version 2015-02-02 319 プライマリノードがクライアントか らの書き込みを受け入れるために、 Amazon ElastiCache ユーザーガイド Redis 2.8.6 で追加されたパラメータ 名前 詳細 説明 タイプ: 整数 使用可能でなければならないリード レプリカの数。使用可能なレプリカ の数がこの数を下回った場合、プラ イマリノードは書き込みリクエスト を受け入れなくなります。 変更可能: はい 変更の適用: 即時 このパラメータか min-slaves-maxlag のどちらかが 0 の場合、レプリカ が使用できない場合でもプライマリ ノードは常に書き込みリクエストを 受け入れます。 API Version 2015-02-02 320 Amazon ElastiCache ユーザーガイド Redis 2.8.6 で追加されたパラメータ 名前 詳細 説明 notify-keyspace-events デフォルト: (空の文字 列) 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 321 Amazon ElastiCache ユーザーガイド Redis 2.6.13 パラメータ 名前 詳細 説明 repl-backlog-size デフォルト: 1048576 プライマリノードバックログバッ ファーのサイズ (バイト単位)。バッ クログは、プライマリノードのデー タの更新を記録するために使用され ます。リードレプリカは、プライマ リに接続すると、部分同期 (psync) の 実行を試みます。このとき、プライ マリノードに追いつくことができる ようにバックログからデータを適用 します。psync に失敗した場合は、完 全同期が必要です。 タイプ: 整数 変更可能: はい 変更の適用: 即時 このパラメータの最小値は 16384 で す。 Note Redis 2.8.22 から、このパラ メータはプライマリクラス ターとリードレプリカに適用 されます。 デフォルト: 3600 repl-backlog-ttl タイプ: 整数 変更可能: はい 変更の適用: 即時 プライマリノードがバックログバッ ファーを保持する秒数。最後のレ プリカノードが切断されたときか ら、バックログ内のデータは replbacklog-ttl の期限が切れるまで 変更されません。レプリカがこの 時間内にプライマリに接続されない 場合、プライマリはバックログバッ ファーを解放します。レプリカが最 終的に再接続した場合、プライマリ との完全同期を実行する必要があり ます。 このパラメータを 0 に設定した場 合、バックログバッファーは解放さ れません。 デフォルト: 60 repl-timeout タイプ: 整数 変更可能: はい 変更の適用: 即時 Redis 2.6.13 パラメータ パラメータグループファミリー: redis2.6 API Version 2015-02-02 322 次のタイムアウト時間 (秒単位) を表 します。 • 同期中の一括データ転送 (リードレ プリカの観点から) • プライマリノードのタイムアウト (レプリカの観点から) • レプリカのタイムアウト (プライマ リノードの観点から) Amazon ElastiCache ユーザーガイド Redis 2.6.13 パラメータ Redis バージョン 2.6.13 は、ElastiCache でサポートされた Redis の最初のバージョンです。次の表 は、ElastiCache によりサポートされている Redis 2.6.13 パラメータを示しています。 名前 詳細 説明 activerehashing デフォルト: はい タイプ: 文字列 (はい/いいえ) 変更可能: 作成時 appendonly Redis のアクティブな再ハッシュ機能を有効にする かどうかを決定します。主要なハッシュテーブル は、1 秒あたり 10 回再ハッシュされます。再ハッ シュ操作ごとに 1 ミリ秒の CPU が消費されます。 パラメータグループを作成するとき、この値を設 定します。クラスターに新しいパラメータグルー プを割り当てるとき、この値は以前のパラメータ グループと新しいパラメータグループで一致して いる必要があります。 デフォルト: いいえ タイプ: 文字列 変更可能: はい Redis の AOF (Append Only File) 機能を有効また は無効にします。AOF は、キャッシュ内のデータ を変更する Redis コマンドをキャプチャし、特定 のノード障害からの復元に使用されます。 デフォルト値は no です (AOF が無効であることを 意味します)。AOF を有効にするには、このパラ メータを yes に設定します。 変更の適用: 即時 詳細については、「障害の軽減 (p. 68)」を参照し てください。 Note AOF (Append Only File) は、cache.t1.micro ノードおよび cache.t2* ノードではサポートされ ません。このタイプのノードの場 合、appendonly パラメータ値は無視され ます。 Note マルチ AZ レプリケーショングループで は、AOF は許可されません。 appendfsync デフォルト: everysec タイプ: 文字列 変更可能: はい 変更の適用: 即時 AOF 出力バッファーがディスクに書き込まれる頻 度を制御します。 • no - バッファーは必要に応じてディスクにフ ラッシュされます。 • everysec - バッファーは 1 秒に 1 回フラッシュ されます。これがデフォルト値です。 • always - バッファは、クラスターが変更される たびにフラッシュされます。 Important Redis バージョン 3.2.4 では、このパラ メーターのアスペクト値が一部変更され ています。Redis 3.2.4 (拡張) で変更され API Version 2015-02-02 323 Amazon ElastiCache ユーザーガイド Redis 2.6.13 パラメータ 名前 詳細 説明 たパラメータ (p. 316) を参照してくださ い。 clientoutputbuffer-limitnormal-hardlimit デフォルト: 0 クライアントの出力バッファーが指定されたバイ ト数に達した場合、クライアントの接続が切断さ れます。デフォルトは 0 です (ハード制限なし)。 タイプ: 整数 変更可能: はい 変更の適用: 即時 clientoutputbuffer-limitnormal-softlimit デフォルト: 0 クライアントの出力バッファーが指定されたバイ ト数に達した場合、クライアントの接続が切断さ れますが、この条件が client-output-bufferlimit-normal-soft-seconds の間存続した場合 に限ります。デフォルトは 0 です (ソフト制限な し)。 タイプ: 整数 変更可能: はい 変更の適用: 即時 clientoutputbuffer-limitnormal-softseconds デフォルト: 0 クライアントの出力バッファーが、この秒数より 長い時間 client-output-buffer-limit-normalsoft-limit バイトのままの場合、クライアントの 接続が切断されます。デフォルトは 0 です (時間制 限なし)。 タイプ: 整数 変更可能: はい 変更の適用: 即時 clientoutputbuffer-limitpubsub-hardlimit デフォルト: 33554432 タイプ: 整数 変更可能: はい Redis 発行/サブスクライブクライアントの場合: ク ライアントの出力バッファーが指定されたバイト 数に達した場合、クライアントの接続が切断され ます。 変更の適用: 即時 clientoutputbuffer-limitpubsub-softlimit デフォルト: 8388608 タイプ: 整数 変更可能: はい 変更の適用: 即時 clientoutputbuffer-limitpubsub-softseconds デフォルト: 60 Redis 発行/サブスクライブクライアントの場合: クライアントの出力バッファーが指定されたバイ ト数に達した場合、クライアントの接続が切断さ れますが、この条件が client-output-bufferlimit-pubsub-soft-seconds の間存続した場合に 限ります。 Redis 発行/サブスクライブクライアントの場合: ク ライアントの出力バッファーがこの秒数より長い 間 client-output-buffer-limit-pubsub-softlimit バイトのままの場合、クライアントの接続 が切断されます。 タイプ: 整数 変更可能: はい 変更の適用: 即時 clientoutputbuffer-limitslave-hardlimit デフォルト: 値については、 「Redis のノードタイプ固有のパ ラメータ (p. 328)」を参照して ください Redis リードレプリカの場合: クライアントの出力 バッファーが指定されたバイト数に達した場合、 クライアントの接続が切断されます。 タイプ: 整数 変更可能: いいえ API Version 2015-02-02 324 Amazon ElastiCache ユーザーガイド Redis 2.6.13 パラメータ 名前 clientoutputbuffer-limitslave-softlimit 詳細 説明 デフォルト: 値については、 「Redis のノードタイプ固有のパ ラメータ (p. 328)」を参照して ください Redis リードレプリカの場合: クライアントの出力 バッファーが指定されたバイト数に達した場合、 クライアントの接続が切断されますが、この条件 が client-output-buffer-limit-slave-softseconds の間存続した場合に限ります。 タイプ: 整数 変更可能: いいえ clientoutputbuffer-limitslave-softseconds databases デフォルト: 60 タイプ: 整数 変更可能: いいえ デフォルト: 16 タイプ: 整数 変更可能: 作成時 hash-maxziplistentries デフォルト: 512 タイプ: 整数 変更可能: はい Redis リードレプリカの場合: クライアントの出 力バッファーが、この秒数より長い時間 clientoutput-buffer-limit-slave-soft-limit バイト のままの場合、クライアントの接続が切断されま す。 論理パーティションデータベース数は分割されま す。この値を低く抑えることをお勧めします。 パラメータグループを作成するとき、この値を設 定します。クラスターに新しいパラメータグルー プを割り当てるとき、この値は以前のパラメータ グループと新しいパラメータグループで一致して いる必要があります。 ハッシュに使用されるメモリ量を決定します。エ ントリが指定された数より少ないハッシュは、領 域を節約する特殊なエンコードを使用して格納さ れます。 変更の適用: 即時 hash-maxziplist-value デフォルト: 64 タイプ: 整数 変更可能: はい ハッシュに使用されるメモリ量を決定します。エ ントリが指定されたバイト数より小さいハッシュ は、領域を節約する特殊なエンコードを使用して 格納されます。 変更の適用: 即時 list-maxziplistentries デフォルト: 512 タイプ: 整数 変更可能: はい リストに使用されるメモリ量を決定します。エン トリが指定された数より少ないリストは、領域を 節約する特殊なエンコードを使用して格納されま す。 変更の適用: 即時 list-maxziplist-value デフォルト: 64 タイプ: 整数 変更可能: はい リストに使用されるメモリ量を決定します。エン トリが指定されたバイト数より小さいリストは、 領域を節約する特殊なエンコードを使用して格納 されます。 変更の適用: 即時 API Version 2015-02-02 325 Amazon ElastiCache ユーザーガイド Redis 2.6.13 パラメータ 名前 lua-timelimit maxclients 詳細 説明 デフォルト: 5000 タイプ: 整数 ElastiCache がスクリプトを停止するアクションを 実行までの Lua スクリプトの最大実行時間 (ミリ秒 単位)。 変更可能: いいえ lua-time-limit を超過した場合、すべての Redis デフォルト: 65000 一度に接続できるクライアントの最大数。 コマンドによりエラーが ____-BUSY の形式で返さ れます。この状態により、多く必須 Redis 操作と の干渉が発生する可能性があるため、ElastiCache はまず SCRIPT KILL コマンドを発行します。これ に失敗すると、ElastiCache は強制的に Redis を再 開します。 タイプ: 整数 変更可能: いいえ maxmemorypolicy デフォルト: volatile-lru タイプ: 文字列 変更可能: はい 変更の適用: 即時 maxmemorysamples デフォルト: 3 タイプ: 整数 変更可能: はい メモリの最大使用量に到達したときのキーの削除 ポリシー。 有効な値は次のとおりです。volatile-lru | allkeys-lru | volatile-random | allkeysrandom | volatile-ttl | noeviction 詳細については、「RedisLabs でサポートされて いる削除ポリシー」を参照してください。 LRU (least-recently-used) と TTL (time-to-live) の計 算の場合、このパラメータはチェックするキーの サンプルサイズを表します。デフォルトで、Redis は 3 個のキーを選択し、最も長い間使用されてい ないキーを使用します。 変更の適用: 即時 API Version 2015-02-02 326 Amazon ElastiCache ユーザーガイド Redis 2.6.13 パラメータ 名前 reservedmemory 詳細 説明 デフォルト: 0 非クラスター用に予約されたメモリの合計。 デフォルトでは、Redis ノードは、ノード の maxmemory を消費するまで大きくなりま す (「Redis のノードタイプ固有のパラメー タ (p. 328)」を参照)。この場合、メモリページ ングが大量に行われるため、ノードパフォーマン スが低下する可能性が高くなります。使用可能な メモリの一部を Redis 以外の用途に確保してお くことで、ページングの量を減らすことができま す。 タイプ: 整数 変更可能: はい 変更の適用: 即時 たとえば、maxmemory が 900MB の cache.m1.small ノードがあるとします。180 MB を確保した場合、Redis はアプリケーションデータ (キーや値のデータなど) を直接格納するためにこ のメモリを消費しなくなります。代わりに、この 180 MB は、ノードのオペレーティングシステムと その他のバックグラウンドプロセス用に確保され ます。 リードレプリカ、AOF (Append-Only File)、または 多くのメモリを消費する他の Redis 機能を使用し ている場合は、reserved-memory パラメーターの 値を大きくすることを検討してください。 このパラメータは ElastiCache に固有であり、標 準的な Redis ディストリビューションには含まれ ていません。 詳細については、「Redis スナップショットを 作成するための十分なメモリがあることの確 認 (p. 65)」を参照してください。 set-maxintsetentries デフォルト: 512 特定のタイプのセットに使用されるメモリの量を 決定します (64 ビット符号付き整数の範囲に収ま る基数 10 の整数である文字列)。エントリが指定 された数より少ないセットは、領域を節約する特 殊なエンコードを使用して格納されます。 タイプ: 整数 変更可能: はい 変更の適用: 即時 slave-allowchaining デフォルト: いいえ タイプ: 文字列 Redis のリードレプリカは自身のリードレプリカを 持つことができるかどうかを決定します。 変更可能: いいえ slowlog-logslower-than デフォルト: 10000 タイプ: 整数 Redis の Slow Log 機能によりコマンドを記録する 最大実行時間 (マイクロ秒単位)。 変更可能: はい 変更の適用: 即時 API Version 2015-02-02 327 Amazon ElastiCache ユーザーガイド Redis のノードタイプ固有のパラメータ 名前 slowlog-maxlen 詳細 説明 デフォルト: 128 Redis Slow Log の最大長。 タイプ: 整数 変更可能: はい 変更の適用: 即時 tcp-keepalive デフォルト: 0 タイプ: 整数 変更可能: はい 変更の適用: 即時 0 以外の値 (N) に設定した場合、接続が維持され ていることを確認するためにノードクライアント が N 秒ごとにポーリングされます。デフォルト設 定の 0 では、このようなポーリングが行われませ ん。 Important Redis バージョン 3.2.4 では、このパラ メーターのアスペクト値が一部変更され ています。Redis 3.2.4 (拡張) で変更され たパラメータ (p. 316) を参照してくださ い。 timeout デフォルト: 0 タイプ: 整数 変更可能: はい 0 以外の値 (N) に設定した場合、クライアントが N 秒間アイドル状態になると、ノードが接続を終了 します。デフォルト設定の 0 では、ノードはアイ ドル状態のクライアントを切断しません。 変更の適用: 即時 zset-maxziplistentries デフォルト: 128 タイプ: 整数 変更可能: はい ソート対象セットに使用されるメモリ量を決定し ます。要素が指定された数より少ないソート対象 セットは、領域を節約する特殊なエンコードを使 用して格納されます。 変更の適用: 即時 zset-maxziplist-value デフォルト: 64 タイプ: 整数 変更可能: はい ソート対象セットに使用されるメモリ量を決定し ます。エントリが指定されたバイト数より小さい ソート対象セットは、領域を節約する特殊なエン コードを使用して格納されます。 変更の適用: 即時 Note Redis 2.6.13 クラスターにパラメータグループを指定しない場合、デフォルトのパラメータグ ループ (default.redis2.6) が使用されます。デフォルトのパラメータグループ内のパラメータ は、どれも値を変更できません。ただし、いつでもカスタムパラメータグループを作成して、ク ラスターに割り当てることができます。 Redis のノードタイプ固有のパラメータ ほとんどのパラメータの値は 1 つですが、一部のパラメータには、使用されているノードタイプによって 複数の値が設定されることがあります。次の表は、各ノードタイプの maxmemory, client-output-bufferAPI Version 2015-02-02 328 Amazon ElastiCache ユーザーガイド Redis のノードタイプ固有のパラメータ limit-slave-hard-limit パラメータと client-output-buffer-limit-slave-soft-limit パラメータの デフォルト値を示しています。maxmemory の値は、ノードでデータやその他の用途に使用できる最大バイ ト数です。 Note maxmemory パラメータは変更できません。 Node Type maxmemory client-output-bufferlimit-slave-hard-limit client-output-bufferlimit-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 cache.m4.large 6892593152 689259315 689259315 cache.m4.xlarge 15328501760 1532850176 1532850176 cache.m4.2xlarge 31889126359 3188912636 3188912636 cache.m4.4xlarge 65257290629 6525729063 6525729063 cache.m4.10xlarge 166047614239 16604761424 16604761424 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 API Version 2015-02-02 329 Amazon ElastiCache ユーザーガイド Redis のノードタイプ固有のパラメータ Note T2 インスタンスでは、Redis バックアップ/復元はサポートされません。 t1 および t2 のインスタンスは、Redis AOF またはマルチ AZ をサポートしていません。 API Version 2015-02-02 330 Amazon ElastiCache ユーザーガイド サブネットおよびサブネットグルー プ サブネットグループは、Amazon Virtual Private Cloud (VPC) 環境で実行しているクラスターに対して指定 できるサブネット (通常はプライベート) の集合です。 Amazon VPC でクラスターを作成する場合は、サブネットグループを指定する必要がありま す。ElastiCache はそのキャッシュサブネットグループを使用して、そのサブネット内でノードに関連付 けるサブネットおよび IP アドレスを選択します。 このセクションでは、サブネットおよびサブネットグループを作成し活用して、ElastiCache リソースへ のアクセスを管理する方法を扱います。 Amazon VPC 環境でのサブネットグループの使用方法の詳細については、「ステップ 4: アクセスを許可 する (p. 26)」を参照してください。 トピック • サブネットグループの作成 (p. 332) • クラスターまたはレプリケーショングループにサブネットグループを割り当てる (p. 335) • サブネットグループの変更 (p. 336) • サブネットグループの削除 (p. 338) API Version 2015-02-02 331 Amazon ElastiCache ユーザーガイド サブネットグループの作成 サブネットグループの作成 新しいサブネットグループを作成する場合は、使用可能な IP アドレス数に注意してください。サブネット の空き IP アドレス数が非常に少ない場合は、クラスターに追加できるノード数が制約される可能性があり ます。この問題を解決するために、クラスターのアベイラビリティーゾーンで十分な数の IP アドレスを使 用できるように、サブネットグループに 1 つ以上のサブネットを割り当てることができます。その後で、 クラスターにノードを追加できます。 以下の手順では、により、mysubnetgroup というサブネットグループを作成する方法 ((console)、AWS CLI、ElastiCache API ) を示します。 サブネットグループの作成 ((コンソール)) 次の手順では、サブネットグループを作成する方法 ((console) ) を示します。 サブネットグループを作成するには ((コンソール)) 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール (https:// console.aws.amazon.com/elasticache/) を開きます。 2. ナビゲーションリストで [ Subnet Groups] を選択します。 3. [Create Subnet Group] を選択します。 4. Create Subnet Group ウィザードで、次の操作を行います。すべての設定が正しいことを確認した ら、[Yes, Create] を選択します。 a. [Name] ボックスにサブネットグループの名前を入力します。 b. [Description] ボックスにサブネットグループの説明を入力します。 c. [VPC ID] ボックスで、作成した Amazon VPC を選択します。 d. [Availability Zone] および [Subnet ID] リストで、プライベートサブネットのアベイラビリティー ゾーンと ID を選択し、[Add] を選択します。 API Version 2015-02-02 332 Amazon ElastiCache ユーザーガイド サブネットグループの作成 ((AWS CLI)) 5. 表示された確認メッセージで、[Close] を選択します。 新しいサブネットグループが、ElastiCache コンソールの [Subnet Groups] リストに表示されます。ウィン ドウの下部で、サブネットグループを選択して、ウィンドウの下部で詳細 (このグループに関連付けられ ているすべてのサブネットなど) を確認します。 サブネットグループの作成 ((AWS CLI)) コマンドプロンプトで、create-cache-subnet-group コマンドを使用してサブネットグループを作成しま す。 Linux, macOS, or Unix 用: aws elasticache create-cache-subnet-group \ --cache-subnet-group-name mysubnetgroup \ --cache-subnet-group-description "Testing" \ --subnet-ids subnet-53df9c3a Windows の場合: aws elasticache create-cache-subnet-group ^ --cache-subnet-group-name mysubnetgroup ^ --cache-subnet-group-description "Testing" ^ --subnet-ids subnet-53df9c3a このコマンドでは、次のような出力が生成されます。 SUBNETGROUP mysubnetgroup Testing vpc-5a2e4c35 SUBNET subnet-53df9c3a us-west-2b 詳細については、AWS CLI トピックの「create-cache-subnet-group」を参照してください。 サブネットグループの作成 ((ElastiCache API)) ElastiCache API を使用して、以下のパラメーターを指定して CreateCacheSubnetGroup を呼び出します: • CacheSubnetGroupName=mysubnetgroup • CacheSubnetGroupDescription==Testing • SubnetIds.member.1=subnet-53df9c3a Example https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateCacheSubnetGroup &CacheSubnetGroupDescription=Testing &CacheSubnetGroupName=mysubnetgroup &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 API Version 2015-02-02 333 Amazon ElastiCache ユーザーガイド サブネットグループの作成 ((ElastiCache API)) &X-Amz-Signature=<signature> &X-Amz-SignedHeaders=Host API Version 2015-02-02 334 Amazon ElastiCache ユーザーガイド クラスターまたはレプリケーショング ループにサブネットグループを割り当てる クラスターまたはレプリケーショングループにサブ ネットグループを割り当てる サブネットグループを作成したら、Amazon VPC でクラスターまたはレプリケーショングループを起動で きます。詳細については、次のトピックのいずれかを参照してください。 • Memcached クラスター – Memcached クラスターを起動するには、「クラスターの作成 ((コンソール)): Memcached (p. 134)」を参照してください。ステップ 5.a (Memcached の高度な設定) で、VPC サブ ネットグループを選択します。 • スタンドアロン Redis クラスター – 単一ノード Redis クラスターを起動するには、「Redis (クラスター モードが無効) クラスターの作成 ((コンソール)) (p. 136)」を参照してください。ステップ 5.a (Redis の 高度な設定) で、VPC サブネットグループを選択します。 • Redis (クラスターモードが無効) レプリケーショングループ – VPC で Redis (クラスターモードが 無効) レプリケーショングループを起動するには、「Redis クラスターの最初からの作成 ((コンソー ル)) (p. 218)」を参照してください。ステップ 5.b (Redis の高度な設定) で、VPC サブネットグループを 選択します。 • Redis (クラスターモードが有効) レプリケーショングループ – ゼロからの Redis (クラスターモード が有効) レプリケーショングループの作成 ((コンソール)) (p. 224)ステップ 5.a (Redis の高度な設定) で、VPC サブネットグループを選択します。 API Version 2015-02-02 335 Amazon ElastiCache ユーザーガイド サブネットグループの変更 サブネットグループの変更 サブネットグループの説明を変更することや、サブネットグループに関連付けられたサブネット ID のリス トを変更することができます。クラスターが現在サブネットを使用している場合、サブネットグループか らそのサブネット ID を削除することはできません。 次の手順では、サブネットグループを変更する方法を示します。 サブネットグループの変更 ((コンソール)) サブネットグループを変更するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Subnet Groups] を選択します。 3. サブネットグループのリストで、変更するグループを選択します。 4. ElastiCache コンソールの下部で、サブネットグループの説明またはサブネット ID のリストを変更し ます。変更を保存するには [Save] を選択します。 サブネットグループの変更 ((AWS CLI)) コマンドプロンプトで、modify-cache-subnet-group コマンドを使用してサブネットグループを変更しま す。 Linux, macOS, or Unix 用: aws elasticache modify-cache-subnet-group \ --cache-subnet-group-name mysubnetgroup \ --cache-subnet-group-description "New description" \ --subnet-ids subnet-42df9c3a,subnet-48fc21a9 Windows の場合: aws elasticache modify-cache-subnet-group ^ --cache-subnet-group-name mysubnetgroup ^ --cache-subnet-group-description "New description" ^ --subnet-ids subnet-42df9c3a,subnet-48fc21a9 このコマンドでは、次のような出力が生成されます。 SUBNETGROUP mysubnetgroup Testing vpc-5a2e4c35 SUBNET subnet-42df9c3a us-west-2b SUBNET subnet-48fc21a9 us-west-2b 詳細については、AWS CLI トピックの「modify-cache-subnet-group」を参照してください。 サブネットグループの変更 ((ElastiCache API)) 以下のパラメーターを指定して、ElastiCache API を使用して ModifyCacheSubnetGroup を呼び出します。 • CacheSubnetGroupName=mysubnetgroup • 変更したいその他のパラメーター値。この例では、CacheSubnetGroupDescription=New%20description を使用してサブネットグループの説明を変更します。 API Version 2015-02-02 336 Amazon ElastiCache ユーザーガイド サブネットグループの変更 ((ElastiCache API)) Example https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheSubnetGroup &CacheSubnetGroupDescription=New%20description &CacheSubnetGroupName=mysubnetgroup &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 337 Amazon ElastiCache ユーザーガイド サブネットグループの削除 サブネットグループの削除 サブネットグループが必要ではなくなったと判断した場合、サブネットグループを削除できます。サブ ネットグループがクラスターで現在使用されている場合、サブネットグループを削除できません。 次の手順では、サブネットグループを削除する方法を示します。 サブネットグループの削除 ((コンソール)) サブネットグループを削除するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで [ Subnet Groups] を選択します。 3. サブネットグループのリストで、削除する項目を選択し、[Delete] を選択します。 4. このオペレーションを確認するよう求められた場合は、[Yes, Delete] を選択します。 サブネットグループの削除 ((AWS CLI)) コマンドプロンプトで、delete-cache-subnet-group コマンドを使用してサブネットグループを削除しま す。 Linux, macOS, or Unix 用: aws elasticache delete-cache-subnet-group \ --cache-subnet-group-name mysubnetgroup Windows の場合: aws elasticache delete-cache-subnet-group ^ --cache-subnet-group-name mysubnetgroup このコマンドでは何も出力されません。 詳細については、AWS CLI トピックの「delete-cache-subnet-group」を参照してください。 サブネットグループの削除 ((ElastiCache API)) 以下のパラメーターを指定して、ElastiCache API を使用して DeleteCacheSubnetGroup を呼び出します。 • CacheSubnetGroupName=mysubnetgroup Example 次のコード例の改行が読み込みのために追加されます。 https://elasticache.us-west-2.amazonaws.com/ ?Action=DeleteCacheSubnetGroup &CacheSubnetGroupName=mysubnetgroup &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Timestamp=20141201T220302Z API Version 2015-02-02 338 Amazon ElastiCache ユーザーガイド サブネットグループの削除 ((ElastiCache API)) &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 339 Amazon ElastiCache ユーザーガイド Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache Amazon Virtual Private Cloud (Amazon VPC) サービスは、従来のデータセンターに非常によく似た仮想 ネットワークを定義します。お客様が Amazon VPC を設定すると、IP アドレス範囲の選択、サブネット の作成、ルートテーブル、ネットワークゲートウェイ、セキュリティの設定などが可能になります。仮想 ネットワークにキャッシュクラスターを追加でき、Amazon VPC のセキュリティグループを使用して、 キャッシュクラスターへのアクセスを制御できます。 このセクションでは、Amazon VPC 内で手動で ElastiCache クラスターを設定する方法を説明します。こ の情報は、ElastiCache と Amazon VPC との連携について理解を深めたいユーザーを対象としています。 トピック • ElastiCache および Amazon VPC (p. 341) • Virtual Private Cloud (VPC) の作成 (p. 346) • キャッシュサブネットグループの作成 (p. 348) • Amazon VPC でのキャッシュクラスターの作成 (p. 349) • Amazon VPC でレプリケーショングループを作成する (p. 350) • Amazon VPC で実行中のクラスターまたはレプリケーショングループに接続する (p. 351) API Version 2015-02-02 340 Amazon ElastiCache ユーザーガイド ElastiCache および Amazon VPC ElastiCache および Amazon VPC Note ElastiCache は Amazon Virtual Private Cloud (Amazon 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 341 Amazon ElastiCache ユーザーガイド Amazon VPC 内の ElastiCache の概要 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 で表さ れています。 API Version 2015-02-02 342 Amazon ElastiCache ユーザーガイド なぜ EC2 Classic の代わりに Amazon VPC を ElastiCache デプロイメントで使用するのですか。 Amazon VPC のセキュリティグループは、ElastiCache クラスターと Amazon EC2 インスタンス のインバウンドおよびアウトバウンドのトラフィックを制御します。 サブネットで ElastiCache クラスターを起動できます。キャッシュノードは、サブネットのアド レス範囲のプライベート IP アドレスを持ちます。 サブネットで Amazon EC2 インスタンスを起動することもできます。各 Amazon EC2 インスタ ンスはサブネットのアドレス範囲内のプライベート IP アドレスを持ちます。Amazon EC2 イン スタンスは、同じサブネット内のすべてのキャッシュノードに接続できます。 インターネットからアクセス可能な Amazon VPC 内の Amazon EC2 インスタンスの場合は、イ ンスタンスに Elastic IP アドレスと呼ばれる静的なパブリックアドレスを割り当てる必要があり ます。 なぜ 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 (Amazon VPC) と完全に統合されます。ElastiCache ユーザーにとって、これは次のことを意味します。 • AWS アカウントが EC2-VPC プラットフォームのみをサポートしている場合、ElastiCache は 常に VPC でクラスターを起動します。 • AWS を初めて利用する場合、クラスターは VPC にデプロイされます。デフォルト VPC が自 動的に作成されます。 • デフォルト VPC をお持ちのお客様が、クラスター起動時にサブネットを指定しなかった場合 は、そのクラスターはお客様のデフォルト VPC で起動されます。 詳細については、「Detecting Your Supported Platforms and Whether You Have a Default VPC」 を参照してください。 API Version 2015-02-02 343 Amazon ElastiCache ユーザーガイド 前提条件 前提条件 Amazon VPC 内に ElastiCache クラスターを作成するには、Amazon VPC が次の要件を満たしている必要 があります。 • Amazon VPC は、専用ではない Amazon EC2 インスタンスを許可する必要があります。専用インスタ ンスのテナンシー用に設定された Amazon VPC では ElastiCache を使用できません。 • キャッシュサブネットグループを Amazon VPC 用に定義する必要があります。ElastiCache はその キャッシュサブネットグループを使用して、そのサブネット内でキャッシュノードに関連付けるサブ ネットおよび IP アドレスを選択します。 • Amazon VPC 用にキャッシュセキュリティグループを定義する必要があります。または、用意されてい るデフォルトを使用できます。 • 各サブネットの CIDR ブロックは、メンテナンス作業で使用する予備の IP アドレスを ElastiCache に提 供するのに十分な大きさが必要です。 ルーティングとセキュリティ 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 リファレ ンスの一部です) API Version 2015-02-02 344 Amazon ElastiCache ユーザーガイド Amazon VPC ドキュメント 説明 ドキュメント Amazon VPC API アクション、データタイプ、お よびエラーの詳細説明 Amazon EC2 API Reference オプションとして IPsec VPN 接続のゲートウェイ を設定する必要のあるネットワーク管理者向け情 報 Amazon VPC ネットワーク管理者ガイド (Amazon VPC API アクションは、Amazon EC2 リ ファレンスの一部です) Amazon Virtual Private Cloud の詳細については、「Amazon Virtual Private Cloud」を参照してください。 API Version 2015-02-02 345 Amazon ElastiCache ユーザーガイド Virtual Private Cloud (VPC) の作成 Virtual Private Cloud (VPC) の作成 この例では、各アベイラビリティーゾーンのプライベートサブネットを持つ Amazon VPC を作成します。 Amazon VPC バケットの作成 (コンソール) Amazon Virtual Private Cloud 内に ElastiCache キャッシュクラスターを作成するには 1. AWS マネジメントコンソールにサインインし、Amazon VPC コンソール (https:// console.aws.amazon.com/vpc/) を開きます。 2. Amazon Virtual Private Cloud ウィザードを使用して新しい Amazon VPC を作成します。 3. a. ナビゲーションリストで、[VPC Dashboard] を選択します。 b. [Start VPC Wizard] を選択します。 c. Amazon VPC ウィザードで、[VPC with Public and Private Subnets] を選択し、[Next] を選択しま す。 d. [VPC with Public and Private Subnets] ページで、デフォルトのオプションを変更せずに、[Create VPC] を選択します。 e. 表示された確認メッセージで、[Close] を選択します。 Amazon VPC 内にパブリックサブネットとプライベートサブネットの 2 つのサブネットがあることを 確認します。これらのサブネットは自動的に作成されます。 a. ナビゲーションリストで、[Subnets] を選択します。 b. サブネットのリストで、Amazon VPC にある 2 つのサブネットを探します。 パブリックサブネットで使用可能な IP アドレスは 1 つ少なくなります。これは、ウィザードに よって、プライベートサブネットからインターネットへのアウトバウンド通信用に Amazon EC2 NAT インスタンスと Elastic IP アドレス (Amazon EC2 料金が適用される) が作成されるためで す。 Tip 2 つのサブネットの識別子と、どちらがパブリックで、どちらがプライベートであるかを 書き留めておきます。この情報は、後でキャッシュクラスターを起動し、Amazon VPC に Amazon EC2 インスタンスを追加するときに必要になります。 4. Amazon VPC セキュリティグループを作成します。キャッシュクラスターと Amazon EC2 インスタ ンスでは、このグループを使用します。 a. Amazon VPC マネジメントコンソールで、左のナビゲーションペインの [Security Groups] を選択 します。 b. [Create Security Group] を選択します。 c. 対応するボックスにセキュリティグループの名前と説明を入力します。[VPC] ボックスで Amazon VPC の ID を選択します。 API Version 2015-02-02 346 Amazon ElastiCache ユーザーガイド Amazon VPC バケットの作成 (コンソール) d. 5. すべての設定が正しいことを確認したら、[Yes, Create] を選択します。 セキュリティグループのネットワーク Ingress ルールを定義します。このルールは、Secure Shell (SSH) を使用して Amazon EC2 インスタンスに接続することを許可します。 a. ナビゲーションリストで [Security Groups] を選択します。 b. c. リストで対象となるセキュリティグループを探して選択します。 [Security Group] の下で、[Inbound] タブを選択します。[Create a new rule] ボックスで、[SSH] を 選択し、[Add Rule] を選択します。 [Apply Rule Changes] を選択します。 d. これで、キャッシュサブネットグループを作成して Amazon VPC でキャッシュクラスターを起動する準備 が整いました。 API Version 2015-02-02 347 Amazon ElastiCache ユーザーガイド キャッシュサブネットグループの作成 キャッシュサブネットグループの作成 キャッシュサブネットグループは、Amazon VPC 内でキャッシュクラスターとして指定できるサブネット の集合です。Amazon VPC でキャッシュクラスターを起動するときに、キャッシュサブネットグループを 選択する必要があります。次に、ElastiCache ではそのキャッシュサブネットグループを使用して、サブ ネット内の IP アドレスをクラスター内の各キャッシュノードに割り当てます。 ElastiCache 管理コンソール、AWS CLI、または ElastiCache API を使用してサブネットグループを作成す る方法のガイダンスについては、「サブネットグループの作成 (p. 332)」を参照してください。 キャッシュサブネットグループを作成した後、キャッシュクラスターを起動して Amazon VPC で実行でき ます。次のトピック「Amazon VPC でのキャッシュクラスターの作成 (p. 349)」に進みます。 API Version 2015-02-02 348 Amazon ElastiCache ユーザーガイド Amazon VPC でのキャッシュクラスターの作成 Amazon VPC でのキャッシュクラスターの作成 この例では、Amazon VPC でキャッシュクラスターを作成します。 Amazon VPC でのキャッシュクラスターの作成 (コン ソール) • Memcached キャッシュクラスターを起動するには、「クラスターの作成 ((コンソール)): Memcached (p. 134)」を参照してください。ステップ 6.c では、VPC サブネットグループを選択しま す。 • Redis キャッシュクラスターを起動するには、「Redis (クラスターモードが無効) クラスターの作成 ((コ ンソール)) (p. 136)」を参照してください。ステップ 6.d では、VPC サブネットグループを選択しま す。 これで、Amazon VPC 内でキャッシュクラスターを起動できました。Amazon VPC で実行されている新し いキャッシュクラスターに接続する方法の例については、「Amazon VPC で実行中のクラスターまたはレ プリケーショングループに接続する (p. 351)」に進んでください。 API Version 2015-02-02 349 Amazon ElastiCache ユーザーガイド Amazon VPC でレプリケーショングループを作成する Amazon VPC でレプリケーショングループを作成 する この例では、Amazon VPC で Redis レプリケーショングループを作成します。 Amazon VPC でレプリケーショングループを作成する (コンソール) VPC で Redis (クラスターモードが無効) レプリケーショングループを起動するには、Redis クラスターの 最初からの作成 ((コンソール)) (p. 218)ステップ 5.b で、VPC サブネットグループを選択します。 Redis (クラスターモードが有効) レプリケーショングループを起動するには、ゼロからの Redis (クラス ターモードが有効) レプリケーショングループの作成 ((コンソール)) (p. 224)ステップ 6.d で、VPC サブ ネットグループを選択します。 ここで、Amazon VPC 内で Redis レプリケーショングループを起動しました。Amazon VPC で実行され ている新しいレプリケーショングループに接続する方法の例については、「Amazon VPC で実行中のクラ スターまたはレプリケーショングループに接続する (p. 351)」に進んでください。 API Version 2015-02-02 350 Amazon ElastiCache ユーザーガイド Amazon VPC で実行中のクラスターまた はレプリケーショングループに接続する Amazon VPC で実行中のクラスターまたはレプリ ケーショングループに接続する この例では、Amazon VPC で Amazon EC2 インスタンスを起動する方法を示します。次に、このインス タンスにログインし、その Amazon VPC で実行中の ElastiCache クラスターにアクセスできます。 Note Amazon EC2 の使用については、「Amazon EC2 入門ガイド」(『Amazon EC2 ドキュメント』) を参照してください。 トピック • 1. Amazon EC2 インスタンスを作成する (p. 351) • 2. Amazon EC2 インスタンスに IP アドレスを割り当てる (p. 352) • 3. Amazon EC2 インスタンスに接続する (p. 353) 1. Amazon EC2 インスタンスを作成する 以下の手順では、VPC に Amazon EC2 インスタンスを作成します。 1. AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ にある Amazon EC2 コンソールを開きます。 2. コンソールで、[Launch Instance] を選択し、以下の手順を実行します。 3. [Choose an Amazon Machine Image (AMI)] ページで、64 ビット Amazon Linux AMI を選択し、 [Select] を選択します。 4. [Choose an Instance Type] ページで、[3] を選択します。インスタンスの設定. 5. [Configure Instance Details] ページで以下の項目を選択します。 a. [Network] リストで、Amazon VPC を選択します。 b. [Subnet] リストで、パブリックサブネットを選択します。 API Version 2015-02-02 351 Amazon ElastiCache ユーザーガイド 2. Amazon EC2 インスタンスに IP アドレスを割り当てる すべての設定が正しいことを確認したら、[4] を選択します。ストレージの追加. 6. [Add Storage] ページで、[5] を選択します。インスタンスのタグ付け. 7. [Tag Instance] ページで、Amazon EC2 インスタンスの名前を入力し、[6] を選択します。セキュリ ティグループの設定. 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] を選択します。 2. Amazon EC2 インスタンスに IP アドレスを割り当 てる これで、作成した Amazon EC2 インスタンスに Elastic IP アドレスを割り当てることができま す。Amazon EC2 インスタンスに接続するには、この IP アドレスを使用する必要があります。 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. ナビゲーションリストで [Elastic IPs] を選択します。 3. [Allocate New Address] を選択します。 4. [Allocate New Address] ダイアログボックスの [EIP used in] ボックスで、[VPC] を選択してさらに [Yes, Allocate] を選択します。 5. リストから割り当てた Elastic IP アドレスを選択し、[Associate Address] を選択します。 6. [Associate Address] ダイアログボックスの [Instance] ボックスで、起動した Amazon EC2 インスタン スの ID を選択し、[Yes, Associate] を選択します。 API Version 2015-02-02 352 Amazon ElastiCache ユーザーガイド 3. Amazon EC2 インスタンスに接続する これで、作成した Elastic IP アドレスを使用して、SSH で Amazon EC2 インスタンスに接続できま す。 Tip SSH を使用して Linux/UNIX インスタンスに接続する手順については、「Linux/UNIX インス タンスへの接続」(『Amazon EC2 入門ガイド』) を参照してください。 3. Amazon EC2 インスタンスに接続する 以下の手順では、Amazon EC2 インスタンスに接続します。 1. コマンドウィンドウを開きます。コマンドプロンプトで、次のコマンドを実行しま す。mykeypair.pem をご使用のキーペアファイルの名前に、54.207.55.251 をご使用の Elastic IP アド レスに置き換えます。 ssh -i mykeypair.pem [email protected] Important まだ、Amazon EC2 インスタンスからログアウトしないでください。 API Version 2015-02-02 353 Amazon ElastiCache ユーザーガイド 3. Amazon EC2 インスタンスに接続する 2. これで、ElastiCache クラスターを操作する準備ができました。まだ telnet ユーティリティをインス トールしていない場合、これを行うには、このユーティリティをインストールする必要があります。 telnet をインストールし、キャッシュクラスターを操作するには (AWS CLI) Linux、OS X、Unix の場合: コマンドウィンドウを開きます。コマンドプロンプトで、次のコマンドを実行します。確認のプロン プトが表示されたら、「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! Windows の場合 コマンドウィンドウを開きます。コマンドプロンプトで、次のコマンドを実行します。[User Account Control] ダイアログボックスが開いた場合は、必要なアクションが表示されていることを確認し、 [Continue] をクリックします。 pkgmgr /iu:"TelnetClient" 3. ElastiCache コンソール ( https://console.aws.amazon.com/elasticache/) に移動し、キャッシュクラス ターのいずれかのノードのエンドポイントを取得します。 4. 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 の値を取得するには、次のように入力します。 API Version 2015-02-02 354 Amazon ElastiCache ユーザーガイド 3. Amazon EC2 インスタンスに接続する get mykey キャッシュエンジンは次のように応答します。 VALUE mykey 0 28 This is the value for my key END キャッシュエンジンから切断するには、次のように入力します。 quit Important AWS アカウントの追加料金が発生しないように、これらの例を試した後で、今後使用しない AWS リソースはすべて削除してください。 API Version 2015-02-02 355 Amazon ElastiCache ユーザーガイド セキュリティグループ Amazon ElastiCache のセキュリティ Amazon ElastiCache では、以下の方法によりキャッシュデータを不正なアクセスからセキュリティで保護 します。 • 「ElastiCache とセキュリティグループ (p. 356)」では、インストールに必要なセキュリティグループ のタイプについて説明しています。 • ユーザー、グループ、ロールのアクションの許可と制限については、「認証とアクセスコントロール (Amazon ElastiCache 用) (p. 358)」を参照してください。 ElastiCache とセキュリティグループ データのセキュリティが重要であるため、ElastiCache には、データへのアクセス権限を持つユーザーを 制御するための手段が用意されています。データへのアクセスを制御する方法は、Amazon Virtual Private Cloud (Amazon VPC) または Amazon EC2-Classic でクラスターを起動したかどうかによって決まりま す。 トピック • Amazon Virtual Private Cloud: Amazon VPC セキュリティグループ (p. 356) • Amazon EC2-Classic: ElastiCache セキュリティグループ (p. 356) Amazon Virtual Private Cloud: Amazon VPC セキュリ ティグループ Amazon Virtual Private Cloud でクラスターを起動した場合、Amazon VPC の設定で、IP アドレス範囲 を選択し、サブネットを作成し、ルートテーブル、ネットワークゲートウェイ、セキュリティの設定 を定義できます。また、仮想ネットワークにキャッシュクラスターを追加でき、Amazon ElastiCache セキュリティグループではなく Amazon VPC セキュリティグループを使用して、キャッシュクラス ターへのアクセスを制御できます。詳細については、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してください。 Amazon EC2-Classic: ElastiCache セキュリティグ ループ Amazon ElastiCache を使用すると、ElastiCache キャッシュセキュリティグループを使用して、キャッ シュクラスターへのアクセスを制御できます。ElastiCache キャッシュセキュリティグループは、クラス API Version 2015-02-02 356 Amazon ElastiCache ユーザーガイド Amazon EC2-Classic: ElastiCache セキュリティグループ ターへのネットワークアクセスを制御するファイアウォールのように動作します。デフォルトでは、クラ スターへのネットワークアクセスは無効になっています。アプリケーションからキャッシュクラスターに アクセスできるようにするには、特定の Amazon EC2 セキュリティグループのホストからのアクセスを明 示的に有効にする必要があります。詳細については、「セキュリティグループ [EC2-Classic] (p. 277)」を 参照してください。 API Version 2015-02-02 357 Amazon ElastiCache ユーザーガイド 認証とアクセスコントロール 認証とアクセスコントロール (Amazon ElastiCache 用) Amazon ElastiCache へのアクセスには、AWS によってリクエストの認証に使用される認証情報が必 要です。これらの認証情報には、ElastiCache キャッシュクラスターや Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなどの AWS リソースに対するアクセス権限が含まれている必要がありま す。以下のセクションでは、AWS Identity and Access Management (IAM) と ElastiCache を使用して、リ ソースにアクセスできるユーザーを制御することで、リソースをセキュリティで保護する方法について詳 しく説明します。 • 認証 (p. 358) • アクセスコントロール (p. 359) 認証 AWS には、次のタイプのアイデンティティでアクセスできます。 • AWS アカウントのルートユーザー – AWS にサインアップするときは、AWS アカウントに関連付けら れた E メールアドレスとパスワードを指定します。これらは ルート認証情報であり、これらの情報を使 用すると、すべての AWS リソースへの完全なアクセスが可能になります。 Important セキュリティ上の理由から、AWS アカウントへの完全なアクセス権限を持つ管理者ユーザー (IAM ユーザー) を作成するためにのみ、ルート認証情報を使用することをお勧めします。その 後、この管理者ユーザーを使用して、制限されたアクセス権限を持つ他の IAM ユーザーとロー ルを作成できます。詳細については、『IAM ユーザーガイド』の「IAM のベストプラクティ ス」および「管理者のユーザーおよびグループの作成」を参照してください。 • IAM ユーザー – IAM ユーザーは、特定のカスタム権限 (たとえば、ElastiCache で a cache cluster を 作成するアクセス権限) を持つ AWS アカウント内のアイデンティティです。IAM のユーザー名とパス ワードを使用して、AWS マネジメントコンソール、AWS ディスカッションフォーラム、AWS Support Center などのセキュリティ保護された AWS ウェブページにサインインできます。 ユーザー名とパスワードに加えて、各ユーザーのアクセスキーを生成することもできます。いくつか の SDK の 1 つまたは AWS Command Line Interface (CLI) を使ってプログラムで AWS サービスにアク セスするときに、これらのキーを使用します。SDK と CLI ツールでは、アクセスキーを使用してリク エストが暗号で署名されます。AWS ツールを使用しない場合は、リクエストを自分で署名する必要が あります。ElastiCache supports では、署名バージョン 4 がサポートされています。これは、インバウ ンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、『AWS General Reference』の「署名バージョン 4 の署名プロセス」を参照してください。 • IAM ロール – IAM ロールは、特定のアクセス権限を持ち、アカウントで作成できるもう 1 つの IAM ア イデンティティです。これは IAM ユーザーに似ていますが、特定のユーザーに関連付けられていませ ん。IAM ロールでは、AWS サービスおよびリソースにアクセスするために使用できる一時的なアクセス キーを取得することができます。IAM ロールと一時的な認証情報は、次の状況で役立ちます。 • フェデレーティッドユーザーアクセス – IAM ユーザーを作成するのではなく、AWS Directory Service、エンタープライズユーザーディレクトリ、またはウェブアイデンティティプロバイダーの既 存のユーザーアイデンティティを使用することもできます。このようなユーザーはフェデレーティッ API Version 2015-02-02 358 Amazon ElastiCache ユーザーガイド アクセスコントロール ドユーザーと呼ばれます。AWS では、アイデンティティプロバイダーを通じてアクセスがリクエスト されたときに、フェデレーティッドユーザーにロールを割り当てます。フェデレーティッドユーザー の詳細については、『IAM ユーザーガイド』の「フェデレーティッドユーザーとロール」を参照して ください。 • クロスアカウントアクセス – アカウントで IAM ロールを使って、お客様のアカウントのリソースへの アクセス権を別の AWS アカウントに付与できます。この例については、『IAM ユーザーガイド』の 「チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任」を参照してくださ い。 • AWS サービスアカウント – アカウントで IAM ロールを使って、お客様のアカウントのリソースにア クセスする AWS サービスのアクセス権限を付与できます。たとえば、Amazon Redshift がお客様に 代わって Amazon S3 バケットにアクセスし、バケットに保存されたデータを Amazon Redshift クラ スターにロードすることを許可するロールを作成できます。 詳細については、『IAM ユーザーガイ ド』の「AWS ユーザーにアクセス権限を委任するロールの作成」を参照してください。 • Amazon EC2 で実行されるアプリケーション – インスタンスで実行し、AWS API リクエストを作成 するアプリケーションで使用されるアクセスキーを EC2 インスタンス内に保存する代わりに、IAM ロールを使用して、これらのアプリケーション用の一時認証情報を管理できます。AWS ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インス タンスにアタッチされたインスタンスプロファイルを作成できます。インスタンスプロファイルには ロールが含まれ、EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができま す。詳細については、『IAM ユーザーガイド』の「Amazon EC2 上のアプリケーションに対するロー ルの使用」を参照してください。 アクセスコントロール 有効な認証情報があればリクエストを認証できますが、Amazon ElastiCache リソースを作成したり、そ れらのリソースにアクセスしたりするには、そのためのアクセス権限が必要です。たとえば、ElastiCache キャッシュクラスターを作成するためのアクセス権限が必要です。 以下のセクションでは、Amazon ElastiCache のアクセス権限を管理する方法について説明します。最初に 概要のセクションを読むことをお勧めします。 • ElastiCache リソースへのアクセス権限の管理の概要 (p. 360) • Amazon ElastiCache でアイデンティティベースのポリシー (IAM ポリシー) を使用する (p. 364) API Version 2015-02-02 359 Amazon ElastiCache ユーザーガイド アクセス管理の概要 ElastiCache リソースへのアクセス権限の管理の概要 すべての AWS リソースは AWS アカウントによって所有され、となり、リソースの作成またはアクセス は、アクセス権限のポリシーによって管理されます。アカウント管理者は、アクセス権限ポリシーを IAM アイデンティティ (ユーザー、グループ、ロール) にアタッチできます。一部のサービス (AWS Lambda な ど) では、アクセス権限ポリシーをリソースにアタッチすることもできます。 Note アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細について は、IAM ユーザーガイド の「IAM のベストプラクティス」を参照してください。 アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象となるリ ソース、およびそれらのリソースに対して許可される特定のアクションを決定します。 トピック • Amazon ElastiCache リソースおよびオペレーション (p. 360) • リソース所有権について (p. 360) • リソースへのアクセスの管理 (p. 361) • ポリシー要素の指定 : アクション、効果、リソース、プリンシパル (p. 362) • ポリシーでの条件の指定 (p. 363) Amazon ElastiCache リソースおよびオペレーション Amazon ElastiCache では、プライマリリソースはキャッシュクラスターです。Amazon ElastiCache で は、追加のリソースタイプとして snapshot もサポートされています。ただし、既存の Redis キャッシュ クラスターのコンテキストでのみスナップショットを作成できます。スナップショットはサブリソースと 呼ばれます。 これらのリソースとサブリソースには、次の表に示すとおり、一意の Amazon リソースネーム (ARN) が関 連付けられています。 リソースタイプ ARN 形式 キャッシュクラスター arn:aws:elasticache:region:accountid:cluster:resource-name スナップショット arn:aws:elasticache:region:accountid:snapshot:resource-name ElastiCache には、ElastiCache リソースを操作するための一連のオペレーションが用意されています。使 用可能なオペレーションのリストについては、Amazon ElastiCache の「アクション」を参照してくださ い。 リソース所有権について リソース所有者は、リソースを作成した AWS アカウントです。つまり、リソース所有者は、リソース の作成リクエストを認証するプリンシパルエンティティ (ルートアカウント、IAM ユーザー、または IAM ロール) の AWS アカウントです。以下の例では、このしくみを示しています。 • AWS アカウントの root アカウントの認証情報を使用してキャッシュクラスターを作成する場合、AWS アカウントはリソースの所有者です (ElastiCache では、リソースはキャッシュクラスターです)。 API Version 2015-02-02 360 Amazon ElastiCache ユーザーガイド アクセス管理の概要 • AWS アカウントに IAM ユーザーを作成し、キャッシュクラスターを作成するためのアクセス権限をそ のユーザーに付与した場合、そのユーザーはキャッシュクラスターを作成できます。ただし、キャッ シュクラスターリソースを所有しているのは、このユーザーが属する AWS アカウントです。 • AWS アカウントに、キャッシュクラスターを作成するためのアクセス権限を持つ IAM ロールを作成す る場合は、ロールを引き受けることのできるいずれのユーザーもキャッシュクラスターを作成できま す。ロールが属する AWS アカウントがキャッシュクラスターリソースを所有しています。 リソースへのアクセスの管理 アクセスポリシーでは、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス権限の ポリシーを作成するために使用可能なオプションについて説明します。 Note このセクションでは、Amazon ElastiCache のコンテキストでの IAM の使用について説明しま す。これは、IAM サービスに関する詳細情報を取得できません。完全な IAM ドキュメントについ ては、「IAM とは?」 (IAM ユーザーガイド ) を参照してください。IAM ポリシー構文の詳細およ び説明については、IAM ユーザーガイド の「AWS IAM ポリシーリファレンス」を参照してくだ さい。 IAM アイデンティティにアタッチされたポリシーはアイデンティティベースのポリシー (IAM ポリシー) と呼ばれ、リソースにアタッチされたポリシーはリソースベースのポリシーと呼ばれます。Amazon ElastiCache では、アイデンティティベースのポリシー (IAM ポリシー) のみがサポートされています。 トピック • アイデンティティベースのポリシー (IAM ポリシー) (p. 361) • リソースベースのポリシー (p. 362) アイデンティティベースのポリシー (IAM ポリシー) ポリシーを IAM アイデンティティにアタッチできます。たとえば、次の操作を実行できます。 • アカウントのユーザーまたはグループにアクセス権限ポリシーをアタッチする - アカウント管理者は、 特定のユーザーに関連付けられるアクセス権限ポリシーを使用して、そのユーザーに ElastiCache リ ソース (キャッシュクラスター、パラメータグループ、セキュリティグループなど) を作成するためのア クセス権限を付与できます。 • アクセス権限ポリシーをロールにアタッチする (クロスアカウントのアクセス権限を付与) – アイデン ティティベースのアクセス権限ポリシーを IAM ロールにアタッチして、クロスアカウントのアクセス権 限を付与することができます。たとえば、アカウント A の管理者は、次のように他のまたは AWS にク ロスアカウントのアクセス権限を別の AWS アカウント (アカウント B) または AWS サービスに付与す るロールを作成することができます。 1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに権限を付与するロー ルに権限ポリシーをアタッチします。 2. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別する ロールに、信頼ポリシーをアタッチします。 3. アカウント B の管理者は、アカウント B のユーザーにロールを引き受ける権限を委任できるように なります。これにより、アカウント B のユーザーにアカウント A のリソースの作成とアクセスが許 可されます。AWS サービスのアクセス権限を付与してロールを引き受けさせたい場合は、信頼ポリ シー内のプリンシパルも、AWS サービスのプリンシパルとなることができます。 IAM を使用したアクセス権限の委任の詳細については、IAM ユーザーガイド の「アクセス管理」を参照 してください。 以下に示しているのは、お客様の AWS アカウントに対する DescribeCacheClusters アクションの実行 をユーザーに許可するポリシーの例です。現在の実装では、ElastiCache で任意の API アクションについ API Version 2015-02-02 361 Amazon ElastiCache ユーザーガイド アクセス管理の概要 て、リソース ARN (リソースレベルのアクセス権限と呼ばれる) を使用した特定のリソースの識別がサポー トされていません。そのため、ワイルドカード文字 (*) を指定する必要があります。 { "Version": "2012-10-17", "Statement": [{ "Sid": "DescribeCacheClusters", "Effect": "Allow", "Action": [ "elasticache:DescribeCacheClusters"], "Resource": "*" } ] } ElastiCache でアイデンティティベースのポリシーを使用する方法の詳細については、「Amazon ElastiCache でアイデンティティベースのポリシー (IAM ポリシー) を使用する (p. 364)」を参照してくだ さい。ユーザー、グループ、ロール、アクセス権限の詳細については、IAM ユーザーガイド の「アイデン ティティ (ユーザー、グループ、ロール)」を参照してください。 リソースベースのポリシー Amazon S3 などの他のサービスでは、リソースベースのアクセス権限ポリシーもサポートされています。 たとえば、ポリシーを S3 バケットにアタッチして、そのバケットに対するアクセス権限を管理できま す。Amazon ElastiCache では、リソースベースのポリシーはサポートされていません。 ポリシー要素の指定 : アクション、効果、リソース、プリンシパ ル Amazon ElastiCache リソースごとに (「Amazon ElastiCache リソースおよびオペレーション (p. 360)」 を参照)、サービスは一連の API オペレーションを定義します (「アクション」を参照)。これらの API オペレーションを実行するためのアクセス権限を付与するために、ElastiCache ではポリシーに一連の アクションを定義できます。たとえば、ElastiCache スナップショットリソースに対して、アクション CreateSnapshot、DeleteSnapshot、DescribeSnapshots を定義します。API オペレーションを実行する 場合に、複数のアクションで権限が必要となる場合があることに注意してください。 以下は、最も基本的なポリシーの要素です。 • リソース – ポリシーで Amazon Resource Name (ARN) を使用して、ポリシーを適用するリソースを 識別します。ElastiCache リソースの場合、IAM ポリシーでは必ずワイルドカード文字 (*) を使用しま す。詳細については、「Amazon ElastiCache リソースおよびオペレーション (p. 360)」を参照してく ださい。 • アクション – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識 別します。たとえば、指定した Effect に応じて、elasticache:CreateCacheCluster アクセス権限で は、Amazon ElastiCache CreateCacheCluster オペレーションの実行をユーザーに許可または拒否しま す。 • 効果 – ユーザーが特定のアクションをリクエストする際の効果を指定します。許可または拒否のいずれ かになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されま す。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されて いる場合でも、ユーザーはそのリソースにアクセスできなくなります。 • プリンシパル – アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされてい るユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限 (リソースベー スのポリシーにのみ適用) を受け取りたいユーザー、アカウント、サービス、またはその他のエンティ ティを指定します。ElastiCache では、リソースベースのポリシーはサポートされていません。 IAM ポリシーの構文と説明についての詳細については、『IAM ユーザーガイド』の「AWS IAM ポリシー の参照」を参照してください。 API Version 2015-02-02 362 Amazon ElastiCache ユーザーガイド アクセス管理の概要 すべての Amazon ElastiCache API アクションを示す表については、「ElastiCache API のアクセス権限: アクション、リソース、条件リファレンス (p. 369)」を参照してください。 ポリシーでの条件の指定 アクセス権限を付与するとき、IAM ポリシー言語を使用して、ポリシーが有効になる必要がある条件を 指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。ポリ シー言語での条件の指定の詳細については、IAM ユーザーガイド の「条件」を参照してください。 条件を表すには、あらかじめ定義された条件キーを使用します。Amazon ElastiCache に固有の条件キー はありません。ただし、AWS 全体の条件キーがあり、必要に応じて使用できます。AWS 全体を対象とす るすべてのキーのリストについては、IAM ユーザーガイド の「条件に利用可能なキー」を参照してくださ い。 API Version 2015-02-02 363 Amazon ElastiCache ユーザーガイド アイデンティティベースのポリ シー (IAM ポリシー) を使用する Amazon ElastiCache でアイデンティティベースのポ リシー (IAM ポリシー) を使用する このトピックでは、アカウント管理者が識別 IAM アイデンティティ (ユーザー、グループ、ロール) へのア クセス権限ポリシーをアタッチする、アイデンティティベースのポリシーの例を示します。 Important 初めに、Amazon ElastiCache リソースへのアクセスを管理するための基本概念と使用可能 なオプションについて説明する概要トピックを読むことをお勧めします。詳細については、 「ElastiCache リソースへのアクセス権限の管理の概要 (p. 360)」を参照してください。 このセクションでは、次のトピックを対象としています。 • Amazon ElastiCache コンソールを使用するために必要なアクセス権限 (p. 365) • Amazon ElastiCache での AWS 管理 (事前定義) ポリシー (p. 365) • お客様が管理するポリシーの例 (p. 366) 以下に示しているのは、アクセス権限ポリシーの例です。 { "Version": "2012-10-17", "Statement": [{ "Sid": "AllowClusterPermissions", "Effect": "Allow", "Action": [ "elasticache:CreateCacheCluster", "elasticache:CreateReplicationGroup", "elasticache:DescribeCacheClusters", "elasticache:ModifyCacheCluster", "elasticache:RebootCacheCluster"], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole"], "Resource": "arn:aws:iam::account-id:role/*" } ] } このポリシーには以下の 2 つのステートメントがあります。 • 最初のステートメントは、アカウントが所有するキャッ シュクラスターに対して Amazon ElastiCache アクション (elasticache:CreateCacheCluster、elasticache:DescribeCacheClusters、elasticache:ModifyCacheCluster、el を実行するためのアクセス権限を付与します。現在、Amazon ElastiCache では、リソースレベルで のアクションを実行するためのアクセス権限はサポートされていません。したがって、ポリシーでは Resource の値としてワイルドカード文字 (*) を指定します。 • 2 番目のステートメントは、IAM ロールに対して IAM アクション (iam:PassRole) を実行するためのア クセス権限を付与します。このステートメントで Resource 値の末尾のワイルドカード文字 (*) は、任意 の IAM ロールに対して iam:PassRole アクションを実行するためのアクセス権限を付与することを意味 します。このアクセス権限を特定のロールに制限するには、リソース ARN 内のワイルドカード文字 (*) を特定のロール名に置き換えます。 API Version 2015-02-02 364 Amazon ElastiCache ユーザーガイド アイデンティティベースのポリ シー (IAM ポリシー) を使用する アイデンティティベースのポリシーでアクセス権限を得るプリンシパルを指定していないため、ポリシー では Principal 要素を指定していません。ユーザーにポリシーをアタッチすると、そのユーザーが暗黙の プリンシパルになります。IAM ロールにアクセス権限ポリシーをアタッチすると、ロールの信頼ポリシー で識別されたプリンシパルがアクセス権限を得ることになります。 すべての Amazon ElastiCache API アクションとそれらが適用されるリソースの表については、 「ElastiCache API のアクセス権限: アクション、リソース、条件リファレンス (p. 369)」を参照してくだ さい。 Amazon ElastiCache コンソールを使用するために必要なアクセ ス権限 アクセス権限のリファレンス表では、Amazon ElastiCache API オペレーションとそれらの各オペレー ションに必要なアクセス権限を示しています。ElastiCache API オペレーションの詳細については、 「ElastiCache API のアクセス権限: アクション、リソース、条件リファレンス (p. 369)」を参照してくだ さい。 Amazon ElastiCache コンソールを使用するには、以下のアクセス権限ポリシーに示しているように、追加 のアクションのためのアクセス権限を付与する必要があります。 { "Version": "2012-10-17", "Statement": [{ "Sid": "MinPermsForECConsole", "Effect": "Allow", "Action": [ "elasticache:Describe*", "elasticache:List*", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DescribeAccountAttributes", "ec2:DescribeSecurityGroups", "cloudwatch:GetMetricStatistics", "cloudwatch:DescribeAlarms", "s3:ListAllMyBuckets", "sns:ListTopics", "sns:ListSubscriptions" ], "Resource": "*" } ] } ElastiCache コンソールには、以下の理由でこれらの追加のアクセス権限が必要になります。 • ElastiCache アクションを実行するためのアクセス権限。コンソールで、アカウントの ElastiCache リ ソースを表示するために必要です。 • Amazon EC2 に対してクエリを行う ec2 アクションを実行するためのアクセス権限。コンソールで、ア ベイラビリティーゾーン、VPC、セキュリティグループ、アカウント属性を表示するために必要です。 • cloudwatch アクションを実行するためのアクセス権限。コンソールで、Amazon CloudWatch メトリク スとアラームを取得し、表示するために必要です。 • sns アクションを実行するためのアクセス権限。コンソールで、Amazon Simple Notification Service (Amazon SNS) トピックとサブスクリプションを取得し、表示するために必要です。 Amazon ElastiCache での AWS 管理 (事前定義) ポリシー AWS は、AWS によって作成され管理されるスタンドアロンの IAM ポリシーが提供する多くの一般的ユー スケースに対応します。管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与することで、 API Version 2015-02-02 365 Amazon ElastiCache ユーザーガイド アイデンティティベースのポリ シー (IAM ポリシー) を使用する どの権限が必要なのかをユーザーが調査する必要をなくすることができます。詳細については、「AWS 管 理ポリシー」 (IAM ユーザーガイド) を参照してください。 アカウントのユーザーにアタッチ可能な以下の AWS 管理ポリシーは、ElastiCache に固有のものです。 • AmazonElastiCacheReadOnlyAccess - Amazon ElastiCache リソースへの読み取り専用アクセスを許可 します。 • AmazonElastiCacheFullAccess - Amazon ElastiCache リソースへのフルアクセスを許可します。 Note IAM コンソールにサインインし、特定のポリシーを検索することで、これらのアクセス権限ポリ シーを確認することができます。 独自のカスタム IAM ポリシーを作成して、Amazon ElastiCache API アクションにアクセス権限を付与す ることもできます。これらのカスタムポリシーは、それらのアクセス権限が必要な IAM ユーザーまたはグ ループにアタッチできます。 お客様が管理するポリシーの例 Amazon ElastiCache コンソールを使用するために必要な最小限のアクセス権限と組み合わせて、このセク ションでのポリシーの例は、追加のアクセス権限を付与します。この例は、AWS SDK と AWS CLI に関連 しています。ElastiCache コンソールを使用するために必要なアクセス権限の詳細については、「Amazon ElastiCache コンソールを使用するために必要なアクセス権限 (p. 365)」を参照してください。 IAM ユーザーとグループを設定する手順については、『IAM ユーザーガイド』の「最初の IAM ユーザーと 管理者グループの作成」を参照してください。 Important IAM ポリシーは必ず、本稼働環境での使用前にテストしてください。ElastiCache のアク ションによっては、シンプルに見えても、ElastiCache コンソールの使用時にそれらのア クションをサポートするために、他のアクションが必要になる場合があります。たとえ ば、elasticache:CreateCacheCluster は、ElastiCache キャッシュクラスターを作成するための アクセス権限を付与します。ただし、このオペレーションを実行するために、ElastiCache コン ソールでは Describe と List の多数のアクションが使用されて、リストが事前設定されます。ま た、レプリケーションが有効な Redis キャッシュクラスターをユーザーが作成する必要がある場 合は、elasticache:CreateReplicationGroup アクションを実行するためのアクセス権限もユー ザーに付与する必要があります。 例 • 例 1: ユーザーにセキュリティグループの作成と管理を許可する (p. 366) • 例 2: ユーザーに ElastiCache リソースへの読み取り専用アクセスを許可する (p. 367) • 例 3: ユーザーに一般的な ElastiCache システム管理者タスクの実行を許可する (p. 367) • 例 4: ユーザーにすべての ElastiCache API アクションへのアクセスを許可する (p. 367) 例 1: ユーザーにセキュリティグループの作成と管理を許可する 以下のポリシーでは、セキュリティグループの特定の ElastiCache アクションを実行するためのアクセス 権限を付与します。通常、このタイプのアクセス権限ポリシーはシステム管理者グループにアタッチしま す。 { "Version": "2012-10-17", "Statement":[{ "Sid": "SecGrpAllows", "Effect":"Allow", API Version 2015-02-02 366 Amazon ElastiCache ユーザーガイド アイデンティティベースのポリ シー (IAM ポリシー) を使用する "Action":[ "elasticache:CreateCacheSecurityGroup", "elasticache:DeleteCacheSecurityGroup", "elasticache:DescribeCacheSecurityGroup", "elasticache:AuthorizeCacheSecurityGroupIngress", "elasticache:RevokeCacheSecurityGroupIngress"], "Resource":"*" } ] } 例 2: ユーザーに ElastiCache リソースへの読み取り専用アクセスを許可する 以下のポリシーでは、リソースを一覧表示する ElastiCache アクションを実行するためのアクセス権限を ユーザーに付与します。通常、このタイプのアクセス権限ポリシーは管理者グループにアタッチします。 { "Version": "2012-10-17", "Statement":[{ "Sid": "ECUnrestricted", "Effect":"Allow", "Action": [ "elasticache:Describe*", "elasticache:List*"], "Resource":"*" } ] } 例 3: ユーザーに一般的な ElastiCache システム管理者タスクの実行を許可する 一般的なシステム管理者タスクには、キャッシュクラスター、パラメータ、パラメータグループの変更が 含まれます。システム管理者は ElastiCache イベントに関する情報を取得することが必要になる場合もあ ります。以下のポリシーでは、これらの一般的なシステム管理タスクに必要な ElastiCache アクションを 実行するためのアクセス権限をユーザーに付与します。通常、このタイプのアクセス権限ポリシーはシス テム管理者グループにアタッチします。 { "Version": "2012-10-17", "Statement":[{ "Sid": "ECAllowSpecific", "Effect":"Allow", "Action":[ "elasticache:ModifyCacheCluster", "elasticache:RebootCacheCluster", "elasticache:DescribeCacheClusters", "elasticache:DescribeEvents", "elasticache:ModifyCacheParameterGroup", "elasticache:DescribeCacheParameterGroups", "elasticache:DescribeCacheParameters", "elasticache:ResetCacheParameterGroup", "elasticache:DescribeEngineDefaultParameters"], "Resource":"*" } ] } 例 4: ユーザーにすべての ElastiCache API アクションへのアクセスを許可する 以下のポリシーでは、ユーザーにすべての ElastiCache アクションへのアクセスを許可します。このタイ プのアクセス権限ポリシーは管理者ユーザーにのみ付与することをお勧めします。 API Version 2015-02-02 367 Amazon ElastiCache ユーザーガイド アイデンティティベースのポリ シー (IAM ポリシー) を使用する { "Version": "2012-10-17", "Statement":[{ "Sid": "ECAllowSpecific", "Effect":"Allow", "Action":[ "elasticache:*" ], "Resource":"*" } ] } API Version 2015-02-02 368 Amazon ElastiCache ユーザーガイド ElastiCache API の権限リファレンス ElastiCache API のアクセス権限: アクション、リソー ス、条件リファレンス アクセスコントロール (p. 359) をセットアップし、IAM アイデンティティにアタッチできるアクセス権限 ポリシー (アイデンティティベースのポリシー) を作成するときは、以下の表をリファレンスとして使用で きます。この表には、各 Amazon ElastiCache API オペレーション、およびその実行のためのアクセス権 限を付与できる対応するアクションを示しています。ポリシーの Action フィールドでアクションを指定 し、ポリシーの Resource フィールドでリソース値としてワイルドカード文字 (*) を指定します。 ElastiCache ポリシーで AWS 全体の条件キーを使用して、条件を表現することができます。AWS 全体を 対象とするすべてのキーのリストについては、『IAM ユーザーガイド』の「条件に利用可能なキー」を参 照してください。 Note アクションを指定するには、API オペレーション名 (elasticache: など) の前に elasticache:DescribeSnapshots プレフィックスを使用します。すべて ElastiCache アクション に対して、リソースとしてワイルドカード文字 (*) を指定します。 Amazon ElastiCache API とアクションで必要なアクセス権限 AddTagsToResource アクション: elasticache:AddTagsToResource リソース: * AuthorizeCacheSecurityGroupIngress アクション: elasticache:AuthorizeCacheSecurityGroupIngress リソース: * CopySnapshot アクション: elasticache:CopySnapshot リソース: * CreateCacheCluster アクション: elasticache:CreateCacheCluster s3:GetObject Note SnapshotArns パラメータを使用する場合、SnapshotArns リストの各メンバーには、そのリ ソースとして s3 ARN を関連付けた独自の s3:GetObject アクセス権限が必要です。 リソース: * arn:aws:s3:::my_bucket/snapshot1.rdb ここで、my_bucket/snapshot1 はキャッシュクラスターの作成元になる S3 バケットとスナップ ショットです。 CreateCacheParameterGroup アクション: elasticache:CreateCacheParameterGroup リソース: * API Version 2015-02-02 369 Amazon ElastiCache ユーザーガイド ElastiCache API の権限リファレンス CreateCacheSecurityGroup アクション: elasticache:CreateCacheSecurityGroup リソース: * CreateCacheSubnetGroup アクション: elasticache:CreateCacheSubnetGroup リソース: * CreateReplicationGroup アクション: elasticache:CreateReplicationGroup s3:GetObject Note SnapshotArns パラメータを使用する場合、SnapshotArns リストの各メンバーには、そのリ ソースとして s3 ARN を関連付けた独自の s3:GetObject アクセス権限が必要です。 リソース: * arn:aws:s3:::my_bucket/snapshot1.rdb ここで、my_bucket/snapshot1 はキャッシュクラスターの作成元になる S3 バケットとスナップ ショットです。 CreateSnapshot アクション: elasticache:CreateSnapshot リソース: * DeleteCacheCluster アクション: elasticache:DeleteCacheCluster リソース: * DeleteCacheParameterGroup アクション: elasticache:DeleteCacheParameterGroup リソース: * DeleteCacheSecurityGroup アクション: elasticache:DeleteCacheSecurityGroup リソース: * DeleteCacheSubnetGroup アクション: elasticache:DeleteCacheSubnetGroup リソース: * DeleteReplicationGroup アクション: elasticache:DeleteReplicationGroup リソース: * DeleteSnapshot アクション: elasticache:DeleteSnapshot API Version 2015-02-02 370 Amazon ElastiCache ユーザーガイド ElastiCache API の権限リファレンス リソース: * DescribeCacheClusters アクション: elasticache:DescribeCacheClusters リソース: * DescribeCacheEngineVersions アクション: elasticache:DescribeCacheEngineVersions リソース: * DescribeCacheParameterGroups アクション: elasticache:DescribeCacheParameterGroups リソース: * DescribeCacheParameters アクション: elasticache:DescribeCacheParameters リソース: * DescribeCacheSecurityGroups アクション: elasticache:DescribeCacheSecurityGroups リソース: * DescribeCacheSubnetGroups アクション: elasticache:DescribeCacheSubnetGroups リソース: * DescribeEngineDefaultParameters アクション: elasticache:DescribeEngineDefaultParameters リソース: * DescribeEvents アクション: elasticache:DescribeEvents リソース: * DescribeReplicationGroups アクション: elasticache:DescribeReplicationGroups リソース: * DescribeReservedCacheNodes アクション: elasticache:DescribeReservedCacheNodes リソース: * DescribeReservedCacheNodesOfferings アクション: elasticache:DescribeReservedCacheNodesOfferings リソース: * DescribeSnapshots アクション: elasticache:DescribeSnapshots API Version 2015-02-02 371 Amazon ElastiCache ユーザーガイド ElastiCache API の権限リファレンス リソース: * ListTagsForResource アクション: elasticache:ListTagsForResource リソース: * ModifyCacheCluster アクション: elasticache:ModifyCacheCluster リソース: * ModifyCacheParameterGroup アクション: elasticache:ModifyCacheParameterGroup リソース: * ModifyCacheSubnetGroup アクション: elasticache:ModifyCacheSubnetGroup リソース: * ModifyReplicationGroup アクション: elasticache:ModifyReplicationGroup リソース: * PurchaseReservedCacheNodesOffering アクション: elasticache:PurchaseReservedCacheNodesOffering リソース: * RebootCacheCluster アクション: elasticache:RebootCacheCluster リソース: * RemoveTagsFromResource アクション: elasticache:RemoveTagsFromResource リソース: * ResetCacheParameterGroup アクション: elasticache:ResetCacheParameterGroup リソース: * RevokeCacheSecurityGroupIngress アクション: elasticache:RevokeCacheSecurityGroupIngress リソース: * API Version 2015-02-02 372 Amazon ElastiCache ユーザーガイド 要件 AWS 外部からの ElastiCache リソー スへのアクセス Amazon ElastiCache は、クラウドベースのメモリ内のキー値ストアを提供する AWS サービスです。これ は、バックエンドで Memcached エンジンまたは Redis エンジンを使用します。このサービスは、AWS 内からのみアクセスできるように設計されています。ElastiCache クラスターが VPC 内でホストされてい る場合は、ネットワークアドレス変換 (NAT) インスタンスを使用して外部からアクセスできるようにでき ます。 トピック • 要件 (p. 373) • 考慮事項 (p. 373) • 制約事項 (p. 374) • AWS 外部から ElastiCache リソースにアクセスする方法 (p. 374) • 以下の資料も参照してください。 (p. 376) 要件 AWS 外部から ElastiCache リソースにアクセスするには、以下の要件を満たしている必要があります。 • クラスターが VPC 内にあり、ネットワークアドレス変換 (NAT) インスタンスを介してアクセスできる 必要があります。これは必須の要件であり、例外はありません。 • NAT インスタンスがクラスターと同じ VPC 内で起動されている必要があります。 • NAT インスタンスがクラスターとは別のパブリックサブネットで起動されている必要があります。 • Elastic IP (EIP) アドレスが NAT インスタンスに関連付けられている必要があります。NAT インスタン スのポートは、iptables のポート転送機能を使用して VPC 内のキャッシュノードポートに転送されま す。 考慮事項 ElastiCache 外部から ElastiCache リソースにアクセスする際には、以下の点を考慮してください。 • クライアントは EIP に接続し、NAT インスタンスのポートをキャッシュします。NAT インスタンスで ポート転送すると、トラフィックは適切なキャッシュクラスターノードに転送されます。 API Version 2015-02-02 373 Amazon ElastiCache ユーザーガイド 制約事項 • クラスターノードが追加または交換されたら、この変更が反映されるように iptables ルールが更新され る必要があります。 制約事項 このアプローチは、テストおよび開発の目的にしか使用できません。以下の制限があるため、本稼働で使 用することは推奨されません。 • NAT インスタンスは、クライアントと複数のクラスターの間のプロキシとして機能します。プロキシを 追加すると、キャッシュクラスターのパフォーマンスに影響が及びます。この影響は、NAT インスタン スを介してアクセスするキャッシュクラスターの数に応じて増大します。 • クライアントから NAT インスタンスへのトラフィックは暗号化されません。したがって、NAT インス タンスを介して機密データを送信することは回避してください。 • NAT インスタンスは、別のインスタンスを維持するためのオーバーヘッドを増加させます。 • NAT インスタンスは単一障害点として機能します。VPC で高可用性 NAT をセットアップする方法につ いては、「Amazon VPC NAT インスタンスの高可用性: 例」を参照してください。 AWS 外部から ElastiCache リソースにアクセスす る方法 次の手順は、NAT インスタンスを使用して ElastiCache リソースに接続する方法を示しています。 Tip Amazon ElastiCache クラスター用に動作させるように次のプロセスを変更できます。クラスター のポート番号に、例のポート番号を指定します。 これらのステップは、以下を前提としています。 • IP アドレス 10.0.1.230、デフォルトの Memcached ポート 11211、およびセキュリティグループ sgbd56b7da を使用して Memcached クラスターにアクセスしている。 • 信頼済みクライアントの IP アドレスが 198.51.100.27 である。 • NAT インスタンスの Elastic IP アドレスが 203.0.113.73 である。 • NAT インスタンスのセキュリティグループが sg-ce56b7a9 である。 次の手順で NAT インスタンスの作成を終了すると、以下のようになります。 • NAT インスタンスで IP 転送が有効になります。これを確認するために、次のコマンドを使用できま す。 cat /proc/sys/net/ipv4/ip_forward • マスカレードが有効になります。マスカレードを有効にするには、次のコマンドを使用できます。 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE NAT インスタンスを使用して ElastiCache リソースに接続するには 1. キャッシュクラスターと同じ VPC 内のパブリックサブネット内に NAT インスタンスを作成します。 API Version 2015-02-02 374 Amazon ElastiCache ユーザーガイド AWS 外部から ElastiCache リソースにアクセスする方法 デフォルトでは、VPC ウィザードが cache.m1.small ノードタイプを起動します。必要に応じてノー ドサイズを選択する必要があります。 NAT インスタンスの作成については、『AWS VPC User Guide』の「NAT インスタンス」を参照して ください。 2. キャッシュクラスターと NAT インスタンスのセキュリティグループルールを作成します。 NAT インスタンスのセキュリティグループには以下のルールが必要です。 • 2 つのインバウンドルール • 信頼済みクライアントから、NAT インスタンスから転送された各キャッシュポート (11211 11213) への TCP 接続を許可するルール。 • 信頼済みクライアントへの SSH アクセスを許可するルール。 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 API Version 2015-02-02 375 Amazon ElastiCache ユーザーガイド 以下の資料も参照してください。 ポート番号は、クラスターのノードごとに一意である必要があります。たとえば、ポート 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 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 376 Amazon ElastiCache ユーザーガイド 使用状況、イベント、コストのモニ タリング クラスターの動作状況、リソースの使用状況、生成されたイベント、およびデプロイのコストを知るこ とは、エンタープライズキャッシュソリューションの管理における重要な要因です。CloudWatch は、 キャッシュパフォーマンスをモニタリングするためのメトリクスを提供します。コスト配分タグは、コス トのモニタリングと管理に役立ちます。 トピック • CloudWatch メトリクスを使用したモニタリング (p. 378) • ElastiCache イベントのモニタリング (p. 388) • コスト配分のタグによるコストのモニタリング (p. 399) API Version 2015-02-02 377 Amazon ElastiCache ユーザーガイド 使用状況のモニタリング CloudWatch メトリクスを使用したモニタリング ElastiCache には、クラスターを監視できるようにするメトリクスが用意されています。CloudWatch を通 じてこれらのメトリクスにアクセスできます。CloudWatch の詳細については、CloudWatch のドキュメン トを参照してください。 ElastiCache では、ホストレベルのメトリクス (たとえば、CPU 使用率など) とキャッシュエンジンソフト ウェアに固有のメトリクス (たとえば、キャッシュの取得やキャッシュの損失など) の両方が提供されま す。これらのメトリクスは 60 秒間隔で各キャッシュノードに対して測定およびパブリッシュされます。 Important キャッシュクラスターのパフォーマンスが低下し始めた場合に通知を受け取ることができるよう に、特定の主要メトリクスに CloudWatch アラームを設定することを検討してください。詳細に ついては、「モニタリングすべきメトリクス (p. 384)」を参照してください。 トピック • ElastiCache メトリクスのディメンション (p. 378) • ホストレベルのメトリクス (p. 378) • Memcached のメトリクス (p. 379) • Redis のメトリクス (p. 381) • モニタリングすべきメトリクス (p. 384) • メトリクスの統計と期間の選択 (p. 385) • Monitoring CloudWatch Cache Cluster and Cache Node Metrics (p. 385) ElastiCache メトリクスのディメンション すべての ElastiCache メトリクスは "AWS/ElastiCache" 名前空間を使用し、CacheNodeId という 1 つ のディメンションに関するメトリクスを提供します。このディメンションは、キャッシュクラスター の各キャッシュノードに対して自動的に生成される識別子です。キャッシュノードに対するこれら の値を確認するには、DescribeCacheClusters API または elasticache-describe-cache-clusters コマ ンドラインユーティリティを使用します。詳細については、Amazon ElastiCache API Referenceの 「DescribeCacheClusters」および AWS Command Line Interface Referenceの「 describe-cacheclusters」を参照してください。 メトリクスはそれぞれ 1 組のディメンションの下でパブリッシュされます。メトリクスを取得するとき は、CacheClusterId と CacheNodeId の両方のディメンションを指定する必要があります。 トピック • ホストレベルのメトリクス (p. 378) • Memcached のメトリクス (p. 379) • Redis のメトリクス (p. 381) • モニタリングすべきメトリクス ホストレベルのメトリクス 次の表は、ElastiCache が各キャッシュノードに対して提供するホストレベルのメトリクスを示します。 以下の資料も参照してください。 • Memcached のメトリクス (p. 379) • Redis のメトリクス (p. 381) API Version 2015-02-02 378 Amazon ElastiCache ユーザーガイド Memcached のメトリクス メトリクス 説明 単位 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. 378) メトリクス 説明 単位 BytesReadIntoMemcached キャッシュノードによってネットワークから読み 取られたバイト数。 Bytes BytesUsedForCacheItems キャッシュ項目の格納に使用したバイト数。 Bytes BytesWrittenOutFromMemcached キャッシュノードによってネットワークに書き込 まれたバイト数。 Bytes キャッシュが受信したが、その Cas (チェックと設 定) 値と格納されている Cas 値が一致しない CAS リクエストの数。 カウント CasHits キャッシュが受信し、リクエストされたキーが見 つかって Cas 値が一致した Cas リクエストの数。 カウント CasMisses キャッシュが受信したが、リクエストされたキー が見つからない Cas リクエストの数。 カウント CmdFlush キャッシュが受信した flush コマンドの数。 カウント CmdGet キャッシュが受信した get コマンドの数。 カウント CmdSet キャッシュが受信した set コマンドの数。 カウント CurrConnections 特定の時点でキャッシュに接続された接続回数。 カウント CurrItems キャッシュに現在格納されている項目の数。 カウント DecrHits キャッシュが受信し、リクエストされたキーが見 つかったデクリメントリクエストの数。 カウント CasBadval API Version 2015-02-02 379 Amazon ElastiCache ユーザーガイド Memcached のメトリクス メトリクス 説明 単位 キャッシュが受信したが、リクエストされたキー が見つからなかったデクリメントリクエストの 数。 カウント DeleteHits キャッシュが受信し、リクエストされたキーが見 つかった削除リクエストの数。 カウント DeleteMisses キャッシュが受信したが、リクエストされたキー が見つからなかった削除リクエストの数。 カウント 新しく書き込むための領域を確保するために キャッシュが排除した、期限切れではない項目の 数。 カウント GetHits キャッシュが受信し、リクエストされたキーが見 つかった get リクエストの数。 カウント GetMisses キャッシュが受信したが、リクエストされたキー が見つからなかった get リクエストの数。 カウント IncrHits キャッシュが受信し、リクエストされたキーが見 つかったインクリメントリクエストの数。 カウント キャッシュが受信したが、リクエストされたキー が見つからなかったインクリメントリクエストの 数。 カウント 新しく書き込むための領域を確保するために キャッシュが排除した、期限切れ項目の数。 カウント DecrMisses Evictions IncrMisses Reclaimed Memcached 1.4.14 では、次のメトリクスが追加で提供されます。 メトリクス 説明 単位 BytesUsedForHash ハッシュテーブルで現在使用されているバイト 数。 Bytes CmdConfigGet config get リクエストの累積数。 カウント CmdConfigSet config set リクエストの累積数。 カウント CmdTouch touch リクエストの累積数。 カウント CurrConfig 現在格納されている設定の数。 カウント EvictedUnfetched 設定されてからまったくタッチされていない LRU キャッシュから排除された有効な項目の数。 カウント 設定されてからまったくタッチされていない LRU キャッシュから再生された有効期限切れの項目の 数。 カウント SlabsMoved 移動されたスラブページの合計数。 カウント TouchHits タッチされて新しい有効期限を与えられたキーの 数。 カウント ExpiredUnfetched API Version 2015-02-02 380 Amazon ElastiCache ユーザーガイド Redis のメトリクス メトリクス 説明 単位 TouchMisses タッチされたが見つからなかった項目の数。 カウント 次の表では、算出されたキャッシュレベルのメトリクスについて説明します。 メトリクス NewConnections NewItems UnusedMemory 説明 単位 キャッシュが受信した新しい接続の数。これ は、Memcached total_connections 統計に基 づき、一定期間にわたる total_connections の変更を記録することで算出されます。この値 は、ElastiCache に予約された接続が 1 つあるた め、少なくとも 1 になります。 カウント キャッシュが格納した新しい項目の数。これ は、Memcached total_items 統計に基づき、一定 期間にわたる total_items の変更を記録すること で算出されます。 カウント データに使用されていないメモリの量。この値 は、Memcached 統計の limit_maxbytes と bytes のうち、limit_maxbytes から bytes を引いたもの から派生しています。 Bytes Memcached がデータに加えてオーバーヘッドに もメモリを使用するため、UnusedMemory は追加 データに使用できるメモリ量としてはみなされま せん。未使用メモリがまだ残っている状態でも削 除が発生する場合があります。 詳細については、「Memcached item memory usage」を参照してください。 Redis のメトリクス 次の表は、ElastiCache が提供するメトリクスを示します。ReplicationLag を除き、これらのメトリクス は、Redis info コマンドから算出されます。各メトリクスは、キャッシュノードレベルで算出されます。 Redis info コマンドの詳細は、Redis コマンドのウェブサイトを参照してください。 以下の資料も参照してください。 • ホストレベルのメトリクス (p. 378) メトリクス 説明 単位 BytesUsedForCache Redis によって割り当てられた総バイト数。 Bytes CacheHits 成功したキー検索の数。 カウント CacheMisses 失敗したキー検索の数。 カウント CurrConnections クライアントの接続数 (リードレプリカからの接続 を除く)。 カウント API Version 2015-02-02 381 Amazon ElastiCache ユーザーガイド Redis のメトリクス メトリクス 説明 単位 Evictions maxmemory の制限のため排除されたキーの数。 カウント HyperLogLogBasedCmds HyperLogLog ベースのコマンドの総数。これ は、Redis commandstats 統計に基づき、すべての カウント NewConnections この期間内にサーバーによって受け入れられた接 続の総数。 カウント Reclaimed キーの有効期限切れイベントの総数。 カウント レプリカがアタッチされたプライマリについて は、ReplicationBytes は、プライマリがすべて のレプリカに対して送信するバイト数を報告し ます。このメトリクスは、レプリケーショング ループに対する書き込み負荷を表します。レプ リカおよびスタンドアロンのプライマリについて は、ReplicationBytes は常に 0 です。 Bytes このメトリクスは、リードレプリカとして実行中 のノードにのみ適用できます。レプリカのプライ マリノードからの変更適用の進行状況を秒で表し ます。 Seconds このバイナリメトリクスは、バックグラウンド保 存 (分岐または分岐なし) が進行中の場合は常に 1 を返し、それ以外の場合は 0 を返します。バッ クグラウンド保存プロセスは一般に、スナップ ショットおよび同期の際に使用されます。これら のオペレーションによりパフォーマンスが低下す る可能性があります。 SaveInProgress メトリク スを使用して、パフォーマンスが低下した原因が バックグラウンド保存プロセスであるかどうかを 診断できます。 カウント pf 方のコマンド (pfadd、pfcount、pfmerge) を合計 することで算出されます。 ReplicationBytes ReplicationLag SaveInProgress これらは特定の種類のコマンドの集計で、info commandstats から算出されています。 メトリクス CurrItems GetTypeCmds HashBasedCmds KeyBasedCmds 説明 単位 クラスターの項目の数。これは、Redis keyspace 統計に基づき、キー空間全体のすべてのキーを合 計することで算出されます。 カウント get の種類のコマンドの総数。これは、Redis commandstats 統計に基づき、get 型のすべてのコ マンド (get、mget、hget など) を合計することで 算出されます。 カウント ハッシュベースのコマンドの総数。これは、Redis commandstats 統計に基づき、1 つ以上のハッシュ に対して実行されるすべてのコマンドを合計する ことで算出されます。 カウント キーベースのコマンドの総数。これは、Redis commandstats 統計に基づき、1 つ以上のキーに対 カウント API Version 2015-02-02 382 Amazon ElastiCache ユーザーガイド Redis のメトリクス メトリクス 説明 単位 して実行されるすべてのコマンドを合計すること で算出されます。 ListBasedCmds SetBasedCmds SetTypeCmds SortedSetBasedCmds StringBasedCmds リストベースのコマンドの総数。これは、Redis commandstats 統計に基づき、1 つ以上のリストに 対して実行されるすべてのコマンドを合計するこ とで算出されます。 カウント セットベースのコマンドの総数。これは、Redis commandstats 統計に基づき、1 つ以上のセットに 対して実行されるすべてのコマンドを合計するこ とで算出されます。 カウント set の種類のコマンドの総数。これは、Redis commandstats 統計に基づき、set 型のすべてのコ マンド (set、hset など) を合計することで算出され ます。 カウント ソートされたセットベースのコマンドの総数。こ れは、Redis commandstats 統計に基づき、1 つ以 上のソートされたセットに対して実行されるすべ てのコマンドを合計することで算出されます。 カウント 文字列ベースのコマンドの総数。これは、Redis commandstats 統計に基づき、1 つ以上の文字列に 対して実行されるすべてのコマンドを合計するこ とで算出されます。 カウント API Version 2015-02-02 383 Amazon ElastiCache ユーザーガイド モニタリングすべきメトリクス モニタリングすべきメトリクス 次の CloudWatch メトリクスは、ElastiCache パフォーマンスを把握するのに役立ちます。ほとんどの場 合、パフォーマンスの問題が発生する前に修正作業を行うことができるように、これらのメトリクスに CloudWatch アラームを設定することをお勧めします。 CPUUtilization パーセント単位でレポートされるホストレベルのメトリクスです。詳細については、「ホストレベルのメ トリクス (p. 378)」を参照してください。 • Memcached: Memcached はマルチスレッドのため、このメトリクスは約 90% です。このしきい値を超 えた場合、より大きいキャッシュノードタイプを使用してキャッシュクラスターをスケールするか、さ らにキャッシュノードを追加してスケールアウトしてください。 • Redis: Redis はシングルスレッドのため、しきい値は (90/プロセッサのコア数) で計算されます。たとえ ば、4 個のコアを搭載する cache.m1.xlarge ノードを使用しているとします。この場合、CPUUtilization のしきい値は (90/4)、つまり 22.5% になります。 使用しているキャッシュノードのコア数に基づいて独自のしきい値を決定する必要があります。このし きい値を超えた場合で、主なワークロードが読み込みリクエストから生成されている場合、リードレプ リカを追加してキャッシュクラスターをスケールします。主なワークロードが書き込みリクエストから 生成されている場合、大きいキャッシュインスタンスタイプを使用してスケールアップすることをお勧 めします。 SwapUsage バイト単位でレポートされるホストレベルのメトリクスです。詳細については、「ホストレベルのメトリ クス (p. 378)」を参照してください。 • Memcached: このメトリクスは 50 MB を超えてはなりせん。超えた場合、ConnectionOverhead パラ メーター値を大きくすることをお勧めします。 • Redis: 現時点では、このパラメーターに関する推奨事項はありません。CloudWatch アラームを設定す る必要はありません。 Evictions これは、Memcached キャッシュクラスターと Redis キャッシュクラスターの両方に対して発行される キャッシュエンジンメトリクスです。アプリケーションニーズに基づいてこのメトリクスの独自のアラー ムしきい値を決定することをお勧めします。 • Memcached: 選択したしきい値を超過した場合は、大きいキャッシュノードタイプを使用してキャッ シュクラスターをスケールするか、さらにキャッシュノードを追加してスケールアウトしてください。 • Redis: 指定したしきい値を超過する場合は、さらに上のノードタイプを使用してクラスターを拡張しま す。 CurrConnections これは、Memcached キャッシュクラスターと Redis キャッシュクラスターの両方に対して発行される キャッシュエンジンメトリクスです。アプリケーションニーズに基づいてこのメトリクスの独自のアラー ムしきい値を決定することをお勧めします。 Memcached と Redis のどちらを実行しているかにかかわらず、CurrConnections の値が大きくなった場 合、アプリケーションに問題があることを示している可能性があります。アプリケーション動作を調査し てこの問題を解決する必要があります。 API Version 2015-02-02 384 Amazon ElastiCache ユーザーガイド メトリクスの統計と期間の選択 メトリクスの統計と期間の選択 CloudWatch では、各メトリクスの統計および期間を選択できますが、すべての組み合わせが役に立つと は言えません。たとえば、CPUUtilization の Average、Minimum、および Maximum 統計は役に立ちます が、Sum 統計は役に立ちません。 ElastiCache のすべてのサンプルは、個々のキャッシュノードに対して 60 秒間発行されています。任意の 60 秒間において、キャッシュノードメトリクスに含められるサンプルは 1 つだけです。 キャッシュノードのメトリクスを取得する方法の詳細については、「Monitoring CloudWatch Cache Cluster and Cache Node Metrics (p. 385)」を参照してください。 Monitoring CloudWatch Cache Cluster and Cache Node Metrics ElastiCache と CloudWatch は、多様なメトリクスを収集できるように統合されています。CloudWatch を 使用して、これらのメトリクスをモニタリングできます。 Note 次の例には、コマンドラインツール CloudWatch が必要です。CloudWatch の詳細についてと開 発者ツールのダウンロードについては、CloudWatch 製品ページを参照してください。 次の手順は、CloudWatch を使用して、過去 1 時間のキャッシュクラスターのストレージ領域統計を収集 する方法を示しています。 Note 以下の例で指定されている StartTime 値と EndTime 値は、例示を目的としています。実際の キャッシュノードに適した開始時刻値および終了時刻値で置き換える必要があります。 ElastiCache の制限の詳細については、「AWS サービスの制限」(ElastiCache 用) を参照してください。 Monitoring CloudWatch Cache Cluster and Cache Node Metrics (コンソール) キャッシュクラスターの CPU 使用率統計を収集するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. メトリクスを表示するキャッシュノードを選択します。 Note 20 個を超えるノードを選択すると、コンソールでメトリクスを表示できなくなります。 a. AWS マネジメントコンソールの [Cache Clusters] ページで、1 つ以上のキャッシュクラスターの 名前をクリックします。 キャッシュクラスターの詳細ページが表示されます。 b. ウィンドウ上部にある [Nodes] タブをクリックします。 c. 詳細ウィンドウの [Nodes] タブで、メトリクスを表示するキャッシュノードを選択します。 使用可能な CloudWatch メトリクスのリストがコンソールウィンドウの下部に表示されます。 d. [CPU Utilization] メトリクスをクリックします。 API Version 2015-02-02 385 Amazon ElastiCache ユーザーガイド Monitoring CloudWatch Cache Cluster and Cache Node Metrics CloudWatch コンソールが開き、選択されたメトリクスが表示されます。[Statistic] および [Period] ドロップダウンリストボックスや [Time Range] タブを使用すると、表示されるメトリク スを変更できます。 Monitoring CloudWatch Cache Cluster and Cache Node Metrics CloudWatch CLI の使用 キャッシュクラスターの CPU 使用率統計を収集するには • 以下のパラメータを指定して、CloudWatch コマンド mon-get-stats を使用します (示されている開始 時刻と終了時刻は例です。適切な開始時刻と終了時刻に置き換える必要があります)。 Linux, macOS, 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 • StartTime=2013-07-05T00:00:00 • EndTime=2013-07-06T00:00:00 • Period=60 • MeasureName=CPUUtilization • Dimensions=CacheClusterId=mycachecluster,CacheNodeId=0002 Example API Version 2015-02-02 386 Amazon ElastiCache ユーザーガイド Monitoring CloudWatch Cache Cluster and Cache Node Metrics 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 387 Amazon ElastiCache ユーザーガイド イベントのモニタリング ElastiCache イベントのモニタリング ノード追加の失敗、ノード追加の成功、セキュリティグループの変更などの重要なイベントがクラスター で発生すると、ElastiCache は特定の Amazon SNS トピックに通知を送信します。主要イベントをモニ タリングすることで、クラスターの現在の状態を知り、イベントに基づいて是正措置を取ることができま す。 トピック • ElastiCacheAmazon SNS 通知の管理 (p. 388) • Viewing ElastiCache Events (p. 392) • イベント通知と Amazon SNS (p. 393) 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 トピックの追加 ((コンソール)) 以下の手順は、クラスターの Amazon SNS トピックを追加する方法を示しています。レプリケーショング ループの Amazon SNS トピックを追加するには、ステップ 2 で、クラスターを選択する代わりにレプリ ケーショングループを選択して同じ操作を行います。 Note このプロセスは、Amazon SNS トピックの変更に使用できます。 クラスターの Amazon SNS トピックを追加または変更するには ((コンソール)) 1. 2. 3. 4. 5. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 [Clusters] で、Amazon SNS トピック ARN を追加または変更するクラスターを選択します。 [Modify] を選択します。 In [Modify Cluster] の [Topic for SNS Notification], で、追加する SNS トピックを選択します。また は、[Manual ARN input] を選択して Amazon SNS トピックの ARN を入力します。 [Modify] を選択します。 Amazon SNS トピックの追加 ((AWS CLI)) クラスターの Amazon SNS トピックを追加または変更するには、AWS CLI コマンド modify-cachecluster を使用します。レプリケーショングループの Amazon SNS トピックを追加または変更するに は、AWS CLI コマンド modify-replication-group を使用します。 API Version 2015-02-02 388 Amazon ElastiCache ユーザーガイド ElastiCacheAmazon SNS 通知の管理 次のコード例では、Amazon SNS トピック ARN を my-cluster に追加します。 Linux, macOS, or Unix 用: aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --notification-topic-arn arn:aws:sns:us-west-2:565419523791:ElastiCacheNotifications Windows の場合: aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --notification-topic-arn arn:aws:sns:us-west-2:565419523791:ElastiCacheNotifications 詳細については、「modify-cache-cluster」および「modify-replication-group」を参照してください。 Amazon SNS トピックの追加 ((ElastiCache API)) クラスターの Amazon SNS トピックを追加または変更するには、以下のパラメーターを指定して ModifyCacheCluster アクションを呼び出します。 • CacheClusterId=my-cluster • TopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications レプリケーショングループの Amazon SNS トピックを追加または変更するに は、ModifyReplicationGroup アクションを呼び出します。 Example https://elasticache.amazon.com/ ?Action=ModifyCacheCluster &ApplyImmediately=false &CacheClusterId=my-cluster &NotificationTopicArn=arn%3Aaws%3Asns%3Auswest-2%3A565419523791%3AElastiCacheNotifications &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 マネジメントコンソール を使用して Amazon SNS 通知を無効にするには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 API Version 2015-02-02 389 Amazon ElastiCache ユーザーガイド ElastiCacheAmazon SNS 通知の管理 2. 通知を変更するクラスターで実行されているエンジンとして、[Memcached] または [Redis] を選択し ます。 4. 選択したエンジンを実行しているクラスターが一覧表示されます。 [Memcached] または [Redis] の一覧で、通知を変更するクラスターの左側にあるボックスを選択しま す。 [Modify] を選択します。 5. In [Modify Cluster] の [Topic for SNS Notification], で、[Disable Notifications] を選択します。 6. [Modify] を選択します。 3. Amazon SNS 通知の有効化と無効化 ((AWS CLI)) Amazon SNS 通知を無効にするには、以下のパラメーターを指定して modify-cache-cluster コマンドを 使用します。 Linux, macOS, or Unix 用: aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --notification-topic-status inactive Windows の場合: aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --notification-topic-status inactive このコマンドでは、以下のような出力が生成されます。 CACHECLUSTER my-cluster 2013-07-26T01:21:46.607Z cache.m1.large memcached 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-cluster • NotificationTopicStatus=inactive この呼び出しにより、以下のような出力が返されます。 Example https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &ApplyImmediately=false &CacheClusterId=my-cluster &NotificationTopicStatus=inactive &Version=2014-12-01 &SignatureVersion=4 API Version 2015-02-02 390 Amazon ElastiCache ユーザーガイド ElastiCacheAmazon SNS 通知の管理 &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 391 Amazon ElastiCache ユーザーガイド Viewing ElastiCache Events Viewing ElastiCache Events ElastiCache は、クラスターのインスタンス、セキュリティグループ、パラメータグループに関連するイ ベントを記録します。この情報には、イベントの日付と時刻、イベントのソース名とソースタイプ、イ ベントの説明などがあります。ElastiCache コンソール、AWS CLI describe-events コマンド、または ElastiCache API アクション DescribeEvents を使用して、ログから簡単にイベントを取得できます。 次の手順は、過去 24 時間 (1440 分) のすべての ElastiCache イベントを表示する方法を示しています。 Viewing ElastiCache Events (コンソール) 次の手順は、ElastiCache コンソールを使用してイベントを表示します。 ElastiCache コンソールを使用してイベント表示するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. 左のナビゲーションペインで、[Events] を選択します。 [ 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 個の最新のキャッシュクラスターイベントを一覧します。 https://elasticache.us-west-2.amazonaws.com/ API Version 2015-02-02 392 Amazon ElastiCache ユーザーガイド イベント通知と Amazon SNS ?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-02-02/"> <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 ElastiCache は、キャッシュクラスターで重要なイベントが発生したときに Amazon Simple Notification Service (SNS) を使用してメッセージを発行できます。この機能を使用すると、キャッシュクラスターの 個々のキャッシュノードエンドポイントに接続されたクライアントコンピュータでサーバーリストを更新 できます。 Note 料金情報や Amazon SNS ドキュメントへのリンクなど、Amazon Simple Notification Service (SNS) の詳細については、Amazon SNS 製品ページを参照してください。 通知は、指定した Amazon SNS トピックに発行されます。通知の要件は以下のとおりです: • ElastiCache 通知に対して設定できるトピックは 1 つだけです。 API Version 2015-02-02 393 Amazon ElastiCache ユーザーガイド イベント通知と Amazon SNS • Amazon SNS トピックを所有する AWS アカウントは、通知が有効になっているキャッシュクラスター を所有するアカウントと同じアカウントである必要があります。 ElastiCache SNS 通知の例 以下の例では、キャッシュクラスターが正常に作成された場合の ElastiCache Amazon SNS 通知を示して います。 Example { "Date": "2015-12-05T01:02:18.336Z", "Message": "Cache cluster created", "SourceIdentifier": "memcache-ni", "SourceType": "cache-cluster" } ElastiCache イベント 以下の ElastiCache イベントにより Amazon SNS 通知がトリガーされます。 イベント名 メッセージ ElastiCache:AddCacheNodeComplete "Finished modifying number of nodes from %d to %d" ElastiCache:AddCacheNodeFailed "Failed to modify number (使用できる IP アドレスが不足し of nodes from %d to %d due ているため) to insufficient free IP 説明 キャッシュノードがキャッシュ クラスターに追加され、使用可 能になっています。 使用できる IP アドレスが不足し ているため、キャッシュノード を追加できませんでした。 addresses" ElastiCache:CacheClusterParametersChanged "Updated parameter %s to %s" 作成の場合は、"Updated to use a CacheParameterGroup %s" も 送ります。 1 つ以上のキャッシュクラスター パラメータが変更されました。 ElastiCache:CacheClusterProvisioningComplete "Cache cluster created" キャッシュクラスターのプロビ ジョニングが完了し、キャッ シュクラスター内のキャッシュ ノードが使用可能になりまし た。 ElastiCache:CacheClusterProvisioningFailed "Failed to create the cache (ネットワーク状態に互換性がな cluster due to incompatible いため) network state" 存在しない Virtual Private Cloud (VPC) に新しいキャッシュクラ スターに起動する試みが行われ ました。 ElastiCache:CacheClusterRestoreFailed "Restore from %s failed for ElastiCache が、キャッシュクラ スターに Redis スナップショッ トデータを入力できませんで した。これは、Amazon S3 に スナップショットファイルが 存在しないか、そのファイルに 対するアクセス許可が間違って いることが原因の可能性があり node %s" API Version 2015-02-02 394 Amazon ElastiCache ユーザーガイド イベント通知と Amazon SNS イベント名 メッセージ 説明 ます。キャッシュクラスターを 記述する場合、ステータスは restore-failed です。キャッ シュクラスターを削除してやり 直す必要があります。 詳細については、「Using a Backup to Seed a Cluster (p. 271)」を参照してくだ さい。 ElastiCache: CacheClusterScalingComplete ElastiCache: CacheClusterScalingFailed "Succeeded applying modification to cache node type to %s." "Failed applying modification to cache node type to %s." ElastiCache:CacheClusterSecurityGroupModified "Applied change to security group" : キャッシュクラスターのスケー ルアップが正常に完了しまし た。 キャッシュクラスターのスケー ルアップが失敗しました。 以下のいずれかのイベントが発 生しました。 • キャッシュクラスターに承認 されたキャッシュセキュリ ティグループのリストが修正 されました。 • 1 つ以上の新しい EC2 セキュ リティグループが、キャッ シュクラスターに関連付けら れたキャッシュセキュリティ グループで承認されました。 • 1 つ以上の EC2 セキュリティ グループが、キャッシュク ラスターに関連付けられた キャッシュセキュリティグ ループから取り消されまし た。 API Version 2015-02-02 395 Amazon ElastiCache ユーザーガイド イベント通知と Amazon SNS イベント名 メッセージ ElastiCache:CacheNodeReplaceComplete "Finished recovery for cache nodes %s" 説明 ElastiCache が、キャッシュノー ドを実行しているホストのパ フォーマンスが低下している か、到達できないことを検出し たため、キャッシュノードの置 き換えを完了しました。 Note 置き換えられたキャッ シュノードの DNS エン トリは変更されません。 ほとんどのインスタンスでは、 このイベントが発生したとき にクライアントのサーバーリ ストを更新する必要はありま せん。ただし、一部のキャッ シュクライアントライブラリ は、ElastiCache がキャッシュ ノードを置き換えた後でも キャッシュノードの使用を停 止する可能性があります。この 場合、このイベントが発生した とき、アプリケーションがサー バーリストを更新する必要があ ります。 ElastiCache:CacheNodesRebooted "Cache node %s restarted" 1 つ以上のキャッシュノードが再 起動されました。 メッセージ (Memcached) : "Cache node %s shutdown" 2 番 目のメッセージ: "Cache node %s restarted" ElastiCache: "Replication group %s CreateReplicationGroupComplete 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: FailoverComplete レプリカノードへのフェイル オーバーが成功しました。 "Failover to replica node %s completed" API Version 2015-02-02 396 Amazon ElastiCache ユーザーガイド イベント通知と Amazon SNS イベント名 メッセージ 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 "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"" ElastiCache:NodeReplacementScheduled "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" 説明 置き換え対象となっていたクラ スター内のノードが置き換え対 象ではなくなりました。 以前置き換え対象になったクラ スター内のノードのスケジュー ルが、通知に記載されている新 しい期間に変更されました。 実行可能なアクションについて は、「ノードが置き換え対象 となった場合に実行可能なアク ション (p. 98)」を参照してくだ さい。 クラスター内のノードが、通知 に記載されている期間中の置き 換え対象となりました。 実行可能なアクションについて は、「ノードが置き換え対象 となった場合に実行可能なアク ション (p. 98)」を参照してくだ さい。 ElastiCache:RemoveCacheNodeComplete "Removed cache nodes %s" キャッシュノードがキャッシュ クラスターから削除されまし た。 ElastiCache: "Succeeded applying ReplicationGroupScalingComplete modification to cache node レプリケーショングループのス ケールアップオペレーションが 正常に完了しました。 type to %s." ElastiCache: ReplicationGroupScalingFailed ElastiCache:SnapshotComplete ElastiCache:SnapshotFailed "Failed applying modification to cache node type to %s." "Snapshot succeeded for snapshot with ID '%s' of cache cluster with ID '%s'" "Snapshot failed for snapshot with ID '%s' of cache cluster with ID '%s'" レプリケーショングループのス ケールアップが失敗しました。 キャッシュスナップショットの 作成が正常に完了しました。 キャッシュスナップショットの 作成に失敗しました。詳細な 原因については、クラスターの キャッシュイベントを参照して ください。 スナップショットを表示する場 合は、「DescribeSnapshots」を 参照してください。ステータス は failed です。 API Version 2015-02-02 397 Amazon ElastiCache ユーザーガイド イベント通知と Amazon SNS ElastiCache イベントの表示方法については、「Viewing ElastiCache Events (p. 392)」を参照してくださ い。 API Version 2015-02-02 398 Amazon ElastiCache ユーザーガイド タグによるコストのモニタリング コスト配分のタグによるコストのモニタリング Amazon ElastiCache でリソースにコスト配分タグを追加する場合、リソースのタグ値に基づいて請求書の 費用をグループ化してコストを追跡できます。 ElastiCache コスト配分タグは、ElastiCache リソースを定義してそのリソースに関連付けるキーと値のペ アです。キーと値は大文字と小文字が区別されます。タグキーを使用してカテゴリを定義し、タグ値をそ のカテゴリの項目にすることができます。たとえば、「CostCenter」というタグキーと「10010」という タグ値を定義して、リソースがコストセンター 10010 に割り当てられていることを示すことができます。 また、Environment などのキーと、test や production などの値を使用して、リソースがテスト用なの か本稼働用なのかを示すこともできます。リソースに関連付けられているコストの追跡が簡単になるよう に、一貫した一連のタグキーを使用することをお勧めします。 コスト配分タグを使用して AWS 請求書を整理し、自分のコスト構造を反映します。そのためには、AWS アカウントにサインアップして、タグキー値が含まれた AWS アカウントの請求書を取得する必要があり ます。 次に、結合したリソースのコストを見るには、同じタグキー値のリソースに従って請求書情報を整 理します。たとえば、複数のリソースに特定のアプリケーション名のタグを付け、請求情報を整理するこ とで、複数のサービスを利用しているアプリケーションの合計コストを確認することができます。 タグを組み合わせてさらに細かくコストを追跡することもできます。たとえば、リージョンごとのサービ スのコストを追跡するために、Service と Region というタグキーを使用できます。1 つのリソースでは 値を ElastiCache と ######### (######) にし、別のリソースでは値を ElastiCache と ## (#######) にします。これによって、ElastiCache の合計コストをリージョン毎に表示できます。詳細については、 『AWS Billing and Cost Management ユーザーガイド』の「コスト配分タグの使用」を参照してくださ い。 ElastiCache のコスト配分タグは、Memcached クラスター、Redis ノード、バックアップに追加できま す。タグの追加やリスト、変更、削除を行った場合、そのオペレーションは、指定したクラスター、ノー ド、またはバックアップにのみ適用されます。 バックアップに追加されたタグは、コスト配分レポートには使用されません。バックアップのタグは、ク ラスターのタグを保持または復元するために使用されます。バックアップを作成すると、クラスターにあ るタグはバックアップにコピーされます。バックアップから復元すると、バックアップにあるタグがクラ スターにコピーされます。 ElastiCache コスト配分タグの特徴 • コスト配分タグは、ARN として CLI および API オペレーションで指定された ElastiCache リソースに適 用されます。リソースタイプは、「クラスター」または「スナップショット」です。 サンプル ARN: arn:aws:elasticache:<region>:<customer-id>:<resource-type>:<resource-name> • Memcached: タグはクラスターに適用されます。 サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:mymemcached • Redis: タグは個々のノードに適用されます。このため、タグは、レプリケーションを持つ Redis クラ スター内のノードに別々に適用できます。 サンプル arn • Redis (クラスターモードが無効) レプリケーションなし: サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis • Redis (クラスターモードが無効) レプリケーションあり: サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis-001 • Redis (クラスターモードが有効): サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis-0001-001 API Version 2015-02-02 399 Amazon ElastiCache ユーザーガイド コンソールを使用したタグの管理 • バックアップ (Redis): タグは、バックアップに適用されます。 サンプル arn: arn:aws:elasticache:us-west-2:1234567890:snapshot:myredisbackup • タグキーは、必須のタグ名です。キーの文字列値は、長さが 1~128 文字の Unicode 文字です。aws: を プレフィックスとして使用することはできません。文字列には、一連の Unicode 文字、数字、空白、下 線 ( _ )、ピリオド ( . )、コロン ( : )、バックスラッシュ ( \ )、等号 ( = )、符号 ( + )、ハイフン ( - ) または 記号 ( @ ) のみ含むことができます。 • タグ値は、オプションのタグの値です。値の文字列値は、長さが 1~256 文字の Unicode 文字で す。aws: をプレフィックスとして使用することはできません。文字列には、一連の Unicode 文字、数 字、空白、下線 ( _ )、ピリオド ( . )、コロン ( : )、バックスラッシュ ( \ )、等号 ( = )、符号 ( + )、ハイフ ン ( - ) または記号 ( @ ) のみ含むことができます。 • タグは、クラスター (Memcached)、ノード (Redis)、またはバックアップ (Redis) といった ElastiCache リソースに適用できます。 • ElastiCache リソースには、最大 10 個のタグを設定できます。 • 値はタグセット内で一意である必要はありません。たとえば、タグセット内に Service と Application というキーがあり、両方の値として ElastiCache を指定できます。 AWS は、タグに意味論的意味を適用しません。タグは文字列として厳密に解釈されます。AWS によっ て、どの ElastiCache リソースのタグも自動的には設定されません。 ElastiCache 管理コンソール、AWS CLI、ElastiCache API を使用して、ElastiCache リソースのタグを追 加、リスト表示、変更、または削除することができます。 トピック • ElastiCache コンソールを使用したタグの管理 (p. 400) • AWS CLI を使用したコスト配分タグの管理 (p. 404) • ElastiCache API を使用したコスト配分タグの管理 (p. 407) • Copying Tags to Your ElastiCache Resource (p. 409) ElastiCache コンソールを使用したタグの管理 Amazon ElastiCache コンソールを使用して、コスト配分タグを追加、変更、または削除できます。 トピック • Memcached クラスター (コンソール) のタグ管理 (p. 401) • Redis (クラスターモードが無効) クラスター (コンソール) のタグ管理 (p. 401) • Redis (クラスターモードが有効) クラスター (コンソール) のタグ管理 (p. 402) • バックアップ (コンソール) のタグ管理 (p. 403) API Version 2015-02-02 400 Amazon ElastiCache ユーザーガイド コンソールを使用したタグの管理 Memcached クラスター (コンソール) のタグ管理 以下の手順では、ElastiCache 管理コンソールを用いて、Memcached クラスターのコスト配分タグを 1 つ 以上表示、追加、変更、削除する方法について説明します。 ElastiCache 管理コンソールを使用して、Memcached クラスターのタグを追加、変更、削除する には 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. [Memcached] を選択します。 3. タグを追加するクラスターの名前の左にあるチェックボックスをオンにします。 クラスターを選択すると、詳細エリアの下部にこのリソースの現在のタグ名と値が表示されます。 4. [タグの管理] を選択後、タグを管理するダイアログボックスを選択します。 5. 各タグの追加、変更、削除を行う場合: タグを追加、変更または追加するには • タグを追加するには: [キー] 列の キーの追加と表示されているテキストボックスにキー名、キー名 の右側にあるテキストボックスに任意の値を入力します。 • タグを変更するには: [値] 列に新しい値を入力するか、タグの既存の値を削除します。 • タグを削除するには: タグの右側にある [X] を選択します。 6. 完了したら、[変更の適用] を選択します。 Redis (クラスターモードが無効) クラスター (コンソール) のタグ 管理 以下の手順では、ElastiCache 管理コンソールを用いて、Redis (クラスターモードが無効) クラスターの ノードのコスト配分タグを 1 つ以上表示、追加、変更、削除する方法について説明します。 API Version 2015-02-02 401 Amazon ElastiCache ユーザーガイド コンソールを使用したタグの管理 ElastiCache 管理コンソールを用いて Redis (クラスターモードが無効) ノードのタグを追加、変 更、削除するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. [Redis] を選択します。 3. タグを追加、変更、削除するクラスターの名前を選択します。 クラスターを選択すると、詳細エリアの下部にこのリソースの現在のタグ名と値が表示されます。 4. クラスターの各ノードのタグを表示、追加、削除するには、以下の作業を行います。 a. ノードの名前の左側にあるチェックボックスをオンにします。これにより、[タグの管理] ボタン が有効になります。 b. [タグの管理] を選択後、タグを管理するダイアログボックスを選択します。 c. 各タグの追加、変更、削除を行う場合: ノードのタグを追加、変更、削除するには • タグを追加するには: [キー] 列のキーの追加と表示されているテキストボックスにキー名、キー 名の右側にあるテキストボックスに任意の値を入力します。 • タグを変更するには: [値] 列に新しい値を入力するか、タグの既存の値を削除します。 • タグを削除するには: タグの右側にある [X] を選択します。 d. 完了したら、[変更の適用] を選択します。 Redis (クラスターモードが有効) クラスター (コンソール) のタグ 管理 以下の手順では、ElastiCache 管理コンソールを用いて、Redis (クラスターモードが有効) クラスター内の ノードのコスト配分タグを 1 つ以上表示、追加、変更、削除する方法について説明します。 API Version 2015-02-02 402 Amazon ElastiCache ユーザーガイド コンソールを使用したタグの管理 ElastiCache 管理コンソールを使用して Redis (クラスターモードが有効) ノードを追加するには 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. [Redis] を選択します。 3. タグを追加するクラスターの名前を指定します。クラスターのシャードのリストが表示されます。 4. クラスターの各シャードのタグを表示、追加、削除するには、以下の作業を行います。 a. タグを表示、追加、削除するノードを含むシャードの名前を選択します。 b. シャードの各ノードのタグを表示、追加、変更、削除するには、以下の作業を行います。 i. ノードの名前の左側にあるチェックボックスをオンにします。これにより、[タグの管理] ボ タンが有効になります。 ii. [タグの管理] を選択後、タグを管理するダイアログボックスを選択します。 iii. 各タグの追加、変更、削除を行う場合: タグを追加、変更または追加するには • タグを追加するには: [キー] 列のキーの追加と表示されているテキストボックスにキー名、 キー名の右側にあるテキストボックスに任意の値を入力します。 • タグを変更するには: [値] 列に新しい値を入力するか、タグの既存の値を削除します。 • タグを削除するには: タグの右側にある [X] を選択します。 iv. 完了したら、[変更の適用] を選択します。 バックアップ (コンソール) のタグ管理 以下の手順では、ElastiCache 管理コンソールを用いて、Redis バックアップのコスト配分タグを 1 つ以上 表示、追加、変更、削除する方法について説明します。 1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https:// console.aws.amazon.com/elasticache/)を開きます。 2. [バックアップ] を選択します。 3. タグを追加するバックアップの名前の左にあるチェックボックスをオンにします。 API Version 2015-02-02 403 Amazon ElastiCache ユーザーガイド AWS CLI を使用したタグの管理 クラスターを選択すると、詳細エリアの下部にこのリソースの現在のタグ名と値が表示されます。 4. [タグの管理] を選択後、タグを管理するダイアログボックスを選択します。 5. 各タグの追加、変更、削除を行う場合: タグを追加、変更または追加するには • タグを追加するには: [キー] 列のキーの追加と表示されているテキストボックスにキー名、キー名の 右側にあるテキストボックスに任意の値を入力します。 • タグを変更するには: [値] 列に新しい値を入力するか、タグの既存の値を削除します。 • タグを削除するには: タグの右側にある [X] を選択します。 6. 完了したら、[変更の適用] を選択します。 AWS CLI を使用したコスト配分タグの管理 AWS CLI を使用して、コスト配分タグを追加、変更、または削除できます。 コスト配分タグは、ElastiCache リソースに適用されます。リソースの内容や ARN の指定方法は、エンジ ンやクラスターの構造によって異なります。 • Memcached: タグはクラスターに適用されます。 サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:mymemcached • Redis: タグは個々のノードに適用されます。このため、タグは、レプリケーションを持つ Redis クラス ター内のノードに別々に適用できます。 サンプル arn • Redis (クラスターモードが無効) レプリケーションなし: サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis • Redis (クラスターモードが無効) レプリケーションあり: サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis-001 • Redis (クラスターモードが有効): API Version 2015-02-02 404 Amazon ElastiCache ユーザーガイド AWS CLI を使用したタグの管理 サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis-0001-001 • バックアップ (Redis): タグは、バックアップに適用されます。 サンプル arn: arn:aws:elasticache:us-west-2:1234567890:snapshot:myredisbackup トピック • AWS CLI を使用したタグのリスト表示 (p. 405) • AWS CLI を使用したタグの追加 (p. 406) • AWS CLI を使用したタグの変更 (p. 406) • AWS CLI を使用したタグの削除 (p. 407) AWS CLI を使用したタグのリスト表示 AWS CLI で list-tags-for-resource オペレーションを行い、既存の ElastiCache リソースのタグをリスト表 示できます。 次のコードは、AWS CLI を使用して、us-west-2 リージョンの Memcached クラスター myCluster のタグ をリスト表示します。 Linux, macOS, 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 このオペレーションの出力は、リソースのすべてのタグを示した次のリストのようになります。 { "TagList": [ { "Value": "10110", "Key": "CostCenter" }, { "Value": "EC2", "Key": "Service" } ] } リソースにタグが見つからない場合は、空の TagList が出力されます。 { "TagList": [] } 詳細については、ElastiCache 用 AWS CLI の「list-tags-for-resource」を参照してください。 API Version 2015-02-02 405 Amazon ElastiCache ユーザーガイド AWS CLI を使用したタグの管理 AWS CLI を使用したタグの追加 AWS CLI で add-tags-to-resource CLI オペレーションを行い、既存の ElastiCache リソースにタグを追 加できます。タグキーがリソースに存在しない場合は、キーと値がリソースに追加されます。キーが既に リソースに存在する場合、キーに関連付けられた値は新しい値に更新されます。 次のコードは、AWS CLI を使用して、us-west-2 リージョンのリソース myCluster に Service と Region というキーを追加し、それぞれの値を elasticache と us-west-2 に設定します。 Linux, macOS, or Unix 用: aws elasticache add-tags-to-resource \ --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:memcluster \ --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:memcluster ^ --tags Key=PM ^ Key=Region,Value=us-west-2 このオペレーションの出力は、次のオペレーションのリソースのすべてのタグを示した以下のリストのよ うになります。 { "TagList": [ { "Value": "10110", "Key": "CostCenter" }, { "Value": "EC2", "Key": "Service" }, { "Value": "", "Key": "PM" }, { "Value": "us-west-2", "Key": "Region" } ] } 詳細については、 ElastiCache 用 AWS CLI の「add-tags-to-resource」を参照してください。 新しいクラスターを作成するときは、create-cache-cluster オペレーション、または新しいレプリケーショ ングループを作成するときは create-replication-group オペレーションを AWS CLI で行い、タグをクラス ターに追加することもできます。ElastiCache マネジメントコンソールでは、リソースの作成時にタグを 追加できないことに注意してください。クラスターやレプリケーショングループを作成した後は、コン ソールを使用してリソースにタグを追加できます。 AWS CLI を使用したタグの変更 AWS CLI を使用して、ElastiCache リソースのタグを変更できます。 API Version 2015-02-02 406 Amazon ElastiCache ユーザーガイド ElastiCache API を使用したタグの管理 タグの値を変更するには: • add-tags-to-resource を使用して、新しいタグを追加するか、既存のタグに関連付けられている値を変更 します。 • remove-tags-from-resource を使用して、リソースから指定したタグを削除します。 どちらのオペレーションでも、指定のリソースのタグとその値を示すリストが出力されます。 AWS CLI を使用したタグの削除 AWS CLI で remove-tags-from-resource オペレーションを行い、既存の ElastiCache リソースからタグを 削除できます。 次のコードでは、AWS CLI を使用して、(Service) と (Region) というキーのタグを us-west-2 リージョン のリソース (myCluster) から削除します。 Linux, macOS, or Unix 用: aws elasticache remove-tags-from-resource \ --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster \ --tag-keys PM Service Windows の場合: aws elasticache remove-tags-from-resource ^ --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster ^ --tag-keys PM Service このオペレーションの出力は、次のオペレーションのリソースのすべてのタグを示した以下のリストのよ うになります。 { "TagList": [ { "Value": "10110", "Key": "CostCenter" }, { "Value": "us-west-2", "Key": "Region" } ] } 詳細については、 ElastiCache 用 AWS CLI の「remove-tags-from-resource」を参照してください。 ElastiCache API を使用したコスト配分タグの管理 ElastiCache API を使用して、コスト配分タグを追加、変更、または削除できます。 コスト配分タグは、ElastiCache リソースに適用されます。リソースの内容や ARN の指定方法は、エンジ ンやクラスターの構造によって異なります。 • Memcached: タグはクラスターに適用されます。 サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:mymemcached API Version 2015-02-02 407 Amazon ElastiCache ユーザーガイド ElastiCache API を使用したタグの管理 • Redis: タグは個々のノードに適用されます。このため、タグは、レプリケーションを持つ Redis クラス ター内のノードに別々に適用できます。 サンプル arn • Redis (クラスターモードが無効) レプリケーションなし: サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis • Redis (クラスターモードが無効) レプリケーションあり: サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis-001 • Redis (クラスターモードが有効): サンプル arn: arn:aws:elasticache:us-west-2:1234567890:cluster:myredis-0001-001 • バックアップ (Redis): タグは、バックアップに適用されます。 サンプル arn: arn:aws:elasticache:us-west-2:1234567890:snapshot:myredisbackup トピック • ElastiCache API を使用したタグのリスト表示 (p. 408) • ElastiCache API を使用したタグの追加 (p. 408) • ElastiCache API を使用したタグの変更 (p. 409) • ElastiCache API を使用したタグの削除 (p. 409) ElastiCache API を使用したタグのリスト表示 ElastiCache API で ListTagsForResource オペレーションを行い、既存のリソースのタグをリスト表示でき ます。 次のコードは、ElastiCache API を使用して、us-west-2 リージョンのリソース myCluster のタグをリスト 表示します。 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 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential> ElastiCache API を使用したタグの追加 ElastiCache API で AddTagsToResource オペレーションを行い、既存の ElastiCache リソースにタグを追 加できます。タグキーがリソースに存在しない場合は、キーと値がリソースに追加されます。キーが既に リソースに存在する場合、キーに関連付けられた値は新しい値に更新されます。 次のコードは、ElastiCache API を使用して、us-west-2 リージョンのリソース myCluster に、Service と Region というキーを追加し、それぞれの値を elasticache と us-west-2 に設定します。 https://elasticache.us-west-2.amazonaws.com/ ?Action=AddTagsToResource &ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:memclusterr &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Tags.member.1.Key=Service API Version 2015-02-02 408 Amazon ElastiCache ユーザーガイド Copying Tags to Your ElastiCache Resource &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> 詳細については、『Amazon ElastiCache API Reference』の「AddTagsToResource」を参照してくださ い。 ElastiCache API を使用したタグの変更 ElastiCache API を使用して、ElastiCache リソースのタグを変更できます。 タグの値を変更するには: • AddTagsToResource オペレーションを行い、新しいタグを追加するか、既存のタグの値を変更しま す。 • RemoveTagsFromResource を行い、リソースからタグを削除します。 どちらのオペレーションでも、指定のリソースのタグとその値を示すリストが出力されます。 RemoveTagsFromResource を行い、リソースからタグを削除します。 ElastiCache API を使用したタグの削除 ElastiCache API で RemoveTagsFromResource オペレーションを行い、既存の ElastiCache リソースから タグを削除できます。 次のコードは、ElastiCache API を使用して、us-west-2 リージョンのリソース myCluster から、Service と Region というキーのタグを削除します。 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> Copying Tags to Your ElastiCache Resource ElastiCache API または AWS AWS CLI を使用して ElastiCache リソースに対して特定のオペレーションを 実行するときに、リソースにタグが存在する場合は、タグがコピーされます。次のリストで、このような オペレーションと実行されるコピーについて説明します。 • CopySnapshotまたはcopy-snapshot – バックアップのコピーを作成するときに、ソースのバックアップ にタグがある場合は、タグもコピー先にコピーされます。 • CreateSnapshotまたはcreate-snapshot – バックアップを作成するときに、ソースクラスターにタグがあ る場合は、タグもバックアップにコピーされます。 • RestoreFromSnapshot または restore-from-snapshot – ElastiCache によって作成されたバックアップか らクラスターを復元するときに、バックアップにタグがある場合は、タグも復元されたクラスターにコ ピーされます。 API Version 2015-02-02 409 Amazon ElastiCache ユーザーガイド Copying Tags to Your ElastiCache Resource • DeleteSnapshotまたはdelete-snapshot – バックアップを削除するときに、バックアップにタグがある場 合は、タグもバックアップとともに削除されます。 • DeleteCluster または delete-cluster – クラスターを削除するときに、クラスターのタグはクラスターと ともに削除されます。ただし、最終バックアップを作成する場合、タグはバックアップにコピーされま す。 API Version 2015-02-02 410 Amazon ElastiCache ユーザーガイド クエリ API の使用 ElastiCache API の使用 このセクションでは、ElastiCache のオペレーションを使用および実装する方法を、メソッドに重点 を置いて説明します。これらのオペレーションの詳細な説明については、「Amazon ElastiCache API Reference」を参照してください。 トピック • クエリ API の使用 (p. 411) • 利用可能なライブラリ (p. 413) • アプリケーションのトラブルシューティング (p. 414) • AWS CloudTrail を使用した Amazon ElastiCache API 呼び出しのログ記録 (p. 415) クエリ API の使用 Query パラメータ HTTP クエリベースのリクエストとは、HTTP 動詞 (GET または POST) とクエリパラメータ Action で記 述する HTTP リクエストです。 各クエリリクエストに、アクションの認証と選択を処理するための一般的なパラメーターがいくつか含ま れている必要があります。 オペレーションの中にはパラメーターのリストを取るものがあります。これらのリストは、param.n 表記 を使用して指定されます。n 値は、1 から始まる整数です。 クエリリクエストの認証 HTTPS 経由でのみリクエストを送信できます。また、各クエリリクエストには署名を含める必要がありま す。このセクションでは、署名を作成する方法について説明します。次に説明する方法は、署名バージョ ン 4 と呼ばれます。 AWS へのリクエストを認証するために使用される基本的なステップを次に示します。この手順で は、AWS に登録されており、アクセスキー ID とシークレットアクセスキーを持っていることを前提とし ています。 API Version 2015-02-02 411 Amazon ElastiCache ユーザーガイド クエリリクエストの認証 クエリ認証プロセス 1. 送信者は、AWS へのリクエストを構築します。 2. このトピックの次のセクションに示すように、送信者は、SHA-1 ハッシュ関数を使用してリクエスト の署名 (ハッシュベースメッセージ認証コード (HMAC) のキー付きハッシュ) を生成します。 3. リクエストの送信者は、リクエストデータ、署名、およびアクセスキー ID (使用するシークレットア クセスキーのキー識別子) を AWS に送信します。 4. AWS ではアクセスキー ID を使用して、シークレットアクセスキーを調べます。 5. AWS では、リクエストの署名を生成する際に使用したものと同じアルゴリズムを使い、リクエスト データとシークレットアクセスキーから署名を生成します。 6. 署名が一致すると、リクエストは認証されたものと見なされます。署名が一致しなかった場合、リク エストの処理は拒否され、AWS はエラーレスポンスを返します。 Note リクエストに Timestamp パラメータが含まれている場合、リクエストに対して生成された署名は パラメータの値の 15 分後に期限が切れます。 リクエストに Expires パラメータが含まれている場合、署名は Expires パラメータで指定された 時刻に期限が切れます。 リクエストの署名を計算するには 1. 2. 本手順で後に必要となる、正規化されたクエリ文字列を作成します。 a. 自然なバイト順のパラメータ名で、UTF-8 のクエリ文字列コンポーネントを並び替えます。パ ラメータは、GET URI または POST ボディから取得される場合があります。(Content-Type が application/x-www-form-urlencoded の場合) b. URL は、以下の規則に応じてパラメータ名と値をエンコードします。 i. RFC 3986 が定義する非予約文字を、URL がエンコードすることはありません。非予約文字 とは、A-Z, a-z, 0-9, ハイフン (-)、アンダーバー (_)、ピリオド (.)、およびチルダ (~) です。 ii. 他のすべての文字についても、%XY (X および Y には HEX 文字の 0-9 および大文字の A-F が入る) によるパーセントエンコードが必要です。 iii. パーセントは、拡張 UTF-8 文字を %XY%ZA.... 形式でエンコードします。 iv. パーセントは、スペース文字を %20 (通常エンコードスキーマが行なうような + ではありま せん) としてエンコードします。 c. パラメータの値が空値の場合でも、エンコードされるパラメータ名とエンコードされる値の間に 等号 (=) (ASCII コード 61) を入れます。 d. それぞれのパラメータ名と値のペアをアンド (&) (ASCII コード 38) で分割します。 文字列を作成し、以下の擬似文法に従って ("\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 を参照してください。 API Version 2015-02-02 412 Amazon ElastiCache ユーザーガイド 利用可能なライブラリ 4. 結果の値を base64 に変換します。 5. その値は、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%2Felasticache%2Faws4_request &X-Amz-Date=20141201T223649Z &X-Amz-SignedHeaders=content-type%3Bhost%3Buser-agent%3Bx-amz-content-sha256%3Bx-amzdate 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 &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20141201/us-west-2/elasticache/aws4_request &X-Amz-Date=20141201T223649Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=2877960fced9040b41b4feaca835fd5cfeb9264f768e6a0236c9143f915ffa56 プロセスへの署名とリクエスト署名の生成の詳細については、トピック「署名バージョン 4 の署名プロセ ス」とそのサブトピックを参照してください。 利用可能なライブラリ AWS では、クエリ API の代わりに言語固有の API を使用してアプリケーションを構築するソフトウェア 開発者向け Software Development Kit (SDK) を提供します。こうした SDK には、リクエスト認証、リク エストの再実行、エラー処理など、 (API には含まれない) 基本的な機能が用意されていて、簡単に開始で きるようになっています。次のプログラミング言語の SDK と追加のリソースがあります。 API Version 2015-02-02 413 Amazon ElastiCache ユーザーガイド アプリケーションのトラブルシューティング • Java • Windows および .NET • PHP • Python • Ruby 他の言語については、「サンプルコードとライブラリ」を参照してください。 アプリケーションのトラブルシューティング ElastiCache では、ElastiCache API とのやり取りで発生する問題をトラブルシューティングする際に役立 つ、具体的でわかりやすいエラーを提供します。 エラーの取得 通常、アプリケーションでは、結果を処理する前にリクエストでエラーが生成されたかどうかを必ず確認 します。エラーが発生したかどうかを確認する最も簡単な方法は、ElastiCache API からのレスポンスで Error ノードを検索することです。 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 にアクセスしてください。 API Version 2015-02-02 414 Amazon ElastiCache ユーザーガイド API 呼び出しのログ作成 https://forums.aws.amazon.com/ . 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』を参照してください。 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 呼び出しの順序付けられたスタックトレースで はありません。 API Version 2015-02-02 415 Amazon ElastiCache ユーザーガイド ElastiCache ログファイルエントリの解読 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", "requestParameters":{ "numCacheNodes":2, "cacheClusterId":"test-memcached", "engine":"memcached", "aZMode":"cross-az", "cacheNodeType":"cache.m1.small" }, "responseElements":{ "engine":"memcached", "clientDownloadLandingPage":"&url-console-domain;elasticache/home#clientdownload:", "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", API Version 2015-02-02 416 Amazon ElastiCache ユーザーガイド ElastiCache ログファイルエントリの解読 "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", "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":"&url-console-domain;elasticache/home#clientdownload:", "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", API Version 2015-02-02 417 Amazon ElastiCache ユーザーガイド ElastiCache ログファイルエントリの解読 "cacheClusterId":"test-memcached", "engineVersion":"1.4.14", "cacheSecurityGroups":[ { "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 418 Amazon ElastiCache ユーザーガイド ElastiCache のチュートリアル 次のチュートリアルでは、Amazon ElastiCache ユーザーにとって興味深いタスクを紹介します。 • チュートリアル: Amazon VPC の Amazon ElastiCache にアクセスする Lambda 関数の設定 API Version 2015-02-02 419 Amazon ElastiCache ユーザーガイド ドキュメント履歴 次の表に、『Amazon ElastiCache ユーザーガイド』の前回のリリース以降に行われたドキュメントの重要 な変更を示します。 • API バージョン: 2015-02-02 • ドキュメントの最新更新日: 2016 年 12 月 20 日 変更 説明 変更日 Memcached 1.4.33 のサポート ElastiCache に Memcached バージョン 1.4.33 のサポート が追加されました。 2016 年 20 月 12 日 詳細については、「Memcached バージョン 1.4.33 (p. 39)」および「Memcached 1.4.33 で追加された パラメータ (p. 302)」を参照してください。 欧州西部 (ロンドン) リージョンのサポー ト ElastiCache に EU (ロンドン) リージョンのサポートが追 加されました。現在、T2 および M4 のノードタイプのみ サポートされています。 2016 年 12 月 13 日 詳細については、「サポートされているリージョンおよび エンドポイント (p. 49)」および「サポートされているノー ドの種類 (p. 96)」を参照してください。 カナダ (モントリ オール) リージョン のサポート ElastiCache にカナダ (モントリオール) リージョンのサ ポートが追加されました。現在、このリージョンでは M4 および T2 のノードタイプのみサポートされています。 2016 年 12 月 8 日 詳細については、「サポートされているリージョンおよび エンドポイント (p. 49)」および「サポートされているノー ドの種類 (p. 96)」を参照してください。 M4 および R3 の ノードタイプのサ ポート ElastiCache に、南米 (サンパウロ) リージョン の R3 およ び M4 のノードタイプと、中国 (北京) リージョン の M4 ノードタイプのサポートが追加されました。 詳細については、「サポートされているリージョンおよび エンドポイント (p. 49)」および「サポートされているノー ドの種類 (p. 96)」を参照してください。 API Version 2015-02-02 420 2016 年 11 月 1 日 Amazon ElastiCache ユーザーガイド 変更 説明 変更日 米国東部 2 (オハイ オ) リージョンのサ ポート ElastiCache で、米国東部 (オハイオ) リージョン (useast-2) と M4、T2、R3 ノードタイプのサポートが追加さ れました。 2016 年 10 月 17 日 詳細については、「サポートされているリージョンおよび エンドポイント (p. 49)」および「サポートされているノー ドの種類 (p. 96)」を参照してください。 Redis クラスターの サポート ElastiCache で、Redis クラスター (拡張) のサポートが追 加されました。Redis クラスターを使用しているお客様 は、最大 15 のシャード (ノードグループ) 間にデータを分 割できます。シャードごとに最大 5 のリードレプリカによ るレプリケーションがサポートされています。Redis クラ スターの自動フェイルオーバー回数は、以前のバージョン に比べて約 1/4 になっています。 2016 年 10 月 12 日 このリリースでは、マネジメントコンソールが再設計さ れ、コンソールでは業界の使用状況に合った用語が使用さ れています。 詳細については、次のトピックを参照してください。 • エンジンとバージョン (p. 34) • ElastiCache コンポーネントと機能 (p. 12) — ノード、 シャード、クラスター、レプリケーションのセクション での注意 • ElastiCache の用語 (p. 10) M4 ノードタイプサ ポート ElastiCache では、ElastiCache によってサポートされる ほとんどのリージョンで、ノードタイプ M4 ファミリーの サポートが追加されました。オンデマンドまたはリザーブ ドキャッシュノードとして M4 ノードタイプを購入できま す。 2016 年 8 月 3 日 詳細については、「サポートされているノードの種 類 (p. 96)」、「Memcached のノードタイプ固有のパラ メータ (p. 312)」、および「Redis のノードタイプ固有の パラメータ (p. 328)」を参照してください。 ムンバイリージョン のサポート ElastiCache は、アジアパシフィック (ムンバイ) リージョ ンのサポートを追加しました。 2016 年 6 月 27 日 詳細については、「サポートされているリージョンおよび エンドポイント (p. 49)」を参照してください。 スナップショットの エクスポート ElastiCache では、Redis スナップショットをエクスポー トする機能が追加されたため、ElastiCache 外部からス ナップショットにアクセスできます。 詳細については、『Amazon ElastiCache ユーザーガ イド』の「バックアップのエクスポート (p. 263)」、 および『Amazon ElastiCache API リファレンス』の 「CopySnapshot」を参照してください。 API Version 2015-02-02 421 2016 年 5 月 26 日 Amazon ElastiCache ユーザーガイド 変更 説明 変更日 ノードタイプのス ケールアップ ElastiCache で、Redis ノードタイプをスケールアップす る機能が追加されました。 2016 年 3 月 24 日 詳細については、「スケーリング (p. 175)」を参照してく ださい。 エンジンの簡単な アップグレード ElastiCache で、Redis キャッシュエンジンを簡単にアッ プグレードする機能が追加されました。 2016 年 3 月 22 日 詳細については、「エンジンバージョンのアップグレー ド (p. 44)」を参照してください。 R3 ノードタイプの サポート ElastiCache で、中国 (北京) および南米 (サンパウロ) リー ジョンでの R3 ノードタイプのサポートが追加されまし た。 2016 年 3 月 16 日 詳細については、「サポートされているノードの種 類 (p. 96)」を参照してください。 Lambda 関数を使用 した ElastiCache へ のアクセス Amazon VPC の ElastiCache にアクセスする Lambda 関 数の設定についてのチュートリアルを追加しました。 Redis 2.8.24 のサ ポート ElastiCache に Redis 2.8.23 以降に実施された改善を含む Redis 2.8.24 バージョンのサポートが追加されました。改 善には、バグ修正および不正なメモリーアクセスのアドレ スのログ記録のサポートが含まれます。 2016 年 2 月 12 日 詳細については、「ElastiCache のチュートリア ル (p. 419)」を参照してください。 2016 年 1 月 20 日 詳細については、Redis バージョン 2.8.24 (拡張) (p. 43)お よび「Redis 2.8 リリースノート」を参照してください。 アジアパシフィック (ソウル) リージョン のサポート ElastiCache に、t2、m3、r3 ノードタイプの アジアパシ フィック (ソウル) (ap-northeast-2) リージョンのサポート が追加されました。 2016 年 1 月 6 日 Amazon ElastiCache 新しいバージョンの Redis ほど、より良く安定したユー 2015 年 12 月 15 日 コンソールを変更し ザーエクスペリエンスを提供しているため、Redis バー ました。 ジョン 2.6.13、2.8.6、2.8.19 は ElastiCache マネジメント コンソールに表示されなくなりました。 他のオプションと詳細については、「Redis バージョンの 比較 (p. 41)」を参照してください。 Redis 2.8.23 のサ ポート。 ElastiCache では、Redis バージョン 2.8.23 がサポートさ れるようになりました。バージョン 2.8.22 以降に追加さ れた機能拡張には、バグ修正と新しいパラメータ closeon-slave-write のサポートが含まれます。このパラメー タを有効にした場合、読み取り専用レプリカに書き込もう とするクライアントの接続は切断されます。 詳細については、「Redis バージョン 2.8.23 (拡張) (p. 43)」を参照してください。 API Version 2015-02-02 422 2015 年 13 月 11 日 Amazon ElastiCache ユーザーガイド 変更 説明 変更日 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. 43)」を参照してくだ さい。 このドキュメントのリリースには、ドキュメントの再構成 と 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. 39)」(『ElastiCache ユーザーガイド』) を参照してください。 Redis 2.8.21 のサ ポート。 PHP 5.6 を使用し た Memcached Auto Discovery のサポー ト。 ElastiCache では、Redis バージョン 2.8.21 とバージョン 2.8.19 以降の改善点が追加されました。この Redis リリー スは複数のバグ修正が行われています。 詳細については、「Redis 2.8 リリースノート」を参照し てください。 Amazon ElastiCache のこのリリースでは、PHP バージョ ン 5.6 用の Memcached Auto Discovery クライアントのサ ポートが追加されました。 詳細については、「PHP 向けの ElastiCache クラスターク ライアントのソースコードのコンパイル (p. 123)」を参照 してください。 API Version 2015-02-02 423 2015 年 7 月 29 日 Amazon ElastiCache ユーザーガイド 変更 説明 変更日 新しいトピック: AWS 外部からの ElastiCache へのア クセス AWS 外部から ElastiCache リソースにアクセスする方法 に関する新しいトピックを追加しました。 2015 年 7 月 9 日 ノード置き換えに関 するメッセージが追 加されました ElastiCache に、置き換え対象のノードに関 2015 年 6 月 11 日 する次の 3 つのメッセージが追加されまし た。ElastiCache:NodeReplacementScheduled、ElastiCache:NodeReplacementRescheduled、 および ElastiCache:NodeReplacementCanceled。 詳細については、ElastiCache の「AWS 外部からの ElastiCache リソースへのアクセス (p. 373)」を参照して ください。 ノードが置き換え対象になった場合の詳細および実行可能 なアクションについては、ElastiCache の「イベント通知 と Amazon SNS (p. 393)」を参照してください。 Redis バージョン 2.8.19 のサポート。 ElastiCache は Redis バージョン 2.8.19 のサポートと、 バージョン 2.8.6 以降の Redis の機能拡張を追加しまし た。これには、次のサポートが含まれています。 2015 年 3 月 11 日 • HyperLogLog データ構造と Redis コマンド PFADD、PFCOUNT、および PFMERGE。 • 辞書式範囲のクエリと新しいコマンド ZRANGEBYLEX、ZLEXCOUNT、および ZREMRANGEBYLEX。 • 多くのバグ修正を導入しました。バックグラウンド保存 (bgsave) の子プロセスが予期せずに終了したときに、マ スター SYNC の障害によりプライマリノードがレプリ カノードに古いデータを送信することを防ぎます。 HyperLogLog の詳細については、「Redis の新し いデータ構造: HyperLogLog」を参照してくださ い。PFADD、PFCOUNT、および PFMERGE の詳細につ いては、Redis のドキュメントに移動し、[HyperLogLog] をクリックしてください。 コスト配分タグのサ ポート ElastiCache にコスト配分タグのサポートが追加されまし た。 2015 年 2 月 9 日 詳細については、「コスト配分のタグによるコストのモニ タリング (p. 399)」を参照してください。 AWS GovCloud (US) リージョンの サポート ElastiCache に、AWS GovCloud (US) (us-gov-west-1) リージョンのサポートが追加されました。 2015 年 1 月 29 日 欧州 (フランクフル ト) リージョンのサ ポート ElastiCache に、欧州 (フランクフルト) (eu-central-1) リー ジョンのサポートが追加されました。 2015 年 1 月 19 日 API Version 2015-02-02 424 Amazon ElastiCache ユーザーガイド 変更 説明 変更日 Redis レプリケー ショングループの自 動フェイルオーバー をサポートするマル チ AZ ElastiCache で、プライマリノードから Redis レプリケー ショングループ内のリードレプリカへの自動フェイル オーバーを備えたマルチ AZ のサポートが追加されまし た。ElastiCache はレプリケーショングループの状態を モニタリングします。プライマリに障害が発生した場 合、ElastiCache は自動的にレプリカをプライマリに昇格 させた後、レプリカを置き換えます。 2014 年 10 月 24 日 詳細については、「レプリケーション: 自動フェイルオー バーとマルチ AZ (Redis) (p. 205)」を参照してください。 AWS CloudTrail に よる API 呼び出しの ログ記録のサポート ElastiCache で AWS CloudTrail を使用したすべての ElastiCache API 呼び出しのログ記録のサポートが追加さ れました。 2014 年 9 月 15 日 詳細については、「AWS CloudTrail を使用した Amazon ElastiCache API 呼び出しのログ記録 (p. 415)」を参照して ください。 サポートされる新し いインスタンスサイ ズ ElastiCache で新しい汎用 (T2) インスタンスのサポートが 追加されました。 Memcached 用の柔 軟なノード配置のサ ポート ElastiCache で、複数のアベイラビリティーゾーンにまた がる Memcached ノードの作成のサポートが追加されまし た。 2014 年 9 月 11 日 詳細については、「パラメータとパラメータグルー プ (p. 286)」を参照してください。 2014 年 7 月 23 日 詳細については、「ステップ 2: クラスターを起動す る (p. 23)」を参照してください。 サポートされる新し いインスタンスサイ ズ ElastiCache は、追加の汎用目的 (M3) インスタンスとメモ 2014 年 7 月 1 日 リ最適化 (R3) インスタンスのサポートを追加しました。 PHP 自動検出 PHP バージョン 5.5 の自動検出のサポートを追加しまし た。 詳細については、「パラメータとパラメータグルー プ (p. 286)」を参照してください。 2014 年 5 月 13 日 詳細については、「ElastiCache Cluster Client for PHP の インストール (p. 117)」を参照してください。 Redis クラスターの バックアップと復元 このリリースでは、ElastiCache によりお客様が Redis ク ラスターのスナップショットを作成し、それらのスナップ ショットを使用して新しいクラスターを作成できます。ス ナップショットは特定の時刻におけるクラスターのバッ クアップコピーであり、クラスターメタデータと Redis キャッシュ内のすべてのデータで構成されます。スナップ ショットは Amazon S3 に格納され、お客様はいつでもス ナップショットから新しいクラスターにデータを復元でき ます。 詳細については、「ElastiCache バックアップと復元 (Redis) (p. 246)」を参照してください。 API Version 2015-02-02 425 2014 年 4 月 24 日 Amazon ElastiCache ユーザーガイド 変更 説明 変更日 Redis 2.8.6 ElastiCache では、Redis 2.8.6 に加えて Redis 2.6.13 が サポートされます。Redis 2.8.6 を使用すると、お客様は 部分再同期のサポートによりリードレプリカの弾力性と耐 障害性を高めることができ、常に使用可能にする必要があ るリードレプリカのユーザー定義の最小数を増やすことが できます。Redis 2.8.6 では、サーバーで発生したイベン トについてクライアントに通知を送信できる publish-andsubscribe が完全にサポートされます。 2014 年 3 月 13 日 Redis キャッシュエ ンジン ElastiCache には、Memcached に加えて Redis キャッ シュエンジンソフトウェアが用意されています。現在 Redis を使用しているお客様は、新しい ElastiCache キャッシュクラスターに Redis スナップショットファイル から既存のデータを初期データ値として投入できるため、 管理対象 ElastiCache 環境への移行が容易になります。 2013 年 9 月 3 日 Redis レプリケーション機能をサポートするた め、ElastiCache API ではレプリケーショングループがサ ポートされるようになりました。お客様は、プライマリ Redis キャッシュノードを含むレプリケーショングループ を作成し、プライマリノードのキャッシュデータと自動的 に同期される 1 つ以上のリードレプリカノードを追加でき ます。読み込み量が多いアプリケーションは、リードレプ リカにオフロードしてプライマリノードの負荷を軽減でき ます。リードレプリカは、プライマリキャッシュノード障 害時のデータ損失から保護することもできます。 デフォルト Amazon Virtual Private Cloud (VPC) のサポート このリリースでは、ElastiCache は Amazon Virtual Private 2013 年 1 月 8 日 Cloud (VPC) と完全に統合されています。初めて使用する 場合、キャッシュクラスターはデフォルトで Amazon VPC に作成されます。 詳細については、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してくださ い。 キャッシュノード 自動検出の PHP サ ポート キャッシュノード自動検出の初期リリースでは、Java プ 2013 年 1 月 2 日 ログラムのサポートが提供されていました。このリリース では、ElastiCache により PHP にキャッシュノード自動検 出のサポートが提供されます。 Amazon Virtual Private Cloud (VPC) のサポート このリリースでは、Amazon Virtual Private Cloud (VPC) で ElastiCache クラスターを起動できます。デフォルトで は、初めて使用する場合のキャッシュクラスターは自動的 Amazon VPC に作成されます。既存のお客様は、自分の ペースで Amazon VPC に移行できます。 詳細については、「Amazon Virtual Private Cloud (Amazon VPC) と ElastiCache (p. 340)」を参照してくださ い。 API Version 2015-02-02 426 2012 年 12 月 20 日 Amazon ElastiCache ユーザーガイド 変更 説明 変更日 キャッシュノード自 動検出および新しい キャッシュエンジン バージョン ElastiCache には、キャッシュノード自動検出が備わって います。これは、クライアントプログラムがクラスター 内のキャッシュノードをすべて特定し、それらのすべての ノードへの接続を開始して維持する機能です。 2012 年 11 月 28 日 このリリースには、新しいキャッシュエンジンバージョン である Memcached バージョン 1.4.14 が用意されていま す。この新しいキャッシュエンジンでは、スラブ再分散 機能の強化、パフォーマンスと拡張性の大幅な向上、複数 のバグ修正が加えられています。設定できる新しいキャッ シュパラメータは複数あります。 詳細については、「パラメータとパラメータグルー プ (p. 286)」を参照してください。 新しいキャッシュ ノードタイプ このリリースには、4 個の追加キャッシュノードタイプが 用意されています。 2012 年 11 月 13 日 リザーブドキャッ シュノード このリリースは、リザーブドキャッシュノードのサポート を追加します。 2012 年 4 月 5 日 新規ガイド これは『Amazon ElastiCache ユーザーガイド』の最初の リリースです。 2011 年 8 月 22 日 API Version 2015-02-02 427 Amazon ElastiCache ユーザーガイド AWS の用語集 最新の AWS の用語については、『AWS General Reference』の「AWS の用語集」を参照してください。 API Version 2015-02-02 428