Amazon ECS での FSx for Windows File Server ファイルシステムの使用 - Amazon Elastic Container Service

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

Amazon ECS での FSx for Windows File Server ファイルシステムの使用

FSx for Windows File Server は、フルマネージド Microsoft Windows ファイルサーバーを提供し、完全にネイティブの Windows ファイルシステムによってバックアップされます。Amazon ECS と共に FSx for Windows File Server を使用する場合、永続的、分散型、共有型、および静的なファイルストレージを使用して、Windows タスクをプロビジョニングすることが可能です。詳細については、[FSx for Windows File Serverユーザーガイド ]の[What Is FSx for Windows File Server?]を参照してください。

FSx for Windows File Server を使用して、共有外部ストレージ、高可用 リージョンストレージ、または高スループットストレージへのアクセスを必要とする Windows ワークロードをデプロイできます。EC2 Windows インスタンスで実行されているコンテナに 1 つ以上の FSx for Windows File Server ファイルシステムボリュームをマウントできます。1 つの ECS タスク内で、複数のコンテナ間で FSx for Windows File Server ファイルシステムボリュームを共有できます。

注記

FSx for Windows File Server は、すべてのリージョンで利用可能ではない場合があります。FSx for Windows ファイルサーバーをサポートするリージョンの詳細については、「AWS 全般のリファレンス」の「Amazon FSx のエンドポイントとクォータ」を参照してください。

このチュートリアルでは、FSx for Windows File Server ファイルシステムと、ファイルシステムにアクセスできるコンテナをホストする ECS 最適化 Windows インスタンスを起動します。これを行うには、まず AWS Directory Service AWS Managed Microsoft Active Directory を作成します。次に、Amazon EC2 インスタンスと ECS タスク定義を使用して、Amazon FSx for Windows File Server のファイルシステムと ECS クラスターを作成します。FSx for Windows File Server ファイルシステムを使用するために、コンテナのタスク定義を設定します。最後に、ファイルシステムをテストします。

アクティブディレクトリ または FSx for Windows File Server ファイルシステムのいずれかを起動または削除するのに、毎回 20~45 分かかります。90 分以上予約して、チュートリアルを完了するか、いくつかのセッションでチュートリアルを完了する準備をしてください。

チュートリアルの前提条件

  • 管理ユーザー。Amazon ECS を使用するようにセットアップする を参照してください。

  • (オプション) RDP アクセスを介して EC2 Windows インスタンスに接続するための PEM キーペア。キーペアの作成方法については、Windows インスタンス用のユーザーガイドの「Amazon EC2 キーペアと Windows インスタンス」を参照してください。

  • 少なくとも 1 つのパブリックサブネットと 1 つのプライベートサブネット、および 1 つのセキュリティグループを持つ VPC。デフォルトの VPC を使用できます。NAT ゲートウェイやデバイスは必要ありません。 AWS Directory Service は、Active Directory でのネットワークアドレス変換 (NAT) をサポートしていません。これを機能させるには、アクティブディレクトリ、FSx for Windows File Server ファイルシステム、ECS クラスター、および EC2 インスタンスが VPC 内に配置されている必要があります。VPC および アクティブディレクトリ の詳細については、「Amazon VPC コンソールウィザードの設定」 および「AWS マネージド Microsoft AD の前提条件」 を参照してください。

  • IAM ecsInstanceRole および ecsTaskExecutionロールのアクセス許可は、 アカウントに関連付けられます。このようなサービスリンクロールを使用すると、サービスが API 呼び出しを行い、ユーザーに代わってコンテナ、シークレット、ディレクトリ、ファイルサーバーにアクセスできます。

ステップ 1: IAM アクセスロールを作成する

