AWS 認定トレーニング「DevOps Engineering on AWS」を受講してみた

AWS 認定トレーニング「DevOps Engineering on AWS」の受講レポートです。DevOps の概念やツールの使い方を学びながら、ハンズオンで実際に CI/CD パイプラインを操作するため、DevOps に関する理解を深めることができました。
2024.02.06

お疲れ様です。AWS 事業本部のヒラネです。
AWS 認定トレーニング「DevOps Engineering on AWS」を受講してきたので内容のご紹介や感想をお伝えしたいと思います。

AWS トレーニングとは

AWS トレーニングとは、AWS の利用方法の知識とスキルを身に付けるための公式教育プログラムです。
クラスメソッドのメンバーズプレミアムサービスにご加入いただいているお客様の場合は、
特別割引価格で受講いただけます!
提供トレーニングの詳細やお申込みは以下 URL をご参照ください。

今回は、トレーニングの中でも「DevOps Engineering on AWS」を受講しました。

トレーニングの概要

「DevOps Engineering on AWS」では、DevOps の基本的な考え方や技術を学びます。
ハンズオンでは、AWS サービスを利用して実際に CI/CD 環境の構築を行い、DevOps の一連の流れを体験することができます。
DevOps に関して知識を深めたい人や、DevOps の概念は知っているが実際にどのように実践するのかがわからない人におすすめのトレーニングとなっています。

私がトレーニングを受講した目的は以下の 2 点です

  • DevOps の概念は知っているが、いまいち実践方法がわからないので、ハンズオンで実際に CI/CD 環境を操作して DevOps の理解を深めたい
  • AWS Certified DevOps Engineer - Professional(DOP)認定を取得したい

以降、トレーニング内容のレポートになります。

トレーニングの内容

モジュール(講義)

  • モジュール 1 DevOps の概要
  • モジュール 2 インフラストラクチャの自動化
  • モジュール 3 AWSツールセット
  • モジュール 4 開発ツールを使用した CI/CD
  • モジュール 5 マイクロサービスの概要
  • モジュール 6 DevOps とコンテナ
  • モジュール 7 DevOps とサーバーレスコンピューティング
  • モジュール 8 デプロイ戦略
  • モジュール 9 テストの自動化
  • モジュール 10 セキュリティの自動化
  • モジュール 11 構成管理
  • モジュール 12 オブザーバビリティ

ラボ(ハンズオン)

  • ラボ 1 AWS AWS CloudFormation を使用してインフラストラクチャをプロビジョニングおよび管理する
  • ラボ 2 AWS CodeDeploy を使用してEC2フリートにアプリケーションをデプロイする
  • ラボ 3 AWS CodePipeline を使用してコードのデプロイを自動化する
  • ラボ 4 AWS SAM と CI/CD パイプラインを使用してサーバーレスアプリケーションをデプロイする
  • ラボ 5 CI/CD パイプラインとAmazon ECS を使用して Blue/Green デプロイを実行する
  • ラボ 6 CI/CD パイプラインの自動化に AWS DevOpsツールを使用する

モジュール 1 DevOpsの概要

  • DevOps とは
    • 文化的な基本方針、手法、ツールの組み合わせであり、ソフトウェア開発と情報テクノロジーの運用を結びつけるもの
    • DevOps により企業は新しいアプリケーション機能や改善されたービスを迅速に顧客に提供できる
  • DevOps の手法
    • 継続的インテグレーション
    • 継続的デリバリー
    • マイクロサービス
    • Infrastructure as Code
    • モニタリングとロギング
    • チームコミュニケーションと連携

