サーバーワークス Advent Calendar 2023 シリーズ 2、13日目のエントリー記事です。
こんにちは、マネージドサービス部の大城です。
私は運用畑に10年以上います。
普段、本番環境のAWSマネジメントコンソールを操作したりOS上にログインしコマンドを打ち込む業務をしています。
手順書に書けないような本番環境の作業時に気をつけていることを10個書きたいと思います。
- 不要なウィンドウを閉じる
- コマンドは手順書からコピペする
- コマンド実行前に環境を確認する
- whyを把握する
- レビューは間違っている前提で行う
- あえてスピードを落とす
- 作業前に認識合わせを行う
- 作業後にラップアップを行う
- 障害時は協力を求める
- エンドユーザーを意識する
- 最後に
不要なウィンドウを閉じる
諸説ありますが人間の脳は基本的にシングルコアだそうです。あれこれウィンドウを開いていると気が散ってスイッチングコストがかかります。
たまに大量のウィンドウを開いてあれこれ作業している超人もいますが、私は凡人なので、必要なウィンドウ以外は落とすようにしています。
私は本当に失敗できない作業のときはSlackも落として作業をするようにしています。
コマンドは手順書からコピペする
手動でコマンドを入力すると、たまにタイポしてしまうことがあります。そのため、基本的には手順書からコマンドをコピー&ペーストすることをお勧めします。
昔、電子データが作業PCに持ち込めず、紙の手順書を見てドキドキしながらコマンドを打ち込んで作業したことがあります。恐ろしくてもうあのような作業はしたくありません。
幸い現在だと手順書を開きながら作業できることがほとんどだと思います。
また、確認作業では手順書にある値をコピーし、Ctrl+Fで検索して文字列が正確か確認することをおすすめします。AWSアカウントIDの確認時に捗ります。
コマンド実行前に環境を確認する
私は元々オンプレミスで業務していましたが、クラウドが普及してからワンクリックやエンターキーの破壊力が非常に強くなったと感じます。
管理権限を持ったユーザーで作業していると、神の力を持った気分で作業できます。これは恐ろしいことで誤った環境で作業を行うと、大障害を引き起こす可能性があります。
AWSマネジメントコンソールでの操作はより慎重に行います。
- AWSアカウントIDは正しいか
- 作業で使うロールは適切か
また、作業が終了したら速やかにサインアウトします。セッションが残っていると、別の環境で作業を行ってしまう可能性があります。
whyを把握する
作業の背景を把握するようにします。
- 「xxさんに言われたからディスク拡張作業する」
- 「xx様に依頼されたからリストアする」
など、言われたからやるスタンスは極力避けたほうがよいです。なぜかというと、その作業指示自体が間違っている可能性があるからです。作業の目的を確認して納得した上で手を動かします。そうすることで予期せぬトラブルから回避できることがあります。
レビューは間違っている前提で行う
人は間違える生き物なので、基本的に間違っているという前提で手順書や環境のレビューやダブルチェックを行います。
パワーを使いますが、レビュー後にはお客様が使う本番環境に反映されてしまうので、万が一作業後に問題が発生した場合、レビューを行った担当者にも大きな責任があります。
最後の砦のような気持ちでレビューを行います。
あえてスピードを落とす
オペレーションミスは慣れてくると起こりやすくなると言われています。私もそのような経験をいくつもしてきました。
linux上でコマンドを「ダダダダダ」と打ち込んで最後にエンターキーを勢いよく「ターン!」と叩くのは気持ちがいいですが本番環境では避けるべきです。
慣れてきたときこそ、意図的にスピードを落として作業することが重要です。
作業前に認識合わせを行う
作業前に作業者と確認者2人で認識合わせを行います。以下の項目を確認します
- 作業の目的と背景
- 何時までに作業完了すればよいか
- 作業手順の共有と確認
- 事前と事後の連絡方法について
- 失敗時の対処方法
- 緊急時の連絡先の確認
事前の認識合わせにより、予期せぬ作業失敗を直前で回避することができます。
また、認識合わせによって準備不足が発覚した場合、リスケ可能な作業であれば、リスケを検討することも重要です。
作業後にラップアップを行う
作業後に作業者と確認者2人でラップアップを行います。以下を確認します
- 手順書を順番通りに全て実行したか
- 事後の連絡は完了しているか
特に深夜の作業では、通常よりも注意力が低下することがあります。早く終わって寝たい気持ちはありますが最後にラップアップを行いましょう
障害時は協力を求める
障害対応時は周りに助けを求めます。システムが停止するような大きな障害の場合、出来れば3人以上が良いです
- 時系列を整理する人
- 障害対応する人
- お客様に連絡する人
一人だけが対応するのではなく、みんなで対応しましょう。スキルに関わらず、協力できることはあるはずです。
特に避けるべきことは、障害復旧中で手を動かしている担当者に
「状況は?あれはどう?これはどう?報告書はいつできる?」
と横槍をいれることです。気が散ってしまい復旧作業の遅延につながる可能性があります。「出来ることがあればやります」と声をかけて一緒にWebミーティングなどで協力しましょう
沖縄に「ちゅぬたみーや どぅーぬたみー」という「ことわざ」があります。「良いことも悪いことも他人に対して行うことは最終的に自分に帰ってくる」という意味です。協力出来ることは助け合って対応しましょう。
エンドユーザーを意識する
実際にシステムを利用するエンドユーザーがいることを意識するようにします。そうすることで自然と本番環境を作業する際に慎重になれます。
可能であれば、ユーザー数を把握することも大事です。失敗した場合にどの程度の影響があるかを把握することで、より慎重に作業することが出来ます。
最後に
ここまで読んでいただきありがとうございます。この記事が誰かの役に立ったら幸いです。 寒くなってきましたので、お体の方はお気をつけくださいませ。
大城 慶明 (記事一覧)
マネージドサービス部
2022年10月サーバーワークスに入社、沖縄からリモート勤務。AWSを勉強中。沖縄では大城が多いので「よっさん」と呼ばれています。AWS14冠。NRUG沖縄支部運営。X @yo_ohshiro