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
17
知らないサーバ(修正版)
ryuichi1208
July 01, 2019
Tweet
Share
More Decks by ryuichi1208
See All by ryuichi1208
超入門SRE 2025
ryuichi1208
3
1.1k
Goで作って学ぶWebSocket
ryuichi1208
3
2.8k
コード化されていない稼働中のサーバを移設_再構築する技術
ryuichi1208
20
9k
AI前提のサービス運用ってなんだろう?
ryuichi1208
9
1.7k
入門 バックアップ
ryuichi1208
22
10k
効果的なオンコール対応と障害対応
ryuichi1208
9
3.7k
コロナ禍とその後:地方エンジニアが学んだキャリア戦略の変遷
ryuichi1208
6
420
入門オンコール対応
ryuichi1208
10
3.6k
MySQLのOOMと戦った話
ryuichi1208
7
3.1k
Other Decks in Technology
See All in Technology
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
100
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
230
設計を積み重ねてシステムを刷新する
sansantech
PRO
0
160
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
350
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
170
組織におけるCCoEの役割とAWS活用事例
nrinetcom
PRO
4
130
手を動かしてレベルアップしよう!
maruto
0
210
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
640
Ruby on Railsで持続可能な開発を行うために取り組んでいること
am1157154
3
140
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
290
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
2.6k
Featured
See All Featured
Designing for Performance
lara
604
68k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
We Have a Design System, Now What?
morganepeng
51
7.4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
The Invisible Side of Design
smashingmag
299
50k
A Philosophy of Restraint
colly
203
16k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
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は偉大 • スクリプト言語で書かれていたのが幸運だった • 手動構築で速いのはその時だけ
あなたのネットワークにも知らないサー バーいるかもしれませんよ
ご清聴ありがとうございました!