10. 各Stepの詳細
CatchAllFallBack
Mattermost alert
Pass State
Fail
Fail State
Error Handring
Main Step
Parallel State
Instance
Activity
Get Activity Task
rsync
Terminate instance
Wait 180s
Wait StateTask State
Attach volume
Create snapshot
snapshot
Delete snapshot
Oldest snapshot
Mattermost echo
webfook
Create instance
workers
webfook
LVM Snapshot
※WorkerとInstance間の通信はDX経由
11. State Machineのデプロイ
# cat config.yaml # State Machineとworkerの結び付きを定義しておく
---
- machine_name: backup_01
member:
- host01.example.jp
- host02.example.jp
- host03.example.jp
# rake # rakeのdefaultタスクで config.yaml を元に必要な設定ファイル群を生成する
I, [2017-04-17T10:05:14.378802 #23710] INFO -- : Created input.json
I, [2017-04-17T10:05:14.379042 #23710] INFO -- : Created machines.json
I, [2017-04-17T10:05:14.379340 #23710] INFO -- : Created definition.json
# rake prov # provタスクでState Machineと必要なActivityを作成し、設定ファイルとinputデータをS3に配置する。
I, [2017-04-17T10:05:20.460448 #23712] INFO -- : Create State Machine from definition.json
I, [2017-04-17T10:05:20.632556 #23712] INFO -- : #<struct Aws::States::Types::CreateStateMachineOutput state_machine_arn
="arn:aws:states:ap-northeast-1:xxxx:stateMachine:backup_01", creation_date=2017-04-17 10:05:20 +0000>
I, [2017-04-17T10:05:20.734137 #23712] INFO -- : #<struct Aws::States::Types::CreateActivityOutput activity_arn="arn:aws:stat
es:ap-northeast-1:xxx:activity:backup_01", creation_date=2017-04-17 10:05:20 +0000>
I, [2017-04-17T10:05:20.900066 #23712] INFO -- : Uploaded input.json
I, [2017-04-17T10:05:20.924153 #23712] INFO -- : Uploaded machines.json
・RakeとSDKで実装しましたが、CloudFormationを使ってもよかったと後から思いました