Amazon CodeCatalystについてざっくりまとめてみる

# はじめに
2023/4/20にGAされました[Amazon CodeCatalyst](https://codecatalyst.aws/explore)について、僕なりの所感だったり使用感を書いていきます。
※GA・・・AWSのサービスが世に一般公開されること。「General Availability」の略。

# Amazon CodeCatalystとは
https://aws.amazon.com/jp/codecatalyst/

公式サイトには「AWS上でアプリケーションを素早く構築し、提供するための統一ソフトウェア開発サービスです。」とあります。（https://codecatalyst.aws/explore より抜粋）
>Unified software development service to quickly build and deliver applications on AWS.

つまり、CI/CDを簡単に迅速に実現するための統合ソフトウェア開発サービスということになります。
また既存のCI/CDツールと比較して、GUI上で設定ができたり、コード管理も可能だったりと、開発に関する全てがオールインワンで実現されます。

# 特徴１ 迅速なインフラ構成の構築
- Blueprintを使⽤することでアプリケーションのインフラ構成をテンプレから⾃動で構築可能
- AWS CDKと組み合わせることで柔軟なインフラ構築も可能

## Blueprintとは
https://codecatalyst.aws/explore/blueprints

代表的なアーキテクチャをプロジェクトに提供するものです。
アプリケーションフレームワークやホスティング方法などをテンプレートとして提供してくれます。
現在Blueprintを使用して構築可能な環境は以下のものがあります。
- SPA
- 静的サイト
- REST API
- サーバーレス環境
- 一般的なWeb3層

など

これらをベースとして素早く構築できるため、すぐに開発に着手することができます。
基本的に新規で立ち上げる際はBlueprintを使用するのがベストになりそうです。

## AWS CDKとは
https://aws.amazon.com/jp/cdk/

Typescriptなどのプログラミング言語を使用してAWSインフラが構築できるIaCサービスです。
AWSライブラリを使用することで少ない記述量でインフラを構築できます。
また[Construct Hub](
https://constructs.dev/)からコードを使用することも可能です。

CodeCatalystでは、Blueprintでは再現できない複雑なインフラ構成や既存のインフラをAWS上に移動する際に選択肢となり得ます。

# 特徴2 迅速な開発環境の構築
GUI上からローカル環境をすぐに立ち上げることが可能です。
またブランチごとにワークフローが構築できるので、ステージング用、検証用、リリース用などで別途ドメインを用意する必要がありません。

使用するIDEに関しても、AWSのCloud9はもちろんのこと、VSCodeやJetBrainsのIDEでの開発が可能です。
![スクリーンショット 2023-06-06 17.15.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527256/f68e680a-8238-02fe-5ace-b5b0e1d1326c.png)

# 特徴3 迅速な⾃動化ワークフローの構築
GUI上からワークフローを構築することが可能
従来のCI/CDでは、yamlファイルを使用してリソースを組むことが多いですが、画面上から直感的に構築することが可能です。
※もちろん、yamlを使用しての構築も可能

これが本当に簡単で、使用したいリソースを選択して、ドラッグアンドドロップで構築できます。
![スクリーンショット 2023-06-06 17.28.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527256/70b4ed99-2dda-ab31-eae3-756ecc925557.png)

また構築したワークフローをAWSのCloudFormationテンプレートへエクスポートできるので、他プロジェクトに同じ環境を使い回すなんていったこともできちゃいます。

# 特徴4 ⼿軽なプロジェクト管理が実現
CodeCatalyst上でリポジトリ管理も可能です。
使用感はほぼgithubと同じで、ソースの閲覧はもちろん、IssueやPRの作成、それに伴う通知の設定も可能です。

![スクリーンショット 2023-06-06 17.34.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527256/7ed8925f-a7af-2300-2700-5d0a9bda9ed2.png)

またポイントとして、チームメンバーの招待がメールアドレスのみで可能となってます。
CodeCatalyst上からビルダーIDを発行することで、AWSアカウントを持っていなくてもプロジェクトに参画できます。
これは本当に大きい。

実際のプロジェクトの立ち上げとメンバーの招待に関しては以下の手順で可能です。

## プロジェクト管理者
1. ビルダーIDを発行する(https://codecatalyst.aws/login)
2. 「スペース」を作成する
3. AWSアカウントと連携する
4. 「プロジェクト」を作成する
5. メンバーのメールアドレスにプロジェクト招待メールを送る

## プロジェクト参加者
1. 招待メールからビルダーIDを発行する(https://codecatalyst.aws/login)
2. プロジェクトへ参加完了

# 実際に使ってみた感想
## メリット
1. 立ち上げまで非常に簡単・・！
これに尽きる。
例えば、AWSで静的サイトを動かす環境を作るとなると、なんだかんだでS3でバケットを用意したり、IAMロールを作成したり、Cloudfrontを設定したりとやることが多い。
それに設定が漏れて上手く動かないなんてことが日常茶飯事。
それをオールインワンでやってくれる時点で優秀すぎる。
ついにここまで来たかと言う感じ。
正直、エンジニアでなくても代表的なアーキテクチャは構築できるんではないかすら感じる。

2. 料金設定が良心的
公式サイトから料金体系をまとめました。
無料枠が大きいのに加えて、有料プランでも月4ドルなのでかなり良心的ではないでしょうか。

**概要**

| サービス                            | Free                       | Standard                     |
|-----------------------------------|--------------------------|-------------------------|
| 料金                              | $0/ユーザー/月             | $4/ユーザー/月             |
| CodeCatalystリソース利用範囲         | 下記まで無料   | 更に多くのリソースが必要な場合はアップグレードが必要 |
| 請求頻度                  | 毎月             | 毎月              |

**詳細**

| 項目                                  | 無料                   | 標準                      |
|-------------------------------------|----------------------|--------------------------|
| ビルド時間     | 2,000分/スペース       | 3,000分/スペース          |
| 事前プロビジョニングされたコンピュート | なし                   | あり                     |
| 利用可能なインスタンス (Linux, Windows) | 2 vCPU/4GB (Linuxのみ) | 2 vCPU/4GB (Linuxのみ)    |
|                                     |                        | 4 vCPU/8GB               |
|                                     |                        | 8 vCPU/16GB              |
| 開発環境利用時間 | 60時間/スペース    | 200時間/スペース           |
| 利用可能なインスタンス (Linux)         | 2 vCPU/4GB            | 2 vCPU/4GB               |
|                                     |                        | 4 vCPU/8GB               |
|                                     |                        | 8 vCPU/16GB              |
|                                     |                        | 16 vCPU/32GB             |
| 1インスタンスあたりのストレージ| 16GB           | 16GB                     |
|      |   | 32GB         |
|  |          | 64GB                     |
| ソースストレージ  | 10GB/スペース          | 500GB/スペース             |
| 開発環境のストレージ | 64GB/スペース | 128GB/スペース |
| データ転送量 | 10GB/月 (スペースごと) | 10GB/月 (スペースごと) |


https://codecatalyst.aws/explore/pricing

## デメリット
簡単すぎる故にいつのまに高額なサービスを使用しているなんてことも。
CodeCatalystは統合開発サービスなだけで、実際にインスタンスやS3など別リソースはその分従量課金される。なので、簡単だからいつのまにオーバースペックな環境を構築してしまい、高額請求が来るなんてこともありえそう。
使用するリソースに関しては全てしっかりと料金体系を確認しといたほうが吉。

# 最後に
近日中に実際にアーキテクチャを組むための手順書を作成する予定です。
そちらの記事もお楽しみ。

# 参考
https://aws.amazon.com/jp/builders-flash/202304/ask-codecatalyst/?awsf.filter-name=*all

https://aws.amazon.com/jp/codecatalyst/

https://codecatalyst.aws/explore

https://www.sunnycloud.jp/column/20230422-01/