cmsdou oosaka
TRANSCRIPT
MTとAWSで作る ステージングサーバ
onagatani
自己紹介• 北海道からきました!
• 永谷 理(ながたに おさむ)
• スカイアーク所属
• Movable Type歴6年目 のインフラ・サーバサイドエンジニア
• 好きな言語Perl。Hokkaido.pm元主催YAPC::AsiaMTの勉強会、最近はAWSの 勉強会にも顔を出しています
• 好きなMTプラグインは自分が開発したプラグインですw 一部公開していますのでGitHubをご覧下さい
• 活イカとスープカレーを主食にしています
(c) Japan Perl Association YAPC::Asia 2012での発表風景 (北の国から風)
SYARC?• PageButeというプラグインの開発元です
• 北海道帯広市で起業して11年目
• Movable TypeでのCMS構築やAWSを使用したマネージドホスティングを主力事業としています。他にSalesforce導入も行っています
• GitHubで公開しているプラグインは商用利用も無料なので是非ご利用下さい(公開はあまりできていないですが現在までに100以上のプラグインを開発していま す)
• 関連会社Farmnoteの事業ではIVS Launch Padで3位入賞でした。AWS Cloud Roadshow 2014 Sapporoで登壇などしている会社です
さて、北海道といえば?
スープカレー
• 道民は平均週に三回は食べます!(弊社平均)
活イカ
• 死んだイカはイカじゃない!(と思っている)
ステージングサーバ
通常のステージング• 通常のシステムではアプリ部
分の管理をデプロイツールやgithubで管理する事が多い
• DBはサーバは開発・本番は完全に別
CMSでのステージング• CMS本体はベンダーからのアッ
プデート開発・本番を別々に適用(yumやベンダーからのダウンロード)
• 運用開始後のコンテンツ更新は開発CMSにて手作業で行い、承認フローを通してから本番CMSへ再度手作業で入力・公開作業を行う
• 本番CMSと開発CMSで同一の記事内容である保証がない※drupalではyamlで差分をdeployする機能があるようです
SiteSyncプラグイン• 弊社で開発したMovableTypeステージング
サーバプラグイン
• MTから再構築したファイルを本番サーバへ転送する
• rsyncやFTP、S3を使う事が可能
• MTとDBは1つでOK
• 同期前にテキストファイル内の文字列置換を実施(stgドメインからproductドメインへの置換等)
• S3がWEBサーバとして機能するので本番サーバ等の脆弱性や負荷については(あまり)気にしなくてOK
共通設定• ログの保存設定、メール送信先の
設定などが可能です。
WEBサイト個別設定• WEBサイトやブログ毎にアカウン
トやバケットが設定可能
• cache-controlを使用してクライアントやCloudfrontへのキャッシュ保持期間を設定可能
• 文字列置換は複数入力可
• 同期したくないパスや拡張子の指定が可能
同期設定• 同期対象をWEBサイト全体やブロ
グ単位で選択可能この機能により、複数部署でブログを管理している場合に誤って記事が公開される事を抑制します
• 日時指定同期や即時実行が指定可能
同期タスク一覧• 同期中のタスクや完了済みのタスク一覧が
ログとして保存されます
• ログはダウンロードが可能です
デモ
ベストな構成• EC2にMTを背設置し、EC2からS3へ静的
ファイル同期
• S3をオリジンとしてCloudFrontからキャッシュを配信
• Route53でドメインを管理
• この構成で基本的に落ちない、高負荷に耐えられるサイトが構築できます
• SiteSyncプラグインからS3へ同期したタイミングでオリジンファイルのCDNキャッシュを削除するので常に最新のコンテンツ配信が行えます