AWS Management Consoleを使用してクラスターを作成します。
  1. があるかどうかAmazon ECS コンテナインスタンスの IAM ロールを確認するには「」を ecsInstanceRole 、ない場合は作成方法を確認してください。

  2. 実際の本番環境では、ロールポリシーを最小限のアクセス許可に合わせてカスタマイズすることをお勧めします。このチュートリアルでは、次の AWS 管理ポリシーが にアタッチされていることを確認しますecsInstanceRole。ポリシーがまだアタッチされていない場合は、ポリシーをアタッチします。

    • AmazonEC2ContainerServiceforEC2Role

    • AmazonSSMManagedInstanceCore

    • AmazonSSMDirectoryServiceAccess

    AWS 管理ポリシーをアタッチするには。

    1. IAM コンソールを開きます。

    2. ナビゲーションペインで [ロール] を選択します。

    3. [AWS  管理ロール] を選択します。

    4. [アクセス許可]、[ポリシーのアタッチ] の順に選択します。

    5. アタッチする利用可能なポリシーを絞り込むには、[Filter] を使用します。

    6. 適切なポリシーを選択し、[Attach policy] を選択します。

  3. ecsTaskExecutionロールがあるかどうかAmazon ECS タスク実行IAM ロールを確認するには「」を、ロールがない場合は作成方法を確認してください。

    実際の本番環境では、ロールポリシーを最小限のアクセス許可に合わせてカスタマイズすることをお勧めします。このチュートリアルでは、次の AWS マネージドポリシーがecsTaskExecutionロールにアタッチされていることを確認します。ポリシーがまだアタッチされていない場合は、ポリシーをアタッチします。前のセクションで説明した手順を使用して、 AWS 管理ポリシーをアタッチします。

    • SecretsManagerReadWrite

    • AmazonFSxReadOnlyAccess

    • AmazonSSMReadOnlyAccess

    • AmazonECSTaskExecutionRolePolicy

手順 2: Windows Active Directory (AD) を作成する

  1. 「 Directory Service 管理ガイド」の AWS AWS 「マネージド AD ディレクトリの作成」で説明されている手順に従います。このチュートリアル用に指定した VPC を使用します。[ AWS マネージド AD ディレクトリ の作成 ]のステップ 3 で、次の手順で使用するためにユーザー名とパスワードを保存します。また、今後の手順のために、完全修飾ドメイン名をメモします。Active Directory の作成中に、次の手順を完了することができます。

  2. 次のステップで使用する AWS Secrets Manager シークレットを作成します。詳細については、AWS 「 Secrets Manager ユーザーガイド AWS 」の「Secrets Manager の開始方法」を参照してください。

    1. Secrets Managerコンソール を開きます。

    2. [新しいシークレットを保存する] を選択します。

    3. [その他のシークレット] を選択します。

    4. [シークレットキー/値] では、最初の行に値 admin を含むキー username を作成します。[+ 行を追加] をクリックします。

    5. 新しい行で、キー password を作成します。値には、 AWS 「 Managed AD ディレクトリを作成する」のステップ 3 で入力したパスワードを入力します。

    6. [Next] ボタンをクリックします。

    7. シークレットの名前と説明を入力します。[次へ] をクリックします。

    8. [次へ] をクリックします。[保存] をクリックします。

    9. [シークレット] ページのリストから、作成したシークレットをクリックします。

    10. 次の手順で使用するために、新しいシークレットの ARN を保存します。

    11. Active Directory の作成中に、次の手順に進むことができます。

ステップ 3: セキュリティグループを確認および更新する

このステップでは、使用しているセキュリティグループのルールを確認および更新します。このためには、VPC 用に作成されたデフォルトのセキュリティグループを使用できます。

セキュリティグループを確認および更新します。

ポートとの間でデータを送信するには、セキュリティグループを作成または編集する必要があります。これについては、[FSx for Windows File Server ユーザーガイド]の[Amazon VPC セキュリティグループ]で説明されています。これを行うには、インバウンドルールの次の表の最初の行に示されているセキュリティグループインバウンドルールを作成します。このルールでは、同じセキュリティグループに割り当てられているネットワークインターフェイス (および関連付けられているインスタンス) からのインバウンドトラフィックを使用できます。作成したクラウドリソースはすべて同じ VPC 内にあり、同じセキュリティグループにアタッチされます。したがって、このルールでは、必要に応じて、FSx for Windows File Server ファイルシステム、アクティブディレクトリ、ECSインスタンスとの間でトラフィックを送信することができます。その他のインバウンドルールでは、ウェブサイトでトラフィックを利用し、ECS インスタンスに接続するための RDP アクセスが行えます。

次の表に、このチュートリアルに必要なセキュリティグループのインバウンドルールを示します。

タイプ プロトコル ポート範囲 ソース

すべてのトラフィック

すべて

すべて

sg-securitygroup

HTTPS

TCP

443

0.0.0.0/0

RDP

TCP

3389

ラップトップの IP アドレス

次の表に、このチュートリアルに必要なセキュリティグループのアウトバウンドルールを示します。

タイプ プロトコル ポート範囲 デスティネーション

すべてのトラフィック

すべて

すべて

0.0.0.0/0

  1. EC2 コンソールを開き、左側のメニューから [セキュリティグループ] を選択します。

  2. 表示されるセキュリティグループのリストから、このチュートリアルで使用しているセキュリティグループの左側にあるチェックボックスをオンにします。

    セキュリティグループの詳細が表示されます。

  3. [Inbound rules] (インバウンドルール) または [Outbound rules] (アウトバウンドルール) タブを選択して、[Edit inbound rules] (インバウンドルールの編集) または [Edit outbound rules] (アウトバウンドルールの編集) ボタンを選択して、インバウンドルールおよびアウトバウンドルールを編集します。前の表に表示されたルールと一致するようにルールを編集します。このチュートリアルの後半で EC2 インスタンスを作成した後、Windows インスタンス用 Amazon EC2 ユーザーガイドWindows インスタンスに接続するの説明に従って、EC2 インスタンスのパブリック IP アドレスを使用してインバウンドルールの RDP ソースを編集します。

ステップ 4: FSx for Windows File Server ファイルシステムを作成する

セキュリティグループが検証および更新され、アクティブディレクトリ が作成され、アクティブステータスになったら、Active Directory と同じ VPC に FSx for Windows File Server ファイルシステムを作成します。次のステップを使用して、Windows タスク用の FSx for Windows File Server ファイルシステムを作成します。

最初のファイルシステムを作成します。
  1. [Amazon FSx コンソール] を開きます。

  2. ダッシュボードで [Create file system] (ファイルシステムの作成) を選択して、ファイルシステム作成ウィザードをスタートします。

  3. [Select file system type] (ファイルシステムのタイプを選択) のページで、[FSx for Windows File Server] (FSx for Windows ファイルサーバー) を選択し、[Next] (次へ) を選択します。[Create file system] (ファイルシステムを作成) ページが表示されます。

  4. [File system details] (ファイルシステム詳細) セクションで、ファイルシステムの名前を入力します。ファイルシステムに名前を付けると、ファイルの検索と管理が容易になります。最大 256 文字の Unicode 文字を使用できます。使用できる文字は、文字、数字、スペース、および特殊文字のプラス記号 (+)、マイナス記号 (-)、等号 (=)、ピリオド (.)、アンダースコア (_)、コロン (:)、スラッシュ (/) です。

  5. [Deployment type] で [Single-AZ] を選択して、1 つのアベイラビリティーゾーンにデプロイされたファイルシステムをデプロイします。[Single-AZ 2] (シングル AZ 2) は、最新世代の単一アベイラビリティーゾーンファイルシステムで、SSD および HDD ストレージをサポートします。

  6. [Storage type] で、 [HDD] を選択します。

  7. [Storage capacity] に、ストレージの最小容量を入力します。

  8. [Throughput capacity] はデフォルト設定のままにします。

  9. ネットワークとセキュリティ セクションで、 AWS Directory Service ディレクトリに選択したのと同じ Amazon VPC を選択します。

  10. [VPC Security Groups] で、ステップ 3: セキュリティグループを確認および更新するで検証したセキュリティグループを選択します。

  11. [Windows 認証] では、[AWS マネージド Microsoft アクティブディレクトリ] を選択し、リストからお使いの AWS Directory Service ディレクトリを選択します。

  12. [Encryption] (暗号化) では、[aws / fsx (default)] (aws / fsx (デフォルト) の [Encryption key] (暗号化キー) 設定をデフォルトのままにします。

  13. [Maintenance preferences] ではデフォルト設定のままにします。

  14. [Next] ボタンをクリックします。

  15. [Create file system] (ファイルシステムの作成) ページで表示されるファイルシステム設定を確認します。参照のために、ファイルシステム作成後に変更できるファイルシステム設定を書き留めます。[Create file system] (ファイルシステムの作成) を選択します。

  16. ファイルシステム ID をメモします。ID は後の手順で使用する必要があります。

    FSx for Windows File Server ファイルシステムの作成中に、クラスターと EC2 インスタンスを作成するには、次のステップに進みます。

ステップ 5: Amazon ECS クラスターを作成する

Amazon ECS コンソールを使用してクラスターを作成する
  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインで [Clusters] (クラスター) を選択します。

  4. [Clusters] (クラスター) ページで、[Create Cluster] (クラスターの作成) を選択します。

  5. [クラスター設定][クラスター名] に、「windows-fsx-cluster」と入力します。

  6. インフラストラクチャ を展開し、 AWS Fargate (サーバーレス) をクリアしてから、Amazon EC2 インスタンス を選択します。

    1. Auto Scaling グループを作成するには、Auto Scaling group(ASG) (Auto Scaling グループ) から、[Create new group] (新しいグループの作成) を選択し、グループに関する以下の詳細情報を入力します。

      • [オペレーティングシステム/アーキテクチャ] で [Windows Server 2019 Core] を選択します。

      • [EC2 インスタンスタイプ] で [t2.medium] または [t2.micro] を選択します。

  7. [作成] を選択します。

ステップ 6: Amazon ECS に最適化された Amazon EC2 インスタンスを作成する

Amazon ECS Windows コンテナインスタンスを作成します。

Amazon ECS インスタンスを作成するには
  1. aws ssm get-parameters コマンドを使用して、VPC をホストするリージョン用の AMI 名を取得します。詳細については、「Amazon ECS に最適化された AMI メタデータを取得する」を参照してください。

  2. Amazon EC2 コンソールを使用して、インスタンスを起動します。

    1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

    2. ナビゲーションバーから、使用するリージョンを選択します。

    3. EC2 ダッシュボードから、[Launch Instance] を選択します。

    4. [Name (名前)] に一意の名前を入力します。

    5. [アプリケーションと OS イメージ (Amazon マシンイメージ)] の [検索] フィールドに、取得した AMI 名を入力します。

    6. [インスタンスタイプ] で [t2.medium] または [t2.micro] を選択します。

    7. [Key pair (login)] (キーペア (ログイン)) には、キーペアを選択します。キーペアを指定しない場合、

    8. [ネットワーク設定] の [VPC] と [サブネット]で VPC とパブリックサブネットを選択します。

    9. [Network settings] (ネットワーク設定) にある [Security group] (セキュリティグループ) には、既存のセキュリティグループを選択することも、新しいセキュリティグループを作成することもできます。選択したセキュリティグループに チュートリアルの前提条件 で定義されたインバウンドルールとアウトバウンドルールがあることを確認してください。

    10. [Network settings] (ネットワーク設定) の [Auto-assign Public IP] (パブリック IP の自動割り当て) で、[Enable] (有効にする) を選択します。

    11. [高度な詳細] を展開し、作成した Active Directory の ID を [ドメイン結合ディレクトリ] で選択します。このオプションドメインは、EC2 インスタンスの起動時に AD に参加します。

    12. 詳細 でIAM インスタンスプロファイル に を選択しますecsInstanceRole

    13. 次のユーザーデータを使用して、Amazon ECS コンテナインスタンスを設定します。[Advanced Details] (詳細情報) にある [User data] (ユーザーデータ) フィールドに以下のスクリプトを貼り付け、cluster_name をクラスターの名前に置き換えます。

      <powershell> Initialize-ECSAgent -Cluster windows-fsx-cluster -EnableTaskIAMRole </powershell>
    14. 準備ができたら、確認フィールドを選択してから、[Launch Instances] を選択します。

    15. 確認ページは、インスタンスが起動中であることを通知します。[View Instances] (インスタンスを表示) を選択して確認ページを閉じ、コンソールに戻ります。

  3. コンソールをhttps://console.aws.amazon.com/ecs/v2で開きます。

  4. ナビゲーションペインで、クラスター を選択し、 を選択しますwindows-fsx-cluster

  5. インフラストラクチャ タブを選択し、インスタンスがwindows-fsx-clusterクラスターに登録されていることを確認します。

ステップ 7: Windows タスク定義を登録する

Amazon ECS クラスターで Windows コンテナを実行する前に、タスク定義を登録する必要があります。次のタスク定義の例では、シンプルなウェブページを表示します。このタスクは、FSx ファイルシステムにアクセスできる 2 つのコンテナを起動します。最初のコンテナは HTML ファイルをファイルシステムに書き込みます。2 番目のコンテナは、ファイルシステムから HTML ファイルをダウンロードし、ウェブページを提供します。

  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

  2. ナビゲーションペインで、タスクの定義 を選択します。

  3. [Create new task definition] (新しいタスク定義の作成)、[Create new task definition with JSON] (JSON で新しいタスク定義を作成) の順に選択します。

  4. JSON エディタボックスで、タスク実行ロールの値と FSx ファイルシステムの詳細を置き換えてから [保存] を選択します。

    { "containerDefinitions": [ { "entryPoint": [ "powershell", "-Command" ], "portMappings": [], "command": ["New-Item -Path C:\\fsx-windows-dir\\index.html -ItemType file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>It Works!</h2> <p>You are using Amazon FSx for Windows File Server file system for persistent container storage.</p>' -Force"], "cpu": 512, "memory": 256, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "essential": false, "name": "container1", "mountPoints": [ { "sourceVolume": "fsx-windows-dir", "containerPath": "C:\\fsx-windows-dir", "readOnly": false } ] }, { "entryPoint": [ "powershell", "-Command" ], "portMappings": [ { "hostPort": 443, "protocol": "tcp", "containerPort": 80 } ], "command": ["Remove-Item -Recurse C:\\inetpub\\wwwroot\\* -Force; Start-Sleep -Seconds 120; Move-Item -Path C:\\fsx-windows-dir\\index.html -Destination C:\\inetpub\\wwwroot\\index.html -Force; C:\\ServiceMonitor.exe w3svc"], "mountPoints": [ { "sourceVolume": "fsx-windows-dir", "containerPath": "C:\\fsx-windows-dir", "readOnly": false } ], "cpu": 512, "memory": 256, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "essential": true, "name": "container2" } ], "family": "fsx-windows", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "volumes": [ { "name": "fsx-windows-dir", "fsxWindowsFileServerVolumeConfiguration": { "fileSystemId": "fs-0eeb5730b2EXAMPLE", "authorizationConfig": { "domain": "example.com", "credentialsParameter": "arn:arn-1234" }, "rootDirectory": "share" } } ] }

ステップ 8: タスクを実行して結果を表示する

タスクを実行する前に、FSx for Windows File Server ファイルシステムのステータスが [Available] であることを確認します。利用可能になったら、作成したタスク定義を使用してタスクを実行できます。タスクはコンテナを作成することから始まります。コンテナはファイルシステムを使用してコンテナ間で HTML ファイルをシャッフルします。シャッフル後、ウェブサーバーは単純な HTML ページを提供します。

注記

VPN 内からそのウェブサイトに接続できない場合があります。

Amazon ECS コンソールを使用して、タスクを実行して結果を表示します。
  1. コンソールをhttps://console.aws.amazon.com/ecs/v2で開きます。

  2. ナビゲーションペインで、クラスター を選択し、 を選択しますwindows-fsx-cluster

  3. [タスク] タブを選択し、[新しいタスクを実行] を選択します。

  4. [起動タイプ] で、[EC2] を選択します。

  5. デプロイ設定の [タスク定義] で [fsx-windows] を選択し、[作成] を選択します。

  6. タスクのステータスが [実行中] の場合は、タスク ID を選択します。

  7. [コンテナ] で container1 のステータスが [停止] の場合、 container2 を選択してコンテナの詳細を表示します。

  8. [container2 のコンテナの詳細] で [ネットワークバインディング] を選択し、コンテナに関連付けられている外部 IP アドレスをクリックします。ブラウザが開き、次のメッセージが表示されます。

    Amazon ECS Sample App
    It Works! 
    You are using Amazon FSx for Windows File Server file system for persistent container storage.
    注記

    メッセージが表示されるまでに数分かかることがあります。このメッセージが数分経っても表示されない場合は、VPN で実行していないことを確認し、コンテナインスタンスのセキュリティグループがポート 443 でのインバウンドネットワーク HTTP トラフィックを許可していることを確認します。

ステップ 9: クリーンアップする。

注記

FSx for Windows File Server ファイルシステムまたは AD の削除には、20~45分かかります。AD の削除操作を開始する前に、FSx for Windows File Server ファイルシステムの削除操作が完了するまで待たなければなりません。

FSx for Windows File Server ファイルシステムを削除します。
  1. [Amazon FSxコンソール] を開きます。

  2. 作成した FSx for Windows File Server ファイルシステムの左側にあるラジオボタンを選択します。

  3. [アクション] を選択します。

  4. [Delete file system] をクリックします。

AD を削除します。
  1. AWS Directory Service コンソールを開きます。

  2. 作成した AD の左側にあるラジオボタンを選択します。

  3. [アクション] を選択します。

  4. [Delete directory] を選択します。

クラスターを削除します。
  1. コンソールをhttps://console.aws.amazon.com/ecs/v2で開きます。

  2. ナビゲーションペインで、クラスター を選択し、 を選択しますfsx-windows-cluster

  3. [クラスターの削除] を選択します。

  4. フレーズを入力し、[削除] を選択します。

EC2 インスタンスを終了します。
  1. Amazon EC2 コンソールを開きます。

  2. 左側のメニューから、[Instances] を選択します。

  3. 作成した EC2 インスタンスの左側にあるボックスをチェックします。

  4. [インスタンス状態][インスタンスを終了] の順にクリックします。

シークレットを削除します。
  1. Secrets Managerコンソール を開きます。

  2. このチュートリアル用に作成したシークレットを選択します。

  3. [Actions] をクリックします。

  4. [Delete secret] を選択します。