本日も乙

ただの自己満足な備忘録。

本番環境サーバにSSH接続しないようにしたい

先日、「個人的によく使うGitエイリアス、zshキーバインド」というブログ記事を書きました。

blog.jicoman.info

30分ぐらいでザッと書いたものだしよくあるネタだったのですが、多くの反応があってとても驚いています。コメントもいただけて有り難く読ませていただきました。その中で「自分の環境をカスタマイズしていると本番環境でミスをやらかすのでは」という指摘があり、大変興味を持ちました。なぜなら私としてはこの記事で本番環境での操作というのをまったく想定していなかったからです。

私のポリシーとしては、自分用にカスタマイズしたLinuxコマンドのエイリアスやzsh、tmuxなどをサーバにインストールしないようにしています。.bashrcも極力いじりません。ただし、.vimrcは少々いじるのと、個人の開発用として割り当てられているサーバは除きます。

理由としては2つあります。元ITインフラエンジニアとして、どのサーバにもログインする可能性があり、個別にカスタマイズするのが手間だし意味がないのが1つ目。2つ目がそもそもとして本番サーバにログインすること自体を減らすことができるからです(無くせるとは言っていない)。

先に断っておくと、私がAWS/GCPといったパブリッククラウドを使っており、読者が置かれている環境とは異なるため、皆さんに当てはまる話ではありません。「ペットから家畜へ 」という言葉があるように、サーバにログインしてコマンド実行してセットアップする機会がだいぶ減っています。かつては一つ一つのサーバに固有のホスト名を付けて管理していたものが、クラウド上でオートスケーリングという概念が出てきたことでサーバは使い捨てにすべきという考え方になったと思います。

Kubernetesのようなコンテナオーケストレーションや、AWS LambdaやGCP Cloud Runのようなサーバレスサービスによって手元で開発したものをサーバにログインすることなくデプロイできるようになっています。サーバを構築する場合においてもChef/Ansibleのようなプロビジョニングツールによってコード化した手順を適用することで一々サーバに入らず、ミスすることなく構築を完了できます。また、ロギングや監視なども外部サービスにデータ送信することで、データ集約された形でオブザーバビリティを実現できています。

したがって、「本番環境でミスをやらかす可能性がある」というのはそもそもとして本番環境に入らないようにすることで未然に防ぐことができるから問題ないと考えています。ただし、そうは言っても諸事情で本番サーバにログインして、デプロイコマンドを実行することを完全に無くせるとは思っていません。私が所属している部署でもそういうサーバは残っています。大人の事情ですぐに無くすことができず生き残り続けてしまっています。

読者の中にもきっと似たような境遇の方がいらっしゃると思っています。むしろいると思いたい。サーバにログインしないで済むようにやっていこうぜということで締めたいと思います。