Amazon CodeCatalyst

ソースリポジトリ、CI/CD パイプライン、イシュー管理、クラウド開発環境を統合し、チーム開発のライフサイクル全体をカバーする開発プラットフォーム

概要

Amazon CodeCatalyst は、ソフトウェア開発に必要なツール群を単一のプラットフォームに統合したサービスです。プロジェクトの初期化からコーディング、ビルド、テスト、デプロイまでの全工程を 1 つのインターフェースで管理できます。ブループリントによるプロジェクトテンプレート、ブラウザベースの Dev Environments、YAML 定義のワークフローエンジンを備え、AWS アカウントとの連携により CloudFormation や CDK によるインフラデプロイも統合されています。スペースとプロジェクトの階層構造で組織のチーム体制を反映し、メンバーのロールベースアクセス制御を提供します。

ブループリントによるプロジェクト初期化

CodeCatalyst のブループリントは、プロジェクトの雛形を定義するテンプレート機構です。ブループリントを選択すると、ソースリポジトリ、CI/CD ワークフロー、Dev Environment の設定、イシューボードが自動的に構成されます。AWS が提供する公式ブループリントには、サーバーレス API (Lambda + API Gateway)、React SPA、3 層 Web アプリケーションなどの典型的なアーキテクチャが用意されています。カスタムブループリントを作成すれば、組織固有のプロジェクト構成 (ディレクトリ構造、リンター設定、セキュリティスキャンの組み込み、承認フローの定義) を標準化できます。ブループリントは Projen ベースで構築されており、TypeScript でプロジェクト構成をプログラマティックに定義します。ブループリントのバージョン管理により、テンプレートの更新を既存プロジェクトに段階的に適用するライフサイクル管理も可能です。新規メンバーがチームに参加した際、ブループリントからプロジェクトを作成するだけで、開発環境・パイプライン・コーディング規約がすべて揃った状態から開発を開始できます。

Dev Environments とクラウド IDE

Dev Environments は、クラウド上に開発環境を即座に構築する機能です。リポジトリの devfile (devfile.yaml) に開発環境の定義を記述しておくと、ブラウザまたはローカルの IDE からワンクリックで環境が起動します。VS Code、JetBrains IDE、AWS Cloud9 からの接続に対応し、開発者は使い慣れたエディタをそのまま利用できます。環境のコンピュートサイズは 2 vCPU / 4 GB から 16 vCPU / 32 GB まで選択可能で、ビルドが重いプロジェクトには大きなインスタンスを割り当てられます。devfile にはコンテナイメージ、環境変数、ポートフォワーディング、起動コマンドを定義でき、データベースやメッセージキューなどの依存サービスもコンテナとして同時に起動できます。永続ストレージにより、環境を停止しても作業中のファイルやブランチの状態が保持されます。非アクティブ時の自動停止 (デフォルト 15 分) でコストを抑制し、再開時は数十秒で前回の状態に復帰します。ローカル環境の差異による「自分のマシンでは動く」問題を根本的に解消し、チーム全体で一貫した開発体験を実現します。

ワークフローによる CI/CD パイプライン

CodeCatalyst のワークフローは、YAML ファイルでビルド・テスト・デプロイのパイプラインを定義する CI/CD エンジンです。リポジトリ内の .codecatalyst/workflows/ ディレクトリにワークフロー定義を配置し、プッシュやプルリクエストをトリガーに自動実行されます。アクションとして、ビルド (任意のシェルコマンド)、テスト (レポート自動収集)、CDK デプロイ、CloudFormation デプロイ、S3 パブリッシュなどが用意されています。AWS アカウントとの接続は「環境」リソースで管理し、開発・ステージング・本番の各環境に異なる AWS アカウントを紐付けられます。承認ゲートを挟むことで、本番デプロイ前に指定メンバーの承認を必須にできます。コンピュートタイプは Linux と Windows から選択でき、ビルドに必要なランタイム (Node.js、Python、Java、Go、.NET) はアクション内で指定します。アーティファクトの受け渡しにより、ビルドアクションの出力をデプロイアクションに引き継ぐパイプラインを構成できます。無料枠として月 2,000 分のビルド時間が含まれ、小規模チームであれば追加コストなしで CI/CD を運用できます。

共有するXB!