AWS CLI を使用した開始方法 - Application Auto Scaling

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

AWS CLI を使用した開始方法

このチュートリアルでは、使用するAWS CLIApplication Auto Scaling を確認します。開始する前に、必ず AWS アカウント を設定していること、AWS CLI。詳細については、「」を参照してくださいセットアップ このチュートリアルでは、スケジュールされたアクションを作成して、スケジュールに基づいてスケーラブルなリソースをスケーリングします。スケジュールされたスケーリングでは、1 回限りのアクションか、定期的なアクションを指定できます。

このチュートリアルでは、「のセットアップAWS CLI」で設定した管理者の認証情報 (adminuser プロファイル) を使用していることを前提としています。このプロファイルを指定しない場合、デフォルトプロファイルが指定されたと見なされます。アプリケーションの Auto Scaling リソースを作成、更新、削除、またはリストするには、アクションを実行するためのアクセス許可と、対応するリソースにアクセスするためのアクセス許可が必要です。詳細については、「」を参照してくださいApplication Auto Scaling の Identity and Access Management

を使用する場合AWS CLIでコマンドが実行されることを忘れないようにしてください。AWSプロファイル用に構成されている地域。別のリージョンでコマンドを実行する場合は、プロファイルのデフォルトのリージョンを変更するか、コマンドに --region パラメータを使用します。

注記

以下の行為が発生する場合があります。AWSこのチュートリアルの一部として料金が発生します。の監視を行ってください。無料利用枠の使用状況を確認し、DynamoDB データベースが使用する読み取りおよび書き込みキャパシティーのユニット数に関連するコストを理解していることを確認します。

ステップ 1: スケーラブルなターゲットを登録する

まず、アプリケーションの Auto Scaling を使用して、リソースをスケーラブルなターゲットとして登録します。スケーラブルなターゲットは、Application Auto Scaling がスケールアウトまたはスケールインできるリソースです。

アプリケーションの Auto Scaling と連携し、スケジュールされたスケーリングをサポートするリソースはすべて使用できますが、これらの例では、と呼ばれる DynamoDB テーブルをスケールすることを前提とします。my-table。DynamoDB テーブルがまだない場合は、作成することができます(ステップ 1: DynamoDB テーブルを作成する()Amazon DynamoDB 開発者ガイド).

DynamoDB グローバルセカンダリインデックス、または別のサービスのリソースを使用するには、状況に応じて例を更新します。--service-namespace で名前空間を、--scalable-dimension でそのスケーラブルなディメンションを、--resource-id でそのリソース ID をそれぞれ指定します。各オプションの有効な値のリストについては、「register-scalable-target」を参照してください。

スケーラブルなターゲットをアプリケーションの Auto Scaling に登録するには

  1. (オプション)describe-scalable-targetsコマンドを使用して、DynamoDB リソースが既に登録されているかどうかを確認します。これにより、 my-table テーブルを登録するかどうかを確認しやすくなります。たとえば、DynamoDB コンソールから、このテーブルの Automatic Scaling を以前に設定している場合は、すでにApplication Auto Scaling に登録されている可能性があります。

    Linux、macOS、または Unix

    aws application-autoscaling describe-scalable-targets \ --service-namespace dynamodb \ --profile adminuser

    Windows

    aws application-autoscaling describe-scalable-targets --service-namespace dynamodb --profile adminuser

    既存のスケーラブルなターゲットがない場合、レスポンスは次のようになります。

    { "ScalableTargets": [] }
  2. 次のを使用してください。register-scalable-targetコマンドを使用して、と呼ばれる DynamoDB テーブルの書き込みキャパシティーを登録または更新します。my-table。希望する最小書き込みキャパシティーを 5 書き込みキャパシティーユニットに、希望する最大キャパシティーを 10 書き込みキャパシティーユニットに設定します。

    Linux、macOS、または Unix

    aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --min-capacity 5 --max-capacity 10 \ --profile adminuser

    Windows

    aws application-autoscaling register-scalable-target --service-namespace dynamodb --scalable-dimension dynamodb:table:WriteCapacityUnits --resource-id table/my-table --min-capacity 5 --max-capacity 10 --profile adminuser

    このコマンドが成功した場合、出力は返りません。

