Chinaunix首页 | 论坛 | 博客
  • 博客访问: 586550
  • 博文数量: 129
  • 博客积分: 6240
  • 博客等级: 准将
  • 技术积分: 1765
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-18 15:42
文章分类

全部博文(129)

文章存档

2015年(1)

2012年(3)

2011年(6)

2010年(14)

2009年(105)

我的朋友

分类: 系统运维

2009-04-03 14:40:14

このEC2HaaS(Hardware a Service)形式での提供となるため、従量制となります。

以下に料金表をしていますが、一番小規模の1あたり$0.1ながら、1vCPU(1Core)1.7Gと、なかなかです。

Instances

$0.10 - Small Instance (Default)

 

1.7 GB of memory, 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit), 160 GB of instance storage, 32-bit platform

 

$0.40 - Large Instance

 

7.5 GB of memory, 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each), 850 GB of instance storage, 64-bit platform

 

$0.80 - Extra Large Instance

 

15 GB of memory, 8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each), 1690 GB of instance storage, 64-bit platform

あと、上記のの料金とは別に通信料も発生しますが、以下の通り、1GBあたり$0.1~と、こちらもなかなかな値段設定です。

Internet Data Transfer

$0.10 per GB - all data transfer in

$0.18 per GB - first 10 TB / month data transfer out

$0.16 per GB - next 40 TB / month data transfer out

$0.13 per GB - data transfer out / month over 50 TB

 

Data transfer "in" and "out" refers to transfer into and out of Amazon EC2.

 

Data transferred between Amazon EC2 and Amazon S3-US or Amazon SimpleDB, is free of charge (i.e., $0.00 per GB), except data transferred between Amazon EC2 and Amazon S3-Europe, which will be charged at regular rates.

と、まぁこんな感じなので、1ヶ月間動かしっぱなしで、ぼちぼち使われたとしても月に$80くらいでしょうか。""ということを考えると素敵ですよね。

んじゃ、早速使ってみることにします。

証明書の取得

EC2を動かすには、X.509証明書が必要となります。

のページの右部にある「Your Service Account」にを乗せ、上から2番目の「 Account Identifiers」をすると、以下のようなページに遷移します。

X.509 Certificate」にある「Create し、2つのPrivate file」と「X.509 Certificate file」を生成し、手元にしておいてください。

EC2 -Line Tools

EC2のための操作が入った「 EC2 -Line Tools」を導入します。

以下先からして、した後、な場所に配置してください。

Developer Connection EC2 -Line Tools

http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=88&externalID=351

尚、ツールの実行にはが必要です。されていない方は、あわせてしてください。

配置が出来たら、次はの設定です。でしたら、以下の要領でを通しましょう。

export JAVA_HOME=/usr/local/java

export EC2_HOME=/usr/local/ec2-api-tools

export PATH=$PATH:$JAVA_HOME/bin:$EC2_HOME/bin

export EC2_PRIVATE_KEY=/home/rx7/pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem

export EC2_CERT=/home/rx7/cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem

の場合は、setの設定を行いましょう。

# ec2ver

1.3-19403 2008-02-01

設定が完了したら、上記のを実行し、番号が返ってきたらOKです。

()の選択

EC2で仮想を起動するためには、( )が必要となります。

これは、が提供しているもあれば、一般のが公開しているものもあります。

公開されている全てのを確認するには、以下のを実行します。

# ec2-describe-images -x all

全てのが表示されるかと思います。結構多いですよね。EC2 on あたりが気になるところ。

今回は、が提供してくれている公式を使ってみたいと思います。

が公開しているの一覧を見るには以下のを実行します。

 

# ec2-describe-images -o amazon

IMAGE   ami-bd9d78d4    ec2-public-images/demo-paid-AMI.manifest.xml    amazon  available       public  A79EC0DB        i386    machine

IMAGE   ami-26b6534f    ec2-public-images/developer-image.manifest.xml  amazon  available       public          i386    machine

IMAGE   ari-a51cf9cc    ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.i386.manifest.xml        amazon  available       public          i386    ramdisk

IMAGE   ari-b31cf9da    ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.x86_64.manifest.xml      amazon  available       public          x86_64  ramdisk

IMAGE   aki-a71cf9ce    ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.i386.manifest.xml       amazon  available       public          i386    kernel

IMAGE   aki-b51cf9dc    ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.x86_64.manifest.xml     amazon  available       public          x86_64  kernel

