Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第119回 雲勉【オンライン】Step Functions を使ってAuto Scaling ...
Search
iret.kumoben
November 16, 2023
Technology
0
440
第119回 雲勉【オンライン】Step Functions を使ってAuto Scaling を制御してみた
下記、勉強会での資料です。
https://youtu.be/d38nrpooyLk
iret.kumoben
November 16, 2023
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
33
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
35
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
54
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
86
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
69
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
44
第169回 雲勉 AWS WAF 構築 RTA
iret
0
51
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
54
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
65
Other Decks in Technology
See All in Technology
ピープルウエア x スタートアップ
operando
3
3.8k
エンジニアにとってコードと並んで重要な「データ」のお話 - データが動くとコードが見える:関数型=データフロー入門
ismk
0
170
AI時代におけるドメイン駆動設計 入門 / Introduction to Domain-Driven Design in the AI Era
fendo181
0
530
Copilotの精度を上げる!カスタムプロンプト入門.pdf
ismk
10
2.7k
決済システムの信頼性を支える技術と運用の実践
ykagano
0
280
龍昌餃子で理解するWebサーバーの並行処理モデル - 東葛.dev #9
kozy4324
1
140
3年ぶりの re:Invent 今年の意気込みと前回の振り返り
kazzpapa3
0
180
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
360
プロダクトエンジニアとしてのマインドセットの育み方 / How to improve product engineer mindset
saka2jp
2
200
Databricks Free Editionで始めるMLflow
taka_aki
0
840
SREのキャリアから経営に近づく - Enterprise Risk Managementを基に -
shonansurvivors
1
770
なぜ新機能リリース翌日にモニタリング可能なのか? 〜リードタイム短縮とリソース問題を「自走」で改善した話〜 / data_summit_findy_Session_2
sansan_randd
1
140
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Designing for humans not robots
tammielis
254
26k
Designing Experiences People Love
moore
142
24k
Context Engineering - Making Every Token Count
addyosmani
8
360
[RailsConf 2023] Rails as a piece of cake
palkan
57
6k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
Writing Fast Ruby
sferik
630
62k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Practical Orchestrator
shlominoach
190
11k
Thoughts on Productivity
jonyablonski
73
4.9k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Transcript
第119回 雲勉【オンライン】 Step Functions を使って Auto Scaling を制御してみた
0.講師⾃⼰紹介 2 n 岡部 良亮 • CIࣄۀ෦ ߏஙୈീηΫγϣϯॴଐ • 2018年9⽉⼊社
(MSP⼀次運⽤→MSP⼆次運⽤→構築第⼋セクションに異動) 前職︓基盤システムの運⽤監視オペレーター・DCハウジング業務を担当。 • 最近、猫を飼いました。
アジェンダ 3 0. ⾃⼰紹介 1. AWS Step Functions の概要 2.
AWS Step Functions を活⽤に⾄った経緯 3. AWS Step Functions を利⽤した Auto Scaling の実例 4. まとめ
本⽇のゴール 4 n AWS Step Functions の概要についてご理解いただく。 n AWS Step
Fucntions の作成・設定についてご理解いただく。
1. AWS Step Functions の概要 5
1.AWS Step Functions の概要 6 n AWS Step Functionsとは AWS
Lambda 等のサービスと統合してビジネスクリティカルなアプリケーションを構築で きるサーバーレスオーケストレーションサービスです。AWS Step Functions のグラフィカ ルコンソールでは、アプリケーションのワークフローを⼀連のイベント駆動型ステップとし て確認できます。
1.AWS Step Functions の概要 7 AWSの各サービスや、AWS CLI アクションをワークフロー形式で可視化して実装することが できるため、GUIベースでサービスやアクションの処理を実装できるのが魅⼒的。 コード表⽰も可能
1.AWS Step Functions の概要 8 AWS Step Functions は ステートマシン
という単位で構成。 AWSサービスや各アクションを ステート と呼ばれるステップをフローで実⾏することで ⼀連の処理を実⾏できる。 ステートマシン ステート
1.AWS Step Functions の概要 9 ステートには様々な種類があり、それぞれのステートを組み合わせて処理を実現可能。 ・Task︓何らかの処理を実⾏ ・Wait︓処理待機 ・Succeed︓処理の成功判定 ・Fail︓処理の失敗判定
・Choice︓条件の分岐 ・Parallel︓並列で処理 ・Map︓Mapステート内で⼀連の ワークフロー処理を実⾏
1.AWS Step Functions の概要 10 ・ワークフローの作成 Workflow Studioによる、GUIベースでの作成が可能。
2. AWS Step Functionsを活⽤に⾄った経緯 11
2. AWS Step Functionsを活⽤に⾄った経緯 12 そもそもなんでAWS Step Functions を使うの︖ 普通にAuto
Scaling の設定すればよくない︖
13 ▪実装要件 お客様環境のオンプレミスサーバーとAWS環境のEC2を利⽤して、 ハイブリッドに負荷分散を⾏いたい要望があった。 通常時はオンプレミスサーバーをターゲットにする ため、Auto Scaling 配下のターゲットグループに IPアドレスでターゲット指定する必要がある。 2.
AWS Step Functionsを活⽤に⾄った経緯
14 ▪ここで問題が・・・ Auto Scaling の仕様で、Auto Scaling Group に属するALB配下のターゲットグループにはイ ンスタンスのターゲットタイプを指定する必要があり、IPアドレスをターゲット指定すること ができない。
さてどうしよう・・・ 2. AWS Step Functionsを活⽤に⾄った経緯
15 AWS Step Functionsを利⽤すれば、Auto Scalingで作成されたインスタンスからIPアドレス を抽出して指定することができるらしい。 2. AWS Step Functionsを活⽤に⾄った経緯
16 早速やってみましょう 2. AWS Step Functionsを活⽤に⾄った経緯
3. AWS Step Functions を利⽤した Auto Scaling の実例 17
18 ▪スケールアウト処理フロー 3. AWS Step Functions を利⽤した Auto Scaling の実例
19 ▪Step Functions ワークフロー ・Task︓DescribeInstances インスタンス情報を取得(IPアドレス抽出) ・Task︓RegisterTargets ターゲットグループへ登録 3. AWS
Step Functions を利⽤した Auto Scaling の実例
20 オートスケール処理の Step Functions、ステートマシン呼び出しの EventBridge を作成する。 スケールイン保護 無効化 ライフサイクルフック ライフサイクル移⾏:インスタンス終了
ハートビートタイムアウト:500秒 デフォルトの結果:CONTINUE ※Auto Scaling構成(ALB、ターゲットグループ、Auto Scaling Group 等)、IAM周り EventBridge の詳細⼿順については今回は割愛。 3. AWS Step Functions を利⽤した Auto Scaling の実例 ・Auto Scaling Groupの設定
21 ※補⾜︓ライフサイクルフック Auto Scalingの機能で、EC2のInService移⾏前、Terminated移⾏前に設定することで特定の処 理が完全に終了してからステータスを遷移させることが可能。 3. AWS Step Functions を利⽤した
Auto Scaling の実例
22 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
23 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
24 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
25 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
26 インスタンスID抽出のため、APIパラメータを設定 ▪Step Functions 作成 3. AWS Step Functions を利⽤した
Auto Scaling の実例
27 プライベートIPを抽出し、次のタスクにパラメータを 渡すため、ResultSelector を設定 ▪Step Functions 作成 3. AWS Step
Functions を利⽤した Auto Scaling の実例
28 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
29 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
30 事前作成済みのターゲットグループに前段で抽出した IPアドレスのEC2を指定してターゲット登録 ▪Step Functions 作成 3. AWS Step Functions
を利⽤した Auto Scaling の実例
31 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
32 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
33 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
34 ▪EventBridge 作成(※詳細⼿順は割愛) イベントパターン︓ Auto Scaling 配下のEC2起動成功をトリガーとする ターゲット︓ 先程作成したステートマシンを指定 3.
AWS Step Functions を利⽤した Auto Scaling の実例
35 実際にスケールアウトしてみる 3. AWS Step Functions を利⽤した Auto Scaling の実例
36
37 ▪スケールイン処理フロー 3. AWS Step Functions を利⽤した Auto Scaling の実例
38 ・Task︓DescribeInstances インスタンス情報を取得(IPアドレス抽出) ・Task︓DeregisterTargets ターゲット登録解除 ・Wait 360秒の待機処理 ・Task︓CompleteLifecycleAction ライフサイクルフックの完了処理 ▪Step
Functions ワークフロー 3. AWS Step Functions を利⽤した Auto Scaling の実例
39 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
40 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
41 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
42 インスタンスID抽出のため、APIパラメータを設定 ▪Step Functions 作成 3. AWS Step Functions を利⽤した
Auto Scaling の実例
43 プライベートIP、インスタンスIDを抽出して 次のタスクにパラメータを渡すため、ResultSelectorを設定 ▪Step Functions 作成 3. AWS Step Functions
を利⽤した Auto Scaling の実例
44 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
45 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
46 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
47 プライベートIP、インスタンスIDを抽出して 次のタスクにパラメータを渡すため、ResultPathを設定 ▪Step Functions 作成 3. AWS Step Functions
を利⽤した Auto Scaling の実例
48 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
49 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
50 ターゲットグループの登録解除遅延まで待機処理(360秒)を挟む ▪Step Functions 作成 3. AWS Step Functions を利⽤した
Auto Scaling の実例
51 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
52 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
53 ライフサイクルフック、Auto Scaling Groupを指定 ▪Step Functions 作成 3. AWS Step
Functions を利⽤した Auto Scaling の実例
54 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
55 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
56 ▪Step Functions 作成 3. AWS Step Functions を利⽤した Auto
Scaling の実例
57 ▪EventBridge 作成(※詳細⼿順は割愛) イベントパターン︓ Auto Scaling 配下のEC2終了ライフサイクルアクショ ンをトリガーとする ターゲット︓ 先程作成したステートマシンを指定
3. AWS Step Functions を利⽤した Auto Scaling の実例
3. AWS Step Functions を利⽤した Auto Scaling の実例 58 実際にスケールインしてみる
59
60 4.まとめ ・グラフィカルにワークフローを設定することが可能 ・コードが苦⼿な⽅でも直感的に設定ができる。 ・Lambda 等の他のサービスも組み合わせることで様々な使い⽅ができる。
61 ご清聴ありがとうございました