INTRODUCTION AU LOGICIEL SPHINX Sphinx est un logiciel d ...
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
-
Upload
shuji-watanabe -
Category
Technology
-
view
1.387 -
download
0
description
Transcript of s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
![Page 1: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/1.jpg)
S3 + CloudFrontによる 静的コンテンツ配信 - Sphinx編 -
2014.03.21 AWS勉強会 in 札幌
クラスメソッド 渡辺修司
![Page 2: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/2.jpg)
About Me• 渡辺修司 • 昨年8月よりクラスメソッド • 在宅勤務 • 前職まではほぼシステム屋 • Java, Groovy, JavaScript, たまにRubyとかPython • JUnit実践入門
• 趣味はロードバイクとスノーボード
![Page 3: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/3.jpg)
現在のお仕事• メンバーズポータルの開発(7割) • メンバーズ加入者向けポータルサイト
• ブログ執筆(1割) • AWS、テスト、Java、Ember.js、自動化など
• AWSコンサル部の構築や調査のサポート(1割) • 札幌オフィス準備(1割)
![Page 4: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/4.jpg)
ご興味を持たれたら、 お気軽にご相談ください。
![Page 5: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/5.jpg)
メンバーズポータル• メンバーズ契約者向けのポータルサイト • ご利用明細の確認やダウンロード • 各種イベントの通知(リザーブドインスタンスの期限等) • 監査ログの統計(Cloud Trail)
• AWSに構築されたJavaアプリケーション • RDS, Elastic Beanstalk, Cloud Formationなどを活用 • バックエンドでAWSのAPIを利用して情報収集
• ユーザマニュアルもAWSを利用 • Sphinx + S3 + Cloud Front
![Page 7: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/7.jpg)
システム構成
![Page 8: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/8.jpg)
ドキュメントの作成
![Page 9: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/9.jpg)
Sphinx• Markdown形式のドキュメンテーションツール • reStructuredText (reST)で記述 • ソースファイルがプレインテキスト • HTMLの他、PDFやePub形式など様々な形式にビルド可能 • 目次や参照などの機能が豊富 • 構造化されたドキュメントに適する • プログラマ向き
![Page 10: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/10.jpg)
Command Line
![Page 11: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/11.jpg)
IntelliJ IDEA
File Watchermake html
outline syntax highlight
![Page 12: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/12.jpg)
S3 + Cloud Front
![Page 13: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/13.jpg)
Amazon S3• Amazon S3 (Simple Storage Service) • シンプルなストレージ(置くだけ) • 従量課金(1GB 辺り約10円/月) • 高い耐久性 • 簡単にインターネットに公開できる
静的ファイルを 安価に公開したい 場合に最適
![Page 14: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/14.jpg)
EC2とS3• Amazon EC2 • コンピューティングなリソース • 動的処理を行うことができる • 静的ファイルを配信するには割高
• Amazon S3 • シンプルストレージ • 動的処理は行えない • 静的ファイルを配信するには割安
![Page 15: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/15.jpg)
Cloud Front• コンテンツ配信のためのウェブサービス • キャッシュ • 大量アクセス対応 • 高速データ転送 • 低レイテンシ
• S3 と組み合わせることで、より効率よくコンテンツを配信
メンバーズポータルの ドキュメントサイトにおいては
必須ではない
![Page 16: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/16.jpg)
Route53
![Page 17: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/17.jpg)
Route53• DNSサービス • ドメインとIPアドレスをマッピングする • ドメインとAWSのリソースをマッピングする
• Cloud FrontやS3のアドレスにドメイン名でアクセス
http://docs.members.classmethod.info/
![Page 18: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/18.jpg)
Automation
![Page 19: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/19.jpg)
手動更新1. ドキュメントのソースを加筆修正する 2. ソースをビルドし、HTMLファイルを生成する 3. S3にアップロードする
• 何度も行うと手間がかかる • 操作ミスの可能性 • 操作完了まで待たなければならない
![Page 20: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/20.jpg)
自動化1. 開発者は、ドキュメントのソースを加筆修正する 2. 開発者は、Stash (SCM)にコミット(push)する 3. Stashは、Jenkinsに通知する 4. Jenkinsは、ビルドを行いHTMLファイルを生成する 5. Jenkinsは、HTMLファイルをS3にアップロードする
•何度行っても手間ではない •操作ミスが起きない •ローカルでソースを修正すれば、後は自動処理
![Page 21: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/21.jpg)
Jenkins
aws s3 sync --region ap-northeast-1 /var/dist/portnoy-doc/html/ s3://portnoy-docs-documentsbucket-xxxxx
export BUILDDIR=/var/dist/portnoy-doc make clean html
![Page 22: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/22.jpg)
まとめ• S3 + Cloud Front + Route 53 • 静的コンテンツが多い場合の配信パターン • Sphinxなどで生成した静的ドキュメント • Movable Typeなど静的ファイルを出力するCMS
• S3 + CloudFrontならば自動的にスケールする • ただし、限界はある(上限緩和も必要なケース有)
• 自動化によりシステムを構築
Jenkinsを使ったSphinxとS3によるドキュメントサイト構築 ー Developers IO http://dev.classmethod.jp/cloud/aws/document-site-automation-building-with-sphinx-and-s3-using-jenkins/
![Page 23: s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio](https://reader035.fdocuments.net/reader035/viewer/2022081720/547ea6e05806b5c75e8b46ee/html5/thumbnails/23.jpg)