NetCOBOLによるAWS活用事例とAWSを活用した事例セミナー
                                     2013/02/22(金)




急なトラフィック増にも動じない、
Amazon S3とCloudFrontを活用したWebサ
イト構築



                        株式会社データクラフト
                               大内 寛和
自己紹介
大内 寛和
株式会社データクラフト 開発部
・ソフトウェアエンジニア
・自社Webサイトの開発・保守
・社内インフラ担当
fb: hirokazu.ouchi



                 コアメンバー
株式会社 データクラフト
・写真素材の販売
      ロイヤリティーフリーの写真素
      材
      印刷、マルチメディア、WEBデザインな
      ど幅広い用途に利用可能な、ロイヤリ
      ティーフリー・デジタルフォトコレク
      ション。
      http://www.sozaijiten.com/




      ストックフォトのダウンロード
      販売
      国内・海外のフォトブランドから210万
      点
      以上の写真素材を提供するストック
      フォ
      http://imagenavi.jp/
      トダウンロード販売サイト。
株式会社 データクラフト
・各種ITソリューションの企画提案・開発
 プロモーションWebサイト       食品通販eコマースサイト
 独立行政法人 宇宙航空研究開発機構   佐藤水産株式会社 様
 (JAXA)様




 地図通販eコマースサイト        食品通販eコマースサイト
 マップショップ株式会社 様       株式会社えぞキッチン 様
本日のお話
・S3でお手軽ホスティング
・動的WebサイトにおけるS3の使いどころ
・CloudFrontで快適なWebサイトに
・まとめ
本日のお話
・S3でお手軽ホスティング
・動的サイトにおけるS3の使いどころ
・CloudFrontで快適なサイトに
・まとめ
事例 – 概要
・とあるコンテンツを紹介したWebサイト
 格安レンタルサーバで運用
 静的コンテンツで構成

・スマホアプリ公開後、トラフィック急増
 アプリ内の広告欄からWebサイトへ頻繁にアクセス
Web
Server
急なトラフィック増
 にやられました
NetCOBOLによるAWS活用事例とAWSを活用した事例セミナー
                                     2013/02/22(金)




痛い経験のおかげで


急なトラフィック増にも動じない、
Amazon S3とCloudFrontを活用したWebサ
イト構築ができるようになりました!



                        株式会社データクラフト
                               大内 寛和
事例 - 相談者のサーバに対する要望
✔ 大量のトラフィックを捌ける
✔ 安価
✔ 構築・保守が容易
この要望にお応えしてくれる
   サービスは?
Amazon S3!
S3の特徴
・インターネットストレージサービス
 容量制限無し。ピーク時には、秒間800,000リクエストを処理。

・従量課金     10,000GETで$0.01   1GBの送信で$0.201

 ストレージ料金、リクエスト料金、データ転送料金

・ストレージタイプ
 スタンダード(堅牢性:99.999999999%)、低冗長化(堅牢性:
 99.99%)の2種類。
 低冗長化はスタンダードに比べ、ストレージ料金が2~3割ほど安い。

 ※オブジェクトをロストすると、HTTP 405が返される。
S3の特徴(ホスティング)
・静的Webサイトのホスティング

  ファイル(オブジェクト)にユニークなURLが付与される。

・リダイレクト(HTTP 301)機能
  バケット、オブジェクト、それぞれに設定できる。

