Memcached クラスターのスケーリング - Amazon ElastiCache

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Memcached クラスターのスケーリング

ElastiCache for Memcached は、Memcached を AWS クラウドにデプロイ、運用、垂直スケーリングするフルマネージドのインメモリキャッシュサービスを提供します。

オンデマンドの垂直スケーリング

垂直スケーリングでは、ElastiCache for Memcached は、データベースの負荷を軽減することで動的アプリケーションを高速化するために広く使用されている高性能の分散メモリキャッシュシステムを提供します。データやオブジェクトを RAM に保存するため、外部データソースから読み取る必要がなくなります。

ElastiCache for Memcached の独自設計型クラスターを垂直スケーリングに使用できます。既存のクラスターと新しいクラスターに垂直スケーリングを適用できます。これにより、リソースの割り当てが柔軟になり、ユーザーはクラスターアーキテクチャを変更せずにワークロードの変化に効率的に適応できます。このスケーリング機能により、高需要期間中にキャッシュ容量を増やし、低需要期間中にコストを最適化するためにスケールダウンすることで、パフォーマンスが向上します。これにより、オペレーションが簡素化され、リソース要件を移行するための新しいクラスターを作成する必要がなくなり、トラフィックの変動に迅速に対応できます。全体として、Memcached 独自設計型キャッシュの垂直スケーリングは、コスト効率の向上、リソース使用率の向上、Memcached インスタンスタイプの変更に役立ちます。すべてにより、ユーザーはキャッシュインフラストラクチャを実際のアプリケーションのニーズに合わせやすくなります。

注記
  • 独自設計型キャッシュとノードタイプの変更は、Memcached エンジンバージョン 1.5 以降でのみ使用できます。

  • 垂直スケーリングを使用するには、自動検出を有効にする必要があります。

ElastiCache Memcached クラスターのオンデマンド垂直スケーリングの設定

2 つのパラメータを含む を使用してscale-config、Memcached のオンデマンド垂直スケーリングを設定できます。

  1. ScaleIntervalMinutes: Memcached アップグレードプロセス中のスケーリングバッチ間の時間 (分単位)

  2. ScalePercentage: Memcached アップグレードプロセス中に同時にスケーリングするノードの割合

既存の Memcached ノードタイプを CLI を介して垂直方向にスケーリングできるキャッシュに変換する

既存の 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 独自設計型キャッシュの垂直スケーリングを設定するには、 とそのパラメータ scale-config ScalePercentageおよび elasticache modify-cache-clusterで を使用します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 Management Console

既存の Memcached 独自設計型キャッシュを、https://console.aws.amazon.com/elasticache/ を垂直方向にスケールできるキャッシュに変換するには、次の手順に従います。

  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/elasticache/ で ElastiCache コンソールを開きます。

  2. 変換する Memcached キャッシュを選択します。

  3. 変更タブを選択します。

  4. キャッシュ設定セクションに移動し、目的のノードタイプを選択します。

  5. プレビューの変更を選択し、変更を確認します。

  6. [Modify] を選択します。

Memcached の自動水平スケーリング

ElastiCache は AWS Application Auto Scaling (AAS) サービスと統合され、Memcached クラスターの自動水平スケーリングが含まれるようになりました。 AWS Application Auto Scaling サービスを使用してスケーリングポリシーを定義し、事前定義されたメトリクスまたはスケジュールに基づいて、必要に応じて Memcached クラスター内のノード数を自動的に調整できます。

注記

自動水平スケーリングは現在、北京および寧夏リージョンでは利用できません。

これらは、独自設計型キャッシュを自動的に水平スケーリングするために使用できる方法です。

  • スケジュールされたスケーリング: スケジュールに基づくスケーリングでは、予測可能な負荷の変化に合わせて独自のスケーリングスケジュールを設定できます。たとえば、毎週、ウェブアプリケーションへのトラフィックが水曜日に増え始め、木曜日は高いままで、金曜日に下がり始めるとします。水曜日に容量を増やし、金曜日に容量を減らすように Auto Scaling を設定できます。

  • ターゲット追跡: ターゲット追跡スケーリングポリシーでは、スケーリングメトリクスを選択し、ターゲット値を設定します。Application Auto Scaling は、スケーリングポリシーをトリガーする CloudWatch アラームを作成および管理し、メトリクスとターゲット値に基づいてスケーリング調整値を計算します。スケーリングポリシーは、指定されたターゲット値、またはそれに近い値にメトリクスを維持するため、必要に応じてキャパシティーを追加または削除します。

