BeeX Advent Calendar 2023 10日目 の記事です
ご報告
12/8(金) JSUG Conference 2023 に行ってきました!(初参加)
弊社ブースに足を運んでくださった方、セッション事例を聞いてくださった方ありがとうございました。
午後ブースに立ち、会社紹介やパンフレット配布を担当しておりましたが、笑顔で受け取ってくれたり熱心に話を聞いてくれた方が多かったのがとても印象的です。いろいろな方とお話をして「どんなことに悩んでいるのか?」、「何が課題になっているのか」など聞けて私自身とても勉強になりました。
弊社の経営理念として、「With Customer」を掲げており、お客様と共に悩みや課題を解決していけるように努力を続けておりますので、もしご縁がございましたら弊社をどうぞよろしくお願いいたします。
本題
SAP環境構築Prjに携わっており、Azure環境でのインフラ担当として日々活動しております。
環境構築自体は落ち着いてきましたが、構築後の仮想マシンの非機能要件を設計/実装が終わり、一時的な設定変更をしているところで、起きてしまった出来事を共有できればと思います!
とある日に仕事依頼
お客様へ環境をリリースする前の総合テストが始まるため、以下のように稼働スケジュールを変更してほしいとの依頼をいただきました。
※ テスト初日での依頼で、急いで設定してもらえると嬉しいとのことで優先度が高い仕事の依頼でした。
変更前の設定 | 変更後の設定 | |
---|---|---|
起動 | 9:00 | 7:30 |
停止 | 22:00 | 23:00 |
仮想マシンの起動停止は、自動化しており『Start/Stop VMs v2』を利用しています。
私が対応したこと
総合テスト期間中稼働スケジュール変更だったため、設定していた起動ジョブと停止ジョブを「無効化」して臨時ジョブを作成して有効化する対応をとることにしました。
事件発生
設定作業は日中帯に実施しており、おやつの時間が過ぎた16:00くらいにチャットで連絡があり、「サーバが停止してしまったため調査と起動をお願いします」との連絡がありました。
Azure側の障害で仮想マシンが落ちたのかしら?とのんきなことを思いながらアクティビティログを確認すると臨時で作成した停止ジョブが動いていることが判明しました。
どんな設定をしたの?
以下設定でジョブを保存して有効化をしました。
『開始時刻』の設定値が「2023-12-10T22:59:00」と未来日時に設定したので、ジョブが有効化されて即時実行されたとしても、動かないだろうと思っておりましたがどうもそれが違うみたいです・・・
新規でジョブを作成した際の最初の有効化は『開始時間』が未来日時であっても動いてしまうということが分かりました。
今まで設定していたスケジュールの時間変更であれば、開始時間を未来日時にしておけば実行はされませんでしたが、初回でジョブを作成したことによって発生してしまった事件になります。。
まとめ
以下、今回の事故により分かったことです。
・ジョブ作成時の初回実行は、どんな条件であれ即時実行される
・一度作成済みのジョブを無効化 -> 有効化した際は即時実行はされないが、開始時刻が未来時刻でないといけない(過去時刻だと即時時刻されちゃいます)
起動している仮想マシンに対して、起動ジョブを作成/変更しているのであれば状態遷移はないですが、停止ジョブを変更する際は上記意識したうえで変更が必要になります。
最後に
稼働しているサーバを停止する事故は新人の時以来経験したことがなく、
今回久しぶりだったため、とても心臓に悪かったです。
※ お客様へ環境をリリースした後じゃなくてよかった・・・
Start/Stop VMs v2で仮想マシンの自動起動停止を制御している方も多いと思いますが、事故が起きないように今一度仕様を再度理解してもらえるようなブログになっていると幸いです。