From c8ad52db1f40c1ab2680a984317377aa3ecd766f Mon Sep 17 00:00:00 2001 From: "nik.n" Date: Thu, 15 Feb 2024 13:55:20 +0900 Subject: [PATCH] =?UTF-8?q?r-export-dbdump=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stepfunctions/TOOLS/convert_config.yaml | 34 +++++++ .../r-export-dbdump-state.json | 95 +++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 stepfunctions/r-export-dbdump-state/r-export-dbdump-state.json diff --git a/stepfunctions/TOOLS/convert_config.yaml b/stepfunctions/TOOLS/convert_config.yaml index aa62a588..c0f62a09 100644 --- a/stepfunctions/TOOLS/convert_config.yaml +++ b/stepfunctions/TOOLS/convert_config.yaml @@ -26,6 +26,8 @@ resource: - &STG_SG_JSKULT_DBDUMP "sg-0967779af13538a8e" # セキュリティグループ(ecs-jskult-batch-laundering) - &STG_SG_JSKULT_BATCH_LAUNDERING "sg-00b9ea30c5c6bb77a" + # セキュリティグループ(ecs-export-dbdump) + - &STG_SG_EXPORT_DBDUMP "sg-03962e5f52b380186" # 本番環境 product: # サブネット(PrivateSubnet1) @@ -42,6 +44,8 @@ resource: - &PRD_SG_JSKULT_DBDUMP "sg-050ab3bc0d9ed261a" # セキュリティグループ(ecs-jskult-batch-laundering) - &PRD_SG_JSKULT_BATCH_LAUNDERING "sg-0d2bc30c1a2939c32" + # セキュリティグループ(ecs-export-dbdump) + - &PRD_SG_EXPORT_DBDUMP "sg-xxxxxxxxxxxxxxxx" config: # CRMデータ取得 r-crm-datafetch-state: @@ -177,3 +181,33 @@ config: SG_ECS_ALL: *PRD_SG_ECS_ALL # セキュリティグループ(ecs-jskut-batch-laundering) SG_JSKULT_BATCH_LAUNDERING: *PRD_SG_JSKULT_BATCH_LAUNDERING + # DBダンプ取得 + r-export-dbdump-state: + # ステージング環境 + staging: + # AWSアカウントID + AWS_ACCOUNT_ID: *AWS_ACCOUNT_ID + # 東京リージョン + REGION_AP_NORTHEAST_1: *REGION_AP_NORTHEAST_1 + # サブネット(PrivateSubnet1) + SUBNET_PRI_1A: *STG_SUBNET_PRI_1A + # サブネット(PrivateSubnet2) + SUBNET_PRI_1D: *STG_SUBNET_PRI_1D + # セキュリティグループ(ecs-all) + SG_ECS_ALL: *STG_SG_ECS_ALL + # セキュリティグループ(ecs-export-dbdump) + SG_EXPORT_DBDUMP: *STG_SG_EXPORT_DBDUMP + # 本番環境 + product: + # AWSアカウントID + AWS_ACCOUNT_ID: *AWS_ACCOUNT_ID + # 東京リージョン + REGION_AP_NORTHEAST_1: *REGION_AP_NORTHEAST_1 + # サブネット(PrivateSubnet1) + SUBNET_PRI_1A: *PRD_SUBNET_PRI_1A + # サブネット(PrivateSubnet2) + SUBNET_PRI_1D: *PRD_SUBNET_PRI_1D + # セキュリティグループ(ecs-all) + SG_ECS_ALL: *PRD_SG_ECS_ALL + # セキュリティグループ(ecs-export-dbdump) + SG_EXPORT_DBDUMP: *PRD_SG_EXPORT_DBDUMP diff --git a/stepfunctions/r-export-dbdump-state/r-export-dbdump-state.json b/stepfunctions/r-export-dbdump-state/r-export-dbdump-state.json new file mode 100644 index 00000000..3c708846 --- /dev/null +++ b/stepfunctions/r-export-dbdump-state/r-export-dbdump-state.json @@ -0,0 +1,95 @@ +{ + "Comment": "DBダンプ取得ステートマシン", + "StartAt": "params", + "States": { + "params": { + "Comment": "パラメータ設定", + "Type": "Pass", + "Parameters": { + "sns": { + "TopicArn": "arn:aws:sns:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:mbj-notice-#{ENV_NAME}" + }, + "ecs": { + "LaunchType": "FARGATE", + "Cluster": "arn:aws:ecs:#{REGION_AP_NORTHEAST_1}:#{AWS_ACCOUNT_ID}:cluster/mbj-newdwh2021-#{ENV_NAME}-export-dbdump-ecs", + "TaskDefinition": "ExportDatabaseDump", + "NetworkConfiguration": { + "AwsvpcConfiguration": { + "Subnets": [ + "#{SUBNET_PRI_1A}", + "#{SUBNET_PRI_1D}" + ], + "SecurityGroups": [ + "#{SG_ECS_ALL}", + "#{SG_EXPORT_DBDUMP}" + ], + "AssignPublicIp": "DISABLED" + } + }, + "Overrides": { + "ContainerOverrides": [ + { + "Name.$": "$.InputParams.ContainerName", + "Environment": [ + { + "Name": "DB_SCHEMA", + "Value.$": "$.params.eventBridge.DB_SCHEMA" + }, + { + "Name": "DUMP_BACKUP_BUCKET", + "Value.$": "$.params.eventBridge.DUMP_BACKUP_BUCKET" + } + ] + } + ] + } + } + }, + "ResultPath": "$.params", + "Next": "data-import" + }, + "data-import": { + "Type": "Task", + "Resource": "arn:aws:states:::ecs:runTask.sync", + "Parameters": { + "LaunchType.$": "$.params.ecs.LaunchType", + "Cluster.$": "$.params.ecs.Cluster", + "TaskDefinition.$": "$.params.ecs.TaskDefinition", + "NetworkConfiguration.$": "$.params.ecs.NetworkConfiguration", + "Overrides.$": "$.params.ecs.Overrides" + }, + "ResultPath": "$.result", + "Retry": [ + { + "ErrorEquals": [ + "States.ALL" + ], + "BackoffRate": 2, + "IntervalSeconds": 3, + "MaxAttempts": 3 + } + ], + "Catch": [ + { + "ErrorEquals": [ + "States.ALL" + ], + "Next": "CreateImportPendingFile", + "ResultPath": "$.result" + } + ], + "Next": "NormalEnd", + "Comment": "データ登録処理" + }, + "NormalEnd": { + "Comment": "正常終了", + "Type": "Succeed" + }, + "ErrorEnd": { + "Comment": "異常終了", + "Type": "Fail", + "Error": "StatesError", + "Cause": "StepFunctions ErrorEnd" + } + } +} \ No newline at end of file