IMAGE   ami-f51aff9c    ec2-public-images/fedora-8-i386-base-v1.06.manifest.xml amazon  available       public          i386    machine aki-a71cf9ce    ari-a51cf9cc

IMAGE   ami-f21aff9b    ec2-public-images/fedora-8-x86_64-base-v1.06.manifest.xml       amazon  available       public          x86_64  machine aki-b51cf9dc    ari-b31cf9da

IMAGE   ami-a21affcb    ec2-public-images/fedora-core-6-x86_64-base-v1.06.manifest.xml  amazon  available       public          x86_64  machine aki-a53adfcc    ari-a23adfcb

IMAGE   ami-25b6534c    ec2-public-images/fedora-core4-apache-mysql.manifest.xml        amazon  available       public          i386    machine

IMAGE   ami-23b6534a    ec2-public-images/fedora-core4-apache.manifest.xml      amazon  available       public          i386    machine

IMAGE   ami-20b65349    ec2-public-images/fedora-core4-base.manifest.xml        amazon  available       public          i386    machine

IMAGE   ami-22b6534b    ec2-public-images/fedora-core4-mysql.manifest.xml       amazon  available       public          i386    machine

IMAGE   ami-36ff1a5f    ec2-public-images/fedora-core6-base-x86_64.manifest.xml amazon  available       public          x86_64  machine

IMAGE   ami-2bb65342    ec2-public-images/getting-started.manifest.xml  amazon  available       public          i386    machine

IMAGE   ari-a23adfcb    ec2-public-images/initrd-2.6.20-1.3002.fc6xen.ari.manifest.xml  amazon  available       public          x86_64  ramdisk

IMAGE   aki-9b00e5f2    ec2-public-images/vmlinuz-2.6.18-xenU-ec2-v1.0.i386.aki.manifest.xml    amazon  available       public          i386    kernel

IMAGE   aki-9800e5f1    ec2-public-images/vmlinuz-2.6.18-xenU-ec2-v1.0.x86_64.aki.manifest.xml  amazon  available       public          x86_64  kernel

IMAGE   aki-a53adfcc    ec2-public-images/vmlinuz-2.6.20-1.3002.fc6xen.aki.manifest.xml amazon  available       public          x86_64  kernel

今回は例として、この中の"ec2-public-images/-8---v1.06.manifest."ってのを使ってみることにします。

ので、 である"-f21aff9b"っておきましょう。

キーの設定

起動には、キーが必要となるため生成し、パーミッションを適切に変更しておきます。

# ec2-add-keypair rx7_server | sed -e "1d" > rx7_server.id

# chmod 400 rx7_server.id

 

の起動

では、いよいよ()を起動します。以下のを実行してを起動させましょう。

 

# ec2-run-instances ami-f51aff9c -k rx7_server

RESERVATION     r-5d17ef34      xxxxxxxxxxxx    default

INSTANCE        i-7739fa1e      ami-f51aff9c                    pending rx7_server     0               m1.small        2008-04-22T09:23:43+0000        us-east-1b      aki-a71cf9ce    ari-a51cf9cc

 

上の例では、何もをつけていないため、最も小規模なsmallで起動します。より大きいで起動したい場合は"--instance-type"を使いましょう。

尚、このからが発生します。

 

# ec2-describe-instances

RESERVATION     r-5d17ef34      xxxxxxxxxxxx    default

INSTANCE        i-7739fa1e      ami-f51aff9c    ec2-75-101-214-247.compute-1.amazonaws.com      domU-12-31-39-00-79-51.compute-1.internal       running rx7_server     0               m1.small        2008-04-22T09:23:43+0000        us-east-1b      aki-a71cf9ce    ari-a51cf9cc

 

の状態を見るには、上記のを使います。"running"となっているので、無事起動しているみたいです!

上記の例では、起動した"ec2-75-101-214-247.compute-1.amazonaws.com"というがついているので、っておきましょう。

の設定

初期状態では、全てのが閉じられている状態のようです。

以下のだけ通すように設定します。

# ec2-authorize default -p 22

GROUP           default

PERMISSION      default  ALLOWS  tcp     22      22      FROM    CIDR   0.0.0.0/0

 

# ec2-authorize default -p 80

GROUP           default

PERMISSION      default  ALLOWS  tcp     80      80      FROM    CIDR   0.0.0.0/0

 

では、早速

あらかじめ作っておいたキーを使ってします。先は事前にっておいたを利用します。

