AWS Cloud9 は、新しいお客様では利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CDK のチュートリアル AWS Cloud9
このチュートリアルでは、 AWS Cloud Development Kit (AWS CDK) AWS Cloud9 開発環境で を操作する方法について説明します。 AWS CDK は、デベロッパーが AWS インフラストラクチャコンポーネントをコードとしてモデル化するために使用できるソフトウェアツールとライブラリのセットです。
AWS CDK には、 で多くのタスクをすばやく解決するために使用できる AWS 構築ライブラリが含まれています AWS。たとえば、Fleet
コンストラクトを使用すると、コードをホストのフリートに完全かつ安全にデプロイできます。独自のコンストラクトを作成してアーキテクチャのさまざまな要素をモデル化し、これらを他のユーザーと共有したり、コミュニティに公開したりできます。詳細については、「AWS Cloud Development Kit 開発者ガイド」を参照してください。
このチュートリアルに従って、このサンプルを作成すると、 AWS
アカウントに料金が発生する可能性があります。これには、Amazon 、Amazon EC2、Amazon などのサービスに対する料金が含まれますSNSSQS。詳細については、「Amazon EC2料金
前提条件
このサンプルを使用する前に、設定が次の要件を満たしていることを確認します。
-
既存の AWS Cloud9 EC2開発環境が必要です。このサンプルは、EC2Amazon EC2 Linux または Ubuntu サーバー。別のタイプの環境またはオペレーティングシステムがある場合、このサンプルの指示を関連ツールを設定する必要がある場合があります。詳細については、「での環境の作成 AWS Cloud9」を参照してください。
-
既存の環境の は既に開いています AWS Cloud9 IDE。環境を開くと、 はウェブブラウザでその環境IDEの AWS Cloud9 を開きます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。
ステップ 1: 必要なツールをインストールする
このステップでは、 が TypeScript プログラミング言語で記述されたサンプルを実行する AWS CDK ために必要なすべてのツールを環境にインストールします。
-
Node Version Manager (
nvm
)。後で Node.js をインストールするために使用します。 -
Node.js 。これはサンプルで必要であり、Node Package Manager または
npm
が含まれています。これは、 TypeScript 以降の のインストールに使用します AWS CDK 。 -
TypeScript。これはこのサンプルで必要です。( では、他のいくつかのプログラミング言語 AWS CDK もサポートされています)。
ステップ 1.1: Node Version Manager (nvm) をインストールする
-
のターミナルセッションで AWS Cloud9 IDE、最新のセキュリティ更新プログラムとバグ修正がインストールされていることを確認します。これを行うには、
yum update
(Amazon Linux 用)またはapt update
コマンド (Ubuntu Server 用) を実行します。(新しいターミナルセッションを開始するには、メニューバーで、[Window (ウィンドウ)]、[New Terminal (新しいターミナル)]の順に選択します。)Amazon Linux の場合:
sudo yum -y update
Ubuntu Server の場合:
sudo apt update
-
nvm
がインストール済みであるかどうかを確認します。これを行うには、--version
オプションを使用してnvm
コマンドを実行します。nvm --version
成功すると、出力に
nvm
バージョン番号が表示されます。この場合、「ステップ 1.2: Node.js をインストールする」までスキップできます。 -
nvm
をダウンロードしてインストールします。これを行うには、インストールスクリプトを実行します。この例では、v0.33.0 がインストールされていますが、nvm
の最新バージョンはこちらで確認できます。 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
-
nvm
の使用を開始します。ターミナルセッションを閉じて再起動するかnvm
をロードするコマンドを含む~/.bashrc
ファイルを入手してください。. ~/.bashrc
ステップ 1.2: Node.js をインストールする
-
Node.js がインストール済みであるかどうかを確認します。インストール済みである場合は、そのバージョンが 16.17.0 以上であることを確認します。このサンプルは Node.js 16.17.0 を使用してテスト済みです。確認するには、 でターミナルセッションが開いている状態でIDE、
--version
オプションを使用してnode
コマンドを実行します。node --version
Node.js がインストール済みである場合は、出力にバージョン番号が表示されます。バージョン番号が v16.17.0 である場合は、「ステップ 1.3: インストール TypeScript」に進みます。
-
nvm
コマンドをinstall
アクションと共に実行して、Node.js 16 をインストールします。注記
nvm install node
を実行して、Node.js.support の長期サポート (LTS) バージョンをインストールすることもできます。 AWS Cloud9 Node.js LTSのバージョンを追跡します。nvm install v16
-
Node.js 16 の使用を開始します。これを行うには、
nvm
コマンドを実行します。次のようにalias
アクション、エイリアスを作成するバージョン番号、このエイリアスで使用するバージョンを指定します。nvm alias default 16
注記
上のコマンドは、Node.js 16 をデフォルトバージョンの Node.js として設定します。または、
alias
アクション (たとえば、nvm use 16.17.0
)の代わりにuse
アクションと共にnvm
コマンドとを使用できます。ただし、use
アクションを使用すると、このバージョンの Node.js の実行先は現在実行中のターミナルセッションに限られます。 -
Node.js 16 を使用していることを確認するには、
node --version
コマンドを再度実行します。正しいバージョンをインストールしている場合は、出力にバージョン v16 と表示されます。
ステップ 1.3: インストール TypeScript
-
が既に TypeScript インストールされているかどうかを確認します。これを行うには、ターミナルセッションを で開いたままにしてIDE、
--version
オプションを使用してコマンドライン TypeScript コンパイラを実行します。tsc --version
TypeScript がインストールされている場合、出力には TypeScript バージョン番号が含まれます。 TypeScript がインストールされている場合は、 に進みますステップ 1.4: をインストールする AWS CDK。
-
をインストールします TypeScript。これを行うには、
install
アクション、-g
オプション、パッケージの名前を使用してnpm
コマンドを実行します TypeScript 。これにより、 環境のグローバルパッケージ TypeScript としてインストールされます。npm install -g typescript
-
TypeScript がインストールされていることを確認します。これを行うには、
--version
オプションを使用してコマンドライン TypeScript コンパイラを実行します。tsc --version
TypeScript がインストールされている場合、出力には TypeScript バージョン番号が含まれます。
ステップ 1.4: をインストールする AWS CDK
-
が既に AWS CDK インストールされているかどうかを確認します。これを行うには、ターミナルセッションを で開いたままにしてIDE、
--version
オプションでcdk
コマンドを実行します。cdk --version
AWS CDK がインストールされている場合、出力には AWS CDK バージョンとビルド番号が含まれます。ステップ 2: コードを追加する に進んでください。
-
コマンドを
install
アクション、インストールする AWS CDK パッケージの名前、および 環境にパッケージをグローバルにインストールする-g
オプションnpm
とともに実行 AWS CDK して、 をインストールします。npm install -g aws-cdk
-
がインストールされ、正しく参照 AWS CDK されていることを確認します。これを行うには、
--version
オプションを使用してcdk
コマンドを実行します。cdk --version
成功すると、 AWS CDK バージョンとビルド番号が表示されます。
ステップ 2: コードを追加する
このステップでは、 が AWS CloudFormation スタックをプログラムでデプロイ AWS CDK するために必要なすべてのソースコードを含むサンプル TypeScript プロジェクトを作成します。このスタックは、 AWS アカウントに Amazon SNSトピックと Amazon SQSキューを作成し、キューをトピックにサブスクライブします。
-
ターミナルセッションを で開いたままにしIDE、プロジェクトのソースコードを保存するディレクトリを作成します。例えば、 環境内の
~/environment/hello-cdk
ディレクトリなどです。次に、このディレクトリに切り替えます。rm -rf ~/environment/hello-cdk # Remove this directory if it already exists. mkdir ~/environment/hello-cdk # Create the directory. cd ~/environment/hello-cdk # Switch to the directory.
-
ディレクトリを の TypeScript 言語プロジェクトとしてセットアップします AWS CDK。これを行うには、
init
アクション、sample-app
テンプレート、--language
オプション、およびプログラミング言語の名前を指定してcdk
コマンドを実行します。cdk init sample-app --language typescript
これにより、ディレクトリ内に以下のファイルとサブディレクトリが作成されます。
-
隠しサブディレクトリ
.git
と隠しファイル.gitignore
。これにより、プロジェクトは Git などのソース管理ツールと互換性を持ちます。 -
lib
サブディレクトリ。hello-cdk-stack.ts
ファイルが含まれます。このファイルには、 AWS CDK スタックのコードが含まれています。このコードは、この手順の次のステップで説明します。 -
bin
サブディレクトリ。hello-cdk.ts
ファイルが含まれます。このファイルには、 AWS CDK アプリケーションのエントリポイントが含まれています。 -
node_modules
サブディレクトリ。必要に応じてアプリケーションとスタックで使用できるサポート用のコードパッケージが含まれます。 -
隠しファイル
.npmignore
。コードのビルド時にnpm
で使用しない種類のサブディレクトリやファイルのリストが含まれます。 -
cdk.json
ファイル。このファイルの情報を使用するとcdk
コマンドを実行しやすくなります。 -
package-lock.json
ファイル。このファイルの情報を使用して、npm
はビルドや実行に伴うエラーを減らすことができます。 -
package.json
ファイル。このファイルの情報を使用すると、npm
コマンドの実行が容易になり、ビルドと実行に伴うエラーも減る可能性があります。 -
npm
および で実行できる便利なコマンドを一覧表示するREADME.md
ファイル AWS CDK。 -
tsconfig.json
ファイル。このファイルの情報を使用すると、tsc
コマンドの実行が容易になり、ビルドと実行に伴うエラーも減る可能性があります。
-
-
[Environment (環境)] ウィンドウで、
lib/hello-cdk-stack.ts
ファイルを開き、このファイル内で次のコードを参照します。import sns = require('@aws-cdk/aws-sns'); import sqs = require('@aws-cdk/aws-sqs'); import cdk = require('@aws-cdk/cdk'); export class HelloCdkStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const queue = new sqs.Queue(this, 'HelloCdkQueue', { visibilityTimeoutSec: 300 }); const topic = new sns.Topic(this, 'HelloCdkTopic'); topic.subscribeQueue(queue); } }
-
Stack
、App
、StackProps
、Queue
、およびTopic
クラスは、 AWS CloudFormation スタックとそのプロパティ、実行可能プログラム、Amazon SQSキュー、および Amazon SNSトピックをそれぞれ表しています。 -
HelloCdkStack
クラスは、このアプリケーションの AWS CloudFormation スタックを表します。このスタックには、このアプリケーションの新しい Amazon SQSキューと Amazon SNSトピックが含まれています。
-
-
[Environment (環境)] ウィンドウで、
bin/hello-cdk.ts
ファイルを開き、このファイル内で次のコードを参照します。#!/usr/bin/env node import cdk = require('@aws-cdk/cdk'); import { HelloCdkStack } from '../lib/hello-cdk-stack'; const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack'); app.run();
このコードは、
lib/hello-cdk-stack.ts
のHelloCdkStack
クラスをロードし、インスタンス化して、実行します。 -
npm
を使用して TypeScript コンパイラを実行してコーディングエラーを確認し、 を有効にしてプロジェクトのbin/hello-cdk.js
ファイル AWS CDK を実行します。これを行うには、プロジェクトのルートディレクトリから、npm
コマンドをrun
アクションで実行します。build
コマンドの値はpackage.json
ファイルで次のように指定します。npm run build
前述のコマンドはコン TypeScript パイラを実行し、サポートファイル
bin/hello-cdk.d.ts
とlib/hello-cdk-stack.d.ts
ファイルを追加します。また、このコンパイラーは、hello-cdk.js
ファイルおよびhello-cdk-stack.js
ファイルを、hello-cdk.ts
ファイルおよびhello-cdk-stack.ts
ファイルとしてトランスパイルします。
ステップ 3: コードを実行する
このステップでは、 bin/hello-cdk.js
ファイル内のコードに基づいて AWS CloudFormation スタックテンプレートを作成する AWS CDK ように に指示します。次に、スタックをデプロイ AWS CDK するように に指示します。これにより、Amazon SNSトピックと Amazon SQSキューが作成され、キューがトピックにサブスクライブされます。次に、トピックからキューにメッセージを送信して、トピックとキューが正常にデプロイされていることを確認します。
-
に AWS CloudFormation スタックテンプレート AWS CDK を作成してもらいます。これを行うには、ターミナルセッションを で開いたままIDE、プロジェクトのルートディレクトリから、
synth
アクションとスタックの名前を使用してcdk
コマンドを実行します。cdk synth HelloCdkStack
成功すると、出力に AWS CloudFormation スタックテンプレート
Resources
のセクションが表示されます。 -
特定の AWS アカウントと AWS リージョンの組み合わせの環境に AWS CDK アプリケーションを初めてデプロイするときは、ブートストラップスタック をインストールする必要があります。このスタックには、 がさまざまなオペレーションを完了 AWS CDK するために必要なさまざまなリソースが含まれています。例えば、このスタックには、デプロイプロセス中に がテンプレートとアセットを保存 AWS CDK するために使用する Amazon S3 バケットが含まれています。ブートストラップスタックをインストールするには、
cdk
コマンドをbootstrap
アクションと共に実行します。cdk bootstrap
注記
オプションを指定
cdk bootstrap
せずに を実行すると、デフォルトの AWS アカウントと AWS リージョンが使用されます。プロファイルとアカウント/リージョンの組み合わせを指定して、特定の環境をブートストラップすることもできます。例:cdk bootstrap --profile test 123456789012/us-east-1
-
AWS CloudFormation スタックテンプレート AWS CDK を実行してスタックをデプロイします。これを行うには、プロジェクトのルートディレクトリから、
cdk
コマンドにdeploy
アクションとスタック名を指定して実行します。cdk deploy HelloCdkStack
成功すると、エラーなしでデプロイされた
HelloCdkStack
スタックが出力に表示されます。注記
出力に、スタックが環境を定義しておらず、 AWS 認証情報を標準の場所から取得できなかったか、リージョンが設定されていないというメッセージが表示された場合は、 AWS 認証情報が で正しく設定されていることを確認しIDE、
cdk deploy
コマンドを再度実行します。詳細については、「の環境 AWS のサービス からの呼び出し AWS Cloud9」を参照してください。 -
Amazon SNSトピックと Amazon SQSキューが正常にデプロイされたことを確認するには、 トピックにメッセージを送信し、キューで受信したメッセージを確認します。これを行うには、 AWS Command Line Interface (AWS CLI) や などのツールを使用できます AWS CloudShell。これらのツールの詳細については、AWS CLI および の aws-shell チュートリアル AWS Cloud9 を参照してください。
例えば、 でターミナルセッションを開いたまま、 トピックにメッセージを送信するにはIDE、 AWS CLI を使用して Amazon SNS
publish
コマンドを実行し、メッセージの件名と本文、トピックの AWS リージョン、トピックの Amazon リソースネーム () を指定しますARN。aws sns publish --subject "Hello from the AWS CDK" --message "This is a message from the AWS CDK." --topic-arn arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
前のコマンドで、 をトピックARN AWS CloudFormation に割り当てる
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
に置き換えます。ID を取得するには、Amazon SNSlist-topics
コマンドを実行できます。aws sns list-topics --output table --query 'Topics[*].TopicArn'
成功すると、
publish
コマンドの出力に、発行されたメッセージのMessageId
値が表示されます。キューで受信したメッセージを確認するには、Amazon SQS
receive-message
コマンドを実行し、キューの を指定しますURL。aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
前のコマンドで、 をキューARN AWS CloudFormation に割り当てる
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
に置き換えます。を取得するにはURL、Amazon SQSlist-queues
コマンドを実行します。aws sqs list-queues --output table --query 'QueueUrls[*]'
成功すると、
receive-message
コマンドの出力に、受信されたメッセージの情報が表示されます。
ステップ 4: クリーンアップする
このサンプルの使用が完了した後に AWS アカウントへの継続的な料金が発生するのを防ぐには、 AWS CloudFormation スタックを削除する必要があります。これにより、Amazon SNSトピックと Amazon SQSキューが削除されます。環境も削除する必要があります。
ステップ 4.1: スタックを削除する
ターミナルセッションを で開いたままIDE、プロジェクトのルートディレクトリから、 destroy
アクションとスタック名を使用して cdk
コマンドを実行します。
cdk destroy HelloCdkStack
スタックの削除を確認するメッセージが表示されたら、「y
」と入力し、Enter
キーを押します。
成功すると、エラーなしで HelloCdkStack
スタックが削除されたことが出力に表示されます。
ステップ 4.2: 環境を削除する
環境を削除するには、AWS Cloud9 で環境を削除する を参照してください。