セルプロモート株式会社で、新規自社プロダクト開発を担当してますsasamonと申します。
前回以下でざっくり自己紹介しましたが、今日は少しデプロイパイプラインの話をしようと思います。
今以下のデプロイツールを使ってデプロイをしています。
今回Envoyerを利用してAWS上でAuto Scalingな環境を構築したのでそこを少しお話できればと。
ざっくり説明すると以下の様な感じで上記を実現しました。
Envoyer の Deployment Hooks によって下記を実行する
- Bastion インスタンスにスクリプトを Git pull
- Base AMI インスタンスを起動
- Base AMI, Job Server, RDS にLaravelをデプロイ
- Base AMI インスタンスを停止し、AMIを作成
- Auto Scaling Group の AMI を更新し、Rolling update を実施
図にすると以下の感じ
Basitionインスタンスで起動するスクリプトはpythonで作成して、そこでゴニョゴニョやるって感じです。
今はEnvoyer使ってますが、今後はGitHub Actionsに変えてもいいかなぁと思いつつ、Laravelに親和性の高いEnvoyerを使ってのAuto Scalingな環境構築を行ったご報告でした。
デプロイツールも選択肢が増えたなぁーと思いつつ、15年ぐらい前はCapistranoとかJenkins使ってたことを思い出した今日このごろ。
時代の進化に取り残されないように頑張ろう。
セルプロモート株式会社ではカジュアル面談を募集しているので、もし興味がある方は以下からぜひ!