もっと詳しく

Terraformレジストリは、さまざまなプロバイダーとモジュール(再利用可能なTerraform構成)を見つけて、それらをTerraformで使用できる場所です。 これには、HashiCorp、サードパーティベンダー、Terraformコミュニティなどの貢献者が含まれます。 このレジストリは、さまざまなインフラストラクチャAPIを処理するためのプラグインを提供し、一般的に使用されるインフラストラクチャコンポーネントを迅速に構築するための既存のモジュールを利用可能にし、効率的に記述されたTerraformコードを開発する方法を示すことを目的としています。

何をカバーしますか?

このチュートリアルでは、Terraformレジストリのモジュールを使用する方法を説明します。 AWSでEC2インスタンスを作成する例を示すことでこれを確認します。

飛行前チェック

このチュートリアルでは、次の前提条件が必要です。

  1. ローカルシステムにインストールされるTerraform。
  2. Terraformモジュールの基本的な知識。
  3. AWSアカウント。

Terraformレジストリのモジュールを使用する

さまざまなプロバイダーのモジュールは、Terraformレジストリによって維持されます。 モジュールはレジストリから検索できます ページ。 また、検索を行っている間、検証済みのモジュールのみが検索結果に表示されることに注意してください。 これらのモジュールは、互換性と安定性を確認するためにHashiCorpによってチェックされます。 未確認のモジュールは、検索フィルタリングオプションを使用して一覧表示することもできます。

Terraformレジストリで公開されたモジュールは、次の構文を使用して、一般的なTerraformコードで参照できます。

<NAMESPACE>/<Name of module>/<Name of Provider>

たとえば、Terraformレジストリの以下のモジュールの使用法を見てください。

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"
}

上記の例では、AWSのTerraformレジストリのVPCモジュールを使用しています。 ‘terraform init’コマンドを実行すると、Terraformコードによって参照されるモジュールが取得および保存されます。

Terraform Registryには、パブリックモジュールとプライベートモジュールの両方を利用するためのプロビジョニングがあります。 パブリックTerraformレジストリは、プロバイダーとモジュールの公開と消費を公然と許可します。 プライベートモジュールは、プライベートレジストリを使用して公開できます。

Terraformレジストリの探索

モジュールページには、モジュールの説明、公開日、ソースコードのURL、ダウンロード統計など、モジュールに関する簡単な詳細が表示されます。Readme、入力、出力、依存関係、およびリソースのさまざまなタブもここに表示されます。 コードで付与する変数を選択するには、これらのセクションを参照できます。

モジュールの使用法を示す例もあります。たとえば、このガイドではEC2インスタンスを作成するためのモジュールを使用しています。 この例に飛び込む前に、まずこのモジュールのソースコードの内部を見てみましょう。 ソースコードを開く url。 githubページには、このモジュール用のいくつかのフォルダーといくつかのファイルがあります。 今のところ、main.tf、outputs.tf、variables.tfの3つのテラフォームファイルに焦点を当てています。 main.tfファイルには、EC2インスタンスを説明する多くの行が含まれています。 同様に、variables.tfとoutputs.tfには、いくつかの入力値と出力値の宣言があります。

モジュールを使用してEC2インスタンスを起動する

ここで、Terraformレジストリのモジュールを使用する方法を見てみましょう。 ‘terraform-aws-modules’のモジュールを使用してEC2インスタンスを作成します。

ステップ1.TerraformRegistry Webページを開き、EC2のawsモジュールを検索します。

ステップ2.上記のように、「terraform-aws-modules/ec2-instance」検索結果をクリックします。 このモジュールは、この場合、AWSEC2インスタンスを起動するために使用されます。

ここで、このモジュールを操作するためにシステム上でローカルに作成した以下の構成ファイルを見てください。 このファイルには、「source」引数を使用して上記のモジュールが含まれています。 ここで説明するように、実際のモジュールからの宣言はごくわずかです。

$ nano myinstance.tf
provider "aws" {
  region = "us-east-1"
}

module "ec2_instance" {
  source  = "terraform-aws-modules/ec2-instance/aws"
  version = "~> 3.0"

  name = "single-instance"

  ami                    = "ami-0022f774911c1d690"
  instance_type          = "t2.micro"
 availability_zone    ="us-east-1a"
  key_name               = "Your-Key-pair-name"
  monitoring             = true
  vpc_security_group_ids = ["Security-Group-ID"]
 putin_khuylo    = true

  tags = {
    Terraform   = "true"
    Environment = "dev"
  }
}

この構成では、sourceとversionの2つの引数があります。

  1. ソース:この引数は、Terraformモジュールを使用する場合に必要です。 上記の「例」の構成では、Terraformは指定された引用符で囲まれたモジュールアドレスのTerraformレジストリを調べます。 ローカルモジュール、URL、およびその他のソースもここで使用できます。
  2. version:これはオプションの引数ですが、Terraformモジュールを操作するときに使用することをお勧めします。 含まれている場合、サポートされているソース用に指定されたバージョンのTerraformモジュールをロードします。 使用しない場合は、利用可能な最新のモジュールバージョンがロードされます。

まず、ローカルファイル「myinstance.tf」を含むディレクトリを初期化します。 次のコマンドを実行します。

terraforminitコマンド

次に、「テラフォーム計画」を実行するか、「テラフォーム適用」コマンドを使用して、変更を直接機能させます。

$ terraform apply

プロンプトが表示されたら、「yes」と入力します。 これにより、変更を適用するプロセスが開始されます。

Terraform適用コマンド
今回は、variables.tfファイルまたはoutput.tfファイルを明示的に作成する必要はありません。代わりに、使用するリポジトリ変数のみを参照する必要があります。 管理コンソールからEC2ダッシュボードを開き、インスタンスが作成されているかどうかを確認します。

まとめ…

このガイドでは、Terraformレジストリモジュールの使用方法を見てきました。 同様に、Terraformモジュールを使用してVPCを構成してみてください。

The post Terraformレジストリのモジュールの使用方法 appeared first on Gamingsym Japan.