皆さん、こんにちは! 富士通クラウドダイレクトの中の人Sです! 趣味の写真のデータが年々増加して、自宅ファイルサーバー構築を検討しながら2年が経過しています。そろそろやらないと…。
今回の記事は、自宅ファイルサーバー構築!ではなく、中小企業のエンジニア・情シス担当者向けに、Infrastructure as Code(以降IaC)の話(Terraform編)をお送りします。
TerraFormとは そもそもTerraFormって何?というお話ですが、一言で説明するとHashiCorp社が開発するオープンソースの構成管理ツールです。
Terraformは下記のような特徴があります。
・宣言型の定義ファイルでインフラを管理可能
・インフラの状態をコードで保存可能かつバージョン管理可能
・構築されるまでの手順を意識する必要がない
・AWSやGCPなど、様々なパブリッククラウドサービスに対応している
たとえばニフクラ/FJcloud-Vの場合だと「Terraform NIFCLOUD Provider」が提供されているので、下記を利用することになります。
他社クラウドでも提供されているので、マルチクラウド環境においても、同様の手順でTerraformからの構築が可能となります。
Terraformでニフクラ/FJcloud-Vを操作するには
ニフクラ/FJcloud-Vの場合、下記のブログ記事を参考にするのが良いと思います。
ちょっと旧い記事だなあ…と思っていたら、いつもお世話になっている日本仮想化技術さんがブログ記事を書いてくださってました。
ニフクラ/FJcloud-Vのブログ記事って正直あまり外部の人が書いてくださる機会が少ないので大変ありがたいですね。
日本仮想化技術さんの「とことんDevOps」では、Terraformを扱う他の記事もたくさんありますが、この書籍はなかなか良いのでおすすめです。 devops-blog.virtualtech.jp
AnsibleとTerraform
構成管理ツールといえば、Ansibleの話も気になります。 IaCを実現するためのツールとして、Ansibleを紹介した私の記事が下記です。
blog.clouddirect.jp.fujitsu.com
AnsibleとTerraform、どちらも構成管理ツールですが、それぞれの違いに関する質問はイベントでもよく寄せられます。
本件について、Redhat様の記事がいろんなブログ記事で引用されているので読んでみました。
ちょっとむつかしいゾ?
って思ったので、定番のChatAIくんに丸投げしてみました。
それでも、難解だったので1分で簡潔に説明できるような要約を!とお願いしたらこんな感じ。
・Ansibleはタスクの自動化と構成管理に適し、エージェントレスでYAMLベースのプレイブックを使用します。
・Terraformはクラウドリソースのプロビジョニングに特化し、HCLを使いデクラレイティブにインフラを管理します。
・Ansibleはインフラの変更を指示することが主で、状態管理は基本ではありません。
・Terraformは望ましい状態に自動的に調整し、クラウドプロバイダーとの統合が強化されています。
・学習曲線では、AnsibleはYAMLのプレイブックが学習しやすく、TerraformはHCLの学習が必要です。
・これらの違いにより、AnsibleとTerraformは異なる目的と使用ケースに適しています。
・・・とのこと。
もうちょっと何とかならんのか?
と思っていたら、ニフクラの中の人がそのへんをいい感じに説明してくれそうなイベントが催されるとの情報が!?
Terraform入門イベントやるよ!
・・・ということで告知です!
Terraformの基礎から実践までをニフクラのTerraformプロバイダーを使用して話したり、TerraformとAnsibleを両方使っている立場で違いを説明したりとVisual Studio Codeでリモート開発を行うための環境をニフクラ上に構築するのに、Terraformを使って自動化してみたり・・・と、もりだくさんです。
もちろん、Terraformなのでニフクラ以外のクラウドでも活用できる内容です。
ぜひ、お越しください。