ステップ 2: 2 つのスケジュールされたアクションの作成

アプリケーションの Auto Scaling では、スケーリングアクションが発生する時間をスケールできます。スケーラブルなターゲット、スケジュール、最小キャパシティー、および最大キャパシティーを指定します。アプリケーションの Auto Scaling は、指定した時間に、スケーラブルなターゲットの最小値および最大値を更新します。現在のキャパシティーが範囲外の場合はスケーリングアクティビティにつながります。

最小キャパシティーと最大キャパシティーへの更新のスケジュールは、スケーリングポリシーを作成する場合にも役立ちます。スケーリングポリシーを使用すると、現在のリソース使用率に基づいてリソースを動的にスケーリングできます。スケーリングポリシーの一般的なガードレールとして、最小キャパシティーと最大キャパシティーに適切な値を設定します。

この演習では、1 回限りのアクションを 2 つ作成し、スケールアウトまたはスケールインできます。

スケジュールされたアクションを作成および表示する

  1. 最初のスケジュールされたアクションを作成するには、次の put-scheduled-action コマンドを使用します。

    -atコマンド--scheduleは、アクションが、指定された日時に 1 回実行されるようにスケジュールします。時間は 24 時間形式です。今から約 5 分後にアクションが発生するようにスケジュールします。

    指定された日時に、Application Auto Scaling は、MinCapacityおよびMaxCapacity値. 現在テーブルに、5 書き込みキャパシティーユニットがあるとして、Application Auto Scaling はMinCapacityは、希望する新しい範囲 15〜20 の書き込みキャパシティーユニット内にテーブルを配置します。

    Linux、macOS、または Unix

    aws application-autoscaling put-scheduled-action \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --scheduled-action-name my-first-scheduled-action \ --schedule "at(2019-05-20T17:05:00)" \ --scalable-target-action MinCapacity=15,MaxCapacity=20 \ --profile adminuser

    Windows

    aws application-autoscaling put-scheduled-action --service-namespace dynamodb --scalable-dimension dynamodb:table:WriteCapacityUnits --resource-id table/my-table --scheduled-action-name my-first-scheduled-action --schedule "at(2019-05-20T17:05:00)" --scalable-target-action MinCapacity=15,MaxCapacity=20 --profile adminuser

    このコマンドが成功した場合、出力は返りません。

  2. アプリケーションの Auto Scaling がスケールインに使用する、2 番目にスケジュールされたアクションを作成するには、次のput-scheduled-actionコマンド。

    今から約 10 分後にアクションが発生するようにスケジュールします。

    指定された日時に、Application Auto Scaling は、テーブルの Auto Scaling を更新します。MinCapacityおよびMaxCapacityに拡大し、MaxCapacityテーブルが、希望する元の範囲 5~10 の書き込みキャパシティーユニットに戻るように。

    Linux、macOS、または Unix

    aws application-autoscaling put-scheduled-action \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --scheduled-action-name my-second-scheduled-action \ --schedule "at(2019-05-20T17:10:00)" \ --scalable-target-action MinCapacity=5,MaxCapacity=10 \ --profile adminuser

    Windows

    aws application-autoscaling put-scheduled-action --service-namespace dynamodb --scalable-dimension dynamodb:table:WriteCapacityUnits --resource-id table/my-table --scheduled-action-name my-second-scheduled-action --schedule "at(2019-05-20T17:10:00)" --scalable-target-action MinCapacity=5,MaxCapacity=10 --profile adminuser
  3. (オプション) 次の describe-scheduled-actions コマンドを使用して、指定したサービスの名前空間のすべてのスケジュールされたアクションのリストを取得します。

    Linux、macOS、または Unix

    aws application-autoscaling describe-scheduled-actions \ --service-namespace dynamodb \ --profile adminuser

    Windows

    aws application-autoscaling describe-scheduled-actions --service-namespace dynamodb --profile adminuser

    出力例を次に示します。

    { "ScheduledActions": [ { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Schedule": "at(2019-05-20T18:35:00)", "ResourceId": "table/my-table", "CreationTime": 1561571888.361, "ScheduledActionARN": "arn:aws:autoscaling:us-east-1:123456789012:scheduledAction:2d36aa3b-cdf9-4565-b290-81db519b227d:resource/dynamodb/table/my-table:scheduledActionName/my-first-scheduled-action", "ScalableTargetAction": { "MinCapacity": 15, "MaxCapacity": 20 }, "ScheduledActionName": "my-first-scheduled-action", "ServiceNamespace": "dynamodb" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Schedule": "at(2019-05-20T18:40:00)", "ResourceId": "table/my-table", "CreationTime": 1561571946.021, "ScheduledActionARN": "arn:aws:autoscaling:us-east-1:123456789012:scheduledAction:2d36aa3b-cdf9-4565-b290-81db519b227d:resource/dynamodb/table/my-table:scheduledActionName/my-second-scheduled-action", "ScalableTargetAction": { "MinCapacity": 5, "MaxCapacity": 10 }, "ScheduledActionName": "my-second-scheduled-action", "ServiceNamespace": "dynamodb" } ] }

