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.3k
ベンチャー企業のインフラを運用して学んだ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
1.1k
ログラスを支える設計標準について / loglass-design-standards
urmot
12
2.9k
ログラスを支える技術的投資の仕組み / loglass-technical-investment
urmot
10
6k
実践!CloudFormation Best Practice ~CloudFormationで始める組織改革~
urmot
2
3.4k
CircleCIを導入した話
urmot
0
87
SPA on AWS
urmot
0
200
実践!CloudFormation Best Practice
urmot
0
230
RDBのログを取る時にDMSを使うという選択肢
urmot
0
140
Other Decks in Technology
See All in Technology
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
4
350
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
220
from Sakichi Toyoda to Agile
kawaguti
PRO
1
100
OpenAI gpt-oss ファインチューニング入門
kmotohas
2
1.1k
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
170
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
150
データエンジニアがこの先生きのこるには...?
10xinc
0
460
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
140
生成AIとM5Stack / M5 Japan Tour 2025 Autumn 東京
you
PRO
0
240
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
2
2.1k
動画データのポテンシャルを引き出す! Databricks と AI活用への奮闘記(現在進行形)
databricksjapan
0
160
Adapty_東京AI祭ハッカソン2025ピッチスライド
shinoyamada
0
190
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
75
5k
Automating Front-end Workflow
addyosmani
1371
200k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Writing Fast Ruby
sferik
629
62k
Optimizing for Happiness
mojombo
379
70k
Designing Experiences People Love
moore
142
24k
GraphQLとの向き合い方2022年版
quramy
49
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
Producing Creativity
orderedlist
PRO
347
40k
GitHub's CSS Performance
jonrohan
1032
460k
Six Lessons from altMBA
skipperchong
28
4k
Git: the NoSQL Database
bkeepers
PRO
431
66k
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. 監視・アラート・対策 …