Amazon Web Services (AWS) を使用する場合は、Anypoint Platform Private Cloud Edition (Anypoint Platform PCE) を AWS にインストールするのに必要なリソースを作成する必要があります。Anypoint Platform PCE は、AWS の本番環境で 4 ノード設定と 7 ノード設定をサポートします。
ベアメタルサーバーでインストールを開始する場合には、この情報は不要です。
| 以下の作業は、インフラストラクチャチームか、または AWS のシステム管理者レベルの知識を持つ人が実行する必要があります。必要に応じて、MuleSoft の担当者に連絡して支援を求めてください。 |
AWS アカウントの権限とリソース
AWS に Anypoint Platform PCE をインストールするためのアカウントの権限とリソースは次のとおりです。
-
AWS アカウントは、
EC2FullAccess 権限と S3FullAccess 権限が付与された AWS キーを持っている必要があります。 -
AWS 環境を作成すると、以下のリソースが作成されます。
Table 1. AWS で作成されるリソース AWS リソース 必要な数 (4 ノード) 必要な数 (7 ノード) Anypoint Monitoring (省略可能) m5.8xlarge
0
0
3
m5.2xlarge
4
7
0
ルートディスク (500 IOPS)
4
7
3
EBS ボリューム (1500 IOPS)
8
14
12
EBS ボリューム (3000 IOPS)
8
14
0
Amazon ELB
1
1
0
t2.medium
1
1
0
AWS プロビジョナーを実行する
MuleSoft は、AWS アカウント用のリソースをプロビジョニングするための Docker イメージを提供しています。また、「カスタムプロビジョニングスクリプト」のセクションで説明されているように、プロビジョニングされたインスタンス上で追加のカスタムシェルスクリプトを実行することもできます。
-
インターネットにアクセスできるいずれかの VPC 上の AWS アカウントで、最初のインスタンス (t2.small) を作成します。
このインスタンスは、クラスターを実際にプロビジョニングします。デフォルトで Docker がインストールされている AMI を使用するか、または AWS を作成した後で Docker を手動でインストールする必要があります。
Docker がインストールされていてインターネットにアクセスできる他のマシンからプロビジョナーをリモート実行することもできます。
-
Private Cloud Provisioner (PCP) の Docker イメージを次の URL からダウンロードします。
-
プロビジョナーの Docker イメージを SCP でインスタンスにコピーします。
scp -i <guest>.pem ~/Downloads/private-cloud-provisioner-3.1.14.tar.gz ec2-user@W.X.Y.Z:/home/ec2-user
-
SSH でインスタンスにログインします。
ssh -i 'anypoint.pem' ec2-user@W.X.Y.Z
-
以下の値を使用して、環境の詳細情報を定義した変数ファイル (pce.env) を作成します。
Table 2. 必須の環境変数 Name (名前) 説明 AWS_ACCESS_KEY_ID
Terraform が AWS アカウントにアクセスするための AWS アクセス ID を指定します。
AWS_SECRET_ACCESS_KEY
Terraform が AWS アカウントにアクセスするための AWS アクセスキーを指定します。
AWS_SESSION_TOKEN
一時的な AWS セッショントークンがあれば指定します。
AWS_KEY_NAME
AWS SSH キーを指定します。
.pem 拡張子は省略してください。AWS_REGION
Terraform がクラスターを作成する AWS リージョンを指定します (例:
us-east-2)。TF_VAR_ssh_user=<SSH_USER>
SSH ユーザーを指定します (例:
ec2-usercentos)。TF_VAR_trusted_cidrs_list
環境からアクセスできる信頼済み CIDR のリスト。
[0.0.0.0/0] を使用して、インターネットに対してクラスターを開きます。TELEKUBE_CLUSTER_NAME
クラスターの名前と対応する AWS リソースを指定します。
TELEKUBE_NODE_PROFILES
node に設定する必要があります。TELEKUBE_NODE_PROFILE_COUNT_node
クラスター内のノードの名前を指定します。可能な値は
4 と 7 です。TELEKUBE_NODE_PROFILE_INSTANCE_TYPE_node
m5.2xlarge でなければなりません。TELEKUBE_NODE_PROFILE_COUNT_node_amv
クラスター内の AMV アドオンのノードの数を指定します。AMV アドオンをインストールするように予定している場合は、
3 である必要があります。それ以外の場合は省略します。TELEKUBE_NODE_PROFILE_INSTANCE_TYPE_node_amv
AMV アドオンをインストールするように予定している場合は、
m5.8xlarge である必要があります。それ以外の場合は省略します。TF_VAR_high_performance_disks
本番環境では
true に設定する必要があります。以下の省略可能な環境変数も定義できます。
Table 3. 省略可能な環境変数 Name (名前) 説明 TF_VAR_ami_name
インスタンスで使用する AMI 名を指定します。AMI ID ではなく AMI 名を使用してください。 追加のボリュームが AMI によりプロビジョニングされないようにします。この変数を設定しないと、プロビジョナーはデフォルトの AMI として
RHEL-8.3.0_HVM-20201031-x86_64-0-Hourly2-GP2 を使用します。TF_VAR_monitoring=<true or false>
true であれば CloudWatch で基本インスタンスアラームを作成します。
TF_VAR_use_bastion=<true or false>
true であれば、パブリックサブネットに (ASG を使用して) 小さいインスタンスをジャンプボックスとして作成し、公開 IP アドレスを関連付けて、プライベートサブネットでクラスターインスタンスを起動します。
TF_VAR_internal=<true or false>
true の場合、クラスターインスタンスはプライベートサブネットで起動し、公開 IP は関連付けられません。また、プロビジョニングされたロードバランサーは内部専用となります。
AWS_VPC_ID=<VPC_ID>
すでにインターネットゲートウェイが接続されている既存の VPC を指定します。この場合でも、サブネットは既存の VPC 内でプロビジョニングされます。
AWS_VPC_CIDR=<VPC_CIDR>
プロビジョニングする新しい VPC 用に希望する CIDR を渡せるようにします。(この場合は AWS_VPC_ID は渡さないでください。)
TF_VAR_aws_selected_subnets_ids=<SUBNETS_IDS>
インスタンスが起動されるサブネットの ID のリストを渡せるようにします。自身のサブネットを再利用する場合は、ルートテーブル、NAT ゲートウェイ、およびインターネットゲートウェイをセットアップする必要があります (例:
["subnet-0a17317984065f98f", "subnet-0600b4befb27c7949", "subnet-02103e0c935eff75a"])。TF_VAR_subnets=<PRIVATE_SUBNETS_CIDRs>
プロビジョニングする新しいサブネット用に希望する CIDR ブロックを任意で渡せるようにします。リージョンのアベイラビリティゾーン数と、クラスター用に選択したノード数の間における最小の数値を正確に渡す必要があります (例:
'["10.1.0.0/24", "10.1.1.0/24", "10.1.2.0/24"]')。TF_VAR_public_subnets=<PUBLIC_SUBNETS_CIDRs>
プロビジョニングする新しいサブネット用に希望する CIDR ブロックを任意で渡せるようにします。リージョンのアベイラビリティゾーン数と、クラスター用に選択したノード数の間における最小の数値を正確に渡す必要があります (例:
'["10.1.3.0/24", "10.1.4.0/24", "10.1.5.0/24"]')。TF_VAR_role_tag_value=<AWS_TAG_VALUE_FOR_ROLE_LABEL>
すべての AWS リソースに適用される role タグ値を指定できるようにします。
-
プロビジョナーの Docker イメージをローカル Docker レジストリに読み込みます。
docker load -i private-cloud-provisioner-4.0.13.tar.gz
-
ドライランテストを実行します。
docker run --rm --env-file pce.env artifacts.msap.io/mulesoft/core-paas-private-cloud-provisioner:v4.0.13 dry-run
-
プロビジョナーを実行します。
docker run --rm --env-file pce.env artifacts.msap.io/mulesoft/core-paas-private-cloud-provisioner:v4.0.13 cluster-provision
プロビジョナーが正常に実行されると、環境に関する情報 (IP アドレス、ロードバランサーの DNS 名など) が表示されます。
-
インスタンスに /var/lib/bootstrap_complete フォルダーが作成されていることをチェックして、プロビジョニングスクリプトが正常に実行されたことを確認します。
カスタムプロビジョニングスクリプト (省略可能)
PCE プロビジョナースクリプトの実行前または実行後に (あるいはその両方で) プロビジョニングされたインスタンス上でカスタムシェルスクリプトを実行できます。プロビジョナーの前に実行する場合は pre-user-data フォルダー、後に実行する場合は post-user-data フォルダーに、名前に .sh 拡張子の付いたシェルスクリプトを配置してください。Docker の実行コマンドで、次のようにボリュームをマウントします。
docker run --rm -v $(pwd)/pre-user-data:/usr/local/bin/provisioner/terraform/external/pre-user-data -v $(pwd)/post-user-data:/usr/local/bin/provisioner/terraform/external/post-user-data --env-file pce.env artifacts.msap.io/mulesoft/core-paas-private-cloud-provisioner:v4.0.13 cluster-provision
インストール前にポート 61009 を開く
GUI ベースのインストーラーを使用して Anypoint Platform PCE をインストールする場合は、インストーラーの実行前にこのポートを有効化する必要があります。インストーラーを実行する前に、AWS Web コンソールを使用して、クラスターのセキュリティグループでこのポートを開いてください。
リソースの破棄
プロビジョナーを使用して作成したすべてのリソースを、次の例のように cluster-deprovision コマンドを実行して破棄できます。環境ファイル内の TELEKUBE_CLUSTER_NAME 環境変数に、破棄する対象クラスターの正しい値が含まれていることを確認します。
docker run --rm --env-file pce.env artifacts.msap.io/mulesoft/core-paas-private-cloud-provisioner:v4.0.13 cluster-deprovision
トラブルシューティング
AWS リソースの作成時に問題が発生した場合は、以下の情報を確認してください。
-
403 Forbidden (403 閲覧禁止)
キーのポリシーによっていずれかの EC2 または S3 リソースへのアクセスが拒否されていないか確認します。AWS CLI で、キーを指定して次の基本コマンドが実行できることを確認してください。
aws sts get-caller-identity
-
Limit exceeded (制限を超えました)
AWS アカウントで作成できるリソース量に制限が設定されている可能性があります。使用していないリソースをいくつか削除するか、または AWS に上限値を増やすように依頼してください。
-
AMI not found (AMI が見つかりません)
環境変数で AMI ID ではなく AMI 名を指定していることを確認してください。