Infrastructure as Code(IaC)とは
Infrastructure as Code(IaC)をご存じでしょうか︖
変化の激しいビジネス環境に対応できる開発体制はもちろん、ソフトウェアやインフラにも柔軟かつ迅速な提供が求められています。その中で柔軟かつ迅速にインフラを提供するため、近年Infrastructure as Code(以下、IaC)の必要性が⾼まってきています。
IaCとは、サーバーやネットワークをはじめとしたインフラの構成をプログラムのようにコード化し、構築や管理を⾃動化する⼿法のことです。IaCを実現するための構成管理ツール(IaCツール、クラウドリソースオーケストレーションツール)には、例えば、Terraform、AWS CloudFormation、Azure Resource Managerなどが存在します。
Terraformとは
本記事では、Terraformを使⽤してIaCを実現します。 Terraformは、HashiCorp社によって開発された オープンソースのサービスで、開発環境を効率的に構築できるIaCツールの⼀種です。
1つのプロバイダーに縛られずAWS、Microsoft Azure、Google Cloud、Kubernetes、VMWareなど マルチプラットフォームに対応していることが特徴です。Terraformを利⽤して様々なサービスと連携することで、マルチプラットフォームでリソースを同時に管理することができます。
Terraformを利用してGoogle Compute Engineを起動してみる
それでは、今回はTerraformを使用して、Google Compute Engineを起動し、さらに削除してみます。
①Cloud Shellの起動
Google Cloud の Web コンソールには Cloud Shell が備わっており、ローカル PC にツールをインストールしたり、作業用のVMを起動したりしなくてもブラウザ上で Linux ベースの作業スペースを使うことができます。 起動方法は、「Google Cloud コンソール にログインし、右上のCloud Shellアイコンを押下」です。
起動後、しばらくするとターミナル画⾯が出てきます。
Cloud Shell には ブラウザ上で動作するコードエディタまで付属しています。
エディタを開くため、「エディタを開く」 ボタンを押下します。
しばらくすると、Visual Studio Codeの様なエディタが起動します。
②ファイル作成・エディタで編集する
メニューバーからターミナルを選択し、新たにターミナルを立ち上げコマンドを実行していきます。
フォルダを作成し、その中に Terraform 設定ファイル(フォルダ名・ファイル名は任意)を作成します。
1 2 3 |
mkdir demo cd demo touch main.tf |
コマンドが正常に実行されると、サイドバーに作成したフォルダとファイルが表示されます。
左側のファイルエクスプローラから作成したファイルを選択し、編集します。
Google Compute Engineを作成するソースコードは、下記の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
resource "google_compute_instance" "default"{ name = "project-xdd-demo" machine_type = "e2-medium" zone = "asia-northeast1-b" tags = ["demo"] boot_disk { initialize_params { image = "debian-10-buster-v20220719" } } network_interface { network = "default" access_config {} } } |
インスタンスに必要なプロパティの詳細はここでは説明しませんが、インスタンス名称をproject-xdd-demo、マシンタイプをe2-medium、リージョンをasia-northeast1-bでインスタンスを作成しています。設定値の詳細は、下記のリンクをご参照ください。
③Terraform の初期化
コマンドを実⾏して Terraform の初期化を⾏います。
下記の、terraform コマンドを実⾏してください。
1 |
terraform init |
コマンドが正常に実行されると、Terraform 構成ファイルを含む作業ディレクトリを初期化し、必要なプラグインや子モジュールのインストールをしてくれます。
下記のように、Terraform has been successfully initialized! と表⽰されたら成功です。
④Terraformの実⾏
下記のコマンドで、実行計画が確認できます。
1 |
terraform plan |
Plan: 1 to add, 0 to change, 0 to destroy. は環境に新しいリソースが作成されることを意味しています。
実際にリソースを作成するため 、下記のコマンド を実⾏します。
1 |
terraform apply |
下記のように、Apply complete! Resources: 1 added, 0 changed, 0 destroyed. が表⽰されれば成功です。
Google Cloud上に、Google Compute Engineが作成されます。
⑤Google Cloudコンソールから確認する
Google Cloudコンソールからでも Google Compute Engineが作成できていることが確認できました。
⑥環境の削除
VMインスタンスの利⽤が終わったときは料⾦がかかってしまうので、忘れずにVMインスタンスを削除しておきましょう。環境を削除する場合は terraform destroy を実⾏します。
1 |
terraform destroy |
下記のように、Destroy complete!Resources: 1 destroyed.と出⼒されれば削除の完了です。
最後に
今回はTerraformを用いて、Google Cloud Compute Engineを作成しました。IaCを用いて自動化することで、人為的なミスも減らすことができます。次にもう一段階発展した内容の、IaCの記事を執筆したいと思います。最後まで読んでくださり、ありがとうございました。
執筆者プロフィール
-
AWS、Azure、GCPの全てを極めることを目標に日々奮闘しております。
新しい技術が好きで、常に情報収集しています。皆様に有益な情報を届けられるようにしていきたいです。
この執筆者の最新記事
- Pick UP!2024.05.13Google CloudでインフラCI/CDを実現する
- Pick UP!2023.04.27クラウドの構築をInfrastructure as Code(IaC)で実現する