Amazon EC2
- a Cloud Computing Environment-
自己紹介
名前
 片山 暁雄
ID
 id:c9katayama
      c95029@gmail.com
所属
 株式会社キャピタルアセットプランニング
      http://www.cap-net.co.jp
 T2Framework
      http://code.google.com/p/t-2/
Agenda

 EC2とは
 EC2の使い方
 EC2の各種サービス
 S3とは
 S3の使い方
 構築例/Tips
 EC2の利点/まとめ
EC2とは
EC2とは

 AmazonWebServicesが提供する、クラウドコンピュ
  ーティング環境
  http://aws.amazon.com/
 EC2=Elastic Compute Cloud
EC2とは
 巨大なコンピュータークラウド上に、コンピューター環境を借り
  られる
 複数の仮想コンピューターハードウェア(インスタンス)を作成
  できる
  デフォルトは20個まで。



           インスタンス!
EC2とは
 インスタンス上でOSを実行
  Red Hat Enterprise Linux
  Windows Server 2003
  Oracle Enterprise Linux
  OpenSolaris
  openSUSE Linux
  Ubuntu Linux
  Fedora
  Gentoo Linux
  Debian
EC2とは
 インスタンスは停止すると終了
  データは全部消えます
  OSの再起動は可能
外部IPアドレス
外部DNS
内部IPアドレス    ランダムに1個ずつ付与
内部DNS
EC2とは

リージョン
 アメリカとヨーロッパ
ゾーン(アベイラビリティゾーン)
 アメリカに4つ、ヨーロッパに2つ

                     4箇所



2箇所
EC2とは

SLA(Service level agreement)
  年間99.95%の稼動を保障
有償サポート
  Silver:月$100 平日の日中のみ webベース
  Gold:月$400 24時間365日 直電OK
EC2とは
 インスタンスの種類
 Standard On-Demand Instances

           ECU(CPU)            メモリ         ディスク           bit
Small      1                   1.7 GB 160GB               32bit
Large      4                   7.5 GB 850GB               64bit
           (2 virtual cores)
Extra      8                   15 GB       1690GB         64bit
Large      (4 virtual cores)
 EC2 Compute Unit (ECU) One EC2 Compute Unit (ECU) provides
 the equivalent CPU capacity of a
 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.
EC2とは
 High CPU On-Demand Instances
            ECU(CPU)            メモリ ディスク        bit
Medium      5                   1.7 GB 350GB    32bit
            (2 virtual cores)
Extra Large 20                  7 GB   1690GB   64bit
            (8 virtual cores)
EC2とは

 料金
 初期費用:0円
 月額固定費用:0円
 料金は利用に応じた従量課金



  ゆっくり使って行ってね!!
EC2とは
 インスタンス利用料
  USリージョンの場合の、 1時間あたりの課金

インスタンスタイプ               Linux   Windows
Small                   $0.10   $0.125
Large                   $0.40   $0.50
Extra Large             $0.80   $1.00
Medium(high cpu)        $0.20   $0.30
Extra Large(high cpu)   $0.80   $1.20
EC2とは
 例えば
 SmallインスタンスにLinux入れてを1ヶ月(30日)利用すると

              30(日) ×24(時間)×$0.1 = $72


 例えば
 Extra LargeインスタンスのWindowsを1時間だけぶん回すと


                 1(時間)×$1.00 = $1
EC2とは
 リザーブドインスタンス
   先に一定費用を払うと、1時間あたりの利用料が安くなる
   Wホワイトプランみたいなやーつ
   Linux/UNIXだけ

インスタンスタイプ               1年契約    3年契約    per hour
Small                   $325    $500    $0.03
Large                   $1300   $2000   $0.12
Extra Large             $2600   $4000   $0.24
Medium(high cpu)        $650    $1000   $0.06
Extra Large(high cpu)   $2600   $4000   $0.24
EC2とは
 Smallインスタンスの場合
     月の利用日で比較
80


70


60


50


                                                                                                        通常料金
40
                                                                                                        リザーブド

