【参加記録】JAWS-UG千葉支部オンライン#10 AWS Protonハンズオン #jawsugchiba
JAWSUG千葉支部のイベントでGAされたばかりのAWS Protonを触りました。
以前に亀田さんのハンズオンでプレビュー版のAWS Protonは触ってみたことあったのだけれど、
その時はLambdaのサービス、今回はFargateのサービスを作る、という違いがありました。
(同じような内容かなーと思って前日まで登録してなかった……)
イベントページ
使用したサービスについて
AWS Proton
- インフラ、アプリと分けてCI/CDを行うためのサービス。
- 開発者がCloudFormationとかをあんまり考えなくてよくなる。
- おおまかにはインフラエンジニアが実行環境のテンプレートを作成し、
アプリケーションエンジニアがテンプレートから実行環境を作成する、という感じ。 - テンプレートはメジャー/マイナーのバージョンが管理できる。
- 環境の上にサービスが乗っかる感じ。
- App Runnerは1チームでCI/CDを回すためのサービス、
Protonはインフラ/アプリの複数部隊でCI/CDを回すためのサービス、という使い分け。
ハンズオン
やったこと概要
インフラエンジニア側の作業
- 環境テンプレートを作成・公開
- サービステンプレートを作成・公開
開発エンジニア側の作業
- 環境テンプレートから環境を作成
- サービステンプレートからサービスを作成
- CodeBuildの修正とCodePipelineでの再リリース
- GitHubのソースを編集し、CodePipelineで変更が反映されていることを確認
はまったところ
- サービスの作成時にサービスステータスがCreate Failedになるので、Protonのアカウントロールを再度付け直し再作成する必要があった。
(自分はエラーになったサービスの削除完了してから再作成したのですが、削除中だと再作成時にエラーになったりCLIじゃないと消せなくなったりしたみたいです) - 手順内でCodeBuildのBuildSpecを修正するところがあったが、アカウントIDを修正するところを忘れてそのままコピペしてしまってひたすらBuildのエラーを繰り返していた
(エラーの詳細見たらログの中に「自分のアカウントIDに置き換える」って日本語文字列を見つけてあっ!!!っってなった、手順書をちゃんと読もう) - GitHub上でindex.htmlを変更した際、自動で実行されたCodePipelineでのDeploy時にエラーになった。きょう再実行したら問題なく成功した、どうして、、、?
所感
- 開発者側でCloudFormationとかを考えなくてよくなる(インフラエンジニアの作成したテンプレートを使用するだけでよくなるのでアプリの開発に注力できる)のは便利だなーと思った。
- とはいえ実際に動いているのはCloudFormationだったりCodePipelineだったりするので(管理の大枠がProtonになった感じぽい)全く知らないとエラーおきたりした時にどうしようもなくなりそうな気もするのである程度の理解はいるのかなー。
- たぶんすぐにもりもり使うようなことはない(CI/CD回してるような開発に関わってない)のでいったんは触ってみるだけでまあ十分かなあという感じ。使うことになりそうだったらほかの使用しているサービス等含めてしっかり勉強します。
- 新しいあれこれ触ってみるのは楽しいなー。