Q.安全に接続するなら?
A.Session Manager!!!
今回はこれを忘れてたっていうのと
AIに甘えすぎたっていう失敗談です。
ことの経緯
AWS認定資格を取得したのち
「次はOSのお勉強してね」
というお達しが来ました。
それを受けて私は
まずはLinuxから学習しようと思い、
LPICの参考書を購入し、
付録の教材で学習を始めようとしました。
しかし、ここでPMから
こんな指示が出ました。
「LPIC勉強用EC2を作成してやってね」
「EC2作成するときはterraformで作成してね」
OSの知識と並行して
IaCの勉強もしていこうという
奨励ですね!(ポジティブシンキング)
Copilot先生に頼る
そんな後押しを受けたものの
「terraformなんて触ったことない。。。」
これが正直な想いでした。
こうなると私はあるものに
すぐに頼ります。
そう!Copilot先生です!
さっそく
「とりあえずEC2インスタンス作成できる
terraform作成して~」
といった感じのプロンプトを入力しました。
するとすぐにファイル一式が出来上がり
ご丁寧に実行コマンドまで教えてくれました。
私はここで初めて
terraform validateterraform initterraform planterraform applyterraform destroy
これらのコマンドを使うことを知りました。
意気揚々と
いざ実行すると
とあるエラーが出ました。
接続方法確認してなかった
どうやらSSH接続がタイムアウトになって
エラーになっている様子。
原因はSSH接続を不審な接続として
VPNがはじいているから
ということに気づきました。
そこで私は認定試験で
勉強した内容を思い出しました。
そう、
安全に接続したいなら
「Session Manager」
ということを
ちなみにSession Managerというのは
SSHポートを開けずにEC2へ接続できる仕組みです。
踏み台サーバーや秘密鍵管理を減らし、
安全にEC2へアクセスしたい場合に使えます。
安全なHTTPS通信でいいんだから
そもそもSSHで接続する必要性すらなかった。。。
「Copilotもそれを理解したうえで作成してよ!」
と思いましたが、
この考え方は非常にまずいですね。
雑なプロンプトを入力したのは
ほかでもない私です。
Copilotからすれば
「いや、接続方法指定してないのお前やろ」
という感じでしょう。(正論すぎる)
加えて、AIが作成した内容の精査を
怠っているということですから。
(オーナーシップのかけらもない)
こういった悪癖は
早急に矯正しなければなりませんね。
Copilotに
Session Managerで接続できるように
ファイルを修正してもらい、
今度は内容を自分の目で確認した後
再度実行すると
無事にEC2の作成と接続ができました!
これで
Linuxのコマンドの練習し放題です
まとめ・今回の学び
今回まずかった点は
以下のとおり
- EC2への接続方法を事前に確認していなかった
- Copilotに対して要件を具体的に伝えていなかった
- 生成されたTerraformコードの内容確認が甘かった
- 「SSHで接続する」という前提を疑わなかった
認定試験対策で
知識として理解していても
今回のように、実践で使えなければ
知識を自ら捨てているに等しい。
AIをコーディングに活用するのは構わないが
あくまで成果物に対する責任は自分にある。
常に内容を精査することを忘れてはならない。
そう思った出来事でした。