要旨
予め下記のように ~/.ssh/config
に記入しておくと、 ssh work_server
を実行するとそのまま一発で踏み台サーバを経由した先のサーバへSSHで入ることができる。
# ~/.ssh/config Host work_server User ec2-user HostName ip-xxx-xxx-xxx-xxx.ec2.internal # <- Private IP Addr Port 22 ProxyCommand ssh -W %h:%p bastion_server IdentityFile /path/to/key.pem Host bastion_server User ec2-user HostName ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com # <- Public IP Addr Port 22 IdentityFile /path/to/key.pem
何故今になって急にブログ執筆を再開し始めたのか
前回が2020年8月22日なので、実に1年と9ヶ月、日数にして638日ぶりである。前回は Google が発売している Andoid搭載スマートフォンPixel 4a でeSIMを使う記事だったのに、今は Pixel 6 Proを使っている。
最近他人にプログラムやWeb技術のことを教えることが多くなってきて、知識の伝達の難しさを自分事として感じることが増えたことが、様々な理由のうちの一つである。
他にも理由がある。何かを伝える際、口頭なら一番アジャスタブルにその人に合った内容、濃度で伝えられる一方、別の人に説明する際には1からやり直しになってしまう。これを避けるため、自分が持っている知識をできるだけ細かい単位で吐き出していって、「詳しくはここを読んで」にしてしまえるようにしたいな、と思った事が挙げられる。最初に書籍に知識を残すことを発明した人は、本当に偉大である。
また、全く違う観点の理由もある。完全にIfの話しだが、もし今急に全ての記憶が吹っ飛んだら、どうやって食べて行こうか、ということを考えたことがある。その時に、記事として書き貯めたものがあれば、それを繋げて何かビジネスに繋げられるかもしれない。日々を惰性で過ごすより、少しずつ積み上げて、複利で未来に実を結べば良いな、という考えもある。
正直言って、今回紹介した踏み台サーバは、今となってはあまり使われなくなってきている技術ではないかと思う。イメージからコンテナ化して、Kubernetesに管理させたり、ECS や Heroku のような IaaS に乗っけてサーバレスにWebサービスを運営するのが、よりモダンな開発&運用のフローだと考えている。そういう構成なら、SSHでのサーバの操作はあまり推奨されないか、そもそもサーバが存在せず技術的に不可能である。それでも書いたのは、「頭の中にある情報技術的な知識を、可能な限り明文化して文章に吐き出していく」ことをこのブログの目的に本日決めたからである。
最後になるが、先日とある記事を目にし非常に感銘を受け、この記事を書くに至った。紹介して終わりにする。