検索

4.11. AWS での IP アドレスリソースの設定

download PDF

フェイルオーバーが発生した場合でも、ネットワーク経由でクラスターに管理されるリソースに IP アドレスを使用してアクセスするクライアントがリソースにアクセスできるようにするには、特定のネットワークリソースエージェントを使用する IP アドレスリソース をクラスターに含める必要があります。

RHEL HA アドオンは、AWS 上のさまざまな種類の IP アドレスを管理するための IP アドレスリソースを作成するリソースエージェントのセットを提供します。どのリソースエージェントを設定するかを決定するには、HA クラスターで管理する AWS IP アドレスのタイプを考慮してください。

注記

HA クラスターが IP アドレスを管理しない場合は、AWS 上の仮想 IP アドレスを管理するためのリソースエージェントは必要ありません。特定のデプロイメントに関する詳細なガイダンスが必要な場合は、AWS プロバイダーにご相談ください。

4.11.1. インターネットに公開されている IP アドレスを管理するための IP アドレスリソースの作成

高可用性 (HA) クライアントがパブリックインターネット接続を使用する RHEL 9 ノードにアクセスできるようにするには、Elastic IP アドレスを使用するように AWS セカンダリー Elastic IP アドレス (awseip) リソースを設定します。

前提条件

手順

  1. resource-agents パッケージをインストールします。

    # yum install resource-agents
  2. AWS コマンドラインインターフェイス (CLI) を使用して、Elastic IP アドレスを作成します。

    [root@ip-10-0-0-48 ~]# aws ec2 allocate-address --domain vpc --output text
    
    eipalloc-4c4a2c45   vpc 35.169.153.122
  3. オプション: awseip の説明を表示します。これは、このエージェントのオプションとデフォルトの操作を示しています。

    # pcs resource describe awseip
  4. AWS CLI を使用して以前に指定した割り当て済み IP アドレスを使用するセカンダリー Elastic IP アドレスリソースを作成します。さらに、セカンダリー Elastic IP アドレスが属するリソースグループを作成します。

    # pcs resource create <resource-id> awseip elastic_ip=<Elastic-IP-Address> allocation_id=<Elastic-IP-Association-ID> --group networking-group

    以下に例を示します。

    # pcs resource create elastic awseip elastic_ip=35.169.153.122 allocation_id=eipalloc-4c4a2c45 --group networking-group

検証

  1. クラスターのステータスを表示して、必要なリソースが実行していることを確認します。

    # pcs status

    次の出力は、vip リソースおよび elastic リソースが networking-group リソースグループの一部として起動されている実行中のクラスターの例を示しています。

    [root@ip-10-0-0-58 ~]# pcs status
    
    Cluster name: newcluster
    Stack: corosync
    Current DC: ip-10-0-0-58 (version 1.1.18-11.el7-2b07d5c5a9) - partition with quorum
    Last updated: Mon Mar  5 16:27:55 2018
    Last change: Mon Mar  5 15:57:51 2018 by root via cibadmin on ip-10-0-0-46
    
    3 nodes configured
    4 resources configured
    
    Online: [ ip-10-0-0-46 ip-10-0-0-48 ip-10-0-0-58 ]
    
    Full list of resources:
    
     clusterfence   (stonith:fence_aws):    Started ip-10-0-0-46
     Resource Group: networking-group
         vip (ocf::heartbeat:IPaddr2): Started ip-10-0-0-48
         elastic (ocf::heartbeat:awseip): Started ip-10-0-0-48
    
    Daemon Status:
      corosync: active/disabled
      pacemaker: active/disabled
      pcsd: active/enabled
  2. ローカルワークステーションから、上で作成した Elastic IP アドレスへの SSH セッションを開始します。

    $ ssh -l <user-name> -i ~/.ssh/<KeyName>.pem <elastic-IP>

    以下に例を示します。

    $ ssh -l ec2-user -i ~/.ssh/cluster-admin.pem 35.169.153.122
  3. SSH 経由で接続したホストが、作成された elastic リソースに関連付けられているホストであることを確認します。

4.11.2. 単一の AWS アベイラビリティーゾーンに限定されたプライベート IP アドレスを管理するための IP アドレスリソースの作成

AWS 上の高可用性 (HA) クライアントが、単一の AWS アベイラビリティーゾーン (AZ) 内でのみ移動できるプライベート IP アドレスを使用する RHEL 9 ノードにアクセスできるようにするには、仮想 IP アドレスを使用するように AWS セカンダリープライベート IP アドレス (awsvip) リソースを設定します。

クラスター内の任意のノードで次の手順を実行できます。

前提条件

手順

  1. resource-agents パッケージをインストールします。

    # yum install resource-agents
  2. オプション: awsvip の説明を表示します。これは、このエージェントのオプションとデフォルトの操作を示しています。

    # pcs resource describe awsvip
  3. VPC CIDR ブロック内の未使用のプライベート IP アドレスを使用して、セカンダリープライベート IP アドレスを作成します。さらに、セカンダリープライベート IP アドレスが属するリソースグループを作成します。

    # pcs resource create <resource-id> awsvip secondary_private_ip=<Unused-IP-Address> --group <group-name>

    以下に例を示します。

    [root@ip-10-0-0-48 ~]# pcs resource create privip awsvip secondary_private_ip=10.0.0.68 --group networking-group
  4. 仮想 IP リソースを作成します。これは、フェンシングされたノードからフェイルオーバーノードに即時に再マッピングできる VPC IP アドレスで、サブネット内のフェンスされたノードの失敗をマスクします。仮想 IP が、前の手順で作成したセカンダリープライベート IP アドレスと同じリソースグループに属していることを確認します。

    # pcs resource create <resource-id> IPaddr2 ip=<secondary-private-IP> --group <group-name>

    以下に例を示します。

    root@ip-10-0-0-48 ~]# pcs resource create vip IPaddr2 ip=10.0.0.68 --group networking-group

