Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
広告配信サーバーにおけるBlue Green Deploymentの導入事例について \ Sp...
Search
yuma iwasaki
February 20, 2017
Technology
3
1.7k
広告配信サーバーにおけるBlue Green Deploymentの導入事例について \ SpeeeCafeMeetup05
配信サーバーをBlue Green Deploymentでデプロイするようにしたので、その紹介
yuma iwasaki
February 20, 2017
Tweet
Share
More Decks by yuma iwasaki
See All by yuma iwasaki
僕のキャリアとワインと鍋 / daikichijojipm
suthio
8
5.3k
「Laravel Novaの適切な使い方を考えてみる」 / laravel meetup tokyo vol 11
suthio
0
1.8k
バッチをGoにリプレイスして高速化した話 / GoGoGolangEdition!
suthio
2
28k
本当は怖くない AWS Lambda / speee_cafe_meetup06
suthio
2
780
初めての本当の意味でのチーム開発 / pmjp 2016-12-03
suthio
4
1.7k
AWSインフラ構築ツールとしてのTerraform / SpeeeKaigi
suthio
1
2.1k
広告配信サーバーの設計について / Speee Engineer Meeting 2016-06-22
suthio
5
2.6k
しくじり先生 アドネットワーク開発でしくじった話 / yapc8oji
suthio
2
2k
Other Decks in Technology
See All in Technology
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
11
3.9k
Perlの生きのこり - エンジニアがこの先生きのこるためのカンファレンス2025
kfly8
2
270
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
610
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
2.7k
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
360
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.5k
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2.1k
Охота на косуль у древних
ashapiro
0
110
分解して理解する Aspire
nenonaninu
2
1.1k
MIMEと文字コードの闇
hirachan
2
1.4k
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
RayでPHPのデバッグをちょっと快適にする
muno92
PRO
0
190
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
14k
Navigating Team Friction
lara
183
15k
Mobile First: as difficult as doing things right
swwweet
223
9.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Bash Introduction
62gerente
611
210k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Writing Fast Ruby
sferik
628
61k
Fireside Chat
paigeccino
34
3.2k
Being A Developer After 40
akosma
89
590k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Automating Front-end Workflow
addyosmani
1368
200k
Transcript
広告配信サー バー における Blue Green Deployment の導入事例に ついて DC アドテク事業部UZOU
エンジニア 岩崎 裕馬 (@suthio_) SpeeeKaigi / 2017-02-11 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について
自己紹介 岩崎裕馬(@suthio_) 株式会社Speee でネイティブアドの広告システム作ってます 2
アジェンダ 以前の配信サー バー のデプロイ Blue Green Deployment とは 配信サー バー
におけるBlue Green Deployment やってみた結果 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 3
広告システムの配信サー バー 広告システムの配信サー バー は止まらないことが前提 広告はメディアの収益源 -> 止まったらその分補填する Speee Cafe
Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 4
配信サー バー 抱えていた課題 アプリケー ション上の問題により、Graceful Restart ができない ELB から切り離さないとデプロイが行えない ミドルウェアに対する変更にリスクがあり、
怖くて躊躇してしまう 動作確認に時間がかかってしまう ミドルウェアアップデー トの際に切り戻しができない AWS インフラ変更作業が多く発生 インフラ構成変更に時間を多くを使ってしまっている Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 5
Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment
の導入事例について 6
1 台ずつELB からインスタンスを切り離す Speee Cafe Meetup #5 ~ 広告配信サー バー
におけるBlue Green Deployment の導入事例について 7
Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment
の導入事例について 8
Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment
の導入事例について 9
なにが問題か デプロイ時は配信サー バー が1 台少ない状態で動いている デプロイが不安定 インフラの構成変更の際に手動などで同様の対応を行う必要があ る。 Speee Cafe
Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 10
求める配信サー バー リリー ス作業を安全にできる アプリケー ションデプロイ ミドルウェアアップデー ト、 設定変更 AWS
インフラの変更 ( インスタンスタイプ変更、EBS ディスク拡張等) 問題が発生しても対処が簡単に可能 リリー ス前に本番環境に近い状態でのテストが可能 不具合のあるアプリケー ションをデプロイしても すぐにロー ルバックが可能 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 11
守るところは守って、 攻めた開発がしたい! Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue
Green Deployment の導入事例について 12
Blue Green Deployment Speee Cafe Meetup #5 ~ 広告配信サー バー
におけるBlue Green Deployment の導入事例について 13
Blue Green Deployment とは 動いている既存のサー バー とは別に、 まったく新しいサー バー 群を
立ち上げて、 サー バー が立ち上がったらロー ドバランサー を切り替 えるという考え方 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 14
Blue Green Deployment のメリット アプリケー ションだけでなくインフラも含めた動作確認ができる ユー ザ0に公開する前に、 本番環境となるサー バー
で 最終的な動作確認テストができる 切り戻しが非常に容易 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 15
Blue Green Deployment のデメリット リリー スまでの手順が煩雑になる デプロイに時間がかかる インフラコストが少しかさむ 一時的に2 倍のインフラコストがかかる
Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 16
配信サー バー のBlue Green Deployment の手順 Speee Cafe Meetup #5
~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 17
AWS だとどうやってBlue Green Deployment を 実現するか? DNS ベー スでの切り替え <-
今回は話さない AutoScalingGroup( 以下ASG) を使用しての切り替え Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 18
Before Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green
Deployment の導入事例について 19
After Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green
Deployment の導入事例について 20
Blue Green Deployment 実行前 Speee Cafe Meetup #5 ~ 広告配信サー
バー におけるBlue Green Deployment の導入事例について 21
1. プロビジョニング / デプロイ Speee Cafe Meetup #5 ~ 広告配信サー
バー におけるBlue Green Deployment の導入事例について 22
2. AMI 作成 Speee Cafe Meetup #5 ~ 広告配信サー バー
におけるBlue Green Deployment の導入事例について 23
3. LaunchCon g 作成 Speee Cafe Meetup #5 ~ 広告配信サー
バー におけるBlue Green Deployment の導入事例について 24
4. LaunchCon g をASG に紐付け Speee Cafe Meetup #5 ~
広告配信サー バー におけるBlue Green Deployment の導入事例について 25
5. Desired Capacity 変更 Speee Cafe Meetup #5 ~ 広告配信サー
バー におけるBlue Green Deployment の導入事例について 26
6. Desired Capacity 変更後 Speee Cafe Meetup #5 ~ 広告配信サー
バー におけるBlue Green Deployment の導入事例について 27
7. 切り替え前の状態 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue
Green Deployment の導入事例について 28
8. Standby のASG を紐付ける Speee Cafe Meetup #5 ~ 広告配信サー
バー におけるBlue Green Deployment の導入事例について 29
9. Active のASG を切り離す Speee Cafe Meetup #5 ~ 広告配信サー
バー におけるBlue Green Deployment の導入事例について 30
10. タグのUpdate Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue
Green Deployment の導入事例について 31
10. 切り離したASG のDesired Capacity を変更 Speee Cafe Meetup #5 ~
広告配信サー バー におけるBlue Green Deployment の導入事例について 32
やってみた結果 ログ欠損も特になく安全にデプロイできている( 負荷試験済) デプロイそんな遅くない(6 分~ 10 分) 問題が発生してもすぐに対処できるようになった インフラも含めての確認ができるので、 リリー
スに対しての安心感が非常に高まった 結果、 攻めた開発ができるようになった そもそも前の状態が本当によくなかった Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 33
課題 現状だとデプロイすると内部のGolang のキャッシュが消えてしまう 元々 ヒット率高くなかったので問題なかった スケー ルインする時にログデー タ消失のリスクがある 自動で安全にスケー ルインする仕組みになってない
Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 34
今後 現状だとスケー ルインが手動なので、 自動化する Code Deploy を使ってのBlue Green Deployment もやってみたい
1/30 に出たばかりなのでまだ試してない 配信サー バー 以外のサー バー についても Blue Green Deployment でのDeploy に挑戦 そのために常に破棄されても大丈夫な状態の サー バー を作っていきたい ログをどこかに集約 サー バー 自体をステー トレスにする Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 35
まとめ Blue Green Deployment をやった効果、 安全にデプロイする 以外の副次的な効果が非常に多かった 本質的には簡単にサー バー を捨てれることが非常に重要
なにかあったら作り直せばいいという考えにしやすい そもそもステー トレスなサー バー にならざるを得ない 複雑なデプロイフロー を行ってる場合は前提を 疑ってみるのもいいかもしれない Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 36