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.

頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活用〜

2,710 views

Published on

2016年2月20日に開催したdevelopers.io 2016の発表資料です。

Published in: Technology

頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活用〜

  1. 1. #cmdevio2016 #A Developers.IO 2016 A-1 ソリューションアーキテクト ⼤栗 宗 クラスメソッド株式会社 Ⓒ Classmethod, Inc. 2016年02⽉20⽇ 頑張らないクラウド最適化 〜クラウドネイティブだけでないAWS活⽤〜 1
  2. 2. #cmdevio2016 #A 2Ⓒ Classmethod, Inc.
  3. 3. #cmdevio2016 #A 3 Ⓒ Classmethod, Inc. この時間帯の⽬⽟ 「DynamoDBによる グラフデータベースの構築」 は11Fですよ! 間違えてませんか???
  4. 4. #cmdevio2016 #A お前誰よ? ⼤栗 宗(@maroon1st) AWS導⼊のコンサルティングや 構築を⾏っています。 執筆に携わった書籍が来週でます! I ♥ ウィスキー, シガー, パイプ 好きなAWSサービス: • RDS • CloudWatch 4Ⓒ Classmethod, Inc.
  5. 5. #cmdevio2016 #A Agenda • クラウド最適化 • 『頑張らない』とは? • Web/APサーバの最適化 • ネットワーク構成の最適化 • オンプレ→AWS化→最適化 • まとめ 5Ⓒ Classmethod, Inc.
  6. 6. #cmdevio2016 #A クラウド最適化とは?
  7. 7. #cmdevio2016 #A 7Ⓒ Classmethod, Inc. Developer.IO 2016に 参加されている皆さんは クラウド(特にAWS)を 使ってますよね?
  8. 8. #cmdevio2016 #A 8Ⓒ Classmethod, Inc. ではAWSを 『使いこなして』 いますか?
  9. 9. #cmdevio2016 #A 9Ⓒ Classmethod, Inc. 『使いこなすこと』 つまり 『利⽤の最適化』 は極めて難しい
  10. 10. #cmdevio2016 #A クラウド利⽤の最適化とは? AWSを使いこなしているかをチェックするには「AWS Well- Architected Framework」によると4本の軸があります。 (内容は「AWS Well-Architected Framework」 を参考にしていません) • セキュリティ • 信頼性 • パフォーマンス効率 • コストの最適化 http://d0.awsstatic.com/whitepapers/architecture/AWS_Well-Architected_Framework.pdf 10Ⓒ Classmethod, Inc.
  11. 11. #cmdevio2016 #A セキュリティ • 責任分担モデル(shared) • AWS提供部分はAWSが責任をもち、ユーザ設定部分はユーザ が責任を持つ • 『⾃由度』 = 『責任』 • マネージドサービスは⾃由度が下がる分、責任が減る • 世界最⼤級のECサイトと同程度のセキュリティ対策 • 多数の第三者認証 • AWSに「責任を押し付けて」セキュリティを上げる 11Ⓒ Classmethod, Inc.
  12. 12. #cmdevio2016 #A 信頼性 • オンプレミスの考え⽅ • 代替機の準備が⼤変 • サーバ1台1台の信頼性を⾼める(メインフレームやスト レージアプライアンス) • AWSの考え⽅ • 無限に代替機がある • コモディティサーバで⾼速に切り替える • マネージドサービスは冗⻑化済みor⾼可⽤性な構成を組める 12Ⓒ Classmethod, Inc.
  13. 13. #cmdevio2016 #A パフォーマンス効率 • ⼀般的にはクラウド環境ではスケールアウト • 今後はスケールアップも現実的(X1は2Uのフルスペックレベ ル) • ステートレスかステートフルで拡張戦略を使い分ける • ステートレスサーバ: 状態を持たないためスケールアウトが⼀般的。ソフトウェア のライセンスによってはスケールアップも検討。 • ステートフルサーバ: データの再配置に⼤きな負荷がかかるためスケールアップを 優先して考える(⼤規模データは除く)。 10TBオーダーのデータ量の場合はスケールアウトを考慮。 13Ⓒ Classmethod, Inc.
  14. 14. #cmdevio2016 #A コストの最適化 『コストの最適化』≠『コストが低い』 • 固定費から変動費へ • 使⽤料利⽤状況に合わせたコストを⽀払えば良い • 運⽤にかかる⼈件費の低減 • サーバのランプチェックやディスク交換の⼈件費は不要 • すぐに終了可能 • リース費⽤や最低利⽤期間がない • 柔軟な⽀払いオプション • Reserved InstanceやSpot Instanceを選択可能 14Ⓒ Classmethod, Inc.
  15. 15. #cmdevio2016 #A 『頑張らない』とは?
  16. 16. #cmdevio2016 #A クラウド適⽤の分類 独⾃にクラウドの適⽤レベルを分類してみる (スピーカー独⾃の分類です) 16Ⓒ Classmethod, Inc. クラウド レガシー ニュー レガシー クラウド ネイティブ 低 AWSの活⽤度 ⾼ クラウド ア | キ テ ク チ ャ オンプレミス
  17. 17. #cmdevio2016 #A クラウドレガシー レガシーシステムをクラウド上に展開している状態 (スピーカーの独⾃⽤語/定義です) • AWSの使⽤⽅法を理解できていない。 • 物理サーバをEC2に置き換えただけ。 • システムのアーキテクチャはオンプレミスと変わらない。 17Ⓒ Classmethod, Inc. 初期費⽤ ○? 修正は最⼩限 AWS利⽤料 ☓ EC2ばかりで購⼊ オプション無し 運⽤費⽤ ☓ マネージドな サービス無し
  18. 18. #cmdevio2016 #A ニューレガシー オンプレミスのアーキテクチャの延⻑で発展した状態 (スピーカーの独⾃⽤語/定義です) • オンプレミスのアーキテクチャを踏襲 • 積極的にマネージドサービスを活⽤ • 必要はアプリケーション改修は⾏う 18Ⓒ Classmethod, Inc. 初期費⽤ △ ある程度の 修正コスト AWS利⽤料 △ EC2を使う場合は 購⼊オプションを使⽤ 運⽤費⽤ △ マネージドな 部分は負荷低減
  19. 19. #cmdevio2016 #A クラウドネイティブ クラウドの特性を前提としたアーキテクチャ (スピーカーの独⾃定義です) • マネージドサービスを積極活⽤ • ⾯倒なことをAWSへ押し付ける • サービス利⽤により余計な開発は不要 19Ⓒ Classmethod, Inc. 初期費⽤ ○ / △ / ☓ 内容により ⼤きく変動 AWS利⽤料 ○ EC2は最⼩限 運⽤費⽤ ○ ほとんどマネージド サービス
  20. 20. #cmdevio2016 #A 頑張らないクラウド最適化 • 頑張らない? • クラウドレガシー • ニューレガシー • クラウドネイティブ • インフラはクラウド推進だが、アプリは既存設計 →アプリが「頑張らない」分をインフラが「頑張る」 20Ⓒ Classmethod, Inc.
  21. 21. #cmdevio2016 #A 21Ⓒ Classmethod, Inc. 『頑張らない』クラウド最適化 = インフラ担当が『頑張る』
  22. 22. #cmdevio2016 #A Web/APサーバ最適化の例
  23. 23. #cmdevio2016 #A クラウドレガシーなWeb/APサーバ 典型的なAWSを使いこなしていないWebシステム 23Ⓒ Classmethod, Inc. virtual private cloud LB DB on EC2 C1 アプリA C1 アプリB URLのパスで 割り振る #cmdevio2016 #A
  24. 24. #cmdevio2016 #A クラウドレガシーの懸案事項 • 商⽤ロードバランサの導⼊で⾼コスト • URLのパスによって後続のEC2(アプリ)が異なる • DBはEC2上に構築 • バックアップ、障害回復は⼿動で対応するの? • Web/APサーバが旧世代インスタンス • C1では仮想化タイプがPV。パフォーマンスが悪い。 24Ⓒ Classmethod, Inc.
  25. 25. #cmdevio2016 #A ニューレガシーの例 レガシーシステムをクラウド上に展開している状態 25Ⓒ Classmethod, Inc. virtual private cloud アプリA アプリB CloudFront ELB ELB S3 bucket RDS C3 C3 Auto Scaling group Auto Scaling group CloudWatch Logs アプリデプロイ 済AMI ElastiCache
  26. 26. #cmdevio2016 #A ニューレガシーでの改善案 • CloudFrontをReverse Proxyとして使う • Behaviorの設定でパス毎にアクセス先を変更可能 • 同⼀ドメインでも特定パスをS3に向けることができる。 • DBはRDSでマネージドに • 無停⽌⾃動バックアップ、PITRに対応。 • 最近はTimezoneの変更も可能などアップデートもある。 • Web/APサーバは設定のコード化、ステートレス化 • マシンイメージの切替えが可能で仮想化タイプを変更できる。 • ステートレスのためAutoScaleでの台数の増減が可能。 26Ⓒ Classmethod, Inc.
  27. 27. #cmdevio2016 #A ネットワーク構成最適化の例
  28. 28. #cmdevio2016 #A クラウドレガシーなネットワーク構成 典型的なAWSを使いこなしていないWebシステム 28Ⓒ Classmethod, Inc. virtual private cloud NAT ELB Public Private S3 Bucket IPアドレス ElastiCache RDS AP2 AP1 CloudWatch
  29. 29. #cmdevio2016 #A クラウドレガシーの懸案事項 • 外部への通信が全てNATインスタンスを経由する • インスタンスタイプにより帯域が制限される。 • 冗⻑化するには⾃分で仕組みを構築する必要がある。 • S3との通信でNATインスタンスが逼迫する • S3への通信は殆どが⼤容量のため、他の通信の帯域を奪う。 • インスタンス間の通信はIPで⾏う • インスタンスの⼊れ替え時にアクセス元全ての設定を変更す る必要がある。 29Ⓒ Classmethod, Inc.
  30. 30. #cmdevio2016 #A ニューレガシーの例 典型的なAWSを使いこなしていないWebシステム 30Ⓒ Classmethod, Inc. virtual private cloud ELB Public Private S3 Bucket hostname Amazon RDS AP2 AP1 CloudWatch endpoints NAT gateway flow logs ElastiCache Private Private DNS
  31. 31. #cmdevio2016 #A ニューレガシーでの改善案 • 外部への通信はNAT Gateway経由する • NAT Gatewayは帯域が広く、冗⻑化されている。 • 通信がない時の待機コストが低い。 • S3との通信はVPC Endpointを使⽤する • 他の通信の帯域を消費しない。 • インスタンス間の通信はホスト名で⾏う • Private DNSの使⽤で、インスタンス⼊れ替え時はRoute 53 のみ変更すれば良い。名前解決のTTLに注意。 31Ⓒ Classmethod, Inc.
  32. 32. #cmdevio2016 #A オンプレ→AWS化→最適化
  33. 33. #cmdevio2016 #A オンプレミスのWebシステムの例 33Ⓒ Classmethod, Inc.
  34. 34. #cmdevio2016 #A オンプレミスの構成内容 • ロードバランサーはハードウェアアプライアンスを 使⽤している • 共⽤するストレージとしてNFSをマウントしている • バックアップはテープドライブにしている • バッチサーバは特定の時間帯のみ処理を⾏う 34Ⓒ Classmethod, Inc.
  35. 35. #cmdevio2016 #A クラウドレガシーの例 35Ⓒ Classmethod, Inc.
  36. 36. #cmdevio2016 #A クラウドレガシーの構成内容 • ⼤きな変更点 • バックアップ先をテープからS3へ変更 • メールサーバを廃⽌して、SESでメールを送信 • ロードバランサをアプライアンスからELBへ変更 • 問題点 • AWSのSLAの定義を満たしていない • 障害発⽣時に復旧処理を⾏う必要がある • バッチサーバの利⽤時間が少ない 36Ⓒ Classmethod, Inc.
  37. 37. #cmdevio2016 #A ニューレガシーの例 37Ⓒ Classmethod, Inc.
  38. 38. #cmdevio2016 #A ニューレガシーの構成内容 • Web/APサーバをMulti-AZで配置する • DBサーバはRDS化してMulti-AZ構成とする • Auroraの使⽤で99.99%の可⽤性のDBサーバ • Web/APサーバのAuto Scaling適⽤で、障害発⽣時に ⾃動で復旧する • バッチサーバは必要な時間帯にSpot Blockで起動して コストを抑える 38Ⓒ Classmethod, Inc.
  39. 39. #cmdevio2016 #A まとめ
  40. 40. #cmdevio2016 #A まとめ • 導⼊レベルの分類 • 導⼊するチームメンバーが持っているスキルを考慮し AWSの導⼊レベルを決定 →『頑張らない』クラウド最適化 40Ⓒ Classmethod, Inc. 初期費⽤ AWS利⽤費 運⽤費⽤ 備考 クラウド レガシー ○? ☓ ☓ AWSに最適化できていない ニューレガシー △ △ △ インフラだけでできる最適 化を⾏う クラウド ネイティブ ○ / △ / ☓ ○ ○ インフラとアプリの両⾯で 最適化を⾏う
  41. 41. #cmdevio2016 #A まとめ • AWSの主要サービスについて代表的な利⽤ケースと そのメリットを把握する。AWS CDP等が参考になる。 • 各サービスを低いハードル(アプリ改修が少ない)で 導⼊する⽅法を考える • 導⼊が容易なサービスはメリットがあり、コストに問題 が無ければ積極的に活⽤していく。 41Ⓒ Classmethod, Inc.
  42. 42. #cmdevio2016 #A 宣伝
  43. 43. #cmdevio2016 #A JAWS Days 2016が3⽉12⽇に開催 クラスメソッドはJAWS Days 2016のサポーターです! 43Ⓒ Classmethod, Inc.
  44. 44. #cmdevio2016 #A 宣伝 その2
  45. 45. #cmdevio2016 #A AWSエキスパート養成読本が出ます! 45Ⓒ Classmethod, Inc.
  46. 46. #cmdevio2016 #A 46Ⓒ Classmethod, Inc.
  47. 47. #cmdevio2016 #A 47Ⓒ Classmethod, Inc.
  48. 48. #cmdevio2016 #A 48Ⓒ Classmethod, Inc.
  49. 49. #cmdevio2016 #A 49Ⓒ Classmethod, Inc. 2⽉26⽇発売予定です。 是⾮お買い上げ下さい! 2⽉26⽇発売予定です。 是⾮お買い上げ下さい!
  50. 50. #cmdevio2016 #A 宣伝 その3
  51. 51. #cmdevio2016 #A 51Ⓒ Classmethod, Inc. みなさん AWSエキスパート養成読本 欲しいですよね?
  52. 52. #cmdevio2016 #A 52Ⓒ Classmethod, Inc. 懇親会まで参加すると 抽選でプレゼント!
  53. 53. #cmdevio2016 #A 53Ⓒ Classmethod, Inc. ANY QUESTIONS ?
  54. 54. #cmdevio2016 #A Developers.IO 2016 ご静聴ありがとうございました。 スライドは後⽇ブログで公開します。 54 A-1 Ⓒ Classmethod, Inc.

×