AWS SDK for Java를 사용하여 클러스터 서브넷 그룹 관리 - Amazon Redshift

AWS SDK for Java를 사용하여 클러스터 서브넷 그룹 관리

다음 Java 코드 예는 아래와 같은 작업을 포함하여 공통적인 클러스터 서브넷 작업을 설명한 것입니다.

  • 클러스터 서브넷 그룹 생성

  • 클러스터 서브넷 그룹에 대한 메타데이터 나열

  • 클러스터 서브넷 그룹 수정

다음 예를 실행하기 위한 단계별 지침은 Eclipse를 사용하여 Amazon Redshift의 Java 예 실행 단원을 참조하세요. 코드를 먼저 업데이트한 후 클러스터 서브넷 그룹 이름과 서브넷 식별자 2개를 입력해야 합니다.

/** * Copyright 2010-2019, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ // snippet-sourcedescription:[CreateAndModifyClusterSubnetGroup demonstrates how to create and modify an Amazon Redshift subnet group.] // snippet-service:[redshift] // snippet-keyword:[Java] // snippet-keyword:[Amazon Redshift] // snippet-keyword:[Code Sample] // snippet-keyword:[CreateClusterSubnetGroup] // snippet-keyword:[DescribeClusterSubnetGroups] // snippet-sourcetype:[full-example] // snippet-sourcedate:[2019-02-01] // snippet-sourceauthor:[AWS] // snippet-start:[] package; import; import java.util.ArrayList; import java.util.List; import*; public class CreateAndModifyClusterSubnetGroup { public static AmazonRedshift client; public static String clusterSubnetGroupName = "subnet-group-name"; // You can use the VPC console to find subnet IDs to use. public static String subnetId1 = "***provide a subnet ID****"; public static String subnetId2 = "***provide a subnet ID****"; public static void main(String[] args) throws IOException { // Default client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain} client = AmazonRedshiftClientBuilder.defaultClient(); try { createClusterSubnetGroup(); describeClusterSubnetGroups(); modifyClusterSubnetGroup(); } catch (Exception e) { System.err.println("Operation failed: " + e.getMessage()); } } private static void createClusterSubnetGroup() { CreateClusterSubnetGroupRequest request = new CreateClusterSubnetGroupRequest() .withClusterSubnetGroupName(clusterSubnetGroupName) .withDescription("my cluster subnet group") .withSubnetIds(subnetId1); client.createClusterSubnetGroup(request); System.out.println("Created cluster subnet group: " + clusterSubnetGroupName); } private static void modifyClusterSubnetGroup() { // Get existing subnet list. DescribeClusterSubnetGroupsRequest request1 = new DescribeClusterSubnetGroupsRequest() .withClusterSubnetGroupName(clusterSubnetGroupName); DescribeClusterSubnetGroupsResult result1 = client.describeClusterSubnetGroups(request1); List<String> subnetNames = new ArrayList<String>(); // We can work with just the first group returned since we requested info about one group. for (Subnet subnet : result1.getClusterSubnetGroups().get(0).getSubnets()) { subnetNames.add(subnet.getSubnetIdentifier()); } // Add to existing subnet list. subnetNames.add(subnetId2); ModifyClusterSubnetGroupRequest request = new ModifyClusterSubnetGroupRequest() .withClusterSubnetGroupName(clusterSubnetGroupName) .withSubnetIds(subnetNames); ClusterSubnetGroup result2 = client.modifyClusterSubnetGroup(request); System.out.println("\nSubnet group modified."); printResultSubnetGroup(result2); } private static void describeClusterSubnetGroups() { DescribeClusterSubnetGroupsRequest request = new DescribeClusterSubnetGroupsRequest() .withClusterSubnetGroupName(clusterSubnetGroupName); DescribeClusterSubnetGroupsResult result = client.describeClusterSubnetGroups(request); printResultSubnetGroups(result); } private static void printResultSubnetGroups(DescribeClusterSubnetGroupsResult result) { if (result == null) { System.out.println("\nDescribe cluster subnet groups result is null."); return; } for (ClusterSubnetGroup group : result.getClusterSubnetGroups()) { printResultSubnetGroup(group); } } private static void printResultSubnetGroup(ClusterSubnetGroup group) { System.out.format("Name: %s, Description: %s\n", group.getClusterSubnetGroupName(), group.getDescription()); for (Subnet subnet : group.getSubnets()) { System.out.format(" Subnet: %s, %s, %s\n", subnet.getSubnetIdentifier(), subnet.getSubnetAvailabilityZone().getName(), subnet.getSubnetStatus()); } } } // snippet-end:[]