Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Extreme t2nano

2017/10/20 社内勉強会【LT大会 Advanced Generation】20回戦
新坂の発表資料です。

LT映像はこちら↓
https://www.youtube.com/watch?v=1vYL1yQd7rY

  • Login to see the comments

  • Be the first to like this

Extreme t2nano

  1. 1. Extreme t2.nano サーバーワークス 新坂
  2. 2. Index  t2インスタンスとは  ターゲットシステム  問題発生  解決策と結果  まとめ Extreme t2.nano2
  3. 3. t2インスタンスとは Extreme t2.nano3
  4. 4. AmazonEC2 t2インスタンスの特徴 インスタンス サイズ t2 m3 m4 c3 c4 p2 g2 g3 x1 x1e r3 r4 i3 d2 nano 602 micro 1,204 small 2,408 medium 4,815 7,603 large 9,631 15,286 10,217 10,138 9,979 15,840 12,672 14,494 xlarge 19,261 30,492 20,434 20,196 19,958 122,126 31,601 25,344 28,987 66,845 2xlarge 38,523 60,984 40,867 40,471 39,917 71,122 63,202 50,688 57,974 133,690 4xlarge 81,734 80,863 79,834 125,136 126,403 101,376 115,949 267,379 8xlarge 161,806 159,667 977,011 284,486 250,272 252,806 202,752 231,898 534,758 10xlarge 204,336 16xlarge 326,938 1,954,022 500,544 765,943 405,504 463,795 32xlarge 1,531,807 3,064,090 最大の特徴は価格設定 多くのインスタンスファミリはサイズがlargeからの設定 t2ファミリは小さいサイズからラインナップ 2017年10月時点、東京リージョンLinux、720時間使用、為替レート110円の場合の利用料金(円) Extreme t2.nano4 ➡低価格で使い始められる
  5. 5. t2インスタンス使用時の注意点 Extreme t2.nano5 安いから使う 仕様を把握して使う Extreme 単価が安いから、というだけで使い始める ➡思わぬトラブル 仕組みを理解して使いこなす
  6. 6. t2インスタンス仕様概要 ① 初期CPUクレジットから開始 ② 1 CPUクレジット=1vCPUを使用率100%で1分間実行 ③ 使用CPUリソースが少なければCPUクレジットはストックされる ④ CPUリソースが必要になるとバーストする ⑤ CPUクレジットを使い切ると基本パフォーマンスレベルにとどまる Extreme t2.nano6 公式ドキュメント http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/t2-instances.html
  7. 7. もっとざっくりt2インスタンス 状態 動作 CPUクレジット残高がある 普通に動く CPUクレジット残高がない ゆっくり動く Extreme t2.nano7 CPUクレジット = 数値化されたポイント
  8. 8. t2インスタンス仕様イメージ 始動 燃料半分でスタート 初期CPUクレジット 低速走行中 燃料が増える 使用CPUリソースが少ないので CPUクレジットストック 高速走行 燃料を消費します バースト状態 CPUクレジット消費 燃料ナシ 低速走行しかできません CPUクレジット無し 基本パフォーマンスで動作 クルマにたとえると… Extreme t2.nano8
  9. 9. t2インスタンス仕様:パラメータ インスタンスタイプ vCPU 初期 CPUクレジット 1 時間あたりに受け取る CPUクレジット 最大獲得 CPUクレジット 基本パフォーマンス (CPU 使用率) t2.nano 1 30 3 72 5% t2.micro 1 30 6 144 10% t2.small 1 30 12 288 20% t2.medium 2 60 24 576 40% (最大 200%) t2.large 2 60 36 864 60% (最大 200%) t2.xlarge 4 120 54 1296 90% (最大 400%) t2.2xlarge 8 240 81 1944 135% (最大 800%) Extreme t2.nano9 • インスタンスの性能に応じてパラメータが異なる • 初期クレジットはvCPU数×8(全開で30分) • 最大獲得CPUクレジットは1時間あたり受取クレジット×24(クレジットは24時間のみ保持される仕様) • medium以上のマルチvCPUインスタンスは基本パフォーマンスをvCPUで除する • 概ねインスタンス全体の20%のパフォーマンスがベース • nano、microについては特に基本フォーマンスが低い➡クレジットを使い切った後は使い物にならない
  10. 10. t2.nanoのパラメータ パラメータ 意味 初期CPUクレジット=30 新規インスタンスを起動した場合クレジットは30に設定される ➡起動直後であれば、100%の性能で30分間処理できる ※STOP状態のインスタンスをSTARTした際も同様 ※RESTARTの場合はクレジットはそのまま保持 1時間あたりに受け取るクレジット=3 1時間ごとにクレジットが3増える ※同時間帯にCPU使用率100%稼働3分間分発生している場合はプラスマイナスゼロ 最大獲得CPUクレジット=72 クレジット保持期限は24時間 1時間あたり3クレジット×24時間=72CPUクレジット ※インスタンスになにも動作させずに放置してもクレジットが100万とかにはならない 基本パフォーマンス=5% 基準CPU使用率=5% クレジットを使い切るとパフォーマンスレベルは5%に制限される ※ベースを5%と定義してそれ以上の負荷状態をバーストと表現 Extreme t2.nano10
  11. 11. CPUクレジット実際の動き 結構動く (2週間のグラフ) Extreme t2.nano11
  12. 12. ターゲットシステム Extreme t2.nano12
  13. 13. ターゲットシステム 概要 • 自分用のWikiサイト 目的 • 仕事や趣味でTipsをメモする、ちょっとした何かを試す • 気が向いたら使いたいので、常にアクセスできるのが良い 歴史 • 当初は自宅の古いPCにLAMP構成でPukiWiki、途中でMediaWikiへ移行 • さらにEC2へ移行 可用性 • 別に止まってたって誰も困らない コスト • 一番安いのでお願いします Extreme t2.nano13
  14. 14. 問題発生 Extreme t2.nano15
  15. 15. 困っていること たまに止まる(応答がない) • スペックが低い1インスタンスでWeb+DB • 10,000 PV/月 意外と負荷がかかる? ➡ CPUクレジットを使い切ってしまっている? Extreme t2.nano16
  16. 16. 止まっているときのグラフ(イメージ) クレジットゼロで張り付く Extreme t2.nano17
  17. 17. 対応方法 クレジットがゼロになった場合 サイトは応答せず、いつ回復するのか不明 現実的な対応は、STOP ➡ STARTで初期クレジットを獲得 対処が明確 • クレジットがゼロになったら、 • インスタンスをSTOP ➡ STARTする Extreme t2.nano18 ➡機械がやればいいじゃない
  18. 18. 解決策 Extreme t2.nano20
  19. 19. 自動修復ソリューションの流れ CloudWatchAlarm •CPUクレジット低下を検知 AmazonSNS •通知を中継 Cloud Automator •SNSトリガー、EC2 STOP、後処理SQS Cloud Automator •SQSトリガー、EC2 START、後処理メール通知 管理者は「Webサーバーが止まっていましたが自動修復済みです」 という通知を見るだけ Extreme t2.nano21
  20. 20. 設定の流れ # 使用サービス 設定内容 1 Cloud Automator EC2起動ジョブを“SQSトリガー”で作成 2 Cloud Automator EC2停止ジョブを“SNSトリガー”で作成 後処理SQSで#1を実行するよう設定 3 AmazonSNS サブスクリプションを作成 #2で発行されているトリガーURLをEndpointに指定 4 CloudWatchAlarm EC2のCPU CreditBalanceをしきい値とした条件を作成 #3のSNSへ通知する設定 Extreme t2.nano22
  21. 21. 簡単そうにできましたが・・・ Extreme t2.nano23 書き出してみると、簡単そうに見える?➡➡実は少し敷居が高い • やりたいことと逆に設定していく必要がある • あらかじめ全体的に設計できている必要がある • 各サービスを知らないとそもそも思いつかない • (EC2はまあ知られている) • CloudWatchとCloudWatchAlarm • SNS • Cloud Automator、さらに後処理を使い、ジョブチェーンする方法
  22. 22. 自動修復の結果 Extreme t2.nano24
  23. 23. 自動修復発動時のグラフの動き クレジット低下すると自動修復システム発動 ➡初期クレジット30に回復 Extreme t2.nano25 クレジット<10で検知する設定
  24. 24. まとめ Extreme t2.nano26
  25. 25. まとめ クセが強いt2インスタンス、ポイントおさえて賢く利用 Cloud Automatorを活用し、t2.nanoの価値を絞り出す がんばれCloud Automator Extreme t2.nano27

×