山田 大久
インフラグループ所属
エンジニアリング本部技術統括部
KLab株式会社
KLabのインフラエンジニア
〜 こんな感じで働いてます 〜
2
自己紹介
3
自己紹介
山田 大久(おおひさ)
● 所属
○ KLab株式会社 福岡事業所 (2006年入社)
○ エンジニアリング本部 技術統括部 インフラグループ
● 業務
○ DSASという物理サーバを用いたインフラシステムの担当
○ インフラの前は、iアプリのクライアント/サーバサイドをやってました
● 家族
○ 妻、子供(小学校低学年・男)一人
4
自己紹介
山田 大久(おおひさ)
● 趣味
○ フリークライミング
■ 主にボルダリング
■ リードはご無沙汰
■ 外岩もご無沙汰
5
今日話すこと
6
今日話すこと
KLabのインフラエンジニアがどのように働いているのかを、
新型コロナウイルス禍の状況も交えて、お話しします
● 新型コロナウイルス禍での勤務状況など
○ 在宅勤務の環境 / 在宅勤務の状況
● KLabのインフラエンジニアのお仕事
○ 平常時
○ データセンター作業
○ 障害対応・トラブルシュート
7
新型コロナウイルス禍での
勤務状況など
8
在宅勤務の環境
● ノートPC(MBP) & モニタ(24インチ)
○ 会社から貸与
● 個人契約の回線(Nuro光)でWiFi接続
○ 特に困ったことなどはなし
● 部屋
○ 机と椅子はあるが、仕事専用ではない
○ 家人の出入り・生活音は普通にある
9
在宅勤務の状況
2020年2月中旬〜 新型コロナウイルス禍により、在宅勤務推奨となる
(特別な事情がある場合を除く)
2020年3月〜11月 (許可を得て)週1〜2回程度でオフィスに出社
(オフィスには一人か二人程度)
2020年12月〜2022年4月 オフィスへの出社はほとんどなし
(新型コロナウイルス感染状況の悪化など)
● 在宅勤務がいつまで継続されるかは、現時点では未定です
※ 2022年4月15日現在の状況です
10
在宅勤務の所感
Good Not Good
時間の融通が効く 集中しにくい
通勤がなくなった 体を動かす機会が減った
(拠点や部署を超えて)
MTGに参加しやすくなった
業務以外のコミュニケーションが減った
● 個人的には、週2回出社とかぐらいがいいかもと思っているけれど、
○ 現在はほぼ出社していないので、リハビリが必要になりそう・・・
○ ほかの人がほぼ出社していないとなると・・・
11
本題
12
インフラグループ
● オンプレミス方面
○ DSAS担当チーム(主に福岡メンバー)
● パブリッククラウド方面
○ プロジェクト支援チーム(主に東京・大阪メンバー)
■ クラウド利用プロジェクトのインフラ担当
○ 横断支援チーム(主に東京・大阪メンバー)
■ クラウドの利用促進をプロジェクト横断で支援
今回は、私 = DSAS担当チームのお話
13
DSASとは
KLabのサーバインフラシステム
● データセンターにて物理サーバを用いて構築
● Linux・OSSベースで構成
● 同一システム上にて複数タイトルを運用
● 2009年から運用開始
14
インフラエンジニアの担当領域
現在
● インフラ設計 / 構築 / 運用 / 保守
● サーバ / ネットワーク
● OS / ミドルウェア / ライブラリ管理
これから
● コンテナ活用が進むことで、Webアプリケーションエン
ジニアと重なる領域が大きくなる
● 担当領域や関わり方を模索しているところ
15
平常時
16
平常時のスケジュール
● 勉強
○ 輪講 / もくもくなど
● チーム朝会
○ 長い時は、1時間程度
● 散歩
○ 子供と週2回程度
※ シフト制ではなく、基本的に夜
間勤務はなし
17
平常時のスケジュール
そのほか、MTGなど
● インフラグループ週次MTG
○ 終了後に雑談タイムあり
● チームの週次MTG
○ タスク管理など
● チームメンバーとの週次面談
○ 1 on 1
○ 雑談多め
18
平常時のお仕事
● アラート通知の確認と対応
○ Slack・メールの通知を確認し、必要に応じて対応
● リソースモニタの確認と対応
○ おかしな挙動などがないかを確認し、必要に応じて対応
● ハードウェア故障対応
○ 故障パーツ・筐体交換、ベンダ送付など
19
平常時のお仕事
● 依頼作業の対応
○ プロジェクトのトラブル・相談などへの対応も
● キャパシティ管理・機材リプレース
○ サーバリソース確保
○ サーバ・スイッチの選定・検証
● 負荷試験・性能改善
○ 新規タイトルリリース・新機能追加時
20
平常時のお仕事
● Linux・OSSの調査・検証
○ 例: カーネルモジュールのパラメータ変更時の挙動検証
■ IPVS, bonding
● さまざまな課題への取り組み
○ 上述の仕事などから浮かび上がってきた課題の解消
○ 現行システムのブラッシュアップ
○ 新しいシステムの検討
21
データセンター作業
22
データセンター
IDCフロンティア 北九州データセンター
https://www.idcf.jp/datacenter/location/asianfrontier.html
23
データセンター
実際に利用しているラック
24
データセンター
ラック裏側の配線も少々
25
データセンター作業時のスケジュール
現地作業時は、こんな感じ
● 移動は、自宅から2時間弱
○ 直行直帰
● お昼は、適当に
○ 駅前のちゃんぽん
○ 休憩室でカップ麺
26
データセンター作業
● 現地作業例
○ サーバ・スイッチのラッキング・ケーブリング
○ 故障パーツなどの交換
○ 箱出し・検品・在庫管理
● サイバー感(?)に溢れた非日常的な空間
○ 創意工夫が存分に活かせて、楽しくやりがいあり
■ ラッキング・ケーブリングなど(沼の要素あり)
○ 肉体的にはつらいこともあるかも(個人差あり)
■ 暑い・寒い・乾燥・うるさい・重い・一人は危険
27
データセンター作業
現地作業の頻度
● 現在は、数ヶ月に1回程度
○ 昨年までは、月1、2回程度
● 次のような理由で、現地作業をなるべく減らすように
○ 新型コロナウイルス禍
○ 業務効率化
28
データセンター作業
現地作業を減らすための工夫
● 現地作業が必須だった作業をどうにかしてなくす
○ BIOS設定ツールの導入
○ サーバ出荷時に初期設定をベンダーに依頼
● データセンターにリモート依頼可能な作業の拡充
○ オンサイト運用アウトソーシングサービス
■ https://www.idcf.jp/datacenter/managed/ope-outsource.html
29
障害対応
トラブルシュート
30
障害対応・トラブルシュート
障害対応は、ストレスフル・・・
● こちらの都合に合わせてはくれない
○ 休日だろうが夜間だろうが、お構いなし
● 可及的速やかに復旧させる必要がある
○ 原因究明だけでは終わらず、復旧まで
● 自分のやらかしが原因だったりすることも
○ 時限式の罠とかを仕掛けてたりすると、最悪・・・
障害を起こさないことが一番ではあるけれど、、、
31
障害対応・トラブルシュート
障害対応は、とても面白くやりがいのあることでもある
● インフラエンジニアがもっとも輝く瞬間の一つ
○ 原因を特定できた・復旧できたときの達成感
○ 経験が活かせた時の充足感
● 学びが多く、経験をたくさん積める
○ 障害時ほど、頭をフル回転させる機会はあまりない
○ 障害時だけではなく、防止策・対策を考えたり
どれだけ備えても障害は発生するので、気楽に楽しむのが吉
32
障害対応・トラブルシュート例
実際にあった障害を少しだけ紹介
● 性能の良い新サーバマシンを投入したら、接続しにくい
状態に・・・
○ CPU増に合わせて1台あたりのアクセス増 → FD不足
● スイッチ障害でシステムが全停止したり・・・
○ ポート故障 → ブロードキャストストーム発生
● ロードバランサの再起動が連続で発生したり・・・
33
障害対応・トラブルシュート例
ロードバランサ再起動 〜 発生 〜
● ロードバランサの再起動が発生してアラート発報
○ スタンバイサーバがアクティブに昇格
○ サービスは継続
■ 緊急性はそれほどでもなさそう
■ 機材故障や稀にある謎再起動とか
と思いきや・・・
34
障害対応・トラブルシュート例
ロードバランサ再起動 〜 再発 〜
● アクティブ昇格したサーバの再起動が発生・・・
○ 2台とも落ちるなんて、どういうこと??
○ 再起動したサーバは、問題なく起動
その後も、再起動が繰り返し発生・・・
35
障害対応・トラブルシュート例
ロードバランサ再起動 〜 調査 〜
● 調査開始(調査開始時には一旦終熄)
○ アクティブサーバのみ再起動が発生
○ ログ調査
■ ロードバランサ
■ oomkiller, ipvs no memory available
■ Webサーバ
■ TCP: Possible SYN flooding
36
障害対応・トラブルシュート例
ロードバランサ再起動 〜 調査 〜
● SYNアタックかもしれない??
○ はっきりしないので、パケットキャプチャ欲しい・・・
とかなんとか、言っていたら・・・
37
障害対応・トラブルシュート例
ロードバランサ再起動 〜 再発 〜
● (幸か不幸か?)再アタックを受けて再起動が再発・・・
○ 早速、パケットダンプ仕掛ける
○ 特定タイトルへのSYNアタックによるDDoSと判明
■ tcp window size 0
■ オプションなし
■ 送信元IPは、バラバラ
一旦は終熄したけど、どうにかしないと・・・
38
障害対応・トラブルシュート例
ロードバランサ再起動 〜 緊急対策 〜
● 緊急避難的な対策が必要
○ CloudFrontを挟む
■ クラウドチームからの提案
■ ほかのタイトルでの実績あり
○ iptablesでカウント&フィルタ
■ 先述の特徴を持ったSYNパケットのみを対象
これで、終わりでもいいけれども・・・
39
障害対応・トラブルシュート例
ロードバランサ再起動 〜 恒久対策 〜
● 再現環境による検証
● 恒久対策
○ OS: 32bit → 64bit
■ LowMemの制限解除
○ IPVS drop_entry 導入
● 再検証
○ 64bit化で耐性UP
○ drop_entryでさらに耐性UP
40
最後に
41
最後に
現在、DSASに代わるオンプレ環境での新しいサーバインフ
ラを検討中です
オンプレ環境のインフラ運用は、自分たちで面倒を見なけれ
ばいけないところも多く、大変なこともたくさんあります
ですが、裏を返せば(?)、自分たちで好きにできる余地も多
く、面白いことがたくさん転がっているとも言え、とてもや
りがいのあるお仕事だと思っています
42
最後に
ご静聴ありがとうございました

KLabのインフラエンジニア 〜 こんな感じで働いてます 〜