検証

  • クラスターのステータスを表示して、必要なリソースが実行していることを確認します。

    # pcs status

    次の出力は、vip および privip リソースが networking-group リソースグループの一部として起動している実行中のクラスターの例を示しています。

    [root@ip-10-0-0-48 ~]# pcs status
    Cluster name: newcluster
    Stack: corosync
    Current DC: ip-10-0-0-46 (version 1.1.18-11.el7-2b07d5c5a9) - partition with quorum
    Last updated: Fri Mar  2 22:34:24 2018
    Last change: Fri Mar  2 22:14:58 2018 by root via cibadmin on ip-10-0-0-46
    
    3 nodes configured
    3 resources configured
    
    Online: [ ip-10-0-0-46 ip-10-0-0-48 ip-10-0-0-58 ]
    
    Full list of resources:
    
    clusterfence    (stonith:fence_aws):    Started ip-10-0-0-46
     Resource Group: networking-group
         privip (ocf::heartbeat:awsvip): Started ip-10-0-0-48
         vip (ocf::heartbeat:IPaddr2): Started ip-10-0-0-58
    
    Daemon Status:
      corosync: active/disabled
      pacemaker: active/disabled
      pcsd: active/enabled

4.11.3. 複数の AWS アベイラビリティーゾーン間で移動できる IP アドレスを管理するための IP アドレスリソースの作成

AWS 上の高可用性 (HA) クライアントが、同じ AWS リージョン内の複数の AWS アベイラビリティーゾーン間で移動できる RHEL 9 ノードにアクセスできるようにするには、aws-vpc-move-ip リソースを設定して、Elastic IP アドレスを使用します。

前提条件

  • 以前に設定されたクラスターがある。
  • クラスターノードが RHEL HA リポジトリーにアクセスできる。詳細は、高可用性パッケージとエージェントのインストール を参照してください。
  • AWS CLI を設定している。手順については、Installing the AWS CLI を参照してください。
  • アイデンティティーおよびアクセス管理 (IAM) ユーザーがクラスターに設定されており、次の権限を持ちます。

    • ルーティングテーブルを変更する
    • セキュリティーグループを作成する
    • IAM ポリシーとロールを作成する

手順

  1. resource-agents パッケージをインストールします。

    # yum install resource-agents
  2. オプション: aws-vpc-move-ip の説明を表示します。これは、このエージェントのオプションとデフォルトの操作を示しています。

    # pcs resource describe aws-vpc-move-ip
  3. IAM ユーザーに対して OverlayIPAgent IAM ポリシーを設定します。

    1. AWS コンソールで、Services IAM Policies Create OverlayIPAgent Policy に移動します。
    2. 次の設定を入力し、<region><account-id>、および <ClusterRouteTableID> の値をクラスターに合わせて変更します。

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "Stmt1424870324000",
                  "Effect": "Allow",
                  "Action":  "ec2:DescribeRouteTables",
                  "Resource": "*"
              },
              {
                  "Sid": "Stmt1424860166260",
                  "Action": [
                      "ec2:CreateRoute",
                      "ec2:ReplaceRoute"
                  ],
                  "Effect": "Allow",
                  "Resource": "arn:aws:ec2:<region>:<account-id>:route-table/<ClusterRouteTableID>"
              }
          ]
      }
  4. AWS コンソールで、クラスター内のすべてのノードの Source/Destination Check 機能を無効にします。

    これを行うには、各ノードを右クリックして、Networking Change Source/Destination Checks を選択します。表示されるポップアップメッセージで、Yes, Disable をクリックします。

  5. クラスターのルートテーブルを作成します。これを行うには、クラスター内の 1 つのノードで次のコマンドを使用します。

    # aws ec2 create-route --route-table-id <ClusterRouteTableID> --destination-cidr-block <NewCIDRblockIP/NetMask> --instance-id <ClusterNodeID>

    コマンドでは、値を次のように置き換えます。

    • ClusterRouteTableID: 既存のクラスター VPC ルートテーブルのルートテーブル ID。
    • NewCIDRblockIP/NetMask: VPC Classless Inter-Domain Routing (CIDR) ブロック外の新しい IP アドレスとネットマスク。たとえば、VPC CIDR ブロックが 172.31.0.0/16 の場合、新しい IP アドレス/ネットマスクは 192.168.0.15/32 になります。
    • ClusterNodeID: クラスター内の別のノードのインスタンス ID。
  6. クラスター内のノードの 1 つで、クライアントがアクセスできる空き IP アドレスを使用する aws-vpc-move-ip リソースを作成します。次の例では、IP 192.168.0.15 を使用する vpcip という名前のリソースを作成します。

    # pcs resource create vpcip aws-vpc-move-ip ip=192.168.0.15 interface=eth0 routing_table=<ClusterRouteTableID>
  7. クラスター内のすべてのノードで、/etc/hosts/ ファイルを編集し、新しく作成されたリソースの IP アドレスを含む行を追加します。以下に例を示します。

    192.168.0.15 vpcip

検証

  1. 新しい aws-vpc-move-ip リソースのフェイルオーバー機能をテストします。

    # pcs resource move vpcip
  2. フェイルオーバーが成功した場合は、vpcip リソースの移動後に自動的に作成された制約を削除します。

    # pcs resource clear vpcip

関連情報

4.11.4. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.