30


20


10


 0
     1   2   3   4   5   6   7   8   9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
EC2とは
 そのほかの費用
  インターネットとのデータIO

Data In             $0.10 per GB
Data Out            $0.17 per GB
(最初の10 TBまで)
EC2とは
 インターネットを介した通信に対する従量課金(A)
 同一リージョン・同一ゾーンの場合は無料(B)
 同一リージョン・別ゾーンの別サービス同士は無料(C)
 同一リージョン・別ゾーンのEC2同士は$0.01 per GB in/out(D)
 別リージョン間はインターネット通信に含まれる(E)

 EU        クライアント                   US
                    A         B
                                   Zone1
Zone3                        EC2     B     S3
                E

                             D        C
                                   Zone2
                             EC2           S3
EC2とは



 ちょっとAmazonの営業っぽくなってきました
EC2の使い方
EC2の使い方

 EC2の管理
  管理は、すべてAPI経由
  RESTとSOAPのAPI
  ec2-api-tools
     Javaライブラリ
     http://developer.amazonwebservices.com/co
      nnect/entry.jspa?externalID=351
EC2とは


敷居高いやないか!!
EC2の使い方

 AWS Management Console
  Webアプリ
  http://aws.amazon.com/console/
 ElasticFox
  FireFoxのプラグイン
  http://developer.amazonwebservices.com/connect/ent
   ry.jspa?externalID=609


                                    あるよ!
EC2の使い方

 インスタンスを起動しよう!
 決めること
 リージョンとゾーン
 インスタンス
 AMI
 ログイン用キーペア
 セキュリティグループ
EC2の使い方

 AMI(Amazon Machine Image)
  OS・データの入ったイメージファイル
  1つのマニフェストファイルと、分割されたデータファイル
  Amazonが用意してくれている
  自分で作成することも可能
EC2の使い方

 ログイン用キーペア
 起動したインスタンス上のAMIにログインするキーペア
 コンソールで生成
 AMI起動時に指定した公開鍵が組み込まれる
 SSH接続のときに秘密鍵を指定
EC2の使い方

 余談ですが
 putty使うときは、puttygen.exeで変換しましょう
EC2の使い方

 セキュリティグループ
 各インスタンスに適用する、セキュリティ設定のグループ
 ファイヤーウォール的なやーつ
 ホスト・ネットワーク・IPアドレス・ポート・セキュリティグループ
  レベルでアクセス許可を指定
EC2の使い方

 例:4つのグループ
 default : すべての外部ネットワークからのSSHを許可
 web:すべての外部ネットワークからHTTPを許可
 app:webからの内部通信のみ許可
 db:appからの内部通信のみ許可
EC2の使い方
           app
          default



web
default
                        db
                      default




           app
          default
EC2の使い方

 決めたら起動!
 リージョンとゾーン
 インスタンス
 AMI
 ログイン用キーペア
                  起動!
 セキュリティグループ
DEMO
EC2の各種サービス
EC2の各種サービス

 Elastic IP Address
  外部向けの固定IPを取得できるサービス
  1回取得すると、好きなインスタンスに紐付けできる
  取得すると、1時間$0.01かかる
  ただしインスタンスに紐付けしている間は無料
  デフォルトで5IPまで

 210.81.3.241          211.14.15.5
EC2の各種サービス

 Elastic Block Store(EBS)
  インスタンスが停止しても消えないデータ領域
  外付けHDDみたいなもの
  1Gbyte単位最高1TByteまで領域を借りられる
  1Gbyteあたり月$0.1と、データアクセス1万回ごとに$0.1

            /appにマウント!




                          /dev/sda
                         EBS:10Gbyte
EC2の各種サービス

 Elastic Block Store(EBS)続き
  スナップショットが取れる
  スナップショットから、領域を複製できる
  スナップショットは、1Gbyteあたり月$0.15と、1000回保存
   ごとに$0.01、1万回ロードごとに$0.01
  インスタンス上のデータ領域よりアクセスが早い



                 スナップショット
