Slide 1

Slide 1 text

第119回 雲勉【オンライン】 Step Functions を使って Auto Scaling を制御してみた

Slide 2

Slide 2 text

0.講師⾃⼰紹介 2 n 岡部 良亮 • CIࣄۀ෦ ߏஙୈീηΫγϣϯॴଐ • 2018年9⽉⼊社 (MSP⼀次運⽤→MSP⼆次運⽤→構築第⼋セクションに異動) 前職︓基盤システムの運⽤監視オペレーター・DCハウジング業務を担当。 • 最近、猫を飼いました。

Slide 3

Slide 3 text

アジェンダ 3 0. ⾃⼰紹介 1. AWS Step Functions の概要 2. AWS Step Functions を活⽤に⾄った経緯 3. AWS Step Functions を利⽤した Auto Scaling の実例 4. まとめ

Slide 4

Slide 4 text

本⽇のゴール 4 n AWS Step Functions の概要についてご理解いただく。 n AWS Step Fucntions の作成・設定についてご理解いただく。

Slide 5

Slide 5 text

1. AWS Step Functions の概要 5

Slide 6

Slide 6 text

1.AWS Step Functions の概要 6 n AWS Step Functionsとは AWS Lambda 等のサービスと統合してビジネスクリティカルなアプリケーションを構築で きるサーバーレスオーケストレーションサービスです。AWS Step Functions のグラフィカ ルコンソールでは、アプリケーションのワークフローを⼀連のイベント駆動型ステップとし て確認できます。

Slide 7

Slide 7 text

1.AWS Step Functions の概要 7 AWSの各サービスや、AWS CLI アクションをワークフロー形式で可視化して実装することが できるため、GUIベースでサービスやアクションの処理を実装できるのが魅⼒的。 コード表⽰も可能

Slide 8

Slide 8 text

1.AWS Step Functions の概要 8 AWS Step Functions は ステートマシン という単位で構成。 AWSサービスや各アクションを ステート と呼ばれるステップをフローで実⾏することで ⼀連の処理を実⾏できる。 ステートマシン ステート

Slide 9

Slide 9 text

1.AWS Step Functions の概要 9 ステートには様々な種類があり、それぞれのステートを組み合わせて処理を実現可能。 ・Task︓何らかの処理を実⾏ ・Wait︓処理待機 ・Succeed︓処理の成功判定 ・Fail︓処理の失敗判定 ・Choice︓条件の分岐 ・Parallel︓並列で処理 ・Map︓Mapステート内で⼀連の ワークフロー処理を実⾏

Slide 10

Slide 10 text

1.AWS Step Functions の概要 10 ・ワークフローの作成 Workflow Studioによる、GUIベースでの作成が可能。

Slide 11

Slide 11 text

2. AWS Step Functionsを活⽤に⾄った経緯 11

Slide 12

Slide 12 text

2. AWS Step Functionsを活⽤に⾄った経緯 12 そもそもなんでAWS Step Functions を使うの︖ 普通にAuto Scaling の設定すればよくない︖

Slide 13

Slide 13 text

13 ■実装要件 お客様環境のオンプレミスサーバーとAWS環境のEC2を利⽤して、 ハイブリッドに負荷分散を⾏いたい要望があった。 通常時はオンプレミスサーバーをターゲットにする ため、Auto Scaling 配下のターゲットグループに IPアドレスでターゲット指定する必要がある。 2. AWS Step Functionsを活⽤に⾄った経緯

Slide 14

Slide 14 text

14 ■ここで問題が・・・ Auto Scaling の仕様で、Auto Scaling Group に属するALB配下のターゲットグループにはイ ンスタンスのターゲットタイプを指定する必要があり、IPアドレスをターゲット指定すること ができない。 さてどうしよう・・・ 2. AWS Step Functionsを活⽤に⾄った経緯

Slide 15

Slide 15 text

15 AWS Step Functionsを利⽤すれば、Auto Scalingで作成されたインスタンスからIPアドレス を抽出して指定することができるらしい。 2. AWS Step Functionsを活⽤に⾄った経緯

Slide 16

Slide 16 text

16 早速やってみましょう 2. AWS Step Functionsを活⽤に⾄った経緯

Slide 17

Slide 17 text

3. AWS Step Functions を利⽤した Auto Scaling の実例 17

Slide 18

Slide 18 text

18 ■スケールアウト処理フロー 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 19

