翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 1: Amazon S3 バケットを作成する
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post
まず Amazon S3 バケットを作成する必要があります。これは、Amazon S3 コンソール、API、または CLI を使用することで直接作成することができますが、 AWS CloudFormation テンプレートを使用すると、より簡単にリソースを作成できます。次のテンプレートでは、この例の Amazon S3 バケットを作成し、バケットに対する無制限のアクセスを許可する IAM ロールを伴う インスタンスプロファイルをセットアップします。次に、レイヤー設定を使用して、スタックのアプリケーションサーバーのインスタンスにインスタンスプロファイルをアタッチします。これにより、後述のようにアプリケーションがバケットにアクセスできるようになります。インスタンスプロファイルは、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
リソースは Amazon S3 バケットを作成します。 -
AWS::IAM::InstanceProfile
リソースは、アプリケーションサーバーインスタンスに割り当てられるインスタンスプロファイルを作成します。 -
AWS::IAM::Role
リソースによってインスタンスプロファイルのロールが作成されます。 -
AWS::IAM::Policy
リソースは Amazon S3 バケットへの無制限アクセスを許可するアクセス許可をロールに設定します。 -
テンプレートを起動すると、
Outputs
コンソールの [ AWS CloudFormation ] セクションに、バケット名およびインスタンスプロファイル名が表示されます。これらの値は、スタックとアプリケーションをセットアップするために必要です。
AWS CloudFormation テンプレートの作成方法の詳細については、「テンプレートの基本を学ぶ」を参照してください。
Amazon S3 バケットを作成するには
-
システムのテキストファイルにサンプルテンプレートをコピーします。
この例では、ファイル名を
appserver.template
としています。 -
AWS CloudFormation
コンソールを開き、[スタックの作成] を選択します。 -
[Stack Name] ボックスに、スタック名を入力します。
この例では、名前を
AppServer
としています。 -
[Upload template file]、[Browse] の順に選択し、ステップ 1 で作成した
appserver.template
ファイルを選択して、[Next Step] を選択します。 -
[Specify Parameters] ページで、[I acknowledge that this template may create IAM resources] を選択し、最後のページに到達するまで、ウィザードの各ページで [Next Step] を選択します。[Create] (作成) を選択します。
-
[AppServer] スタックが [CREATE_COMPLETE] ステータスになったら、これを選択して [Outputs] タブを選択します。
場合によっては、何回か更新してステータスをアップデートする必要があります。
-
[Outputs] タブで、[BucketName] と [InstanceProfileName] の値を書き留めます。これらの値は後で必要になります。
注記
AWS CloudFormation はスタックという用語を使用して、テンプレートから作成されたリソースのコレクションを参照します。 AWS OpsWorks スタックスタックとは異なります。