狠狠撸
Submit Search
Ph perか?awsと出会ってdev opsを目指した話
?
26 likes
?
12,537 views
Shota Umeda
Follow
笔贬笔カンファレンス2014の资料です
Read less
Read more
1 of 95
Download now
Downloaded 32 times
More Related Content
Ph perか?awsと出会ってdev opsを目指した話
1.
PHPerがAWSと 出会って DevOpsを目指した話
! 2014/10/11 php conference2014 Retty, Inc 梅田昌太 @ebisusurf 1
2.
本日のお品書き ? 前菜
ご挨拶 ? メイン サービスの成長とインフラの成長 ? デザート AWSを使ってDevOpsを目指す 2
3.
ご挨拶 サービスの成長とインフラの成長 AWSを使ってDevOpsを目指す
3
4.
Rettyという恵比寿に ある会社から来ました 4
5.
Rettyって? 5
6.
Rettyって? ? 食を通じて世界中の人々をHappyに
? グルメサービスです! ? AppStore Google PlayへGo! 6
7.
About me @ebisusurf
梅田昌太 AWS & プリンタ 7
8.
About me 担当
炒飯 8
9.
炒飯な理由 ? 皆に愛される平和なメニュー
? ラーメンに対するマイノリティ感 ? ラーメンの話は殴り合いになるからNG 9
10.
About me ?
SoftwareDesign ? 2014年5月号~7月号 ? 短期集中連載 ? Rettyのサービス拡大を支え た“たたき上げ”DevOps 10
11.
Career ? 渋谷でPerl,六本木でPHP
? アプリケーションエンジニアです ? Vim好き 11
12.
PerlとPHPのキャリアが が長い&好きなので 12
13.
13
14.
本題 14
15.
ご挨拶 サービスの成長と インフラの成長
AWSを使ってDevOpsを目指す 15
16.
まずは今の構成をご紹介 ? retty.me(メインサービス)
? news.retty.me(ニュース配信) ? owner.retty.me(店舗様向けサービス) 16
17.
CloudFront EC2 RDS
EB ELB S3 retty.me EC2 RDS ELB EC2 RDS ELB Nginx Nginx MongoDB EMR ELC memcached ELC Redis Route 53 17
18.
news.retty.me CloudFront Route
53 EC2 RDS EB ELB S3 ELC memcached 18
19.
owner.retty.me CloudFront Route
53 EC2 RDS ELB EB S3 EC2 RDS ELB ELC Redis EMR EC2 development 19
20.
いきなりこうなった訳 ではありません 20
21.
サービス総明記 21
22.
UU ~10万 22
23.
retty.me 信頼と安定の某VPS PHP
Apache MySQL Linux 23
24.
サブドメイン 信頼と安定のレンタルサーバ Wordpress
24
25.
10万~ 25
26.
AWS移行 構成は変わらず(EC2) PHP
Apache MySQL Linux 26
27.
50万~ AWSアーキテクチャに 乗ってみる
27
28.
retty.me AWSアーキテクチャに少し 乗ってみる
28
29.
100万~ 29
30.
何かよく解らんけど 様子がおかしいぞ? 30
31.
スケールアウトしてみた retty.me 31
32.
監視もしてみた SotfwareDesign 6月号
cloud watch retty.me オプションでディスクも監視 Nagios Monit 32
33.
なんとかなった 33
34.
200万~400万 34
35.
奇跡のカーニバル 開 幕 だ
n ___ n こ|| こ/_ら_辺_\で || || |(?) (?)| || 「??| \ ̄ ̄ ̄/ ???| 「 ̄|  ̄冂 ̄ ? ̄| `ヽ |/ ̄| ̄| ̄\| ノ 一気に火を吹きだした 35
36.
起こった事 36
37.
起こった事 ? サブドメインサービス開発に火がつく
? 既存サブドメインサービスが落ちる ? メインサービスのアラートが止まらない 37
38.
起こった事 ? RDSに書き込んでたロギングが限界
? スケールアウト対応が追いつかない&コスパの良 いインスタンスが使えない(EC2が32bitPV、 PHP5.3) ? RDSのSlave上限にひっかかる(MySQL5.5) 38
39.
やった事 39
40.
やった事 ? サブドメインはレガシーアーキテクチャを捨てた
環境で開発, 初期(学習)コストは気合い ? PHP5.5, ZendFramework2 ? ElasticBeanstalk <- 後で話します 40
41.
やった事 ? サブドメインをAWS
+ VPCに移行 ? VPC移行は視野に入ってたのでちょうど良 かった 41
42.
やった事 ? 32bit
PV amazon linux -> 64bit HVM amazon linux ? SoftwareDesign5月号(Vagrantを使っ て…) ? ある物から構成を掘り起こす作業は泣ける 42
43.
やった事 ? retty.meのPHP5.3->PHP5.5
? EBで色々選べる(そもそもサポート切れる) ? MySQL5.5->MySQL5.6 ? 多段レプリケーション ? ログをfluentd + S3 + MongoDB運用 43
44.
CloudFront Route 53
EC2 RDS ELB S3 結果こうなった EC2 RDS ELB EC2 RDS ELB 最初の図に少し 近づいてますね MongoDB EMR ELC memcached EB 44
45.
ミドルウェアバージョン アップの秘訣は? 45
46.
多分そんなもの無い ? SlaveのMaster昇格を使ってdev,stg環境で
ひたすら試す ? E_DEPRECATEDとひたすら戦う ? 64bit移行はPHP_INT_MAXにハマって泣き たかった 46
47.
~500万 47
48.
より良い物へ 48
49.
CloudFront Route 53
EC2 RDS ELB EB S3 retty.me EC2 RDS ELB EC2 RDS ELB Nginx Nginx MongoDB EMR ELC memcached ELC Redis 49
50.
Nginx upstream で安心deploy
upstream retty { server enviroment-1 weight=nnn; server enviroment-1 weight=nnn; server enviroment-1 weight=nnn; } EC2 RDS ELB EB EC2 RDS ELB EC2 RDS ELB Nginx Nginx 50
51.
CloudFront Route 53
EC2 RDS ELB EB S3 ログを TRESUREDATAへ EC2 RDS ELB EC2 RDS ELB 中継 MongoDB 51
52.
CloudFront Route 53
EC2 RDS ELB EB S3 CIはCircleで EC2 RDS ELB EC2 RDS ELB 52
53.
CloudFront Route 53
EC2 RDS ELB EB S3 Jenkins? EC2 RDS ELB EC2 RDS ELB 53
54.
CloudFront Route 53
EC2 RDS ELB EB 嫌です S3 Jenkins? EC2 RDS ELB EC2 RDS ELB 54
55.
ご挨拶 サービスの成長とインフラの成長 AWSを使って
DevOpsを目指す 55
56.
捗るサービスを選んで Opsの仕事を減らす 56
57.
俺的Best3 57
58.
Best3 ? Elastic
Beanstalk(オートスケール&自動デ プロイ) ? RDS(自前でレプリケーション, フェイルオーバ とか泣ける) ? S3(EBSを拡張するの避ける) 58
59.
ElasticBeanstalk 59
60.
AWS上のHeroku (そもそもHerokuはry) 60
61.
ElasticBeanstalk ? 一般的な
Web アプリケーションに必要 な設定 を組んで、Public DNS 名を割り振って URL でアクセスできるようにしてくれます。 61
62.
ElasticBeanstalk ? 作るアプリは
Web アプリか? Worker か? ? RDS は必要か? Multi-AZ にする? ? ELBを 使 う か? 1インスタンスで動かすか? 62
63.
ElasticBeanstalk のスタックApplication production
staging development Enviroment Enviroment Enviroment 63
64.
デプロイは? 64
65.
git aws.push Application
production staging development Enviroment Enviroment Enviroment git 65
66.
git aws.push ?
gitのリポジトリをそのままデプロイ ? Enviromentとコミットを指定出来る ? 同一Application内であればブラウザで Environment間でデプロイ出来る 66
67.
EBが無いと私の仕事は 回らないくらい便利です 67
68.
大事な事 ? オートスケールを自在に使いこなす
? レガシーアプリケーションの問題は環境変数に 押し込む ? インスタンスを使い捨てにする ? .ebextensionでインスタンスを自在に操る 68
69.
使い捨てにするため ログ系はリアルタイムで送る 69
70.
fluentd Elastic Beanstalk
Mongo&中継 S3 70
71.
.ebextensionsで自由自在 ? デプロイ時のタスクをyml
で記述(chefみたいに抽 象化はされてない) ? fluentdのインストール, apacheの設定, local memcached, postfix(やめた い)...etc commands: 01-install-memcached: command: yum install -y memcached 71
72.
RDS 72
73.
ぶっちゃけ高い 73
74.
それを上回るメリット ? 一度でもMySQLの運用をやった事があれば
Multi-AZの素晴らしさはすぐわかる ? ほぼメンテフリー ? 気軽にスケールアップ 74
75.
S3 75
76.
EBSででかいインスタンスを 用意するのは面倒 ?
Mongoのdiskが溢れてメンテナンス不可能に なった ? 因にs3fsはあまりおすすめしないってamazon の人も言ってた ? S3の運用にちゃんと乗った方が楽 76
77.
まとめ 77
78.
Q.AWSを使ってDevOps を目指す上で 最も重要な事は?
78
79.
immutable infrastructure? 79
80.
infrastructure as code?
80
81.
A.金 81
82.
金で解決する事 ? 特にRDSとかRDSとかRDSとか
? 自前でフェイルオーバとか時間食い過ぎ ? 負荷がきつかったらパラメータ一生懸命いじっ ても余りパフォーマンス上がらない、思い切っ てスケールアップ 82
83.
金で解決する事 ? アプリケーションサーバのような物はEBとかで
ほったらかすようにする ? データをストアするためにでかいEBSをアタッ チするのはやめた方が良いと思う(Mongoとか はどうしてもね。。。 ? AWSはインテグレーションする事が大事 83
84.
とにかくAWSが推奨す るアーキテクチャに乗る 84
85.
オペレーションコストの 削減にコストをかける 85
86.
インフラはAWSに任せて PHP書きましょう! 86
87.
時間があればおまけ 87
88.
Rettyでは 仲間を募集してます 88
89.
Rettyでは 仲間を募集してます 89
90.
Rettyでは 仲間を募集してます 90
91.
懇親会の二次会は Rettyで! 91
92.
92
93.
ステッカー持ってます 93
94.
94
95.
ありがとうございました 95
Download