🏗️

AWS CDK 入門: TypeScript で S3 スタックをデプロイする

難易度:入門
所要時間:40 分

ラボ概要

CloudShell 標準搭載の AWS CDK で cdk init / bootstrap / deploy / destroy を一通り体験し、TypeScript で S3 バケットを Infrastructure as Code として構築します。

このラボでは、AWS CDK (Cloud Development Kit) を使って、クラウドリソースを「コード」として定義し、CloudFormation テンプレートに合成(synth)してデプロイする一連の流れを体験します。AWS CloudShell に標準搭載された CDK と Node.js を使うため、ローカル環境の準備は不要です。

TypeScript で cdk init プロジェクトを作成し、Amazon S3 バケット(暗号化・バージョニング・パブリックアクセスブロックを有効化)を 1 つ定義します。そのコードを cdk synth で CloudFormation テンプレート(JSON)に変換して中身を確認し、生成されたテンプレートを AWS CLI の aws cloudformation deploy で東京リージョンへデプロイします。最後にスタックを削除する手順まで一通り学びます。

このラボは、サンドボックス環境で確実に最後まで完遂できるよう、cdk bootstrap を使わない構成にしています。cdk bootstrap は管理者相当の IAM ロールや ECR リポジトリを新規作成するため、権限が制限されたサンドボックスでは失敗しがちです。本ラボでは、CDK が合成したテンプレートをあなた自身の権限でそのままデプロイすることで、IaC の本質(コード → テンプレート → 実リソース)を安全に体験します。

CDK は CloudFormation を直接 YAML/JSON で書くよりも、プログラミング言語の補完・型チェック・再利用性を活かしてインフラを記述できる点が特徴です。Infrastructure as Code (IaC) の入り口として最適なテーマです。

学習目標

  • AWS CDK と CloudFormation の関係(CDK がコードを CloudFormation テンプレートに「合成」する仕組み)を理解する
  • cdk init で TypeScript の CDK プロジェクトを作成できる
  • TypeScript のスタック定義に S3 バケット(暗号化・バージョニング・パブリックアクセスブロック)を記述できる
  • cdk synth で生成される CloudFormation テンプレートを確認できる
  • 合成したテンプレートを aws cloudformation deploy でデプロイし、コンソールで結果を確認できる
  • スタックを aws cloudformation delete-stack で削除できる

前提

  • federated console に cloud_user ロールでサインイン済みであること
  • すべての操作を アジアパシフィック (東京) ap-northeast-1 リージョンで行うこと
  • AWS CloudShell を使用します(CDK・Node.js・AWS CLI はプリインストール済みのため、ローカルへのインストールは不要)
  • プログラミングの専門知識は不要です。コマンドとコードはすべてコピー&ペーストで進められます
  • 基本的なターミナル操作(コマンドの実行)に抵抗がないこと
  • 所要時間の目安は約 60〜90 分です
🏗️

ハンズオンラボとは?

本物の Azure リソースを使い、リスクなく試行錯誤しながら実践的なスキルを身につけられます。

他のラボを見る