Home‎ > ‎Service‎ > ‎

AmazonEC2

081230_00_22

ずいぶん長い間いじってなかったし、たぶん、しばらくいじることはないと思うのだが、
Morph AppSpace などをつかうととても便利にアプリ構築とかできるっぽい。




Amazon EC2 は、Amazonが提供しているWebServiceのひとつで、論理serverを提供するサービスです。
一種のレンタルサーバみたいなものと考えて良いでしょう。

しばらくサインアップを停止していたらしいEC2ですが、2007年1月16日現在、できるようになっているらしいです。
http://www.tatamilab.jp/rnd/archives/000359.html

特長 

  • 1.7Ghz x86 processor, 1.75GB of RAM, 160GB of local disk, and 250Mb/s of network bandwidth.

よく使うコマンド 

ローカル側

ec2-describe-images
ec2-describe-instances
ec2-run-instances ami-61a54008 -k gsg-keypair
ec2-terminate-instances i-10a64379
ssh -i id_rsa-gsg-keypair root@domU-12-34-31-00-00-05.usma1.compute.amazonaws.com

導入 

米Amazon のアカウント作成 

まずは、ここからです。 http://www.amazon.com/gp/browse.html?node=3435361

S3の登録 

さて、EC2を使うには、S3サービスにも登録しておく必要があります。
Amazon Simple Storage Service (Amazon S3)
(自分の環境を構築して保存するために必要です。パブリックで提供されているイメージをRunするだけなら必要ありません。)
S3の料金は下記の通りです。

  • $0.15 per GB-Month of storage used.
  • $0.20 per GB of data transferred.

支払いはクレジットカードのみです。

EC2の登録 

現在EC2はβとして提供されており、加入制限がかかっているようです。申し込みをしておくと、数日後に登録用メールが来ました。 EC2の料金は下記の通りです。

  • $0.10 per instance-hour consumed (or part of an hour consumed).
  • $0.20 per GB of data transferred outside of Amazon (i.e., Internet traffic).
  • $0.15 per GB-Month of Amazon S3 storage used for your images (charged by Amazon S3).

支払いはクレジットカードのみです。

準備 

登録ができたら、いくつか準備しておくことがあります。
基本的には、下記チュートリアル通りにやっていけば、なんとかなるとおもいます。

winの場合は、puttyとかもいる

http://docs.amazonwebservices.com/AmazonEC2/gsg/2006-06-26/?ref=get-started

インストール作業ログ 

Java JRE 1.5以上が必要とのこと。こんな感じで出ればオッケ。

$ $JAVA_HOME/bin/java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

公開鍵と秘密鍵つくる
X.509 Certificate で、キーを作る。
二つのファイルがいる。

ツールのダウンロード
http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=84
Amazon EC2 Command-Line Tools は必須

公開鍵と秘密鍵の入れ場所つくる

mkdir .ec2
cot .bash_profile

.ec2には、ダウンロードした公開鍵と秘密鍵をいれておく

このあたりを、.bash_profileに追加

export JAVA_HOME=<PATH>
export EC2_HOME=<path-to-tools>
export PATH=$PATH:$EC2_HOME/bin
export EC2_PRIVATE_KEY=~/.ec2/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
export EC2_CERT=~/.ec2/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXX.pem

RSAキーの生成

PROMPT>  ec2-add-keypair gsg-keypair 
KEYPAIR gsg-keypair ≈
-----BEGIN RSA PRIVATE KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END RSA PRIVATE KEY-----

BIGIN の行から END の行までコピーしてid_rsa-gsg-keypair というファイルを作る。

chmod 600 id_rsa-gsg-keypair ; ls -l id_rsa-gsg-keypair 

サーバインスタンスの実行

ec2-run-instances ami-61a54008 -k gsg-keypair

しばらく待つ。下記のコマンドで、domU ってところが出てきたら起動ができた状態。

ec2-describe-instances i-10a64379 
RESERVATION r-fea54097 495219933132
INSTANCE i-10a64379 ami-61a54008 domU-XXXXXXXXX.usma1.compute.amazonaws.com running gsg-keypair

起動できたら、ログインしてみましょう

