[レポート] AWS環境におけるCI/CDとCDKによるインフラ開発を学べるワークショップに参加しました #AWSreInvent #DOP303

Continuous integration and delivery on AWS(DOP303)のセッションレポートとなります。
2023.12.01

はじめに

ネクストモードの南です。

AWS環境におけるCI/CDとCDKによるインフラ開発を学べるワークショップContinuous integration and delivery on AWS(DOP303)に参加してきました。
本エントリではそのセッションレポートをお届けします。

ワークショップの概要

In this workshop, learn to create end-to-end continuous integration and continuous delivery (CI/CD) pipelines using AWS Cloud Development Kit (AWS CDK). Review the fundamental concepts of continuous integration, continuous deployment, and continuous delivery. Then, using TypeScript/Python, define an AWS CodePipeline, AWS CodeBuild, and AWS CodeCommit workflow. You must bring your laptop to participate.

このワークショップでは、AWS Cloud Development Kit(AWS CDK)を使用して、エンドツーエンドの継続的インテグレーションと継続的デリバリー(CI/CD)パイプラインを作成する方法を学びます。最初に継続的インテグレーション、継続的デプロイ、継続的デリバリーの基本的な概念を確認します。その後、TypeScript/Pythonを使用して、AWS CodePipeline、AWS CodeBuild、AWS CodeCommitのワークフローを設定します。参加にはノートPCが必要です。

ワークショップの内容

以下の内容が実施できるワークショップになっています。
CI/CDだけでも盛りだくさんですが、さらにCDKによるインフラの管理手法まで学ぶことができ、かなり広範囲の内容を学ぶことができます。

  • Dockerコンテナを使用したWebアプリケーションの開発
  • リポジトリによるソースコード管理
  • 構築とテストの自動化
  • テスト環境への自動デプロイ
  • 承認プロセスを経た本番環境へのデプロイ
  • コードによるインフラの管理

開発は以下のステップで進めることになります。

  • Lab 1: Application Development
  • Lab 2: Source Control
  • Lab 3: Continuous Integration
  • Lab 4: Continuous Deployment
  • Lab 5: Continuous Delivery
  • Lab 6: Blue/Green Deployments

開発はCloud9で進める形となり、ワークショップの場合はすでにセットアップされたCloud9が用意された状態でスタートします。こういう開発系のワークショップではCloud9のようなクラウドベースの統合開発環境の存在はすごく有り難みを感じます。

Lab6までのボリュームですが、チュートリアル上の総所要時間は3時間程度となっています。
ワークショップは2時間ですが、かなり急ぎ目にやってLab4までしか終わらなかったため、前提知識をある程度持った状態で順調に進めて3時間くらいという感覚になると思います。

最終的にLab.6まで開発が完了すると、以下のような構成が実装できる内容になっています。

また、インフラの実装はすべてCDKで進める形となり、受講者はTypeScriptとPythonから好きな方を選択することができます。

Lab 1: Application Development

新規のWebアプリケーションを作成します。
Cloud9上で開発を進め、最終的にウェブアプリケーション用のDockerコンテナイメージを構築します。

Lab 2: Source Control

ソース管理およびAWS CodeCommitについての実装を進めます。
また、AWS Cloud Development Kit (CDK) を使ったインフラの開発を進めます。
最終的にAWS CodeCommitリポジトリを作成し、ソースコードを追加、コミット、プッシュしていきます。

Lab 3: Continuous Integration

アプリをビルドしてテストするパイプラインを作成します。
CodeBuildeによるコンテナのビルドとテストを実装し、Amazon ECRにイメージをプッシュしていきます。
また、補足として基本的なイメージスキャンについても触れます。  

Lab 4: Continuous Deployment

アプリケーションのテスト環境のインフラを実装します。
パイプラインにデプロイメントステージを追加してテスト環境をデプロイしていきます。

Lab 5: Continuous Delivery

アプリケーションの本番用インフラを実装します。
パイプラインに承認プロセスを含めたデプロイステージを追加して、本番環境をデプロイします。

Lab 6: Blue/Green Deployments

本番環境でAWS CodeDeployを使用してブルー/グリーンデプロイメントをサポートするようにアプリスタックを更新します。
CodeDeployアプリケーションとデプロイ構成を作成します。
本番環境でCodeDeployを使用するようにパイプラインスタックを更新していきます。

おわりに

Continuous integration and delivery on AWS(DOP303)のセッションレポートをお届けしました。

AWS環境におけるCI/CDに加え、CDKによるインフラの管理まで実践することができる内容となっており、補足情報も充実しているのでかなりクオリティの高いワークショップになっていると感じました。
AWS環境におけるCI/CDの導入を検討している、あるいは実際に導入しているという場合でも有用な情報があると思います。エンジニア目線から見ても面白いワークショップでした。

ネクストモードについて

ネクストモード株式会社は東日本電信電話株式会社とクラスメソッド株式会社で設立したクラウドカンパニーです。「クラウドであたらしい働き方を」というメッセージを掲げ、さまざまなクラウド技術や製品を組み合わせて企業の働き方の当たり前を変えていくことを目指しています。クラウドやSaaSのご利用に関してお困りごとがあれば、ネクストモードまでぜひお問い合わせください。