ステップ 3: スケーリングアクティビティの表示

このステップでは、スケジュールされたアクションによってトリガーされたスケーリングアクティビティを表示し、DynamoDB によってテーブルの書き込みキャパシティーが変更されたことを確認します。

スケーリングアクティビティを表示するには

  1. 選択した時間を待機し、次の describe-scaling-activities コマンドを使用して、スケジュールされたアクションが機能していることを確認します。

    Linux、macOS、または Unix

    aws application-autoscaling describe-scaling-activities \ --service-namespace dynamodb \ --profile adminuser

    Windows

    aws application-autoscaling describe-scaling-activities --service-namespace dynamodb --profile adminuser

    以下は、スケジュールされたアクションの進行中に、スケジュールされた最初のアクションの出力例です。

    スケーリングアクティビティは作成日順に並べられ、最新のスケーリングアクティビティが最初に返ります。

    { "ScalingActivities": [ { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting write capacity units to 15.", "ResourceId": "table/my-table", "ActivityId": "d8ea4de6-9eaa-499f-b466-2cc5e681ba8b", "StartTime": 1561574108.904, "ServiceNamespace": "dynamodb", "Cause": "minimum capacity was set to 15", "StatusMessage": "Successfully set write capacity units to 15. Waiting for change to be fulfilled by dynamodb.", "StatusCode": "InProgress" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting min capacity to 15 and max capacity to 20", "ResourceId": "table/my-table", "ActivityId": "3250fd06-6940-4e8e-bb1f-d494db7554d2", "StartTime": 1561574108.512, "ServiceNamespace": "dynamodb", "Cause": "scheduled action name my-first-scheduled-action was triggered", "StatusMessage": "Successfully set min capacity to 15 and max capacity to 20", "StatusCode": "Successful" } ] }

    以下は、スケジュールされたアクションがいずれも実行された後の出力例です。

    { "ScalingActivities": [ { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting write capacity units to 10.", "ResourceId": "table/my-table", "ActivityId": "4d1308c0-bbcf-4514-a673-b0220ae38547", "StartTime": 1561574415.086, "ServiceNamespace": "dynamodb", "EndTime": 1561574449.51, "Cause": "maximum capacity was set to 10", "StatusMessage": "Successfully set write capacity units to 10. Change successfully fulfilled by dynamodb.", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting min capacity to 5 and max capacity to 10", "ResourceId": "table/my-table", "ActivityId": "f2b7847b-721d-4e01-8ef0-0c8d3bacc1c7", "StartTime": 1561574414.644, "ServiceNamespace": "dynamodb", "Cause": "scheduled action name my-second-scheduled-action was triggered", "StatusMessage": "Successfully set min capacity to 5 and max capacity to 10", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting write capacity units to 15.", "ResourceId": "table/my-table", "ActivityId": "d8ea4de6-9eaa-499f-b466-2cc5e681ba8b", "StartTime": 1561574108.904, "ServiceNamespace": "dynamodb", "EndTime": 1561574140.255, "Cause": "minimum capacity was set to 15", "StatusMessage": "Successfully set write capacity units to 15. Change successfully fulfilled by dynamodb.", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting min capacity to 15 and max capacity to 20", "ResourceId": "table/my-table", "ActivityId": "3250fd06-6940-4e8e-bb1f-d494db7554d2", "StartTime": 1561574108.512, "ServiceNamespace": "dynamodb", "Cause": "scheduled action name my-first-scheduled-action was triggered", "StatusMessage": "Successfully set min capacity to 15 and max capacity to 20", "StatusCode": "Successful" } ] }
  2. スケジュールされたアクションが正常に実行されたら、DynamoDB コンソールに移動し、目的のテーブルを選択します。を表示する書き込みキャパシティーユニットの下で容量タブ。2 番目のスケーリングアクションが実行されると、書き込みキャパシティーユニットは 15 から 10 にスケーリングされます。

    この情報は、AWS CLI を使用して確認することもできます。

    DynamoDB を使用して、テーブルの現在の書き込みキャパシティーを確認します。describe-tableコマンド。​ を含む--queryオプションを使用して出力をフィルタリングします。の出力フィルタリング機能の詳細については、AWS CLIを参照してください。からのコマンド出力の制御AWS CLI()AWS Command Line Interfaceユーザーガイド

    Linux、macOS、または Unix

    aws dynamodb describe-table --table-name my-table \ --query 'Table.[TableName,TableStatus,ProvisionedThroughput]' \ --profile adminuser

    Windows

    aws dynamodb describe-table --table-name my-table --query "Table.[TableName,TableStatus,ProvisionedThroughput]" --profile adminuser

    出力例を次に示します。

    [ "my-table", "ACTIVE", { "NumberOfDecreasesToday": 1, "WriteCapacityUnits": 10, "LastIncreaseDateTime": 1561574133.264, "ReadCapacityUnits": 5, "LastDecreaseDateTime": 1561574435.607 } ]