PROMPT>  ssh -i id_rsa-gsg-keypair root@domU-XXXXXXXXX.usma1.compute.amazonaws.com ~
The authenticity of host 'domU-XXXXXXXXX.usma1.compute.amazonaws.com (216.182.225.42)' can't be established.
RSA key fingerprint is XXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'domU-XXXXXXXXX.usma1.compute.amazonaws.com' (RSA) to the list of known hosts.
Last login: Wed Jun 21 08:02:08 2006
root@my-instance #

とりあえず、ここまでかいてみた。 後、イメージ作るのとか、アップロードするのとかあるとおもう。

ローカル側

scp -i  id_rsa-gsg-keypair  ~/.ec2/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXX.pem ~

/.ec2/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXX.pem root@domU-XXXXXXXXXXXXXXXXXXXXXXXXXXX.usma1.compute.amazonaws.com:

ec2-register XXXXXX/ec2/image.manifest
ec2-run-instances ami-21b55048
ec2-describe-images
ec2-describe-instances
ec2-terminate-instances i-2ac32743
ec2-describe-instances
ec2-describe-instances
scp id_rsa-gsg-keypair ~/Desktop/rubygems-0.9.0.tgz XXXXXXX@domU-XXXXXXXXXXXXXXXXXXXXXXXXXXX.usma2.compute.amazonaws.com:

サーバ側

useradd userid
passwd password
cd /etc
chmod 640 sudoers
vim sudoers
cat sudoers
chmod 440 sudoers
ec2-bundle-vol -d /mnt -k ~root/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXX.pem -u 395388059357 -s 1536 ~
98 ec2-upload-bundle -b <your-s3-bucket> -m /mnt/image.manifest -a <aws-access-key-id> -s <aws-secret-access-key>

Railsをいれてみる

全部CUIでやるのはきついので、ファイルは落としておいた。 で、sshでコピーしておく。

  scp  id_rsa-gsg-keypair  ~/Desktop/rubygems-0.9.0.tgz  XXXXXXXXX@domU-XXXXXXXXXXXXXXXXXXXXXXXXXXX.usma2.compute.amazonaws.com

今度は、EC2の仮想サーバ

  tar xzvf rubygems-0.9.0.tgz 
cd rubygems-0.9.0
sudo rum install ruby
sudo yum install rdoc
sudo yum install ruby-devel
sudo ruby setup.rb
sudo gem install rails --include-dependencies
cd ~
rails test
cd test
sudo apachectl stop
sudo script/server -p 80

感想


先にS3を試してみたわけだけど、EC2の申し込みしたらば、どうぞ〜メールが来ていたのでこちらも試してみた。
レンタルサーバみたいなもんなので、S3よりはちょいめんどい。
Railsとかインストールして動くのは確認して、AMIというディスクイメージをS3に保存してみたりもした。
Getting Started Guide が英語ながらも懇切丁寧だったので、ほとんどひっかからなかった。
でだね。普通のレンタルサーバと比べてどうなの?っていうと個人がちょっとお遊びで使う分にはこっちは微妙だったりするかも?
課金体系は、1時間サーバのインスタンスを動かしていると0.1$かかる。というか1回起動すると1分だろうが1時間とカウントされる。起動に時間がかかるというのに気がついてなっくって、最初10個ぐらいインスタンスをたちあげてしまった。orz
計算すると、24時間だと2.4$ 30日だと72$となるわけだ。企業だったらはした金だろうけど、ちょい遊びというのには辛い。
後、データの転送に$0.20/GBかかる。こっちは、お遊びでやってる分には全然いかない。インストールのためにファイルをダウンロードしたり、ちょっとアクセス確認しただけな訳なので、0.01$程度しかかかってなかった。
他に、E3のほうで、$0.15/GB-Monthの保存料がかかる。

1.7Ghz Xeon CPU、 1.75GB RAM、160GB の local disk 250Mb/s のネットワーク帯域が想定構成になってるらしい。

仕事に使うんだったら、場合によってはお得?かもしれない。
このあたりの金銭感覚ないので、よくわからん。

もっとやすかったら、簡単にRailsアプリ作って公開してあそべるかなとおもったのだけど。











Comments