Skip to Content
AWS(Amazon Web Services)中級AWS 中級カリキュラム(CI/CDパイプライン構築)概要

概要

このカリキュラムについて

このカリキュラムは誰のためのもの?

この学習カリキュラムは、エンジニアとしてのスキルを高め、フリーランスとしても活躍できるレベルになりたいと考えている方向けです。

対象となる方:

  • AWSの基礎カリキュラム(ECサイト構築)を完了し、ALB・EC2・Auroraによる三層構造を理解している方
  • IaCカリキュラム(AWS CDK)を完了し、ECS on Fargateの環境構築ができる方(推奨)
  • 手作業でのデプロイや環境構築に時間がかかることに課題を感じている方
  • 開発から本番環境へのリリースプロセスを自動化し、業務効率を向上させたい方
  • SESやSIerで働いていて、顧客への提案の幅を広げたいと考えている方
  • フリーランスとして活動する際に、DevOpsスキルで差別化を図りたい方

何を学ぶカリキュラムなの?

このカリキュラムでは、CI/CD(継続的インテグレーション/継続的デリバリー)パイプライン をAWSを使って、ゼロから作り上げます。このシステムは、開発者がコードを変更してGitHubにプッシュするだけで、自動的にテスト・ビルド・デプロイが実行され、IaCカリキュラムで構築したECS on Fargate環境に反映される本格的な自動化システムです。

このシステムを身近な例で説明すると、工場の自動化ラインのようなものです。従来は、商品(アプリケーション)を作るたびに、職人(エンジニア)が手作業で一つひとつ検品し、梱包し、出荷していました。これは時間がかかり、人によって品質にばらつきが出る可能性がありました。

CI/CDパイプラインは、この工程を完全自動化します。原材料(ソースコード)が届いた瞬間に、自動的に品質チェック(テスト)が実行され、問題がなければ自動的に製品として組み立てられ(ビルド)、お客様の元へ届けられます(デプロイ)。しかも、この一連の流れは数分で完了し、24時間365日休むことなく動き続けます。

現場で起こる典型的な課題を想像してください。金曜日の夕方、明日のリリースに向けて最終確認をしています。開発環境では完璧に動いていたコードが、本番環境にデプロイした途端にエラーを起こしました。原因は環境の違いでした。急いで修正し、再度手作業でデプロイ。この作業に3時間かかり、チーム全員が残業することに…。

CI/CDパイプラインがあれば、このような状況を防げます。開発環境と本番環境の差異を最小化し、デプロイ前に自動テストで問題を検出し、問題があればデプロイを自動的に中断します。さらに、もし本番環境で問題が発生しても、ワンクリックで前のバージョンに戻すことができます(ロールバック)。

SESやSIerで働くエンジニアにとって、これは大きな武器になります。 顧客から「新機能を追加したいけど、デプロイ作業に時間とリスクがあって困っている」という相談を受けたとき、「CI/CDパイプラインを構築すれば、デプロイ作業を90%削減できます。しかも、リリース後のトラブルも大幅に減らせます」と提案できるようになります。

このスキルは、月単価を10万円〜20万円引き上げることができる重要な技術です。なぜなら、多くの企業が手作業のデプロイに課題を感じながらも、CI/CDの導入方法がわからず困っているからです。あなたがこの技術を提供できれば、企業にとって非常に価値の高いエンジニアとなります。

このカリキュラムを通じて、従来の手作業によるデプロイから脱却し、現代的な自動化されたデリバリープロセスを構築する技術を習得することができます。完成したシステムは、実際のスタートアップ企業や大企業が使用するレベルの本格的なCI/CDパイプラインとなります。

なぜCI/CDパイプライン構築を題材にしているの?

1. SES・SIerエンジニアの実務課題を直接解決できる

現場で働くエンジニアなら、誰もが一度は経験する「デプロイの悪夢」があります。手作業でのデプロイは時間がかかるだけでなく、ミスが発生しやすく、精神的なプレッシャーも大きいものです。

典型的な現場の課題

  • 毎週金曜日の夜、本番デプロイのために全員が待機。手順書を見ながら、一つひとつ手作業でコマンドを実行
  • 「この設定ファイル、本番環境用に変更した?」「あれ、このファイルアップロードし忘れた!」といった人的ミス
  • デプロイ後にバグが見つかり、緊急で修正。再度手作業でデプロイ。この作業を深夜まで繰り返す
  • 開発環境では動いていたのに、本番環境では動かない。環境の違いによる予期せぬエラー
  • 新しいメンバーがデプロイを担当すると、手順を間違えてシステムが停止

CI/CDパイプラインがあれば

  • GitHubにコードをプッシュするだけで、自動的にテスト・ビルド・デプロイが実行される
  • 環境による差異がないため、「開発では動いたのに本番では動かない」という問題が激減
  • デプロイ作業が5分で完了。しかも、深夜や休日でも気軽にリリースできる
  • ミスがあっても、自動テストで検出され、デプロイ前に止まる
  • 新人でもベテランでも、同じ品質のデプロイが可能

