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
ベンチャー企業のインフラを運用して学んだ99のこと
Search
urmot
September 28, 2018
Technology
0
1.2k
ベンチャー企業のインフラを運用して学んだ99のこと
Bit Valley -inside- vol.1
https://atnd.org/events/99854
urmot
September 28, 2018
Tweet
Share
More Decks by urmot
See All by urmot
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
1k
ログラスを支える設計標準について / loglass-design-standards
urmot
12
2.8k
ログラスを支える技術的投資の仕組み / loglass-technical-investment
urmot
10
5.9k
実践!CloudFormation Best Practice ~CloudFormationで始める組織改革~
urmot
2
3.3k
CircleCIを導入した話
urmot
0
80
SPA on AWS
urmot
0
200
実践!CloudFormation Best Practice
urmot
0
210
RDBのログを取る時にDMSを使うという選択肢
urmot
0
130
Other Decks in Technology
See All in Technology
DatabricksにOLTPデータベース『Lakebase』がやってきた!
inoutk
0
120
Contributing to Rails? Start with the Gems You Already Use
yahonda
2
110
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
6
13k
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
170
american airlines®️ USA Contact Numbers: Complete 2025 Support Guide
supportflight
1
110
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
3
460
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
170
クラウド開発の舞台裏とSRE文化の醸成 / SRE NEXT 2025 Lunch Session
kazeburo
1
260
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
170
Model Mondays S2E04: AI Developer Experiences
nitya
0
200
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
340
MobileActOsaka_250704.pdf
akaitadaaki
0
160
Featured
See All Featured
Writing Fast Ruby
sferik
628
62k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
GraphQLとの向き合い方2022年版
quramy
49
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
What's in a price? How to price your products and services
michaelherold
246
12k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Transcript
ベンチャー企業のインフラを運 用して学んだ99のこと レバレジーズ株式会社 村本 雄太 2018/09/26
目次 1. 自己紹介 2. 学んだこと99連発 3. まとめ 4. さいごに
自己紹介.yaml Name: 村本 雄太 BelongsTo: レバレジーズ株式会社: メディカル事業部 Tags: - 新卒2年目
- いんふらえんじにあ
自己紹介.png
自己紹介.png
学んだこと99連発!!!
今日は時間がないので3つだけ!
ベンチャー企業のインフラを運用して学んだ99のこと 今日お話すること 1. 自動化のすゝめ 2. ユースフルなサーバ構成を作る方法 3. サービスを継続的に動作させるには
今日お話すること 1. 自動化のすゝめ 2. ユースフルなサーバ構成を作る方法 3. サービスを継続的に動作させるには ベンチャー企業のインフラを運用して学んだ99のこと
自動化のすゝめ
自動化のすゝめ なぜ自動化するのか • ヒューマンエラーを減らしたい • 効率化したい • 手作業がつらい...
自動化のすゝめ 自動化のメリット • 一貫性 • プラットフォーム • 高度な修復 • 素早いアクション
• 時間の節約
自動化のすゝめ 自動化のメリット • 一貫性 • プラットフォーム • 高度な修復 • 素早いアクション
• 時間の節約 BY
自動化のすゝめ 自動化のメリット ~噛み砕いたVer~ • 人が手作業するより正確 • 無駄な動きがないので早い • 感情がないので無限に同じことをさせられる •
属人化を回避できる
浮いた時間で生産的な開発が出来る!
自動化のすゝめ どのようにして自動化するのか 1. 設計 2. 浸透 3. 自動化
自動化のすゝめ 設計 • ステークホルダーを把握する • 誰が、いつ、何を、すれば良いのかを設計する • 担当範囲を明確化する
自動化のすゝめ 浸透 • ドキュメントを作成する • トップダウンで浸透させる • 基本的にフローに従っていないものは断る
自動化出来る部分を見極める • 人の判断が必要なものは、自動化しない • トリガーを決める 自動化のすゝめ 自動化
自動化のすゝめ 例: デプロイを自動化したい! 1. デプロイフローの設計 2. デプロイフローの浸透 3. デプロイの自動化
自動化のすゝめ 例: メディカル事業部のデプロイフロー 1. 責任者がリリース内容を決定 2. Githubのリリースタグを切る 3. CircleCIがビルドする 4.
CircleCIからデプロイコマンドを実行 5. 結果がSlackに通知される
自動化のすゝめ 例: CircleCIとAmazon SSMを使った自動デプロイ
今日お話すること 1. 自動化のすゝめ 2. ユースフルなサーバ構成を作る方法 3. サービスを継続的に動作させるには ベンチャー企業のインフラを運用して学んだ99のこと
ユースフルなサーバ構成を作る方法
ユースフルなサーバ構成を作る方法 ユースフルなサーバ構成とは 1. 安全に変更できる 2. 再現性がある 3. 一覧性のある
ユースフルなサーバ構成を作る方法 安全に変更できるサーバ構成 ユースケース • php extensionをインストールしたい • リバースプロキシの向き先を変更したい • 静的ファイルは圧縮して配信するようにしたい
ユースフルなサーバ構成を作る方法 再現性のあるサーバ構成 ユースケース • テスト環境を作って欲しい • スケールアウトしなければならない • 事故って開発環境がクラッシュ...
ユースフルなサーバ構成を作る方法 一覧性のあるサーバ構成 ユースケース • サーバに何がインストールされているか知りたい • PHPのバージョンが知りたい • Nginxの設定がみたい
ユースフルなサーバ構成を作るには?
ユースフルなサーバ構成を作るには? マニュアルを作ろう!!
ユースフルなサーバ構成を作るには? マニュアルを書こう!!!
ユースフルなサーバ構成を作るには? 構成管理ツールを使おう!!
ユースフルなサーバ構成を作る方法 構成管理ツールを使おう!! • サーバ構成をコード化 • コードに従ってサーバを自動で構築
ユースフルなサーバ構成を作る方法 メディカル事業部では
ユースフルなサーバ構成を作る方法 Ansibleとは • Redhat製のオープンソースの構成管理ツール • エージェントレス • YAMLで記述 • モジュール
• 冪等性
ユースフルなサーバ構成を作る方法 Ansibleを用いたサーバ構成変更フロー 1. Ansible設定リポジトリをclone 2. 変更してPRを出す 3. Review & Merge
4. Ansibleを実行してサーバ構成を変更 ※ サーバ構成変更時には、必ずAnsibleを経由する!
今日お話すること 1. 自動化のすゝめ 2. ユースフルなサーバ構成を作る方法 3. サービスを継続的に動作させるには ベンチャー企業のインフラを運用して学んだ99のこと
サービスを継続的に動作させるには
サービスを継続的に動作させるには 冗長化することで、障害に備えよう! • 障害が発生しても、サービス全体止めない冗長構成 • ダウンタイムなしでスケール可能な構造 • 障害の原因を特定出来るように準備しておく
サービスを継続的に動作させるには 障害が発生しても、サービス全体を止めない冗長構成 ユースケース • データセンターが障害でダウン • アクセス急増によりサーバがダウン • 突然プロセスが暴走!?
サービスを継続的に動作させるには ダウンタイムなしでスケール可能な構造 ユースケース • DBのCPU使用率が100%に張り付く • 昼と夜でアクセス数が8倍違う
サービスを継続的に動作させるには 障害の原因を特定出来るように準備しておく ユースケース • 何が原因でサーバがダウンしたのか知りたい • 大量アクセスしたBotが誰か特定したい
サービスを継続的に動作させるには 冗長化することで、障害に備えよう! • 障害が発生しても、サービス全体を止めない冗長構成 • ダウンタイムなしでスケール可能な構造 • 障害の原因を特定出来るように準備しておく
サービスを継続的に動作させるには
サービスを継続的に動作させるには クラウドを活用しよう!
サービスを継続的に(簡単に)動作させるには クラウドを活用しよう!
サービスを継続的に動作させるには クラウドを活用しよう! • 簡単に冗長構成が構築可能 • 勝手にスケールするサービスが沢山ある • サーバログの収集などがパッケージ化されている
サービスを継続的に動作させるには メディカル事業部では
サービスを継続的に動作させるには AWSとは • クラウドインフラ市場でシェアNo.1 • 100以上の多彩なサービスを提供 • 150万以上のユーザにつかわれているクラウドベンダー
サービスを継続的に動作させるには 例: ALBを使ったWebサーバの冗長構成
サービスを継続的に動作させるには 例: リレーショナルデータベースの場合 • 書き込みはスケールアウトは不可能 ◦ 整合性を取るために一台のマスターサーバ上だけ書き込み可能 • フェイルオーバー可能な仕組みを作る ◦
マスターに変更を加える時はスレーブをマスターに昇格させる • 読み込み専用DBを用意する ◦ 読み込みには整合性がないのでスケールアウト可能
サービスを継続的に動作させるには 例: リレーショナルデータベース on AWS RDS • 書き込みはスケールアウトは不可能 ◦ 整合性を取るために一台のマスターサーバ上だけ書き込み可能
• フェイルオーバー可能な仕組みを作る ◦ 勝手にやってくれる • 読み込み専用DBを用意する ◦ GUIで簡単に作成可能
まとめ
まとめ 1. 自動化のすゝめ a. 段階的に進めよう 2. ユースフルなサーバ構成を作る方法 a. 構成管理ツールを使おう 3.
サービスを継続的に(簡単に)動作させるには a. クラウドを活用しよう ベンチャー企業のインフラを運用して学んだ99のこと
感想 • インフラは学びが多い楽しい領域 • 新卒2年目でも頑張ればインフラ運用できる • まだまだ出来る事がある ベンチャー企業のインフラを運用して学んだ99のこと
インフラの挑戦 今後取り組みたい技術的挑戦 1. Blue/Green Deployment 2. Auto Scaling 3. テスト環境を必要な時だけ立てる仕組み
4. AWSアカウントの整理
さいごに
さいごに 次回! 4. アプリケーションエンジニアを巻き込む方法 5. 外部サービスに頼ろう 6. 監視・アラート・対策 …