【レポート】AWS サービスで実現する継続的インテグレーション/継続的デリバリー(CI/CD)入門 #AWS-30 #AWSSummit

継続的インテグレーション/継続的デリバリー(CI/CD)に利用できる AWS サービスの入門セッションです。
2021.05.17

こんにちは!コンサル部のinomaso(@inomasosan)です。

AWS Summit Online Japan 2021が、2021年5月11日(火)、12日(水)で開催中されております。

本記事は2021年5月12日(水)に行われた「AWS サービスで実現する継続的インテグレーション/継続的デリバリー(CI/CD)入門」のセッションレポートとなります。

セッション概要

変化に迅速に対応する為に、ソフトウェアのリリースにも俊敏性が求められています。「より頻繁」、「より迅速」、「より安全」にリリースを行うには自動化が欠かせません。このセッションでは、継続的インテグレーション/継続的デリバリー(CI/CD)に利用できる AWS サービスをご紹介し、どのようにリリースプロセスを自動化することができるのかご紹介します。

登壇者

アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 西日本ソリューション部 ソリューションアーキテクト 松本 雅博

セッションレポート

1. 対象者

  • CI/CDをAWSサービスで実現する方法にご興味をお持ちの方

2. ゴール

  • CI/CDに利用可能なAWS各サービスについての理解、活用

3. アジェンダ

  • CI/CDが必要となる背景
  • CI/CDに関連するAWSサービス紹介と、使い方のはじめの一歩

4. CI/CDが必要となる背景

・配布モデルの変化

  • 従来はパッケージとして発売されていたソフトウェアは、現在はネットワークでの配布が主流となった
  • 変化に対応するには従来の手作業でのソフトウェアリリースでは間に合わない
  • 以下の自動化に対応したツールが必要
    • ソフトウェア開発のリリースプロセスの流れを管理するツール
    • コードの不具合や潜在的な問題を正しくテスト/検査するツール
    • アプリケーションをデプロイするツール

・リリースプロセスのレベル

  • 継続的インテグレーション(CI)はソースコードのチェックインをトリガーに、静的解析やビルド単体テストを行う
  • CDは継続的デリバリー継続的デプロイメントの2つがある。
    • 継続的デリバリーではリリース準備までが自動化され、リリースしても良い判断が出ればデプロイプロセスへ進む
    • 継続的デプロイメントは継続的デリバリーの繰り返し安全だと判断されたプロセスを全自動化し、ソースコードのチェックインから本番環境のデプロイまで人間は関与しない

5. CI/CDに関連するAWSサービス

  • 本セッションでは赤枠内のサービス紹介

・AWS CodeCommit

  • AWSマネージメントコンソールからリポジトリ内のコンテンツを閲覧、編集やコミット履歴の表示、プルリクエストの作成が可能

・AWS CodeBuild

  • ソースコードは下記と連携可能
    • AWS CodeCommit
    • Amazon S3
    • Bitbucket
    • GitHub
    • Github Enterprise

  • ソースコードの取得場所、実行するビルドコマンド、ビルド出力の格納コマンドなど、ビルドの実行方法に関する情報を、ビルドプロジェクトという単位で管理する
    • ビルド環境はOS、ランタイム、ビルド実行に使用するツールの組み合わせ

  • ビルドの出力がある場合、ビルド環境はその出力をS3バケットにアップロードする

  • ビルドの成功や失敗、各フェーズの移行をAmazon SNSやAWS Chatbotへ通知することが可能

・AWS CodeDeploy

  • Pull型の場合は各インスタンスが必要な情報をPullするので、サーバを意識する必要がなくなる

・AWS CodePipeline

  • ステージの中にはアクションを定義する
  • アクションは具体的な処理内容で、例えばCodeCommitからソースを取得したり、CodeBuildでコンパイルする等
  • トラジションはステージでアクションが正常に実行されると、次のステージに自動的に繋ぐ

  • 継続的デリバリー用に、承認アクションを利用して承認が行われたら次のステージに進むパイプラインを構築可能

・AWS CodeStar

  • AWS CodeStarはCI/CD環境に触れたことがなくて、試しに手軽にCI/CD環境を利用してみたい場合にオススメ
  • CodeStarのプロジェクト作成は、テンプレートを選択して、プロジェクト名を入力し、リポジトリを選択するだけで、数分待てば環境が作成される

まとめ

CI/CDの必要性と、関連するAWSサービスについて学ぶことができました。
Codeシリーズはマネージドサービスなので、パッチ適用やスケーリングをAWSに任せることができるのもメリットの一つですね。

CI/CD環境を構築した経験がないので、セッションでも紹介されていたAWS Code サービス群を活⽤して、CI/CD のための構成を構築しよう︕を試してみようと思います。

この記事が、どなたかのお役に立てば幸いです。それでは!