中級カリキュラム:4つのコンテンツ
ステップ1:AWS CDKの基礎とVPC構築
内容:AWS CDKのインストール、基本概念、VPC・サブネット・ルートテーブルのコード化
例え:家を建てるための設計図の書き方を学び、まずは土地(VPC)を設計図で表現する作業
詳細説明:
- AWS CDKをローカル環境にインストールし、基本的なコマンド(init、synth、deploy、destroy)を学びます
- TypeScriptの基本文法とCDKの基本概念(App、Stack、Construct)を理解します
- VPC、サブネット、インターネットゲートウェイ、ルートテーブルをCDKコードで記述します
- cdk synth でCloudFormationテンプレートを生成し、cdk deploy で実際にAWSリソースを作成する体験をします
- CDK Context と環境変数を使って、環境ごとに異なる設定を管理する方法を学びます
ステップ2:ECSクラスターとALBの構築
内容:ECS on Fargateクラスター、Application Load Balancer、ターゲットグループのコード化
例え:土地の上にコンテナを配置するための基盤(ECS)と、お客さんを案内する入口(ALB)を設計図で作る作業
詳細説明:
- ECS on FargateクラスターをCDKコードで記述し、サーバーレスなコンテナ環境を構築します
- Application Load Balancer(ALB)をコードで管理し、リスナーとターゲットグループを定義します
- セキュリティグループをコード化し、適切なネットワークアクセス制御を設定します
- IAMロールとタスクロールをCDKで構築し、ECSタスクに適切な権限を付与します
- CDK L2 Constructsを使って、少ないコードで複雑なリソースを構築する方法を学びます
ステップ3:Next.jsアプリケーションの作成とECSへのデプロイ
内容:Next.jsサンプルアプリの作成、Dockerfileの作成、ECR/ECS/Fargateへのデプロイ、環境分離
例え:実際の商品(Next.jsアプリ)を作り、箱詰め(Docker化)し、倉庫(ECR)に保管して、店舗(ECS)で販売する一連の作業
詳細説明:
- シンプルなNext.jsアプリケーション(トップページとヘルスチェックエンドポイント)を作成します
- Next.jsアプリをコンテナ化するための最適化されたDockerfileを作成します
- Amazon ECR(Elastic Container Registry)をCDKで作成し、コンテナイメージを保管します
- ECSタスク定義をコードで記述し、CPUメモリ・環境変数・ログ設定を定義します
- Fargate Serviceをコードで構築し、タスクの自動スケーリングとヘルスチェックを設定します
- CDK ContextまたはStackPropsを使って、dev/stg/prod環境を分離し、環境ごとに異なる設定を適用します
- コンテナイメージをビルドしてECRにプッシュし、ECSで実際に動作させます
- CloudWatch Logsでコンテナのログを確認し、問題発生時のデバッグ方法を学びます
ステップ4:CI/CD統合の準備とベストプラクティス
内容:GitHubでのCDKコード管理、CDKパイプライン、次のCI/CDカリキュラムへの連携準備
例え:設計図(CDKコード)をチームで共有・レビューし、次の工程(CI/CD)に引き継ぐ準備をする作業
詳細説明:
- CDKコードをGitHubリポジトリで管理し、ブランチ戦略とコードレビュープロセスを設定します
- CDK Pipelinesを使って、インフラ変更を自動的にデプロイする仕組みを構築します(オプション)
- cdk-nag などのセキュリティチェックツールを統合し、脆弱性を自動検出します
- CDKのベストプラクティス(タグ付け、ネーミング規則、リソース削除保護)を学びます
- 次のCI/CDカリキュラムで使用するECS環境の出力値(ALB URL、ECSクラスター名等)をエクスポートします
学習完了後の次のステップ
この学習カリキュラムを完了し、最終アセスメント(テスト)に合格すると以下のステップに進むことができます。
- CI/CDパイプライン構築カリキュラムに進み、このECS環境へのアプリケーション自動デプロイを実現する
- Kubernetes(EKS)のインフラをAWS CDKで管理する上級カリキュラムに進む
- マルチリージョン・マルチアカウント構成のエンタープライズIaCを学ぶ
中級カリキュラムの勉強の仕方
学ぶ前に以下にアクセスできるかを確認しましょう。
- AWS 中級カリキュラム(IaC Infrastructure as Code)のサイト
- AWSコンソール
- GitHubアカウント
- ローカル開発環境(Node.js v18以上、Docker Desktop)
- 学ぶ
- それぞれのステップに記載してある手順に従いAWS CDKコードを記述し、AWSインフラを構築します。
- 用語やサービス名がわからない場合には学習カリキュラム内の「用語集、参考資料」を見てみましょう。
- 記載の内容や概念が理解できない場合には専用Slackにて質問をしてください。より初級レベルの知識を学びたい方は以下がおすすめの参考書籍となります。
- 学んだことの確認
- それぞれのステップには以下3つの確認項目が用意されていますのでそれぞれに回答を専用Slack上で提出してください。
- 実践チェック:CDKコードと実行結果のキャプチャで証明しよう
- 提出方法:CDKコードとcdk diffの出力結果をキャプチャし、提出
- 構成図による理解度チェック
- 提出方法:構築したインフラの構成図を作成し、提出
- 理解度チェック:なぜ?を考えてみよう
- 提出方法:質問の回答を提出
- アセスメント
- ステップ4までの学習が完了すると、最終アセスメントへ進みます。
- 最終アセスメントはオンラインで講師を相手にホワイトボーディングを行います。
- ホワイトボーディングとは相手がやりたいたいことをヒアリングし、それを実現するためのインフラ構成をAWS CDKコードで表現できるかを確認するロープレ形式のセッションです。
- 最終アセスメントを実施するかどうかは皆さんにお選びいただけます。実施希望の方は専用チャネルでManagerまでご連絡ください。
Last updated on