あったらしくるえるはてなくしょん

id:kskmeuk あったらしく

Amazon EC2 が面白かった。

EC2面白いですね。個人だとちょっと金額は高いけどサービスは面白いかな...って俺、いまさら!!いまさらすぎww 他の人が書いてるので、自分用です。

ローカル側はMacBookでやる形です。それから、Firefox の S3 Organizer や Elastic Fox や Amazon の Management Console なんかは便利なのでどんどん使っちゃう形です... 各作者さんありがとうありがとう。ブラウザでできることはきっと見ればわかります。登録とかは割愛。自分が怪しいところだけメモ。

諸設定 Local編

.bashrc .bash_profile の準備

EC2 関連のファイルを Documents/EC2 においたとして、それからコマンドラインツールは EC2/bin に展開して、キーファイルもEC2 に置いたとしたら...

.bashrc の中身 でPATHを通します。

export EC2_HOME=~/Documents/EC2
export PATH=$PATH:$EC2_HOME/bin
export EC2_PRIVATE_KEY=$EC2_HOME/pk-***.pem
export EC2_CERT=$EC2_HOME/cert-***.pem
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home

.bash_profile の中身

source ~/.bashrc

これで、

$ ec2ver
1.3-36506 2009-04-04

とか返ってくるとokな感じ。ec2 でタブしたらうじゃうじゃ出てきたらたぶんあってるw。
ローカルで ec2-register が使えるようにしとくとよさげ。

ssh するとき。

ssh -o ServerAliveInterval=60 -i keypair.pem root@IPアドレス

で、入る。
入ってしまえばインスタンスイメージにもよるけど、普通にLinuxdomU。やっぱり sshできると、うれしいですね。Amazon 公式イメージは Fedora なので yum を知っておくと便利。keepAlive するのは、AMIを作ったりとかの、処理の長い作業をするときだけでよいと思います。
で、ssh したらあとは EC2 での作業。

諸設定 Remote 編

s3sync.rb は有った方がいいと思う。

わりと何でもかんでも s3 に置いてしまうと安心ではあるし、s3sync.rb が便利なので設定しちゃいます。
Amazon EC2/S3を使ってみた - 8.EC2とS3のデータを同期させる(S3Syncを使う) - 元RX-7乗りの適当な日々 id:rx7 さんのこれに従ってやるのおすすめ。ありがとうございます。
基本はディレクトリ単位で S3のバケット配下に丸コピーする感じになります。

私はs3sync.rb 良く使うので、Remote の .bash_profile の PATH を追加します。
.bash_profile の PATH の行が..

PATH=$PATH:$HOME/bin:/usr/local/s3sync

このかたち。ちなみに、こちらはMacBook じゃなくて Remote 側ですよ。あと

$source .bash_profile

して有効にしましょう。

それから、
/etc/s3conf/s3config.yml に、

aws_access_key_id: あなたのaccess_key
aws_secret_access_key: あなたのsecret_access_key

を書いておきます。

AMI イメージの 作成と転送と登録
作成

これを知ってると安心してインストールを落とせるので重要!!
リモート側に、二つの鍵を送って、あとは自分の12桁の 1111-2222-3333 みたいな値を

ec2-bundle-vol -d /mnt -k /mnt/pk-**.pem -c /mnt/cert-**.pem -u 111122223333

の形で走らせると、image* がどびゃーーっとできますw ゴールまでたどり着いたら、image.manifest.xml が出来てるはず。

このときに

-p hoge

とかしておくと image の prefix が hoge になるので名前を付けたいときに便利です。

転送

これができたら、

ec2-upload-bundle --bucket バケット名 --manifest image.manifest.xml --access-key あなたのaccess_key --secret-key あなたのsecret_access_key

これをすると、バケットに upload されます。 たまに転送途中で失敗することがあって、image.part.43 のファイルでとまったときはオプションをつけて、

--part 43

とかオプションつけてやると、途中から続きのファイルをおくれて素敵です。

ここまでやったらリモートはおしまい!!

かえってきた MacBook

登録はMacBook

アップがおわったら..

ec2-register バケット名/image.manifest.xml

これをすると、自分の AMI が登録されます。
今度からは、このイメージがぼうけんのしょ、みたいな感じで、イメージからLaunch すると続きから出来る!!すごい。
なので、インスタンスを落としても大丈夫になります。よく考えよう!! お金は大事だよ。時間課金なんだから、落とせるときは落とそう。それがオトナです。エコかつエゴですw

まとめ

つかってみて思った

個人で使うと small インスタンスたてっぱなしで時間だと安く見えるけど、月や年単位だとけっこうかかっちゃいますね。
ただ、あなたにクラウドのパワーをっていう観点ではすごくありがたい。あと、普通にサーバをまるごと使えるので、レンタルやホスティングだけではできなかった、あんなことやこんなことも出来ちゃったりします。なので、将来や未来を見たかったらEC2でも良いのかもしれません。
ちょちょっと作ったサービスが大好評になったら、ロードバランスとかサーバ追加とかは、視野に入れやすいですし、バックアップ他をあの手この手でできるのもよいとおもいます。

本格的に使いたくはなっちゃいました。

このエントリで書かれていない事

yuguiさんのぱくりかよ!! ただ、数点重要なことがあります。

  • Security Group の設定、重要だけど書いてません。IP制限とか、あと変なサービスはたてないに越した事はないです。
  • 登録やFirefoxのアドオン他の詳細、また他のコマンドの使い方も他にたくさん詳しい方がいらっしゃるので書いてません。
  • EC2 たのしいよっていう楽しさはたぶん伝わってないと思う..w orz
  • 外付けディスクみたいなEBS のほうが S3 より便利じゃん!! っていう話もあります。EBS ノータッチすぎだろ...jk