恥ずかしい話ですが、クラウドエンジニア(Azure)のくせにフリーランスになるまで、IaCやGitHubを実務で使った経験がまったくありませんでした。
クラウドエンジニアとして働くうえで、この2つを使えないのはさすがにまずい……そう感じながらも、何から始めればいいのが分からず毎日モヤモヤしていました。
ここでは、そんな私がIaC、GitHubをどうやって身につけたのか、そして今の自分に不足しているスキルをどうやって補えばいいのかをお話しします。
1. 足りていなかったスキル
私に不足していたのは、前述したとおりIaCとGitHubの2つの経験です。クラウドエンジニアなら今でこそTerraformなどを使いこなすのが当たり前かもしれませんが、当時の私は触れたことすらありませんでした。
また、ソースコード管理ツールとして誰しもが使っているGitHubも未経験に近い状態でした。「さすがにITエンジニアでgit pullしか知らないのはマズイよな…。」と焦っていたことを今でも鮮明に覚えています。
2. どうやってできるようになったか
結論からいうと、以下の手順で習得しました。
-
TerraformのソースコードをQiitaからコピペ
手始めに、完成しているコードをQiitaで探して写経しました。ゼロから書くより、動くことが保証されたソースを読み解くほうが理解も進みやすかったです。 -
コピペをアレンジ、カスタマイズ
次に、取得したコードをアレンジして自分の環境に合わせてみました。変数の値やモジュールを変えてみることで、Terraformの基本的な仕組みが頭に入りました。 -
PJTで構築したインフラを実現してみる
過去のプロジェクトの構成を再現する形でコードを書き、実際に動かすことで「どのようにモジュール化すれば使いまわせるか」「リソースの依存関係はどうなっているか」などをイメージしやすくなりました。 -
量産したソースコードをGitHubにアップ
学習用に書いたコードをどんどんリポジトリにコミットしました。その過程で、プルリクエストやブランチ運用を試し、GitHubの基本操作を体得しました。 -
GitHub Actionsでデプロイまで自動化
コードをマージした段階でインフラが更新されるように設定しました。また、この作業に合わせてtfstateファイルをAzureのBlob Strageで管理するように設定したので、Terraformで最も厄介な -
dev、prod、stgでパラメータを使い分けられるように手直し
GithubのEnvironmentを利用して、環境ごとにGitHub Actionsで利用する変数を切り替えられるよう見直してみました。複数環境を扱っても同じクオリティで運用できるようになったので、実務への応用力がかなり上がりました。
このプロセスを毎日1時間ほど、半年間コツコツ続けた結果、現場に入ったときにも抵抗なくIaCとGitHubを使いこなせるようになっていました。
3. 今の自分に足りないスキルを補うには?
-
足りないスキルがあっても不安になる必要はない
どんなに優秀なエンジニアでも、すべてを網羅できるわけではありません。足りない部分があるのは自然なことなので、焦りすぎる必要はありません。「今の自分はコレができない」という事実をまずは素直に認めましょう。 -
足りないスキルは「毎日少しずつ」勉強する
いきなり大きな目標を立てると挫折しやすくなります。1日10分でも構いません。決めた時間を確保して着実に学習を積み重ねることが大切です。 -
継続がスキルアップへの最短の近道
TerraformやGitHubを身につけたときも、結局は半年間の継続が成功のカギでした。学習内容が少しずつ蓄積していくことで、ある瞬間に「ん?なぜか分からないができるぞ…!!」という瞬間が訪れます。
フリーランスとして自分のスキルアップに投資できる時間は自由にコントロールできます。足りないスキルを見つけたら、毎日少しずつでも手を動かし、情報収集を続ける。そうすれば、いつの間にか次のステージへ進んでいるはずです。
ここまで読んでいただきありがとうございます。
Xではエンジニアに有益な発信をしていますので、ぜひフォローよろしくお願いします!!