モジュール 2 インフラストラクチャの自動化

  • Infrastructure as Codeの利点
    • バージョン管理ができる
    • 信頼性の高い方法で、繰り返し作成、削除、再作成できる
    • 複数の同一環境を作成可能
  • AWS CloudFormation と DevOps
    • AWS マネジメントコンソール、AWS CLI、AWS CodePipeline 等を 使用してテンプレートからスタックを自動的に作成する
    • パラメータ検証によりエラーを排除する
    • スタックの連鎖とネストを使用して複雑なシステムを構築する
    • カスタムリソースを使用して、複数のシステムを接続する
  • AWS CloudFormation のベストプラクティス
    • 以下の手順により CloudFormation を効果的に利用可能
      • スタックの計画と整理
      • テンプレートの作成と検証
      • スタックの管理

モジュール 3 AWSツールセット

  • AWS CLI
    • AWS のサービスを管理、自動化するツール
    • マネジメントコンソールから利用する機能をターミナルから実行する
  • AWS CDK
    • インフラストラクチャをコードで定義して AWS CloudFormation でプロビジョニングするためのソフトウェア開発フレームワーク
  • AWS Cloud9
    • ブラウザで利用可能なクラウドベースの IDE
    • ローカル環境に IDE をインストールする必要がない
  • Amazon CodeWhisperer
    • IDE、コードエディター用の AI コード自動生成サービス
    • セキュリティスキャン機能あり

ラボ 1 AWS AWS CloudFormation を使用してインフラストラクチャをプロビジョニングおよび管理する

AWS CloudFormation を利用したスタックの作成、スタック内のドリフトを検出、スタックの更新方法について学びました。
以下、ハンズオンで行った操作の概要です。

  • YAML で AWS CloudFormation テンプレートを作成
  • CloudFormation スタックを作成してインフラストラクチャをプロビジョニング
  • リソースの手動変更、ドリフト検出
  • 変更セットを利用したインフラストラクチャの更新

モジュール 4 開発ツールを使用したCI/CD

  • CI/CD の利点
    • 高リリース頻度
    • 反復による効率化
    • 開発の一貫性
    • 自動化による効率化
    • 開発体験向上によるチームの強化
    • デリバーリーの高速化によるソフトウェア開発プラクティスの効率化
  • AWS CodeCommit
    • Git ベースのリポジトリを安全にホストするフルマネージド型のソース管理サービス
    • CodeCommit へのアクセス制御
      • IAM カスタムポリシーの作成
      • リポジトリへの一時的な認証情報の提供
      • フェデレーションアクセス
      • 多要素認証
  • CodeBuild
    • コードのコンパイル、テスト実行、パッケージ生成を行うフルマネージドインテグレーションサービス
    • CodeBuild を利用する利点
      • フルマネージド型で管理いらず
      • ビルドのボリュームに合わせて継続的にスケール
      • CloudWatch Events からビルドをモニタリングできる
      • 独自のカスタマイズ環境を独自のビルドツールとランタイムで構築することも可能
  • AWS CodeDeploy
    • フルマネージドデプロイサービス
    • デプロイ可能なもの(例)
      • EC2
      • ECS
      • Lambda
      • オンプレミスサーバー
    • CodeDeploy を利用する利点
      • 複数のプラットフォームにデプロイ可能
      • デプロイ時のダウンタイムを回避可能
      • 集中制御が可能
  • AWS CodePipeline
    • 継続的デリバリーサービスを構築するもの
    • CodePipeline のアクション
      • ソース
        • ソースコードの保存場所を指定
        • パイプラインを動かすためのトリガーになる
      • ビルド
        • アプリケーションのビルド方法を指定する
        • CodeBuildやJenkins(サードパーティ製品)を利用可能
      • テスト
        • アプリケーションのテスト方法を指定する
      • デプロイ
        • アプリケーションのデプロイ方法を指定する
        • CloudFormation、CodeDeploy、ECS、OpsWork など
      • 呼び出し
        • 呼び出すカスタム関数を指定する
      • 承認
        • 手動での承認に関するSNSトピックをパブリッシュする
    • パイプラインの中で Lambda を呼び出すことが可能
    • パイプライン内で別の AWS アカウントのリソースを利用することが可能

