前の記事では、S3に焦点を当てています。 ここでは、Elastic Compute Cloud(一般にEC2として知られています)に焦点を当てます。

1. EC2メタデータアクセス

AWS EC2MetadataUtils クラスは、AMIIDやインスタンスタイプなどのインスタンスメタデータにアクセスするための静的メソッドを提供します。 Spring Cloud AWSでは、@Valueアノテーションを使用してこのメタデータを直接挿入できます。

これを有効にするには、任意の構成クラスに@EnableContextInstanceDataアノテーションを追加します。

@Configuration
@EnableContextInstanceData
public class EC2EnableMetadata {
    //
}

Spring Boot環境では、インスタンスメタデータはデフォルトで有効になっているため、この構成は必要ありません

次に、値を挿入できます。

@Value("${ami-id}")
private String amiId;

@Value("${hostname}")
private String hostname;

@Value("${instance-type}")
private String instanceType;

@Value("${services/domain}")
private String serviceDomain;

1.1. カスタムタグ

さらに、Springはユーザー定義のタグの挿入もサポートしています。 これを有効にするには、次のXML構成を使用して、context-instance-dataで属性user-tags-mapを定義します。

<beans...>
    <aws-context:context-instance-data user-tags-map="instanceData"/>
</beans>

それでは、Spring式の構文を使用して、ユーザー定義のタグを挿入しましょう。

@Value("#{instanceData.myTagKey}")
private String myTagValue;

2. EC2クライアント

さらに、インスタンスにユーザータグが構成されている場合、Springは AmazonEC2 クライアントを作成し、@Autowiredを使用してコードに挿入できます。

@Autowired
private AmazonEC2 amazonEc2;

これらの機能は、アプリがEC2インスタンスで実行されている場合にのみ機能することに注意してください。

3. 結論

これは、SpringCloudAWSを使用してEC2dデータにアクセスするための簡単で的確な紹介でした。

シリーズの次の記事では、RDSのサポートについて説明します。

いつものように、例はGitHubから入手できます。