CloudFormationを使ったデプロイと動作確認
本カタログのサンプルコードを AWS CloudFormation を使用してデプロイし、動作確認を行う方法を記載したドキュメントです。AWS CloudFormation を使って実際にリソースをAWS上にデプロイしていきます。
デプロイ構成
デプロイ手順
1. デプロイで利用する IAM Role と権限を確認
AMI で作成したインスタンスに付与したインスタンスロールの権限を確認してください。おすすめするやり方は、Administrator 権限付与後実行し、以降は AWS IAM Access Analyzer を利用して必要な権限を絞り込んで適用するやり方です。
- AWS IAM Access Analyzer の詳細については関連する公式ドキュメントを参照してください。
2. VPCデプロイ
まずはVPCをデプロイするためにaws-cliを使ってCloudFormationのデプロイを実行します。コマンド実行後AWSのマネジメントコンソールからデプロイの成功を待ちます。--stack-name
、AppName
、EnvName
はあなたの環境に合わせて好きな値を入れて下さい
[ec2-user ~]aws cloudformation create-stack \
--region us-east-1 \
--stack-name vpc \
--template-body file://deploy/cloudformation/vpc.yaml \
--parameters \
ParameterKey=AppName,ParameterValue=myapp \
ParameterKey=EnvName,ParameterValue=dev \
--capabilities CAPABILITY_NAMED_IAM
デプロイ完了後、マネジメントコンソールの出力タブを開いて以下の値を確認します。これらの値はその後のスタックのデプロイにて使用します。
3. データベースのデプロイ
Amazon Aurora PostgreSQLを先ほどデプロイしたVPC内にデプロイします。
[ec2-user ~]aws cloudformation create-stack \
--region us-east-1 \
--stack-name db \
--template-body file://deploy/cloudformation/db.yaml \
--parameters \
ParameterKey=AppName,ParameterValue=myapp \
ParameterKey=EnvName,ParameterValue=dev \
ParameterKey=DBUserName,ParameterValue=postgreAdmin \ # 好きな値を入れて下さい
ParameterKey=DBUserPassword,ParameterValue=SuperSecurePass123 \ # 8文字以上の好きな値を入れて下さい
ParameterKey=VpcId,ParameterValue=vpc-01187493c944a7ff0 \ # VPCの出力タブに出てきた値を入れます
ParameterKey=PrivateSubnet1,ParameterValue=subnet-0ba1ff7efe656281e \ # VPCの出力タブに出てきた値を入れます
ParameterKey=PrivateSubnet2,ParameterValue=subnet-0007df266992e3a06 \ # VPCの出力タブに出てきた値を入れます
--capabilities CAPABILITY_NAMED_IAM
DBのデプロイが完了したらマネジメントコンソールの出力タブよりAuroraクラスターのライターインスタンスのエンドポイントを確認します。
4. API Gateway + LambdaのCloudFormationスタックのデプロイ
同様にaws-cliにてスタックのデプロイを行います。
[ec2-user ~]aws cloudformation create-stack \
--regio us-east-1 \
--stack-name apigateway-lambda \
--template-body file://deploy/cloudformation/apigateway-lambda.yaml \
--capabilities CAPABILITY_NAMED_IAM \
--parameters \
ParameterKey=AppName,ParameterValue=myapp \
ParameterKey=EnvName,ParameterValue=dev \
ParameterKey=VpcId,ParameterValue=vpc-01187493c944a7ff0 \
ParameterKey=PrivateSubnet1,ParameterValue=subnet-0ba1ff7efe656281e \
ParameterKey=PrivateSubnet2,ParameterValue=subnet-0007df266992e3a06 \
ParameterKey=S3SourceCodeBucket,ParameterValue=$BUCKET_NAME \
ParameterKey=S3SourceCodeKey,ParameterValue=sample_api.zip \
ParameterKey=DbHost,ParameterValue=db-postgresql-rqoopbocmcqq.cluster-chptakso6oan.us-east-1.rds.amazonaws.com \ # Auroraクラスターのライターインスタンスのエンドポイント
ParameterKey=DbUser,ParameterValue=postgreAdmin \
ParameterKey=DbPassword,ParameterValue=SuperSecurePass123 \
ParameterKey=DbName,ParameterValue=mydb
デプロイが成功するとAPIエンドポイントが出力タブに表示されます。これを使って動作確認を行いましょう。
5. S3イベント + LambdaのCloudFormationスタックのデプロイ
[ec2-user ~]aws cloudformation create-stack \
--region us-east-1 \
--stack-name s3-lambda \
--template-body file://deploy/cloudformation/s3-lambda.yaml \
--capabilities CAPABILITY_NAMED_IAM \
--parameters \
ParameterKey=AppName,ParameterValue=myapp \
ParameterKey=EnvName,ParameterValue=dev \
ParameterKey=VpcId,ParameterValue=vpc-01187493c944a7ff0 \
ParameterKey=PrivateSubnet1,ParameterValue=subnet-0ba1ff7efe656281e \
ParameterKey=PrivateSubnet2,ParameterValue=subnet-0007df266992e3a06 \
ParameterKey=S3SourceCodeBucket,ParameterValue=$BUCKET_NAME \
ParameterKey=S3SourceCodeKey,ParameterValue=sample_event.zip \
ParameterKey=DbHost,ParameterValue=db-postgresql-rqoopbocmcqq.cluster-chptakso6oan.us-east-1.rds.amazonaws.com \
ParameterKey=DbUser,ParameterValue=postgreAdmin \
ParameterKey=DbPassword,ParameterValue=SuperSecurePass123 \
ParameterKey=DbName,ParameterValue=mydb
デプロイが成功するとイベントがトリガーされるS3バケットが生成されます。ここにユーザデータのCSVをアップロードするとLambdaファンクションが起動してDBにデータが作成されます。
動作確認
お疲れ様でした。こちらのページより動作確認が行えます。