AWS Java API RunInstance() を使用して、カスタム AMI イメージから新しい EC2 インスタンスを開始しています。データベース URL、AWS 認証情報などの環境変数を新しい EC2 INSTANCE に渡すにはどうすればよいですか?
3 に答える
http://alestic.com/2009/06/ec2-user-data-scriptsは、ユーザーデータでこれを行う方法を説明しています。Java の使用に関する落とし穴については、AmazonEC2 launch with userdataを参照してください。
これは Windows では機能せず、Unix でのみ機能するという言及を見たことがあることに注意してください。
[更新] 環境変数の設定に関する詳細データ: https://forums.aws.amazon.com/message.jspa?messageID=139744
[多くのテストの後] 私にとっては、次のように環境変数を /etc/environment にエコーするのが最適です。
reservation = connection.run_instances(image_id = image_id,
key_name = keypair,
instance_type = 'm1.small',
security_groups = ['default'],
user_data = '''#!/bin/sh\necho export foozle=barzle >> /etc/environment\n''')
次に、ログイン時に:
ubuntu@ip-10-190-81-29:~$ echo $foozle
barzle
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.htmlで説明されているように、インスタンス メタデータの取得も使用できます。
上記のドキュメントから、次の GET リクエストをインスタンス内から実行すると、インスタンスのユーザー データが取得されます。
GET http://169.254.169.254/latest/user-data
このようにして、インスタンスがすでに開始され実行されている後でも、ユーザー データを動的に取得できます。