2012-03-19 9 views
41

私たちはインスタンスを開始し、私たちが配置したユーザーデータにアクセスしています。しかし、誰もこの操作の内部を理解していますか(Amazonの側から)?ユーザーデータを渡すとき、どの時点でVMにデータが送信されるのですか(これはXen機能ですか)、どこに格納されますか?Amazon EC2のユーザーデータはどのように機能しますか?

まず、USER_DATAのenv varとして設定されていましたが、ファイルとして渡すこともできます。そのファイルはどこに保存されていますか?すべてのインスタンスに共通するのか、それともAMIに依存しますか?

これは本質的に問題ではなく、アマゾンの行い方を知りたかっただけです。

ユーザーデータのスクリーンショット:http://d.pr/GZlY

答えて

47

ユーザデータはこのURLでシンプルなHTTPリクエストをインスタンスに提供されています:

http://169.254.169.254/latest/user-data 

アマゾンEC2インスタンス上でこのユーザデータを入れていません多くのAMIには、ユーザー・データを自動的にダウンロードして処理するようにインスタンスに指示するコードがあります。

も参照してください:

+0

おかげエリックのUser dataフィールドの内容を見ることができ、私はそれが私がしたURLを与えたものである169.254.169.254'ので '上のGoogle検索をしました探している。 http://docs.amazonwebservices.com/AWSEC2/2007-03-01/DeveloperGuide/AESDG-chapter-instancedata.html – Devrim

+7

このドキュメントの最新版は次のとおりです。http://docs.amazonwebservices.com/AWSEC2/latest/ UserGuide/AESDG-chapter-instancedata.html –

+2

この回答を追加するだけで、VMが起動しているときにユーザーデータを利用したいのであれば、私のチームと私は通常、/ etc Linuxを使用している場合は/rc.localです。 – linusthe3rd

1

AWSのユーザデータを使用すると、起動時にインスタンスに提供できるコマンド/データのセットです。たとえば、ec2インスタンスを起動していて、新しく起動したec2にdockerをインストールしたい場合は、aws ec2 configページのuserdataフィールドにbashコマンドのセットを指定することができます。

ユースケース

Hereもが皆の理解のためにvideo tutorial

1

簡単な例でAWSのユーザデータの一例を説明している:あなたは、マシンが起動すると、ファイル/tmp/testfile.txtを作成したい場合は、単純にこれらを追加することができますUser dataフィールドの2行。

#!/bin/bash 
touch /tmp/testfile.txt 

あなたのコマンドの前に先頭に#!/bin/bashを置くことを忘れないでください。あなたは、インスタンス(LinuxのAMI)を実行すると

、あなたが/var/lib/cloud/instance/user-data.txt

関連する問題