# ssh -i rx7_server.id root@ec2-75-101-214-247.compute-1.amazonaws.com

 

         __|  __|_  )  Fedora 8

         _|  (     /    32-bit

        ___|\___|___|

 

 Welcome to an EC2 Public Image

                       :-)

    Base

 

 --[ see /etc/ec2/release-notes ]--

 

[root@domU-12-31-39-00-79-51 ~]#

上記のような感じでできたら成功です!

動かしてみて・・・

早速ではありますが、が実用的に動かせるかどうか知りたったので、的にを動かしてみました。

使った()には、されていたので、-server-devを、することで、すぐに動かすことができました。

周りの人にも見てもらいましたが、を動かしている限りは、していたよりモッサリ感はなく、動いている感じです。細かいがたくさんあるなど多くのが発生しそうなページについては、試していませんが実用に十分耐えうると感じました。

何より、私が衝撃的だったのは、初めて EC2を体験した私が、手ぶらな状態からわずか1半で上でを稼動し始めたことです。

これは物凄いだ。ならまで買いに行って帰ってくるだけで1半かかりそうです。

誰でも簡単に、しかも!で、迅速にを立ち上げられる時代がきました!

スケーリティについても悩む必要はないです。はどんどん提供してもらえるし、利用した分だけされるだけなのです。

もう、のセッティングして通電してして、、、なんてやっている時代ではないのかもしれません。

これに全て置き換えられるわけではないことは承知していますが、少なくともを補完するHaaSであり、その代表格がこの EC2であることを覚えておくべきです。

EC2は素晴らしいなんだけど、いくつか制約事項があるよ、と書きました。

 

AMI作成

その制約事項の1つが、()を起動しているうちは問題ないけど、を停止させてしまうと、保存したの内容が失われてしまうというものです。

尚、は問題ありません。の停止は、的にはの電源をOFFにするです。

しかし、解決策が無いわけではありません。

にはS3という素晴らしい大容量が備えられています。S3に必要なを保存するようにすれば良いわけです。

しかも、EC2からS3への量はのようですので安心です。S3に保存している容量さえ気にしておけば大丈夫です。

というわけで、早速、自分でした()S3へ保存する方法を書いてみます。

その前に、、、起動後やった方が良いこと

全ての場合にあてはまるわけではありませんが、前回、 EC2で提供されている公式()を選んだのですが、当然ながら国外で作られているなので、になっていました。

 

あとは、インターネット上で稼動させるのであれば、なんかもやっておくと良いですね。

yumを使っているディストリビューション(, ...)なら、以下のような感じ。

# yum update

 

を使っているディストリビューション(, ...)なら以下のような感じでしょうか。

# apt-get update
# apt-get upgrade

 

では本題、イメージファイルの作成

イメージの作成にはX.509証明書が必要です。

尚、イメージ化されるのは/dev/sda1のみです。/dev/sda2(/mnt)はイメージ化されないので注意が必要です。

 

# scp -i rx7_server.id *.pem root@ec2-75-101-214-247.compute-1.amazonaws.com:/mnt

 

上記のような感じで、EC2インスタンスのマシンへ証明書を転送します。

次にイメージファイルへと変換します。EC2上で実行してください。

 

ec2# cd /mnt/
ec2# ec2-bundle-vol -d /mnt --privatekey pk-xxxxx.pem --cert cert-xxxxx.pem --user xxxx-xxxx-xxxx

 

上記では、「--privatekey」と「--cert」の後ろにはした2つのpemを、「--」の後ろには、番号(Account )を指定します。

尚、番号は、のページの右部にある「Your Service Account」にを乗せ、上から1番目の「Account Activity」を後に遷移するページに記されています。

 

尚、化にはしばらくがかかります。今回、私は公式をそれほどしていない状態で試してみましたが、約10分程かかりました。

 

S3

S3へ保存するには、以下のを実行します。

 

ec2# ec2-upload-bundle --bucket ${アップ先のバケット名} --manifest image.manifest.xml --access-key ${Access Key ID} --secret-key ${Secret Access Key}

 

--bucket」は所謂保存先(ット)です。ットの作成についてはコチラで。

例えば"rx7"というットを使っているとすると、あくまで例ですが"rx7/ec2_images/"とでもしておくと良いでしょう。

 

イメージファイルの登録/削除

次に、先ほどアップしたを自分のに登録します。一度EC2から抜けて実行するようにしてください。

 

