開発者ツール
- CodeCommit
- ソースコードを管理するGitリポジトリ
- CodeBuild
- ソースコードのビルド/テスティングサービス
- CodeDeploy
- ブルドされたモジュール(アーティファクト)のデプロイサービス
- CodePipeline
- 上記3つのサービスを束ねて、一連の開発プロセスを自動化するサービス
- CodeStar
- 上記4つのサービスを利用したCI/CD環境を自動構築するサービス
CodeCommit
ソースコード管理のためのGitリポジトリサービスを提供するマネージド・サービス。
IAMユーザーを用いた権限管理
HTTPS方式でアクセスする場合は、gitコマンドを利用し、ローカル環境にあるIAMのクレデンシャル情報を用いてGitリポジトリに接続できる。
SSH方式でアクセスする場合は、ターミナル上で秘密鍵と公開鍵のペアを作成し、公開鍵をマネジメントコンソールでIAMに紐付けることでGitリポジトリに接続できる
他のAWSサービスとの連携
他のAWSサービスとシームレスに連携が可能。
CodePipelineやその他のCodeサービスを組み合わせることでCI/CD環境を簡単に構築することができる。
CodeBuild
ソースコードのコンパイル/ビルド環境を提供するマネージド・サービス。ビルド環境を簡単に構築できる。
ビルドの定義はbuildsspec.ymlに記載
ビルド環境上で何をするかをbuildsspec.yml
上に定義する。
- ビルド環境のセットアップ情報
- ビルド/ユニットテスト実行コマンド
- ビルド前後に実行したい処理
- ビルド後の出力情報
CodeDeploy
ビルド済みのモジュールのサーバーへのデプロイを自動化するサービス。
デプロイ先の選択可能
EC2,Lambda,そしてオンプレミスサーバーに対してモジュールをデプロイできる。
EC2やオンプレミスサーバーを対象とする場合、対象サーバーにCodeDeployエージェントをインストールしておく必要がある。
appsspec.yml
にデプロイ時にどのモジュールを、どこに配置するかといった設定をする。
デプロイ方式の選択可能
システムのサービスレベルによっては、無停止で新機能をデプロイすることが求められる。
そのためCodeDeployはいくつかのデプロイ方式に対応できるようになっている。
デプロイ方式 | 具体的な動き |
---|---|
AllAtOnce | 関連するサーバーすべてに同時にデプロイを行う方式 |
HalfAtATime | 関連サーバー郡の半分のリソースに対してデプロイを行う方式 |
OneAtATime | 関連するサーバーを1つずつロードバランサーから切り離して、デプロイを行う方式。 |
CodePipeline
CodeCommit, CodeBuild, CodeDeployのサービスを束ねて、一連の開発プロセスを自動化するサービス。
開発プロセスの自動化
- ソースコードのPush
- Pushを検知して→ソースコードのビルド
- ビルド完了を検知して→アーティファクトのデプロイ
という自動化されたパイプラインを作成することができる。
リリースの承認プロセスをパイプラインの途中に挟み込むことも可能。