このトピックでは、AWS アカウントで VM/ベアメタルの Anypoint Runtime Fabric をインストールする方法について説明します。AWS EKS を使用して自己管理型 Kubernetes の Runtime Fabric をインストールすることもできます。
|
Runtime Fabric をインストールする前に、「VM/ベアメタルの Runtime Fabric の共有責任」を参照してください。インフラストラクチャがハードウェア、オペレーティングシステム、ネットワークの最小要件を満たしていない場合、VM/ベアメタルの Runtime Fabric は正常に動作しません。 組織の運用チーム、ネットワークチーム、セキュリティチームが関与する必要があります。「Anypoint Runtime Fabric インストールの前提条件」を参照してください。 |
始める前に
AWS で VM/ベアメタルの Anypoint Runtime Fabric をインストールするには、次の要件を満たしていることを確認してください。
-
Anypoint Platform ユーザーアカウントに「Manage Runtime Fabrics (Runtime Fabric の管理)」権限がある。
-
マシンで Terraform を実行できる。
-
AWS ユーザーに EC2 インスタンス、ディスク、VPC、セキュリティグループを作成するためのアクセス権がある。
詳細は、 「IAM ポリシーシミュレーターを使用した IAM ポリシーのテスト」を参照してください。
-
AWS アカウントに Anypoint Runtime Fabric を実行するのに必要なインフラストラクチャの十分なクォータがある。これには、追加の VPC、EC2 インスタンス、ディスク、セキュリティグループ、および他の必要なリソースを作成する容量があることも含まれます。
-
仮想マシンをプロビジョニングするのに必要な 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) を見つけ、オペレーティングシステムに応じて以下を実行します。
-
MuleSoft から提供された新しい Mule
.lic ライセンスファイルを Base64 でエンコードします。-
MacOS では、次のコマンドをターミナルで実行します。
BASE64_ENCODED_LICENSE=$(base64 -b0 license.lic)
-
Unix では、次のコマンドを実行します。
BASE64_ENCODED_LICENSE=$(base64 -w0 license.lic)
-
Windows では、次のいずれかを選択します。
-
base64 ツールが含まれる WSL または Cygwin シェルを使用し、上記の Unix コマンドを使用します。
-
Windows git (
C:\Program Files\Git\usr\bin) と一緒に含まれている base64.exe プログラムを使用します。 -
次の Powershell コマンドを使用します。
$BASE64_ENCODED_LICENSE=[convert]::ToBase64String((Get-Content -path "license.lic" -Encoding byte))
-
-
Terraform のインストール
MuleSoft には、必要な AWS リソースをプロビジョニングするために実行する Terraform スクリプトが用意されています。プロビジョニングスクリプトは、自分のインストールに合わせて修正できます。たとえば、ディスクの暗号化や EBS ボリュームの暗号化を有効化できます。VM/ベアメタルの Runtime Fabric は、「VM/ベアメタルの Runtime Fabric インストールの前提条件」の最小要件以上が提供されている限りサポートされます。
次のいずれかの方法で Terraform スクリプトを実行できます。
-
Terraform をダウンロードして手動でマシンにインストールする。ターミナルで
terraform --version を実行して、インストールされた Terraform のバージョンが 0.12.6 以降であることを確認します。 -
Docker 内で Terraform を使用する。
VM/ベアメタルの 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 スクリプトを変更します。次の表には、必須の環境変数と省略可能な環境変数が記載されています。
|
環境に応じて、以下の表に記載されていない、 VM/ベアメタルの Runtime Fabric では、インバウンドロードバランサーは共有モードまたは専用モードで実行されます。
詳細は、「Runtime Fabric の管理」を参照してください。 |
必須の環境変数
| 変数 | 説明 | 例 |
|---|---|---|
|
エンコードされた Runtime Fabric アクティベーションデータ。このデータにアクセスするには、Runtime Manager で Runtime Fabric を表示します。 |
|
|
デプロイ先の AWS リージョンのキーペアの名前。 |
|
|
インストーラーで各 VM の公開 IP アドレスを作成するかどうかを指定します。公開 IP を使用すると、ネットワークから直接 VM に |
|
|
プロビジョニングするコントローラー VM の数。 |
|
|
プロビジョニングするワーカー VM の数。 |
|
|
組織の Mule Enterprise ライセンスキー ( |
省略可能な環境変数
| 変数 | 説明 | 例 |
|---|---|---|
|
ホストのオペレーティングシステムで AWS メタデータサービスをブロックするブール変数。デフォルト値は |
|
|
プロビジョニングするコントローラーマシンの数。デフォルト値は |
|
|
ホストのオペレーティングシステムで SELinux を無効化/有効化するブール変数。デフォルト値は |
|
|
公開 IP アドレスを指定する必要があるかどうかを示すブール変数。デフォルト値は |
|
|
AWS 内の既存のサブネット ID のリスト。既存のネットワークにインストールする場合に必要になります。インストーラーは、新しいサブネットを作成せずにこれらのサブネットを使用します。 |
|
|
既存の AWS Virtual Private Cloud (VPC) の VPC ID。既存の VPC にインストールする場合に必要になります。インストーラーは、新しい VPC を作成せずにこの VPC を使用します。 |
|
|
アウトバウンド HTTP 要求を転送する HTTP プロキシサーバーのホスト名およびポート。 |
|
|
Runtime Fabric インストーラーパッケージの URL。 |
|
|
Kubernetes API へのアクセスを可能にする CIDR 範囲。デフォルトは空の配列 |
|
|
SOCKS5 プロキシサーバーがメトリクスとログを Anypoint Monitoring に転送するためのホスト名とポート、および省略可能なユーザー名とパスワード。 |
|
|
Mule ライセンスの base64 コンテンツ。 |
|
|
プロキシをバイパスする必要があるホストのカンマ区切りリスト。 |
|
|
オペレーションセンター UI へのアクセスを可能にする CIDR 範囲。デフォルトは空の配列 |
|
|
カスタムポッド CIDR ブロックのサポートを提供します。 |
|
|
カスタムサービス CIDR ブロックのサポートを提供します。 |
|
|
各 Runtime Fabric サービスを実行するユーザー ID を表す整数。「planet」という名前のユーザーを作成するデフォルトの動作を上書きします。 |
|
|
各 Runtime Fabric サービスを実行するときに使用されるグループ ID を表す整数。「planet」という名前のグループを作成するデフォルトの動作を上書きします。 |
|
|
プロビジョニングするワーカーマシンの数。デフォルト値は |
|
|
非公開 IP アドレスがネットワークインターフェースから検出されることを許可します。 |
|
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 スクリプトを実行して VM/ベアメタルの Runtime Fabric をインストールします。
内部ロードバランサーは、共有モードの場合はコントローラーノード全体に分散され、専用モードの場合は内部ロードバランサーノードにデプロイされます。
Terraform の状態ファイル
Terraform は、実行時に状態ファイルを生成して、デプロイメントの詳細を取得します。以下の例では、状態ファイルが tf-data/rtf.tfstate にあります。Runtime Fabric インフラストラクチャを作成するたびに、個別の状態ファイルを作成および維持する必要があります。
| 状態ファイルは安全な場所に保管してください。このファイルは、このデプロイメントを変更する場合 (ワーカーまたはコントローラー VM の数をスケールする場合など) に必要になります。 |
ネイティブ Terraform を使用して実行する
-
../rtf-install-scripts/aws/ ディレクトリに移動します。このディレクトリから Terraform を実行する必要があります。 -
Terraform を初期化します (これを 1 回のみ実行します)。
terraform init
-
次のスクリプトをテキストエディターをコピーします。
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
-
上記の環境変数の表のデータを使用して、これを変更します。
-
ターミナルに上記の必須の AWS 固有の環境変数へのアクセス権があることを確認します。
AWS 認証に関するエラーが発生した場合、変数の確認と Terraform コマンドの実行で同じターミナルウィンドウを使用していることを確認してください。
-
スクリプトを実行します。
Terraform スクリプトは、インフラストラクチャをプロビジョニングして、各 VM でインストールスクリプトを実行します。インストールスクリプトが完了すると、Runtime Manager の Runtime Fabric の状況が [Active (アクティブ)] に更新されます。
このステップにより、クラスターを形成するすべてのサーバーに VM/ベアメタルの Runtime Fabric がインストールされます。完了するまでに 15 ~ 25 分以上かかることがあります。
Docker 内での Terraform の実行
-
../rtf-install-scripts/ ディレクトリに移動します。このディレクトリから Terraform を実行する必要があります。dir または ls コマンドを実行すると、aws ディレクトリが他のディレクトリ (azure や manual など) と共にリストされます。 -
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
-
以下をテキストエディターをコピーします。
-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 スクリプトを実行します。
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 (アクティブ)] の状況で表示されます。
このステップにより、クラスターを形成するすべてのサーバーに VM/ベアメタルの Runtime Fabric がインストールされます。完了するまでに 15 ~ 25 分以上かかることがあります。
-
インストールの進行状況の監視
インストール中に進行状況を参照するには、各 VM の出力ログを確認します。
-
最初のコントローラー VM へのシェル (SSH セッション) を開きます。
-
次のコマンドを使用して、
/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 でコントローラーノードをプロビジョニングする必要があります。セキュリティグループを調整して、
0.ポート 32009 での TCP 接続に対して 0.0.0.0 インターネットアクセスを許可する必要があります。
|