# ec2-register rx7/ec2_images/fedora/image.manifest.xml
IMAGE   ami-be799cd7

上記の感じで、先程アップしたときに指定したットを、で指定するようにします。

 

# ec2-describe-images -o self
IMAGE   ami-be799cd7    rx7/ec2_images/fedora/image.manifest.xml xxxxxxxxxxxx    available       private         i386    machine aki-a71cf9ce    ari-a51cf9cc

 

上記で、登録したを確認することが出来ます。

ちなみに参考にですが、登録したしたくなったら、、、

 

# ec2-deregister ami-be799cd7

こんな感じです。"ec2-describe-images"で確認し、 を指定する形でします。

 

登録したを起動

まず、先程登録したを確認し、" "します。以下の例だと"-be799cd7"となります。

 

# ec2-describe-images -o self
IMAGE   ami-be799cd7    rx7/ec2_images/fedora/image.manifest.xml xxxxxxxxxxxx    available       private         i386    machine aki-a71cf9ce    ari-a51cf9cc

 

では、以下のような感じで起動してみましょう。要領は で紹介したものと同じです。

 

# ec2-run-instances ami-be799cd7 -k rx7_server

 

起動後、し確認してみましょう。前回の作成をしたまでの内容が残されていると思います。

このように、あらかじめ()を作ってしまえば、その状態から何個でもを起動することができます。技術のですね。

 

の停止

まだ、の停止方法を書いていなかったので紹介します。とはいっても一発なので簡単です。

まず、の状態を確認してみましょう。

 

# ec2-describe-instances
RESERVATION     r-5d17ef34      xxxxxxxxxxxx    default
INSTANCE        i-7739fa1e      ami-f51aff9c    ec2-75-101-214-247.compute-1.amazonaws.com      domU-12-31-39-00-79-51.compute-1.internal       running rx7_server     0               m1.small        2008-04-22T09:23:43+0000        us-east-1b      aki-a71cf9ce    ari-a51cf9cc

 

"running"と表示されているので、稼動している状態です。

落としたいの「("i-"から始まる番号)っておきます。上記の例だと"i-7739fa1e"となります。

 

# ec2-terminate-instances i-7739fa1e
INSTANCE        i-7739fa1e      running shutting-down

 

先程ったを指定してシャットダウンします。

 

# ec2-describe-instances
RESERVATION     r-5d17ef34      xxxxxxxxxxxx    default
INSTANCE        i-7739fa1e      ami-f51aff9c    ec2-75-101-214-247.compute-1.amazonaws.com      domU-12-31-39-00-79-51.compute-1.internal       shutting-down   rx7_server     0               m1.small        2008-04-22T09:23:43+0000        us-east-1b      aki-a71cf9ce    ari-a51cf9cc

 

状態を確認すると、シャットダウン中は"shutting-down"と表示されていますね。

 

# ec2-describe-instances
RESERVATION     r-5d17ef34      xxxxxxxxxxxx    default
INSTANCE        i-7739fa1e      ami-f51aff9c                    terminated      rx7_server     0               m1.small        2008-04-22T09:23:43+0000                aki-a71cf9ce    ari-a51cf9cc

しばらくして、停止すると"terminated"と表示されていることが確認できるかと思います。

最後におまけ

今回(2008/4/24時点)したと、の公式"ec2-public-images/-8---v1.06.manifest."について、を残しておきます。

 

ec2# cat /proc/version
Linux version 2.6.21.7-2.fc8xen (mockbuild@xenbuilder1.fedora.redhat.com) (gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)) #1 SMP Fri Feb 15 12:39:36 EST 2008

 

2.6.21です。

 

ec2# cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 65
model name      : Dual-Core AMD Opteron(tm) Processor 2218 HE
stepping        : 3
cpu MHz         : 2600.000
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu tsc msr pae mce cx8 apic mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow up pni cx16 lahf_lm cmp_legacy svm extapic cr8legacy ts fid vid ttp tm stc
bogomips        : 6502.68
clflush size    : 64

は、2000ですね。2.6GHzもの。

 
ec2# free
             total       used       free     shared    buffers     cached
Mem:       1747764     402560    1345204          0      52624     272184
-/+ buffers/cache:      77752    1670012
Swap:       917496          0     917496

当然ですが、も公表どおり1.7GBのっかっています。

ec2# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             10321208   1292032   8504888  14% /
/dev/sda2            153899044    192076 145889344   1% /mnt
none                    873880         0    873880   0% /dev/shm

