Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
Amazon EKS によるスマホゲームのバックエンド運用事例
gree_tech
Redisの特徴と活用方法について
Yuji Otani
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
ロードバランスへの長い道
Jun Kato
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
VirtualTech Japan Inc.
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
1
of
59
Top clipped slide
AWSスポットインスタンスの真髄
Jun. 18, 2015
•
0 likes
144 likes
×
Be the first to like this
Show More
•
87,167 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Gedow style how to use aws spot instance.
外道 父
Follow
シニアエンジニア at ドリコム
Advertisement
Advertisement
Advertisement
Recommended
これからはじめるインフラエンジニア
外道 父
103.2K views
•
61 slides
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
23.5K views
•
49 slides
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
144.5K views
•
34 slides
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
15.8K views
•
37 slides
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
95.3K views
•
107 slides
シリコンバレーの「何が」凄いのか
Atsushi Nakada
182.8K views
•
77 slides
More Related Content
Slideshows for you
(20)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
•
102.3K views
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
•
1.5K views
Amazon EKS によるスマホゲームのバックエンド運用事例
gree_tech
•
7.1K views
Redisの特徴と活用方法について
Yuji Otani
•
98.7K views
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
•
1.4K views
ロードバランスへの長い道
Jun Kato
•
13.3K views
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
VirtualTech Japan Inc.
•
1.4K views
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
•
2.1K views
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
•
3.5K views
マイクロにしすぎた結果がこれだよ!
mosa siru
•
131.4K views
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
•
138.9K views
Prometheus入門から運用まで徹底解説
貴仁 大和屋
•
31.8K views
Edge Computing と k8s でなんか話すよ
VirtualTech Japan Inc.
•
3.7K views
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
•
22.9K views
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
•
39.8K views
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
•
14.8K views
本当は恐ろしい分散システムの話
Kumazaki Hiroki
•
672.4K views
DNS移転失敗体験談
oheso tori
•
49.4K views
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
•
138K views
root権限無しでKubernetesを動かす
Akihiro Suda
•
7.7K views
Viewers also liked
(20)
AWS Black Belt Techシリーズ リザーブドインスタンス & スポットインスタンス
Amazon Web Services Japan
•
54.9K views
Fluentd Meetup #2 @外道父 Fluentdを優しく見守る監視事例
外道 父
•
16.4K views
AWS Black Belt Online Seminar Amazon EC2
Amazon Web Services Japan
•
20.1K views
AnsibleによるHWプロビジョニング -OneViewの連携-
Takahiro Kida
•
2.3K views
Ansible 入門 #01 (初心者向け)
Taro Hirose
•
6.2K views
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Shingo Kitayama
•
10.1K views
運用のためのPlaybook (Playbook for Operation)
Shingo Kitayama
•
4.2K views
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネット株式会社
•
3.7K views
はじめての UWP アプリ開発
hiyohiyo
•
9K views
リブセンスのインフラで使ってるAnsibleのお話
Shohei Koyama
•
2.4K views
OpenStackでつくる開発環境と外道塾
外道 父
•
9.5K views
Ansible はじめてみました
Takeshi Kuramochi
•
2.7K views
ほんとうはこわいAnsible
Takahiro Nakayama
•
2.2K views
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
Shuntaro Saiba
•
15.3K views
Ansible Playbookの短時間デバッグ方法
Kishin Yagami
•
6K views
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
Insight Technology, Inc.
•
19.6K views
Ansibleで味わうHelion OpenStack
Masataka Tsukamoto
•
1.9K views
What is an Ansible?
Shunsaku Kudo
•
1.8K views
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
hiyohiyo
•
7.4K views
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
hiyohiyo
•
4.4K views
Advertisement
Similar to AWSスポットインスタンスの真髄
(20)
Automation with SoftLayer and Zabbix
softlayerjp
•
1.5K views
Recap: [Code fresh] Deploying to kubernetes thousands of times per day @kuber...
Masaya Aoyama
•
201 views
クラウドのなかみ
Satoshi Hirata
•
1.2K views
おすすめインフラ! for スタートアップ
Koichiro Sumi
•
1.6K views
2012年03月 経済産業省セミナー「クラウドは敵か?味方か?」
Serverworks Co.,Ltd.
•
7.3K views
ニフティクラウドを使った安定運用のススメ
NIFTY Cloud
•
2.3K views
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
Daiki Kawanuma
•
11.3K views
NHNグループ合同勉強会 ライブドア片野
livedoor
•
2K views
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
シスコシステムズ合同会社
•
2.2K views
ドリコムのインフラCI
Go Sueyoshi (a.k.a sue445)
•
3.2K views
サーバー初心者のためのWordPressサイト構築手順
IDC Frontier
•
6.7K views
Webアプリケーションは難しい
Takafumi ONAKA
•
136K views
Stac2014 石川
Tatsuya Ishikawa
•
33.8K views
A1-6 ドメイン乗っ取られた!!
JPAAWG (Japan Anti-Abuse Working Group)
•
1.2K views
JAWS-UG クラウド専業SIer(CIer)になってみた結果
Serverworks Co.,Ltd.
•
25.2K views
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
whywaita
•
503 views
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Toru Yamaguchi
•
3.8K views
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
•
392 views
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
Yasuaki Matsuda
•
1.3K views
ゆるかわPhp
Ryota Mochizuki
•
1.1K views
Recently uploaded
(20)
【DL輪読会】Poisoning Language Models During Instruction Tuning Instruction Tuning...
Deep Learning JP
•
132 views
20230601_Visual_IoTLT_vol14_kitazaki_v1.pdf
Ayachika Kitazaki
•
72 views
《杨百翰大学毕业证|学位证书校内仿真版本》
d520dasw12
•
2 views
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
•
166 views
20230602_enebular_meetup_kitazaki_v1.pdf
Ayachika Kitazaki
•
39 views
Transformerについて解説!!
Yosuke Horio
•
0 views
Kubernetes超入門
Takashi Suzuki
•
5 views
社内ソフトスキルを考える
infinite_loop
•
90 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
8 views
GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps
Kazumi IWANAGA
•
6 views
GitHub最新情報キャッチアップ 2023年6月
Kazumi IWANAGA
•
0 views
OIDC(OpenID Connect)について解説③
iPride Co., Ltd.
•
25 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
254 views
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
478 views
開発環境向けEKSのコスト最適
ducphan87
•
0 views
通信プロトコルについて
iPride Co., Ltd.
•
7 views
HTTPの仕組みについて
iPride Co., Ltd.
•
11 views
量子論.pdf
hiro150493
•
9 views
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
Deep Learning JP
•
74 views
JSTQB_テストマネジメントとレビュープロセス.pdf
akipii Oga
•
231 views
Advertisement
AWSスポットインスタンスの真髄
Copyright gedow.net All
Rights Reserved. 財布の紐を限界まで締める! AWSスポットインスタンスの真髄 外道父@GedowFather 2015/06/17 #2 市ヶ谷Geek★Night
Copyright gedow.net All
Rights Reserved. 2 自己紹介 ■私は 外道父@GedowFather ■所属 ドリコム ■職種 インフラエンジニア ■ブログ 外道父の匠
Copyright gedow.net All
Rights Reserved. 3 ま だ オ ン デ マ ン ド で お 布 施 し て る の ? そ ら ウ ハ ウ ハ で 売 上 高 を 公 開 し ち ゃ い ま す わ
Copyright gedow.net All
Rights Reserved. 4 目次 1. 基本と目的 2. 深イイ話 3. アーキテクチャ 4. その他の工夫
Copyright gedow.net All
Rights Reserved. 基本と目的
Copyright gedow.net All
Rights Reserved. 6 スポットインスタンスを三行で 1. 費用が超安い! 2. 起動が少し遅い! 3. 強制削除されるリスク!
Copyright gedow.net All
Rights Reserved. 7 安い理由は入札式 余っているリソースを使ってもらうため 需要と供給により価格が変動する 入札価格が変動価格を上回れば起動を継続 でき、下回れば強制削除される 入札価格 変動価格 起動できない 起動できる 強制削除 起動できる $0.1 $0.2 $0.01 $0.05 $1.0
Copyright gedow.net All
Rights Reserved. 8 費用の比較 オンデマンド 100% リザーブドインスタンス 55~75% スポットインスタンス 最小 14% 最大 1000% リザーブドは事業規模の変化度合いに合わ ないし、1年経てばc3=>c4のような上位 互換が期待できるのでメインにはしない スポットのワクワク感
Copyright gedow.net All
Rights Reserved. 9 価格変動の度合い 予測は不可能 xlarge以下は比較的 落ち着いている それ以上は無慈悲な急騰が常 c3.4xlarge の平和な24時間 $0.15 ~ $0.25 c3.4xlarge のよくある一週間 最大 $5.0
Copyright gedow.net All
Rights Reserved. 10 高スペックの価格変動 c3.8xlarge は1ヶ月間に数十回も高騰 オンデマンドの 2~5倍 おまえらは誰と闘っているんだ状態 このオンデマンドは $1.68
Copyright gedow.net All
Rights Reserved. 11 起動時間が少し遅い オンデマンドはポチッてから 約3~4分 で起動が完了する スポットはまず入札処理が入り、入札が 成功してから起動に入るため 約7~8分 を必要とする
Copyright gedow.net All
Rights Reserved. 12 強制削除 入札価格 ≧ 変動価格 = セーフ 入札価格 < 変動価格 = アウト 一度でもアウトの条件を満たすと、 1~2分で強制的にTerminateされる 1分経過 スポット 入札価格 AWS神
Copyright gedow.net All
Rights Reserved. 13 基礎知識から導き出される結論 リスクを排除して スポットだけで 運用したら激安じゃない
Copyright gedow.net All
Rights Reserved. 深イイ話
Copyright gedow.net All
Rights Reserved. 15 リソースは全く同じ オンデマンドのインスタンスも、スポッ トインスタンスも、元となるサーバーの リソースは全く同じ スポットだからCPUやストレージの品質 が劣っているということは一切ない オンデマンド オンデマンド スポット ホストサーバー
Copyright gedow.net All
Rights Reserved. 価格ルール
Copyright gedow.net All
Rights Reserved. 17 変動/入札価格の最大値 変動価格はオンデマンド価格の10倍 まで跳ね上がる 入札価格も10倍までとなる オンデマンドが $0.294 なので 最大で $2.94 まで跳ね上がる
Copyright gedow.net All
Rights Reserved. 18 2015年4月中旬までの価格ルール 最大入札価格はオンデマンドの4倍まで それ以上は申請して上限を引き上げる形式 価格の継続的な異常高騰を和らげるために 改定された 企業(A) 企業(B) スポットの存在意義にそぐわない利用状況にメスが入った 変更が入った瞬間、 オンデマ10倍以上の LaunchConfiguration では起動できなくなる というトラブルが発生 (外道式青天井界王拳20倍施策より)
Copyright gedow.net All
Rights Reserved. 19 強制Terminateを避けるテクニック 最大変動価格 = 最大入札価格 = オンデマの10倍 すなわち オンデマンドの 10倍で入札したら 落とされない!! 基本的にTerminate
Copyright gedow.net All
Rights Reserved. 安全な停止
Copyright gedow.net All
Rights Reserved. 21 入札価格超過以外の落とし穴 需要と供給の関係で成り立っているので、 需要が急増した場合は入札や変動価格の高 低に関わらず強制Terminateが走る可能性 がある 変動価格MAXでよく起こる 発動時に削除されるかは運
Copyright gedow.net All
Rights Reserved. 22 強制Terminateをインスタンス自身が知る ローカルのメタデータで、神様による無慈悲 なTerminate発動予定時間を取得できる http://169.254.169.254/latest/meta-data/spot/termination-time 普段は 404 Not Found を返す 価格超過やリソース不足によるTerminate確定か ら数秒後に200 OKと停止時刻を返すようになる 5秒間隔でのチェックを推奨されている 検知したら、新規リクエストの受け付けを停止す るなど、必要な処理を済ませる AWS
Copyright gedow.net All
Rights Reserved. 23 通常のインスタンス破棄前に任意の処理を行う AutoScaleにおける起動完了前や削除実行 前に、任意秒を待機し、任意の処理を行う ための LifecycleHook という機能がある 削除前に待機することで、安心安全に落と すための処理を入れることができる ココで止まってもらい ココで必要な処理を行い 自身でシステムに通知するか、 任意秒が過ぎたら、 次のプロセス(削除処理)へ移る
Copyright gedow.net All
Rights Reserved. 制限値
Copyright gedow.net All
Rights Reserved. 25 入札数の制限 アカウントごとの設定に、EC2インスタン ス数の上限数が 20 といった制限値がある 入札数にも制限があり、デフォルトで 20 となっている 各種設定と同様、申請で引き上げ可能 入札数のカウントはインスタンスを削除し たらすぐ減るわけではないので、短時間で 起動と削除を繰り返すと入札できなくなる
Copyright gedow.net All
Rights Reserved. アーキテクチャ
Copyright gedow.net All
Rights Reserved. 27 メインをスポットにする覚悟を決める 入札価格をオンデマンドの10倍にす ることで強制Terminateを避ける スポットの仕様変更や機能追加に追随 し続ける 『 コ ス ト を 抑 え る 』 『 安 全 に 運 用 し 続 け る 』 「 イ ン フ ラ エ ン ジ ニ ア 」の
Copyright gedow.net All
Rights Reserved. 28 制限値を上げる申請をする デフォルト値 申請値(例) EC2インスタンス数 20 400 入札数 20 400 AutoScalingGroup数 20 100 AutoScalingGroupは構築時に気づけるが、イ ンスタンス関連は運用に入ってから引っかかる可 能性があるので注意する 申請は1営業日もあれば通るので焦らなくてOK 多すぎず少なすぎず、気持ち多目に
Copyright gedow.net All
Rights Reserved. AutoScalingGroup
Copyright gedow.net All
Rights Reserved. 30 AutoScalingGroupを作成する Availability Zone [1a] Spot c3 1~100台 Spot c4 1~100台 Ondemand c3 1台 Ondemand c4 1台 監視用 Ondemand c3 1台 Availability Zone [1c] Spot c3 1~100台 Spot c4 1~100台 Ondemand c3 1台 Ondemand c4 1台 監視用 Ondemand c4 1台
Copyright gedow.net All
Rights Reserved. 31 AutoScalingGroupを細かく分ける理由 Availability Zone [1a] Spot c3 1~100台 Spot c4 1~100台 Ondemand c3 1台 Ondemand c4 1台 監視用 Ondemand c3 1台 Availability Zone [1c] Spot c3 1~100台 Spot c4 1~100台 Ondemand c3 1台 Ondemand c4 1台 監視用 Ondemand c4 1台 変動価格がインスタンスタイプ/AZ単位のため 複数のインスタンスタイプを併用し、高騰による 強制Terminateのリスクを減らすため 監視用グラフを永存したり、アプリログのサンプ リングを送信するため 10 グループ!
Copyright gedow.net All
Rights Reserved. 32 オンデマンドも併用する理由 スポットが不調な時に予備のスケールアウト となる 急激なスケールアウトが必要になった時、ス ポットより素早く起動できる 監視用インスタンスはホスト名やIPアドレス を固定で据え置きたい
Copyright gedow.net All
Rights Reserved. 33 スポットメインのスケール条件 スポット オンデマンド 監視用 min 1 1 1 max 100 100 1 CPU条件 増減率 CPU条件 増減率 increase(1) 40% 20%↑ 70% 20%↑ なしincrease(2) 80% 80%↑ 90% 80%↑ decrease 20% 20%↓ 40% 20%↓ 平時はスポットだけが増設され、有事はオンデマンドも増設 落ち着けばオンデマンドから削減される (スポット1~100✕4グループ)+(オンデマンド1✕6 グ ループ) が平時の台数となる
Copyright gedow.net All
Rights Reserved. 34 高騰したスポットは破棄する type AZ min max desired スポット c3 1a 1 100 25 1c 1 100 28 c4 1a 1 100 22 1c 1 100 25 オンデマ c3 1a 1 100 1 1c 1 100 1 c4 1a 1 100 1 1c 1 100 1 監視用 c3 1a 1 1 1 c4 1c 1 1 1 min max desired 1 100 25 0 0 0 1 100 22 1 100 25 1 100 1 1 100 1 1 100 1 1 100 1 1 1 1 1 1 1 高騰 グループ単位で価格を監視し、高騰と判断したらインスタン スを破棄してグループの稼働を停止する 残る3グループの負荷は上がるが平常運転の範囲内 価格が落ち着いたら、またスケールアウトを開始する
Copyright gedow.net All
Rights Reserved. 35 高騰と平常の判断条件 直近1時間平均を比較値とする 1時間に数十ある履歴の、価 格と割当時間から計算する わずか数分の突発高騰でのイ ンスタンス破棄を防ぐため 16時に比較する値は $3.0 ではなく $0.5 程度になる 1時間平均の変動価格 = 比較値 高騰 if 比較値 ≧ オンデマンド価格✕1.2 平常 if 比較値 < オンデマンド価格✕0.8 ※条件を離すことで自動処理の連続発動を回避
Copyright gedow.net All
Rights Reserved. 36 高騰リスクの低減 c3だけだと1a&1cが同時に高騰する可能性が高く、最悪 リソースがゼロになるため、c4を併用することで最悪でも リソース半減に抑えられる さらに m3/m4/r3 を併用という選択もありうる Spot c3 100% Spot c4 100% 1a Spot c3 100% Spot c4 100% 1c Spot c3 133% Spot c4 1a Spot c3 133% Spot c4 133% 1c 価格高騰により 1グループ死亡しても 残るグループの負荷は 4/3倍になるだけ
Copyright gedow.net All
Rights Reserved. 通常停止対策
Copyright gedow.net All
Rights Reserved. 38 LifecycleHookで安全にシャットダウン ココで3600秒止まってもらい インスタンス自身がLifecycleHookに 入ったと認識したら必要な処理を行い Complete通知を送って終了する。 完了までの時間はサービスの性質次第 スケールインや高騰時のグループインスタンス破棄において、 安全かつ必要な処理を済ませる ELBから外す、ユーザー切断を待つ、タグを付ける、監視 サーバーから自ホストのデータを削除する 処理が完了したらAWSに通知を送ってTerminate
Copyright gedow.net All
Rights Reserved. 39 LifecycleHookの通知と問題点 LifecycleHookの通知はインスタンスが直接受けるのではな く、SNS/SQSを通して受け取る メッセージ内にCompleteを送るためのトークンがある SNSだと余剰サーバーが必要になるので却下 SQSだとインスタンス自身で取りにいけるが、キューは任 意のメッセージを受け取ることができない SNS 管理 サーバー 削除対象 サーバー SNSの場合 PUSH? PULL? SQS 削除対象 サーバー SQSの場合 こんなことで複雑な仕組みにしたくない キューから自身宛のメッセージを取得しづらい 何度も取得処理をして時間がかかる可能性がある
Copyright gedow.net All
Rights Reserved. 40 LifecycleHookの通知を取得する仕組み 10秒毎に全インスタンスでキューをチェック あれば必ず1通は取得できるので、インスタンスIDとトーク ンを抜き出し、該当のインスタンスにタグを登録 さらにインスタンス自身のタグをチェックし、該当タグがあ れば削除前処理を行い、Complete通知をして完了する SQS 削除対象 サーバー (B) サーバー (C) サーバー (A) Send Message Get & Delete Message Create Tags LifecycleTransition LifecycleActionToken
Copyright gedow.net All
Rights Reserved. 41 Linuxのinitシステム管理では挙動が不確か 正常なシャットダウン処理の場合、initスクリプト に sleep を仕込むことでTerminateを遅らせるこ とができそうだが無理 Terminateによるshutdown実行後は、sleepで耐 えていても数分後にインスタンスを強制削除される LifecycleHookが確実な手段だし、便利なのでオス スメ だがトークンの受け取りが厳しい。メタデータに埋 め込んでくれ
Copyright gedow.net All
Rights Reserved. 強制停止対策
Copyright gedow.net All
Rights Reserved. 43 強制Terminateに備える http://169.254.169.254/latest/meta-data/spot/termination-time 入札価格超過によるTerminateはないが、需要/供 給のリソース不足で落とされるので仕込む Bashデーモン 5秒間隔で監視し、検知したらLifecycleHookと 同じ削除前処理を実行する
Copyright gedow.net All
Rights Reserved. 44 唯一の弱点 1回1回の処理時間が短いHTTPは問題ない 1つの処理に数分数十分以上の持続接続が必要な場 合は、クライアントやジョブの処理終了に間に合わ ず落とされてしまう WebSocket / MQTT や 集計処理 など 切断時にクライアント再接続やジョブ再実行する仕組み Terminateを検知した時点でそれを促す仕組み Terminate検知 Terminate実行1~2分間 HTTP 長時間の持続接続サービス この間に処理を安全に終えられるか が分かれ目となる 過ぎるとユーザーに 不利益が生じるため 工夫が必要になる クライアントが強制切断される
Copyright gedow.net All
Rights Reserved. 費用効果
Copyright gedow.net All
Rights Reserved. 46 オンデマンドのみと併用の比較 オンデマンドのコストを 100 とする 好調スポットのコストを 15 とする 最小台数と大規模台数でそれぞれ、同台 数におけるオンデマンドのみのコストと、 スポット構成のコストを比較する
Copyright gedow.net All
Rights Reserved. 47 最小台数の場合 Availability Zone [1a] Spot c3 1台 Spot c4 1台 Ondemand c3 1台 Ondemand c4 1台 監視用 Ondemand c3 1台 Availability Zone [1c] Spot c3 1台 Spot c4 1台 Ondemand c3 1台 Ondemand c4 1台 監視用 Ondemand c4 1台 Spotコスト = 1台✕4グループ✕15 = 60 Ondemandコスト = 1台✕6グループ✕100 = 600 Spot + Ondemand = 660 Ondemandのみ = 1000>34%削減
Copyright gedow.net All
Rights Reserved. 48 大規模台数の場合 Availability Zone [1a] Spot c3 30台 Spot c4 30台 Ondemand c3 1台 Ondemand c4 1台 監視用 Ondemand c3 1台 Availability Zone [1c] Spot c3 30台 Spot c4 30台 Ondemand c3 1台 Ondemand c4 1台 監視用 Ondemand c4 1台 Spotコスト = 30台✕4グループ✕15 = 1800 Ondemandコスト = 1台✕6グループ✕100 = 600 Spot + Ondemand = 2400 Ondemandのみ = 12600>81%削減
Copyright gedow.net All
Rights Reserved. 49 1時間平均の価格変動グラフ(1ヶ月間) Ondemand価格 Ondemand価格 c3.xlarge c4.xlarge ほぼオンデマンドの 20~25%をキープ 一時荒れるも避難し、 大半を最低価格の 14%でキープ
Copyright gedow.net All
Rights Reserved. 50 インスタンスタイプの選択 希望は 2xlarge あたりだった 最初に採用したのは c3/c4.xlarge c4がご乱心 & m3が安定したので c3/m3.xlarge に避難 m2 は安定しているがHVM非対応 新しい m4 は多分、数カ月後に荒波 CC2/CR1 もわりとブルーオーシャン 高スペック+Dockerという手も……
Copyright gedow.net All
Rights Reserved. 51 オンデマンドいる? いざ運用してみると、思いの外スポットのス ケールアウトだけで稼働できてしまう オンデマンドがいらない気になるけど、そこ までスポットは信用するべきものでもない 最終防衛ライン 1セットにつき6つのオンデマンドが確定な ので、リザーブドインスタンスを適用すると さらに削減できる
Copyright gedow.net All
Rights Reserved. その他の工夫
Copyright gedow.net All
Rights Reserved. 53 AutoScalingGroup管理の簡略化 LaunchConfigurationが多い production / staging spot / ondemand c3 / c4 AutoScalingGroupが多い 同上 1a / 1c 監視用 CloudWatchが多い Increase (peace / pinch) Decrease 監視用は除く >合計8件 >合計20件 >合計48件 自動化した 作成・削除・更新など全て
Copyright gedow.net All
Rights Reserved. 54 独自TimeBasedスケールアウト 12時 23時 サービスの性質上、12時と23時がピークタイムであり、 12~23時の間はイベントやメンテナンスによる急激な 増減がある。特にメンテ明けの台数は危険 11:30 にMinSizeを、その時点のInService✕N倍の台 数に強制増設する(1.5~3倍) 23:30 にMinSizeを元に戻す 日中の台数節約放棄の代わりに運用し易さと安定を得る 強制Increase 自然な増減に 切り替え 最低台数を キープ
Copyright gedow.net All
Rights Reserved. 55 AZ間のレイテンシ差に対応する(1) AZ [1a] EC2 AZ [1c] EC2 RDS 速い 少し遅い RDSやElastiCacheが同じAZにあるとレイ テンシが低い 違うAZからだと遅くはないが、同AZより はレイテンシが高い AZ [1a] Spot c3 10台 Spot c4 9台 AZ [1c] Spot c3 3台 Spot c4 2台 レイテンシが低いほど多くCPU 処理をできるためスケールアウ トされやすい CPU性能が低いほどスケールア ウトされやすい AZとインスタンスタイプで台 数に偏りが出ると、リスクも偏 ることになる
Copyright gedow.net All
Rights Reserved. 56 AZ間のレイテンシ差に対応する(2) AZ [1a] Spot c3 6台 Spot c4 6台 AZ [1c] Spot c3 3台 Spot c4 2台 Max 6 Max 6 Max 100 Max 100 グループごとの台数を監視 最低台数より+4台以上の グループはMax値を抑える Max = Desired 差が狭まったらMaxを戻す この仕掛による挙動とリスク 抑えつけたグループの分、スケールアウトの全体増加率が 減少するため、1グループあたりの増加率で調整する Increase条件がCPU 40%だとすると、抑えつけたグルー プはCPU60%前後にまで上がる AZを分けなくても、実はそもそもこうなっているはず リソースを多目に消費することは台数節約でもある
Copyright gedow.net All
Rights Reserved. 57 スクリプトで AWS CLI を使わない AWS CLIは重い(CPUをメチャ喰う) 手動や数時間に1回の実行ならば問題ない 数十秒単位だとCPU利用率のグラフが常に10%前 後など無駄すぎる消費 重いのは認証処理 シェルのコマンドベースだと毎回この処理が入る 軽量プログラミング言語+SDKで書けば、認証 を確保したままループ処理をできるため軽い 最初はBashで書いたがRubyに書きなおした 手動実行 管理スクリプト 自動実行 ジョブスクリプト 監視アラート/グラフ用 値出力スクリプト
Copyright gedow.net All
Rights Reserved. 58 AWS Japan と同じ社屋に入る アルコタワー アネックス Amazon Japan アルコタワー 19F AWS Japan 17F ドリコム 他の階も Amazonが 徐々に侵食中 相談や新着情報を伝えに天上界から降りてきてくれ、終 わると天上界にお帰りになられる 天上界にお伺いし、USチームと電話会議したり、来日し ているとディープな情報交換できる(完璧な通訳付き)
Copyright gedow.net All
Rights Reserved. 59 俺 の コ ス ト が 高 騰 し ち ま う か ら な ! で も …… で も で も ス ポ ッ ト は 怖 い し や め た ほ う が い い と 思 う よ ! fin
Advertisement