Slide 19 text

19 ■Step Functions ワークフロー ・Task︓DescribeInstances インスタンス情報を取得(IPアドレス抽出) ・Task︓RegisterTargets ターゲットグループへ登録 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 20

Slide 20 text

20 オートスケール処理の Step Functions、ステートマシン呼び出しの EventBridge を作成する。 スケールイン保護 無効化 ライフサイクルフック ライフサイクル移⾏:インスタンス終了 ハートビートタイムアウト:500秒 デフォルトの結果:CONTINUE ※Auto Scaling構成(ALB、ターゲットグループ、Auto Scaling Group 等)、IAM周り EventBridge の詳細⼿順については今回は割愛。 3. AWS Step Functions を利⽤した Auto Scaling の実例 ・Auto Scaling Groupの設定

Slide 21

Slide 21 text

21 ※補⾜︓ライフサイクルフック Auto Scalingの機能で、EC2のInService移⾏前、Terminated移⾏前に設定することで特定の処 理が完全に終了してからステータスを遷移させることが可能。 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 22

Slide 22 text

22 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 23

Slide 23 text

23 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 24

Slide 24 text

24 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 25

Slide 25 text

25 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 26

Slide 26 text

26 インスタンスID抽出のため、APIパラメータを設定 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 27

Slide 27 text

27 プライベートIPを抽出し、次のタスクにパラメータを 渡すため、ResultSelector を設定 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 28

Slide 28 text

28 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 29

Slide 29 text

29 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 30

Slide 30 text

30 事前作成済みのターゲットグループに前段で抽出した IPアドレスのEC2を指定してターゲット登録 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 31

Slide 31 text

31 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 32

Slide 32 text

32 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 33

Slide 33 text

33 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 34

Slide 34 text

34 ■EventBridge 作成(※詳細⼿順は割愛) イベントパターン︓ Auto Scaling 配下のEC2起動成功をトリガーとする ターゲット︓ 先程作成したステートマシンを指定 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 35

Slide 35 text

35 実際にスケールアウトしてみる 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 36

Slide 36 text

36

Slide 37

Slide 37 text

37 ■スケールイン処理フロー 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 38

Slide 38 text

38 ・Task︓DescribeInstances インスタンス情報を取得(IPアドレス抽出) ・Task︓DeregisterTargets ターゲット登録解除 ・Wait 360秒の待機処理 ・Task︓CompleteLifecycleAction ライフサイクルフックの完了処理 ■Step Functions ワークフロー 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 39

Slide 39 text

39 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 40

Slide 40 text

40 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 41

Slide 41 text

41 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 42

Slide 42 text

42 インスタンスID抽出のため、APIパラメータを設定 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 43

Slide 43 text

43 プライベートIP、インスタンスIDを抽出して 次のタスクにパラメータを渡すため、ResultSelectorを設定 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 44

Slide 44 text

44 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 45

Slide 45 text

45 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 46

Slide 46 text

46 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 47

Slide 47 text

47 プライベートIP、インスタンスIDを抽出して 次のタスクにパラメータを渡すため、ResultPathを設定 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 48

Slide 48 text

48 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 49

Slide 49 text

49 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 50

Slide 50 text

50 ターゲットグループの登録解除遅延まで待機処理(360秒)を挟む ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 51

Slide 51 text

51 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 52

Slide 52 text

52 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 53

Slide 53 text

53 ライフサイクルフック、Auto Scaling Groupを指定 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 54

Slide 54 text

54 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 55

Slide 55 text

55 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 56

Slide 56 text

56 ■Step Functions 作成 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 57

Slide 57 text

57 ■EventBridge 作成(※詳細⼿順は割愛) イベントパターン︓ Auto Scaling 配下のEC2終了ライフサイクルアクショ ンをトリガーとする ターゲット︓ 先程作成したステートマシンを指定 3. AWS Step Functions を利⽤した Auto Scaling の実例

Slide 58

Slide 58 text

3. AWS Step Functions を利⽤した Auto Scaling の実例 58 実際にスケールインしてみる

Slide 59

Slide 59 text

59

Slide 60

Slide 60 text

60 4.まとめ ・グラフィカルにワークフローを設定することが可能 ・コードが苦⼿な⽅でも直感的に設定ができる。 ・Lambda 等の他のサービスも組み合わせることで様々な使い⽅ができる。

Slide 61

Slide 61 text

61 ご清聴ありがとうございました