aws_opsworks

2,677 views

Published on

JAWS-UG Osaka 第8回勉強会 Beginners の資料です

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,677
On SlideShare
0
From Embeds
0
Number of Embeds
1,115
Actions
Shares
0
Downloads
12
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

aws_opsworks

  1. 1. AWS OpsWorks(tm)2013/06/22JAWS-UG Osaka 第8回勉強会 Beginners(環境自動構築パック)Saturday, June 22, 13
  2. 2. 自己紹介• 澤登 HiganWorks合同会社の代表社員• アプリケーションのためのプラットフォーム構築/運用自動化をテーマに活動2• http://opsrock.in 共同開発・運営• AWS OpsWorksとChefを主に取り扱うソリューションを提供Saturday, June 22, 13
  3. 3. 本日の内容• AWS OpsWorks の概要• OpsWorksの機能と関連するAWS達• スタックとレイヤ• アプリケーションライフサイクルとデプロイ• OpsWorksのオートスケール• OpsWorks Ruby on Railsデプロイ3Saturday, June 22, 13
  4. 4. 本日の内容• AWS OpsWorks の概要• OpsWorksの機能と関連するAWS達• スタックとレイヤ• アプリケーションライフサイクルとデプロイ• OpsWorksのオートスケール• OpsWorks Ruby on Railsデプロイ3・・・もっと詳しく?Saturday, June 22, 13
  5. 5. 7/6(土)AWS自動化特集4Saturday, June 22, 13
  6. 6. AWS OpsWorks の概要Saturday, June 22, 13
  7. 7. AWS OpsWorksとは?6Saturday, June 22, 13
  8. 8. AWS OpsWorksとは?• アプリケーションのライフサイクル管理を一本化するために作られたソリューション6Saturday, June 22, 13
  9. 9. AWS OpsWorksとは?• アプリケーションのライフサイクル管理を一本化するために作られたソリューション• プラットフォームの自動構築6Saturday, June 22, 13
  10. 10. AWS OpsWorksとは?• アプリケーションのライフサイクル管理を一本化するために作られたソリューション• プラットフォームの自動構築• アプリケーションのdeploy(undeploy)6Saturday, June 22, 13
  11. 11. プラットフォームの自動構築• アプリケーションが動作するプラットフォームとは?• ネットワーク環境の構築• サーバ(インスタンス)の調達• ミドルウェアの設定7Saturday, June 22, 13
  12. 12. プラットフォームの自動構築• アプリケーションが動作するプラットフォームとは?• ネットワーク環境の構築• サーバ(インスタンス)の調達• ミドルウェアの設定7Saturday, June 22, 13
  13. 13. プラットフォームの自動構築• アプリケーションが動作するプラットフォームとは?• ネットワーク環境の構築• サーバ(インスタンス)の調達• ミドルウェアの設定7Saturday, June 22, 13
  14. 14. プラットフォームの自動構築• アプリケーションが動作するプラットフォームとは?• ネットワーク環境の構築• サーバ(インスタンス)の調達• ミドルウェアの設定7Saturday, June 22, 13
  15. 15. プラットフォームの自動構築• アプリケーションが動作するプラットフォームとは?• ネットワーク環境の構築• サーバ(インスタンス)の調達• ミドルウェアの設定7Saturday, June 22, 13
  16. 16. アプリケーションのdeploy• アプリケーション ソースコード(リポジトリ)• git, svn, zip(http, s3)+ 何らかの配布/ビルドの仕組み8Saturday, June 22, 13
  17. 17. アプリケーションのdeploy• アプリケーション ソースコード(リポジトリ)• git, svn, zip(http, s3)+ 何らかの配布/ビルドの仕組み8Saturday, June 22, 13
  18. 18. アプリケーションのdeploy• アプリケーション ソースコード(リポジトリ)• git, svn, zip(http, s3)+ 何らかの配布/ビルドの仕組み8OpsWorks AgentSaturday, June 22, 13
  19. 19. アプリケーションのdeploy• アプリケーション ソースコード(リポジトリ)• git, svn, zip(http, s3)+ 何らかの配布/ビルドの仕組み8OpsWorks Agentタスク実行Saturday, June 22, 13
  20. 20. アプリケーションのdeploy• アプリケーション ソースコード(リポジトリ)• git, svn, zip(http, s3)+ 何らかの配布/ビルドの仕組み8OpsWorks Agentタスク実行 タスク実行管理Saturday, June 22, 13
  21. 21. OpsWorksの機能と関連するAWS達Saturday, June 22, 13
  22. 22. 関連AWSは大体こいつらです10Amazon EC2 Auto ScalingElastic LoadBalancingAmazon S3CloudWatch IAMAmazon SQSSaturday, June 22, 13
  23. 23. 機能対応表11OpsWorks 関連AWSサーバインスタンス提供 EC2, S3モニタリング CloudWatchパーミッション IAMオートスケール ELB, AutoScalingオートヒール CloudWatch, EC2※発表者独自の見解を含みますSaturday, June 22, 13
  24. 24. スタックとレイヤSaturday, June 22, 13
  25. 25. 『スタック』1システムをまとめた単位アプリケーションのプラットホーム全体『レイヤ』役割別インスタンスの集合DBWebServerApplicationSystem ASaturday, June 22, 13
  26. 26. アプリケーションライフサイクルとデプロイSaturday, June 22, 13
  27. 27. 1.Setup2.Configure3.Deploy4.UnDeploy5.Shutdown15OpsWorksのライフサイクル定義Saturday, June 22, 13
  28. 28. 1.Setup2.Configure3.Deploy4.UnDeploy5.Shutdown15OpsWorksのライフサイクル定義プラットフォーム部分Saturday, June 22, 13
  29. 29. プラットフォーム部分• Setup• インスタンスの起動• 関連パッケージのインストール• Configure (構成変更時にも自動実行)• ミドルウェアの設定• OpsWorksメタデータへの情報登録16Saturday, June 22, 13
  30. 30. プラットフォーム部分• Setup• インスタンスの起動• 関連パッケージのインストール• Configure (構成変更時にも自動実行)• ミドルウェアの設定• OpsWorksメタデータへの情報登録16Saturday, June 22, 13
  31. 31. 設定情報登録例:Mysql17"opsworks": {"stack": {"name": "sample_stack"},"layers": {"db-master": {"id": "e554fc61-25f0-4cde-ab21-0fb890f586b6","name": "MySQL Master","instances": {"db-master1": {"public_dns_name": "ec2-54-250-66-243.xxx","ip": "54.250.66.243","private_ip": "10.154.17.254","private_dns_name": "ip-10-154-17-254.xxx"}}}"mysql": {"server_root_password": "root_password"}}※一部抜粋Saturday, June 22, 13
  32. 32. 1.Setup2.Configure3.Deploy4.UnDeploy5.Shutdown18OpsWorksのライフサイクル定義アプリケーション部分Saturday, June 22, 13
  33. 33. アプリケーション部分 1/2• Deploy• デプロイツール※風のタスクを実行※Capistrano/Chef::Deploy• レイヤ情報に基づいてアプリケーションコンフィグの設定• アプリケーションの起動• ELB/HAProxy等のバックエンドに参加19Saturday, June 22, 13
  34. 34. アプリケーション部分 2/2• UnDeploy• ELB/HAProxy等のバックエンドから除外• アプリケーションの停止20Saturday, June 22, 13
  35. 35. その他任意に実行可能な小タスク• os package管理系• update_dependencies• install_dependencies• Chef関連系• update_custom_cookbooks• execute_recipes21Saturday, June 22, 13
  36. 36. Shutdown• 後片付け• ミドルウェアの安全な停止• OpsWorksAgentの安全な停止• ステータス更新&削除22Saturday, June 22, 13
  37. 37. OpsWorksのオートスケールSaturday, June 22, 13
  38. 38. 選べるオートスケール• CloudWatch、AutoScalingと連携• TimeBased instance• 1時間単位でインスタンスの起動・停止状態をスケジュールできます。• LoadBased instance• レイヤの平均負荷状況に応じてインスタンスを起動・停止します。24Saturday, June 22, 13
  39. 39. AutoScale(OpsWorks)設定例25http://qiita.com/sawanoboly@github/items/2aa556fc4376a1695654WEBの情報をご参照お願いしますSaturday, June 22, 13
  40. 40. OpsWorksRuby on Railsデプロイ(紙芝居)Saturday, June 22, 13
  41. 41. Saturday, June 22, 13
  42. 42. Saturday, June 22, 13
  43. 43. Saturday, June 22, 13
  44. 44. Saturday, June 22, 13
  45. 45. Saturday, June 22, 13
  46. 46. Saturday, June 22, 13
  47. 47. Saturday, June 22, 13
  48. 48. Saturday, June 22, 13
  49. 49. Saturday, June 22, 13
  50. 50. Saturday, June 22, 13
  51. 51. Saturday, June 22, 13
  52. 52. Saturday, June 22, 13
  53. 53. あ、依存パッケージ忘れてたSaturday, June 22, 13
  54. 54. インスタンス起動してもうたし...Saturday, June 22, 13
  55. 55. Saturday, June 22, 13
  56. 56. Saturday, June 22, 13
  57. 57. Saturday, June 22, 13
  58. 58. Saturday, June 22, 13
  59. 59. RailsプラットホームOKSaturday, June 22, 13
  60. 60. Saturday, June 22, 13
  61. 61. Saturday, June 22, 13
  62. 62. Saturday, June 22, 13
  63. 63. Saturday, June 22, 13
  64. 64. Saturday, June 22, 13
  65. 65. おや、DBレイヤ(mysql)がないよ?注) 演出上の都合です、プリセットのMySQLレイヤなら悩まずデプロイできますSaturday, June 22, 13
  66. 66. とりあえずSQLite3でいいやSaturday, June 22, 13
  67. 67. Saturday, June 22, 13
  68. 68. Saturday, June 22, 13
  69. 69. {    "deploy":  {        "books":  {            "database":  {                "adapter":  "sqlite3"            }        }    }}Saturday, June 22, 13
  70. 70. Saturday, June 22, 13
  71. 71. Saturday, June 22, 13
  72. 72. Saturday, June 22, 13
  73. 73. しばし待つSaturday, June 22, 13
  74. 74. Saturday, June 22, 13
  75. 75. Saturday, June 22, 13
  76. 76. rails-app1: $ sudo cat /srv/www/books/current/config/database.ymldevelopment:-- snip-production:adapter: "sqlite3"database: "books"encoding: utf8host: ""username: "root"password: ""reconnect: truedatabase.yml もバッチリSaturday, June 22, 13
  77. 77. このレイヤにインスタンスを追加してみるSaturday, June 22, 13
  78. 78. Saturday, June 22, 13
  79. 79. インスタンス起動時に登録済みアプリはとりあえずデプロイされますSaturday, June 22, 13
  80. 80. Saturday, June 22, 13
  81. 81. production:adapter: "mysql2"database: "books"encoding: utf8host: ""username: "root"password: ""reconnect: trueDB接続がデフォルトなので当然こけますSaturday, June 22, 13
  82. 82. production:adapter: "mysql2"database: "books"encoding: utf8host: ""username: "root"password: ""reconnect: trueDB接続がデフォルトなので当然こけますリカバリ方法は2つSaturday, June 22, 13
  83. 83. Saturday, June 22, 13
  84. 84. Saturday, June 22, 13
  85. 85. Saturday, June 22, 13
  86. 86. Saturday, June 22, 13
  87. 87. OpsWorksRuby on Railsデプロイ(紙芝居)完了Saturday, June 22, 13
  88. 88. 最後にCloudFormation,ElasticBeanstalk, OpsWorks...あとOpscode Chef、結局どれをつかえばいいの?73Saturday, June 22, 13
  89. 89. 目的が達成できるならなんでもいいと思います。Saturday, June 22, 13
  90. 90. 目的が達成できるならなんでもいいと思います。...それでもやっぱりお悩みならSaturday, June 22, 13
  91. 91. 相談するのがよいでしょうOpsRock.in75Saturday, June 22, 13
  92. 92. (再掲)7/6(土)AWS自動化特集76Saturday, June 22, 13
  93. 93. 以上ありがとうございましたご質問・ご相談は懇親会でも受け付けます (^^)Saturday, June 22, 13

×