Technical Blog テクニカルブログ
  1. HOME
  2. テクニカルブログ
  3. 【NIC x Ops(にこぷす)通信】(Terraform編)【初心者向け】Terraformってなに? クラウド時代のインフラをコードで操る「IaC」の基本から運用まで徹底解説! ~基本編~

【NIC x Ops(にこぷす)通信】(Terraform編)【初心者向け】Terraformってなに? クラウド時代のインフラをコードで操る「IaC」の基本から運用まで徹底解説! ~基本編~

投稿者:清水

目次

  1. はじめに「NIC x Ops(にこぷす)」とは?
  2. 導入:クラウドインフラのこんなお悩みありませんか?
  3. クラウド化しても、運用が楽になるとは限らない?
  4. 救世主「Infrastructure as Code(IaC)」の登場
  5. なぜ今、数あるツールの中で「Terraform」なのか?
  6. Terraformの超基本!3つのステップ
  7. まとめ

1.はじめに「NIC x Ops(にこぷす)」とは?

皆さま、こんにちは!
このテックブログでは、IT運用に関する内容を連載、「にこぷす通信」をお届けしています。

NIC x Ops(にこぷす)』とは、
私たちの会社であるNTTインテグレーション(NI+C)の運用ノウハウと、
IBMさんの強力なソリューションを
Collaboration(コラボレーション)させた、IT運用高度化シリーズ(Ops)のニックネームなんです。

現代のIT運用の現場は、システムの複雑化や人手不足など、課題が山積みです。そんな現場を少しでも楽に、そしてエンジニアの皆さんが笑顔で「攻めの運用」ができるように支えたい。そんな想いがこの「にこぷす」には込められています。

「にこぷす」には、Instana(可観測性)のほかにも、Turbonomic(リソース最適化)Terraform(インフラ自動化)など、IT運用を劇的に変える製品がたくさんあります。

これからもこの通信を通して、「IT用語は難しいけれど、中身を知ればこんなに便利で面白いんだ!」というテクニカルな内容をご紹介していきますので、どうぞよろしくお願いします。

2.導入:クラウドインフラのこんなお悩みありませんか?

最初に自己紹介をさせていただきます。
初めまして、入社6年目の「清水」です。
3月まではAWSを使用し開発・運用を担当しておりましたが、4月から新しくTerraformを担当することになりました。

今回は、IT業界、特にインフラやクラウドの世界で今や「必須スキル」と言われるほど大人気なツール
「Terraform(テラフォーム)」について、初心者向けに分かりやすく解説します!

クラウド(AWS、Azure、Google Cloudなど)を使い始めたものの、こんな経験はありませんか?

そんな悩みを一発で解決してくれるのが、今回ご紹介するTerraformです!
この記事は2部構成で、あなたのインフラ運用の常識をガラリと変える情報をお届けします。

💡 第1弾:【基本編】Terraformってなに?IaCっておいしいの?

💡 第2弾:【運用編】チームでTerraformを使うときの落とし穴と、解決策(HCP Terraform)

この記事は第1弾【基本編】として、まずは「そもそもTerraformとは何か?何がそんなに嬉しいのか?」を紐解いていきます。
あなたのインフラ運用の常識をガラリと変える世界を覗いてみましょう!

3.クラウド化しても、運用が楽になるとは限らない?

「オンプレミス(自社サーバー)からAWSやGoogle Cloudに移行したから、これでもうインフラ構築も運用も楽ちんだ!」
…と思いきや、実はクラウド化によって新たな問題が発生することがあります。
それは、「管理すべき環境がどんどん増える」ということです。

実際のシステム開発では、以下のように複数の環境が必要になりますよね。

環境名 役割
💻 開発環境(Dev) 開発者が自由にコードを試す環境
🧪 テスト環境(Stg/QA) リリース前に本番同等の動作確認をする環境
🚀 本番環境(Prod) ユーザーが実際に使う、絶対に止めてはいけない環境
🛡️ 災害対策環境(DR) 万が一の災害に備えた予備の環境

これらをすべてクラウドの管理画面(コンソール)で、手作業でポチポチと設定していたらどうなるでしょうか?

このように、手作業による人的ミス(設定漏れ・間違い)と、構築にかかる膨大な作業時間・リードタイムが、
開発現場の大きなボトルネックになってしまうのです。

4.救世主「Infrastructure as Code(IaC)」の登場

この「手作業ポチポチ問題」を根本から解決するために生まれたのが、 Infrastructure as Code(IaC) という考え方です。
日本語に訳すと「コードとしてのインフラ定義」。

これまで手順書を見ながら手動で行っていた作業を、「設定ファイル(プログラムのコード)」として記述し、専用のツールを使って自動構築するプロセスを指します。

