翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Memcached クラスターのオンデマンドスケーリング
ElastiCache for Memcached は、Memcached をAWSクラウドにデプロイ、運用、垂直スケーリングするフルマネージドのインメモリキャッシュサービスを提供します。
オンデマンドの垂直スケーリング
垂直スケーリングにより、ElastiCache for Memcached は、データベースの負荷を軽減して動的アプリケーションを高速化するために広く使用されている、高性能の分散メモリキャッシュシステムを提供します。データやオブジェクトは RAM に保存されるため、外部データソースから読み取る必要がなくなります。
垂直スケーリングは、既存のノードベースのクラスターにも新しいクラスターにも適用できます。そのため、リソース割り当てに柔軟性が生まれ、ユーザーはクラスターアーキテクチャを変更せずにワークロードの変化に効率的に適応できるようになります。このスケーリング機能では、需要の高い期間にはキャッシュ容量を増やし、需要の低い期間にはスケールダウンしてコストを最適化するため、パフォーマンスが向上します。その結果、オペレーションが簡素化され、リソース要件の変化に合わせて新しいクラスターを作成する必要がなくなり、トラフィックの変動への迅速な対応が可能になります。全体として、ノードベースの Memcached クラスターの垂直スケーリングは、コスト効率とリソース使用率の向上に役立ちます。また、ユーザーが Memcached インスタンスタイプを変更することもできます。こうしたメリットにより、キャッシュインフラストラクチャを実際のアプリケーションのニーズに合わせやすくなります。
注記
ノードタイプの変更は、エンジンバージョンが 1.5 以降のノードベースの Memcached クラスターでのみ行うことができます。
垂直スケーリングを使用するには、自動検出を有効にする必要があります。
ノードベースの Memcached クラスターのオンデマンド垂直スケーリングを設定する
scale-config を使用して、Memcached のオンデマンド垂直スケーリングを設定できます。scale-config には 2 つのパラメータがあります。
ScaleIntervalMinutes: Memcached アップグレードプロセス中のスケーリングバッチ間の時間 (分単位)
ScalePercentage: Memcached アップグレードプロセス中に同時にスケールするノードの割合
CLI を使用して既存の Memcached ノードタイプを垂直スケーリングが可能なキャッシュに変換する
既存のノードベースの Memcached クラスターを垂直スケーリングが可能なキャッシュに変換するには、CLI で elasticache modify-cache-cluster を使用します。
aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config <scale-config> \ --apply-immediately
CLI を使用して垂直スケーリングを設定する
CLI を使用してノードベースの Memcached クラスターの垂直スケーリングを設定するには、elasticache modify-cache-cluster を使用し、scale-config とそのパラメータである ScalePercentage および ScaleIntervalMinutes を指定します。
scale-interval-minutes: スケーリングバッチ間の時間 (分単位) を定義します。この設定の範囲は 2~30 分です。値を指定しない場合、デフォルト値の 5 分が適用されます。
scale-percentage: 各バッチで同時にスケールするノードの割合を指定します。この設定の範囲は 10~100 です。この設定は除算時に切り上げられるため、例えば結果が 49.5 の場合は、50 という設定が適用されます。値を指定しない場合、デフォルト値の 20 が適用されます。
これらの設定オプションを使用すると、特定のニーズに合わせてスケーリングプロセスをファインチューニングし、クラスターの中断の最小化とスケーリング速度の最適化のバランスをとることができます。scale-config パラメータは Memcached エンジンタイプにのみ適用され、他のキャッシュエンジンでは無視されるため、他のクラスターで使用している既存の API との下位互換性が確保されます。
API コール
aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config '{ "ScalePercentage": 30, "ScaleIntervalMinutes": 2 }' --apply-immediately
結果:
クラスター ID と保留中の変更を返します。
{ "CacheCluster": { "CacheNodeType": "old_insance_type", ... ... "PendingModifiedValues": { "CacheNodeType": "new_instance_type" }, } }
Memcached キャッシュの垂直スケーリング設定を一覧表示する
Memcached キャッシュのスケーリングオプションを取得して、垂直スケーリングの現在のオプションを確認できます。
API コール
aws elasticache list-allowed-node-type-modifications --cache-cluster-id <your-cluster-id>
結果:
{ "ScaleUpModifications": [ "cache.x.xxxx", "cache.x.xxxx" ], "ScaleDownModifications": [ "cache.x.xxxx", "cache.x.xxxx", "cache.x.xxxx" ] }
を使用した Memcached の垂直スケーリングAWS マネジメントコンソール
を使用してノードベースの Memcached クラスターを垂直方向にスケーラブルなクラスターAWS マネジメントコンソールに変換するには、次の手順に従います。
にサインインAWS マネジメントコンソールし、https://console.aws.amazon.com/elasticache/
で ElastiCache コンソールを開きます。 変換する Memcached クラスターを選択します。
[変更] タブを選択します。
[キャッシュ設定] セクションに移動し、目的の [ノードタイプ] を選択します。
[変更をプレビュー] を選択し、変更を確認します。
[Modify] を選択します。
Memcached の自動水平スケーリング
ElastiCache はAWS Application Auto Scaling (AAS) サービスと統合され、Memcached クラスターの自動水平スケーリングが含まれるようになりました。AWS Application Auto Scaling サービスを使用してスケーリングポリシーを定義し、事前定義されたメトリクスまたはスケジュールに基づいて、必要に応じて Memcached クラスター内のノード数を自動的に調整できます。
注記
自動水平スケーリングは現在、北京リージョンと寧夏リージョンでは利用できません。
ノードベースのクラスターの自動水平スケーリングに使用できる方法には次のものがあります。
スケジュールされたスケーリング: スケジュールに基づくスケーリングでは、予想可能な負荷の変化に対する独自のスケーリングスケジュールを設定できます。たとえば、毎週、ウェブアプリケーションへのトラフィックが水曜日に増え始め、木曜日は高いままで、金曜日に下がり始めるとします。この場合は、水曜日に容量を増やし、金曜日に減らすように自動スケーリングを設定できます。
ターゲット追跡: ターゲット追跡スケーリングポリシーで、スケーリングメトリクスを選択してターゲット値を設定します。Application Auto Scaling は、スケーリングポリシーをトリガーする CloudWatch アラームを作成および管理し、メトリクスとターゲット値に基づいてスケーリング調整値を計算します。スケーリングポリシーは、指定されたターゲット値、またはそれに近い値にメトリクスを維持するため、必要に応じてキャパシティーを追加または削除します。
CLI を使用してノードベースの Memcached クラスターの水平スケーリングを設定する方法
ノードベースの Memcached クラスターを水平スケーリングする場合は、ターゲット追跡ポリシー、スケジュールされたポリシー、またはその両方を使用できます。
リソースをスケーラブルなターゲットとして登録する
AWS Application Auto Scaling で
RegisterScalableTargetAPI を呼び出して、スケーラブルなディメンション のターゲットを登録しますelasticache:cache-cluster:Nodes。API: ApplicationAutoScaling.RegisterScalableTarget
入力:
{ "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "MinCapacity": 20, "MaxCapacity": 50 }ターゲット追跡スケーリングポリシーを作成する
次に、PutScalingPolicy API を呼び出して、リソースのターゲット追跡スケーリングポリシーを作成できます。
事前定義メトリクス
以下は、クラスター test-cluster-1 に対して 50 に設定されている事前定義メトリクス
ElastiCacheCPUUtilizationを使用して、キャッシュノードのディメンションに沿ってスケールするポリシーです。スケールインのためにノードを削除する際には、最後の n 個のノードが削除されます。API: ApplicationAutoScaling.PutScalingPolicy
入力:
{ "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 50, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCacheCPUUtilization" }, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }出力:
{ "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/elasticache/cache-cluster/test-cluster-1:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }カスタムメトリクス
Cloudwatch メトリクスに基づくカスタムパーセンテージを使用して、ディメンションにスケーリングポリシーを設定することもできます。
入力:
{ "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "CustomizedMetricSpecification": { "Dimensions": [ { "Name": "MyMetricDimension", "Value": "DimensionValue" } ], "MetricName": "MyCustomMetric", "Namespace": "MyNamespace", "Statistic": "Average", "Unit": "Percent" }, "TargetValue": 40, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }スケジュールに基づくアクション
特定のイベントのためにスケールアウトし、イベントの後にスケールインする必要がある場合は、
PutScheduledActionAPI を呼び出してスケジュールされたアクションを 2 つ作成できます。ポリシー 1: スケールアウト
--scheduleのatコマンドは、指定された将来の日時に 1 回実行されるアクションをスケジュールします。この schedule フィールドは、rate (分、時間、日など) と cron (cron 式の場合) もサポートしています。指定された日時がくると、Application Auto Scaling が
MinCapacityおよびMaxCapacityの値を更新します。Application Auto Scaling は MinCapacity までスケールアウトして、キャッシュノード数を 70 に設定します。API: ApplicationAutoScaling.PutScheduledAction
入力:
{ "ResourceId": "elasticache:ache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 100, "MinCapacity": 70 }, "Schedule": "at(2020-05-20T17:05:00)", "ScheduledActionName": "ScalingOutScheduledAction", "ServiceNamespace": "elasticache", }ポリシー 2: スケールイン
指定された日時がくると、Application Auto Scaling がテーブルの
MinCapacityとMaxCapacityを更新し、MaxCapacityまでスケールインしてキャッシュノード数を 60 に戻します。API: ApplicationAutoScaling.PutScheduledAction
入力:
{ "ResourceId": "elasticache:cache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 60, "MinCapacity": 40 }, "Schedule": "at(2020-05-21T17:05:00)", "ScheduledActionName": "ScalingInScheduledAction", "ServiceNamespace": "elasticache", }スケーリングアクティビティを表示する
DescribeScalingActivitiesAPI を使用してスケーリングアクティビティを表示できます。API: ApplicationAutoScaling.DescribeScalingActivities
出力:
{ "ScalingActivities": [ { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 30.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "4d759079-a31f-4d0c-8468-504c56e2eecf", "StartTime": 1462574194.658, "elasticacheNamespace": "elasticache", "EndTime": 1462574276.686, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Failed to set desired count to 30", "StatusCode": "Failed" }, { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 25.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "90aff0eb-dd6a-443c-889b-b809e78061c1", "StartTime": 1462574254.223, "elasticacheNamespace": "elasticache", "EndTime": 1462574333.492, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Successfully set desired count to 25. Change successfully fulfilled by elasticache.", "StatusCode": "Successful" } ] }スケーリングポリシーを編集/削除する
PutScalingPolicyAPI を再度呼び出すか、DeleteScalingPolicyまたはDeleteScheduledアクションを呼び出すことで、ポリシーを編集または削除できます。スケーラブルなターゲットの登録を解除する
DeregisterScalableTargetAPI を使用してスケーラブルなターゲットの登録を解除できます。スケーラブルなターゲットの登録を解除すると、スケーリングポリシーとそのターゲットに関連付けられているスケジュールされたアクションが削除されます。API: ApplicationAutoScaling.DeregisterScalableTarget
入力:
{ "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes" }スケーリングポリシーのクリーンアップ
複数のスケーリングポリシー
複数のスケーリングポリシーを作成できます。自動スケーリングターゲット追跡の動作に関する主な注意点を以下に示します。
それぞれが異なるメトリクスを使用していれば、スケーラブルなターゲットに対して複数のターゲットの追跡スケーリングポリシーを設定できます。
Application Auto Scaling の目的は常に可用性を優先することであるため、その動作は、スケールアウトまたはスケールインに対するターゲット追跡ポリシーの準備が整っているかどうかに応じて異なります。ターゲット追跡ポリシーのいずれかでスケールアウトする準備ができると、スケーラブルなターゲットがスケールアウトされますが、すべてのターゲット追跡ポリシー (スケールイン部分が有効) でスケールインする準備ができている場合のみスケールインされます。
複数のポリシーが、スケーラブルターゲットに対してスケールアウトまたはスケールインする指示を同時に出す場合、Application Auto Scaling はスケールインとスケールアウトのどちらについても、最大の容量を提供するポリシーに基づいてスケールします。これにより、複数のシナリオに対応する柔軟性が高まり、アプリケーションワークロードを処理するのに十分な容量が常に確保されます。
注記
AWS Application Auto Scaling はスケーリングポリシーをキューに入れません。Application Auto Scaling は、最初のスケーリングが完了するまで待ち、クールダウンした後、上記のアルゴリズムを繰り返します。
を介してノードベースの Memcached クラスターを自動的に水平方向にスケーリングするAWS マネジメントコンソール
を使用して既存のノードベースの Memcached クラスターAWS マネジメントコンソールを水平方向にスケーラブルなクラスターに変換するには、次の手順に従います。
にサインインAWS マネジメントコンソールし、https://console.aws.amazon.com/elasticache/
で ElastiCache コンソールを開きます。 変換する Memcached キャッシュを選択します。
[自動スケーリング] タブに移動します。
[動的なスケーリングを追加] または [スケジュールされたスケーリングを追加] を選択して、適用するスケーリングポリシーを選択します。
必要に応じて、選択したポリシーの詳細を入力します。
[Create (作成)] をクリックします。