AWS/AWS Marketplace

AWS Marketplace 연동 가이드 | 02. AWS Marketplace Client 생성하기

행운개발자 2024. 1. 17. 01:17
728x90

AWS Marketplace 연동 가이드 | 01. AWS Marketplace Seller 계정 생성부터 x-amzn-marketplace-token 토큰 수신까지

AWS Marketplace 연동 가이드 | 02. AWS Marketplace Client 생성하기

AWS Marketplace 연동 가이드 | 03. ResolveCustomer

AWS Marketplace 연동 가이드 | 04. BatchMeterUsage


AWS Marketplace Client 생성하기

AWS Marketplace Client를 생성하는 방법은 아래와 같습니다.

public AWSMarketplaceMetering createAWSMarketplaceClient(){
    AWSMarketplaceMeteringClientBuilder builder = AWSMarketplaceMeteringClientBuilder.standard();
    return builder.build();
}

그런데 Client를 생성하는 과정에서 Credential 정보가 필요합니다. AWSMarketplaceMeteringClientBuilder 클래스의 설명을 읽어보면 DefaultAWSCredentialsProviderChain, DefaultAwsRegionProviderChain를 사용하는 것을 알 수 있습니다.

이 클래스들의 설명을 읽어보면 가장 기본적으로 SystemProperties 정보에 지정된 값을 사용하는 것을 알 수 있습니다. 각각의 클래스에서 지정하라고 하는 값은 아래와 같이 설정할 수 있습니다.

private void setAwsRegionProps() {
    System.setProperty("aws.region", conf.aws_marketplace_region);
}

private void setAwsMarketplaceClientProps() {
    // @See com.amazonaws.services.marketplacemetering.AWSMarketplaceMeteringClientBuilder#defaultClient
    // @See com.amazonaws.auth.DefaultAWSCredentialsProviderChain
    System.setProperty("aws.accessKeyId", conf.aws_marketplace_access_key);
    System.setProperty("aws.secretKey", conf.aws_marketplace_secret_access_key);
}

 

각 프로퍼티의 값을 어떻게 찾는지 모른다면 아래의 링크를 확인해주세요.

2024.01.16 - [개발/AWS Marketplace] - AWS Marketplace API Region 확인하는 방법

2024.01.16 - [개발/AWS Marketplace] - AWS API에 사용할 Access Key, Access Secret Key 발급하는 방법

2024.01.16 - [개발/AWS Marketplace] - AWS API에서 AccessKey, SecretAccessKey 대신 Role ARN 사용하기

 

여기까지 설정해주면 아래와 같이 client를 생성할 수 있습니다.

@Service
public class AwsMarketplaceApiService {
    private AWSMarketplaceMetering client;

    @PostConstruct
    public void init(){
        AWSMarketplaceMeteringClientBuilder builder = AWSMarketplaceMeteringClientBuilder.standard();
        client = builder.build();
    }
}
💡Access Key, Access Secret Key 대신 Role ARN를 사용해야한다면


아래의 문서를 확인해주세요.

2024.01.16 - [개발/AWS Marketplace] - AWS API에서 AccessKey, SecretAccessKey 대신 Role ARN 사용하기

System.setProperty를 하지 않을뿐, AWSMarketplaceMetering client를 생성하는 로직은 그대로 사용할 수 있습니다.
💡AWS Marketplace Seller 계정과 EC2 관리 계정이 다르다면

아래의 문서를 확인해주세요.

2024.01.17 - [개발/AWS Marketplace] - AWS Marketplace AssumeRole 적용하기

 

본 문서에서 다루는 모든 개념이 적용된 코드는 아래 Gist에서 확인할 수 있습니다.

 

728x90