EC2の各種サービス

 Elastic Block Store(EBS) さらに続き
  インスタンス上のデータ領域よりアクセスが早い
  デフォルト20ボリュームまで
DEMO
EC2の各種サービス

 Elastic Load Balancing
  ロードバランサーサービス
  インスタンスの負荷具合により、リクエストを振り分ける
  1時間$0.025、1Gbyteのデータ処理あたり$0.008
  まだbeta版 API操作からのみ利用可(2009/7)
EC2の各種サービス

 Cloud Watch
  インスタンスとロードバランサーの負荷監視サービス
  CPU負荷、ディスクIO、ネットワークトラフィックのモニター
  1インスタンス監視あたり1時間$0.015
  まだbeta版 API操作からのみ利用可(2009/7)
EC2の各種サービス

 Auto Scaling
  負荷状態により自動的にインスタンスを起動したり、停止した
   りするサービス
  Cloud Watch利用の場合は無料
  まだbeta版 API操作からのみ利用可(2009/7)
S3とは
S3とは

 Amazon Simple Strage Service (S3)
  クラウド上にデータを保存しておくためのサービス
  配置したファイルはインターネットからアクセス可能
  Apacheのhtdocsみたいなイメージ
      細かいアクセス制限が可能
  容量上限なし?(over 500TByte)
  EC2<-->S3のデータ転送が可能

                    http://hoge.s3.amazonaws.com/


             S3
S3とは

 Amazon Simple Strage Service (S3)続き
  1Gbyteを月$0.15で保存可能
  1Gbyteのアップロードで$0.1、1Gbyteのダウンロードで$0.17
  PUT,COPY,POST,LISTリクエスト1000回ごとに$0.01
  GETリクエスト10000回ごとに$0.01
S3の利用方法
S3とは

 S3の管理
   管理は、すべてAPI経由
   RESTとSOAPのAPI
 API仕様
    http://developer.amazonwebservices.com/connect/entry.js
     pa?externalID=123
S3とは


敷居高いやないか!!
S3とは

 S3FireFox Organizer
  FireFoxのプラグイン
  http://www.s3fox.net/

 Jets3t
  Javaライブラリ
  https://jets3t.dev.java.net/


                                  あるよ!
EC2の使い方

 Bucket(バケット)
  データ領域のトップフォルダ
  英数小文字、ピリオド、ハイフンのみで、3から63文字
  バケット名=サブドメイン名
  「http://バケット名.s3.amazonaws.com/」でアクセス
  他人が取ったバケットは取れない!
DEMO
EC2の使い方

 で、EC2から何に使うの?
 データのバックアップ
 自分で作ったAMIの保存先
    自前AMIはS3からロードして起動

        稼動中のOSをAMI化してS3に保存




               S3上のAMIから起動
EC2の使い方

 オレオレAMIの作成
 ec2-ami-tools (ruby製)
 稼動しているOS上でコマンド実行

  ec2-bundle-vol
    -d $WORK_DIR
    --arch $ARCH
    --exclude $EXCLUDE
    --privatekey $PRIVATE_KEY_FILE
    --cert $CERT_KEY_FILE
    --user $AWSUSER
EC2の使い方

 オレオレAMIの転送
 ec2-ami-tools (ruby製)
 稼動しているOS上でコマンド実行
 作成したイメージがS3に転送される

  ec2-upload-bundle
   --bucket $BACKUP_BUCKET
   --manifest $WORK_DIR/image.manifest.xml
   --access-key $ACCESS_ID
   --secret-key $SECRET_KEY
EC2の使い方

 オレオレAMIの起動
 管理コンソールまたはJavaコマンドから、S3上の
  manifest.xmlが入っているフォルダを指定


               パスを指定して起動
EC2の使い方

 S3本来の使い方
  S3バケットのURLを、DNSで自分のドメインに紐付け

例)
「s3.hoge.com」をS3に関連付ける場合、hoge.comのDNSに

s3.hoge.com. IN CNAME s3.amazonaws.com.

と設定。

