movable type for aws - jaws-ug 沖縄 cms祭り!
DESCRIPTION
Movable Type for AWS - JAWS-UG 沖縄 CMS祭り!TRANSCRIPT
Movable Type for AWS
JAWS-UG沖縄 CMS祭り! !
2014.10.18 YUJI TAKAYAMA@SIX APART
YUJI TAKAYAMASix Apart
Senior Product Manager Movable Type Lead Engineer
!Twitter: @yuji
Facebook: Yuji Takayama Github: yuji
Mail: [email protected]
My Social
icon
Happy 13th Anniversary
2001年 10 月 に Ver. 1.0 リリース
2013年 10月 に Movable Type 6 リリース
最新バージョンは 6.0.5
Data API (JSON/REST API) 搭載
CMS Platform / Application Platform
Six Apart によるテクニカルサポート有り
開発者用ライセンスあります
Movable Type for AWS
Movable Type クラウド版
Movable Type Advanced
agenda
Movable Type “を” AWS で使う
Movable Type “で” AWS を使う
Movable Type + AWS の事例
Movable Type を “AWS” で使う
Install / Setup Movable Type
FTP / SCP などで Movable Type のファイルをアップロード
足りない Perl モジュールのインストール
MySQL にデータベースを準備
Movable Type のインストール
ファイル転送が途中で
止まる
SSH? CPAN?
SQL?
パーミッション
まぁ手間ですよね
Movable Type for AWS
AWS Marketplace
All in one package
Amazon Linux 2014.09
Movable Type 6.0.5
nginx 1.6.2
starman(PSGI) 0.4009
!
MySQL 5.5
Perl 5.16.3
PHP-FPM 5.3.29
2014.10.18 現在申請中
必要なPerl モジュールもインストール済み
Features
Free Tier Eligible
7days Free Trial
HVM / PV
yum update movabletype
Paid Technical Support (Japanese)
DEMO
Why Movable Type on AWS
Software license fee: $0.07 / h
All in one package
Easy start / Easy update
T2 Family
T2と相性いい?
実際のところどうなの?
Benchmark
記事数: 約3500件
t2.micro, medium, c3.large, xlarge
再構築勝負 (browser)
Data API へ高負荷アタック(siege)
t2.micro - 再構築
t2.micro - Data API
$ siege --concurrent=50 --reps=100 —time=10M !Transactions: 19,970 hits Availability: 100.00 % Elapsed time: 599.13 secs Data transferred: 128.19 MB Response time: 1.00 secs Transaction rate: 33.33 trans/sec Throughput: 0.21 MB/sec Concurrency: 33.30 Successful transactions: 19,970 Failed transactions: 0 Longest transaction: 4.06 Shortest transaction: 0.11
t2.medium - 再構築
t2.medium - Data API
$ siege --concurrent=50 --reps=100 —time=10M !Transactions: 29,950 hits Availability: 100.00 % Elapsed time: 599.42 secs Data transferred: 196.27 MB Response time: 0.50 secs Transaction rate: 49.96 trans/sec Throughput: 0.33 MB/sec Concurrency: 25.13 Successful transactions: 29,950 Failed transactions: 0 Longest transaction: 2.38 Shortest transaction: 0.05
c3.large- 再構築
c3.large - Data API
$ siege --concurrent=50 --reps=100 —time=10M !Transactions: 25,412 hits Availability: 100.00 % Elapsed time: 599.73 secs Data transferred: 169.31 MB Response time: 0.68 secs Transaction rate: 42.37 trans/sec Throughput: 0.28 MB/sec Concurrency: 28.80 Successful transactions: 25,412 Failed transactions: 0 Longest transaction: 2.69 Shortest transaction: 0.09
c3.xlarge- 再構築
c3.xlarge - Data API
$ siege --concurrent=50 --reps=100 —time=10M !Transactions: 29,991 hits Availability: 100.00 % Elapsed time: 599.89 secs Data transferred: 195.08 MB Response time: 0.50 secs Transaction rate: 49.99 trans/sec Throughput: 0.33 MB/sec Concurrency: 25.10 Successful transactions: 29,991 Failed transactions: 0 Longest transaction: 2.40 Shortest transaction: 0.09
Result
t2.medium, c3.xlarge > c3.large > t2.micro
T2 medium 最高
Movable Type for AWS の勘所
Starman の Worker数初期設定では Worker 数は 2
運用環境に応じて適宜変更
リクエストへの応答が Timeout するようなら増やす契機
環境設定ファイルを編集 $ sudo vi /data/conf/movabletype.conf
WORKERS の値を適切な値に変更
PORT="5000" WORKERS=“2"
movabletype のプロセスを再起動
$ sudo /etc/init.d/movabletype restart
Process 監視初期導入ではプロセス監視はなし
適宜管理ツールの導入を
Monit とか
yum で monit をインストール
$ sudo yum install monit
nginx用の監視設定
$ sudo vi /etc/monit.d/nginx
check process nginx with pidfile /var/run/nginx.pid start program = "/etc/init.d/nginx start" stop program = "/etc/init.d/nginx stop"
movable type用の監視設定
$ sudo vi /etc/monit.d/nginx
check process movabletype with pidfile /app/run/movabletype.pid start program = "/etc/init.d/movabletype start" stop program = "/etc/init.d/movabletype stop"
cpan モジュールyum で提供されているものはyumからインストール
ただし、バージョンが古いことが多い
yumにない場合、自分で入れる場合はcpanmおすすめ
yum で cpanm をインストール
$ sudo yum install perl-App-cpanminus
cpan モジュールのインストール
$ sudo cpanm Text::SimpleTable
movabletype のプロセスを再起動
$ sudo /etc/init.d/movabletype restart
Movable Type で “AWS” を使う
AWS のサービスと
組み合わせてみる
S3 を使う
MT
EC2S3
静的ファイルを すべて配信
Visitors Admin
Direct Hosting
静的生成であるアプリケーションとコンテンツの分離
S3 に配信するには?
S3FS + rsync
AWS CLI S3 sync + lsyncd
http://tec.toi-planning.net/mt/amazon/mt-amazons3/
S3 に配信するには?
S3FS + rsync
AWS CLI S3 sync + lsyncd
Movable Type Plugin
再構築をトリガーに S3 に配信
S3 + CloudFrontを使う
MT
EC2S3
静的ファイルを すべて配信
VisitorsAdmin
CloudFront Edge Server
CloudFront Edge Server
CloudFront Edge Server
Visitors Visitors
Cache Distribution
S3
世界各地にエッジサーバーキャッシュコントロールが必要
MT
EC2S3
画像など変更が少ない 静的ファイルを配信
Admin
Visitors
CloudFront Edge Server
CloudFront Edge Server
CloudFront Edge Server
Visitors Visitors
Web
EC2
更新が掛かるHTMLを配信
Cache Distribution + Web Storage
Cache Distribution
キャッシュコントロールを併用
RDS (MySQL)を使う
ELB
RDS
Zone 1a
MT
EC2
MT
EC2
MT
EC2
Zone 1b
RDS
Replication
出力ファイルは、を複数台用意するとか
Data API
MT で RDS を使うには?
mt-config.cgi に書くだけDBHost mt.c9pv2bda4o…ds.amazonaws.com Database mt DBPort 3306 DBUser master DBPassword password
ElastiCache (memcahced)を使う
RDS
MT
EC2
ElastiCache (Memcached)
DB Cache
Movable Type
Auto-Discovery
MT で ElastiCache を使うには?
mt-config.cgi に書くだけ
MemcachedServers mt.c9pvo…ds.amazonaws.com:11211 MemcachedServers mt.c8ffga…ds.amazonaws.com:11211
SESでメール配信
MT
EC2
SES
SMTP InterfaceMovable Type
メール配信をスケールメールマガジン
MT で SES を使うには?
mt-config.cgi に書くだけ
MailTransfer smtp SMTPServer email-smtp.us-east-1.amazonaws.com SMTPPort 587 SMTPUser your-iam-annout SMTPPassword your-iam-password SMTPAuth starttls
AWS + Movable Type Case Study
- Case Study 1 - !
Event Web Site
北海道の人気なんとかどうでしょう
去年開催されたイベント用サイト大人の事情
MT
EC2S3
画像ファイルを配置
Admin
Visitors
CloudFront Edge Server
CloudFront Edge Server
CloudFront Edge Server
Visitors Visitors
Web
EC2
HTMLを配置
Web
EC2
Web
EC2
ELB
イベント期間中は、負荷状況に応じてS3
動的に切り替えて運用
Movable Type on EC2 + S3 + CloudFront
動的生成では膨大なサーバ負荷が予想された
Yahoo! Japan、新聞掲載によるトラフィック増
イベント中も更新が随時発生する
イベント参加者もスマフォで閲覧している
Movable Type on EC2 + S3 + CloudFront
HTML は EC2 に配置、画像などは S3 に配置
アクセス状況に応じて、CloudFront へ切り替え
現場で迅速な対応が求められる
AWS を採用することで臨機応変に対応可能
Movable Type on EC2 + S3 + CloudFront
イベント終了後は、AWS から、自社サーバ内にコンテンツを収容して、イベントサイトは残しつつ、コストを掛けない運用に切り替え
Movable Type が出力した静的ファイルをすべて移動することで対応
- Case Study 2 - !
Data API
COACH UNITED http://www.sixapart.jp/business/coach_united.html
Movable Type for AWS + Data API
記事の増加による再構築のコストも nginx + PSGIで解決
高トラフィックへの対応
スマフォ向けサイトも併用
Data API による Infinite Scroll
- Case Study 3 - !
EC Site
某アウトドア用品メーカーEC大人の事情
https://netconcierge.jp/mtcommerce/
By NetConcierge Co.,LTD.
株式会社ネットコンシェルジェの製品
MT で本格的な EC サイトを構築
実際に多数の EC サイトを構築
Admin
Visitors
ELB
RDS
Web App
EC2 Master Server
再構築
メール送信
非セール時、最小構成で運用ELB + EC2 + RDS
1インスタンスで管理画面、ウェブサイト、再構築、メール送信をおこなう
Admin
Visitors
ELB
RDS
Web App
EC2
再構築
メール送信
Task Server
EC2
memcached
Master Server
EC2
Web App
EC2
Web App
EC2
Visitors Visitors Visitors Visitors
セール時、冗長構成で運用WebApp + Master + Task + ELB + RDS
再構築、メール送信をタスクサーバに一元各サーバはmemcached
CloudWatch + Alarm
Movable Type
自分でメンテしたくない(*´Д`)そんなあなたには、Movable Type クラウド版
告知
沖縄上陸記念 MT Live in OKINAWA
MT Live in OKINAWA
開催日時: 2014年 10月 19日 (日) 13:00 ~ 18:00
開催地: Tab’spot さん
参加費: 無料
内容: MT ユーザーの交流、お悩み相談、陳情、 お友達募集 などなんでもどうぞ。 ミニセッションもアリマス
Thank you for listening