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
知らないサーバ(修正版)
Search
ryuichi1208
July 01, 2019
Technology
33
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
知らないサーバ(修正版)
ryuichi1208
July 01, 2019
More Decks by ryuichi1208
See All by ryuichi1208
AIでサービス運用はどう変わるのか
ryuichi1208
0
170
入門 再発防止策
ryuichi1208
17
7.5k
金曜日デプロイ、するかしないか.pdf
ryuichi1208
1
78
会話で作る信頼性
ryuichi1208
0
190
シグナル(Unix)と仲良くなる
ryuichi1208
1
54
AI前提のサービス運用について再考する
ryuichi1208
6
1.5k
A Shallow Dive into the World of TCP
ryuichi1208
1
680
入門リトライ
ryuichi1208
20
8.4k
超入門SRE 2025
ryuichi1208
4
1.6k
Other Decks in Technology
See All in Technology
reFACToring
moznion
1
1.1k
[MIRU26] Open-Vocabulary Intention-Guided Object Detection in Diverse Scenes
keio_smilab
PRO
0
130
新しい SLO が良い感じにハマっている話
z63d
4
2k
論語・武士道・産業革命から見る かわるもの、かわらないもの
ichimichi
8
2.2k
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.6k
ガバメントクラウドでのランサムウェア対策
techniczna
1
660
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
8
7.3k
SnowflakeCoCoでデータエンジニアリング!
foursue
0
140
Atlassian Cloudサポート業務でのAIエージェント活用事例
smt7174
0
330
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
120
[MIRU26] To What Extent Does MLLM-as-a-Judge Exhibit Cross-Model Preference Bias?
keio_smilab
PRO
0
200
脱Jenkins、インターン生が挑んだCIツールGitHubActions移行
mixi_engineers
PRO
1
320
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
230
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
330
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
200
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
470
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Are puppies a ranking factor?
jonoalderson
1
3.7k
Ruling the World: When Life Gets Gamed
codingconduct
0
290
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Unsuck your backbone
ammeep
672
58k
Transcript
知らないサーバー
過去あったちょっと怖い話
当時のバックグラウンド • とあるWebサービスのインフラエンジニアをやっていた時の話 • サービス自体は20年以上続いている歴史的なサービス • ジョインした時点でインフラの前任者は退職済み • プライベートクラウド上のVMの運用者 •
VMより下はプラットフォームチームという別のところが管理 • 100近いVMをAnsibleで構築/管理
とある日
サーバいっぱいあって楽しい〜 障害対応楽しい〜
新プラットフォームを作ったので移設してくださ い! プラットフォーム チームの方
新プラットフォームを作ったので移設してくださ い! わかりました! プラットフォーム チームの方
• 新プラットフォームへのマイグレーション作業が発生した • 管理しているVMの一覧はAnsibleにあったのでそれをリストアップして対応 • 1年くらいかけて全部の移設が完了した • CentOS5/6とかもあったので当時最新のCentOS7へ載せ替えしたりマネージド サービスに移行したり 移設
全部移行完了しました! ありがとうございます!!
めでたしめでたし
1週間ぐらい後
そっちのチーム管理のサーバーがまだ古いと ころで動いてるので移設をお願いします
そっちのチーム管理のサーバーがまだ古いと ころで動いてるので移設をお願いします 先週全部終わっています!
そっちのチーム管理のサーバーがまだ古いと ころで動いてるので移設をお願いします 先週全部終わっています! track001っていうサーバーがあるみたいで...
そのサーバーってうちの管理ですかね...?
そのサーバーってうちの管理ですかね...? 管理者はAさん(退職済み)になってますね
そのサーバーってうちの管理ですかね...? 管理者はAさん(退職済み)になってますね 調べてみます...!!
調べてみると • Ansibleのサーバー一覧にはなかった • サーバー名でGitHubを検索しても出てこなかった • それっぽいリポジトリもGitHubになかった • Slackで調べても何も出てこなかった •
とりあえずsshしたら接続ができたので色々見てみることに
調べてみると • uptime -> 2000日 • http/80をListenしている何らかのプロセスはいそうだった • 負荷はほぼなかったので使われていない気配は感じた •
入社して2~3年くらい経って1回も障害も問い合わせもないサーバなので潰しちゃえ ば良いかって思っていた
誰も使ってないだろうし消そう
誰も使ってないだろうし消そう /var/logとかでもみてみるか
誰も使ってないだろうし消そう /var/logとかでもみてみるか /var/log/apacheにアクセスログが結構な流 量で流れているだと...!!!!!!
誰か使ってそう...
さらに調査 • アクセス先のリクエストパスをみると監視っぽいものではなかった • とりあえずUAを出すようにしてみたら最近のブラウザっぽいものだった • Apacheの設定を追っていくとPerlで書かれたアプリケーションにリクエストを流して いた • Ansibleのコードもドキュメントもないけど実際に使われている(かもしれない)サー
バーが存在した
知らないサーバー
知らないサーバーがいました...
知らないサーバーがいました... 移設するか消すかの判断をお願いします
知らないサーバーがいました... 移設するか消すかの判断をお願いします 確認します!
さらに調査 • 何に使われているのかわからないのでアプリケーションを読む ◦ psコマンド打ってlsofしてアプリケーションのソースを特定 ◦ URL Redirectorでアクセスカウントするアプリケーション ◦ 管理画面も存在することがコードを読んでいてわかった
さらに調査 • 誰が使っているかを調べる ◦ Slackでhereで探してみたが誰も知らない ◦ 管理画面はapacheでLANのアクセスに絞られていたので IPからチームを特定 ◦ Slackを普段使わない営業の方がメインで使っていることが判明
◦ 話たら使っているしないと困る
移設しよう...
課題 • 構築方法が不明のサーバー • OSはCentOS5でEOL済み • 開発フローが不明のアプリケーション • ミドルウェアは何が入ってるのかわからない
整備 • CentOS7にする ◦ apache 1系がそのままだとビルドできなかったので apacheのソースを修正してビルド • 構築方法は不明だったが比較的シンプルなWeb Appだったのでlsとかpsとか見つ
つ設定ファイルを読んで再現させることに成功 • アプリはGitHubへ持っていく • CircleCIでデプロイ可能な状態にする ◦ DBのdumpとかがローカルにあってサイズが ...
完了!
ではなかった
調査 • いわゆるモノリス的なサーバでリバプロ/アプリ/MySQLが動いていた • 動いてるサーバでnetstatをすると7003番portでWebアプリがコネクションを貼って いた • 旧プラットフォームのマネージドGearmanが必要だった ◦ 管理画面の別の機能として存在したらしくコードリーディングで読み切れていなかった
... ◦ 同一のVMにGearmanを動かすようにして完了することができた
学び
学び • IaCは偉大 • スクリプト言語で書かれていたのが幸運だった • 手動構築で速いのはその時だけ
あなたのネットワークにも知らないサー バーいるかもしれませんよ
ご清聴ありがとうございました!