ラボ 2 AWS CodeDeploy を使用して EC2 フリート にアプリケーションをデプロイする

CodeDeploy を利用して EC2 へアプリケーションをデプロイする手順を学びました。
以下、ハンズオンで行った操作の概要です。

  • CodeDeploy を使用して複数の EC2 サーバーにデプロイ
  • CodeDeploy エージェントのインストール
  • デプロイアプリケーションとデプロイグループの作成
  • CodeDeploy でインストールするデプロイパッケージの準備
  • デプロイターゲットのステータス監視

ラボ 3 AWS CodePipeline を使用してコードのデプロイを自動化する

CodePipeline の構築手順と実行方法について学びました。
以下、ハンズオンで行った操作の概要です。

  • AWS Cloud9 を使用したアプリケーションコードのパッケージ化、S3 バケットへのアップロード
  • AWS CodePipeline の構築
  • デプロイ設定の確認、CodeDeploy を使用してた動コードデプロイの実行

モジュール 5 マイクロサービスの概要

  • マイクロサービスとは
    • ソフウェア開発に対するアーキテクチャ的、組織的アプローチ
    • ソフトウェアが明確に定義されたAPIを介して通信するアプローチであり、言語に依存しない独立した小さなサービスで構成される
  • マイクロサービスの利点
    • スケーラビリティがある
    • 保守と改善が容易
    • 高い俊敏性
    • 迅速な構築/テスト/リリースサイクル
    • 短時間でのリリースが可能
  • マイクロサービスの開発に利用できる AWS サービス
    • コンピューティング
      • EC2, Lambda, ElasticBeanstalk
    • コンテナ
      • Margate, ECS/EKS
    • メッセージングまたはキュー
      • SNS/SQS
    • ネットワーク
      • API Gateway, ALB/NLB, App Mesh
    • 統合
      • Step Function
    • データベース
      • Dynamo DB

モジュール 6 DevOpsとコンテナ

  • コンテナとは
    • OS 仮想化手法のひとつ
    • 環境設定、依存関係、コードなどを簡単にパッケージ化可能
  • コンテナの仕組み・利点
    • コンテナイメージを作成→テストとデプロイを自動化→どの環境でも同じように実行可能→迅速にスケール可能  
  • Amazon ECS
    • スケーラビリティに優れたコンテナ管理サービス(Docker をサポート)
    • AWS Fargate 起動タイプ:EC2 レスでコンテナを動かす
      • まずは Fargate 起動タイプの利用を検討
    • EC2 起動タイプ:EC2 上でコンテナを動かす
      • コンテナで GPU を使いたい場合などは EC2 起動タイプを検討
  • Amazon ECS に関する用語
    • クラスター
      • タスクまたはサービスの論理グループ、ECS コンテナインスタンスのグループ
    • コンテナインスタンス
      • ECS コンテナエージェントが実行されている
      • タスクを実行する
    • エージェント
      • インスタンスにコンテナの開始、停止を命令
      • コンテナインスタンス上で実行される
    • タスク定義
      • JSON 形式のテキストファイル
      • アプリケーション要件の設計図
  • タスクとサービス
    • タスク
      • 一度きりのバッチジョブなど、オンデマンドワークロードに適している
    • サービス
      • 長時間実行されるアプリケーションに適している
  • Amazon ECR
    • スケーラブ ルかつ信頼性の高いマネージド AWS Docker レジストリサービス
  • Amazon EKS
    • AWS で Kubernetes を実行できるマネージドサービス
    • アップグレード、高可用性の管理を AWS が提供
      • 3 つの AZ で 3 つの Kubernetes マネージャーを実行
      • マネージャーに対するバージョン更新とパッチ適用を自動的に実施

