AWSを用いた
Webホスティング
- ベストプラクティス -
        2011年5月24日
        玉川 憲 (@KenTamagawa ), エバンジェリスト
        大谷晋平 (@shot6), ソリューション アーキテクト
ウェビナーへようこそ!
参加者は、自動的にミュートになっています
質問を書き込むことができます!
  GoToWebinarの仕組みを使って、書き込んでください
    ただし、環境によっては、日本語の直接入力ができないので、
    お手数ですが、テキストエディタ等に打ち込んでから、コピペしてください

  最後のQ&Aの時間で、できるだけ回答させて頂きます

  書き込んだ質問は、主催者にしか見えません
Twitterのハッシュタグは、#jawsugでどうぞ
  (Japan AWS User Group)




             Copyright © 2011 Amazon Web Services
AWSアーキテクチャセンターのご紹介

aws.amazon.com/jp/architecture/

  Webinarのご案内

  ホワイトペーパー紹介
  「AWSを用いた
  Webアプリケーションの
  ホスティング」
   by Matt Travis

  日本語版、近日公開!!



                    Copyright © 2011 Amazon Web Services
本日のAgenda

 Availability(可用性)の大切さ

 静的なWebサイトのホスティング

 動的なWebサイトのホスティング

 まとめ




            Copyright © 2011 Amazon Web Services
Webサイトは多岐にわたる


静的               動的




シンプル             複雑




ニッチ             マス市場
WebサイトではAvailability(可用性)が大事

 サービス提供を継続できるかどうかが、
 ビジネスの継続と、直接的な関係を持つ

 デザイン、アプリ開発だけでなく、
 Webサイトのインフラストラクチャの維持が重要

 データのDurability(耐久性)ももちろん大事




          Copyright © 2011 Amazon Web Services
AWSのクラウドを用いた、
   高い可用性を持つ
 Webアプリケーションの
    設計パータン



    Copyright © 2011 Amazon Web Services
静的コンテンツ
(スタティックコンテンツ)




    Copyright © 2011 Amazon Web Services
画像
スタイルシート
                                                  ストリーミ
                                                  ング動画


Webページ     Web
                                                  ブログ
          コンテンツ
PDF                                          Javascript

              画像


           Copyright © 2011 Amazon Web Services
高い可用性、高い耐久性を持つAmazon S3
全オブジェクトにURLが
 付き世界に公開可能                世界中の5拠点から選択
  https://バケット名.
s3.amazonaws.com/
                    S3
      ファイル名                                データ置くだけ。イ
                     東京リージョン
                                           ンフラ、電源、気に
  バケット                                        しない。
            あらゆる
            データを
            保存                            高いセキュリティ:
                    データセンター
                                         SAS70, ISO27001,
                                            PCI-DSS

                                  自動複製

                                            高い耐久性で
                                           データ失わない:
                                           99.999999999%
              安価な従量課金
                              可用性にSLA
               例:10TB/月
                                99.9%
               – 約10万円
S3 Object Access URLs

  http://s3.amazonaws.com/bucketname/objectid

  http://bucketname.s3.amazonaws.com/objectid

  https://s3.amazonaws.com/bucketname/objectid

  https://bucketname.s3.amazonaws.com/objectid
S3は、
Webコンテンツの保存だけでなく、
   Webサイトのホスティング
       に使える!!




     Copyright © 2011 Amazon Web Services
https://s3-ap-northeast-
1.amazonaws.com/kentamasite/index.html
しかし、




index.htmlを直接指定する必要がある
→ S3 website hosting機能を用いると
   - ルートオブジェクト設定
   - エラーページ設定可能



           Copyright © 2011 Amazon Web Services
http://kentamasite.s3-website-ap-northeast-
            1.amazonaws.com/
世界にコンテンツ配信するには?




 光の速度は越えられない
Amazon CloudFront

 初期費用無、従量課金のコンテンツ配信システム

 世界18か所に及ぶエッジロケーションから、高速配信

 ルートオブジェクトを指定できる

 CNAME設定も可能

 S3との密な連携(バケットを指定するだけ)

 S3以外にもオリジンを指定できる(EC2, オンプレミス、他)
d1rx17vfsswzoa.cloudfront.net
画像を相対パスで入れていたことに注意!
http://d1rx17vfsswzoa.cloudfront.net/kentamagawa.jpg
ここまでのおさらい
S3にWebサイトのコンテンツを保存して公開
S3のwebsite hosting機能を利用して、
ルートオブジェクト指定
CloudFrontで、世界中にコンテンツ配信
 •   Ashburn, VA             •   St. Louis, MO
 •   Dallas/Fort Worth, TX   •   Amsterdam
 •   Jacksonville, FL        •   Dublin
 •   Los Angeles, CA         •   Frankfurt
 •   Miami, FL               •   London
 •   New York, NY            •   Paris
 •   Newark, NJ              •   Hong Kong
 •   Palo Alto, CA           •   Tokyo
 •   Seattle, WA             •   Singapore
DNSをUpdateすると




                www.kentama.com
                 に変更できる!
S3 website hostingも独自ドメイン可能

                                             www.tamagawaken.comとい
                                               うS3のバケットを作る


                                                                    今回は、Route 53を、
                                                                  Google Spreadから使うツー
                                                                          ルを利用




参照: http://webos-goodies.jp/archives/manage_amazon_route_53_using_google_apps_script.html
ここまでのおさらい
S3にWebサイトのコンテンツを保存して公開
S3のwebsite hosting機能を利用して、
ルートオブジェクト指定
CloudFrontで、世界中にコンテンツ配信

CloudFrontに対して、DNSを用いて、独自ドメイン利用
もちろん、S3のwebsite hostingをもちいて、
  独自ドメインを使うこともできる