ステップ 4: 次のステップ

Application Auto Scaling とその機能のいくつかを理解できたので、以下のことを検討します。

ステップ 5: クリーンアップ

「使用開始」演習が終了したら、関連付けられているリソースを以下のようにクリーンアップすることができます。

スケジュールされたアクションを削除するには

以下の delete-scheduled-action コマンドでは、スケールされた指定のアクションを削除します。後で使用できるように、スケジュールされたアクションを保持する場合は、このステップをスキップできます。

Linux、macOS、または Unix

aws application-autoscaling delete-scheduled-action \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --scheduled-action-name my-second-scheduled-action \ --profile adminuser

Windows

aws application-autoscaling delete-scheduled-action --service-namespace dynamodb --scalable-dimension dynamodb:table:WriteCapacityUnits --resource-id table/my-table --scheduled-action-name my-second-scheduled-action --profile adminuser

スケーラブルなターゲットを登録解除するには

次の deregister-scalable-target コマンドを使用して、スケーラブルなターゲットの登録を解除します。自分で作成したスケーリングポリシーや、まだ削除されていないスケジュールされたアクションがある場合は、このコマンドによって削除されます。後で使用できるように、登録されたスケーラブルなターゲットを保持する場合は、このステップをスキップできます。

Linux、macOS、または Unix

aws application-autoscaling deregister-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --profile adminuser

Windows

aws application-autoscaling deregister-scalable-target --service-namespace dynamodb --scalable-dimension dynamodb:table:WriteCapacityUnits --resource-id table/my-table --profile adminuser

DynamoDB テーブルを削除するには

以下の delete-table コマンドを使用して、このチュートリアルで使用したテーブルを削除します。後で使用できるように、テーブルを保持する場合は、このステップをスキップできます。

Linux、macOS、または Unix

aws dynamodb delete-table --table-name my-table \ --profile adminuser

Windows

aws dynamodb delete-table --table-name my-table --profile adminuser