hubedit.comにMarkdown Editorを設置してみた
https://t.co/rrVZfJn72r に好みのMarkdown Editorを搭載した
— k1LoW (@k1LoW) 2017年12月1日
会社の開発合宿で自身専用メモサービスhubedit.comにMarkdown Editorを設置してみました。
今回の目的は2つです。
- Markdown Editorを設置して自身のhubeditライフを便利にする
- Serverless Frameworkでデプロイし、ドメインもACMも設定して運用しているようなサービスで
- 次期本番環境を構築して
sls deploy
できるようにする - 本番環境を次期検証環境に切り替えてみる
- 次期本番環境を構築して
Markdown Editorの選定
Markdownの表記はそのまま表示されてstyleだけ変化があるものを探しました。
Markdownの表記が消えてしまうタイプのWISYWIGなEditorは多かったが表記がそのまま残るようなEditorは少なかったです。
探したものとしては
- https://github.com/sparksuite/simplemde-markdown-editor
- https://github.com/r7kamura/markless
- https://github.com/benweet/stackedit
- https://github.com/jbt/markdown-editor
などですが、とりあえず導入して使い勝手を見たかったので、 最も導入しやすかった+スマホでも使えた SimpleMDE を設置してみました。
Serverless Frameworkで検証環境を作る
hubeditはServerless Frameworkでデプロイできるように構築されており、AWS上では1つのCloudFormationのスタックとして管理されています。
また、GitHubのアクセストークンを一時的に保存する場所としてS3を利用しています。
ドメイン割り当て(Route53)とSSL証明書(ACM+CloudFront)はServerless Framework管理外で設定しています。
スタック切り分けによる検証環境を作るのは簡単
本番で稼働しているスタックと別のスタックで動かすために、stage
の切り替えで対応しました。
具体的には sls deploy -s v2
などで検証用スタックが実現できます。
serverless.yml の service
が hubedit
だったとしたら v2-hubedit
という新しいスタックが作成されます。
この状態で新機能を追加していって、実装を進めました。
そして最終的にAPI Gatewayのカスタムドメインの向き先を変更することで、検証環境を本番環境に昇格させました。
永続データをどうするか
今回の切り替えの方法では、検証環境はCFnのスタック単位で、API GatewayやAWS LambdaやS3は全く別に新しく構築することになりました。
hubeditは永続データはGitHubのリポジトリのみなので問題なく切り替えは可能でしたが、永続データがあったときはどうすればいいのでしょうか?
- 永続データの保存先はServerless Frameworkでは管理しない(hubeditがたまたまコレ)
- 2つのCFnに分けて永続データは永続データ用CFnで保持する
- API GatewayのStageで切り替えることができればあるいは。。。
- 1つのCFnスタックに2種類以上のAPIコレクションを持つことは可能?
ここらへんはまだ個人的ベストな方法は見つかっていません。 Serverless Frameworkで永続データの管理運用をどうするのが良いか、何か良いアイデアあるかた教えて下さい。