プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Amazon EC2 Command Line Toolのセットアップ

 Amazon EC2 Resource Centerからec2-api-tools.zipをダウンロードします。7MBくらいあるので、それなりに時間が掛かります。
 ダウンロード後は、解凍して環境変数の設定をすれば終わりです。JAVA_HOMEの設定もお忘れなく。Macの場合、/Library/Java/Home

$ unzip ec2-api-tools.zip
$ ln -s ec2-api-tools-1.2-13740/ ec2-api-tools
$export EC2_HOME=~/develp/amazon/ec2-api-tools
$export PATH=$PATH:$EC2_HOME/bin 
$export EC2_PRIVATE_KEY=$EC2_HOME/pk-***********.pem
$export EC2_CERT=$EC2_HOME/cert-***********.pem

 そして、いよいよインスタンスの起動へ。使えるインスタンスのリストを表示します。2個目のカラムが、AMIのIDでこれが必要になってきます。

$ ec2-describe-images -o self -o amazon
IMAGE   ami-20b65349    ec2-public-images/fedora-core4-base.manifest.xml       amazon   available       public
IMAGE   ami-22b6534b    ec2-public-images/fedora-core4-mysql.manifest.xml      amazon   available       public
IMAGE   ami-23b6534a    ec2-public-images/fedora-core4-apache.manifest.xml     amazon   available       public
IMAGE   ami-25b6534c    ec2-public-images/fedora-core4-apache-mysql.manifest.xmlamazon  available       public
IMAGE   ami-26b6534f    ec2-public-images/developer-image.manifest.xml  amazon available        public
IMAGE   ami-2bb65342    ec2-public-images/getting-started.manifest.xml  amazon available        public
IMAGE   ami-36ff1a5f    ec2-public-images/fedora-core6-base-x86_64.manifest.xmlamazon   available       public
IMAGE   ami-bd9d78d4    ec2-public-images/demo-paid-AMI.manifest.xml    amazon available        public  A79EC0DB

 インスタンスの詳細については良く解らないけど、fedora-core4-apache-mysql.manifest.xmlが良さげ。(詳細については、Public AMIsにありました。)

 インスタンスを決定したら、RSA Keyペアを作ります。キーの名前は何でも良いのですが、例に倣ってgsg-keypairとします。

