はじめに
業務の中で CodePipeline に触れる機会ができたので活動記録 兼 備忘として記事を残すことにしました。
前提
AWSについての私の知識量は、Cloud Practitioner 合格に向けて勉強中!のレベルです。
業務で AWS には触れますが仕組みや各サービスの内容について詳しく理解できていません。
CodePipelineってなに
前提にもあるとおり私は AWS の各サービスの内容について理解が浅いです。
Codepipeline と聞いた時に「なにそれ?」となったので調べて自分なりに解釈しました。
AWS CodePipeline は、コードの作成からデプロイまでのプロセスを自動化し、短時間で確実に、そして効率的にソフトウェアをリリースできる便利なサービスだと理解しました。
CodePipeline と連携させたいサービス
CodePipeline がどんなサービスかは分かりましたが、今回の業務では実際に使ってみる必要があるので、連携させたいサービスとその連携によって何ができるかを調べてイメージしてみました。
Cloud9
Cloud9 はアプリケーションの開発やデータベースなどの利用がクラウド環境でできる AWS サービスです。
システム開発の際に開発する人それぞれの環境に同じ開発環境を構築するのが手間なので
せっかくなら Cloud9 で環境構築してその環境で開発したものをコードからデプロイまで CodePipeline でやってしまいたい。
Cloud9 は現在新規利用について利用制限があります。
同時期に他のサービスについても利用制限が生じているものがあるようです。
上記の状況を受けて、今回は Cloud9 との連携は諦めることにしました。
そこで、環境構築を1から行なって CodePipeline を使用するためだけの環境を作成するのはやめて、すでにシステム開発がスタートしている既存の環境を使用することにしました。
CodeCommit
AWS CodeCommit は、プライベート Git リポジトリをホストする、安全で高度にスケーラブルなフルマネージド型ソース管理サービスです。
CodeCommit とはドキュメントやソースコードなどを保存、管理してくれるサービスです。
CodeCommit 上に作成したリポジトリ内へ作成したシステムのコードを置いておきソース管理を行うとともに、リポジトリが更新されたタイミングをトリガーとしてパイプラインの起動を開始したい。
CodeCommit も Cloud9 と同じく現在新規利用について利用制限があります。
上記の状況を受けて、CodeCommit を使用するのはやめて GitHub へのプッシュをトリガーとしてパイプラインの起動を行うように変更します。
CodeBuild
AWS CodeBuild は、ソースコードをコンパイルし、テストを実行し、すぐにデプロイできるソフトウェアパッケージを生成する、フルマネージド型の継続的インテグレーションサービスです。
CodePipeline からのトリガーを受けてビルドを起動し S3 からソースコードを取得してビルドとテストを行いたい。テストが通らなかった場合に CodeDeploy へのトリガーもここで中止したい。
CodeDeploy
AWS CodeDeploy は、Amazon Elastic Compute Cloud (EC2)、Amazon Elastic Container Service (ECS)、AWS Lambda、オンプレミスサーバーなどのさまざまなコンピューティングサービスへのソフトウェアデプロイを自動化するフルマネージド型のデプロイサービスです。
CodeBuild と同じく CodePipeline からのトリガーを受けて自動でデプロイしたい。
まとめ
上記のサービスと CodePipeline を連携させて、社内でサーバレスの web システムを作る場合のテンプレートを作成するのが目標です。
テンプレートを作成して CI/CD を導入し自動化することで、手作業によるミスや削減できる作業を減らし開発の生産性を向上させるために頑張ります。
私個人の目的として AWS のサービスに触れて知識をつけるというのがあるので、CodePipeline 意外にも AWS のサービスを触ってみようと思います。
終わりに
まだ実際に触っていないので調査段階ですが、やってみたいことは基本できそうでした。
次は CodePipeline を触る予定があるのでそれについての記事も書く予定です。
今後は使ってみたいサービスに利用制限がかかりませんように、、、、。