AWS での Runtime Fabric のインストール

このトピックでは、AWS アカウントで Anypoint Runtime Fabric をインストールする方法について説明します。

Runtime Fabric をインストールする前に、インフラストラクチャがハードウェア、オペレーティングシステム、ネットワークの最小要件を満たしていることを確認してください。

組織の運用チーム、ネットワークチーム、セキュリティチームは、これらの要件を確認する必要があります。​「Anypoint Runtime Fabric のシステム要件」​および​「Anypoint Runtime Fabric のネットワークとポートの要件」​を参照してください。

開始する前に

AWS で Anypoint Runtime Fabric をインストールするには、次の要件を満たしていることを確認してください。

  • Runtime Manager で Runtime Fabric を作成​している。

  • Anypoint Platform ユーザアカウントに「​Manage Runtime Fabrics (Runtime Fabric の管理)​」権限がある。

  • マシンで Terraform を実行できる。

  • AWS ユーザに EC2 インスタンス、ディスク、VPC、セキュリティグループを作成するためのアクセス権がある。

  • AWS アカウントに Anypoint Runtime Fabric を実行するのに必要なインフラストラクチャの十分なクォータがある。これには、追加の VPC、ED2 インスタンス、ディスク、セキュリティグループ、および他の必要なリソースを作成する容量があることも含まれます。

  • 仮想マシンをプロビジョニングするのに必要な AWS キーペア​がある。このキーペアは、SSH (Secure Shell) を介した VM へのセキュアなアクセスを有効にするのに必要です。

  • AWS 固有の環境変数 (​AWS_ACCESS_KEY_ID​、​AWS_SECRET_ACCESS_KEY​、​AWS_SESSION_TOKEN​、​AWS_REGION​、​AWS_DEFAULT_REGION​) へのアクセス権がある 。これらは、Terraform スクリプトを実行するのに必要です。これらの値がわからない場合は、AWS 管理者にお問い合わせください。

  • 環境で実行されているすべてのウィルス対策エージェント (McAfee など) が無効化されている。

Mule ライセンスキーの Base64 でのエンコード

Runtime Fabric をインストールするには、Mule ライセンスキーが Base64 でエンコードされている必要があります。組織の Mule Enterprise ライセンスキーファイル (license.lic) を見つけ、オペレーティングシステムに応じて以下を実行します。

Linux

Linux でライセンスファイルをエンコードするには、以下を実行します。

base64 -w0 license.lic

MacOS

MacOS でライセンスファイルをエンコードするには、ターミナルから以下を実行します。

base64 -b0 license.lic

Windows

Windows でライセンスファイルをエンコードするには、シェルターミナルエミュレータ (cygwin など) や Unix ベースのコンピュータを使用して、次の手順を実行します。

  1. 組織の Mule Enterprise ライセンスキーファイル (​license.lic​) を見つけ、必要に応じて Unix 環境に転送します。

  2. 次のコマンドを実行して、ライセンスキーを Base64 でエンコードします。

    base64 -w0 license.lic

Terraform のインストール

MuleSoft には、必要な AWS リソースをプロビジョニングするために実行する Terraform スクリプトが用意されています。次のいずれかの方法で Terraform スクリプトを実行できます。

  • Terraform​ をダウンロードして手動でマシンにインストールする。ターミナルで ​terraform --version​ を実行して、インストールされた Terraform のバージョンが ​0.12.6​ 以降であることを確認します。

  • Docker 内で Terraform を使用する。

Terraform スクリプトをダウンロードする

  1. Anypoint Platform にサインインし、[Runtime Manager] に移動します。

  2. 左側のナビゲーションペインで、​Runtime Fabric​ を選択します。

  3. Runtime Fabric の名前をクリックします。その状態は [Activating (アクティブ化中)] になっている必要があります。

  4. [Download files (ファイルをダウンロード)]​ をクリックします。

  5. ダウンロードが完了したら、​rtf-install-scripts.zip​ ファイルを展開します。

Runtime Fabric インストーラのコンテンツ

rtf-install-scripts​ フォルダ内には、以下が含まれる ​aws​ フォルダがあります。

  • fabric.tf​: AWS アカウントでインフラストラクチャをプロビジョニングする Terraform スクリプト。

  • network_ingress.tf​: ネットワークイングレスに使用されるセキュリティグループルールを含む Terraform スクリプト。

  • network_egress.tf​: ネットワークエグレスに使用されるセキュリティグループルールを含む Terraform スクリプト。

  • installer_env.sh​: インストール中にリーダーとして機能するコントローラ VM に追加される環境変数のシェルスクリプト。

  • controller_env.sh​: 他のコントローラ VM に追加される環境変数のシェルスクリプト。

  • worker_env.sh​: ワーカー VM に追加される環境変数のシェルスクリプト。

  • README.md​: インストール手順が含まれるマークダウンファイル。

fabric.tf スクリプトの変更

Terraform を実行する前に、特定の環境が反映されるように ​fabric.tf​ スクリプトを変更します。以下の表には、必須の環境変数と省略可能な環境変数が記載されています。

環境に応じて、以下の表に記載されていない、​fabric.tf​ 内で指定される環境変数を変更することが必要になる場合もあります。これは、既存の AWS リソース (既存の VPC など) を使用する必要がある場合に多くみられます。

必須の環境変数

変数 説明

activation_data

エンコードされた Runtime Fabric アクティベーションデータ。このデータにアクセスするには、Runtime Manager で Runtime Fabric を表示します。

NzdlMzU1YTktMzAxMC00OGE0LWJlMGQtMDdxxxx

key_pair

デプロイ先の AWS リージョンのキーペアの名前。

my-keypair

enable_public_ips

インストーラで各 VM の公開 IP アドレスを作成するかどうかを指定します。公開 IP を使用すると、ネットワークから直接 VM に ​ssh​ で接続できます。この値が ​false​ (デフォルト) に設定されている場合、各 VM はその VPC で設定されたプライベートネットワークにしかアクセスできません。​false​ を指定する場合、VM へのシェル/SSH アクセス権を取得する方法についてネットワーク管理者と相談していることを確認してください。

true

controllers

プロビジョニングするコントローラ VM の数。

3

workers

プロビジョニングするワーカー VM の数。

3

mule_license

組織の Mule Enterprise ライセンスキー (​license.lic​) を Base64 でエンコードしたコンテンツ。

省略可能な環境変数

変数 説明

service_uid

各 Runtime Fabric サービスを実行するユーザ ID を表す整数。「planet」という名前のユーザを作成するデフォルトの動作を上書きします。

1000

service_gid

各 Runtime Fabric サービスを実行するときに使用されるグループ ID を表す整数。「planet」という名前のグループを作成するデフォルトの動作を上書きします。

900

http_proxy

アウトバウンド HTTP 要求を転送する HTTP プロキシサーバのホスト名およびポート。

1.1.1.1:80

monitoring_proxy

SOCKS5 プロキシサーバがメトリクスとログを Anypoint Monitoring に転送するためのホスト名とポート、および省略可能なユーザ名とパスワード。

user:pass@1.1.1.2:800

no_proxy

プロキシをバイパスする必要があるホストのカンマ区切りリスト。

1.1.1.1,no-proxy.com

existing_vpc_id

既存の AWS Virtual Private Cloud (VPC) を指定します。既存の VPC にインストールする場合に必要になります。インストーラは、新しい VPC を作成せずにこの VPC を使用します。

existing_subnet_ids

AWS 内の既存のサブネット ID を指定します。既存のネットワークにインストールする場合に必要になります。インストーラは、新しいサブネットを作成せずにこれらのサブネットを使用します。

pod_network_cidr_block

カスタムポッド CIDR ブロックをサポートします。

10.244.0.0/16

service_cidr_block

カスタムサービス CIDR ブロックをサポートします。

10.100.0.0/16

AWS にアクセスする環境の設定

Terraform スクリプトを実行するには、ターミナルで AWS API アクセスを設定する必要があります。​AWS_ACCESS_KEY_ID​、​AWS_SECRET_ACCESS_KEY​、および他の環境変数 (​AWS_SESSION_TOKEN​、​AWS_REGION​、​AWS_DEFAULT_REGION​ など) の値を定義します 。これらは、アカウントの AWS API にアクセスするのに必要です。

これらが正しく設定されていることを確認するには、​aws-cli​ ツールを実行できる必要があります (マシンにインストールされている場合)。

Terraform スクリプトの実行

AWS 環境が反映されるように ​fabric.tf​ を変更したら、Terraform スクリプトを実行して Runtime Fabric をインストールします。

Terraform の状態ファイル

Terraform は、実行時に状態ファイルを生成して、デプロイメントの詳細をキャプチャします。以下の例では、状態ファイルが ​tf-data/rtf.tfstate​ にあります 。Runtime Fabric インフラストラクチャを作成するたびに、個別の状態ファイルを作成および維持する必要があります。

状態ファイルは安全な場所に保管してください。このファイルは、このデプロイメントを変更する場合 (ワーカーまたはコントローラ VM の数をスケールする場合など) に必要になります。

ネイティブ Terraform を使用して実行する

  1. ../rtf-install-scripts/aws/​ ディレクトリに移動します。このディレクトリから terraform を実行する必要があります。

  2. terraform を初期化します (これは 1 回のみ実行する必要がある)。

    terraform init
  3. 次のスクリプトをテキストエディタをコピーします。

    terraform apply \
      -var activation_data='' \
      -var key_pair='' \
      -var enable_public_ips='' \
      -var controllers='3' \
      -var workers='3' \
      -var mule_license='' \
      -state=tf-data/rtf.tfstate
  4. 上記の環境変数の表のデータを使用して、これを変更します。

  5. ターミナルに上記の必須の AWS 固有の環境変数へのアクセス権があることを確認します。

    AWS 認証に関するエラーが発生した場合、変数の確認と Terraform コマンドの実行で同じターミナルウィンドウを使用していることを確認してください。

  6. スクリプトを実行します。

Terraform スクリプトは、インフラストラクチャをプロビジョニングして、各 VM でインストールスクリプトを実行します。完了すると、Runtime Manager の Runtime Fabric の状況が [Active (アクティブ)] に更新されます。

このステップにより、クラスタを形成するすべてのサーバに Runtime Fabric がインストールされます。完了するまでに 15 ~ 25 分以上かかることがあります。

Docker を使用して実行する

  1. ../rtf-install-scripts/​ ディレクトリに移動します。このディレクトリから terraform を実行する必要があります。​dir​ または ​ls​ コマンドを実行すると、​aws​ ディレクトリが他のディレクトリ (​azure​ や ​manual​ など) と共にリストされます。

  2. terraform を初期化します (これは 1 回のみ実行する必要がある)。

    docker run -v $(pwd):/src -w /src/aws \
      -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_SESSION_TOKEN \
      hashicorp/terraform:0.12.6 init
  3. 以下をテキストエディタをコピーします。

      -var activation_data='' \
      -var key_pair='' \
      -var enable_public_ips='' \
      -var controllers='3' \
      -var workers='3' \
      -var mule_license='' \
      -state=tf-data/rtf.tfstate
  4. 上記の環境変数の表のデータを使用して、これを変更します。

  5. Terraform スクリプトを実行します。

docker run -it -v $(pwd):/src -w /src/aws \
  -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_SESSION_TOKEN \
  hashicorp/terraform:0.12.6 apply \
  -var activation_data='' \
  -var key_pair='' \
  -var enable_public_ips='' \
  -var controllers='3' \
  -var workers='3' \
  -var mule_license='' \
  -state=tf-data/rtf.tfstate

Terraform スクリプトは、インフラストラクチャをプロビジョニングして、各 VM でインストールスクリプトを実行します。完了すると、Runtime Manager の Runtime Fabric の状況が [Active (アクティブ)] に更新されます。

このステップにより、クラスタを形成するすべてのサーバに Runtime Fabric がインストールされます。完了するまでに 15 ~ 25 分以上かかることがあります。

インストールの進行状況の監視

インストール中に進行状況を参照するには、各 VM の出力ログを確認します。

  1. 最初のコントローラ VM へのシェル (SSH セッション) を開きます。

  2. 次のコマンドを使用して、​/var/log/rtf-init.log​ にある出力ログを確認します。

    tail -f /var/log/rtf-init.log
各 VM の同じログを確認して、その進行状況を参照できます。

インストールが正常に完了したら、インストーラによって ​/opt/anypoint/runtimefabric/.state/init-complete​ ファイルが作成されます。

オペレーションセンターへのアクセス

インストールが正常に完了したら、オペレーションセンターにログインして Runtime Fabric インフラストラクチャの状況を表示します。オペレーションセンターへのアクセスとオペレーションセンターのユーザ名とパスワードの決定については、​「Anypoint Runtime Fabric でのオペレーションセンターの使用」​を参照してください。

デフォルトでは、Terraform スクリプトでは、オペレーションセンターポートをインターネットに公開しないように AWS セキュリティグループが設定されています。 公開 IP を使用してオペレーションセンターでクラスタを管理するには、​enable_public_ips​ 変数を使用して公開 IP でコントローラノードをプロビジョニングする必要があります。ポート 32009 での TCP 接続に対して 0.0.0.0 インターネットアクセスを許可するようにセキュリティグループを調整する必要があります。