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.

Devがawsと出会ってdev opsを目指した話

4,593 views

Published on

えびスタ#1の資料です

Published in: Software
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/2Q98JRS ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❶❶❶ http://bit.ly/2Q98JRS ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Devがawsと出会ってdev opsを目指した話

  1. 1. DevがAWSと 出会って DevOpsを目指した話 えびスタ!#1 2014/12/18 Retty, Inc 梅田昌太 @ebisusurf 1
  2. 2. 本日のお品書き • 前菜 ご挨拶 • メイン サービスの成長とインフラの成長 • デザート AWSを使ってDevOpsを目指す 2
  3. 3. サービスの成長とインフラの成長 AWSを使ってDevOpsを目指す ご挨拶 3
  4. 4. 4 近所から来ました
  5. 5. Rettyって? • 食を通じて世界中の人々をHappyに • グルメサービスです! • AppStore Google PlayへGo! 5
  6. 6. About me @ebisusurf 梅田昌太 AWS & プリンタ 6
  7. 7. About me 担当 炒飯 7
  8. 8. About me 8
  9. 9. 9 将来の夢
  10. 10. 本題 10
  11. 11. サービスの成長と インフラの成長 AWSを使ってDevOpsを目指す ご挨拶 11
  12. 12. まずは今の構成をご紹介 • retty.me(メインサービス) • owner.retty.me(店舗様向けサービス) 12
  13. 13. CloudFront RDS EC2 ELB EB S3 retty.me RDS EC2 ELB RDS EC2 ELB Nginx Nginx EMR MongoDB ELC memcached ELC Redis Route 53 13
  14. 14. Route 53CloudFront RDS EC2 ELB EB S3 owner.retty.me RDS EC2 ELB EMR ELC Redis EC2 development 14
  15. 15. いきなりこうなった訳 ではありません 15
  16. 16. サービス総明記 16
  17. 17. UU ∼10万 17
  18. 18. retty.me 信頼と安定の某VPS MySQL Apache Linux PHP 18
  19. 19. サブドメイン 信頼と安定のレンタルサーバ Wordpress 19
  20. 20. 10万∼ 20
  21. 21. AWS移行 構成は変わらず(EC2) MySQL Apache Linux PHP 21
  22. 22. 50万∼ AWSアーキテクチャに 乗ってみる 22
  23. 23. retty.me AWSアーキテクチャに少し 乗ってみる 23
  24. 24. 100万∼ 24
  25. 25. 何かよく解らんけど 様子がおかしいぞ? 25
  26. 26. スケールアウトしてみた retty.me 26
  27. 27. 監視もしてみた SotfwareDesign 6月号 Nagios Monit cloud watch オプションでディスクも監視retty.me 27
  28. 28. なんとかなった 28
  29. 29. 200万∼400万 29
  30. 30.   奇跡のカーニバル   開  幕  だ  n  ___  n  ¦¦ /___\ ¦¦  ¦¦ |(゚) (゚)| ¦¦ 「「「¦ \ ̄ ̄ ̄/ 「「「¦ 「 ̄¦   ̄冂 ̄  「 ̄¦ `ヽ ¦/ ̄¦ ̄¦ ̄\¦ ノ ここら辺で 一気に火を吹きだした 30
  31. 31. 起こった事 31
  32. 32. 起こった事 • RDSに書き込んでたロギングが限界 • スケールアウト対応が追いつかない&コスパの良 いインスタンスが使えない(EC2が32bitPV、 PHP5.3) • RDSのSlave上限にひっかかる(MySQL5.5) 32
  33. 33. 起こった事 • 繰り返される緊急デプロイ • 信頼と安定のrsync • 鳴り止まないアラート • 秘伝のタレが継ぎ足されていくami 33
  34. 34. やった事 34
  35. 35. やった事 35 ElasticBeasntalk でインフラの透明化 (後で話します)
  36. 36. やった事 • retty.meのPHP5.3->PHP5.5 • EBで色々選べる(5.3はサポート切れる) • MySQL5.5->MySQL5.6 • 多段レプリケーション • ログをfluentd + S3 + MongoDB運用 36
  37. 37. Route 53CloudFront RDS EC2 ELB S3 結果こうなった RDS EC2 ELB RDS EC2 ELB EMR MongoDB ELC memcached 最初の図に少し 近づいてますね EB 37
  38. 38. ∼500万 38
  39. 39. 外部サービス連携 39
  40. 40. Route 53CloudFront RDS EC2 ELB EB S3 retty.me RDS EC2 ELB RDS EC2 ELB Nginx Nginx EMR MongoDB ELC memcached ELC Redis 40
  41. 41. Route 53CloudFront RDS EC2 ELB EB S3 ログを TRESUREDATAへ RDS EC2 ELB RDS EC2 ELB 中継 MongoDB 41
  42. 42. Route 53CloudFront RDS EC2 ELB EB S3 CIはCircleで RDS EC2 ELB RDS EC2 ELB 42
  43. 43. Route 53CloudFront RDS EC2 ELB EB S3 RDS EC2 ELB RDS EC2 ELB 43 Jenkinsを ホストするのは嫌です
  44. 44. サービスの成長とインフラの成長 AWSを使って DevOpsを目指す ご挨拶 44
  45. 45. Devの時間を作るために るサービスを使って Opsの仕事を減らす 45
  46. 46. オレオレBest3 46
  47. 47. Best3 • Elastic Beanstalk(オートスケール&自動デ プロイ) • RDS(自前でレプリケーション, フェイルオーバ とか泣ける) • S3(EBSを拡張するの避ける) 47
  48. 48. ElasticBeanstalk 48
  49. 49. AWS上のHeroku (そもそもHerokuはry) 49
  50. 50. ElasticBeanstalk • 一般的な Web アプリケーションに必要 な設定 を組んで、Public DNS 名を割り振って URL でアクセスできるようにしてくれます。 50
  51. 51. ElasticBeanstalk • 作るアプリは Web アプリか? Worker か? • RDS は必要か? Multi-AZ にする? • ELBを 使 う か? 1インスタンスで動かすか? 51
  52. 52. ElasticBeanstalk のスタック Application Enviroment Enviroment Enviroment production staging development 52
  53. 53. デプロイは? 53
  54. 54. Application Enviroment Enviroment Enviroment git production staging development git aws.push 54
  55. 55. git aws.push • gitのリポジトリをそのままデプロイ • Enviromentとコミットを指定出来る • 同一Application内であればブラウザで Environment間でデプロイ出来る 55
  56. 56. Elastic Beanstalk Command Line Interface (EB CLI) 3.0 56 eb deploy
  57. 57. EBが無いと私の仕事は 回らないくらい便利です 57
  58. 58. 大事な事 • オートスケールを自在に使いこなす • レガシーアプリケーションの問題は環境変数に 押し込む • インスタンスを使い捨てにする • .ebextensionでインスタンスを自在に操る 58
  59. 59. 使い捨てにするため ログ系はリアルタイムで送る 59
  60. 60. fluentd Elastic Beanstalk Mongo&中継 S3 60
  61. 61. .ebextensionsで自由自在 • デプロイ時のタスクをyml で記述(chefみたいに抽 象化はされてない) • fluentdのインストール, apacheの設定, local memcached, postfix(やめた い)...etc commands: 01-install-memcached: command: yum install -y memcached 61
  62. 62. RDS 62
  63. 63. ぶっちゃけ高い 63
  64. 64. それを上回るメリット • 一度でもMySQLの運用をやった事があれば Multi-AZの素晴らしさはすぐわかる • ほぼメンテフリー • 気軽にスケールアップ 64
  65. 65. S3 65
  66. 66. EBSででかいインスタンスを 用意するのは面倒 • Mongoのdiskが れてメンテナンス不可能に なった • 因にs3fsはあまりおすすめしないってamazon の人も言ってた • S3の運用にちゃんと乗った方が楽 66
  67. 67. 最近やったこと (直前追記) 67
  68. 68. 1.chat ops 68
  69. 69. chat ops@deploy 69 EB Worker SQS please deploy json post eb deploy
  70. 70. chat opsの 重要性とは? 70
  71. 71. なぜchat ops? 71 臨時デプロイしてください OK!
  72. 72. なぜchat ops? 72 臨時デプロイしてください …… 臨時デプロイしてください 臨時デプロイしてください 臨時デプロイしてください 臨時デプロイしてください 臨時デプロイしてください
  73. 73. 臨時デプロイしてください …… 臨時デプロイしてください 臨時デプロイしてください 臨時デプロイしてください 臨時デプロイしてください 臨時デプロイしてください 73 イラっ!
  74. 74. オペレーションのせい で人間関係悪化は 良くない 74
  75. 75. 75 botちゃんに やってもらいましょう
  76. 76. 2.スポットインスタンス を使ってお得に スケールする 76
  77. 77. スポットインスタンス • 基本的にはコストに対しては理解してもらいま しょう(技術関係なし) • それでも考える時はRIとスポットインスタンス の組み合わせが効果的 • 但し費用対効果考えると微妙 77
  78. 78. 78 r3.largeを例にとると オンデマンドだと$0.175 スポットだと$0.0215
  79. 79. 79 r3.largeを例に取ると オンデマンドだと$0.175 スポットだと$0.0215 誰かが釣り上げると落とされます
  80. 80. まとめ 80
  81. 81. Q.AWSを使ってDevOps を目指す上で 最も重要な事は? 81
  82. 82. immutable infrastructure? 82
  83. 83. infrastructure as code? 83
  84. 84. A.金 84
  85. 85. 金で解決する事 • 特にRDSとかRDSとかRDSとか • 負荷がきつかったらパラメータ一生懸命いじっ ても余りパフォーマンス上がらない、思い切っ てスケールアップ 85
  86. 86. 金で解決する事 • アプリケーションサーバはEBとかでほったらか すようにする • AWSはそれぞれのサービスを有機的に結合させ ることがとても大事 • S3とかSQSとかIAMとか 86
  87. 87. EC2を立てたら 負けだと思ってる 87
  88. 88. 言いたかったこと 88 インフラはAWSを 使い倒して(お任せして) サービスをガンガン開発しよう!
  89. 89. 時間があればおまけ 89
  90. 90. 90 Rettyでは 仲間を募集してます
  91. 91. 91 Rettyでは 仲間を募集してます
  92. 92. 92 Rettyでは 仲間を募集してます
  93. 93. 93 Rettyでは 仲間を募集してます
  94. 94. ステッカー持ってます 94
  95. 95. 95 二次会のお店は Rettyで!
  96. 96. ありがとうございました 96

×