AWS の前提条件

Amazon Web Services (AWS) を使用する場合は、Anypoint Platform Private Cloud Edition (Anypoint Platform PCE) を AWS にインストールするのに必要なリソースを作成する必要があります。Anypoint Platform PCE は、AWS の本番環境で 3 ノード設定と 6 ノード設定をサポートします。

ベアメタルサーバでインストールを開始する場合には、この情報は不要です。

以下の作業は、インフラストラクチャチームか、または AWS のシステム管理者レベルの知識を持つ人が実行する必要があります。必要に応じて、MuleSoft の担当者に連絡してサポートを要求してください。

AWS アカウントの権限とリソース

AWS に Anypoint Platform PCE をインストールするためのアカウントの権限とリソースは次のとおりです。

  • AWS アカウントは、​EC2FullAccess​ 権限と ​S3FullAccess​ 権限が付与された AWS キーを持っている必要があります。

  • AWS 環境を作成すると、以下のリソースが作成されます。

    AWS リソース 必要な数 (3 ノード) 必要な数 (6 ノード)

    m5.2xlarge

    3

    6

    ルートディスク (500 IOPS)

    3

    6

    EBS ボリューム (1500 IOPS)

    6

    12

    EBS ボリューム (3000 IOPS)

    6

    12

    Amazon ELB

    1

    1

    t2.medium

    1

    1

AWS プロビジョナを実行する

MuleSoft は、AWS アカウント用のリソースをプロビジョニングするための Docker イメージを提供しています。また、「カスタムプロビジョニングスクリプト」のセクションで説明されているように、プロビジョニングされたインスタンス上で追加のカスタムシェルスクリプトを実行することもできます。

  1. インターネットにアクセスできるいずれかの VPC 上の AWS アカウントで、最初のインスタンス (t2.small) を作成します。

    このインスタンスは、クラスタを実際にプロビジョニングします。デフォルトで Docker がインストールされている AMI を使用するか、または AWS を作成した後で Docker を手動でインストールする必要があります。

    Docker がインストールされていてインターネットにアクセスできる他のマシンからプロビジョナをリモート実行することもできます。

  2. Private Cloud Provisioner (PCP) の Docker イメージを次の URL からダウンロードします。​https://anypoint-anywhere.s3.amazonaws.com/pcp/pcp-1.0.tar.gz?AWSAccessKeyId=AKIAI6LBJNQFR2V3CQWQ&Expires=1712193983&Signature=noiRGBIBJtwsMLQxTux%2FiM%2F5SP0%3D

  3. プロビジョナの Docker イメージを SCP でインスタンスにコピーします。

    scp -i <guest>.pem ~/Downloads/pcp-1.0.tar.gz ec2-user@18.221.155.87:/home/ec2-user
  4. SSH でインスタンスにログインします。

    ssh -i 'anypoint.pem' ec2-user@18.221.155.87
  5. 以下の値を使用して、環境の詳細情報を定義した変数ファイル (pce.env) を作成します。

    Name (名前) 説明

    ​AWS_ACCESS_KEY_ID​

    Terraform が AWS アカウントにアクセスするための AWS アクセス ID を指定します。

    ​AWS_SECRET_ACCESS_KEY​

    Terraform が AWS アカウントにアクセスするための AWS アクセスキーを指定します。

    ​AWS_KEY_NAME​

    AWS SSH キーを指定します。​.pem​ 拡張子は省略してください。

    ​AWS_REGION​

    Terraform がクラスタを作成する AWS リージョンを指定します (例: ​us-east-2​)。. この値は、​AWS_DEFAULT_REGION​ と同じ値でなければなりません。

    ​AWS_DEFAULT_REGION​

    ​AWS_REGION​ と同じ値でなければなりません。

    ​TF_VAR​_ssh_user=<​SSH_USER​>

    SSH ユーザを指定します (例:​ec2-user​ ​centos​)。

    ​CLOUD_PROVIDER​

    aws​ でなければなりません。

    ​CLUSTER_TYPE​

    pce​ でなければなりません。

    ​TELEKUBE_CLUSTER_NAME​

    クラスタの名前と対応する AWS リソースを指定します。

    ​TELEKUBE_NODE_PROFILE_COUNT​_node

    クラスタ内のノードの名前を指定します。指定できる値は ​3​ と ​6​ です。

    ​TELEKUBE_NODE_PROFILE_INSTANCE_TYPE​_node

    m5.2xlarge​ でなければなりません。

    ​TELEKUBE_NODE_PROFILES​

    node​ に設定する必要があります。

    ​TF_VAR​_high_performance_disks

    本番環境では ​true​ に設定する必要があります。

    ​TF_VAR​_disable_outbound_traffic

    iptables ルールを使用して外部のインターネットアクセスを無効にします。デフォルトは ​true​ です。

    以下の省略可能な環境変数も定義できます。

    Name (名前) 説明

    ​TF_VAR​_ami_name

    インスタンスで使用する AMI 名を指定します。AMI ID ​ではなく​ AMI 名を使用してください。この変数を設定しないと、プロビジョナはデフォルトの AMI として ​RHEL-7.4_HVM_GA-20170808-x86_64-2-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_CIDR​s>

    プロビジョニングする新しいサブネット用に希望する CIDR ブロックを任意で渡せるようにします。リージョンのアベイラビリティゾーン数と、クラスタ用に選択したノード数の間における最小の数値を正確に渡す必要があります (例: ​'["10.1.0.0/24", "10.1.1.0/24", "10.1.2.0/24"]'​)。

    ​TF_VAR​_public_subnets=<​PUBLIC_SUBNETS_CIDR​s>

    プロビジョニングする新しいサブネット用に希望する 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 タグ値を指定できるようにします。

  6. プロビジョナの Docker イメージをローカル Docker レジストリに読み込みます。

    docker load -i pcp-1.0.tar.gz
  7. docker load​ コマンドを実行したら、イメージ ID をメモしておいてください。この ID は以降の手順で必要になります。

  8. ドライランテストを実行します。

    docker run --rm --env-file pce.env IMAGE_ID dry-run
  9. プロビジョナを実行します。

    docker run --rm --env-file pce.env IMAGE_ID cluster-provision

    プロビジョナが正常に実行されると、環境に関する情報 (IP アドレス、ロードバランサの DNS 名など) が表示されます。

  10. インスタンスに /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 IMAGE_ID cluster-provision

インストール前にポート 61009 を開く

GUI ベースのインストーラを使用して Anypoint Private Cloud をインストールする場合は、インストーラの実行前にこのポートを開く必要があります。インストーラを実行する前に、AWS Web コンソールを使用して、クラスタのセキュリティグループでこのポートを開いてください。

トラブルシューティング

AWS リソースの作成時に問題が発生した場合は、以下の情報を確認してください。

  • 403 Forbidden (403 閲覧禁止)

キーのポリシーによっていずれかの EC2 または S3 リソースへのアクセスが拒否されていないか確認します。AWS CLI で、キーを指定して次の基本コマンドが実行できることを確認してください。

aws sts get-caller-identity
  • Limit exceeded (制限を超えました)

AWS アカウントで作成できるリソース量に制限が設定されている可能性があります。使用していないリソースをいくつか削除するか、または AWS に上限値を増やすように依頼してください。

  • AMI not found (AMI が見つかりません)

環境変数で AMI ID ではなく AMI 名を指定していることを確認してください。

Was this article helpful?

💙 Thanks for your feedback!