S3でバケット名「 s3.hoge.com」を取得する

->http://s3.hoge.comでアクセスすると、s3上のバケットにリクエストが行く
DEMO
EC2の使い方

 Amazon Cloud Front
  S3バケットの中身を、各国のEdgeサーバにコピー
  S3バケットにアクセスする際、最寄のサーバから配信
             US


             EU


        Hong Kong      Original


            Japan
構築例/Tips
構築例/Tips

 構築例
 Apache,Tomcat,MySQL,Zabbix
 本番擬似テスト環境
本番                   Apache,Tomcat,MySQL
                         5CPU instance


                                            Zabbix
                                         1CPU instance


テスト                Apache,Tomcat,MySQL
                       1CPU instance
構築例/Tips

 構築例 続き
 営業段階なので、AP,DB,すべて1つの環境
 利用状況により分散構成に変更
 ElasticIPで固定IP取得し、ドメインとSSL証明書取得
 Zabbixでアプリ監視
 本番と同じ環境をテストインスタンスで構築し、確認後AMI化
  し本番に展開
    パッチやバージョンアップなどもテスト環境で確認可能
 設定ファイル・アプリデータ・DBデータはEBS上に保持
構築例/Tips
 バックアップ
 1日2回、EBSのスナップショットを取得
    Typica(http://code.google.com/p/typica/)を使用し、イン
     スタンス内からcronでスナップショット作成
    スナップショットが一定数を超えたら、古いものから削除
 1日1回、MySQLのバイナリログをS3に転送
    jets3t(https://jets3t.dev.java.net/)を使用し、インスタンス
     内からcronでログ転送
構築例/Tips
 バックアップ 続き
 週末にDBダンプをS3に転送
 S3に転送したものは、自社内のサーバにダウンロード
 パッチ・システム構成変更時
    AMI作成は手動(AMI作成->S3転送のシェル)
構築例/Tips
           重要なデータは     パッチ・システ
             EBSに。     ム構成ごとの
                         AMI




                       DBは生データを
                        バックアップ
スナップショット




                      自社にコピー
構築例/Tips

 フェイルオーバープラン
 アプリ・DBが壊れたら・・・EBSスナップショットから復旧
 OS・システム停止したら・・・AMIから復旧
 USリージョンが全滅したら・・・EUにデータアップして復旧
 Amazonが全滅したら・・・自社内のサーバに再構築



          そんなんないけどね!
構築例/Tips
 Tips
   インスタンスは動的に入れ替えられない
      CPU・メモリは事前に考える
   32bitと64bitプラットフォーム
      AMIが異なるので注意
   転送速度
      平均2.2MBits/sec
         • (日中1時間測定した平均)
      ping 190ms
構築例/Tips
 Tips 続き
   SCPクライアント
      WinSCPは遅い
      Tunnelierというのが速い
        • http://www.bitvise.com/
   EBSはXFS
      ファイルシステム全体の書き込みを停止できる
      • aptitude install xfsprogs //xfs用プログラム
      • mkfs.xfs /dev/sda         //デバイスをxfsで初期化
      • xfs_freeze -f /app   //マウントポイント書き込み禁止
      • xfs_freeze –u /app   //書き込み禁止解除
構築例/Tips

 Tips 続き
   テスト環境と本番環境のIDを分ける
      誤操作防止
      インスタンス止めるのびびる
EC2の利点/まとめ
EC2の利点/まとめ

 EC2の利点
 ハードベンダーと話し合いをしなくて良かった
 スタートアップの容易さ 初期費用0円
 構成を途中で変えられた・変えられる
    監視サーバははじめ予定なかった
 スナップショットが便利
    バックアップはほぼこれでまかなえる
 自動化
    すべてAPI操作可能
EC2の利点/まとめ

 まとめ
 EC2はクラウド環境
 簡単に初めて、すぐにやめられる
 ネットワーク構成も可能
 好きなOS・アプリを使える
    いままでのサーバと変わらない
EC2の利点/まとめ
ご清聴ありがとうございました

Amazon Ec2