モジュール 7 DevOpsとサーバーレスコンピューティング

  • サーバレスコンピューティングとは
    • AWS がサーバーを実行し、マシンリソースの割り当てを動的に管理するクラウドコンピューティングモデル
  • サーバレスコンピューティングの特徴
    • インフラストラクチャのプロビジョニングが不要で管理が少ない
    • 高可用性と安全性
    • 従量課金性
  • サーバレスを使用する利点
    • モダンアプリケーションを構築可能
      • 俊敏性の向上とコストの削減
    • 重要なアプリケーションに集中できる
      • 従来のITタスクを削減可能
    • 自動的にスケール可能
      • サーバー台数と使用台数の比較による容量調整
  • AWS Lambda
    • AWS Lambda でできること
      • サーバの起動や管理なしでコードを実行
      • 手動実行に代えてイベント応答した実行
      • 組み込みのスケーリング
      • Amazon CloudWatch でのモニタリングとログ記録
    • AWS Lambda 関数作成の際に行うこと
      • 関数のアクセス許可を定義
      • 関数を呼び出すイベント指定
      • コード実行に必要な依存関係、ライブラリの準備
      • ランタイムパラメータの設定
      • メモリ、タイムアウト、並列性
    • AWS Lambda 関数のアクセス許可
      • IAMリソースベースポリシー
      • 関数を呼び出せるプリンシパルを定義
      • IMA実行ロール
      • 関数が実行できることを定義
    • AWS Lambdaの呼び出しパターン
      • 同期(プッシュ)
        • Amazon API Gateway など
      • 非同期呼び出し
        • Amazon SNS、Amazon S3 など
      • ストリームベース(ポーリングベース)
        • Amazon Dynamo DB Streams、Amazon Kinesis など
    • AWS Lmabda の一般的なユースケース
      • データ処理
      • リアルタイムのストリーム処理
      • バックエンド
      • IT オートメーション
  • AWS SAM(Serverless Application Model)
    • AWS でのサーバレスアプリケーションの構築に使用されるオープンソースフレームワーク
    • AWS SAM のコンポーネント
      • AWS SAM テンプレート
      • AWS SAM CLI
    • SAM を利用する利点
      • 単一のデプロイ設定が可能
      • 組み込みのベストプラクティス
      • ローカルでのデバックとテストが可能
      • 開発ツールと統合可能
      • AWS Cloud Formation テンプレートへのコンパイル可能
  • AWS Step Functions 
    • ステップファンクションズ ワークショップ
    • Step Function の特徴
      • グラフビューで作成可能だが、実態はJsonコード
      • ステップごとの成功、失敗をグラフビューで閲覧可能
      • パイプラインの承認フローにも利用可能

ラボ 4 CICDパイプラインを使用してサーバレスアプリケーションをデプロイする

AWS SAM と CI/CD パイプラインを利用してアプリケーションをデプロイする方法を学びました。
以下、ハンズオンで行った操作の概要です。

  • AWS SAM を利用してアプリケーションをビルドしてローカルでテストし、パッケージ化してデプロイする
  • CI/CD パイプラインを自動化して、トラフィックシフトによるデプロイを設定する
  • トラフィックシフトによるデプロイを実施する

モジュール 8 デプロイ戦略

  • 継続的デプロイ(CD)
    • 実行中のアプリケーションを既存のバージョンからシームレスにアップグレードする
  • 継続的デプロイ戦略
    • インプレース
    • ローリング
    • イミュータブル
    • ブルー/グリーン
  • インプレースの利点
    • 低コストで迅速にデプロイ可能
  • ローリングデプロイの利点
    • ダウンタムなし
    • リスクが小さい
  • イミュータブルな更新の利点
    • インスタンスの置き換えを要する設定変更を効率的、安全に適用可能
  • ブルーグリーンデプロイの利点
    • ダウンタイムなし
    • デプロイ時間がカスタマイズ可能
    • ロールバックが容易
  • AWS のサービスを利用したデプロイ
    • AWS CloudFormation を使用したデプロイ
      • テンプレートに基づいた AWS リソースのスタックのプロビジョニングと管理
      • バージョンの制御
      • きめ細かい制御が可能なツールが必要な場合 に推奨
    • コードデプロイを利用して EC2 にデプロイ
      • 数千のインスタンスでも数分でデプロイ可能
    • AWS ECS を使用したデプロイ
      • スケーラブルかつ高性能なコンテナ管理
      • シンプルな API コール
    • サーバレスアプリケーションを使用したデプロイ
      • AWS CodePipeline、AWS CodeCommit、AWS CodeBuild を使用してデプロイパイプラインを作成する
      • AWS SAM を使用してアプリケーションとリソースを定義する

