

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステップ 1: Amazon S3 バケットを作成する
<a name="using-s3-bucket"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

まず Amazon S3 バケットを作成する必要があります。これは、Amazon S3 コンソール、API、または CLI を使用することで直接作成することができますが、 CloudFormation テンプレートを使用すると、より簡単にリソースを作成できます。次のテンプレートでは、この例の Amazon S3 バケットを作成し、バケットに対する無制限のアクセスを許可する [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html)を伴う [インスタンスプロファイル](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html)をセットアップします。次に、レイヤー設定を使用して、スタックのアプリケーションサーバーのインスタンスにインスタンスプロファイルをアタッチします。これにより、後述のようにアプリケーションがバケットにアクセスできるようになります。インスタンスプロファイルは、Amazon S3 ばかりでなく、さまざまな AWS サービスを統合する場合にも役立ちます。

```
{
   "AWSTemplateFormatVersion" : "2010-09-09",
   "Resources" : {
      "AppServerRootRole": {
         "Type": "AWS::IAM::Role",
         "Properties": {
            "AssumeRolePolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Principal": {
                     "Service": [ "ec2.amazonaws.com" ]
                  },
                  "Action": [ "sts:AssumeRole" ]
               } ]
            },
            "Path": "/"
         }
      },
      "AppServerRolePolicies": {
         "Type": "AWS::IAM::Policy",
         "Properties": {
            "PolicyName": "AppServerS3Perms",
            "PolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Action": "s3:*",
                  "Resource": { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "AppBucket" } , "/*" ]
                  ] }
               } ]
            },
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
      "AppServerInstanceProfile": {
         "Type": "AWS::IAM::InstanceProfile",
         "Properties": {
            "Path": "/",
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
     "AppBucket" : {
      "Type" : "AWS::S3::Bucket"
      }
   },
   "Outputs" : {
       "BucketName" : {
           "Value" : { "Ref" : "AppBucket" }
       },
       "InstanceProfileName" : {
           "Value" : { "Ref" : "AppServerInstanceProfile" }
       }
   }
}
```

テンプレートを起動すると、以下の項目が実行されます。
+ `[AWS::S3::Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html)` リソースは Amazon S3 バケットを作成します。
+ `[AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)` リソースは、アプリケーションサーバーインスタンスに割り当てられるインスタンスプロファイルを作成します。
+ `[AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)` リソースによってインスタンスプロファイルのロールが作成されます。
+ `[AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)` リソースは Amazon S3 バケットへの無制限アクセスを許可するアクセス許可をロールに設定します。
+ テンプレートを起動すると、`Outputs` コンソールの [ CloudFormation ] セクションに、バケット名およびインスタンスプロファイル名が表示されます。

  これらの値は、スタックとアプリケーションをセットアップするために必要です。

 CloudFormation テンプレートの作成方法の詳細については、[「テンプレートの基本を学ぶ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html)」を参照してください。

**Amazon S3 バケットを作成するには**

1. システムのテキストファイルにサンプルテンプレートをコピーします。

   この例では、ファイル名を `appserver.template` としています。

1. [CloudFormation](https://console.aws.amazon.com/cloudformation/) コンソールを開き、[**スタックの作成**] を選択します。

1. [**Stack Name**] ボックスに、スタック名を入力します。

   この例では、名前を **AppServer** としています。

1. [**Upload template file**]、[**Browse**] の順に選択し、ステップ 1 で作成した `appserver.template` ファイルを選択して、[**Next Step**] を選択します。

1. [**Specify Parameters**] ページで、[**I acknowledge that this template may create IAM resources**] を選択し、最後のページに到達するまで、ウィザードの各ページで [**Next Step**] を選択します。**[作成]** を選択します。

1. [**AppServer**] スタックが [**CREATE\$1COMPLETE**] ステータスになったら、これを選択して [**Outputs**] タブを選択します。

   場合によっては、何回か更新してステータスをアップデートする必要があります。

1. [**Outputs**] タブで、[**BucketName**] と [**InstanceProfileName**] の値を書き留めます。これらの値は後で必要になります。​

**注記**  
CloudFormation はスタックという用語**を使用して、テンプレートから作成されたリソースのコレクションを参照します。 OpsWorks スタックスタックとは異なります。