Java 2.x 用 SDK を使用したAuto Scaling 例 - AWSSDK コードサンプル

AWSDocAWS SDKGitHub サンプルリポジトリには、さらに多くの SDK サンプルがあります

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

Java 2.x 用 SDK を使用したAuto Scaling 例

次のコード例は、AWS SDK for Java 2.xでの Auto Scaling を使用してアクションを実行する方法を示しています。

アクション」は、個々のサービス関数の呼び出し方法を示すコードの抜粋です。

シナリオ」は、同じサービス内で複数の関数を呼び出して、特定のタスクを実行する方法を示すコード例です。

それぞれの例にはGitHub、へのリンクがあり、コンテキストでコードを設定および実行する方法についての説明が記載されています。

アクション

次のコード例は、Auto Scaling グループを作成する方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void createAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName, String launchTemplateName, String serviceLinkedRoleARN, 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) .serviceLinkedRoleARN(serviceLinkedRoleARN) .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 の詳細については、AWS SDK for Java 2.xAPI CreateAutoScalingGroupリファレンスのを参照してください

次のコード例は、Auto Scaling グループを削除する方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void deleteAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName) { try { DeleteAutoScalingGroupRequest deleteAutoScalingGroupRequest = DeleteAutoScalingGroupRequest.builder() .autoScalingGroupName(groupName) .forceDelete(true) .build() ; autoScalingClient.deleteAutoScalingGroup(deleteAutoScalingGroupRequest) ; System.out.println("You successfully deleted "+groupName); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • API の詳細については、AWS SDK for Java 2.xAPI DeleteAutoScalingGroupリファレンスのを参照してください

次のコード例は、Auto ScalingCloudWatch グループに対するメトリクス収集を無効にする方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void disableMetricsCollection(AutoScalingClient autoScalingClient, String groupName) { try { DisableMetricsCollectionRequest disableMetricsCollectionRequest = DisableMetricsCollectionRequest.builder() .autoScalingGroupName(groupName) .metrics("GroupMaxSize") .build(); autoScalingClient.disableMetricsCollection(disableMetricsCollectionRequest); System.out.println("The disable metrics collection operation was successful"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • API の詳細については、AWS SDK for Java 2.xAPI DisableMetricsCollectionリファレンスのを参照してください

次のコード例は、Auto ScalingCloudWatch グループに対するメトリクス収集を有効にする方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void enableMetricsCollection(AutoScalingClient autoScalingClient, String groupName) { try { EnableMetricsCollectionRequest collectionRequest = EnableMetricsCollectionRequest.builder() .autoScalingGroupName(groupName) .metrics("GroupMaxSize") .granularity("1Minute") .build(); autoScalingClient.enableMetricsCollection(collectionRequest); System.out.println("The enable metrics collection operation was successful"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • API の詳細については、AWS SDK for Java 2.xAPI EnableMetricsCollectionリファレンスのを参照してください

次のコード例は、Auto Scaling グループに関する情報を取得する方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static String getAutoScaling( AutoScalingClient autoScalingClient, String groupName) { try{ String instanceId = ""; DescribeAutoScalingGroupsRequest scalingGroupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); DescribeAutoScalingGroupsResponse response = autoScalingClient.describeAutoScalingGroups(scalingGroupsRequest); List<AutoScalingGroup> groups = response.autoScalingGroups(); for (AutoScalingGroup group: groups) { System.out.println("The group name is " + group.autoScalingGroupName()); System.out.println("The group ARN is " + group.autoScalingGroupARN()); List<Instance> instances = group.instances(); for (Instance instance : instances) { instanceId = instance.instanceId(); } } return instanceId; } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  • API の詳細については、AWS SDK for Java 2.xAPI DescribeAutoScalingGroupsリファレンスのを参照してください

次のコード例は、Auto Scaling DB インスタンスの情報を取得する方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void describeAutoScalingInstance( AutoScalingClient autoScalingClient, String id) { try { DescribeAutoScalingInstancesRequest describeAutoScalingInstancesRequest = DescribeAutoScalingInstancesRequest.builder() .instanceIds(id) .build(); DescribeAutoScalingInstancesResponse response = autoScalingClient.describeAutoScalingInstances(describeAutoScalingInstancesRequest); List<AutoScalingInstanceDetails> instances = response.autoScalingInstances(); for (AutoScalingInstanceDetails instance:instances ) { System.out.println("The instance lifecycle state is: "+instance.lifecycleState()); } } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

次のコード例は、Auto Scaling アクティビティに関する情報を取得する方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void describeScalingActivities(AutoScalingClient autoScalingClient, String groupName) { try { DescribeScalingActivitiesRequest scalingActivitiesRequest = DescribeScalingActivitiesRequest.builder() .autoScalingGroupName(groupName) .maxRecords(10) .build(); DescribeScalingActivitiesResponse response = autoScalingClient.describeScalingActivities(scalingActivitiesRequest); List<Activity> activities = response.activities(); for (Activity activity: activities) { System.out.println("The activity Id is "+activity.activityId()); System.out.println("The activity details are "+activity.details()); } } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • API の詳細については、AWS SDK for Java 2.xAPI DescribeScalingActivitiesリファレンスのを参照してください

次のコード例は、Auto Scaling グループに必要な容量を設定する方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void setDesiredCapacity(AutoScalingClient autoScalingClient, String groupName) { try { SetDesiredCapacityRequest capacityRequest = SetDesiredCapacityRequest.builder() .autoScalingGroupName(groupName) .desiredCapacity(2) .build(); autoScalingClient.setDesiredCapacity(capacityRequest); System.out.println("You have set the DesiredCapacity to 2"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • API の詳細については、AWS SDK for Java 2.xAPI SetDesiredCapacityリファレンスのを参照してください

次のコード例は、Auto Scaling グループ内のインスタンスを終了する方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void terminateInstanceInAutoScalingGroup(AutoScalingClient autoScalingClient, String instanceId){ try { TerminateInstanceInAutoScalingGroupRequest request = TerminateInstanceInAutoScalingGroupRequest.builder() .instanceId(instanceId) .shouldDecrementDesiredCapacity(false) .build(); autoScalingClient.terminateInstanceInAutoScalingGroup(request); System.out.println("You have terminated instance "+instanceId); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

次のコード例は、Auto Scaling グループの設定を更新する方法を示しています。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

public static void updateAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName, String launchTemplateName, String serviceLinkedRoleARN) { try { AutoScalingWaiter waiter = autoScalingClient.waiter(); LaunchTemplateSpecification templateSpecification = LaunchTemplateSpecification.builder() .launchTemplateName(launchTemplateName) .build(); UpdateAutoScalingGroupRequest groupRequest = UpdateAutoScalingGroupRequest.builder() .maxSize(3) .serviceLinkedRoleARN(serviceLinkedRoleARN) .autoScalingGroupName(groupName) .launchTemplate(templateSpecification) .build(); autoScalingClient.updateAutoScalingGroup(groupRequest); DescribeAutoScalingGroupsRequest groupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); WaiterResponse<DescribeAutoScalingGroupsResponse> waiterResponse = waiter.waitUntilGroupInService(groupsRequest); waiterResponse.matched().response().ifPresent(System.out::println); System.out.println("You successfully updated the auto scaling group "+groupName); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • API の詳細については、AWS SDK for Java 2.xAPI UpdateAutoScalingGroupリファレンスのを参照してください

シナリオ

次のコード例は、以下の操作方法を示しています。

  • 起動テンプレートとアベイラビリティーゾーンを使用して、、、、、、、、実行中のインスタンスに関する情報を取得します。

  • AmazonCloudWatch メトリクスの収集を有効にします。

  • グループの希望容量を更新し、インスタンスが起動するのを待ちます。

  • グループ内のインスタンスを削除します。

  • ユーザーのリクエストや容量の変更に応じて発生するスケーリングアクティビティを一覧表示します。

  • CloudWatchメトリクスの統計を取得して、リソースをクリーンアップする。

SDK for Java 2.x
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

/** * 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 * * In addition, create a launch template. For more information, see the following topic: * * https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template * * This code example performs the following operations: * 1. Creates an Auto Scaling group using an AutoScalingWaiter. * 2. Gets a specific Auto Scaling group and returns an instance Id value. * 3. Describes Auto Scaling with the Id value. * 4. Enables metrics collection. * 5. Update an Auto Scaling group. * 6. Describes Account details. * 7. Describe account details" * 8. Updates an Auto Scaling group to use an additional instance. * 9. Gets the specific Auto Scaling group and gets the number of instances. * 10. List the scaling activities that have occurred for the group. * 11. Terminates an instance in the Auto Scaling group. * 12. Stops the metrics collection. * 13. Deletes the Auto Scaling group. */ public class AutoScalingScenario { public static final String DASHES = new String(new char[80]).replace("\0", "-"); public static void main(String[] args) throws InterruptedException { final String usage = "\n" + "Usage:\n" + " <groupName> <launchTemplateName> <serviceLinkedRoleARN> <vpcZoneId>\n\n" + "Where:\n" + " groupName - The name of the Auto Scaling group.\n" + " launchTemplateName - The name of the launch template. \n" + " serviceLinkedRoleARN - The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses.\n" + " vpcZoneId - A subnet Id for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created.\n" ; if (args.length != 4) { System.out.println(usage); System.exit(1); } String groupName = args[0]; String launchTemplateName = args[1]; String serviceLinkedRoleARN = args[2]; String vpcZoneId = args[3]; AutoScalingClient autoScalingClient = AutoScalingClient.builder() .region(Region.US_EAST_1) .credentialsProvider(ProfileCredentialsProvider.create()) .build(); System.out.println(DASHES); System.out.println("Welcome to the Amazon EC2 Auto Scaling example scenario."); System.out.println(DASHES); System.out.println(DASHES); System.out.println("1. Create an Auto Scaling group named "+groupName); createAutoScalingGroup(autoScalingClient, groupName, launchTemplateName, serviceLinkedRoleARN, vpcZoneId); System.out.println("Wait 1 min for the resources, including the instance. Otherwise, an empty instance Id is returned"); Thread.sleep(60000); System.out.println(DASHES); System.out.println(DASHES); System.out.println("2. Get Auto Scale group Id value"); String instanceId = getSpecificAutoScalingGroups(autoScalingClient, groupName); if (instanceId.compareTo("") ==0) { System.out.println("Error - no instance Id value"); System.exit(1); } else { System.out.println("The instance Id value is "+instanceId); } System.out.println(DASHES); System.out.println(DASHES); System.out.println("3. Describe Auto Scaling with the Id value "+instanceId); describeAutoScalingInstance( autoScalingClient, instanceId); System.out.println(DASHES); System.out.println(DASHES); System.out.println("4. Enable metrics collection "+instanceId); enableMetricsCollection(autoScalingClient, groupName); System.out.println(DASHES); System.out.println(DASHES); System.out.println("5. Update an Auto Scaling group to update max size to 3"); updateAutoScalingGroup(autoScalingClient, groupName, launchTemplateName, serviceLinkedRoleARN); System.out.println(DASHES); System.out.println(DASHES); System.out.println("6. Describe Auto Scaling groups"); describeAutoScalingGroups(autoScalingClient, groupName); System.out.println(DASHES); System.out.println(DASHES); System.out.println("7. Describe account details"); describeAccountLimits(autoScalingClient); System.out.println("Wait 1 min for the resources, including the instance. Otherwise, an empty instance Id is returned"); Thread.sleep(60000); System.out.println(DASHES); System.out.println(DASHES); System.out.println("8. Set desired capacity to 2"); setDesiredCapacity(autoScalingClient, groupName); System.out.println(DASHES); System.out.println(DASHES); System.out.println("9. Get the two instance Id values and state"); getSpecificAutoScalingGroups(autoScalingClient, groupName); System.out.println(DASHES); System.out.println(DASHES); System.out.println("10. List the scaling activities that have occurred for the group"); describeScalingActivities(autoScalingClient, groupName); System.out.println(DASHES); System.out.println(DASHES); System.out.println("11. Terminate an instance in the Auto Scaling group"); terminateInstanceInAutoScalingGroup(autoScalingClient, instanceId); System.out.println(DASHES); System.out.println(DASHES); System.out.println("12. Stop the metrics collection"); disableMetricsCollection(autoScalingClient, groupName); System.out.println(DASHES); System.out.println(DASHES); System.out.println("13. Delete the Auto Scaling group"); deleteAutoScalingGroup(autoScalingClient, groupName); System.out.println(DASHES); System.out.println(DASHES); System.out.println("The Scenario has successfully completed." ); System.out.println(DASHES); autoScalingClient.close(); } public static void describeScalingActivities(AutoScalingClient autoScalingClient, String groupName) { try { DescribeScalingActivitiesRequest scalingActivitiesRequest = DescribeScalingActivitiesRequest.builder() .autoScalingGroupName(groupName) .maxRecords(10) .build(); DescribeScalingActivitiesResponse response = autoScalingClient.describeScalingActivities(scalingActivitiesRequest); List<Activity> activities = response.activities(); for (Activity activity: activities) { System.out.println("The activity Id is "+activity.activityId()); System.out.println("The activity details are "+activity.details()); } } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void setDesiredCapacity(AutoScalingClient autoScalingClient, String groupName) { try { SetDesiredCapacityRequest capacityRequest = SetDesiredCapacityRequest.builder() .autoScalingGroupName(groupName) .desiredCapacity(2) .build(); autoScalingClient.setDesiredCapacity(capacityRequest); System.out.println("You have set the DesiredCapacity to 2"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void createAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName, String launchTemplateName, String serviceLinkedRoleARN, 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) .serviceLinkedRoleARN(serviceLinkedRoleARN) .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); } } public static void describeAutoScalingInstance( AutoScalingClient autoScalingClient, String id) { try { DescribeAutoScalingInstancesRequest describeAutoScalingInstancesRequest = DescribeAutoScalingInstancesRequest.builder() .instanceIds(id) .build(); DescribeAutoScalingInstancesResponse response = autoScalingClient.describeAutoScalingInstances(describeAutoScalingInstancesRequest); List<AutoScalingInstanceDetails> instances = response.autoScalingInstances(); for (AutoScalingInstanceDetails instance:instances ) { System.out.println("The instance lifecycle state is: "+instance.lifecycleState()); } } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void describeAutoScalingGroups(AutoScalingClient autoScalingClient, String groupName) { try { DescribeAutoScalingGroupsRequest groupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .maxRecords(10) .build(); DescribeAutoScalingGroupsResponse response = autoScalingClient.describeAutoScalingGroups(groupsRequest); List<AutoScalingGroup> groups = response.autoScalingGroups(); for (AutoScalingGroup group: groups) { System.out.println("*** The service to use for the health checks: "+ group.healthCheckType()); } } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static String getSpecificAutoScalingGroups(AutoScalingClient autoScalingClient, String groupName) { try{ String instanceId = ""; DescribeAutoScalingGroupsRequest scalingGroupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); DescribeAutoScalingGroupsResponse response = autoScalingClient.describeAutoScalingGroups(scalingGroupsRequest); List<AutoScalingGroup> groups = response.autoScalingGroups(); for (AutoScalingGroup group: groups) { System.out.println("The group name is " + group.autoScalingGroupName()); System.out.println("The group ARN is " + group.autoScalingGroupARN()); List<Instance> instances = group.instances(); for (Instance instance : instances) { instanceId = instance.instanceId(); System.out.println("The instance id is " + instanceId); System.out.println("The lifecycle state is " +instance.lifecycleState()); } } return instanceId ; } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return "" ; } public static void enableMetricsCollection(AutoScalingClient autoScalingClient, String groupName) { try { EnableMetricsCollectionRequest collectionRequest = EnableMetricsCollectionRequest.builder() .autoScalingGroupName(groupName) .metrics("GroupMaxSize") .granularity("1Minute") .build(); autoScalingClient.enableMetricsCollection(collectionRequest); System.out.println("The enable metrics collection operation was successful"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void disableMetricsCollection(AutoScalingClient autoScalingClient, String groupName) { try { DisableMetricsCollectionRequest disableMetricsCollectionRequest = DisableMetricsCollectionRequest.builder() .autoScalingGroupName(groupName) .metrics("GroupMaxSize") .build(); autoScalingClient.disableMetricsCollection(disableMetricsCollectionRequest); System.out.println("The disable metrics collection operation was successful"); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void describeAccountLimits(AutoScalingClient autoScalingClient) { try { DescribeAccountLimitsResponse response = autoScalingClient.describeAccountLimits(); System.out.println("The max number of auto scaling groups is "+response.maxNumberOfAutoScalingGroups()); System.out.println("The current number of auto scaling groups is "+response.numberOfAutoScalingGroups()); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void updateAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName, String launchTemplateName, String serviceLinkedRoleARN) { try { AutoScalingWaiter waiter = autoScalingClient.waiter(); LaunchTemplateSpecification templateSpecification = LaunchTemplateSpecification.builder() .launchTemplateName(launchTemplateName) .build(); UpdateAutoScalingGroupRequest groupRequest = UpdateAutoScalingGroupRequest.builder() .maxSize(3) .serviceLinkedRoleARN(serviceLinkedRoleARN) .autoScalingGroupName(groupName) .launchTemplate(templateSpecification) .build(); autoScalingClient.updateAutoScalingGroup(groupRequest); DescribeAutoScalingGroupsRequest groupsRequest = DescribeAutoScalingGroupsRequest.builder() .autoScalingGroupNames(groupName) .build(); WaiterResponse<DescribeAutoScalingGroupsResponse> waiterResponse = waiter.waitUntilGroupInService(groupsRequest); waiterResponse.matched().response().ifPresent(System.out::println); System.out.println("You successfully updated the auto scaling group "+groupName); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void terminateInstanceInAutoScalingGroup(AutoScalingClient autoScalingClient, String instanceId){ try { TerminateInstanceInAutoScalingGroupRequest request = TerminateInstanceInAutoScalingGroupRequest.builder() .instanceId(instanceId) .shouldDecrementDesiredCapacity(false) .build(); autoScalingClient.terminateInstanceInAutoScalingGroup(request); System.out.println("You have terminated instance "+instanceId); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void deleteAutoScalingGroup(AutoScalingClient autoScalingClient, String groupName) { try { DeleteAutoScalingGroupRequest deleteAutoScalingGroupRequest = DeleteAutoScalingGroupRequest.builder() .autoScalingGroupName(groupName) .forceDelete(true) .build() ; autoScalingClient.deleteAutoScalingGroup(deleteAutoScalingGroupRequest) ; System.out.println("You successfully deleted "+groupName); } catch (AutoScalingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }