Terraform と DRA を使用して、高性能のデータ処理用の Lustre ファイルシステムをデプロイする - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Terraform と DRA を使用して、高性能のデータ処理用の Lustre ファイルシステムをデプロイする

Arun bagal と Ishwar Chauthaiwale、Amazon Web Services

概要

このパターンは、Lustre ファイルシステムを に自動的にデプロイ AWS し、Amazon Elastic Compute Cloud (Amazon EC2) および Amazon Simple Storage Service (Amazon S3) と統合します。

このソリューションは、統合されたストレージ、コンピューティングリソース、Amazon S3 データアクセスを備えたハイパフォーマンスコンピューティング (HPC) 環境を迅速にセットアップするのに役立ちます。Lustre のストレージ機能と、Amazon EC2 が提供する柔軟なコンピューティングオプション、Amazon S3 のスケーラブルなオブジェクトストレージの組み合わせにより、機械学習、HPC、ビッグデータ分析でデータ集約型のワークロードに取り組むことができます。

このパターンでは、HashiCorp Terraform モジュールと Amazon FSx for Lustre を使用して、次のプロセスを合理化します。

  • Lustre ファイルシステムのプロビジョニング

  • FSx for Lustre と S3 バケット間のデータリポジトリの関連付け (DRA) を確立して、Lustre ファイルシステムを Amazon S3 オブジェクトにリンクする

  • EC2 インスタンスの作成

  • Amazon S3 にリンクされた DRA を使用して Lustre ファイルシステムを EC2 インスタンスにマウントする

このソリューションには次のような利点があります。

  • モジュラー設計。このソリューションの個々のコンポーネントを簡単に維持および更新できます。

  • スケーラビリティ。整合性のある環境を AWS アカウント または リージョンにすばやくデプロイできます。

  • 柔軟性。特定のニーズに合わせてデプロイをカスタマイズできます。

  • ベストプラクティス。このパターンでは、 AWS ベストプラクティスに従う事前設定されたモジュールを使用します。

Lustre ファイルシステムの詳細については、Lustre のウェブサイトを参照してください。

前提条件と制限事項

前提条件

  • アクティブな AWS アカウント

  • 最小特権 AWS Identity and Access Management (IAM) ポリシー (手順を参照)

制限事項

FSx for Lustre は、Lustre ファイルシステムを 1 つのアベイラビリティーゾーンに制限します。これは、高い可用性要件がある場合に懸念材料となる可能性があります。ファイルシステムを含むアベイラビリティーゾーンに障害が発生した場合、復旧するまでファイルシステムへのアクセスは中断されます。高可用性を実現するには、DRA を使用して Lustre ファイルシステムを Amazon S3 にリンクし、アベイラビリティーゾーン間でデータを転送します。

製品バージョン

アーキテクチャ

次の図は、FSx for Lustre と補完的な AWS のサービス のアーキテクチャを示しています AWS クラウド。

AWS KMS、Amazon EC2、Amazon CloudWatch Logs、Amazon S3 を使用した FSx for Lustre のデプロイ。

このアーキテクチャには、以下の項目が含まれます。

  • S3 バケットは、耐久性、スケーラビリティ、コスト効率に優れたデータのストレージの場所として使用されます。FSx for Lustre と Amazon S3 の統合により、Amazon S3 とシームレスにリンクされた高性能ファイルシステムが実現されます。

  • FSx for Lustre は Lustre ファイルシステムを実行および管理します。

  • Amazon CloudWatch Logs は、ファイルシステムからログデータを収集してモニタリングします。これらのログから、Lustre ファイルシステムのパフォーマンス、状態、アクティビティに関する情報を取得できます。

  • Amazon EC2 は、オープンソースの Lustre クライアントを使用して Lustre ファイルシステムにアクセスするために使用されます。EC2 インスタンスでは、同じ仮想プライベートクラウド (VPC) 内の他のアベイラビリティーゾーンからファイルシステムにアクセスできます。ネットワーク設定により、VPC 内のサブネット間のアクセスが可能になります。Lustre ファイルシステムがインスタンスにマウントされたら、ローカルファイルシステムと同じように、ファイルやディレクトリを操作できるようになります。

  • AWS Key Management Service (AWS KMS) は、保管中のデータの暗号化を提供することで、ファイルシステムのセキュリティを強化します。

自動化とスケール

Terraform を使用すると、複数の環境にまたがる Lustre ファイルシステムのデプロイ、管理、スケーリングが容易になります。FSx for Lustre では、1 つのファイルシステムにサイズの制限があるため、複数のファイルシステムを作成して水平方向にスケールしなければならない場合があります。Terraform を使用して、ワークロードのニーズに基づいて複数の Lustre ファイルシステムをプロビジョニングできます。

ツール

AWS のサービス

  • Amazon CloudWatch Logs を使用すると、すべてのシステム、アプリケーション、 からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。

  • Amazon Elastic Compute Cloud (Amazon EC2) は、 AWS クラウドでスケーラブルなコンピューティング容量を提供します。仮想サーバーを必要な数だけ起動して、迅速にスケールアップまたはスケールダウンができます。

  • Amazon FSx for Lustre を使用すると、高性能の Lustre ファイルシステムを簡単かつ費用効果の高い方法で起動し、実行し、スケールすることができます。

  • AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。

  • Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。

