2007年5月6日日曜日

YAPC::Asiaメモ(その7)Virtualization and Package Deployment with EC2 or パッケージ配布と仮想化(Emerson Mills)・Inside Net::Amazon::EC2

今日はAmazon EC2とS3関係の2題のまとめ。

気になる利用料金が出てこなかったため、勝手に調べた。Amazon EC2のページによるとEC2のお値段はこういうことだそうだ。時間単位の課金は1分でも使えば1時間ぶんの課金が発生する。



2007年5月まで6月から
時間課金$0.10/時間/インスタンス
転送料課金
(アップロード)
$0.20/GB$0.10/GB
転送料課金
(ダウンロード)
$0.20/GB$0.18/GB(毎月最初の10TB)
$0.16/GB(次の40TB)
$0.13/GB(それ以上)


S3のお値段はこんなかんじ。





2007年5月まで6月から
容量課金$0.15/GB/月
転送料課金
(アップロード)
$0.20/GB$0.10/GB
転送料課金
(ダウンロード)
$0.20/GB$0.18/GB(毎月最初の10TB)
$0.16/GB(次の40TB)
$0.13/GB(それ以上)
リクエスト単位の課金(アップロード)なし$0.01/1000 PUT/LISTリクエスト
$0.01/10000 GETリクエストなど
DELETEリクエストは無料


安いかどうかは感じ方次第だが、個人的には基本料がかからないのがうれしいところ。個人で会社を始めたくなったときにはお世話になろうかな。

Virtualization and Package Deployment with EC2 or パッケージ配布と仮想化(Emerson Mills)

  • 自己紹介
    • AWS日本担当。実験・講演・サポート。好きなだけPerlを書いていいと言われたので入社
  • 問題
    • モジュールのインストールがなかなか成功しない(これには会場のほとんどが賛成)
    • 開発者の環境を再現するのは難しい
    • モジュールそのものより依存関係のインストールに時間がかかる(初心者はさらに大変)
  • 仮想化
    • ハードウェアの論理化、リソースの最適化
    • パッケージだけではなく環境そのものを配布する
    • ソースも暗黙の知識も同時に納品
  • EC2とは
    • アマゾンの仮想サーバにアクセスするwebサービスAPI
    • いまのところベータ。インスタンス(物理的なサーバに対応)20台まで起動できる。ベータが終われば好きなだけの台数
    • 仮想サーバのスペックは普通のレンタルサーバかそれ以上
    • 起動して、いろいろインストールして、それをイメージ化
    • イメージをサービスに登録。必要なら実行権限を設定できる(Ingyのみ実行できる、など)
    • EmersonはCatalystの環境をいろいろ作ってみている
  • Q&Aより
    • EC2はシステムの拡張が容易なのでwebのトラフィックが急に増えたときにも対応できてよい
    • 環境が似たようなイメージがたくさんできてしまわないか→それ自体は問題ではない。必要だったらインスタンスのリストから隠すことができる
    • EC2はwebアプリケーションだけではなくUDPを使ったネットワークゲームなども問題なく動く
    • ベータ版でなくなる時期についての正式な情報はまだない
Inside Net::Amazon::EC2(Jeff Kim)

  • EC2:Elastic Computing Cloud
    • バーチャルなLinuxレンタルサーバ
    • 従量課金
    • いまのところベータ。サインアップしてから使えるようになるまでやや時間がかかる
    • 複数のマシンイメージを呼び出しひとつで立ち上げ
    • パーミッションやファイアウォールの管理がグループ化したホストに対してできる
  • S3:Simple Storage Service
    • 従量課金(容量と転送料)
    • すぐにサインアップして使える(だからいますぐ使おう)
    • コンテンツは「バケツ」のなかに入れる
    • FUSE経由でマウントできる
    • 実質上、容量無制限のディスク
    • EC2はS3を使ってデータを保存
    • EC2とS3の間は転送料無料
  • Net::Amazon::EC2
    • 「クエリ」ベースのAPIを使っている
      • SOAPベースのAPIはPerlのSOAPライブラリが力不足のため使わなかった
    • 他の言語にはAPIがあったがPerlにはなかったので作った
    • メソッド:いまのところEC2のAPIにあるものはすべて実装
      • *_image(s)
        • register_image:S3上のAMIをEC2に登録
        • describe_images:インスタンス化できるAMIのリストを返す
        • deregister_image:registerの反対
      • *_instances
        • run_instances:一番重要。指定したAMIインスタンスの開始。引数はインスタンスの最小数・最大数、セキュリティグループ、ユーザデータなど
        • describe_instances:便利。走っている(と最近まで走っていた)インスタンスのリストを返す
        • terminate_instances:インスタンスの終了(変更が破棄されるため注意)
      • *_key_pair(s)
        • create_key_pair:初回のみ使う
        • describe_key_pairs:あまり使わないだろう。EC2アカウントに対しての鍵情報のクエリ
        • delete_key_pair:鍵の消去。インスタンスが走っているとアクセスできなくなるので注意
      • *_image_attribute
        • describe_image_attribute:イメージの属性を返す
        • modify_image_attribute:イメージの属性を変更(いまのところlaunch permissionのみ)
        • reset_image_attribute:イメージの属性をリセット
      • *_security_group
        • create_security_group:セキュリティグループをEC2アカウントに追加
        • describe_security_group:EC2アカウントに設定されているセキュリティグループを表示
        • delete_security_group:アカウントからセキュリティグループを削除。インスタンスが走っているときに実行したらどうなるかは不明だがやめたほうがいいだろう
      • その他
        • authorize_security_group_ingress:ネットワークパーミッション(IPアドレス、ポート)をセキュリティグループに追加
        • revoke_security_group_ingress:authorizeの反対
        • get_console_output:とても便利。仮想マシン(インスタンス)のコンソールにアクセス
        • reboot_instances:インスタンスの再起動
  • 開発予定
    • テストを改善したい。テストの自動化は難しいしテストをするたびに課金される
    • もっとOO。モジュールはOOだが返ってくるデータはOOではない
    • もっとメソッドを追加
    • EC2 APIがアップデートされるたびにこちらも変更

0 件のコメント:

コメントを投稿