古きを捨て
新しきに近づける
2017.03.11
JAWS DAYS 2017 懇親会LT
@matetsu
⾃⼰紹介
• 間瀬 哲也
• Sansan株式会社 Eight事業部所属
• Eightのインフラ周りを⾒ています
• JAWS-UG京王線の⾔い出しっぺ
• そろそろ活動しないと。。。
• 「Amazon Web Services 実践⼊⾨」共著
ランチセッションでも
喋ってました!
本⽇の概要
• ⼈⼿が多くかかってコスト⾼になってきたEightの運⽤
をガラッと変える(予定)のお話
• サーバ(インスタンス)プロビジョニング〜アプリケーション
デプロイ
• キーワード: AutoScaling、CodeBuild、ECS、Golden
Image 、Blue/Green Deployment
そう、あれはJAWS DAYS 2013
• ドヤ顔で発表したChefによるインスタンスのプロビ
ジョニングとCapistranoによるアプリケーションデプ
ロイ
時は流れた
• アクセス数の増減がパターン化されている
• スケールアウトは予備インスタンスをcronで起動・停⽌
• インスタンスプロビジョニングは頻繁にはない
• 改善を試みる⼼が芽⽣えない
• プロビジョニングが完了したら、サービス投⼊前に開発者に
アプリケーションデプロイを依頼
わーい!
アプリケーションの
デプロイやっておくね
サーバの準備
できたよ
そのアプリケーションデプロイも
• サーバプロビジョニング後、最初のデプロイを待つ時
間が無駄
• 通常リリースのデプロイ時間増⼤、スタンバイ機と⼊
れ替えながらのデプロイで⼈的コストも増⼤
standby
standby
deploying
deploying
deploying
deploying
deploying
deploying
standby
standby
なんとかしよう!
• Golden Imageを作ってみよう
• プロビジョニング〜依頼をやめる
• デプロイの呪いからの解放
• Chef Serverだと不便
• Knife-zero (Chef-zero + Port forward)
• デプロイもcookbookで
• Cloud-initが便利
ここぞとばかりに
• ⼀度は作ってメンテされなくなったServerspecによる
テストを再開
• JAWS DAYS 2015のLTでテスト始めたと⾔ってた
• Golden Image作成によって修正機運が⾼まる
• 実はそれほど修正しなくてよかった
• PackerでのAMI作成時にテストを⾛らせる
今更ながらですが
• AutoScaling採⽤
• AutoScalingGroupの切り替えでBlue/Green Deployment
• Scheduled ActionでこれまでのCron代替
• 祝⽇をどうにかしたい!!!!
• Lifecycle Hook
• 起動時/削除時に処理を⼊れられる(mackerelの退役とか)
• SSM RunCommandとの組み合わせも良い
結局、どうなったかというと
master merge
SNS連携
Github
Repository
masterブランチ
の変更イベント
だけにフィルタ
Queue
前処理インスタンス
(Packer起動など)
イメージ作成
インスタンス Golden Image
Active Auto Scaling Group Non-Active Auto Scaling Group
ALB
Lambda
3年くらい遅れましたが
• ようやくImmutable Infrastructureっぽい感じになって
きた
• Immutableというよりはクラウドらしく?
• うちにとっては⼤きな進歩なんです!
やはり
• やる気が⼤事
• 時間は作るもの
• 業務としてもやるための時間を確保できるようにすることも
含めて
• やり始めると意外と進む
今後やること
• CodeBuildでビルド
• Docker+ECS
ご清聴ありがとうございました!

JAWS DAYS 2017 LT 古きを捨て新しきに近づける