こんにちわ😄
僕は普段クラウドプラットフォームで仕事してるんだけど、いちいち手で作ったり削除したりする作業が煩わしいと感じることが多いんだよね!
普段はAWSがメインなのでAWS特有のIaCツールCloudFormationやAmazon CDKを使ったりしてるけど、用途によってはマネージメントコンソールから手で作ってやる時もある。
(※IaC = インフラストラクチャをコードをjsonやYAMLで書いてコードからインフラストラクチャを作成できる)
だけど、みんな知ってるようにクラウドプラットフォームってAWSだけじゃないよね😇
Microsoft社のAzureやGoogle社のGoogle Cloud、OracleのOracle Cloudとか各有名なIT企業が独自の使いやすくて機能も魅力的なクラウドプラットフォームを出してる。
そんないろんなクラウドプラットフォームがあるからクラウドプラットフォーム特有のIaCツールを覚えるのは正直かなり大変だと思う。
IaCだけでお爺ちゃんになってしまいそうだよ。
だからクラウドプラットフォームが変わっても同じ知識を使って単一のワークフローでマルチクラウドにユースケースに応じてインフラストラクチャをデプロイできたら楽だよねと思ってHachiCorp社が開発したIaCソフトウェアのTerraformを学びだしたから、少しずつだけどこのブログに学びの記録を取ろうと思う。
これからTerraformについて学びたい人の参考になれば良いな。
1.Terraformのこと
Terraformのことは少し話したけど、HashiCorpっていう会社が開発した基本的にはオープンソース(無料)で使用することができるIaCソフトウェアのことなんだ。
役割としてはインフラストラクチャの構築、変更、管理を安全に楽にできるようになるみたいだね。
僕はこれから学ぶから凄さをあまり実感はしてないんだけど(笑)。
TerraformはAWS、Azure、Google Cloud、Oracle Cloudといった全てのクラウドプラットフォームに対して使うことができるからベンダーロック(それを使い出したら他では流用できない状態)になる心配もない。
コマンドの操作も単一のワークフローで済むみたいだ。
具体的にはこんな感じ↓
trerraform init > terraform plan > terraform apply
この流れはどこのクラウドプラットフォームでも変わらず一緒。
ちゃんと調べてはないけど、パブリックなクラウドプラットフォームだけじゃなくプライベートクラウドなオンプレミスにも使うことができるみたいだね(VMware vSphere、OpenStack、CloudStackとか)。
ここまで僕なりにインプットしたことを書いてみたけど、クラウドプラットフォームを使ってる企業はTerraformを採用してインフラストラクチャを構築、変更、管理してるみたい。
なんで、Terraformがこんなに人気なのか僕なりに考えてみたよ。
2.Terraformが人気な理由
一つ目はTerraformはいろんなクラウドプラットフォーム上にインフラストラクチャを作れるし、変更もできて管理ができること。
二つ目は単一のワークフローで最初は覚えるのは大変だとは思うけど慣れてきたらどのクラウドプラットフォームでも同じワークフローで作成、変更、管理ができるようになること。
trerraform init > terraform plan > terraform apply
あとは、Terraformの構文はクラウドプラットフォームやオンプレミスやローカルのテキストエディタでもどこでも変わらないんじゃないかと想像している。
この3つが大きなメリットとしてあるから人気なんだと思う。
あとはエンジニアとしての一番のメリットは各クラウドプロパイダが用意している専用のIaCツールを都度学んで覚えることがTerraformだとマルチクラウドに使えるしワークフローも単一で、構文も同じだから負担を減らせることが大きいと思う。
世界中でマルチクラウド環境に使える、使われているIaCツール、Terraformは最高のパートナーになれるって期待してる。
おっと、もう寝る時間だ。
続きはまた 👋