翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Terraform プロジェクトを定義する
このチュートリアルでは、ParallelCluster のカスタム AMI をデプロイするためのシンプルな Terraform プロジェクトを定義します。
my-amisという名前のディレクトリを作成します。作成するすべてのファイルは、このディレクトリに入ります。
ParallelCluster プロバイダーをインポートするファイル
terraform.tfを作成します。terraform { required_version = ">= 1.5.7" required_providers { aws-parallelcluster = { source = "aws-tf/aws-parallelcluster" version = "~> 1.0" } } }ParallelCluster と AWS プロバイダーを設定するファイル
providers.tfを作成します。provider "aws" { region = var.region profile = var.profile } provider "aws-parallelcluster" { region = var.region profile = var.profile api_stack_name = var.api_stack_name use_user_role = true }ParallelCluster モジュールを使用してリソースを定義するファイル
main.tfを作成します。image_configuration要素内で設定できるイメージプロパティを確認するには、「ビルドイメージの設定ファイル」を参照してください。イメージ作成用に設定できるオプション (
image_idやrollback_on_failureなど) については、「pcluster build-image」を参照してください。data "aws-parallelcluster_list_official_images" "parent_image" { region = var.region os = var.os architecture = var.architecture } resource "aws-parallelcluster_image" "demo01" { image_id = "demo01" image_configuration = yamlencode({ "Build":{ "InstanceType": "c5.2xlarge", "ParentImage": data.aws-parallelcluster_list_official_images.parent_image.official_images[0].amiId, "UpdateOsPackages": {"Enabled": false} } }) rollback_on_failure = false }このプロジェクトに挿入できる変数を定義するファイル
variables.tfを作成します。variable "region" { description = "The region the ParallelCluster API is deployed in." type = string default = "us-east-1" } variable "profile" { type = string description = "The AWS profile used to deploy the clusters." default = null } variable "api_stack_name" { type = string description = "The name of the CloudFormation stack used to deploy the ParallelCluster API." default = "ParallelCluster" } variable "api_version" { type = string description = "The version of the ParallelCluster API." } variable "os" { type = string description = "The OS of the ParallelCluster image." } variable "architecture" { type = string description = "The architecture of the ParallelCluster image." }ファイルを作成して
terraform.tfvars、変数の任意の値を設定します。以下の ファイルでは、スタック名
us-east-1で既にデプロイされている既存の ParallelCluster API 3.11.1 を使用して、x86_64 アーキテクチャ用の Amazon Linux 2us-east-1に基づいて にカスタム AMI をデプロイしますMyParallelClusterAPI-3111。region = "us-east-1" api_stack_name = "MyParallelClusterAPI-3111" api_version = "3.11.1" os = "alinux2" architecture = "x86_64"このプロジェクトで返す出力を定義するファイル
outputs.tfを作成します。output "parent_image" { value = data.aws-parallelcluster_list_official_images.parent_image.official_images[0] } output "custom_image" { value = aws-parallelcluster_image.demo01 }プロジェクトディレクトリ:
my-amis ├── main.tf - Terraform entrypoint where the ParallelCluster module is configured. ├── outputs.tf - Defines the cluster as a Terraform output. ├── providers.tf - Configures the providers: ParallelCluster and AWS. ├── terraform.tf - Import the ParallelCluster provider. ├── terraform.tfvars - Defines values for variables, e.g. region, PCAPI stack name. └── variables.tf - Defines the variables, e.g. region, PCAPI stack name.