体験談・成長記録

【体験談】AWSもTerraformも知らないのに、業務で同時に始めることになった話

記事内に商品プロモーションを含む場合があります

どうも、コンです。

製造業の工場で Python を書いていた自分が Web エンジニアに転じて、フロントもバックエンドも DB もひととおり触り始めた頃の話です。

ある日上司から「コンさんも、そろそろインフラ関連をおぼえていきましょか」とさらっと言われて、AWS と Terraform(AWSの設定をコードで管理するやつ) を同時に業務で触ることになりました。

本来であれば、AWS を先にある程度さわって、それから Terraform、という順番が理想です。ただ、自分のチームはもともと Terraform で AWS を管理する前提で動いていたので、順番に覚える余裕はなく、どうしても同時に進めるしかありませんでした。

この記事は、当時の自分のように「AWS も Terraform も知らないのに、業務で同時にやることになった」プログラマーに向けて、どこで詰まって、どうやって抜けたかを残すものです。

スタート地点

当時の私の能力から書きますね。

  • AWS は業務・個人問わずゼロ。EC2 も S3 も Lambda も、名前を知っている程度
  • Terraform は .tf ファイルを開くのが初めて
  • ネットワーク(サブネット・ポート・IP)は基本情報の勉強でわかってるつもり
  • Docker と Linux は Web 開発側でそれなりに触っていた

引き継ぎはありました。前任の方に認証の通し方と Terraform のコマンドを、ドキュメントではなく実際のコードを開いて、ペアプロ形式で教えてもらえたのが大きかったです。

最初に任されたのは CloudWatch でメトリクスを拾ってダッシュボードを作り、アラームを追加する仕事。セットで、Terraform のコマンドの使い方と、ステージングと本番の考え方も覚えてね、という指示でした。

聞いた瞬間の感想は、正直に言って「知らないことが多すぎて大変」でした。

とりあえず似た名前・役割の沼:IAM ロール、IAM ポリシー、セキュリティグループを脱出する

手を動かし始めて最初難しかったのが「名前やなんとなくの機能が似ているのに役割が違うもの」の山でした。

  • IAM ロール
  • IAM ポリシー
  • セキュリティグループ

この三つの違いが、最初は頭の中で溶け合っていました。「誰が何にアクセスできるか」の話はどれで、「どのポートで通信できるか」の話はどれか、画面を開くたびに混乱していたと思います。

Terraform と AWS を同時に覚えると、ここが二重にキツかったです。似た名前を見つけたら、先にそれぞれ一行で役割を書き出してから進む、くらい慎重にやってよかったと、今なら思います。

進め方の大枠:①整理 → ②構成 → ③書かせる

使用する言葉に慣れてきたら、大枠の進め方がだいたい掴めてきました。結局インフラ開発はこんな3ステップの繰り返しでした。

  1. 何がやりたいか整理する(例:アプリについて、API のエラーが増加したら、チームのメンバーに知らせたい)
  2. どういうインフラ構成にするか AI と相談しながら決める(例:CloudWatch でアプリが動いている ECS のメトリクスを拾って、しきい値を超えたらアラーム発火)
  3. ②を AI を使って Terraform で書いてもらう

楽な方法はなくて、地味にこれの繰り返しです。

大事なのは、「どんなインフラを準備したいか」を言葉にできる状態②です。③の Terraform はあくまでコードで書くための道具であって、本丸は②のインフラ構成設計のほう。

この順番のサイクルをひたすら回していきました。

AI にひたすら教育してもらう

進め方の大枠にも登場していますが、一番の先生は正直に言うと生成 AI でした。多分皆さんも使っていますよね。

自分の場合、最初は「エラーを貼って答えをもらう」くらいだったのが、途中から次の三段ループで回すようになって、学習効率がはっきり変わりました。

  1. やりたいことを書いて、AI にインフラ構成や Terraform コードを教えてもらう
  2. 教えてくれた内容が、公式ドキュメントのどこに書いてあるかを AI に聞く
  3. それがベストプラクティスに沿っているかを AI に確認する

ポイントは 2 と 3 だと思ってます。AI にコードを書いてもらうだけだと、知識が自分の中に残りません。なので「それって公式ドキュメントだとどのページ?」と聞き直すと、公式ドキュメントの該当セクションを示してくれて、そこから一次情報を読むきっかけになります。

さらに、「それって AWS Well-Architected Framework のどの柱に沿った書き方?」とか「AWS 公式のベストプラクティスに沿ってる?」と聞くと、同じ動作でも「推奨される書き方」と「動きはするけど非推奨」の区別が出てきます。

Terraform の plan 出力も AI と相性がよかったです。差分が出たら、その出力ごと貼り付けて「この差分を日本語で解説してほしい」と頼むと、「この行は破棄して再作成=replace(-/+)で、ダウンタイムの可能性あり」と、初心者にとっての地雷を先に知らせてくれます。

いまも Cursor 上で、だいたいこのループを回しながら書いています。

分かってきたな〜と思った瞬間

AWS を触って半年くらい経ってから、なんか体系的に勉強したいな〜って思って試験をググってみると SAA(AWS 認定ソリューションアーキテクト アソシエイト)なるものを発見。

内容を把握すると、試験で出てくる構成や概念が「これ、この前自分が業務で触ったやつそのままだ」(進研ゼミ風)と感じたとき、ちゃんと AWS と Terraform 分かってきたんだなって思いました。

まとめ:AWS と Terraform を同時に始める人へ

偉そうなことは言えないのですが、同じように同時スタートすることになったプログラマーに伝えたいのは、次のあたりです。

楽な方法はないので、ひたすら

  1. 何がやりたいか整理
  2. どういうインフラ構成にするか AI に相談しながら決める
  3. ②を AI の Terraform で書いてもらう

の手順でやればいいのではなかろうか、というのが半年やってみての実感です。

自分自身、まだ「AWS と Terraform をわかっています」と胸を張れる段階にはいませんが、本記事が今しんどい最中にいるプログラマーの、ほんの少しでも地図の代わりになれば嬉しいです。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA