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
3
23
知らないサーバ(修正版)
ryuichi1208
July 01, 2019
Tweet
Share
More Decks by ryuichi1208
See All by ryuichi1208
会話で作る信頼性
ryuichi1208
0
130
シグナル(Unix)と仲良くなる
ryuichi1208
1
17
AI前提のサービス運用について再考する
ryuichi1208
6
1.4k
A Shallow Dive into the World of TCP
ryuichi1208
1
630
入門リトライ
ryuichi1208
20
7.9k
超入門SRE 2025
ryuichi1208
4
1.5k
Goで作って学ぶWebSocket
ryuichi1208
5
4k
コード化されていない稼働中のサーバを移設_再構築する技術
ryuichi1208
20
15k
AI前提のサービス運用ってなんだろう?
ryuichi1208
9
1.9k
Other Decks in Technology
See All in Technology
20260204_Midosuji_Tech
takuyay0ne
1
160
プロポーザルに込める段取り八分
shoheimitani
1
660
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
260
配列に見る bash と zsh の違い
kazzpapa3
3
170
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
4
400
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.4k
Tebiki Engineering Team Deck
tebiki
0
24k
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
110
Context Engineeringの取り組み
nutslove
0
380
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
330
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
150
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
77
Faster Mobile Websites
deanohume
310
31k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
150
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
950
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
The Language of Interfaces
destraynor
162
26k
Tell your own story through comics
letsgokoyo
1
810
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
A Tale of Four Properties
chriscoyier
162
24k
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は偉大 • スクリプト言語で書かれていたのが幸運だった • 手動構築で速いのはその時だけ
あなたのネットワークにも知らないサー バーいるかもしれませんよ
ご清聴ありがとうございました!