カニ🦀になって絵日記書くSNSの構成技術〜インフラ編〜
はじめに
カニ🦀になって絵日記書くSNSつくったので技術まとめのインフラ編になります🦀
AWS Copilot CLIを使ったのでまとめます。
AWS Copilot CLI
CLIで、簡単な質問に答えればAWS環境をあっという間に構築してくれる優れものです。私のようなインフラのことよく分からなくてもデファクトスタンダードで作ってくれちゃいます。アーキテクチャを聞いてくる質問があるのですが、フロントエンドはApp Runner(Request-Driven Web Service)を、バックエンドはECS on fargate(Load Balanced Web Service)を使うっぽいということだけ知っておけば多分もう大丈夫です。
ドキュメントも結構分かりやすいと思います。
docker使って開発している方は是非使ってみてください!
メリット
インフラやったことない人でも高速デプロイ可能
VPC?サブネット?みたいな感じでも、よくあるデファクトで作ってくれます。CLIで聞かれる質問も、サービス名何?とかその程度。アーキテクチャだけは事前にどれ選択すればいいかは検討しておきましょう。
インフラできる人も、環境のカスタマイズしながら時短で作業可能
CLIのコマンドで出来上がったmanifestファイルを編集してカスタマイズできます。GUIポチポチする手間省けて時短になりそうかな?と思いました。
サービスをまるごと消すのも楽ちん
コマンド一つで環境丸ごと消すことが可能です。
copilot app delete
CI/CDも作れる
CodePipelineできちゃいます。
デメリット
インフラできない人間は一度レールから外れると元に戻りにくい
インフラできない=応用が効かないので、何かの拍子に変なことするとよくわからなくなり、copilot app delete
で最初からやりなおしたこともありました(そりゃそう)。
まだアップデートが必要な部分もあり
「取得済みドメインを使う場合はcopilot app init
時のオプションで指定しなければならない」など、注意しなければならない点があったり、永遠に続いているissueがあったりと改善の余地はあるっぽいです。
web画面のマネジメントコンソールで変更した場合、どうやって同期とるのか分からない
デメリットというか、まだわからないのが、マネジメントコンソールで変更した場合、該当箇所のmanifestファイルも変更してあげないと整合性とれないよな〜と思います。基本的にはmanifestファイル編集して反映した方が良さそう?
ちょっと分かりにくかったけど解決したこと
複数環境にデプロイの流れ
dev環境と本番環境を用意したら、既にcopilot svc init
で作成したサービスをcopilot svc deploy
でそれぞれの環境にデプロイできます。環境ごとにcopilot svc init
する必要ありません。
サービスについて
大元の記事でも紹介させていただきましたが、エンジニアに馴染みのあるカニにまつわるサービスになります🦀
- サービスURL: https://diary-crab.com
- 気が早いけど公式インスタはこちら
- 怪しい人じゃないことが分かるようにという意図もあります
どんなサービスか少しでも気になっていただけたら是非インスタ覗いてみてください🦀