モジュール 9 テストの自動化

  • CI/CD でのテスト
    • 開発フェーズ
      • 単体テスト
    • ビルドフェーズ
      • コンポーネント単体、コンポーネント間の統合をテスト
    • ステージフェーズ
      • 本番環境のレプリカとして完全なシステムテストを実施
      • パフォーマンステスト
    • 本番フェーズ
      • 新しいアプリケーションバージョンのテスト
  • CodePipeline を利用したテストアクションの統合
    • 利用可能な AWS サービス
      • AWS Code Build
      • AWS Device Farm
      • AWS Lambda
  • CodeBuild を利用したテスト
    • ビルドを分割し、並列でテストを実行
    • テストの種類
      • 統合、単位、コードカバレッジ、セキュリティなど
  • CodeBuild のテストレポート
    • buildspec ファイルにテストレポートの出力先や形式を記述
  • テスト環境の自動化に必要なこと
    • 適切なインフラストラクチャの準備
      • テスト実行ためのオーケストレーション
      • 結果収集の仕組みの実装
    • テスト時に本番環境をレプリケートすることが重要
  • 単体テストのベストプラクティス
    • テスト駆動開発(TDD)アプローチを使用する
    • コードを変更する度に単体テストを実行して品質を検証する
    • 単体テストの独立性を維持する
    • 迅速に実行し、早めに失敗し、早期解決を心がける
  • テストのシナリオ
    • 負荷テスト
      • 高負荷環境出のパフォーマンスをモニタリング
      • 負荷テストの目的
      • 最低限必要なパフォーマンスを明らかにする
      • 高負荷環境での動作を確認する
    • A/B テスト
      • 異なるバージョンの機能をユーザーに提供し、メトリクスを収集・分析する
    • モバイルアプリケーションテスト
      • AWS Device Farm で実施可能
    • UI テスト
    • パフォーマンステスト
      • サードパーティーツール (BlazeMeter)などを AWS CodePipeline から実行可能

モジュール 10 セキュリティの自動化

  • DevSecOps とは
    • DevOps の中に Security(安全性を保つ仕組み)を組み込むこと
    • 1 人のみの責任ではなくチーム/コミュニティの取り組み
    • 自動化された、自律的なセキュリティ
  • DevSecOps の役割
    • CI/CD プロセスの一環としてコードとアーティファクトに対する検証と監査のためのコントロールセグメントを実装する
    • しくみの監査(コードの監査ではない)
  • DevSecOps の要素
    • CI/CD パイプライン自体のセキュリティ
      • アクセスロール
      • ビルドサーバー、ノードの強化
    • CI/CDパイプライン内のセキュリティ
      • アーティファクト検証
      • 静的コードの分析
  • パイプライン自体のセキュリティ
    • ユーザー管理
    • 最小権限の原則
      • IAM ポリシー
      • リソースベースポリシー
    • 検出制御
      • トランザクション中に発生したエラーの検出
      • ログの処理、イベント、モニタリング
      • AWS Config、AWS CloudTrail、VPC フローログなど
    • インフラのストラクチャの保護
      • AWS System Manager、Amazon VPC、AWS Firewall Manager など
  • パイプライン内のセキュリティ
    • セキュリティテストの自動化
    • セキュリティテストをパイプラインに直接統合する
      • Inspector、Clair、Amazon ECR イメージスキャン
    • ツールに API がある場合はカスタム Lambda 関数を使用して CodePipline から呼び出すことが可能
    • セキュリティテストに失敗した場合パイプラインを停止し、コードを本番環境に移行しないようにする
    • DevSecOps を半日で学べるハンズオン