・ルートドメイン(例.http://mysite.com)をホスト
  以前は構築手順が複雑だったが、最近、簡単にできるように。
  (DNSは、Route53を使う必要あり)
全コンテンツをS3に配置
  作業時間は、10分程度!
びくともしない
本日のお話
・S3でお手軽ホスティング
・動的WebサイトにおけるS3の使いどころ
・CloudFrontで快適なWebサイトに
・まとめ
Webサーバへのトラフィックが増えた場合
の一般的な対処

 スケールアップ               スケールアウト

    Web
   Server




                                Load Balancer




        $$$
    Web                    $ $                      $
               Web      Web        Web           Web

  Server      Server   Server     Server        Server
サーバ費用を抑えた負荷対策
・Webサーバへのアクセスは、静的コンテンツへの
 リクエストが多い。
・変化が少ない動的コンテンツは、静的コンテンツ
 化しやすい。


負荷をS3に分散させ、Webサーバの費用を抑える!
S3 適用例
静的コンテンツはS3から配信

                            http://mysite.com     Web
                                                 Server


 Users

                                                <img src=“/img/top.jpg” />
                                                                ↓
                                                                ↓静的コンテンツのURLをS3のURLに書き換え
                                                る
         http://static.mysite.com
                                                                ↓
                                                <img src=“http://static.mysite.com/img/top.jpg” />

                                                ※ Apacheの場合、mod_ext_filter/mod_sedの機能で、
                                                   動的に書き換えが可能

                  S3


                   画像ファイル、js、cssファイルを配置する
全コンテンツを静的化してS3から配信

                                http://admin.mysite.com


                                        Web
                                       Server


 Users

                                            全コンテンツを静的化して、s3cmd等を使い
                                            S3に転送する

                                            EC2を利用する場合は、コンテンツの更新時
         http://mysite.com                  のみ、インスタンスを立ち上げる




                             全コンテンツを配置する
               S3




ブログサイト、コーポレートサイト、キャンペーンサイトに適用しやすい。
期間限定で、動的コンテンツを静的化し
てS3から配信                                S3に配置したコンテンツへのアクセスは、S3
                                       にリダイレクトする



                             http://mysite.com    Web
                                                 Server


 Users
                                                    動的コンテンツを静的化してS3に転送する




         http://event.mysite.com




                                   静的コンテンツ化した動的コンテンツ
                                   を配置する
                   S3




TV紹介される等、トラフィック増が予想される期間、頻繁にアクセスされる動
的コンテンツが分かっている場合、動的コンテンツを静的化してS3に配置する。
期間限定で、動的コンテンツを静的化し
てS3から配信(後始末)
                             http://mysite.com    Web
                                                 Server


 Users




         http://event.mysite.com
                                        Webサーバへリダイレクトさせる




                   S3




期間終了後、S3のリダイレクト機能を使って、S3のアクセスをWebサーバに戻す
こと。
本日のお話
・S3でお手軽ホスティング
・動的WebサイトにおけるS3の使いどころ
・CloudFrontで快適なWebサイトに
・まとめ
S3は、素晴らしいサービス
しかし、コンテンツの転送速度は・・・
コンテンツの転送速度を高速にして
    UXを高めたい!
この要望にお応えしてくれる
   サービスは?
CloudFront!
CloudFrontの特徴
・高速で信頼性の高いCDNサービス
  世界中のエッジサーバからコンテンツを高速配信

・従量課金制
                                  1件で$0.005
10,000件で$0.0095   1GBの送信で$0.201   (最初の1000件はタダ)

     リクエスト料金、データ転送料金、無効リクエスト料金

・自由度の高いオリジン指定
  EC2やS3の他に、AWS以外のサーバからも利用できる
CloudFront 適用例
静的コンテンツはS3から配信

                                http://mysite.com    Web
                                                    Server


 Users




                                                    <img src=“/img/top.jpg” />
         http://static.mysite.com
                                                                    ↓
                                                                    ↓静的コンテンツのURLをS3のURLに書き換え
                                                    る
                                                                    ↓
                                                    <img src=“http://static.mysite.com/img/top.jpg” />

                     S3                             ※ Apacheの場合、mod_ext_filter/mod_sedの機能で、
                                                       動的に書き換えが可能
静的コンテンツはCloudFrontから配信

                             http://mysite.com         Web
                                                      Server


 Users




                                          <img src=“/img/top.jpg” />
         http://cdn.mysite.com                            ↓
                                                          ↓静的コンテンツのURLをCloudFrontのURLに書き換える
                                                          ↓
                                          <img src=“http://cdn.mysite.com/img/top.jpg” />


                CloudFront




                                      http://static.mysite.com




                                                 S3
静的コンテンツはCloudFrontから配信

                             http://mysite.com       Web
                                                    Server
                                                                      静的コンテンツ配信用のバーチャル
 Users                                                                ホストを立てて、そのホストをオリ
                                           http://static.mysite.com
                                                                      ジンサーバに指定する


         http://cdn.mysite.com




                CloudFront
全コンテンツを静的化してS3から配信

                             http://admin.mysite.com


                                      Web
                                     Server


 Users




         http://mysite.com




               S3
全コンテンツをCloudFrontから配信

                                  http://admin.mysite.com   このパターンはSEO的に問題があるかもしれませ
                                                            ん。
                                              Web           CDNから配信されたWebサイトは、Googleの検索結
                                             Server         果で、サイトリンクが表示されなくなるという情
                                                            報が・・・
 Users
                                                            SEOは気にしない!というケース(短期間の配
                                                            信)であれば全く問題ないかと思います。

         http://mysite.com
                                                            Google検索結果より




                                                             サイトリンク
               CloudFront




                             http://static.mysite.com




                                        S3
CloudFront導入時の注意点
・キャッシュコンテンツを早急に更新したい場合
 ・コンテンツのURLを変更
 <img src=“http://cdn.mysite.com/img/top.jpg” />            ✔ コンテンツのファイル名を変更
                                              ↓
 <img src=“http://cdn.mysite.com/img/top2.jpg” />


 <img src=“http://cdn.mysite.com/img/top.jpg” />            ✔ コンテンツのファイル名を変更
                                               ↓            クライアントの環境によっては、意図
 <img src=“http://cdn.mysite.com/img/top.jpg?20130222” />   通り動作しないのでオススメしません


 <img src=“http://cdn.mysite.com/img/top.jpg” />            ✔ コンテンツのファイル名を変更
                                               ↓            要rewrite (バージョン指定を無しに変
 <img src=“http://cdn.mysite.com/img/20130222/top.jpg” />   換)



 ・キャッシュを無効化
     AWS管理コンソールで、一つづつURLを指定して無効化する。
     完了までに10分くらいかかる。
本日のお話
・S3でお手軽ホスティング
・動的WebサイトにおけるS3の使いどころ
・CloudFrontで快適なWebサイトに
・まとめ
まとめ
✔ S3とCloudFrontを利用すれば、高負荷に耐え、
 UXの高いWebサイトを安価に構築できる。


✔ 今後、Webサイトの構築および改善の際は、S3
 とCloudFrontの利用を検討すべき。


✔ AWSを用いることで、圧倒的なスピードでサービ
 ス構築・問題解決できることを常識とする。
JAWS-UG 札幌

急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築