$ ec2-add-keypair gsg-keypair 
KEYPAIR gsg-keypair  1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f 
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQBuLFg5ujHrtm1jnutSuoO8Xe56LlT+HM8v/xkaa39EstM3/aFxTHgElQiJLChp
HungXQ29VTc8rc1bW0lkdi23OH5eqkMHGhvEwqa0HWASUMll4o3o/IX+0f2UcPoKCOVUR+jx71Sg
5AU52EQfanIn3ZQ8lFW7Edp5a3q4DhjGlUKToHVbicL5E+g45zfB95wIyywWZfeW/UUF3LpGZyq/
ebIUlq1qTbHkLbCC2r7RTn8vpQWp47BGVYGtGSBMpTRP5hnbzzuqj3itkiLHjU39S2sJCJ0TrJx5
i8BygR4s3mHKBj8l+ePQxG1kGbF6R4yg6sECmXn17MRQVXODNHZbAgMBAAECggEAY1tsiUsIwDl5
91CXirkYGuVfLyLflXenxfI50mDFms/mumTqloHO7tr0oriHDR5K7wMcY/YY5YkcXNo7mvUVD1pM
ZNUJs7rw9gZRTrf7LylaJ58kOcyajw8TsC4e4LPbFaHwS1d6K8rXh64o6WgW4SrsB6ICmr1kGQI7
3wcfgt5ecIu4TZf0OE9IHjn+2eRlsrjBdeORi7KiUNC/pAG23I6MdDOFEQRcCSigCj+4/mciFUSA
SWS4dMbrpb9FNSIcf9dcLxVM7/6KxgJNfZc9XWzUw77Jg8x92Zd0fVhHOux5IZC+UvSKWB4dyfcI
tE8C3p9bbU9VGyY5vLCAiIb4qQKBgQDLiO24GXrIkswF32YtBBMuVgLGCwU9h9HlO9mKAc2m8Cm1
jUE5IpzRjTedc9I2qiIMUTwtgnw42auSCzbUeYMURPtDqyQ7p6AjMujp9EPemcSVOK9vXYL0Ptco
xW9MC0dtV6iPkCN7gOqiZXPRKaFbWADp16p8UAIvS/a5XXk5jwKBgQCKkpHi2EISh1uRkhxljyWC
iDCiK6JBRsMvpLbc0v5dKwP5alo1fmdR5PJaV2qvZSj5CYNpMAy1/EDNTY5OSIJU+0KFmQbyhsbm
rdLNLDL4+TcnT7c62/aH01ohYaf/VCbRhtLlBfqGoQc7+sAc8vmKkesnF7CqCEKDyF/dhrxYdQKB
gC0iZzzNAapayz1+JcVTwwEid6j9JqNXbBc+Z2YwMi+T0Fv/P/hwkX/ypeOXnIUcw0Ih/YtGBVAC
DQbsz7LcY1HqXiHKYNWNvXgwwO+oiChjxvEkSdsTTIfnK4VSCvU9BxDbQHjdiNDJbL6oar92UN7V
rBYvChJZF7LvUH4YmVpHAoGAbZ2X7XvoeEO+uZ58/BGKOIGHByHBDiXtzMhdJr15HTYjxK7OgTZm
gK+8zp4L9IbvLGDMJO8vft32XPEWuvI8twCzFH+CsWLQADZMZKSsBasOZ/h1FwhdMgCMcY+Qlzd4
JZKjTSu3i7vhvx6RzdSedXEMNTZWN4qlIx3kR5aHcukCgYA9T+Zrvm1F0seQPbLknn7EqhXIjBaT
P8TTvW/6bdPi23ExzxZn7KOdrfclYRph1LHMpAONv/x2xALIf91UB+v5ohy1oDoasL0gij1houRe
2ERKKdwz0ZL9SWq6VTdhr/5G994CK72fy5WhyERbDjUIdHaK3M849JJuf8cSrvSb4g==
-----END RSA PRIVATE KEY----- 

こんな感じで出来るので、BEGINからENDをコピーしてファイルに保存します。ファイル名をid_rsa-gsg-keypairにして、パーミッションを600に設定します。
※ちなみ、このPRIVATE KEYは、Amazonのサンプルをそのままコピーしています。あしからず。

 ここまで来て、インスタンスの起動ができます。カラムの2つ目がインスタンスのIDです。

$ec2-run-instances ami-25b6534c -k gsg-keypair
RESERVATION     r-a51df5cc      021010746129    default
INSTANCE        i-06e7166f      ami-25b6534c                    pending gsg-keypair     0               m1.small        2007-12-24T16:25:21+0000

起動出来た模様です。すかさずインスタンスの状況確認。ec2-describe-instancesに先ほどのインスタンスのIDを引数に渡します。

$ec2-describe-instances i-06e7166f
RESERVATION     r-a51df5cc      021010746129    default
INSTANCE        i-06e7166f      ami-25b6534c    ****.compute-1.amazonaws.com domU-12-31-39-00-51-F3.compute-1.internal  running gsg-keypair     0               m1.small        2007-12-24T16:25:21+0000

元気な模様です。

使用可能なポートの設定等も出来ます。
(SSHとHTTPに絞った例)

$ec2-authorize default -p 22
$ec2-authorize default -p 80

SSHで接続。接続先は、先ほどのec2-describe-instancesで解ります。ちなみに前述のec2-authorizeでポート22を解放しておかないと接続できません。

ssh -i id_rsa-gsg-keypair root@****.compute-1.amazonaws.com    

接続後は、通常のlinuxと同様です。root権限なので、いかようにもできます。

最後に忘れては行けないのが、インスタンスの停止。時間課金なので、サーバとしてサービスを提供する場合以外は止めておきましょう。その際、S3にイメージをコピーしておかないと、また初期化されます。

$ec2-terminate-instances i-06e7166f

次は、S3への保存と独自ドメインとIPアドレスの対応付け等を試してみようと思います。