ポートフォリオ(Next.js+Goの映画情報提供Webサービス)作ったは良いけどローカルで動作確認しただけで実際公開するところまではやってなかった。
けど、せっかくだしインフラ作ってコード化するところまでやってしまおうかと思った時にどの技術を使うかを考えてみた。
Next.jsのデプロイ
これはまあVertifyに置いとけば良いかな。使ってみたけどUIがめっちゃ快適でほとんど何も調べずにデプロイできた。GithubのアカウントとVertifyのアカウントを同期してレポジトリを選択して環境変数だけ設定すればデプロイしてくれて引くほど楽だった。
なので以下はGoで作ったバックエンドAPIのデプロイの設定の話。
AWS or GCP
これはとりあえずAWSで。GCP触ったことないしなんだかんだで求人みてもAWS多そうなんで引き続きAWSに習熟する方向で経験積もうかと。
terraform or CloudFormation
どっちも軽く触ってみたけどterraformの方が快適そう。
workspaceって概念で同じコードからproduction、staging、sandboxなどいろんな環境を作れるしLintやrbenvみたいな言語のバージョン管理の仕組みがあったり、実行前の確認やモジュール分割ができたりで良い感じ。
CloudFormationはAWSの公式だしこっちでも良いんだけど、ひたすらYAMLを書いていく作業が辛そうだった。
ECS or EKS
EKS(kubenetes)の方ができること多いんだけどとりあえずシンプルで敷居の低そうなECSでやってみようと思う。ECSで一通りのことができるようになったらEKSも挑戦したい。
EC2 or Fagate
これはまあ切り替えるのそんなに難しくなさそうだけど時代はFagateなのかな。。FagateはSSHでコンソールに入れないのできちんとログを取らないとデバッグそう。
CI/CD
これはあんまり決めてない。CircleCIしか体験したことないけどAWSのマネージドサービスでやっちゃっても良いのかな。。
今後
上記のこと考えてterraform書き始めたけど結構やること多くて時間かかりそうな。。一応EC2を使ったシンプルな構成のデプロイ設定はやったことあるはずなんだけどterraformとコンテナのデプロイに慣れてなくて壁に当たりまくっている。