AWS FSx ONTAPクラスターと EC2 インスタンスのプロビジョニング
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
-
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
-
NetApp GitHub 公開サイトからツールキットをダウンロードしてください。
git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
-
init を実行して Terraform を初期化します
terraform init
-
実行計画を出力する
terraform plan -out=main.plan
-
実行計画を適用する
terraform apply "main.plan"
-
完了したら、destroy を実行してリソースを削除します。
terraform destroy
詳細情報の入手方法
NetAppソリューションの自動化の詳細については、次のWebサイトをご覧ください。"NetAppソリューション自動化"