もまた公表どおり160GB使える状態です。まぁ、、、前述の通りを停止すると内容は失われてしまいますが。

ですが、先日ではあるものの、を停止してもを保存したままにしておけるが新たにされました。年内には正式に提供され始めるとか。期待できそうです!

それは、を停止し、再度起動するたびにが変更されてしまうことです。が変わってしまう可能性があることは、へ登録しているを書き直さなければいけない可能性があるため、その間は名前解決できなくなり、を公開する上では非常に不便です。

しかし、先月3/27から「Elastic 」と呼ばれるが開始されました。"Elastic "は、 EC2に割り当てられるのことを指します。

 

では、この"Elastic "の概要を簡単に説明した後、使い方を紹介します。

Elastic について

EC2では、EC2用の内部セグメントで稼動しており、上位ので外部のとは1:1になっているようです。で、このが動的に割り振られる(Public と呼ばれています)ため、普段はの停止・起動を行う度にが変更されるわけです。

まぁ、貴重なというを有効するというでは、妥当なやり方ではありますよね。

そこで、登場するのが、この"Elastic "、つまりです。簡単に言うと、の起動時に、動的なPublic ではなく、静的なElastic を割り当てる(の設定)ことで、を実現しているようです。なので、Elastic の実体は、WAN側のに振っているということになります。

"Elastic "に関して、いくつか注意点を箇条書きでまとめておきます

 

  • 1つ取得した場合、1当たり$0.01の追加費用が発生する
  • 1つのに割り当てられるは最大5つまで
    • ただし、に申請することで増やしてもらうことは可能みたい
  • を取得した場合、に割り当てなくても費用は発生する
    • を開放することで、費用はかからなくなるが、再取得すると別のが割り振られる
    • つまり、「を取得 に割り当て」となり、に割り当てられている間は、は変わりません。その間は費用が発生します。に割り当てられたに紐付けることで、に割り当てることができます。
  • に割り当てた際は、反映されるまでしばらく待ちが発生する(数分)
    • ここは、するべくも頑張っている模様

と、こんなところでしょうか。

 

の取得・への割り当て

では、を取得します。

尚、版以降の「 EC2 -Line Tools」が必要ですので、古いを使われている場合はしましょう。"ec2ver"で確認できます。

 

# ec2-allocate-address
ADDRESS 75.101.157.145

 

上記のを発行するたびに新しいが取得され、その分の費用が発生しますので注意してください。

次に、以下ので稼動しているに対して先ほど取得したを割り当てます。

 

# ec2-describe-instances
RESERVATION     r-f845bd91      xxxxxxxxxxxx    default
INSTANCE        i-429a582b      ami-be799cd7    ec2-75-101-198-23.compute-1.amazonaws.com       domU-12-31-39-00-68-14.compute-1.internal       running rx7_server     0               m1.small        2008-04-24T09:38:18+0000        us-east-1b      aki-a71cf9ce    ari-a51cf9cc

 

まず、割り当てるべき""を確認します、上記の例だと"i-429a582b"となります。確認が出来たところで、に対してを割り当ててみます。

 

# ec2-associate-address -i i-429a582b 75.101.157.145
ADDRESS 75.101.157.145   i-429a582b

 

上記ので割り当て完了です。"ec2-describe-instances"が変わっていることが確認できるかと思います。

尚、最初にも書いたとおり、注意点としては実際にが反映され、通信できるようになるまでには数分かかります。を公開している場合などには注意が必要です。

 

からを分離・取得した

では、次はに割り当てているを引き剥がしてみましょう。

 

# ec2-describe-addresses
ADDRESS 75.101.157.145   i-429a582b

 

まずはしているで取得している一覧を確認し、割り当てられているを確認し、引き剥がすおよびを確認します。

 

# ec2-disassociate-address 75.101.157.145
ADDRESS 75.101.157.145

 

上記のを引き剥がします。

 

# ec2-describe-addresses
ADDRESS 75.101.157.145

 

その後、もう一度、取得している一覧を確認するとに割り当てられていないことが確認できます。

尚、引き剥がした後、"Public "が振られることになりますが、こちらも実際に反映されるまでがかかります。

とまぁ、こんな感じで割と簡単にを割り当てることが可能です。

あとは、割り当ててから即座に反映されればなんですが、そこは今後のに期待しましょう。

 

阅读(1486) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~