Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Awsのインフラをデザインパターン駆使して設計構築

17.896 Aufrufe

Veröffentlicht am

Awsのインフラをデザインパターン駆使して設計・構築できる!?

Veröffentlicht in: Technologie
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/39sFWPG ❶❶❶
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Dating direct: ❶❶❶ http://bit.ly/39sFWPG ❶❶❶
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Awsのインフラをデザインパターン駆使して設計構築

  1. 1. 社内勉強会vol.3 AWSのインフラを デザインパターン駆使して設計・構築できる!? Takayuki Niinuma@Kagoshima
  2. 2. お願い • 参加者は基本的にはミュートにしてください • 画面共有のボタンは押さないでください • 質問があればmentionを入れて通知ください
  3. 3. agenda • 自己紹介 • AWSのCloud Design Pattern紹介 • アプリケーション機能要件に対しての構築パターン • CloudFormationを使ったAWSの各サービスを自動構築 • 参考資料 • まとめ • 質疑応答
  4. 4. agenda • 自己紹介 • AWSのCloud Design Pattern紹介 • アプリケーション機能要件に対しての構築パターン • CloudFormationを使ったAWSの各サービスを自動構築 • 参考資料 • まとめ • 質疑応答
  5. 5. Title: technologist Facebook: takayuki.niinuma Twitter: @twinuma GitHub: https://github.com/Twinuma Blog: http://takachan.hatenablog.jp
  6. 6. “AWS”タグが付いた投稿は、現在19個
  7. 7. 私のクローズドだったtipsダダ漏れ
  8. 8. agenda • 自己紹介 • AWSのCloud Design Pattern紹介 • アプリケーション機能要件に対しての構築パターン • CloudFormationを使ったAWSの各サービスを自動構築 • 参考資料 • まとめ • 質疑応答
  9. 9. \ここで、皆さんに質問/
 AWSのサービスはどれだけ知っていますか?
  10. 10. Amazon EC2 Route 53 Amazon S3 Amazon RDS
  11. 11. \ここで、皆さんに質問/
 AWSのサービスはどれだけ知って いますか? 自己紹介 AWSのCloud Design Pattern紹介 アプリケーション機能要件に対しての構築パターン
  12. 12. \ここで、皆さんに質問/
 AWSのサービスはどれだけ知って いますか? 自己紹介 AWSのCloud Design Pattern紹介 アプリケーション機能要件に対しての構築パターン
  13. 13. クラウドアーキテクティング原則 クラウドの特性を考えると、これまでのシステムアーキテクティングと異なった 視点が必要となる。それをクラウドアーキテクティング原則として整理している。 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  14. 14. クラウドアーキテクティング原則 クラウドの特性を考えると、これまでのシステムアーキテクティングと異なった 視点が必要となる。それをクラウドアーキテクティング原則として整理している。 • できるだけサービスを利用 • 机上実験よりも実証実験 • スモールスタートからスケールアウト • 変化に対して全レイヤで対処 • 故障のための設計(Design For Failure) • 最初だけではなく周期的なカイゼン 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  15. 15. クラウドアーキテクティング原則 クラウドの特性を考えると、これまでのシステムアーキテクティングと異なった 視点が必要となる。それをクラウドアーキテクティング原則として整理している。 • できるだけサービスを利用 • 机上実験よりも実証実験 • スモールスタートからスケールアウト • 変化に対して全レイヤで対処 • 故障のための設計(Design For Failure) • 最初だけではなく周期的なカイゼン 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  16. 16. できるだけサービスを利用 すでにクラウド上に存在しているサービスのメリット/デメリットを正確に理解し、使いこ なすことが重要である。利用者としては、車輪の再開発は極力避けるべきである。 SDKs Java Python PHP .NET Ruby nodeJS iOS Android AWS Toolkit for Visual Studio AWS Toolkit for Eclipse Tools for Windows PowerShell CLI 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  17. 17. 例:S3でWebサイトのホスティング 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  18. 18. 例:S3でWebサイトのホスティング • 99.999999999%の堅牢性と、99.99%の可用性を提供 • 3ヶ所以上の異なるロケーションにデータ保管 • データ転送量、ファイルサイズで課金(基本的にEC2より安価) 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  19. 19. 例:RDSでマネージドリレーショナルデータベース 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  20. 20. 例:RDSでマネージドリレーショナルデータベース • 自動バックアップ、Restore To Point In Time • レプリケーション(Multi-AZ、Read Replica) • パッチ管理(自動マイナーバージョンアップ) 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  21. 21. 机上実験よりも実証実験 クラウドの良さは瞬時に安く調達できることなので、机上の実験に時間をかけず、その場です ぐに試すべきである。そうすることで短時間で精度の高い結果が分かり、よりカイゼンできる。 数日 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  22. 22. 机上実験よりも実証実験 クラウドの良さは瞬時に安く調達できることなので、机上の実験に時間をかけず、その場です ぐに試すべきである。そうすることで短時間で精度の高い結果が分かり、よりカイゼンできる。 数日 数秒 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  23. 23. 例:EC2でキャパシティプランニングの短縮 • 負荷テストでリソース不足がわかった場合、その後のチューニングが大変 • 事前のキャパシティプランニングに時間をかけてしまう オンプレミス 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  24. 24. 例:EC2でキャパシティプランニングの短縮 • 負荷テストでリソース不足がわかった場合、その後のチューニングが大変 • 事前のキャパシティプランニングに時間をかけてしまう オンプレミス • 負荷テストでリソース不足が分かったらすぐに調整(スケールアップ/アウト) • 調整時に仮想サーバを増やし過ぎたら減らせばいい(課金も止まる) クラウド(AWS) 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  25. 25. ただし・・・(注意点) できるだけサービスを利用 • 何でもかんでもサービスを使えばいいというわけではない • ちゃんとできないことも把握して適材適所で利用する 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  26. 26. ただし・・・(注意点) できるだけサービスを利用 • 何でもかんでもサービスを使えばいいというわけではない • ちゃんとできないことも把握して適材適所で利用する Amazon S3 • 独自ドメインがHTTPS通信が利用できない • BASIC認証が利用できない 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  27. 27. ただし・・・(注意点) できるだけサービスを利用 • 何でもかんでもサービスを使えばいいというわけではない • ちゃんとできないことも把握して適材適所で利用する Amazon S3 • 独自ドメインがHTTPS通信が利用できない • BASIC認証が利用できない Amazon RDS • OSにログインできない • 権限の制約などによる利用できない機能がある ローカルディスクへのデータの書き出しなど 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  28. 28. ただし・・・(注意点) 机上実験よりも実証実験 • 必要な仮想サーバの性能と数量を決めるためのキャパシティプランニング は、事前に時間を掛ける必要はないが・・・ • 負荷に対するアーキテクチャを間違えると負荷テストの結果、必要な仮想 サーバの性能と数量が膨大(=高額)になる可能性も・・・ • 終盤のアーキテクチャの変更は危険がいっぱい・・・(スケールアップも 限界はある・・・) 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  29. 29. ただし・・・(注意点) 机上実験よりも実証実験 • 必要な仮想サーバの性能と数量を決めるためのキャパシティプランニング は、事前に時間を掛ける必要はないが・・・ • 負荷に対するアーキテクチャを間違えると負荷テストの結果、必要な仮想 サーバの性能と数量が膨大(=高額)になる可能性も・・・ • 終盤のアーキテクチャの変更は危険がいっぱい・・・(スケールアップも 限界はある・・・) アーキテクチャの設計は机上の実験も含め、 事前に時間をかけたい 引用 - 実践!AWSクラウドデザインパターン(http://www.slideshare.net/suzlab/cdp-28868858) -
  30. 30. AWSクラウドデザインパターン AWSクラウドを使ったシステムアーキテクチャ設計を行う際に発生する、典型的な 問題とそれに対する解決策・設計方法を、わかりやすく分類して、ノウハウとして利 用できるように整理したものである。
  31. 31. AWSクラウドデザインパターン http://aws.clouddesignpattern.org/
  32. 32. AWSクラウドデザインパターン http://aws.clouddesignpattern.org/
  33. 33. AWSクラウドデザインパターン 現在48パターン+カテゴライズ待ち15パターン
  34. 34. 例:Cloud DI Pattern • 解決したい課題 • クラウドでの解決/パターンの説明 • 実装 • 構造 • 利点 • 注意点 • その他 • 関連ブログ
  35. 35. 例:Cloud DI Pattern <解決したい課題> 規模の大きなシステムでは、アクセス数などの増大とともに多数のサーバーを増設する ことになる。 その場合、サーバー構築に必要なインストールや設定を一つひとつ手作業で行うのは非 常に手間となり、期限内で終わらせることも難しくなる。サーバー構築の自動化を行う 方法としてシステム管理ツールを利用する方法もあるが、そこにはコストの問題もある。
  36. 36. 例:Cloud DI Pattern <クラウドでの解決/パターンの説明> 仮想サーバーを起動した際、そのサーバーの目的に合わせてサーバーの内部構成を自動的に構 築したいケースがある。特にScale OutパターンやScheduled Autoscalingパターンを使って運 用を自動化したい場合に求められる。こうしたケースではBootstrapパターンが有効だが、外出 ししておきたい情報(例えばDB接続先IPアドレス、サーバー名、認識番号など)が多くある場 合、このCloud DIパターンを利用することでより柔軟にサーバー初期化を行うことができる。
  37. 37. 例:Cloud DI Pattern <実装> EC2を起動する際、EC2インスタンスに対して、任意のタグをつける機能がある。こ の機能を利用して、EC2起動時にタグ情報を読み込み、それに応じた設定を行う。 • EC2の固有情報をタグとしてセットする。(例えばEIPをタグとして設定する) • EC2の起動時に、タグを取得するアプリケーションが起動するよう設定する。 • アプリケーション内で、タグ情報に従ってEC2の初期化を行う(設定したEIPが自動的に EC2に割り当てられる)。
  38. 38. 例:Cloud DI Pattern <構造>
  39. 39. 例:Cloud DI Pattern <利点> • Stampパターン・Bootstrapパターンを使った汎用的なベースイメージに対して 固有の設定を行える。 • タグ情報でパラメータ設定を行うため、マネジメントコンソールで容易に設定 したり確認したりできる。 • 自動的に設定を行えるため、運用時のミスを低減できる。 • EC2インスタンスの構築だけでなく、AMIやスナップショットの自動取得を行 う仕組みを作る場合にも利用できる。
  40. 40. 例:Cloud DI Pattern <注意点> • タグは、付与できる文字数が決まっている場合がある。その場合は、S3のURLやネッ トワークのファイルパスなど、渡したい情報へのポインタ情報をタグにセットする。
  41. 41. 例:Cloud DI Pattern <その他> • 情報を引き渡すために、タグだけでなくユーザーデータと 呼ばれるメタデータを利用する事もできる。
  42. 42. AWSクラウドデザインパターン http://aws.clouddesignpattern.org/
  43. 43. agenda • 自己紹介 • AWSのCloud Design Pattern紹介 • アプリケーション機能要件に対しての構築パターン • CloudFormationを使ったAWSの各サービスを自動構築 • 参考資料 • まとめ • 質疑応答
  44. 44. AWS リファレンスアーキテクチャ http://aws.amazon.com/jp/architecture/ AWSクラウドを使ったシステムアーキテクチャ設計を行う際に発生する、典型 的な問題とそれに対する解決策・設計方法を、わかりやすく分類して、ノウハ ウとして利用できるように整理したものである。
  45. 45. AWS リファレンスアーキテクチャ
  46. 46. AWS リファレンスアーキテクチャ
  47. 47. 私が構築設計するときの代表的な4パターン ①Web Storage Pattern • S3を使えば、ネットワーク負荷やデー タ容量を気にする必要がなくなる • S3は3カ所以上のデータセンターで バックアップを行っているため、非常 に耐久性が高い • 各コンテンツ毎のURLが発行されるた め、ファイルをS3に置くだけでファイ ル共有など広範囲な目的で活用するこ とができる
  48. 48. ②Multi-Datacenter Pattern • データセンターレベルの大きな障害が発 生しても、サービス継続可能なシステム を構築できる • 東日本大震災以降注目されているディザ スターリカバリー(DR)構成を安価に 迅速に構築できる • AWSはAZごとに初期費用や月額利用料 がかかるわけではないので、単一のAZ を使用しても複数のAZを使用しても費 用は変わらない 私が構築設計するときの代表的な4パターン
  49. 49. ③Scale Out Pattern • トラフィック量の増大に合わせて自動的に EC2インスタンスを増やすことができるの で、サービス継続につながる • トラフィック量が多くないときにはEC2イ ンスタンスを削減できる(スケールインと呼 ぶ)のでコスト削減につながる • トラフィック量の増減に合わせて自動的に EC2インスタンスを増減させられるので、 運用の手間が省ける • ELBの配下に必要な数のEC2インスタンス を並べることができるので、スケールアッ プと比べると処理能力の限界は極めて高い 私が構築設計するときの代表的な4パターン
  50. 50. ④Cache Distribution Pattern • 地理的に離れたユーザーに対して、より 良いユーザエクスペリエンスを提供でき る • ファイルダウンロード処理を分散できる ため、負荷分散効果もある • 既存のサーバー(オンプレやホスティン グなどのEC2以外のサーバー)をオリジ ンサーバーにすることで、既存のサーバー を生かしながらパターンを適用すること が可能 • オリジンサーバーとしては、S3を直接オ リジンに用いることもできる 私が構築設計するときの代表的な4パターン
  51. 51. AWS リファレンスアーキテクチャをベースにして、そこから要件・予算に応じ て構成を加えたり減らしたりすればそれらしい構成にはなる! ビジプロ向け情報"(( ⁰⊖⁰)/)" 【構成を加えるパターン】
  52. 52. AWS リファレンスアーキテクチャをベースにして、そこから要件・予算に応じ て構成を加えたり減らしたりすればそれらしい構成にはなる! ビジプロ向け情報"(( ⁰⊖⁰)/)" 【構成を加えるパターン】
  53. 53. AWS リファレンスアーキテクチャをベースにして、そこから要件・予算に応じ て構成を加えたり減らしたりすればそれらしい構成にはなる! ビジプロ向け情報"(( ⁰⊖⁰)/)" 【構成を減らすパターン】
  54. 54. AWS リファレンスアーキテクチャをベースにして、そこから要件・予算に応じ て構成を加えたり減らしたりすればそれらしい構成にはなる! ビジプロ向け情報"(( ⁰⊖⁰)/)" 【構成を減らすパターン】
  55. 55. AWS定番構成を構築&デプロイを 自動化するサービスあるよ。
  56. 56. AWS Elastic Beanstalk
  57. 57. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  58. 58. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  59. 59. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  60. 60. 2-Tier Architecture
  61. 61. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  62. 62. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  63. 63. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  64. 64. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  65. 65. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  66. 66. 引用 - プログラマに贈るクラウドとの上手な付き合い方(http:// www.slideshare.net/keisuke69/how-to-usecloudforprogrammer) -
  67. 67. agenda • 自己紹介 • AWSのCloud Design Pattern紹介 • アプリケーション機能要件に対しての構築パターン • CloudFormationを使ったAWSの各サービスを自動構築 • 参考資料 • まとめ • 質疑応答
  68. 68. CloudFormation Demo • 単一 EC2 インスタンスとローカル MySQL データベース • AutoScalingMultiAZSample.template http://aws.amazon.com/jp/cloudformation/aws-cloudformation-templates/aws- cloudformation-templates-ap-northeast-1/
  69. 69. CloudFormation Demo http://aws.amazon.com/jp/cloudformation/aws-cloudformation-templates/aws- cloudformation-templates-ap-northeast-1/ • 単一 EC2 インスタンスとローカル MySQL データベース • AutoScalingMultiAZSample.template
  70. 70. 例:単一 EC2 インスタンスとローカル MySQL データベース
  71. 71. 例:単一 EC2 インスタンスとローカル MySQL データベース
  72. 72. 例:単一 EC2 インスタンスとローカル MySQL データベース
  73. 73. 例:単一 EC2 インスタンスとローカル MySQL データベース
  74. 74. 例:単一 EC2 インスタンスとローカル MySQL データベース
  75. 75. 例:単一 EC2 インスタンスとローカル MySQL データベース
  76. 76. 例:単一 EC2 インスタンスとローカル MySQL データベース
  77. 77. 例:単一 EC2 インスタンスとローカル MySQL データベース
  78. 78. 例:単一 EC2 インスタンスとローカル MySQL データベース
  79. 79. CloudFormation Demo http://aws.amazon.com/jp/cloudformation/aws-cloudformation-templates/aws- cloudformation-templates-ap-northeast-1/ • 単一 EC2 インスタンスとローカル MySQL データベース • AutoScalingMultiAZSample.template
  80. 80. 例:AutoScalingMultiAZSample.template
  81. 81. 例:AutoScalingMultiAZSample.template
  82. 82. 例:AutoScalingMultiAZSample.template
  83. 83. 例:AutoScalingMultiAZSample.template
  84. 84. 例:AutoScalingMultiAZSample.template
  85. 85. 例:AutoScalingMultiAZSample.template
  86. 86. 例:AutoScalingMultiAZSample.template
  87. 87. 例:AutoScalingMultiAZSample.template
  88. 88. 例:AutoScalingMultiAZSample.template
  89. 89. 例:AutoScalingMultiAZSample.template
  90. 90. 例:AutoScalingMultiAZSample.template
  91. 91. 例:AutoScalingMultiAZSample.template
  92. 92. 例:AutoScalingMultiAZSample.template
  93. 93. 例:AutoScalingMultiAZSample.template
  94. 94. agenda • 自己紹介 • AWSのCloud Design Pattern紹介 • アプリケーション機能要件に対しての構築パターン • CloudFormationを使ったAWSの各サービスを自動構築 • 参考資料 • まとめ • 質疑応答
  95. 95. 2.WebサービスStartUP向け AWSスケーラブルな構成例 http://www.slideshare.net/AmazonWebServicesJapan/aws-for- 3.スタートアップでのAWS(Amazon Web Services)活用事例 http://www.slideshare.net/schoowebcampus/awsamazon-web- 4.Lv1から始めるWebサービスのインフラ構築 http://www.slideshare.net/itoyusaku/lv1web 5.プログラマに贈るクラウドとの上手な付き合い方 http://www.slideshare.net/keisuke69/how-to-usecloudforprogrammer 1.スタートアップならおさえておきたいAWS入門サービス概要と基礎知識編 http://www.slideshare.net/HiroshiTakayama/aws-45311829 参考資料 私がオススメするスライド5選
  96. 96. agenda • 自己紹介 • AWSのCloud Design Pattern紹介 • アプリケーション機能要件に対しての構築パターン • CloudFormationを使ったAWSの各サービスを自動構築 • 参考資料 • まとめ • 質疑応答
  97. 97. まとめ • AWSサービスは、目的に応じて組み合わせすることにより課題を 解決することができる。 • インフラサービスに柔軟に対応できるようプログラムのアーキテ クチャを考慮 • 2-Tier Architectureを実現するには、モバイルプログラマーもAWS SDKを使えるようになること • テンプレートを使ってインフラを構築し、使い回し可能(ML標準 のテンプレート作成もあり。)
  98. 98. agenda • 自己紹介 • AWSのCloud Design Pattern紹介 • アプリケーション機能要件に対しての構築パターン • CloudFormationを使ったAWSの各サービスを自動構築 • 参考資料 • まとめ • 質疑応答
  99. 99. ありがとうございました!!

×