IaCを導入すると、インフラ管理は以下のように劇的に変わります!

5.なぜ今、数あるツールの中で「Terraform」なのか?

IaCを実現するためのツールはいくつかありますが、その中で圧倒的なシェアを誇り、事実上のデファクトスタンダード(業界標準)となっているのが、HashiCorp社が提供する「Terraform(テラフォーム)」です。

AWSやGoogle Cloudなどの大手クラウド環境において、ベンダー公式のネイティブツール(CloudFormationなど)を抑えて、Terraformが最も多く採用されています。これほど世界中のエンジニアに選ばれるのには、3つの大きな理由があります。

宣言的なアプローチ(「あるべき姿」を書くだけ)

プログラミングやスクリプトのように「Aを作って、次にBを作って、その後にCを繋げて…」という手順を書く必要はありません。Terraformには、「最終的にインフラがどうなっていてほしいか(あるべき姿)」を記述します。

面倒な作成順序や依存関係は、すべてTerraformが裏側で自動解析して、最適な順番で構築してくれます。

人間にも読みやすく書きやすい独自の言語「HCL」

Terraformでは、HCL(HashiCorp Configuration Language)という専用の言語を使います。JSONやYAMLといった形式に比べて、コード量が少なく直感的に読めるのが特徴です。

AWSにWebサーバー(EC2インスタンス)を1台立てるコードで、書きやすさを比較してみましょう!

HCLのほうが記述がシンプルで、まるで英語の仕様書を読むように「何を作ろうとしているか」がスッと頭に入ってきますよね!

このように、1つひとつの記述がシンプルだからこそ、将来的にインフラの規模が拡大し、コードが何百行・何千行と長くなっていった際にも抜群の可読性(読みやすさ)を発揮します。 インフラが大規模化しても全体の構造を見失いにくく、チームメンバーによるコードレビューや、数ヶ月後の自分によるメンテナンス作業が圧倒的にスムーズになるため、中長期的な保守・運用のコストを劇的に抑えることができます。

マルチプラットフォーム対応(3,000以上のプロバイダ)

Terraformは、AWSだけでなく、Azure、Google Cloud、Kubernetes、さらにはオンプレミス環境のVMware vSphereなど、あらゆるプラットフォームに対応しています。

これらをつなぐプラグインのようなものを「プロバイダ」と呼び、すでに3,000以上存在します。どのクラウドを使うときも、「同じ文法、同じ書き方」でインフラをコード化できるため、技術の学習コストが非常に低く抑えられます。

6.Terraformの超基本!3つのステップ

実際にTerraformを動かすときの流れは驚くほどシンプルです。覚えるべきコマンドは、基本的に3つだけ!

1.terraform init (初期化・準備)
「AWS用のコードを書くよ」とTerraformに伝えると、必要な接続プラグイン(プロバイダ)を自動的にインターネットからダウンロードして準備してくれます。

2.terraform plan (計画・確認)
コードを読み込んで、「実際にこのインフラを作ろうと思うけど、いい?(追加されるリソース、削除されるリソース)」を画面上でプレビューしてくれます。「意図しないリソースが消されないか」を実行前に確認できる、一番安心なステップです。

3.terraform apply (構築・実行)
確認して問題なければ実行!自動でクラウド上にインフラが爆速かつ正確に構築されていきます。

まとめ:次回「運用編」へ続く!

📝 第1弾のまとめ

💡 クラウド運用の課題は、手作業による人的ミスと、環境が増え続けるリードタイム
💡 IaC(Infrastructure as Code)は、インフラを「コード」で自動化して管理する画期的な仕組み。
💡 Terraformは、「宣言的(あるべき姿を書くだけ)」「書きやすいHCL言語」「マルチクラウド対応」という圧倒的な強みがある。

これでTerraformの基本はバッチリです!

しかし、この超便利なTerraformを「自分一人でなく、チームみんなで運用しよう!」となった瞬間に、実はとある巨大な壁(課題)にぶつかることになります。

その解決策とは何か?気になる続きは、
第2弾:【運用編】「チームで使うTerraformの落とし穴と、それを解決する『HCP Terraform』とは?」
で詳しく解説します。お楽しみに!

「にこぷす通信」について

「NIC × Ops(にこぷす)通信」は、隔週で皆さまに情報をお届けします。
このシリーズでは、Instana(可観測性)をはじめ、Turbonomic(リソース最適化)やTerraform(インフラ自動化)など、IT運用を劇的に変える製品をピックアップしていきます。
これからも最新の技術検証をチームで継続し、皆さまの現場ですぐに役立つ「有益な知見」を全力で共有していきます。 次回の連載もお楽しみに!

ページのトップへ