

# CloudFormation コンソールからスタックを作成する
<a name="cfn-console-create-stack"></a>

スタックテンプレートを作成した後、CloudFormation コンソールまたはコマンドラインツールを使用してスタックを作成できます。コンソールは、事前定義されたオプションを備えたウィザード方式のインターフェイスを提供して、スタック作成プロセスを効率化します。

**Topics**
+ [

## スタックの作成
](#create-stack)
+ [

## スタックオプションを設定する
](#configure-stack-options)
+ [

## スタックの設定をプレビューする
](#cfn-console-create-stacks-changesets)

## スタックの作成
<a name="create-stack"></a>

このセクションのステップに従って、テンプレートをデプロイし、スタックを作成します。

**前提条件**
+ スタックテンプレートを作成しておく必要があります。詳細については、「[CloudFormation テンプレートの使用](template-guide.md)」を参照してください。

**スタックを作成するには (コンソール)**

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソール を開きます。

1. 画面の上部のナビゲーションバーで、スタックを作成する AWS リージョンを選択します。

1. **[スタック]** ページでは、右上の **[スタックの作成]** を選択してから、**[新しいリソースを使用 (標準)]** を選択します。

   または、**[既存のリソースを使用 (リソースをインポート)]** オプションを選択して、テンプレートに記述されている既存の AWS リソースをインポートすることもできます。このオプションの詳細については、「[AWS リソースを CloudFormation スタックにインポートする](import-resources.md)」を参照してください。

1. **[スタックの作成]** ページで、以下の手順のいずれかを実行します。
   + 既存のテンプレートを使用するには、**[前提条件 - テンプレートの準備]** で **[既存のテンプレートを選択]** を選択します。次に、**[テンプレートの指定]** で、テンプレートの場所に基づいて **[Amazon S3 URL]** または **[テンプレートファイルのアップロード]** を選択します。
     + **[Amazon S3 URL]** を選択する場合は、S3 バケット内のテンプレートファイルへの URL を指定します。

       ネストされたスタック (例えば、サブディレクトリにある他のテンプレートドキュメントに記述されているスタック) がテンプレートに含まれている場合は、S3 バケットに必要なファイルとディレクトリが含まれていることを確認してください。

       バージョニング対応バケットからのテンプレートがある場合は、URL に `?versionId=version-id` を付加することでテンプレートの具体的なバージョンを指定することができます。バージョニング対応バケットの詳細については、「Amazon Simple Storage Service ユーザーガイド」の「[バージョニングが有効なバケットでのオブジェクトの操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-objects-versioned-bucket.html)」を参照してください。

       URL は、許可を読み込んだ S3 バケットに保存されたテンプレート (最大サイズは 1 MB) を指す必要があります。URL は最大 1,024 文字を含むことができます。リソースによっては、バケットがスタックと同じリージョンにある必要があります。
     + **[テンプレートファイルのアップロード]** を選択する場合は、**[ファイルの選択]** を選択して、ローカルコンピュータからテンプレートファイルを選択します。テンプレートファイルのサイズは 1 MB 以下にする必要があります。

       テンプレートを選択すると、CloudFormation によってファイルがアップロードされ、S3 URL が表示されます。CloudFormation は、AWS アカウント内の Amazon S3 バケットにファイルをアップロードします。AWS アカウント に、CloudFormation によって作成された S3 バケットが既にある場合、CloudFormation はそのバケットにテンプレートを追加します。CloudFormation が作成した S3 バケットがない場合は、テンプレートファイルをアップロードするリージョンごとに CloudFormation が一意のバケットを作成します。

       以下は、CloudFormation が作成した S3 バケットの使用時における考慮事項です。
       + バケットには、AWS アカウントで Amazon S3 許可を持つすべてのユーザーがアクセスできます。
       + CloudFormation は、デフォルトで有効になっているサーバー側の暗号化を使用してバケットを作成し、バケットに保存されているすべてのオブジェクトを暗号化します。

         CloudFormation が作成したバケットの暗号化オプションは、直接管理することができます。これには、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) にある Amazon S3 コンソール、または AWS CLI などを使用できます。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」で「[Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html)」を参照してください。
       + 手動でテンプレートを Amazon S3 にアップロードすることで、独自のバケットを使用してアクセス権限を管理できます。スタックを作成または更新する場合は、テンプレートファイルの Amazon S3 の URL を指定します。
   + テンプレートの準備ができていない場合、**[Infrastructure Composer からビルド]** を選択して、Infrastructure Composer でテンプレートを作成できます。詳細については、「[Infrastructure Composer](infrastructure-composer-for-cloudformation.md)」を参照してください。

1. **[次へ]** を選択して続行し、テンプレートを検証します。

   続行する前に、CloudFormation がテンプレートを検証し、循環依存などの構文エラーやセマンティックエラーを検出します。検証中に、CloudFormation はテンプレートが有効な JSON であるかどうかをまず確認します。そうでない場合は、CloudFormation はテンプレートが有効な YAML であるかどうかを確認します。両方のチェックが失敗すると、CloudFormation はテンプレートの検証エラーを返します。

1. [**Specify stack details (スタック詳細の指定)**] ページで、[**スタックの名前**] ボックスにスタック名を入力します。

   スタック名は、スタックのリストから特定のスタックを見つけるために役立つ識別子です。スタック名には、英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字はアルファベット文字である必要があります。また、128 文字より長くすることはできません。

1. **[パラメータ]** セクションで、テンプレートで定義されているパラメータの値を指定します。

1. **[次へ]** を選択して、スタックの作成を続行します。

1. (オプション) **[スタックオプションの設定]** ページで、デフォルトのスタックオプションを変更します。詳細については、「[スタックオプションを設定する](#configure-stack-options)」を参照してください。

1. テンプレートに IAM リソースが含まれる場合は、[**機能**] で[**I acknowledge that this template may create IAM resources (このテンプレートが IAM リソースを作成する可能性を認識しています)**] を選択して、テンプレート内の IAM リソースを使用することを指定します。詳細については、「[CloudFormation テンプレートでの IAM リソースの承認](control-access-with-iam.md#using-iam-capabilities)」を参照してください。

1. **[次へ]** を選択して続行します。

1. **[確認して作成]** ページで、スタックの詳細を確認します。

   スタックを起動する前に値を変更するには、変更する設定があるセクションで **[編集]** を選択します。

1. (オプション) 変更セットを作成して、スタックを作成する前にその設定をプレビューすることができます。**[確認して作成]** ページで **[変更セットの作成]** を選択し、指示に従います。詳細については、「[スタックの設定をプレビューする](#cfn-console-create-stacks-changesets)」を参照してください。

1. **[送信]** を選択してスタックを起動します。

その後、CloudFormation がテンプレートで定義されているすべてのリソースの作成を開始します。

スタック作成の進捗状況とステータスは、新しいスタックの **[イベント]** タブで監視できます。詳細については、「[スタックの進行状況を監視する](monitor-stack-progress.md)」を参照してください。

**コマンドラインを使用してスタックを作成するには**  
以下のコマンドのいずれかを使用できます。
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) (AWS CLI)
+ [https://docs.aws.amazon.com/powershell/latest/reference/items/New-CFNStack.html](https://docs.aws.amazon.com/powershell/latest/reference/items/New-CFNStack.html) (AWS Tools for Windows PowerShell)

コマンドラインを使用してスタックを作成する例については、「[AWS CLI および PowerShell の CloudFormation スタックオペレーションコマンドの例](service_code_examples.md)」を参照してください。

## スタックオプションを設定する
<a name="configure-stack-options"></a>

**[スタックオプションの設定]** ページでは、タグ、スタックイベントの通知、またはスタックポリシーといった CloudFormation スタックのオプションを設定できます。

次のスタックオプションを設定できます。

**タグ**  <a name="configure-stack-options-tags"></a>
スタックや、CloudFormation がタグ付けをサポートしている任意のリソースに、最大 50 個のタグキーペアを追加できます。タグは、お客様定義のキーと値で、コスト追跡などの目的で AWS リソースに割り当てることができます。  
**キー**は、任意の英数字またはスペースで構成されます。タグキーの値には最大 127 文字を使用できます。  
**値**は、任意の英数字またはスペースで構成されます。タグの値には最大 255 文字を使用できます。  
スタックを作成した後、スタックレベルのタグを追加、更新、または削除すると、スタックで更新が開始されます。スタックレベルのタグ伝播をサポートするすべてのリソースも併せて更新されます。

**アクセス許可**  <a name="configure-stack-options-permissions"></a>
CloudFormation が引き受けられる既存の IAM サービスロール。アカウントの認証情報を使用する代わりに、CloudFormation はロールの認証情報を使用してスタックを作成します。詳細については、「[CloudFormation サービスロール](using-iam-servicerole.md)」を参照してください。

**スタック障害オプション**  <a name="configure-stack-options-rollback"></a>
すべてのスタックデプロイと変更セットオペレーションのプロビジョニング障害オプションを指定します。詳細については、「[リソースのプロビジョニング時における失敗への対応方法を選択する](stack-failure-options.md)」を参照してください。  
**[Roll back all stack resources]** (すべてのスタックリソースをロールバック) オプションは、スタックステータスが `CREATE_FAILED` または `UPDATE_FAILED` のとき、テンプレートで指定されたすべてのリソースをロールバックします。  
作成オペレーションの場合、**[Preserve successfully provisioned resources]** (正常にプロビジョニングされたリソースの保持) オプションは、正常に処理されたリソースの状態を保持しますが、失敗したリソースは次の更新オペレーションが実行されるまで失敗した状態が維持されます。  
更新と変更セットのオペレーションの場合、**[Preserve successfully provisioned resources]** (正常にプロビジョニングされたリソースの保持) オプションは、正常に処理されたリソースの状態を保持しますが、失敗したリソースを最後の既知の安定状態にロールバックします。失敗したリソースは `UPDATE_FAILED` 状態になります。最後の安定状態が確認されていないリソースは、次のスタックオペレーション時に削除されます。

スタック作成の以下の詳細オプションを設定することもできます。

**スタックのポリシー**  <a name="configure-stack-options-stack-policy"></a>
スタックの更新中、意図しない更新から保護するリソースを定義します。デフォルトでは、スタックの更新時にすべてのリソースを更新できます。  
スタックポリシーを JSON として直接入力するか、スタックポリシーを含む JSON ファイルをアップロードすることができます。詳細については、「[スタックのリソースが更新されないようにする](protect-stack-resources.md)」を参照してください。

**ロールバック構成**  <a name="configure-stack-options-rollback-configuration"></a>
スタックの作成および更新中にスタックの状態を CloudFormation で監視し、指定されたいずれかのアラームのしきい値をスタックが超過した場合に、そのオペレーションをロールバックすることができます。CloudFormation がモニタリングする Cloudwatch アラームを指定します。スタックオペレーションまたはモニタリング期間中にいずれかのアラームが `ALARM` 状態になった場合、CloudFormation はスタックオペレーション全体をロールバックします。詳細については、「[ロールバックトリガーを使用して、アラーム違反時に CloudFormation スタックをロールバックする](using-cfn-rollback-triggers.md)」を参照してください。

**[Notification options]** (通知オプション)  <a name="configure-stack-options-notification"></a>
スタックイベントに関する通知が送信される新規または既存の Amazon Simple Notification Service トピックを指定できます。  
Amazon SNS トピックを作成する場合、スタックイベントの通知の送信先となる名前と E メールアドレスを指定する必要があります。

**スタック作成オプション**  <a name="configure-stack-options-creation-options"></a>
スタック作成には以下のオプションが含まれていますが、スタック更新には含まれていません。    
**タイムアウト**  <a name="configure-stack-options-creation-timeout"></a>
CloudFormation がスタック作成オペレーションのタイムアウトまでに割り当てる時間を分で指定します。CloudFormation が割り当てられた時間内にスタック全体を作成できない場合、スタックの作成がタイムアウトで失敗し、スタックはロールバックされます。  
デフォルトでは、スタックの作成にタイムアウトはありません。ただし、個々のリソースには、実装するサービスの性質に基づいて、独自のタイムアウトがある可能性があります。例えば、スタック内の個々のリソースがタイムアウトになった場合、スタックの作成に指定されたタイムアウトに到達していない場合でも、スタックの作成もタイムアウトになります。  
**削除保護**  
スタックが誤って削除されるのを防ぎます。削除保護を有効にした状態でスタックを削除しようとすると、削除は失敗し、ステータスを含め、スタックが変更されることはありません。詳細については、「[CloudFormation スタックの削除を防止する](using-cfn-protect-stacks.md)」を参照してください。  
削除保護はデフォルトで [**無効**] になっています。

## スタックの設定をプレビューする
<a name="cfn-console-create-stacks-changesets"></a>

CloudFormation スタックを作成する前にスタックがどのように設定されるかをプレビューするには、変更セットを作成します。この機能で、変更セットを実行する前に、さまざまな構成を検証し、スタックに修正や変更を行うことができます。変更セットの詳細については、「[変更セットを使用して CloudFormation スタックを更新する](using-cfn-updating-stacks-changesets.md)」を参照してください。

### 新しいスタックのために変更セットを作成する
<a name="cfn-console-create-stacks-changesets-create-new-stack"></a>

新しいスタックの変更セットを作成するには、新しいスタックを作成する場合と同じようにスタックテンプレートを選択し、スタックの構成を行ってから、新しいスタックではなく新しい変更セットの作成を選択します。

**新しいスタックのために変更セットを作成するには**

1. **[確認して作成]** ページで、**[変更セットを作成]** をクリックします。

1. **[変更セットを作成]** ダイアログボックスで、変更セットの名前と、必要に応じて説明を入力します。[**変更セットの作成**] を選択します。

   新しいスタックの変更セットを作成すると、CloudFormation によって以下の処理が実行されます。
   + `REVIEW_IN_PROGRESS` のステータスを持つ新しいスタックを起動します。
   + 前の手順で指定したスタック構成を反映する新しいスタックの変更セットを作成します。

   CloudFormation により、提案されたスタックの [**Change sets**] (変更セット) ページが表示されます。CloudFormation は変更セットを作成しますが、そのステータスは `CREATE_IN_PROGRESS` で、実行ステータスは `UNAVAILABLE` です。CloudFormation が変更セットの作成を正常に完了するとき、変更セットのステータスが `CREATE_COMPLETE` に設定され、実行ステータスは `AVAILABLE` になります。スタックのステータスは `REVIEW_IN_PROGRESS` に更新されます。この時点で、変更セットを実行して、新しいスタックの作成を完了することができます。

   CloudFormation によって、[**Changes**] (変更) ペインにスタックの構成案がリスト表示されます。

   CloudFormation による変更セットの作成が失敗すると、変更セットのステータスが `CREATE_FAILED` に設定されます。[**状況の理由**] フィールドに表示されるエラーを修正してから、新しい変更セットを作成します。この段階で、次の変更セットを実行する前に、さまざまな構成を試みスタックへ修正と変更を加えることができます。

1. 変更セットに基づいて新しいスタックの作成を完了するには、**[Execute]** (実行) を選択し、ロールバック構成を指定して、**[Execute change set]** (変更セットの実行) を選択します。