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
420
第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
24
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
27
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
42
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
60
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
58
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
37
第169回 雲勉 AWS WAF 構築 RTA
iret
0
46
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
49
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
62
Other Decks in Technology
See All in Technology
リセラー企業のテクサポ担当が考える、生成 AI 時代のトラブルシュート 2025
kazzpapa3
1
340
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
0
210
このままAIが発展するだけでAGI達成可能な理由
frievea
0
100
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
320
サイバーエージェント流クラウドコスト削減施策「みんなで金塊堀太郎」
kurochan
3
1.8k
LLMアプリの地上戦開発計画と運用実践 / 2025.10.15 GPU UNITE 2025
smiyawaki0820
1
570
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
280
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
2
620
Wasmのエコシステムを使った ツール作成方法
askua
0
170
BI ツールはもういらない?Amazon RedShift & MCP Server で試みる新しいデータ分析アプローチ
cdataj
0
160
Railsの話をしよう
yahonda
0
140
ComposeではないコードをCompose化する case ビズリーチ / DroidKaigi 2025 koyasai
visional_engineering_and_design
0
110
Featured
See All Featured
Visualization
eitanlees
149
16k
Building an army of robots
kneath
306
46k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
YesSQL, Process and Tooling at Scale
rocio
173
14k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Unsuck your backbone
ammeep
671
58k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Designing for humans not robots
tammielis
254
26k
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 ご清聴ありがとうございました