Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

AWS FSx ONTAPクラスターと EC2 インスタンスのプロビジョニング

共同作成者 kevin-hoke

NetAppソリューションエンジニアリングチーム

このソリューションは、FSx ONTAPクラスターと EC2 コンピューティングインスタンスのプロビジョニング用の Terraform ベースの自動化ツールキットを提供します。

目的

このツールキットは、AWS FSx ONTAPストレージクラスターと EC2 コンピューティングインスタンスのプロビジョニングのタスクを自動化し、後でデータベースのデプロイメントに使用できるようにします。

このソリューションは、次のユースケースに対応します。

  • 事前定義された VPC サブネット内の AWS クラウドで EC2 コンピューティングインスタンスをプロビジョニングし、ec2-user として EC2 インスタンス アクセス用の SSH キーを設定します。

  • 必要なアベイラビリティーゾーンに AWS FSx ONTAPストレージクラスターをプロビジョニングし、ストレージ SVM を構成して、クラスター管理者ユーザー fsxadmin のパスワードを設定します。

観客

このソリューションは次の人々を対象としています。

  • AWS EC2 環境でデータベースを管理する DBA。

  • AWS EC2 エコシステムでのデータベースの展開に関心を持つデータベース ソリューション アーキテクト。

  • データベースをサポートする AWS FSx ONTAPストレージを管理するストレージ管理者。

  • AWS EC2 エコシステムでデータベースを立ち上げることを好むアプリケーション所有者。

ライセンス

このGitHubリポジトリのコンテンツにアクセス、ダウンロード、インストール、または使用することにより、あなたは以下のライセンス条項に同意したことになります。"ライセンスファイル"

メモ この GitHub リポジトリのコンテンツを使用した派生作品の作成および/または共有には一定の制限があります。コンテンツを使用する前に、必ずライセンスの条件をお読みください。すべての条件に同意しない場合は、このリポジトリのコンテンツにアクセスしたり、ダウンロードしたり、使用したりしないでください。

ソリューションの展開

展開の前提条件

Details

展開には次の前提条件が必要です。

An Organization and AWS account has been setup in AWS public cloud
  An user to run the deployment has been created
  IAM roles has been configured
  IAM roles granted to user to permit provisioning the resources
VPC and security configuration
  A VPC has been created to host the resources to be provisioned
  A security group has been configured for the VPC
  A ssh key pair has been created for EC2 instance access
Network configuration
  Subnets has been created for VPC with network segments assigned
  Route tables and network ACL configured
  NAT gateways or internet gateways configured for internet access

ツールキットをダウンロードする

Details
git clone https://github.com/NetApp/na_aws_fsx_ec2_deploy.git

接続と認証

Details

ツールキットは AWS クラウドシェルから実行されることになっています。 AWS クラウド シェルは、AWS リソースを安全に管理、調査、操作することを容易にするブラウザベースのシェルです。 CloudShell はコンソールの資格情報を使用して事前に認証されています。一般的な開発および運用ツールが事前にインストールされているため、ローカルでのインストールや構成は必要ありません。

Terraform provider.tf および main.tf ファイルの構成

Details

provider.tf は、Terraform が API 呼び出しを介してリソースをプロビジョニングするプロバイダーを定義します。 main.tf は、プロビジョニングされるリソースとリソースの属性を定義します。詳細は次のとおりです。

provider.tf:
  terraform {
    required_providers {
      aws = {
        source  = "hashicorp/aws"
        version = "~> 4.54.0"
      }
    }
  }
main.tf:
  resource "aws_instance" "ora_01" {
    ami                           = var.ami
    instance_type                 = var.instance_type
    subnet_id                     = var.subnet_id
    key_name                      = var.ssh_key_name
    root_block_device {
      volume_type                 = "gp3"
      volume_size                 = var.root_volume_size
    }
    tags = {
      Name                        = var.ec2_tag
    }
  }
  ....

Terraform variables.tf と terraform.tfvars の構成

Details

variables.tf は main.tf で使用される変数を宣言します。 terraform.tfvars には変数の実際の値が含まれています。以下にいくつかの例を示します。

variables.tf:
  ### EC2 instance variables ###
variable "ami" {
  type        = string
  description = "EC2 AMI image to be deployed"
}
variable "instance_type" {
  type        = string
  description = "EC2 instance type"
}

terraform.tfvars:
# EC2 instance variables


ami = "ami-06640050dc3f556bb" //RedHat 8.6 AMI
instance_type = "t2.micro"
ec2_tag = "ora_01"
subnet_id = "subnet-04f5fe7073ff514fb"
ssh_key_name = "sufi_new"
root_volume_size = 30


ステップバイステップの手順 - 順番に実行

Details
  1. AWS クラウドシェルに Terraform をインストールします。

    git clone https://github.com/tfutils/tfenv.git ~/.tfenv
    mkdir ~/bin
    ln -s ~/.tfenv/bin/* ~/bin/
    tfenv install
    tfenv use 1.3.9
  2. NetApp GitHub 公開サイトからツールキットをダウンロードしてください。

    git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
  3. init を実行して Terraform を初期化します

    terraform init
  4. 実行計画を出力する

    terraform plan -out=main.plan
  5. 実行計画を適用する

    terraform apply "main.plan"
  6. 完了したら、destroy を実行してリソースを削除します。

    terraform destroy

詳細情報の入手方法

NetAppソリューションの自動化の詳細については、次のWebサイトをご覧ください。"NetAppソリューション自動化"