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.1k
ベンチャー企業のインフラを運用して学んだ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
790
ログラスを支える設計標準について / loglass-design-standards
urmot
12
2.7k
ログラスを支える技術的投資の仕組み / loglass-technical-investment
urmot
10
5.7k
実践!CloudFormation Best Practice ~CloudFormationで始める組織改革~
urmot
2
3.2k
CircleCIを導入した話
urmot
0
68
SPA on AWS
urmot
0
180
実践!CloudFormation Best Practice
urmot
0
180
RDBのログを取る時にDMSを使うという選択肢
urmot
0
98
Other Decks in Technology
See All in Technology
Alignment and Autonomy in Cybozu - 300人の開発組織でアラインメントと自律性を両立させるアジャイルな組織運営 / RSGT2025
ama_ch
1
2.4k
TSのコードをRustで書き直した話
askua
2
170
自社 200 記事を元に整理した読みやすいテックブログを書くための Tips 集
masakihirose
2
330
Formal Development of Operating Systems in Rust
riru
1
420
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
170
KMP with Crashlytics
sansantech
PRO
0
240
東京Ruby会議12 Ruby と Rust と私 / Tokyo RubyKaigi 12 Ruby, Rust and me
eagletmt
3
870
comilioとCloudflare、そして未来へと向けて
oliver_diary
6
450
0→1事業こそPMは営業すべし / pmconf #落選お披露目 / PM should do sales in zero to one
roki_n_
PRO
1
1.5k
2024年活動報告会(人材育成推進WG・ビジネスサブWG) / 20250114-OIDF-J-EduWG-BizSWG
oidfj
0
230
2025年のARグラスの潮流
kotauchisunsun
0
800
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Code Reviewing Like a Champion
maltzj
521
39k
Making the Leap to Tech Lead
cromwellryan
133
9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
How to Ace a Technical Interview
jacobian
276
23k
Side Projects
sachag
452
42k
How STYLIGHT went responsive
nonsquared
96
5.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
500
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
Scaling GitHub
holman
459
140k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
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. 監視・アラート・対策 …