Amazon CodeCatalystを触ってみた
この記事はCAMPFIRE Advent Calendar 2022の9日目の記事です。
今年はAWS re:Invent 2022で発表されたAmazon CodeCatalystの触ってみたブログです!
(触ってみたが毎年恒例になりそう...w)
Amazon CodeCatalystについて
ソフトウェア開発および配信の統合サービスである Amazon CodeCatalyst を使用すると、ソフトウェア開発チームは AWS 上でアプリケーションを迅速かつ簡単に計画、開発、コラボレーション、構築、および配信できるため、開発ライフサイクル全体でフリクションが軽減されます。
※ AWSさんブログから引用
うむ、なんかすごそう(語彙力)
要は爆速で作ることができるということか?←
とりあえず使ってみる
スペースを構築
-
Amazon CodeCatalystのページにアクセスして、「Sign up」or「Sing in」をクリック
実はAWS マネジメントコンソールとは全く別ページのようなので注意。
-
AWS Builder IDでログイン
AWS Builder IDなるものを使うのだが、これはAWSアカウント(マネジメントコンソールにアクセスするもの)とは全く別物なので作成した記憶がない人はここで作成しましょう。
-
AWSアカウントとの紐付け
ここで紐付けたAWSアカウントにCodeCatalystで発生した請求を送ったり、後述するAWSサービスにはこのAWSアカウントでアクセスする。
- 紐付けするAWSアカウントのマネジメントコンソールからはAWSアカウントIDをコピー
- コピーしたIDを入力、「Verify」をクリックすると、マネジメントコンソールに遷移する
- 「Verify space」をクリックし、紐付け成功
- マネジメントコンソールでCodeCatalyst用のスタンダードのIAMを作成
- 紐付けするAWSアカウントのマネジメントコンソールからはAWSアカウントIDをコピー
-
スペースを作成
3まで終了してCodeCatalystのページに戻って、「Create Space」をクリックしてスペースの作成は完了。
スペース管理ページを見ていく
-
Projects
プロジェクト(作り方については後述)の一覧がここで見れる。
-
Activity
スペース内での行動(誰が何のアクションをしたのか)が記録されていて、ここで見ることができる。
アクションごとのフィルタリングできる。
-
Members
スペースのメンバー管理がここででき、メンバーの招待もできる。
-
Installed extensions
ほかサービスとの接続のための拡張機能を管理できる。
Ex. GitHubのリポジトリとの接続 etc.
-
AWS accounts
紐付けるAWSアカウントの管理ができる。
-
Space settings
スペース自体の名前の変更などができる。
-
Billings
CodeCatalystの利用状況などを確認できる。
プロジェクトを作成
-
「Create Project」をクリック
-
プロジェクトの作成の仕方を選択
-
blueprintからテンプレートを選択するかどうかを選択
今回はblueprintを使う
-
一覧から作成するblueprintを選択
-
Webアプリケーションやサーバレスアプリケーションなどが準備されている
-
選択するとblueprintで定義されている構成の説明やデプロイで使うIAMロールの内容などを見ることができる
-
-
-
プロジェクトの名前やプロジェクトを紐付けるAWSアカウントやIAMなどを設定
- Lambda構成がある場合、どの言語で構成するかも選択する必要がある
- 3まで完了したら「Create Project」をクリックして、プロジェクトの作成は完了
プロジェクトの中身を見ていく
Overview
プロジェクトの概要などを確認できる。
Issues
Issueの管理ができる。使い方については後述。
Code
リポジトリやPull Request、開発環境の管理ができる。
CI/CD
CI/CDのワークフローの作成や実行状況の管理ができる。
Reports
テストのカバレッジなどが確認できる。
ProjectSetting
メンバーの管理やCI/CD実行結果の通知設定などができる。
ちゃんと作られてる?
作られてた👀
Issueを使ってみる
-
Issueを作成
Issueの内容もMarkdownで記載できるし、進行度や優先度、カスタムフィールドの作成もできる
-
Issueの管理
ボード形式で進行度の変更も直感的にできる
IDEの接続を使ってみる
CodeCatalystではCloud9だけではなく、所有しているIDEを利用することができるので,今回はVScodeでつかってみた。
-
「Create Dev Enviroment」をクリックすると選択できるIDEが表示されるので、VScodeを選択
-
どのブランチでつかうかなどを選択して「Create」をクリック
-
ローカルのVScodeが起動するのでプロジェクトを確認
AWS Tool Kitがインストールされてない場合は、事前にインストールしておく。 -
使い終わったあと
CodeCatalystのCode→Dev Enviromentから対象の開発環境設定を選択して、Actions→Stopをクリックする。
- もしIDEを変更したい場合、CodeCatalystのCode→Dev Enviromentから、対象の開発環境設定を削除してからIDEの選択をし直す事が可能
コードを変更~デプロイまでしてみる
今回は出力する文章を変更してみる。
-
作業ブランチを作成
-
「Source Reqositories」→「Action」→「Create branch」をクリックする
-
ブランチの名前とどのブランチから派生させるかを入力して「Create」をクリックしたら作成完了
-
-
コードの変更とPushまで
IDEで出力文章を変更して,IDEのターミナルからリモートにPushする。(今回は省略) -
Pull Requestの作成
- 「Pull requests」→「Create pull request」をクリックする
- 情報を入力して、「Create」をクリックする
Source branch: マージ元のブランチ(作業ブランチ) Destination branch: マージ先のブランチ(main) Pull request title: Pull Requestのタイトル Pull request description: Pull Requestの説明(任意項目)
- 作成が完了すると、「Changes」で差分を確認できる
-
mainブランチにマージ
対象のPull Requestで「Merge」をクリックし,マージの方式を選択したらマージ完了
-
デプロイワークフロー実行状況を確認
現状何故か落ちてる...(なんで!?😇)
調査中!
-
動作確認
続報待ち!!!!
使ってみての感想
私が今までで触ってみての感想になります。
いいなーと思った点
- あらゆる機能をオールインワンしてる感じ
- 今までであれば,VScode,Asana,Github etc. のように様々なサービスを組み合わせて運用する形でやっていたことが,CodeCatalyst一つで完結する方向性に進んでいる印象
- それぞれの機能がスペシャリストレベル(コード管理ならGitHubとか)とまではなくとも、4名くらいまでの小規模&&ハッカソンなど数日で完結するようなプロジェクトであれば、積極的に使っていきたいと思った
- IDEを自前で持っているものを使え、ローカルマシンで環境構築などをしなくてよいからとても楽
- IDEからターミナルを見てみるとAmazon Linuxが動いてた👀
- (未検証)ローカルマシン由来のエラーとか回避できる?
- Ex.チーム開発してると,ある人は起動できてある人は起動できない→原因ローカルマシンのセッティングの問題のようなもの
もうちょっとと思う点
出たばかりのサービスなので、まだまだこれからのアップデートに大きな期待をしていることを前提でこうなったらいいなぐらいで捉えてください🙏
- 一部ラジオボタンとかが使いにくかった
- blueprintの選択のところなどはラジオボタンのところをクリックしないとだめだったので、そのへんの小さな部分は今後ちょっとずつ変更してくれると信じてる
- IAM絡みの権限エラーなどがぱっとみわからない
- デプロイがエラーしててAWSリソース絡みだと全くその内容が見えないようで、見れたらうれしい
まとめ
昨年のAmplify Studioといい、アプリケーション層に向けた新サービスが年々出てきていますが、CodeCatalystはまさか!こんなものがでてくるなんて!という感じです。
商用で使うかどうかはまだプレビューということもあり、まだ様子見かなと。
今後使い所になるかな?と思ってるのは、
- これから新規で始めるプロジェクト(人数も数人規模)
- 前述にもあるハッカソン
- プロジェクトの関係でローカルマシンに1から環境構築する必要はあるがHTMLや文章の修正ぐらいのPushしかしないなどの方
とかですかね
すでにプロジェクトがあり、サポート体制などが十分であるというチームからすると、まだ物足りなく感じると思いますが、今後CodeCatalystに乗り代わってくる未来は十分考えれると思ってます。
個人的に使用感としては結構いいなーと思っていて、今後のアップデート注目していきます。
Discussion