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
270
第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
第150回 雲勉 AWS AppSyncではじめるGraphQL体験
iret
0
33
第151回 雲勉 プロジェクトのドキュメントにおける課題をAmazon Bedrockで解決してみる
iret
0
41
第152回 雲勉 シームレスなマルチリージョンへの移行と検討 ~Amazon EKSとAWS Global Acceleratorを使用した環境〜
iret
0
29
第149回 雲勉 AWS ベストプラクティスの最新と実際 AWS Well-Architected
iret
0
79
第148回 雲勉 Web アプリケーションセキュリティ
iret
0
39
第147回 雲勉 Amazon CloudWatchをウォッチ!
iret
0
56
第146回 雲勉 BLEAを眺めてCDKの書き方について学ぶ
iret
1
66
第145回 雲勉 Amazon ECSでサービス間通信する方法を調べてみよう
iret
0
62
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
iret
0
110
Other Decks in Technology
See All in Technology
GDG Tokyo 生成 AI 論文をわいわい読む会
enakai00
0
250
あなたはJVMの気持ちを理解できるか?
skrb
5
1.8k
あなたの興味は信頼性?それとも生産性? SREとしてのキャリアに悩むみなさまに伝えたい選択肢
jacopen
5
2k
サーバレスの未来〜The Key to Simplifying Everything〜
kawaji_scratch
2
330
AIアプリケーション開発でAzure AI Searchを使いこなすためには
isidaitc
1
250
DMMブックスへのTipKit導入
ttyi2
1
150
Asset Centric な データ変換パイプラインの攻略法
recruitengineers
PRO
1
100
reinvent2024を起点に振り返るサーバーレスアップデート
mihonda
1
170
アクセシブルなマークアップの上に成り立つユーザーファーストなドロップダウンメニューの実装 / 20250127_cloudsign_User1st_FE
bengo4com
1
1.1k
MicrosoftのOSSだけでAIによるブラウザテストを構成する
ymd65536
1
220
第27回クラウド女子会 ~re:Invent 振り返りLT会~ 宣言型ポリシー、使ってみたらこうだった!
itkr2305
0
270
プロダクト価値を引き上げる、「課題の再定義」という習慣
moeka__c
0
160
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
47
7.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Rails Girls Zürich Keynote
gr2m
94
13k
Faster Mobile Websites
deanohume
305
30k
Thoughts on Productivity
jonyablonski
68
4.4k
BBQ
matthewcrist
85
9.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
590
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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 ご清聴ありがとうございました