Spring Bootでローカル環境(EC2以外)からAWSを利用する際の設定をメモしておきます。
環境
設定ファイルに定義する内容
application.yml
またはapplication.properties
に以下内容を定義してやればOKです。
application.yml
application.properties
アクセスキー IDやシークレットアクセスキー、リージョン名は${設定名}
で環境変数化していますが、ap-northeast-1
のように値を直に書いても問題ありません。
アクセスキー IDやシークレットアクセスキーはAWSにアクセスするための認証情報です。これらはローカル環境以外(EC2など)でAWSを利用する際にも必須の設定値です。
cloud.aws.stack.auto=false
については、ローカル環境ではCloudFormationのスタック名を自動取得できないため、このような設定を行っています。EC2上で動作させる場合、この設定は行う必要はありません。ちなみに、ローカル環境でこの設定を行わない場合、アプリケーション起動時に以下のようなエラーが出ます。
cloud.aws.region.auto=false
やcloud.aws.region.static=${AWS_REGION}
については、ローカル環境ではリージョン名を自動取得できないため、リージョン名を固定値で設定しています。EC2上で動作させる場合、この設定は行う必要はありません。ちなみに、ローカル環境でこの設定を行わない場合、アプリケーション起動時に以下のようなエラーが出ます。「EC2上で動作していないので、リージョン名を自動取得できません」と言われていますね。
まとめ
Spring Bootでローカル環境からAWSを利用する際の設定でした。