Route 53を用いて、名前解決
動的コンテンツ
  (ダイナミックコンテンツ)
/ マルチティア・コンテンツ




     Copyright © 2011 Amazon Web Services
Ruby on Rails
       PHP

         動的コンテンツ                                        Django
Perl
         (ダイナミック)

                                                    Spring
  Database
                Data store

             Copyright © 2011 Amazon Web Services
Amazon EC2 アーキテクチャ

       Amazon                              Region
       Machine                         Availability Zone
     Image (AMI)                                                         Ephemeral
                                                                          Storage
                                        EC2 Instance

                                                               Elastic
     CloudWatch                                                 Block
                                                               Storage


                                       Security Group


         Auto                                                    Amazon S3
        Scaling                           Elastic IP
                                                             EBS             EBS
                                          Address          Snapshot        Snapshot




                                       Load Balancing
Copyright © 2011 Amazon Web Services
故障からの              複数AZ
 回復                の利用



        高い可用性


         自動監視と
        自動スケーリング
高可用性を
  シングルサーバー
のフェイルオーバーで実現




    Copyright © 2011 Amazon Web Services
高可用性をシングルサーバーで実現



        Elastic IP Address


        EC2 インスタンス


        EBS ストレージ




       EBS スナップショット
インスタンスに故障が生じると



        Elastic IP Address


        EC2 インスタンス


        EBS ストレージ




       EBS スナップショット
インスタンスを入れ替える



               Elastic IP Address


  EC2 インスタンス                    EC2 インスタンス


               EBS ストレージ




           EBS スナップショット
定常状態に戻す



           Elastic IP Address


           EC2 インスタンス


           EBS ストレージ




          EBS スナップショット
このやり方は、

理想的ではないが、
 低コストで実現できる

モニタリングと自動化を
 洗練させるほうが良い
高可用性を
   複数AZで
冗長構成をとって実現




   Copyright © 2011 Amazon Web Services
マルチティア・アプリで冗長構成                        ロードバランサーで
                                          負荷分散。
           東京リージョン       ロード
オートスケーリン                 バランサ
                                         互いのAZで、物
グでサーバ増設/
                                         理的な場所、電
 縮退自動化                       アベイラビリティ
            アベイラビリティ                     源、ネットワーク
            ゾーンA             ゾーンB          が分離



             サーバー            サーバー        サーバーを異なる
                                          AZに配置可能
RDSでDBのイ
ンストール、最               自動同期
             RDSマスタ           RDSスレーブ
適化不要。バッ
クアップも自動
化。スペックも後            マルチAZを用いて、自動レ
から、変更可能             プリケーション。自動フェイル
                         オーバ
マルチティアの
アプリケーション
 を立ち上げる




  Copyright © 2011 Amazon Web Services
Amazon RDSを用
 いてMySQLサー
バーを立ち上げる
EC2インスタンス
   を4つ作成
Elastic Load
Balancerを
立ち上げる
作成したインスタ
ンスをロードバラ
ンサーに紐付ける
データベースのスケーリング   CPUをスケール
                 アップ/ダウン




                ストレージを
                 追加する



                 冗長構成を
                  加える
データベースのスケーリング:
         リードレプリカ
故障から回復する
自動復旧、自動スケーリング




    Copyright © 2011 Amazon Web Services
Elastic Load Balancing




CloudWatch     Auto Scaling
インスタンス起動用の設定を行う

as-create-launch-config
  MyConfig
  --image-id ami-123456
  --instance-type m1.small
  --key tama-key
  --group “Web and SSH”
Auto Scaling Groupを作成する

as-create-auto-scaling-group
   MyScalingGroup
   --launch-configuration MyConfig
   --availability-zones us-east-1a,us-east-1b
   --min-size 5
   --max-size 10
   --load-balancers demo-load-balancer

                               最少5台、最大10台で
                               インスタンスを稼働
スケーリングのルールを作成する

as-create-or-update-trigger

                CPUUtilization
                 DiskReadBytes
                   DiskReadOps
                DiskWriteBytes
                  DiskWriteOps
                     NetworkIn
                    NetworkOut
               FreeStorageSpace
                   ReadLatency
                       …
まとめ
Availability(可用性)の大切さ
静的なWebサイトのホスティング
  S3 website hosting
  CloudFrontでコンテンツ配信
  Route 53で名前解決
動的なWebサイトのホスティング
  シングルサーバーでのフェイルオーバー
  マルチAZを用いた冗長構成
  自動監視、自動スケーリング


           Copyright © 2011 Amazon Web Services
AWSプレミアムサポート
   アーキテクチャ設計に関するガイダンス、ベストプラクティス
   も日本語でご案内できます
   aws.amazon.com/jp/premiumsupport/
           ブロンズ            シルバー                 ゴールド             プラチナ

初回応答時間     12時間             4時間                  1時間              15分

サポート連絡先     1人                2人                  3人              無制限

24/365対応    なし                なし                  あり               あり

TEL可能      不可                不可                   可能               可能

専任スタッフ      なし                なし                  なし               あり

特別サポート      なし                なし                  なし               あり
                                               AWS利用総額の
                                                                AWS利用総額の
                                                $0~$10K: 10%
                          AWS利用総額の                                 10%
料金          $49
                                5%
                                                $10K~$80K: 7%
                                                $80K~:     5%
                                                                 (最低$15K)
                                                 (最低$400)
                  Copyright © 2011 Amazon Web Services
Q&A




Copyright © 2011 Amazon Web Services
ご参加ありがとう
 ございました



 Copyright © 2011 Amazon Web Services

AWSを用いたWebホスティング