モジュール 11 構成管理

  • 構成管理のツールとサービス
    • AWS Config
    • AWS System Manager
    • AWS CloudFormation
    • AWS OpsWorks
    • AWS Service Catalog
    • AWS Elastic Beanstalk
    • AMI
  • AWS Config
    • 継続的監査とコンプライアンス
    • AWS リソースの設定を評価、監査、審査する
    • 理想的な設定と現在の設定との比較評価を自動化する
    • AWS Config のユースケース
      • 監査とコンプライアンス
      • 設定変更がポリシーに違反していないかを確認
      • 運用上のガバナンス
      • CI/CD パイプライン設定の評価、コスト最適化など
      • セキュリティインテリジェンス
      • セキュリティインシデントの分析
      • 暗号化されていないリソースの特定
      • ITサービス運用(ITSM)/構成管理データベース(CMDB)との連携
    • AWS Config ルール
      • リソースの設定変更が基準に適合しているかを確認
    • AWS Config コンフォーマンスパック
      • コンプライアンスフレームワーク
        • AWS Config ルールと修復アクションのセットをパッケージ化
      • イミュータブルルール(個人アカウントから変更できないルール)を作成
  • AWS System Manger の機能
    • インベントリ
      • インスタンスやインスタンスにインストールされ たソフトウェアに関する情報を収集
    • パッチマネージャー
      • セキュリティパッチ適用の自動化
    • Session Manager
      • ブラウザベースのシェル、CLI、 モートデスクトップアクセス
    • ステートマネージャー
      • Amazon EC2 やオンプレミスのインスタンスの一貫性のある設定の維持
    • Explore
      • AWS 環境の運用の健全性やパフォーマンスについて、重要なインサイト や分析を提供
    • Run Command
      • サーバーにログインすることな く、インスタンスを安全にリモート管理
    • オートメーション
      • オペレーションセキュリティの強化
      • 一般的な IT タスクの自動化
    • パラメータストア
      • データベース文字列のようなプレーンテキストデータや、 パスワードのような秘密情報などの設定データを一元的に管理するストア
  • AMIの管理
    • AMI に含まれている情報
      • インスタンスのルートボリュームのテンプレート
      • どの AWS アカウントが AMI を使用してインスタンスを作成できるかを管理する起動許可
      • ブロックデバイスマッピング
      • ルートデバイス用のストレージ
  • カスタム AMI 例
    • 特定の構成でソフトウェアが事前にインストールされた AMI
    • ユーザーデータ、設定ソフトウェアでカスタマイズした AMI

ラボ 5 CI/CD パイプラインと Amazon ECS を使用して Blue/Green デプロイを実行する

ECR、ECS を利用したコンテナの構築と、CI/CD パイプラインを利用した Blue/Green デプロイの方法について学びました。
以下、ハンズオンで行った操作の概要です。

  • AWS CodeBuild を使用してカスタムコンテナイメージを作成し、Amazon ECR に保存する
  • AWS CodePipeline を使用してアプリケーションコンテナイメージの作成とビルドを自動化 する
  • Amazon ECS と AWS Fargate を使用してコンテナ化されたウェブアプリケーションをホス トし、実行する
  • AWS CodeDeploy を利用して Blue/Green デプロイを実行するように設定する

