はじめに
Terraformに関して、現在ではエンジニア界隈でどの位浸透してきているのだろうか。自身はインフラエンジニアからのスタートでは無かったこともあり、DevOps周りに興味を持ち始めてから知るようになってきたという感じだ。
ここではTerraformがどの様なものなのかという概要と使用にあたってのど基本の使い方の流れを解説していければと思う。
Terraformとは何か?
一言で言うのであれば、Terraformはコードでインフラを構築する為のツール。もう少し詳しく言うとコードによりAWSなどのクラウドサービスをコントロールする為のAPI的な窓口を提供しているものと個人的には認識している。
なぜTerraformが必要なのか?
ではなぜTerraformが必要になってくるのか、もしくはなぜあると便利なのかと言うと簡単には次の2点に集約されると思う。
まず1点目はコードでインフラを管理する様になるので構成管理をGit管理することが可能となること。2点目はTerraformを使用することで環境の構築または破棄が容易となることであると考えている。
つまりGit管理が可能となるので、インフラの変更の跡をコミットで残すことが出来、アプリケーションのコードの様に開発者間で構築内容を共有出来るということである。従来であれば例えばAWSのコンソール画面からポチポチとセットアップして構築していた為跡を追うのが面倒であったし、跡をドキュメントなどで残していたとしても今度はドキュメントのメンテナンス作業にコストが発生してしまっていた。
それからTerraformを使用することで環境の構築と特に破棄の面で便利さが実感出来る。恐らく1度そこそこのインフラをAWS等で構築したことがある方であれば分かると思うのだが、コンソール画面からポチポチと消す作業などをする際にその消す順番を誤ると消したいものもなかなか消せないという場面に遭遇したことはないだろうか。
これは一つ一つのサービスの依存関係によることが多いのだが、その辺りを消す際に確認せずとも比較的安全にそしてキレイに破棄を行ってくれる。これは地味にTerraformの有り難い機能の一つであると考えている。
なぜTerraformなのか?
ここででは他にも同様のサービスは無いのかと思っている方もおられるかもしれないので、一応軽く触れておくと例えばAWSには実はCloudFormationという類似のサービスがある。
これは他のサービスでも同様なことは起きる傾向にあるのだが、CloudFormationはAWSに特化しているので他のGoogleやMicrosoft等のベンダーでは現状使用することは出来ない。逆にTerraformはAWSに限らず他のベンダーでも動作が可能な為ベンダーロックインに陥ることは無い。
ではTerraformが万能なのかと言うと勿論そうでは無い。ベンダーロックインされない代わりに例えばAWSの例で言うとCloudFormationの方がよりかゆい所に手が届くサービスになっている。当然といえば当然のことなのだが。
とは言いつつもTerraformの記述方法さえマスターすればベンダー限らず同様の記述で構築・破棄が可能になることは学習コストの削減にも繋がるし、そもそもTerraformがデファクトになってる感も否めないので今の内に使い方に慣れておいて損は無いと思う。
まとめ
今回は主にTerraformに関する概要に関する解説となりました。ここで取り敢えず覚えておいて欲しい事は以下の2点。
- インフラの構成管理をコードで管理することでGit管理が可能となること
- Terraformを使用することで環境の構築または破棄が容易となること
それでは「Terraformのど基本 - その2」で実際の使い方の流れを解説予定です。
では次回もお楽しみに。
P. S.
この記事に関する内容の誤りや改善提案などございましたら随時お待ちしております。
Hotel Casino & Spa - Mapyro
返信削除With 816 rooms and 1,706 suites, this 5-star Las 구미 출장샵 Vegas resort features 10 restaurants, a casino, 성남 출장마사지 and 1 부천 출장샵 spa casino. 청주 출장안마 Nearby: Harrah's Hotel. 전라남도 출장샵 Nearby: Harrah's