フリーランスエンジニアとして、この課題解決スキルを持っていると、案件獲得において大きなアドバンテージがあります。多くの企業が「デプロイの自動化」を課題として認識していながらも、実装できるエンジニアが不足しているためです。

2. 企業のコスト削減と効率化に直結する提案ができる

CI/CDパイプラインの導入は、企業にとって明確なコスト削減効果と業務効率化をもたらします。これを数値で示せることが、フリーランスエンジニアとしての価値を高めます。

コスト削減効果の例(あくまで参考値)

例えば、あるSIer企業のケースを見てみましょう。この企業では、月に4回のリリースサイクルで運用しており、毎週金曜日の夜に本番環境へのデプロイ作業を行っていました。

手動デプロイの場合、デプロイ準備として設定ファイルの編集や手順書の確認に2時間、本番サーバーへの反映作業に3時間、デプロイ後の動作テストと監視に2時間と、1回のデプロイ作業に合計7時間程度の工数がかかります。月に4回のリリースがあるため、月間では28時間程度の工数が必要です。仮にエンジニアの時給を5,000円と仮定すると、手動デプロイでは月間14万円、年間で168万円程度のコストが発生することになります。

一方、CI/CDパイプラインを導入した場合はどうでしょうか。初回はパイプラインの構築に一定の時間がかかりますが、一度構築してしまえば、デプロイ準備は不要になります。GitHubにコードをプッシュするだけで自動的にテストとビルドが実行され、デプロイ作業はボタンを押すだけの5分程度で完了します。デプロイ後の確認も、自動テストが通過しているため最小限の30分程度で済みます。1回のデプロイが35分程度に短縮され、月間では約2.3時間、金額にして月間1.15万円、年間で13.8万円程度に削減できる可能性があります。

注意: 上記の数値は、あくまで一例です。実際の工数や削減効果は、企業の規模、エンジニアのスキルレベル、アプリケーションの複雑さ、既存のデプロイプロセスなどによって大きく異なります。

さらに、デプロイミスによるシステム停止やトラブル対応のリスクも大幅に低減されます。例えば、手動デプロイ時の設定ファイルの編集ミスでシステムが1時間停止した場合、ECサイトであれば売上損失だけでなく、緊急対応のための人的コストや信用失墜のリスクも発生します。CI/CDパイプラインでは自動テストで問題を事前に検出できるため、このようなリスクを最小化できます。

フリーランスとして顧客にこのような効果を提示する際は、その企業の実際の状況に基づいた試算を行うことで、CI/CDパイプライン構築支援の案件獲得につながります。

3. 最新のDevOps文化を実践的に学習できる

CI/CDは単なる技術ではなく、DevOpsという現代的な開発文化の中核を成すものです。DevOpsとは、開発(Development)と運用(Operations)を一体化し、ソフトウェアのリリースサイクルを高速化する考え方です。

DevOps文化の本質

従来の開発現場では、開発チームと運用チームが分離していました。例えるなら、料理を作る人(開発)と、その料理をお客さんに提供する人(運用)が完全に別々で、コミュニケーション不足によるトラブルが頻発していました。

「この料理、どうやって温めるの?」「この調味料、どこに保管するの?」といった基本的な情報共有すらできていない状況です。

DevOps文化では、開発チームが「お客さんに提供する」ところまで責任を持ちます。これにより、以下のようなメリットが生まれます:

  • リリースサイクルの高速化:月1回→週1回→毎日へ
  • 品質の向上:開発者自身が運用を意識するため、運用しやすいコードを書くようになる
  • 問題の早期発見:小さな変更を頻繁にリリースするため、問題の原因を特定しやすい
  • チーム間の壁がなくなる:開発と運用が協力し合う文化が生まれる

このカリキュラムでは、単にCI/CDツールの使い方を学ぶだけでなく、DevOpsの考え方や文化を実践的に体験できます。

中級カリキュラムで学習するAWSサービス:

  • CI/CDパイプライン:AWS CodePipeline、AWS CodeBuild、AWS CodeDeploy
  • ソースコード管理:GitHub(CodeStar Connections経由)
  • コンテナ化:Docker、Amazon ECR
  • デプロイ先:IaCカリキュラムで構築したECS on Fargate環境
  • 監視・ログ:Amazon CloudWatch、AWS X-Ray
  • 通知:Amazon SNS、Slack連携
Tip

【解説】GitHub ActionsとAWS Codeシリーズの使い分け

CI/CDパイプラインを構築する際、GitHub ActionsとAWS Codeシリーズのどちらを選ぶべきか迷うことがあります。結論から言うと、一般的なWebアプリケーションの開発では、GitHub Actionsの方がシンプルで始めやすいという利点があります。GitHub上でソースコード管理からCI/CDまで一元管理でき、豊富な既存アクションを活用できるため、初期セットアップが容易です。しかし、AWS内のプライベート環境にアクセスする必要がある場合は、AWS Codeシリーズが圧倒的に有利になります。