モジュール 12 オブザーバビリティ

  • オブザーバービリティとは
    • データやプロセスを分析して表示する能力
    • モニタリングデータの収集が必要
  • オブザーバービリティとモニタリング
    • オブザーバービリティとモニタリングは異なる
      • モニタリング:製品パフォーマンス、ヘルス状態のチェック
      • オブザーバビリティ:外部出力に基づいた内部状態の推測
  • オブザーバビリティの主要な要素
    • 「オブザーバービリティのゴールデントライアングル」と呼ばれる
    • モニタリング(メトリクス):Amazon CloudWatch メトリクス
      • 一定時間内に記録されたデータの数値表現
      • トレンドの特定、モデリング、予測に利用
    • ログ
      • イベントのタイムスタンプ付きのイミュータブルな記録
      • 緊急で予測不能な動作を発見するために利用される
    • トレース
      • エンドツーエンドのリクエストフローをエンコードする一連の分散イベントを表したもの
      • リクエストのパスと構造の両方を可視化するために使用される
  • オブザーバビリティとモニタリングに 関する AWS のサービス
    • モニタリング(メトリクス):Amazon CloudWatch
    • ログ:Amazon CloudWatch Logs
    • トレース:AWS X-Ray トレース
  • Amazon CloudWatch
    • アラームの設定
    • ログとメトリクスの可視化
    • アクションの自動化
    • 問題のとラブルシューティング
  • Amazon CloudWatch メトリクス
    • システムのパフォーマンスに関するデータ
    • 15 ヶ月間保存される
    • メトリクスの統計情報を取得可能
  • Amazon CloudWatch Logs
    • ログファイルのモニタリング、保存、アクセス
  • AWS X-Ray
    • サービスまたはリソース中心ではなく、ユーザー中心のモデルを使用し て、アプリケーションへのリクエストに関連するデータを収集
    • 分散アプリケーションのパフォーマンスの分析とデバッグ
    • レイテンシーの分布、パフォーマンスのボトルネックの特定
    • アプリケーション全体におけるユーザーへの影響を具体的に特定
  • Amazon DevOps Guru
    • 開発者と運用者が課題を自動で検出できる、機械学習を利用したサービス
    • アプリケーションの可用性を向 上させ、ダウンタイムを削減
    • リソースのレイテンシー、エラー発生率、リクエストレートなどのメトリクスを自動的に取り込んで分析
    • 機械学習を使用して異常を検出

ラボ 6 CI/CD パイプラインの 自動化に AWS DevOps ツール を使用する

CodePipeline の実行中にエラーが発生した場合のトラブルシューティング手法について学びました。
以下、ハンズオンで行った操作の概要です。

  • AWS CodePipeline を実行中に発生したエラーのトラブルシューティング
  • パイプラインのステージ間の変更、手動で承認する
  • ステージへの新たなアクション追加
  • AWS X-Ray を利用したトレース

受講した感想

本トレーニングの魅力はハンズオンが充実している点だと思います。
個人の検証環境で CI/CD パイプラインを一から構築し、動作を確認するのは時間がかると感じて躊躇していましたが、ハンズオンを通してそれらを実践できた点が非常に良かったです。
受講前は DevOps の概念や AWS の DevOps ツール(CodePipeline、CodeBuild、CodeDeploy)の概要は知っているものの、それらの詳細な関係性や具体的なセットアップ方法は理解できていない状態でした。
トレーニングの中で CI/CD パイプラインを実際に動かすことで、セットアップの手順とともに、DevOps ツール同士の関係性を理解することができました。

また、DevOps について体系的に学べたことで、スムーズに AWS Certified DevOps Engineer - Professional 認定の試験対策へ取り掛かることができた点も非常に良かったと感じています。

最後に

本トレーニングのハンズオンは、CodePipeline、CodeBuild、CodeDeploy を利用して CI/CD パイプラインを動かすものが中心でした。
また、パイプラインでエラーが発生した際のトラブルシューティングも体験でき、より実践的な対応を経験することができました。

CI/CD ツールは自身で実際に動かしてみると格段に理解度が向上すると思いますので、興味のある方は是非受講をご検討ください!

以上、ヒラネでした。