AWSのCode 3兄弟とは、CodeCommit、CodeDeploy、CodePipelineの3つのセットで、これらを使うと、ソースコードのgit管理、デプロイを結び付けて自動デプロイが可能になります。
おおまかなイメージ図を書きました。
Code Commitを使ってソースコードをgit管理していれば、それと連携してEC2インスタンスに自動でデプロイすることが可能です。
設定方法は、こちらの公式チュートリアル(シンプルなパイプラインを作成する)がとても参考になります。
イメージだけ説明すると、まずEC2インスタンスにCodeDeployエージェントというものをインストールしておく必要があります。
次にCodeDeployで、どのEC2インスタンスにデプロイするか等を設定します。デプロイ先のどこに配置するかは、ソースコードの中の トップフォルダのappspec.ymlファイルに書きます。上図の例だと、各EC2インスタンスの /var/source に配置されるようになります。EC2インスタンスは、デプロイグループの設定のタグで関連付けすることで設定できます。
CodePipelineでは、CodeCommitにgit push(ソースコードのアップデート)があったことをトリガーとして動作するように設定します。このトリガーに基づいてCodeDeployアプリケーションを実行します。
ソースコードの中のappspec.ymlには、CodeDeployでEC2インスタンスにインストールする前や後に実行するスクリプトも設定できます。したがって、インストール前にサーバプロセスを停止したり、インストール後にサーバプロセスを再起動する等、詳細な設定が可能です。
これで、開発者はソースコードの開発に集中できるようになりますね。本当に便利な3兄弟です。