初心者向けterraformの学習方法をご紹介!
Terraformは、クラウドプロバイダーでのインフラストラクチャの自動化に使用されるオープンソースのツールです。Terraformを学ぶことで、インフラストラクチャを自動化することができ、効率的にシステムを構築することができます。
terraformの学習方法についてご紹介します。
terraformとは?
Terraformは、Infrastructure as Code(IaC)のためのオープンソースのツールです。Terraformを使用することで、クラウドプロバイダーのインフラストラクチャの自動化が可能になります。Terraformは、AWS、Google Cloud Platform、Microsoft Azureなどの主要なクラウドプロバイダーに対応しています。
IaCのメリット・デメリットは下記で紹介しています。
どのタイミングでterraformを学習すべきか
Terraformは、インフラストラクチャを自動化するためのツールであるため、システム管理者やエンジニアにとって非常に有用です。クラウドプロバイダーでインフラストラクチャを扱うことが多い場合には、Terraformを学習することが非常に重要になります。
しかし、AWSやAzure、GCPを理解していない方とプログラミング言語知識のない方は学習するべきではありません。
クラウドを理解し、マネジメントコンソールからリソースを問題なく作成できるレベルまで理解したうえで実施すべきものとなります。
また、terraformはHCLという独自の言語となります。癖はありませんが、最低限のプログラミング知識は持っておいた方が良いです。
terraformから学んでも、AWSなどの仕様が理解できていないとエラーやミスが頻発することになります。実際に動いている環境を修正する場合はサービス障害になってしまいます。
AWSで言うとアソシエイトレベルの資格知識は習得しておくべきでしょう。
AWSの基礎を学習する場合
下記記事で学習方法などを紹介しております。
AWS自体の知識が無い方は、まずはAWSから学習しましょう。
terraform学習方法
公式ドキュメント
Terraformの公式ドキュメントは非常に充実しており、初心者から上級者まで幅広く学ぶことができます。
https://registry.terraform.io/providers/hashicorp/aws/latest/docs
ドキュメントは全て英語となっています。
サービス別、サービス内の設定別に分けているため見やすい構成になっています。
内容が理解できれば、コピペと数行程度の設定をカスタマイズするだけでリソースが作れるようになると思います。
terraformはPythonやtypescriptなど多様な言語で書くことができますが、公式ドキュメントの例文は全てTypeScriptになっているため注意が必要です。
terraform-jp Slack
https://github.com/terraformjp/terraformjp.github.io
日本最大のterraformコミュニティです。初心者から上級者まで幅広く参加しており、Terraformの情報共有や相談などが行われています。セミナー等は最近活動が見られませんが、slackでは週に1〜2回ほど動いています。質問やエラー内容を共有すると、有志の方で回答を頂ける場合があります。
もちろん、有志の方ですので、答えが出ない場合もありますし、「それくらいネットで調べれば出てくる」と片づけられる場合もあります。ですが、基本的には答えてくれます。
最新情報のキャッチアップやコロナ禍も終わりに近づいたため、オフラインイベントなども実施する動きがみられています。
Terraformを学ぶ上で、日本語の情報共有ができるため、非常に便利です。2023年5月現在で700名近いメンバーが在籍しています。
Former2
Former2は、AWSのCloudFormationテンプレートをTerraformに変換することができるツールです。CloudFormationテンプレートからTerraformコードに変換することで、Terraformをより簡単に学ぶことができます。
Udemy
Udemyは、オンライン学習プラットフォームです。Terraformの基礎から応用まで、幅広い講座が用意されています。
AWS と Terraformで実現するInfrastructure as Code
私はこちらを受講いたしました。
terraformの基本を学ぶことができます。あくまで初級者向けの講座で、AWSはある程度知識がある方向けとなります。
terraformの中にも初級~上級者向けがある
terraformもIaCというプログラミング言語の枠のひとつです。コードの書き方は初級から上級まで方法があります。
terraform構成
terraformのファイルを1つのファイルだけで書き込む場合や、サービスごとにモジュール構成で書く場合、envを1つのファイルで別にして他のモジュールで参照させるなど、プログラミング言語のように多種多様な記載方法があります。
初級者の場合は、1ファイルにIaCを書くほうがよいですが、後々メンテナンスが大変になります。
中級者からはフロントエンド用、API用など複数のモジュールに分けてコードを書いていくことでメンテナンス性を上げることができます。