Amazon Redshift에서 AWS SDK for Java 사용 - Amazon Redshift

Amazon Redshift에서 AWS SDK for Java 사용

AWS SDK for Java는 Amazon Redshift에서 사용할 수 있도록 AmazonRedshiftClientBuilder라는 클래스를 제공합니다. AWS SDK for Java 다운로드에 대한 자세한 내용은 AWS SDK for Java 섹션을 참조하세요.

참고

AWS SDK for Java는 Amazon Redshift에 액세스할 수 있도록 스레드 세이프(thread-safe) 클라이언트를 제공합니다. 모범 사례로서 애플리케이션에서 클라이언트 하나를 생성한 후 스레드 간에 재사용해야 합니다.

AmazonRedshiftClientBuilderAwsClientBuilder 클래스를 사용하여 엔드포인트를 구성하고 AmazonRedshift 클라이언트를 생성할 수 있습니다. 그런 다음 클라이언트 객체를 사용하여 Cluster 객체의 인스턴스를 생성할 수 있습니다. Cluster 객체는 기본 Amazon Redshift Query API 동작에 매핑되는 메서드를 포함합니다. (이러한 작업에 대해서는 Amazon Redshift API Reference에서 설명합니다.) 메서드를 호출할 경우 해당 요청 객체를 만들어야 합니다. 요청 객체에는 실제 요청과 함께 전달해야 하는 정보가 포함되어 있습니다. Cluster 객체는 요청에 대한 응답으로 Amazon Redshift에서 반환하는 정보를 제공합니다.

다음 예에서는 AmazonRedshiftClientBuilder 클래스를 사용하여 엔드포인트를 구성한 후 2노드 ds2.xlarge 클러스터를 생성하는 방법을 보여줍니다.

String endpoint = "https://redshift.us-east-1.amazonaws.com/"; String region = "us-east-1"; AwsClientBuilder.EndpointConfiguration config = new AwsClientBuilder.EndpointConfiguration(endpoint, region); AmazonRedshiftClientBuilder clientBuilder = AmazonRedshiftClientBuilder.standard(); clientBuilder.setEndpointConfiguration(config); AmazonRedshift client = clientBuilder.build(); CreateClusterRequest request = new CreateClusterRequest() .withClusterIdentifier("exampleclusterusingjava") .withMasterUsername("masteruser") .withMasterUserPassword("12345678Aa") .withNodeType("ds2.xlarge") .withNumberOfNodes(2); Cluster createResponse = client.createCluster(request); System.out.println("Created cluster " + createResponse.getClusterIdentifier());

Eclipse를 사용하여 Amazon Redshift의 Java 예 실행

Eclipse를 사용하여 Java 코드 예를 실행하는 일반적인 프로세스
  1. Eclipse에서 새 AWS Java 프로젝트를 생성합니다.

    AWS Toolkit for Eclipse Getting Started Guidedml Setting up the AWS Toolkit for Eclipse 단계를 따릅니다.

  2. 현재 읽고 있는 문서의 단원에서 샘플 코드를 복사하여 프로젝트에 새로운 Java 클래스 파일로 붙여넣습니다.

  3. 코드를 실행합니다.

명령줄에서 Amazon Redshift의 Java 예 실행

명령줄에서 Java 코드 예를 실행하는 일반적인 프로세스
  1. 다음과 같이 환경을 설정한 후 테스트합니다.

    1. 작업할 디렉터리를 생성한 후 디렉터리 안에 src, binsdk 하위 폴더를 만듭니다.

    2. Java용 AWS SDK를 다운로드하여 앞에서 생성한 sdk 하위 폴더에 압축을 풉니다. SDK 압축을 풀면 sdk 폴더에 libthird-party 폴더를 포함하여 4개의 하위 디렉터리가 생성됩니다.

    3. SDK for Java에 AWS 자격 증명을 입력합니다. 자세한 내용은 AWS SDK for Java Developer GuideProviding AWS credentials in the AWS SDK for Java 섹션을 참조하세요.

    4. 작업 디렉터리에서 Java 프로그램 컴파일러(javac)와 Java 애플리케이션 런처(java)를 실행할 수 있는지 확인합니다. 다음 명령을 실행하여 확인할 수 있습니다.

      javac -help java -help
  2. .java 파일에 실행할 코드를 입력한 후 파일을 src 폴더에 저장합니다. 프로세스 설명을 위해 AWS SDK for Java를 사용한 클러스터 관리의 코드를 사용하므로 src 디렉터리의 파일 역시 CreateAndModifyClusters.java입니다.

  3. 샘플 코드를 컴파일합니다.

    javac -cp sdk/lib/aws-java-sdk-1.3.18.jar -d bin src\CreateAndModifyClusters.java

    다른 버전의 AWS SDK for Java를 사용하는 경우에는 버전에 맞춰 클래스 경로(-cp)를 조정합니다.

  4. 코드를 실행합니다. 다음 명령에서는 가독성을 높이기 위해 줄 바꿈이 추가됩니다.

    java -cp "bin; sdk/lib/*; sdk/third-party/commons-logging-1.1.1/*; sdk/third-party/httpcomponents-client-4.1.1/*; sdk/third-party/jackson-core-1.8/*" CreateAndModifyClusters

    운영 체제에 따라 필요하다면 클래스 경로 구분자를 변경하십시오. 예를 들어 Windows라면 구분자가 ";"(예 참조)이지만 Unix라면 ":"입니다. 다른 코드 예에서는 위 예에 보이는 것보다 더 많은 라이브러리가 필요할 수도 있습니다. 또는 사용하는 AWS SDK 버전에 따라 third-party 폴더 이름이 다른 경우도 있습니다. 이러한 경우에는 알맞게 클래스 경로(-cp)를 조정하십시오.

    본 문서의 샘플을 실행하려면 Amazon Redshift를 지원하는 AWS SDK 버전을 사용해야 합니다. AWS SDK for Java의 최신 버전을 얻으려면 AWS SDK for Java로 이동하세요.

엔드포인트 설정

기본적으로 AWS SDK for Java는 https://redshift.us-east-1.amazonaws.com/ 엔드포인트를 사용합니다. 다음 Java 코드 조각과 같이 client.setEndpoint 메서드를 사용해 엔드포인트를 명시적으로 설정할 수 있습니다.

client = new AmazonRedshiftClient(credentials); client.setEndpoint("https://redshift.us-east-1.amazonaws.com/");

클러스터를 프로비저닝할 수 있는 지원되는 AWS 리전 목록은 Amazon Web Services GlossaryRegions and endpoints 섹션을 참조하세요.