具体的には、VPC内にあるプライベートなRDSデータベースやElastiCacheクラスター、内部APIサーバーなどにCI/CDパイプラインからアクセスする必要がある場合です。GitHub Actionsはパブリックなインターネット上で実行されるため、プライベートリソースにアクセスするには、セルフホストランナーを立てるか、複雑なネットワーク設定が必要になります。一方、AWS CodeBuildはVPC内で実行できるため、プライベートサブネットに配置されたリソースに直接アクセスできます。セキュリティグループとサブネット設定を行うだけで、データベースマイグレーションやプライベートAPIを使った統合テストを安全に実行できます。

また、AWS Codeシリーズを使用すると、IAMロールベースの認証が標準で利用でき、AWS Secrets ManagerやSystems Manager Parameter Storeとのシームレスな連携が可能です。GitHub Actionsでは認証情報をGitHub Secretsに保存してAWSにアクセスする必要がありますが、AWS Codeシリーズではサービス間の権限管理がIAMポリシーで一元化されるため、管理がシンプルになります。さらに、CloudWatchとの統合が深く、ビルドログやメトリクスの監視が容易です。

4. 段階的に成果を実感しながら学習できる

このカリキュラムは、基礎カリキュラムで構築したECサイトをベースに、段階的にCI/CDパイプラインを構築していきます。各ステップで具体的な自動化機能が完成するため、学習の達成感を感じながら進めることができます。

段階的な成果の実感:

  • ステップ1(ソースコード管理とコンテナ化):GitHubでコード管理を開始し、CodeStar ConnectionsでAWSと安全に連携、Dockerコンテナ化によって「どこでも動く」アプリケーションを実現します
  • ステップ2(CodePipelineとCodeBuildで自動ビルド・ECRプッシュ):AWS CodePipelineとCodeBuildを使って、GitHubへのプッシュだけで自動的にDockerイメージがビルドされ、ECRにプッシュされる環境が完成します
  • ステップ3(自動テストの統合):ユニットテストとVPC内のプライベートなALB/ECSサービスを使った統合テストを自動実行し、品質を担保した状態でビルドが進む仕組みが完成します
  • ステップ4(IaC環境への自動デプロイ):テストに合格したコードが自動的にIaCカリキュラムで構築したプライベートなECS環境にデプロイされ、本番前の最終確認ができるようになります
  • ステップ5(Blue/Greenデプロイと監視):ECS Blue/Greenデプロイ戦略を実装し、問題があれば自動ロールバックする完全なCI/CDパイプラインが完成します

学習を始める前に

このプログラムは実践的な内容になっているため、手を動かしながら学習することが重要です。理論だけでなく、実際にAWSの画面を操作して、自分の手でCI/CDパイプラインを作り上げてください。

学習を効果的に進めるためのコツ:

  • 基礎カリキュラムの知識を積極的に活用する:EC2やALBで構築したECサイトを、このカリキュラムで自動化していきます
  • 小さな変更から始める:最初から完璧なパイプラインを目指さず、まずは簡単な自動化から始めて、徐々に機能を追加していきましょう
  • 失敗を恐れない:CI/CDパイプラインは何度も失敗しながら改善していくものです。エラーが出たら、ログを読んで原因を特定する練習をしましょう
  • 実際の業務を想像しながら学習する:「もし自分が顧客にこのシステムを提案するなら?」という視点を持つと、より深い理解が得られます
  • コストを常に意識する:CI/CDツールの料金体系を理解し、コスト最適化の観点も持ちながら構築しましょう

準備しておくもの:

  • AWSアカウント
  • GitHubアカウント:ソースコード管理に使用します
  • Git CLI:ローカル開発とGitHubへのアクセスに使用します
  • IaCカリキュラムで構築したECS on Fargate環境:このカリキュラムではIaCで構築したプライベートなECS環境にデプロイします
  • Docker Desktop(ローカル開発用):コンテナ化を理解するために、ローカル環境でDockerを動かしてみることを推奨します
  • サンプルアプリケーション:Next.jsで作成されたサンプルアプリケーションを使用します

最初は難しく感じるかもしれませんが、ステップごとに丁寧に説明しますので、安心して学習を進めてください。完了する頃には、自信を持って「CI/CDパイプラインを構築し、デプロイを自動化できます」と言えるようになるはずです。

学習完了後のあなたは:

  • DevOpsエンジニアとして、高単価のフリーランス案件を獲得できるスキルと実績を持つ
  • CI/CD導入支援案件で、企業のコスト削減とリリースサイクル高速化を実現できる
  • IaC + CI/CDの完全自動化により、インフラからアプリケーションまで一貫した自動化を提供できる
Last updated on