Amplifyで自動でブランチごとにドメインを切ってデプロイ出来るようになりました!

Amplifyを利用して、開発ブランチなど新しいブランチが出来たら別ドメインで自動でデプロイして、マージされたら自動で削除出来るようになりました!
2020.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コンサルティング部のもこ@札幌オフィスです。

本日7月7日はクラスメソッド16周年、私も去年の7月に入社して1年経ったので、粛々とブログを書いています。

本日ご紹介するアップデートはこちら

Automatically create and delete custom sub-domains for your branch deployments with Amplify Console

Amplifyを利用して、開発ブランチなど新しいブランチが出来たら別ドメインで自動でデプロイして、マージされたら自動で削除出来るようになりました!

ブランチごとに自動でデプロイ、削除されて何が嬉しいか

GitFlow / GitHub Flowなどを利用して開発を進めている方が多いかと思いますが、今回のアップデートでブランチごとに自動で環境を作成することが出来るようになるため、レビュアーなどが動作確認のためにローカルのPCでpull / checkout / buildなどをして環境を用意する必要がなくなり、デプロイされたAmplifyのサブドメインを見に行くだけで確認出来るようになります。

「新しいブランチが出来たらサブドメインを作ってデプロイして、Pull RequestがMergeされたら自動で削除」みたいな物を自前で実装するのはめちゃめちゃ大変だったりしますが、今回のアップデートでは自動で行ってくれるため超アツいですね!

やってみる

さて、実際にGitHubの画面を添えながらどんな感じで良い感じに出来るのかを試していきたいと思います。

早速Amplifyコンソールでアプリを選択して、左の「アプリの設定>概要」から「編集」を押します。

すると、このような新しい項目が出てきて、自動でブランチを検出するか、自動でブランチが削除されたタイミングで環境を消すのかを選択することが出来ます。

自動生成するブランチの設定はワイルドカードで指定することができ、開発ブランチの命名規則に合わせて設定することが出来ます。

今回は feat/* ブランチに対して自動生成するように設定していきます。

次の2項目では、バックエンドの環境(AppSyncやCognito、API Gatewayなど)をブランチごとに新しく作成するのか、指定環境に合わせるのかを指定することが出来ます。

これにより、バックエンドの接続先を開発環境用のデータを保持した一つの環境に指定することができ、コストも最小限に出来ます。

また、新しく作成された環境へのアクセス制御ということで、ユーザー名、パスワードを指定することが出来ます。

あとは有効化して保存するだけで設定は終わりです。1分で終わるレベルで超簡単。

動作確認

早速 feat/hello-world ブランチを作って、正常に新しい環境が作られるのかを試してみましょう。

適当な差分を作ってコミット&Pushすると、、、

Amplifyの方で自動で新しい環境が作成されて、ビルドされている事を確認することが出来ます!!

表示されているドメインを確認しにいき、最新のfeatブランチの編集がデプロイされていることを確認出来ます!

Pull Requestを作ってMergeする

適当にPull Requestを作って、マージしてブランチを削除してみました。

数秒でfeat/hello-worldブランチの環境が消えて、マージ先のブランチでビルドが走っていることを確認出来ます!

カスタムドメインで環境を作る

Amplify ConsoleではRoute53管理のドメインをSSL対応を含む設定をまとめて行うことが出来ます。

もちろんカスタムドメインでブランチごとにドメインを自動で作るのも簡単で、ドメインの編集画面から[Subdomain auto-detection]でブランチを設定することが出来ます。

設定した後にデプロイするとこんな感じで、サブドメインでアクセス出来るようになります!

まとめ

新しいブランチを自動で検出して自動で別ドメインでデプロイ、ブランチが消されたら自動で削除する便利アップデートをご紹介してきました。

このアップデートで個人の持っているマージ前の開発ブランチも自動で特に気にすること無くAmplifyにデプロイすることが出来るため、開発も、レビューもさらに捗ると思います。

以上、もこでしたー。