Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDK または CLI CreateAutoScalingGroup
で使用する
以下のコード例は、CreateAutoScalingGroup
の使用方法を示しています。
アクション例は、より大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。次のコード例で、このアクションのコンテキストを確認できます。
- .NET
-
- AWS SDK for .NET
-
注記
GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリ
での設定と実行の方法を確認してください。 /// <summary> /// Create a new Amazon EC2 Auto Scaling group. /// </summary> /// <param name="groupName">The name to use for the new Auto Scaling /// group.</param> /// <param name="launchTemplateName">The name of the Amazon EC2 Auto Scaling /// launch template to use to create instances in the group.</param> /// <returns>A Boolean value indicating the success of the action.</returns> public async Task<bool> CreateAutoScalingGroupAsync( string groupName, string launchTemplateName, string availabilityZone) { var templateSpecification = new LaunchTemplateSpecification { LaunchTemplateName = launchTemplateName, }; var zoneList = new List<string> { availabilityZone, }; var request = new CreateAutoScalingGroupRequest { AutoScalingGroupName = groupName, AvailabilityZones = zoneList, LaunchTemplate = templateSpecification, MaxSize = 6, MinSize = 1 }; var response = await _amazonAutoScaling.CreateAutoScalingGroupAsync(request); Console.WriteLine($"{groupName} Auto Scaling Group created"); return response.HttpStatusCode == System.Net.HttpStatusCode.OK; }
-
API の詳細については、CreateAutoScalingGroup AWS SDK for .NET リファレンスの API を参照してください。
-
- C++
-
- C++ のSDK
-
注記
GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリ
での設定と実行の方法を確認してください。 Aws::Client::ClientConfiguration clientConfig; // Optional: Set to the AWS Region (overrides config file). // clientConfig.region = "us-east-1"; Aws::AutoScaling::AutoScalingClient autoScalingClient(clientConfig); Aws::AutoScaling::Model::CreateAutoScalingGroupRequest request; request.SetAutoScalingGroupName(groupName); Aws::Vector<Aws::String> availabilityGroupZones; availabilityGroupZones.push_back( availabilityZones[availabilityZoneChoice - 1].GetZoneName()); request.SetAvailabilityZones(availabilityGroupZones); request.SetMaxSize(1); request.SetMinSize(1); Aws::AutoScaling::Model::LaunchTemplateSpecification launchTemplateSpecification; launchTemplateSpecification.SetLaunchTemplateName(templateName); request.SetLaunchTemplate(launchTemplateSpecification); Aws::AutoScaling::Model::CreateAutoScalingGroupOutcome outcome = autoScalingClient.CreateAutoScalingGroup(request); if (outcome.IsSuccess()) { std::cout << "Created Auto Scaling group '" << groupName << "'..." << std::endl; } else if (outcome.GetError().GetErrorType() == Aws::AutoScaling::AutoScalingErrors::ALREADY_EXISTS_FAULT) { std::cout << "Auto Scaling group '" << groupName << "' already exists." << std::endl; } else { std::cerr << "Error with AutoScaling::CreateAutoScalingGroup. " << outcome.GetError().GetMessage() << std::endl; }
-
API の詳細については、CreateAutoScalingGroup AWS SDK for C++ リファレンスの API を参照してください。
-
- CLI
-
- AWS CLI
-
例 1: Auto Scaling グループを作成するには
次の
create-auto-scaling-group
の例では、リージョン内の複数のアベイラビリティーゾーンのサブネット内に Auto Scaling グループを作成します。インスタンスは、指定された起動テンプレートのデフォルトバージョンで起動されます。終了ポリシーやヘルスチェック設定など、他のほとんどの設定にはデフォルトが使用されることに注意してください。aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg
\ --launch-templateLaunchTemplateId=lt-1234567890abcde12
\ --min-size1
\ --max-size5
\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
このコマンドでは何も出力されません。
詳細については、Amazon Word Auto Scaling ユーザーガイドの「Auto Scaling グループ」を参照してください。 EC2 Auto Scaling
例 2: Application Load Balancer、Network Load Balancer、または Gateway Load Balancer をアタッチするには
この例では、予想されるトラフィックをサポートするロードバランサーのターゲットグループの ARN を指定します。ヘルスチェックタイプは、Elastic Load Balancing がインスタンスを異常として報告したときに、Auto Scaling グループがそのインスタンスを置き換えるよう
ELB
を指定します。このコマンドは、ヘルスチェックの猶予期間 (600
秒) も定義します。猶予期間は、新しく起動したインスタンスが早期に終了するのを防ぐのに役立ちます。aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg
\ --launch-templateLaunchTemplateId=lt-1234567890abcde12
\ --target-group-arnsarn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/943f017f100becff
\ --health-check-typeELB
\ --health-check-grace-period600
\ --min-size1
\ --max-size5
\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
このコマンドでは何も出力されません。
詳細については、Amazon EC2 Auto Scaling ユーザーガイドのElastic Load Balancing」と「Amazon Word Auto Scaling」を参照してください。 EC2 Auto Scaling
例 3: プレイスメントグループを指定し、起動テンプレートの最新バージョンを使用するには
この例では、単一のアベイラビリティーゾーン内のプレイスメントグループ内でインスタンスを起動します。これは、HPC ワークロードを使用する低レイテンシーグループに役立ちます。この例では、グループの最小サイズ、最大サイズ、希望する容量も指定しています。
aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg
\ --launch-template LaunchTemplateId=lt-1
2345
67890abcde12,Version='$Latest' \ --min-size 1 \ --max-size 5 \ --desired-capacity3
\ --placement-groupmy-placement-group
\ --vpc-zone-identifier"subnet-6194ea3b"
このコマンドでは何も出力されません。
詳細については、Linux インスタンス用 Amazon Word ユーザーガイドの「プレイスメントグループ」を参照してください。 EC2
例 4: 単一のインスタンスの Auto Scaling グループを指定し、特定のバージョンの起動テンプレートを使用するには
この例では、単一のインスタンスが強制的に実行されるように、最小容量と最大容量を
1
に設定した Auto Scaling グループを作成します。コマンドは、既存の ENI の ID が指定されている起動テンプレートの v1 も指定します。既存の ENI for eth0 を指定する起動テンプレートを使用する場合は、リクエストでサブネット ID を指定せずに、ネットワークインターフェイスに一致する Auto Scaling グループのアベイラビリティーゾーンを指定する必要があります。aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg-single-instance
\ --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='1
' \ --min-size1
\ --max-size 1 \ --availability-zonesus-west-2a
このコマンドでは何も出力されません。
詳細については、Amazon Word Auto Scaling ユーザーガイドの「Auto Scaling グループ」を参照してください。 EC2 Auto Scaling
例 5: 別の終了ポリシーを指定するには
この例では、起動設定を使用して Auto Scaling グループを作成し、最も古いインスタンスを最初に終了するように終了ポリシーを設定します。またこのコマンドは、
Role
キーとWebServer
値を使用して、グループとインスタンスにタグを適用します。aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg
\ --launch-configuration-namemy-lc
\ --min-size1
\ --max-size5
\ --termination-policies"OldestInstance"
\ --tags"ResourceId=my-asg,ResourceType=auto-scaling-group,Key=Role,Value=WebServer,PropagateAtLaunch=true"
\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
このコマンドでは何も出力されません。
詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「Amazon Word Auto Scaling 終了ポリシーの使用」を参照してください。 EC2 Auto Scaling
例 6: 起動ライフサイクルフックを指定するには
この例では、インスタンス起動時のカスタムアクションをサポートするライフサイクルフックで Auto Scaling グループを設定します。
aws autoscaling create-auto-scaling-group \ --cli-input-json
file://~/config.json
config.json
ファイルの内容。{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateId": "lt-1234567890abcde12" }, "LifecycleHookSpecificationList": [{ "LifecycleHookName": "my-launch-hook", "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", "NotificationTargetARN": "arn:aws:sqs:us-west-2:123456789012:my-sqs-queue", "RoleARN": "arn:aws:iam::123456789012:role/my-notification-role", "NotificationMetadata": "SQS message metadata", "HeartbeatTimeout": 4800, "DefaultResult": "ABANDON" }], "MinSize": 1, "MaxSize": 5, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [{ "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "test", "Key": "environment" }] }
このコマンドでは何も出力されません。
詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Amazon Word Auto Scaling ライフサイクルフック」を参照してください。 EC2 Auto Scaling
例 7: 終了ライフサイクルフックを指定するには
次の例は、インスタンス終了時のカスタムアクションをサポートするライフサイクルフックで Auto Scaling グループを設定します。
aws autoscaling create-auto-scaling-group \ --cli-input-json
file://~/config.json
config.json
の内容:{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateId": "lt-1234567890abcde12" }, "LifecycleHookSpecificationList": [{ "LifecycleHookName": "my-termination-hook", "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING", "HeartbeatTimeout": 120, "DefaultResult": "CONTINUE" }], "MinSize": 1, "MaxSize": 5, "TargetGroupARNs": [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" ], "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }
このコマンドでは何も出力されません。
詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Amazon Word Auto Scaling ライフサイクルフック」を参照してください。 EC2 Auto Scaling
例 8: カスタム終了ポリシーを指定するには
この例では、カスタム Lambda 関数の終了ポリシーを指定する Auto Scaling グループを作成します。これにより、Amazon EC2 Auto Scaling にスケールインしても安全なインスタンスが通知されます。
aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name
my-asg-single-instance
\ --launch-templateLaunchTemplateName=my-template-for-auto-scaling
\ --min-size1
\ --max-size5
\ --termination-policies"arn:aws:lambda:us-west-2:123456789012:function:HelloFunction:prod"
\ --vpc-zone-identifier"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
このコマンドでは何も出力されません。
詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Lambda を使用したカスタム終了ポリシーの作成」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のCreateAutoScalingGroup
」を参照してください。
-
- Java
-
- Java 2.x のSDK
-
注記
GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリ
での設定と実行の方法を確認してください。 import software.amazon.awssdk.core.waiters.WaiterResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.autoscaling.AutoScalingClient; import software.amazon.awssdk.services.autoscaling.model.AutoScalingException; import software.amazon.awssdk.services.autoscaling.model.CreateAutoScalingGroupRequest; import software.amazon.awssdk.services.autoscaling.model.DescribeAutoScalingGroupsRequest; import software.amazon.awssdk.services.autoscaling.model.DescribeAutoScalingGroupsResponse; import software.amazon.awssdk.services.autoscaling.model.LaunchTemplateSpecification; import software.amazon.awssdk.services.autoscaling.waiters.AutoScalingWaiter; /** * Before running this SDK for Java (v2) code example, set up your development * environment, including your credentials. * * For more information, see the following documentation: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class CreateAutoScalingGroup { public static void main(String[] args) { final String usage = """ Usage: <groupName> <launchTemplateName> <serviceLinkedRoleARN> <vpcZoneId> Where: groupName - The name of the Auto Scaling group. launchTemplateName - The name of the launch template.\s vpcZoneId - A subnet Id for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. """; if (args.length != 3) { System.out.println(usage); System.exit(1); } String groupName = args[0]; String launchTemplateName = args[1]; String vpcZoneId = args[2]; AutoScalingClient autoScalingClient = AutoScalingClient.builder() .region(Region.US_EAST_1) .build(); createAutoScalingGroup(autoScalingClient, groupName, launchTemplateName, vpcZoneId); autoScalingClient.close(); } public static void createAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName, String launchTemplateName, String vpcZoneId) { try { AutoScalingWaiter waiter = autoScalingClient.waiter(); LaunchTemplateSpecification templateSpecification = LaunchTemplateSpecification.builder() .launchTemplateName(launchTemplateName) .build(); CreateAutoScalingGroupRequest request = CreateAutoScalingGroupRequest.builder() .autoScalingGroupName(groupName) .availabilityZones("us-east-1a") .launchTemplate(templateSpecification) .maxSize(1) .minSize(1) .vpcZoneIdentifier(vpcZoneId) .build(); autoScalingClient.createAutoScalingGroup(request); DescribeAutoScalingGroupsRequest groupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); WaiterResponse<DescribeAutoScalingGroupsResponse> waiterResponse = waiter .waitUntilGroupExists(groupsRequest); waiterResponse.matched().response().ifPresent(System.out::println); System.out.println("Auto Scaling Group created"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
-
API の詳細については、CreateAutoScalingGroup AWS SDK for Java 2.x リファレンスのAPI」を参照してください。
-
- Kotlin
-
- Kotlin のSDK
-
注記
GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリ
での設定と実行の方法を確認してください。 suspend fun createAutoScalingGroup( groupName: String, launchTemplateNameVal: String, serviceLinkedRoleARNVal: String, vpcZoneIdVal: String, ) { val templateSpecification = LaunchTemplateSpecification { launchTemplateName = launchTemplateNameVal } val request = CreateAutoScalingGroupRequest { autoScalingGroupName = groupName availabilityZones = listOf("us-east-1a") launchTemplate = templateSpecification maxSize = 1 minSize = 1 vpcZoneIdentifier = vpcZoneIdVal serviceLinkedRoleArn = serviceLinkedRoleARNVal } // This object is required for the waiter call. val groupsRequestWaiter = DescribeAutoScalingGroupsRequest { autoScalingGroupNames = listOf(groupName) } AutoScalingClient { region = "us-east-1" }.use { autoScalingClient -> autoScalingClient.createAutoScalingGroup(request) autoScalingClient.waitUntilGroupExists(groupsRequestWaiter) println("$groupName was created!") } }
-
API の詳細については、「Word for Kotlin CreateAutoScalingGroup
リファレンス」を参照してください。 AWS SDK API
-
- PHP
-
- PHP に関する SDK
-
注記
GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリ
での設定と実行の方法を確認してください。 public function createAutoScalingGroup( $autoScalingGroupName, $availabilityZones, $minSize, $maxSize, $launchTemplateId ) { return $this->autoScalingClient->createAutoScalingGroup([ 'AutoScalingGroupName' => $autoScalingGroupName, 'AvailabilityZones' => $availabilityZones, 'MinSize' => $minSize, 'MaxSize' => $maxSize, 'LaunchTemplate' => [ 'LaunchTemplateId' => $launchTemplateId, ], ]); }
-
API の詳細については、CreateAutoScalingGroup AWS SDK for PHP リファレンスの API を参照してください。
-
- PowerShell
-
- ツール for PowerShell
-
例 1: この例では、指定した名前と属性で Auto Scaling グループを作成します。デフォルトの希望する容量は最小サイズになります。したがって、この Auto Scaling グループは、指定した 2 つのアベイラビリティーゾーンのそれぞれに 1 つずつ、合計 2 つのインスタンスを起動します。
New-ASAutoScalingGroup -AutoScalingGroupName my-asg -LaunchConfigurationName my-lc -MinSize 2 -MaxSize 6 -AvailabilityZone @("us-west-2a", "us-west-2b")
-
APIの詳細については、「コマンドレットリファレンス」のCreateAutoScalingGroup」を参照してください。 AWS Tools for PowerShell
-
- Python
-
- Python のSDK (Boto3)
-
注記
GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリ
での設定と実行の方法を確認してください。 class AutoScalingWrapper: """Encapsulates Amazon EC2 Auto Scaling actions.""" def __init__(self, autoscaling_client): """ :param autoscaling_client: A Boto3 Amazon EC2 Auto Scaling client. """ self.autoscaling_client = autoscaling_client def create_group( self, group_name: str, group_zones: List[str], launch_template_name: str, min_size: int, max_size: int, ) -> None: """ Creates an Auto Scaling group. :param group_name: The name to give to the group. :param group_zones: The Availability Zones in which instances can be created. :param launch_template_name: The name of an existing Amazon EC2 launch template. The launch template specifies the configuration of instances that are created by auto scaling activities. :param min_size: The minimum number of active instances in the group. :param max_size: The maximum number of active instances in the group. :return: None :raises ClientError: If there is an error creating the Auto Scaling group. """ try: self.autoscaling_client.create_auto_scaling_group( AutoScalingGroupName=group_name, AvailabilityZones=group_zones, LaunchTemplate={ "LaunchTemplateName": launch_template_name, "Version": "$Default", }, MinSize=min_size, MaxSize=max_size, ) # Wait for the group to exist. waiter = self.autoscaling_client.get_waiter("group_exists") waiter.wait(AutoScalingGroupNames=[group_name]) logger.info(f"Successfully created Auto Scaling group {group_name}.") except ClientError as err: error_code = err.response["Error"]["Code"] logger.error(f"Failed to create Auto Scaling group {group_name}.") if error_code == "AlreadyExistsFault": logger.error( f"An Auto Scaling group with the name '{group_name}' already exists. " "Please use a different name or update the existing group.", ) elif error_code == "LimitExceededFault": logger.error( "The request failed because you have reached the limit " "on the number of Auto Scaling groups or launch configurations. " "Consider deleting unused resources or request a limit increase. " "\nSee Auto Scaling Service Quota documentation here:" "\n\thttps://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html" ) logger.error(f"Full error:\n\t{err}") raise
-
API の詳細については、CreateAutoScalingGroup for Python (Boto3) Word リファレンス」を参照してください。 AWS SDK API
-
- Rust
-
- Rust のSDK
-
注記
GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリ
での設定と実行の方法を確認してください。 async fn create_group(client: &Client, name: &str, id: &str) -> Result<(), Error> { client .create_auto_scaling_group() .auto_scaling_group_name(name) .instance_id(id) .min_size(1) .max_size(5) .send() .await?; println!("Created AutoScaling group"); Ok(()) }
-
API の詳細については、CreateAutoScalingGroup
AWS SDK for Rust API リファレンス」を参照してください。
-