コードリポジトリ

このパターンのコードは、GitHub の「Provision FSx for Lustre Filesystem using Terraform」リポジトリで入手できます。

ベストプラクティス

  • 次の変数は、Lustre ファイルシステムを定義します。エピックセクションの指示に従い、お使いの環境に基づいてこれらを正しく設定してください。

    • storage_capacity – Lustre ファイルシステムのストレージ容量 (GiB 単位)。最小およびデフォルト設定は 1200 GiB です。

    • deployment_type – Lustre ファイルシステムのデプロイタイプ。2 つのオプションである PERSISTENT_1PERSISTENT_2 (デフォルト) の説明については、「FSx for Lustre ドキュメント」を参照してください。

    • per_unit_storage_throughput – 読み取りおよび書き込みスループット (1 TiB あたり MB/秒)。 

    • subnet_id – FSx for Lustre をデプロイするプライベートサブネットの ID。

    • vpc_id – FSx for Lustre をデプロイ AWS する仮想プライベートクラウドの ID。

    • data_repository_path – Lustre ファイルシステムにリンクされる S3 バケットへのパス。

    • iam_instance_profile – EC2 インスタンスの起動に使用する IAM インスタンスプロファイル。

    • kms_key_id – データ暗号化に使用される AWS KMS キーの Amazon リソースネーム (ARN)。

  • security_group 変数と vpc_id 変数を使用して、VPC 内の適切なネットワークアクセスと配置を確認します。

  • エピック」セクションの説明に従って terraform plan コマンドを実行して、変更を適用する前にプレビューおよび検証します。これにより、潜在的な問題を検出し、デプロイされる内容を確実に把握することができます。

  • エピック」セクションの説明に従って terraform validate コマンドを実行して、構文エラーをチェックし、設定が正しいことを確認します。

エピック

タスク説明必要なスキル

Terraform をインストールします。

ローカルマシンに Terraform をインストールするには、「Terraform ドキュメント」の指示に従ってください。

AWS DevOps、DevOps エンジニア

AWS 認証情報を設定します。

アカウントの AWS Command Line Interface (AWS CLI) プロファイルを設定するには、 AWS ドキュメントの指示に従います。

AWS DevOps、DevOps エンジニア

GitHub リポジトリのクローンを作成します。

GitHub リポジトリを複製するには、コマンドを実行します。

git clone https://github.com/aws-samples/provision-fsx-lustre-with-terraform.git
AWS DevOps、DevOps エンジニア
タスク説明必要なスキル

デプロイ設定を更新します。

  1. ローカルマシンのクローンされたリポジトリで、fsx_deployment ディレクトリに移動します。

    cd fsx_deployment
  2. terraform.tfvars ファイルを開いて、以下の変数の値を更新します。

    • vpc_id

    • subnet_id

    • data_repository_path

    • iam_instance_profile

    • kms_key_id

    これらの変数の詳細については、「ベストプラクティス」セクションを参照してください。

  3. 同じディレクトリで locals.tf ファイルを開き、fsx_inress および fsx_egress セキュリティグループ変数の CIDR 範囲を更新します。

  4. 必要に応じて variables.tf ファイルを開き、これらの変数のデフォルト値を更新します。

    • storage_capacity

    • deployment_type

    • per_unit_storage_throughput

    これらの変数の詳細については、「ベストプラクティス」セクションを参照してください。

AWS DevOps、DevOps エンジニア

Terraform 環境を初期化します。

環境を初期化して Terraform fsx_deployment モジュールを実行するには、以下を実行します。

terraform init
AWS DevOps、DevOps エンジニア

Terraform 構文を検証します。

構文エラーをチェックし、設定が正しいことを確認するには、以下を実行します。

terraform validate
AWS DevOps、DevOps エンジニア

Terraform 設定を検証します。

Terraform 実行プランを作成し、デプロイをプレビューするには、以下を実行します。

terraform plan -var-file terraform.tfvars
AWS DevOps、DevOps エンジニア

Terraform モジュールをデプロイします。

FSx for Lustre リソースをデプロイするには、以下を実行します。

terraform apply -var-file terraform.tfvars
AWS DevOps、DevOps エンジニア
タスク説明必要なスキル

AWS リソースを削除します。

FSx for Lustre 環境の使用が終了したら、Terraform によってデプロイされた AWS リソースを削除して、不要な料金が発生しないようにできます。コードリポジトリで提供される Terraform モジュールは、このクリーンアップを自動化します。

  1. ローカルリポジトリで、fsx_deployment ディレクトリに移動します。

    cd fsx_deployment
  2. コマンドを実行します。

    terraform destroy -var-file terraform.tfvars
AWS DevOps、DevOps エンジニア

トラブルシューティング

問題ソリューション

FSx for Lustre はエラーを返します。

FSx for Lustre の問題に関するヘルプについては、FSx for Lustre ドキュメントの「Amazon FSx for Lustre のトラブルシューティング」を参照してください。

関連リソース