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
860
ログラスを支える設計標準について / 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
100
Other Decks in Technology
See All in Technology
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
24
7.1k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
2.1k
ホワイトボードチャレンジ 説明&実行資料
ichimichi
0
130
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1.3k
The Future of SEO: The Impact of AI on Search
badams
0
200
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
130
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
420
次世代KYC活動報告 / 20250219-BizDay17-KYC-nextgen
oidfj
0
260
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
150
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
16
6.8k
ビジネスモデリング道場 目的と背景
masuda220
PRO
9
520
人はなぜISUCONに夢中になるのか
kakehashi
PRO
6
1.7k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
51
7.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Facilitating Awesome Meetings
lara
52
6.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Building Adaptive Systems
keathley
40
2.4k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Git: the NoSQL Database
bkeepers
PRO
427
64k
A designer walks into a library…
pauljervisheath
205
24k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
How STYLIGHT went responsive
nonsquared
98
5.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. 監視・アラート・対策 …