4.6.3. 複数の AWS アベイラビリティーゾーン間で移動できる IP アドレスを管理するための IP アドレスリソースの作成
Amazon Web Services (AWS) で elastic IP アドレスを使用するには、Red Hat Enterprise Linux (RHEL) Overlay IP (aws-vpc-move-ip) リソースエージェントを設定できます。aws-vpc-move-ip を使用すると、AWS の単一リージョン内の RHEL ノードを複数のアベイラビリティーゾーン (AZ) 間で移動し、クライアントの高可用性 (HA) を確保できます。
前提条件
- 設定済みのクラスターがある。
- クラスターノードが RHEL HA リポジトリーにアクセスできる。詳細は、高可用性パッケージとエージェントのインストール を参照してください。
- AWS CLI を設定している。手順は、AWSCLI2 のインストール を参照してください。
次の権限を持つアイデンティティーおよびアクセス管理 (IAM) ユーザーをクラスターに設定した。
- ルーティングテーブルを変更する
- セキュリティーグループを作成する
- IAM ポリシーとロールを作成する
手順
resource-agentsパッケージをインストールします。# dnf install resource-agentsオプション:
awsvipのオプションとデフォルトの操作を表示します。# pcs resource describe aws-vpc-move-ipIAM ユーザーに対して
OverlayIPAgentIAM ポリシーを設定します。-
AWS コンソールで、Services
IAM Policies Create OverlayIPAgentPolicy に移動します。 次の設定を入力します。<region>、<account_id>、<cluster_route_table_id> の値は、クラスターに合わせて変更します。
{ "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/_<cluster_route_table_id>_" } ] }
-
AWS コンソールで、Services
AWS コンソールで、クラスター内のすべてのノードの
Source/Destination Check機能を無効にします。これを行うには、各ノードを右クリックして、Networking
Change Source/Destination Checks を選択します。表示されるポップアップメッセージで、Yes, Disable をクリックします。 クラスターのルートテーブルを作成します。これを行うには、クラスター内の 1 つのノードで次のコマンドを使用します。
# aws ec2 create-route --route-table-id <cluster_route_table_id> --destination-cidr-block <new_cidr_block_ip/net_mask> --instance-id <cluster_node_id>コマンドでは、値を次のように置き換えます。
-
ClusterRouteTableID: 既存クラスターの Virtual Private Cloud (VPC) ルートテーブルのルートテーブル ID。 -
NewCIDRblockIP: VPC Classless Inter-Domain Routing (CIDR) ブロック外の新しい IP アドレスとネットマスク。たとえば、VPC CIDR ブロックが172.31.0.0/16の場合、新しい IP アドレスまたはネットマスクは192.168.0.15/32になります。 -
ClusterNodeID: クラスター内の別のノードのインスタンス ID。
-
クラスター内のノードの 1 つで、クライアントがアクセスできる空き IP アドレスを使用する
aws-vpc-move-ipリソースを作成します。次の例では、IP192.168.0.15を使用するvpcipという名前のリソースを作成します。# pcs resource create vpcip aws-vpc-move-ip ip=192.168.0.15 interface=eth0 routing_table=<cluster_route_table_id>クラスター内のすべてのノードで、
/etc/hosts/ファイルを編集し、新しく作成されたリソースの IP アドレスを含む行を追加します。以下に例を示します。192.168.0.15 vpcip
検証
新しい
aws-vpc-move-ipリソースのフェイルオーバー機能をテストします。# pcs resource move vpcipフェイルオーバーが成功した場合は、
vpcipリソースの移動後に自動的に作成された制約を削除します。# pcs resource clear vpcip