AWSを利用したありがちなCMS


ちょっとしたCMSを思いついた。既にありそうだけど、あくまで草案レベル。

コンテンツ編集はMarkdown等を用いた手動編集。編集はローカルもしくはオンデマンドEC2インスタンス上で行う。
(ICEcoderやMarkdownプレビュー機能のあるWebエディタ等で編集することを想定)

編集したソースをソースリポジトリに git push/svn commit。
(Jenkins,Gitlab,GitBucket,GHE,SCM-Manager等、WebフックやIssueが使えるものを利用)

リポジトリのフック処理でコンテンツをコンパイルしてプレビューインスタンスを起動、インスタンスのEBS上にコンテンツ配置。
(コンパイルはJenkinsでやってもいいし、Lamdaでやってもいい)

プレビューURLをコンテンツ承認者に対してSNS等で通知。
(これもJenkinsかLamda)

承認者がプレビューを承認したらコンテンツをS3公開バケットに配置してCDNキャッシュ制御、コンテンツをmasterにマージ。差し戻す場合はIssueのAPI等でコメントを付記。
(プレビューコンテンツのヘッダには承認ボタンや差戻しボタンを配置)

プレビューインスタンスは承認・差戻しに関わらず破棄。

メリットはコンテンツ編集インスタンス、プレビューインスタンスを常時起動しない点。コンテンツ編集インスタンスとプレビューインスタンスは同一でも可。

うわ、ありそう。。。