Slide 1

Slide 1 text

わたしがインシデント対応のときに意識していることたち in PHPカンファレンス小田原2024 @yamato_sorariku #phpcon_odawara #kama 1

Slide 2

Slide 2 text

自己紹介 @yamato_sorariku / 足利 大和 株式会社 PR TIMES バックエンドエンジニア PHPerです 必要なこと、なんでもやります 推しのマネージドサービス Google Cloud - Cloud Run 猫が好き コーヒーも好き #phpcon_odawara #kama 2

Slide 3

Slide 3 text

この発表のターゲット インシデント対応をまだしたことないという方 インシデント対応に挑戦してみたいけど、どうすればいいかわからない方 #phpcon_odawara #kama 3

Slide 4

Slide 4 text

インシデントとは? #phpcon_odawara #kama 4

Slide 5

Slide 5 text

インシデントとは? 利用者がサービスを正常に利用できない状況のこと。 #phpcon_odawara #kama 5

Slide 6

Slide 6 text

インシデント対応とは #phpcon_odawara #kama 6

Slide 7

Slide 7 text

インシデント対応とは サービスが正常に利用できない状況を回復させ、そして再発防止を図ること #phpcon_odawara #kama 7

Slide 8

Slide 8 text

インシデント対応を経験すると、どうなる? 開発者として、システムに対する理解が深まる 半強制的に仕様を理解し、復旧対応や再発防止策を考えるから 適切な対応をすることで関係する社内の人からの信頼を獲得できる ( (起きないことが一番ではあるけども) ) だから積極的に参戦してほしい! #phpcon_odawara #kama 8

Slide 9

Slide 9 text

インシデント対応の流れ #phpcon_odawara #kama 9

Slide 10

Slide 10 text

インシデント対応の流れ 事象発生 事象検知 調査・分析 復旧対応 原因分析 再発防止 #phpcon_odawara #kama 10

Slide 11

Slide 11 text

インシデント対応の流れ 事象発生 事象検知 調査・分析 復旧対応 原因分析 再発防止 #phpcon_odawara #kama 11

Slide 12

Slide 12 text

私がインシデント対応において大切にしている点 #phpcon_odawara #kama 12

Slide 13

Slide 13 text

私がインシデント対応において大切にしている点 とにかくこまめに情報共有する(調査・分析) とにかくログを確認する(調査・分析) とにかく使えるツールはどんどん使う(復旧対応) #phpcon_odawara #kama 13

Slide 14

Slide 14 text

とにかくこまめに情報共有する #phpcon_odawara #kama 14

Slide 15

Slide 15 text

とにかくこまめに情報共有する インシデント対応のSlackスレッドなどを立てる 関係者に情報が伝わるようメンションして巻き込む そして、わかったこと・気づいたこと・推測などをどんどん書いていく 途中から参加した人が状況を追うことができる 見た人の気付きで問題解決に向かうこともある #phpcon_odawara #kama 15

Slide 16

Slide 16 text

(※ Google Meetで会話しながらの書き込みです、一人ぼっちじゃないよ) #phpcon_odawara #kama 16

Slide 17

Slide 17 text

とにかくログを確認する #phpcon_odawara #kama 17

Slide 18

Slide 18 text

とにかくログを確認する CloudWatchにあるログ New Relicにあるログ(転送してるログ) サーバ内においてあるログ アプリが出してるログ Apacheなどミドルウェアが出しているログ /var/log/message などシステムが出しているログ #phpcon_odawara #kama 18

Slide 19

Slide 19 text

とにかくログを確認する ログから「いまなにが起きているのか?」といった事実を把握する ※ 各種ツールでメトリクスのグラフを見ることができます  私はあくまでも気づくため、傾向を見るためのものと思ってます (CPUのグラフが跳ねてる!負荷が高い! -> 起こってることはわからん) #phpcon_odawara #kama 19

Slide 20

Slide 20 text

とにかくログを確認する インシデント対応でログを見る経験をすると このログじゃ足りない……! ログが出すぎてて全然わからん……! といった経験が自然と……。 #phpcon_odawara #kama 20

Slide 21

Slide 21 text

とにかくログを確認する あなたのPHPアプリ、ログはでてますか?あるいはログをだしてますか? https://speakerdeck.com/uzulla/are-you-writing-a-log-or-just-out-a-log #phpcon_odawara #kama 21

Slide 22

Slide 22 text

とにかく使えるツールはどんどん使う #phpcon_odawara #kama 22

Slide 23

Slide 23 text

Google Sheets 皆さん使ってますか? #phpcon_odawara #kama 23

Slide 24

Slide 24 text

わたしはテンプレートエンジンとしても活用してます インシデント対応のときに、実戦で #phpcon_odawara #kama 24

Slide 25

Slide 25 text

例えば レコード一つ一つに対応したUPDATE文が必要になったとき #phpcon_odawara #kama 25

Slide 26

Slide 26 text

これを手作りで用意するのはつらい。どっかでID書き間違えたら大事件 UPDATE t_xxx_table SET hoge1 = 'Y2qPNxKR8I', hoge2 = '41TWiFzMa3dHmP57pMwx7JTT4qHQVfn7FsPzN80g' WHERE id = 1; UPDATE t_xxx_table SET hoge1 = 'l88uegzNGc', hoge2 = 'wanROXIyFZQTJHAqPiFB5z0nMR9BSaqQfE1146P3' WHERE id = 2; UPDATE t_xxx_table SET hoge1 = 'DLrNQGwmSf', hoge2 = 'uWOB9one0FDFJXR0Bdqa9veqGHPR7Koz9EwoEyVN' WHERE id = 3; UPDATE t_xxx_table SET hoge1 = 'TRidePTjZw', hoge2 = '1rIwCuVj4p1uK6MTnpPJr56XOMWeF5JX7wMMrvdc' WHERE id = 4; UPDATE t_xxx_table SET hoge1 = 'PGoB1knDSR', hoge2 = 'q9PomkFxPRfxRbS794WMIcTmzCKDO1rAwffQQV4O' WHERE id = 5; #phpcon_odawara #kama 26

Slide 27

Slide 27 text

SUBSTITUTE関数 https://support.google.com/docs/answer/3094215?hl=ja #phpcon_odawara #kama 27

Slide 28

Slide 28 text

テンプレート #phpcon_odawara #kama 28

Slide 29

Slide 29 text

元データ #phpcon_odawara #kama 29

Slide 30

Slide 30 text

#phpcon_odawara #kama 30

Slide 31

Slide 31 text

SQL完成! -> レビューして実行し、データリカバリへ #phpcon_odawara #kama 31

Slide 32

Slide 32 text

まとめ #phpcon_odawara #kama 32

Slide 33

Slide 33 text

まとめ インシデント対応が怖いと感じるかもしれない でも、エンジニアとしてのスキルを向上させるために活きる場でもある 積極的な情報共有、確実な調査・原因分析を行い、安全に素早くサービスを復旧させる そのためにもツールとか普段から使って素振りしよう #phpcon_odawara #kama 33

Slide 34

Slide 34 text

インシデントはどうしても起きてしまう だからこそ、それを 早く・確実に・安全に対処しよう そして、学び場として自分たちの糧にしていこう! #phpcon_odawara #kama 34

Slide 35

Slide 35 text

ご清聴ありがとうございました #phpcon_odawara #kama 35