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
230
第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
第146回 雲勉 BLEAを眺めてCDKの書き方について学ぶ
iret
1
45
第145回 雲勉 Amazon ECSでサービス間通信する方法を調べてみよう
iret
0
39
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
iret
0
84
第143回 雲勉 [New Relic]インフラストラクチャ監視と気をつけたいポイント
iret
0
39
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
iret
0
84
第141回 雲勉 Amazon Inspectorによる脆弱性管理~ECR コンテナイメージ編~
iret
0
200
第2回 雲勉LT大会 パブリッククラウドのサーバレスサービスの違いを調べてみた
iret
0
24
第2回 雲勉LT大会 AWS Control Tower の「コントロール」って何? という謎から AWS Control Tower を知る
iret
0
23
第2回 雲勉LT大会 AWS/Google Cloud/Wasabi ストレージサービスを比較したい
iret
0
44
Other Decks in Technology
See All in Technology
複雑なState管理からの脱却
sansantech
PRO
1
150
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
1k
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
210
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
120
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
1k
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
110
The Role of Developer Relations in AI Product Success.
giftojabu1
0
130
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9.1k
Music & Morning Musume
bryan
46
6.2k
How GitHub (no longer) Works
holman
310
140k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Being A Developer After 40
akosma
86
590k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
It's Worth the Effort
3n
183
27k
A better future with KSS
kneath
238
17k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
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 ご清聴ありがとうございました