CLI を使用して ElastiCache for Memcached 独自設計型キャッシュの水平スケーリングを設定する方法

ElastiCache Memcached による水平スケーリングでは、ターゲット追跡ポリシー、スケジュールされたポリシー、またはその両方を設定できます。

  1. リソースをスケーラブルターゲットとして登録する

    AWS Application Auto Scaling で RegisterScalableTarget API を呼び出して、スケーラブルなディメンション のターゲットを登録しますelasticache:cache-cluster:Nodes

    API: ApplicationAutoScaling.RegisterScalableTarget

    入力

    { "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "MinCapacity": 20, "MaxCapacity": 50 }
  2. ターゲット追跡スケーリングポリシーを作成する

    次に、put スケーリングポリシー API を呼び出して、リソースのターゲット追跡スケーリングポリシーを作成できます。

  3. 事前定義されたメトリクス

    以下は、キャッシュクラスター 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" } ] }
  4. カスタムメトリクス

    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" }
  5. スケジュールに基づくアクション

    特定のイベントをスケールアウトし、イベントの後にスケールインする必要がある場合は、 PutScheduledAction API を呼び出して 2 つのスケジュールされたアクションを作成できます。

    ポリシー 1: スケールアウト

    at コマンドは、アクションを将来の指定された日時で 1 回実行するように--scheduleスケジュールします。スケジュールフィールドは、レート (分、時間、日など) と 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", }
  6. スケーリングアクティビティを表示する

    DescribeScalingActivities API を使用してスケーリングアクティビティを表示できます。

    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" } ] }
  7. スケーリングポリシーの編集/削除

    PutScalingPolicy API を再度呼び出すか、 または DeleteScalingPolicy DeleteScheduled Action を呼び出すことで、ポリシーを編集または削除できます。

  8. スケーラブルターゲットの登録解除

    DeregisterScalableTarget API を使用してスケーラブルターゲットの登録を解除できます。スケーラブルターゲットの登録を解除すると、スケーリングポリシーとそれに関連付けられているスケジュールされたアクションが削除されます。

    API: ApplicationAutoScaling.DeregisterScalableTarget

    入力

    { "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes" }
  9. スケーリングポリシーのクリーンアップ

  10. 複数のスケーリングポリシー

    複数のスケーリングポリシーを作成できます。以下は、Auto Scaling ターゲット追跡の動作に関する主要なコールアウトです。

    • それぞれが異なるメトリクスを使用していれば、スケーラブルなターゲットに対して複数のターゲットの追跡スケーリングポリシーを設定できます。

    • Application Auto Scaling の目的は常に可用性を優先することであるため、その動作は、スケールアウトまたはスケールインに対するターゲット追跡ポリシーの準備が整っているかどうかに応じて異なります。ターゲット追跡ポリシーのいずれかでスケールアウトする準備ができると、スケーラブルなターゲットがスケールアウトされますが、すべてのターゲット追跡ポリシー (スケールイン部分が有効) でスケールインする準備ができている場合のみスケールインされます。

    • 複数のポリシーが、スケーラブルターゲットに対してスケールアウトまたはスケールインする指示を同時に出す場合、Application Auto Scaling はスケールインとスケールアウトのどちらについても、最大の容量を提供するポリシーに基づいてスケールします。これにより、複数のシナリオに対応する柔軟性が高まり、アプリケーションワークロードを処理するのに十分な容量が常に確保されます。

    注記

    AWS Application Auto Scaling はスケーリングポリシーをキューに入れません。Application Auto Scaling は、最初のスケーリングが完了するまで待ってからクールダウンし、上記のアルゴリズムを繰り返します。

を介して Memcached キャッシュを自動的に水平方向にスケーリングする AWS Management Console

既存の Memcached 独自設計型キャッシュを https://console.aws.amazon.com/elasticache/ を水平方向にスケールできるキャッシュに変換するには、次の手順に従います。

  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/elasticache/ で ElastiCache コンソールを開きます。

  2. 変換する Memcached キャッシュを選択します。

  3. Autoscaling タブに移動します。

  4. 動的スケーリングの追加またはスケジュールされたスケーリングの追加を選択して、適用するスケーリングポリシーを選択します。

  5. 必要に応じて、選択したポリシーの詳細を入力します。

  6. [Create (作成)] をクリックします。