1. はじめに

1.1. 対象読者と目的

本書は、クラスタシステムに関して、システムを構築する管理者、およびユーザサポートを行うシステムエンジニア、保守員を対象にしています。また、Amazon Web Services のうち、最低限 Amazon EC2、Amazon VPC、IAM に関する知識を保有していることが前提となります。

1.2. 適用範囲

動作環境については 「スタートアップガイド」-「CLUSTERPRO の動作環境」を参照してください。

本書に記載した各製品・サービスのスクリーンショット等は執筆時点のものであり、それ以降に変更されている可能性があります。最新の情報はそれぞれのWebサイトやマニュアルを参照してください。

1.3. 本書の構成

1.4. CLUSTERPRO マニュアル体系

CLUSTERPRO のマニュアルは、以下の 5 つに分類されます。各ガイドのタイトルと役割を以下に示します。

CLUSTERPRO X スタートアップガイド』 (Getting Started Guide)

すべてのユーザを対象読者とし、製品概要、動作環境、アップデート情報、既知の問題などについて記載します。

CLUSTERPRO X インストール&設定ガイド』 (Install and Configuration Guide)

CLUSTERPRO を使用したクラスタシステムの導入を行うシステムエンジニアと、クラスタシステム導入後の保守・運用を行うシステム管理者を対象読者とし、CLUSTERPRO を使用したクラスタシステム導入から運用開始前までに必須の事項について説明します。実際にクラスタシステムを導入する際の順番に則して、CLUSTERPRO を使用したクラスタシステムの設計方法、CLUSTERPRO のインストールと設定手順、設定後の確認、運用開始前の評価方法について説明します。

CLUSTERPRO X リファレンスガイド』 (Reference Guide)

管理者、および CLUSTERPRO を使用したクラスタシステムの導入を行うシステムエンジニアを対象とし、CLUSTERPRO の運用手順、各モジュールの機能説明およびトラブルシューティング情報等を記載します。『CLUSTERPRO X インストール&設定ガイド』を補完する役割を持ちます。

CLUSTERPRO X メンテナンスガイド』 (Maintenance Guide)

管理者、および CLUSTERPRO を使用したクラスタシステム導入後の保守・運用を行うシステム管理者を対象読者とし、CLUSTERPRO のメンテナンス関連情報を記載します。

CLUSTERPRO X ハードウェア連携ガイド』 (Hardware Feature Guide)

管理者、および CLUSTERPRO を使用したクラスタシステムの導入を行うシステムエンジニアを対象読者とし、特定ハードウェアと連携する機能について記載します。『CLUSTERPRO X インストール&設定ガイド』を補完する役割を持ちます。

1.5. 本書の表記規則

本書では、注意すべき事項、重要な事項および関連情報を以下のように表記します。

注釈

この表記は、重要ではあるがデータ損失やシステムおよび機器の損傷には関連しない情報を表します。

重要

この表記は、データ損失やシステムおよび機器の損傷を回避するために必要な情報を表します。

参考

この表記は、参照先の情報の場所を表します。

また、本書では以下の表記法を使用します。

表記

使用方法

[ ] 角かっこ

コマンド名の前後
画面に表示される語 (ダイアログボックス、メニューなど) の前後
[スタート] をクリックします。
[プロパティ] ダイアログ ボックス

コマンドライン中の [ ] 角かっこ

かっこ内の値の指定が省略可能であることを示します。

clpstat -s[-h host_name]

#

Linux ユーザが、root でログインしていることを示すプロンプト

# clpstat

モノスペースフォント

パス名、コマンド ライン、システムからの出力 (メッセージ、プロンプトなど)、ディレクトリ、ファイル名、関数、パラメータ

/Linux

太字

ユーザが実際にコマンドラインから入力する値を示します。

以下を入力します。
# clpcl -s -a

斜体

ユーザが有効な値に置き換えて入力する項目

# ping <IPアドレス>

CLUSTERPRO X 本書の図では、CLUSTERPROを表すために このアイコンを使用します。

1.6. 最新情報の入手先

最新の製品情報については、以下のWebサイトを参照ください。

2. 機能概要

2.1. 機能概要

本書の設定を行うことで、Amazon Web Services(以下、AWS) のAmazon Virtual Private Cloud(以下、VPC) 環境において CLUSTERPRO による HA クラスタを構築できます。

HA クラスタを構築することで、より重要な業務を行うことが可能となり AWS 環境におけるシステム構成の選択肢が広がります。AWS環境は地域(リージョン)ごとに複数の Availability Zone(以下、AZ) で堅牢に構成されており、利用者は必要に応じて AZ を選択して使用できます。CLUSTERPRO は複数の AZ 間 (以下、Multi-AZ) においても HA クラスタを可能とするため、業務の高可用性を実現します。

2つのAvailability Zoneとそれぞれの中のServer Instance

図 2.1 Multi-AZ構成のミラー型HAクラスタ

AWS 環境においては仮想的なIP アドレスを使用してクラスタサーバに接続することが可能です。AWS 仮想IPリソースやAWS Elastic IPリソースや AWS DNS リソースを利用することで、"フェイルオーバ" または、"グループの移動" が発生した場合でも、クライアントは接続先サーバの切り替えを意識する必要がありません。

2.2. HAクラスタ構成

本構築ガイドでは、「仮想IP (以下、VIP) 制御による HA クラスタ」、「Elastic IP (以下、EIP) 制御による HA クラスタ」、「DNS名制御によるHAクラスタ」 の3種類のHAクラスタを想定しています。本節ではSingle-AZ構成にて説明しています。Multi-AZについては「2.3. Multi-AZ」を参照してください。

HAクラスタにアクセスする
クライアントの場所

選択するリソース

本章の参照箇所

同じVPC内

AWS 仮想IPリソース

VIP 制御による HA クラスタ

インターネット

AWS Elastic IPリソース

EIP 制御による HA クラスタ

任意の場所

AWS DNSリソース

DNS名制御によるHAクラスタ

2.2.1. VIP 制御による HA クラスタ

同じVPC内のクライアントから、VIPアドレスを通じてHAクラスタにアクセスさせる構成を想定しています。たとえばDBサーバをクラスタ化し、WebサーバからVIPアドレス経由でDBサーバにアクセスするなどの用途が考えられます。

Public subnet内のNAT InstanceとClient Instance、Private subnet内の2つのServer Instance、およびVIP

図 2.2 VIP 制御による HA クラスタ

図の例では、Privateなサブネット上にクラスタ化されたサーバ用のインスタンスが配置されています。CLUSTERPROのAWS 仮想IPリソースは、現用系側サーバ用のインスタンスに対してVIPアドレスの設定およびVPC のルートテーブルの書き換えを行います。これにより、VPC内の任意のサブネット上に配置されたクライアント用のインスタンスからVIPアドレスを通じて現用系側サーバ用のインスタンスにアクセスできるようになります。VIPアドレスは、VPCのCIDRの範囲外である必要があります。

AWS側の仕様により VPC 外のクライアントから、AWS 仮想IP リソースで付与したVIP アドレスを指定してアクセスすることはできないことを確認しています。VPC外のクライアントからアクセスする場合は、AWS Elastic IP リソースで付与した EIP アドレスを指定してアクセスしてください。

サーバ用の各インスタンスは、AWS CLIの実行や、DNS参照などで必要な時は、Public なサブネットに配置された NAT インスタンス を経由してリージョンのエンドポイントやインターネットへアクセスします。
※AWS CLIの実行時は、各インスタンスが リージョンのエンドポイントと通信できる必要があり、そのための方法として Proxy サーバ / NAT / Public IP / EIP などの方法がありますが、本書ではVIP制御によるHAクラスタ構成の場合、NATインスタンスを使用する方法を採用しています。

VIP 制御による HA クラスタ構成において必要なリソース、モニタリソースは以下のとおりです。

リソース種別

説明

設定

AWS 仮想IPリソース

現用系側のインスタンスへのVIPアドレスの付与、および、そのIPアドレスに対するルートテーブルの変更を行い、業務を 同じVPC 内に公開します。

必須

AWS 仮想IPモニタリソース

AWS 仮想IPリソースが付与したVIPアドレスが自サーバに存在するか、およびVPCのルートテーブルが不正に変更されていないかを定期的に監視します。
(AWS 仮想IPリソースを追加すると自動的に追加されます。)

必須

AWS AZモニタリソース

Multi-AZを利用し、自サーバが属するAZの健全性を定期的に監視します。

推奨

その他のリソース、モニタリソース

ミラーディスクなど、HAクラスタで運用するアプリケーションの構成に従います。

任意

2.2.2. EIP 制御による HA クラスタ

クライアントから、インターネット経由でEIPに割り当てられたグローバルIPアドレスを通じてHAクラスタにアクセスさせる構成を想定しています。

クラスタ化するインスタンスはPublic なサブネット上に配置されており、各インスタンスは、インターネットゲートウェイを経由してインターネットへアクセスすることが可能です。

2つのServer Instance、およびElastic IP Address

図 2.3 EIP 制御による HA クラスタ

図の例では、クラスタ化するサーバ用のインスタンスはPublicなサブネット上に配置されています。CLUSTERPROのAWS Elastic IPリソースは、EIPを現用系側サーバ用のインスタンスにアタッチします。これによりインターネット側の任意のクライアントはEIPアドレスを通じて現用系側サーバ用のインスタンスにアクセスできるようになります。

※AWS CLIの実行時は、各インスタンスがリージョンのエンドポイントに接続できる必要があり、そのための方法として Proxy サーバ / NAT / Public IP / EIP などの方法がありますが、本書ではEIP制御によるHAクラスタ構成の場合、インスタンスに割り当てられたPublic IPを経由する方法を採用しています。

EIP 制御による HA クラスタ構成において必要なリソース、モニタリソースは以下のとおりです。

リソース種別

説明

設定

AWS Elastic IPリソース

現用系側のインスタンスにEIPアドレスを付与し、業務をインターネットに公開します。

必須

AWS Elastic IPモニタリソース

AWS Elastic IPリソースが付与したEIPアドレスが自サーバに存在するか定期的に監視します。
(AWS Elastic IPリソースを追加すると自動的に追加されます)

必須

AWS AZモニタリソース

Multi-AZを利用し、自サーバが属するAZの健全性を定期的に監視します。

推奨

その他のリソース、モニタリソース

ミラーディスクなど、HAクラスタで運用するアプリケーションの構成に従います。

任意

2.2.3. DNS名制御によるHAクラスタ

クライアントから、同一のDNS名を使ってHAクラスタにアクセスさせる構成を想定しています。たとえばDBサーバをクラスタ化し、Web サーバから DNS 名経由で DB サーバにアクセスするなどの用途が考えられます。

Public subnet内のNAT InstanceとClient Instance、Private subnet内の2つのServer Instance、およびDomain Name

図 2.4 DNS名制御によるHAクラスタ

図の例では、Privateなサブネット上にクラスタ化されたサーバ用のインスタンスが配置されています。CLUSTERPRO の AWS DNS リソースは、 DNS 名と現用系側サーバのIP アドレスを含むリソースレコードセットをAmazon Route 53 のPrivateホストゾーンに登録します。これにより、VPC内の任意のサブネット上に配置されたクライアント用のインスタンスから、DNS名を通じて現用系側サーバ用の インスタンスにアクセスできるようになります。

本書では、クラスタ化するサーバ用のインスタンスを Private なサブネット上に配置する構成を採用していますが、Publicなサブネット上に配置することも可能です。この場合、AWS DNSリソースでDNS名と現用系側サーバのPublic IPアドレスを含むリソースレコードセットをAmazon Route 53 のPublicホストゾーンに登録することで、インターネット側の任意のクライアントからDNS名を通じて現用系側サーバ用のインスタンスにアクセスできるようになります。なお、PublicホストゾーンのドメインへのクエリがAmazon Route 53 ネームサーバを参照するように、事前にレジストラのネームサーバ(NS) レコードを設定しておく必要があります。

また、クラスタとクライアントがそれぞれ異なる VPC 上に存在する構成とする場合は、VPC ピアリング接続を使用します。事前に、ピアリング接続した各VPC をAmazon Route 53のPrivateホストゾーンに関連付けしておき、AWS DNS リソースでそのPrivateホストゾーンにDNS 名と現用系側サーバのIP アドレスを含むリソースレコードセットを登録します。これにより、異なるVPC上のクライアントからDNS名を通じて現用系側サーバ用のインスタンスにアクセスできるようになります。

※AWS CLIの実行時は、各インスタンスがリージョンのエンドポイントに接続できる必要があり、そのための方法としてProxyサーバ / NAT / Public IP / EIPなどの方法がありますが、本書ではDNS名制御によるHAクラスタ構成の場合、NAT用のインスタンスを使用する方法を採用しています。

DNS名制御によるHAクラスタ構成において必要なリソース、モニタリソースは以下のとおりです。

リソース種別

説明

設定

AWS DNSリソース

DNS 名と現用系側のインスタンスの IPアドレスを含むリソースレコードセットをAmazon Route 53のホストゾーンに登録し、業務を同じVPC内、または、インターネットに公開します。

必須

AWS DNSモニタリソース

AWS DNS リソースが 登録したリソースレコードセットが、 Amazon Route 53 のホストゾーンに存在するか、およびそのDNS名の名前解決が可能かを定期的に監視します。
(AWS DNSリソースを追加すると自動的に追加されます。)

必須

AWS AZモニタリソース

Multi-AZを利用し、自サーバが属するAZの健全性を定期的に監視します。

推奨

その他のリソース、モニタリソース

ミラーディスクなど、 HA クラスタで運用するアプリケーションの構成に従います。

任意

2.3. Multi-AZ

AWS 環境では、HAクラスタを構成するインスタンスをアベイラビリティーゾーン単位で分散させることで、アベイラビリティーゾーン単位の障害に対する冗長性を持たせ、可用性を高めることが可能です。
AWS AZモニタリソースは、各アベイラビリティーゾーンの健全性を監視し、もし障害が発生していた場合は警告や回復動作を行わせることができます。
詳細は『リファレンスガイド』-「AWS AZ モニタリソースを理解する」を 参照してください。
2つのAvailability Zoneとそれぞれの中のNAT Instance、Client Instance、Server Instance、およびVIP

図 2.5 Multi-AZを使用した HA クラスタの例

2.4. ネットワークパーティション解決

ネットワークパーティション解決 (NP解決) では、各サーバが共通の装置に対するアクセス可否を確認することで、他サーバがダウンしたか自サーバがネットワークから孤立したかを判断します。

本書の例ではNP解決を以下のように設定しています。明記していない設定は既定値を使用しています。

項目名

設定値

備考

種別

HTTP

ターゲットホスト
(ターゲット)

aws.amazon.com

HTTP の HEAD リクエストにステータスコード 200 で応答する装置を指定します。

サービスポート

443

SSLを使用する

オン

本設定をオンにする場合、環境により [クラスタプロパティ] [暗号化]タブ で
[SSLライブラリ] および [Cryptoライブラリ] の設定が必要になる場合があります。

NP解決の詳細については以下のドキュメントを参照してください。

また、強制停止スクリプトを組合せることも可能です。詳細はCLUSTERPROオフィシャルブログを参照してください。

https://jpn.nec.com/clusterpro/blog/20180829.html

2.5. オンプレミスとAWS

オンプレミスとAWSにおけるCLUSTERPROの機能差分は以下の通りです。

  • ✓: 可

  • n/a: 不可

機能

オンプレミス

AWS

共有ディスク型クラスタの構築可否

n/a

ミラーディスク型クラスタの構築可否

フローティングIPリソースの使用可否

n/a

仮想IPリソースの使用可否

n/a

AWS Elastic IPリソースの使用可否

n/a

AWS 仮想 IPリソースの使用可否

n/a

AWS DNSリソースの使用可否

n/a

オンプレミスとAWSにおける、ミラーディスクとIPエイリアス(オンプレミス:フローティングIPリソース、AWS:AWS仮想IPリソースの例)各種リソースを使用した2ノードクラスタの構築手順の流れは以下を参照してください。

4. 注意事項

4.1. VPC で CLUSTERPRO を利用する場合の注意事項

VPC 環境で CLUSTERPRO を利用する際に、以下のような注意事項があります。

インターネットまたは異なるVPCからのアクセス

AWS側の仕様により、インターネットまたは異なるVPC 上のクライアントから、AWS仮想IPリソースで付与した VIP アドレスを指定してアクセスすることはできないことを確認しています。インターネット上の クライアントからアクセスする場合は、AWS Elastic IPリソースで付与したEIPアドレスを指定してアクセスしてください。異なるVPC上のクライアントからアクセスする場合は、AWS DNSリソースによってAmazon Route 53に登録したDNS名を指定して、VPCピアリング接続経由でアクセスしてください。

また、以下のCLUSTERPRO オフィシャルブログも参考にしてください。

異なるVPCからのVPCピアリング接続経由でのアクセス

AWS 仮想IP リソースは、 VPC ピアリング接続を経由してのアクセスが必要な場合では利用することができません。これは、 VIP として使用する IP アドレスが VPC の範囲外であることを前提としており、このような IP アドレスは VPC ピアリング接続では無効とみなされるためです。 VPC ピアリング接続を経由してのアクセスが必要な場合は、 Amazon Route 53 を利用する AWS DNS リソースを使用してください。

VPCエンドポイントの使用

VPC エンドポイントを使用することで、プライベートネットワークでもNATやプロキシサーバを用意することなくAWS CLIによるAmazon EC2のサービス制御が可能です。そのため「VIP制御によるHAクラスタ」構成においてNATの代わりに VPC エンドポイントを使用することが可能となります。なお、VPCエンドポイントは作成時にサービス名が".ec2"で終わるものを選択する必要があります。

また、VPC エンドポイントを使用する場合でも、インスタンスのオンラインアップデートやモジュールダウンロードのためのインターネットアクセス、および、VPC エンドポイントが対応していないAWS のクラウドサービスに対するアクセスを行う場合は、別途NATゲートウェイなどが必要になります。

グループリソースおよびモニタリソースの機能制限

ミラーディスクの性能

Multi-AZ 間で HA クラスタを構築すると、インスタンス間の距離が離れることによるTCP/IPの応答遅延が発生し、ミラーリングに影響を受ける可能性があります。
また、マルチテナントのため、他のシステムの使用状況がミラーリングの性能に影響を与えます。上記の理由から クラウド環境では、物理環境や一般的な仮想化環境(非クラウド環境)に比べてミラーディスクの性能の差が大きくなる(ミラーディスクの性能の劣化率が大きくなる)傾向にあります。
書き込み性能を重視するシステムの場合には、設計のフェーズにおいて、この点をご留意ください。

AWS エンドポイント停止の影響

AWS DNS モニタリソースは、リソースレコードセットの存在確認のために AWS CLI を利用しています。
そのため AWS エンドポイントのメンテナンスや障害およびネットワーク経路の障害や遅延の影響によるフェイルオーバを発生させないためには、AWS DNS モニタリソースの [AWS CLI コマンド応答取得失敗時動作] の設定は、「回復動作を実行しない(警告を表示する)」「回復動作を実行しない(警告を表示しない)」のいずれかとしてください。頻繁に警告が表示される場合は、「回復動作を実行しない(警告を表示しない)」を推奨します。

5. VIP制御によるHAクラスタの設定

本章では、VIP制御によるHAクラスタの構築手順を説明します。

図中の Server Instance (Active)は現用系サーバ、Server Instance (Standby)は待機系サーバのインスタンスです。

Public subnet内のNAT Instance、Private subnet内の2つのServer Instance、およびVIP

図 5.1 システム構成 VIP 制御による HA クラスタ

CIDR (VPC)

10.0.0.0/16

VIP

10.1.0.20

Public subnet (Subnet-1A)

10.0.10.0/24

Public subnet (Subnet-1B)

10.0.20.0/24

Private subnet (Subnet-2A)

10.0.110.0/24

Private subnet (Subnet-2B)

10.0.120.0/24

5.1. VPC 環境の設定

VPC Management Console、および、EC2 Management Console 上でVPC の構築を行います。
図中および説明中のIPアドレスは一例であり、実際の設定時はVPCに割り当てられているIPアドレスに読み替えてください。既存のVPCにCLUSTERPROを適用する場合は、不足しているサブネットを追加するなど適切に読み替えてください。
  1. VPC およびサブネットを設定する

    最初に VPC およびサブネットを作成します。

    ⇒ VPC Management Console の [VPC] および [Subnets] で VPC およびサブネットの追加操作を行います。

    [1] VPC

    VPC ID (vpc-xxxxxxxx) は、後で AWS 仮想IP リソース の設定時に必要となるため、別途控えておきます。

  2. Internet Gateway を設定する。

    VPC からインターネットにアクセスするための Internet Gatewayを追加します。

    ⇒ VPC Management Console の [Internet Gateways] から [Create internet gateway]をクリックして作成します。その後、 作成した Internet Gateway をVPC に Attachします。

  3. Network ACL/Security Group を設定する

    VPC内外からの不正なネットワークアクセスを防ぐために、Network ACL、および、Security Group を適切に設定します。
    Private ネットワーク (Subnet-2A、および、Subnet-2B)内に配置予定のHAクラスタノード用のインスタンスから、HTTPS で Internet Gateway と通信可能となるように、また、Cluster WebUIやインスタンス同士の通信も可能となるよう各経路について Network ACLやSecurity Group の設定を変更します。

    ⇒ 設定変更は、VPC Management Console の [Network ACLs] 、および、[Security Groups] から行います。

    CLUSTERPRO 関連コンポーネントが使用するポート番号については、『スタートアップガイド』の「注意制限事項」-「OS インストール後、CLUSTERPRO インストール前」を参照し、設定してください。

  4. HAクラスタ用のインスタンスを追加する

    HAクラスタノード用のインスタンスを Private ネットワーク(Subnet-2A、および、Subnet-2B)に作成します。
    IAMロールをインスタンスに割り当てて使用する場合は、IAMロールを指定してください。

    ⇒ インスタンスの作成は、 EC2 Management Console の [Instances] から、 [Launch Instance] をクリックして行います。

    ⇒ IAMの設定については「8. IAMの設定」を参照してください。

    作成した各インスタンスに割り当てられている Elastic Network Interface (以下、ENI) の Source/Dest. Check を disabled に変更します。
    AWS 仮想IP リソースがVIP 制御を可能にするためには、VIPアドレス(図では10.1.0.20) への通信をインスタンスの ENI にルーティングさせる必要があります。各インスタンスの ENI は、Private IP アドレス と VIP アドレス からの通信を受け取るために、Source/Dest. Check を disabled にする必要があります。

    ⇒ EC2 Management Console の [Instances] から、追加したインスタンス上で右クリックし、[Networking] - [Change Source/Dest. Check] をクリックすることで設定変更を行えます。

    [7] Server Instance (Active), [8] Server Instance (Standby)
    現用系側インスタンスに割り当てられたENI、待機系側インスタンスに割り当てられたENIは、いずれも ENI ID で識別できます。
    各インスタンスのENI ID (eni-xxxxxxxx) は後で AWS 仮想IP リソース の設定時に必要となるため、 別途控えておきます。

    インスタンスに割り当てられた ENI ID は以下の操作で確認できます。

    1. インスタンスを選択して詳細情報を表示する。

    2. [Network Interfaces] から該当するデバイスをクリックする。

    3. ポップアップ表示中の [Interface ID] を参照する。

  5. NATを追加する

    AWS CLI による VIP 制御処理を実行するために、HAクラスタノード用のインスタンスからリージョンのエンドポイントに対して HTTPS による通信が可能な状態にする必要があります。
    そのために Public ネットワーク(Subnet-1A、および、Subnet-1B)上に NAT インスタンスを作成します。AWS環境では、文字列 amzn-ami-vpc-nat が含まれるAMIとしてamzn-ami-vpc-nat-pv-2014.09.1.x86_64-ebs などが用意されています。
    NAT作成時にはPublic IPを有効にします。また、追加したNATインスタンスについてSource/Dest. Check を disabled に変更します。この操作を行わないとNAT機能が有効になりません。

    ⇒ EC2 Management Console の [Instances] から、NATインスタンスの上で右クリックし、[Networking] - [Change Source/Dest. Check] をクリックすることで設定変更を行えます。

  6. ルートテーブルを設定する。

    AWS CLI が NAT 経由でリージョンのエンドポイントと通信可能にするためのInternet Gatewayへのルーティングと、VPC内のクライアントが VIP アドレスにアクセス可能にするためのルーティングを追加します。VIP アドレスの CIDR ブロックは必ず32にする必要があります。
    Public ネットワーク (図では Subnet-1A、および、Subnet-1B)のルートテーブル(Public-AB)には、以下のルーティングが必要となります。
    • Route Table (Public-AB)

      Destination

      Target

      備考

      VPCのネットワーク
      (例では10.0.0.0/16)
      local
      最初から存在

      0.0.0.0/0

      Internet Gateway

      追加(必須)

      VIPアドレス
      (例では10.1.0.20/32)
      eni-xxxxxxxx
      (現用系側のインスタンス [7] Server Instance (Active) のENI ID)
      追加(任意)
      Private ネットワーク (図では Subnet-2A、および、Subnet-2B)のルートテーブル(Private-A、および、Private-B)には、以下のルーティングが必要となります。
    • Route Table (Private-A)

      Destination

      Target

      備考

      VPCのネットワーク
      (例では10.0.0.0/16)
      local
      最初から存在

      0.0.0.0/0

      NAT1

      追加(必須)

      VIPアドレス
      (例では10.1.0.20/32)
      eni-xxxxxxxx
      (現用系側のインスタンス [7] Server Instance (Active) のENI ID)
      追加(任意)
    • Route Table (Private-B)

      Destination

      Target

      備考

      VPCのネットワーク
      (例では10.0.0.0/16)
      local
      最初から存在

      0.0.0.0/0

      NAT2

      追加(必須)

      VIPアドレス
      (例では10.1.0.20/32)
      eni-xxxxxxxx
      (現用系側のインスタンス [7] Server Instance (Active) のENI ID)
      追加(任意)

    フェイルオーバ時に AWS 仮想IPリソースがAWS CLI を使用して これらのルートテーブルに設定されているVIPアドレスへのルーティングをすべて待機系側のインスタンスの ENI に切り替えます。

    [6] VIP
    VIPアドレスは、VPCのCIDRの範囲外である必要があります。
    ルートテーブルに設定したVIP アドレスは、後で AWS 仮想IP リソース の設定時にも必要となるため、 別途控えておきます。

    その他のルーティングは、環境にあわせて設定してください。

  7. ミラーディスク(EBS) を追加する

    必要に応じてミラーディスク(クラスタパーティション、データパーティション)に使用する EBS を追加します。

    ⇒ EBS の追加は、EC2 Management Console の [Volumes] から、[Create Volume]をクリックして作成します。その後、作成したボリュームを任意のインスタンスに Attach することで行います。

5.2. インスタンスの設定

HAクラスタ用の各インスタンスにログインして以下の設定を実施します。
  1. SELinux を無効にする

    CLUSTERPRO で必要な通信を行うためには SELinux は permissive または disabled である必要があります。SELinux の動作状態は以下のコマンドで確認します。

    $ getenforce
    Enforcing
    

    ※ Enforcingが出れば有効になっています

    SELinuxの動作状態を変更するためには、/etc/sysconfig/selinux で SELinux をdisabled に修正し、再起動します。その後、getenforceコマンドで Disabled になっていることを確認します。
  2. Firewall を設定する

    必要に応じて Firewall の設定を変更します。
    CLUSTERPRO 関連コンポーネントが使用するポート番号については、『スタートアップガイド』の「注意制限事項」-「OS インストール後、CLUSTERPRO インストール前」を参照し、設定してください。
  3. Python のインストール

    CLUSTERPRO が必要とする Python をインストールします。
    まず、Pythonがインストールされていることを確認します。
    未インストールの場合、yumコマンドなどでインストールします。
    python コマンドのインストールパスは、以下のいずれかにする必要があります。環境変数PATHにおいて、最初に見つかったpythonコマンドを使用します。
    /sbin/bin/usr/sbin/usr/bin
    Python3のみインストールされており /usr/bin/python が存在しない場合、/usr/bin/python3.x (xはバージョン) もしくは /usr/bin/python3 に対し /usr/bin/python のシンボリックリンクを作成してください。
  4. AWS CLI のインストール

    AWS CLI をインストールします。

    AWS CLI のインストールパスは、以下のいずれかにする必要があります。
    /sbin/bin/usr/sbin/usr/bin/usr/local/bin
    AWS CLI のセットアップ方法に関する詳細は下記を参照してください。
    (PythonまたはAWS CLIのインストールを行った時点ですでにCLUSTERPROがインストール済の場合は、OSを再起動してからCLUSTERPROの操作を行ってください。)
  5. AWS アクセスキーIDの登録

    シェルから、以下のコマンドを実行します。

    $ sudo aws configure
    
    質問に対して、AWS アクセスキーIDなどの情報を入力します。
    インスタンスにIAMロールを割り当てているか否かで2通りの設定に分かれます。

    ◇ IAMロールを割り当てているインスタンスの場合

    AWS Access Key ID [None]: (Enterのみ)
    AWS Secret Access Key [None]: (Enterのみ)
    Default region name [None]: <既定のリージョン名>
    Default output format [None]: text

    ◇ IAMロールを割り当てていないインスタンスの場合

    AWS Access Key ID [None]: <AWS アクセスキーID>
    AWS Secret Access Key [None]: <AWS シークレットアクセスキー>
    Default region name [None]: <既定のリージョン名>
    Default output format [None]: text
    "Default output format"は、"text"以外を指定することも可能です。
    もし誤った内容を設定してしまった場合は、/root/.aws をディレクトリごと消去してから上記操作をやり直してください。
  6. ミラーディスクの準備

    ミラーディスク用にEBSを追加していた場合は、EBS をパーティション分割し、それぞれクラスタパーティション、データパーティションに使用します。
    ミラーディスク用のパーティションについては、『インストール&設定ガイド』の「システム構成を決定する」-「ミラーディスクリソース用のパーティションを設定する (Replicator 使用時は必須)」を参照してください。
  7. CLUSTERPROのインストール

    インストール手順は『インストール&設定ガイド』を参照してください。
    CLUSTERPRO のインストール媒体を導入環境に格納します。
    (データの転送に関してはFTP、SCP、Amazon S3 経由など任意です。)

    インストール完了後、OSの再起動を行ってください。

5.3. CLUSTERPRO の設定

Cluster WebUI のセットアップ、および、接続方法は『インストール&設定ガイド』の「クラスタ構成情報を作成する」を参照してください。

ここでは以下のリソースを追加する手順を記述します。

  • ミラーディスクリソース

  • AWS 仮想IPリソース

  • AWS AZモニタリソース

  • AWS 仮想IPモニタリソース

  • NP解決 (HTTP方式)

上記以外の設定は、『インストール&設定ガイド』を参照してください。

  1. クラスタの構築

最初に、クラスタ生成ウィザードを開始し、クラスタを構築します。

  • クラスタの構築

    【手順】

    1. Cluster WebUI にアクセスし、[クラスタ生成ウィザード] をクリックします。
    2. [クラスタ生成ウィザード]画面の[クラスタ]画面が表示されます。
      [クラスタ名] に任意のクラスタ名を入力します。
      [言語] を適切に選択します。[次へ] をクリックします。
    3. Cluster WebUI に接続したインスタンスがマスタサーバとして登録済みの状態で表示されます。
      [追加] をクリックし、残りのインスタンスを追加します(インスタンスのPrivate IP アドレスを指定します)。[次へ] をクリックします。
    4. [インタコネクト] 画面が表示されます。
      インタコネクトのために使用するIPアドレス(各インスタンスのPrivate IP アドレス)を指定します。また、後で作成するミラーディスクリソースの通信経路として [MDC] に mdc1 を選択します。[次へ] をクリックします。
    5. [NP解決] 画面が表示されます。
      HTTP方式のNP解決を設定します。
      [次へ] をクリックします。
  1. グループリソースの追加

  • グループの定義

    フェイルオーバグループを作成します。

    【手順】

    1. [グループ一覧] 画面が表示されます。
      [追加] をクリックします。
    2. [グループの定義] 画面が表示されます。
      [名前] にフェイルオーバグループ名(failover1)を設定します。[次へ] をクリックします。
    3. [起動可能サーバ] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [グループ属性] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    5. [グループリソース一覧] 画面が表示されます。
      以降の手順で、この画面でグループリソースを追加していきます。
  • ミラーディスクリソース

    必要に応じてミラーディスク(EBS) にあわせたミラーディスクリソース を作成します。

    詳細は『リファレンスガイド』の「ミラーディスクリソースを理解する」を参照してください。

    【手順】

    1. [グループリソース一覧] で [追加] をクリックします。

    2. [グループのリソース定義 | failover1] 画面が開きます。
      [タイプ] ボックスでグループリソースのタイプ(ミラーディスクリソース) を選択し、[名前] ボックスにグループリソース名 (md) を入力します。[次へ] をクリックします。
    3. [依存関係] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [復旧動作] 画面が表示されます。[次へ] をクリックします。

    5. [詳細設定] 画面が表示されます。
      [マウントポイント] にミラーディスクのマウント先、[データパーティションデバイス名] [クラスタパーティションデバイス名] に「 5.2. インスタンスの設定 」-「6. ミラーディスクの準備」で作成したパーティションのデバイス名を入力します。 [完了] をクリックして設定を終了します。
  • AWS 仮想IPリソース

    AWS CLI を利用して、VIPの制御を行う AWS 仮想IPリソースを追加します。

    詳細は『リファレンスガイド』の「AWS 仮想IPリソースを理解する」を参照してください。

    【手順】

    1. [グループリソース一覧] で [追加] をクリックします。

    2. [グループのリソース定義 | failover1] 画面が開きます。
      [タイプ] ボックスでグループリソースのタイプ (AWS 仮想IP リソース) を選択して、[名前] ボックスにグループリソース名 (awsvip1) を入力します。[次へ] をクリックします。
    3. [依存関係] 画面が表示されます。何も指定せず [次へ] をクリックします。

    4. [復旧動作] 画面が表示されます。[次へ] をクリックします。

    5. [詳細] 画面が表示されます。
      [共通] タブの[IPアドレス] ボックスに、付与したいVIPアドレスを設定します(図 5.1 システム構成 VIP 制御による HA クラスタ の[6]が該当)。
      [VPC ID] ボックスに、インスタンスが所属する VPC の ID を設定します(図 5.1 システム構成 VIP 制御による HA クラスタ の[1]が該当)。
      サーバ個別設定を行う場合、[共通]タブでは、任意のサーバの VPC ID を記載し、他のサーバは個別設定を行うようにしてください。
      [ENI ID] ボックスに、VIPアドレスのルーティング先となる現用系側のインスタンスのENI IDを設定します(図 5.1 システム構成 VIP 制御による HA クラスタ の[7]が該当)。
      サーバ別設定が必須です。[共通]タブでは、任意のサーバの ENI ID を記載し、他のサーバは個別設定を行うようにしてください。
    6. 各ノードのタブをクリックし、ノード別設定を行います。
      [個別に設定する] をチェックします。
      [VPC ID] ボックスに[共通]タブで設定したVPC IDと同じものが設定されていることを確認します(図 5.1 システム構成 VIP 制御による HA クラスタ の[1]が該当)。
      [ENI ID] ボックスに、そのノードに対応するインスタンスのENI ID を設定します(図 5.1 システム構成 VIP 制御による HA クラスタ の[7]が該当)。
    7. [完了] をクリックして設定を終了します。

  1. モニタリソースの追加

  • AWS AZ モニタリソース

    監視 コマンドを利用して、指定したAZが利用可能かどうかを確認する AWS AZ モニタリソースを作成します。

    詳細は『リファレンスガイド』の「AWS AZ モニタリソースを理解する」を参照してください。

    【手順】

    1. [モニタリソース一覧] で [追加] をクリックします。

    2. [タイプ] ボックスでモニタリソースのタイプ (AWS AZモニタ) を選択し、[名前] ボックスにモニタリソース名 (awsazw1) を入力します。[次へ] をクリックします。
    3. [監視(共通)] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [監視(固有)] 画面が表示されます。
      [共通] タブの[アベイラビリティーゾーン] ボックスに監視するアベイラビリティーゾーンを入力します(現用系側のインスタンスのアベイラビリティーゾーンを設定します)(図 5.1 システム構成 VIP 制御による HA クラスタ の[2]が該当。
    5. 各ノードのタブをクリックし、ノード別設定を行います。
      [個別に設定する]をチェックします。
      [アベイラビリティーゾーン] ボックスに、そのノードに対応するインスタンスのアベイラビリティーゾーンを設定します(図 5.1 システム構成 VIP 制御による HA クラスタ の[2][3]が該当)。[次へ] をクリックします。
    6. [回復動作] 画面が表示されます。
      [回復対象] に [LocalServer]を設定します。
    7. [完了] をクリックして設定を終了します。

  • AWS 仮想IP モニタリソース

    AWS 仮想IP リソース追加時に、自動的に追加されます。
    OS API 及び AWS CLI コマンドを利用して、VIP アドレスの存在及びルートテーブルの健全性を確認します。
    詳細は『リファレンスガイド』-「AWS 仮想 IP モニタリソースを理解する」を参照してください。
  1. 設定の反映とクラスタの起動

  1. Cluster WebUI の設定モードから、[設定の反映] をクリックします。
    「設定を反映しますか。」 というポップアップメッセージが表示されるので、[OK] をクリックします。
    アップロードに成功すると、[反映に成功しました。] のメッセージが表示されますので、[OK] をクリックします。
    アップロードに失敗した場合は、表示されるメッセージに従って操作を行ってください。
  2. Cluster WebUI のツールバーのドロップダウンメニューで [操作モード] を選択して、操作モードに切り替えます。

  3. 使用するリソースによって以降の手順が異なります。詳細は『インストール&設定ガイド』-「クラスタを生成するには」を参照してください。

6. EIP制御によるHAクラスタの設定

本章では、EIP制御によるHAクラスタの構築手順を説明します。

図中の Server Instance (Active)は現用系サーバ、Server Instance (Standby)は待機系サーバのインスタンスです。

2つのAvailability Zoneとそれぞれの中の Server Instance、およびElastic IP Address

図 6.1 システム構成 EIP 制御による HA クラスタ

CIDR (VPC)

10.0.0.0/16

Public subnet (Subnet-1A)

10.0.10.0/24

Public subnet (Subnet-1B)

10.0.20.0/24

6.1. VPC 環境の設定

VPC Management Console、および、EC2 Management Console 上でVPC の構築を行います。
図中および説明中のIPアドレスは一例であり、実際の設定時はVPCに割り当てられているIPアドレスに読み替えてください。既存のVPCにCLUSTERPROを適用する場合は、不足しているサブネットを追加するなど適切に読み替えてください。
  1. VPC およびサブネットを設定する

    最初に VPC およびサブネットを作成します。

    ⇒ VPC Management Console の [VPC] および [Subnets] で VPC およびサブネットの追加操作を行います。

  2. Internet Gateway を設定する。

    VPC からインターネットにアクセスするための Internet Gatewayを追加します。

    ⇒ VPC Management Console の [Internet Gateways] から [Create internet gateway]をクリックして作成します。その後、 作成した Internet Gateway をVPC に Attachします。

  3. Network ACL/Security Group を設定する

    VPC内外からの不正なネットワークアクセスを防ぐために、Network ACL、および、Security Group を適切に設定します。
    Public ネットワーク (Subnet-1A、および、Subnet-1B)内に配置予定のHAクラスタノード用のインスタンスから、HTTPS で Internet Gatewayと通信可能となるように、また、Cluster WebUIやインスタンス同士の通信も可能となるよう各経路について Network ACLやSecurity Group の設定を変更します。

    ⇒ 設定変更は、VPC Management Console の [Network ACLs] 、および、[Security Groups] から行います。

    CLUSTERPRO 関連コンポーネントが使用するポート番号については、『スタートアップガイド』の「注意制限事項」-「OS インストール後、CLUSTERPRO インストール前」を参照し、設定してください。

  4. HAクラスタ用のインスタンスを追加する

    HAクラスタノード用のインスタンスを Public ネットワーク(Subnet-1A、および、Subnet-1B)に作成します。
    作成時にはPublic IPを有効となるように設定してください。Public IPを使用しないで作成した場合は、後からEIPを追加するか、NATを用意する必要があります(本書ではこのケースの説明は割愛します)。
    IAMロールをインスタンスに割り当てて使用する場合は、IAMロールを指定してください。

    ⇒ インスタンスの作成は、 EC2 Management Console の [Instances] から、 [Launch Instance] をクリックして行います。

    ⇒ IAMの設定については「8. IAMの設定」を参照してください。

    作成した各インスタンスに割り当てられている Elastic Network Interface (以下、ENI) のIDを確認します。

    [4] Server Instance (Active), [5] Server Instance (Standby)
    現用系側インスタンスに割り当てられたENI、待機系側インスタンスに割り当てられたENIは、いずれも ENI ID で識別できます。
    各インスタンスのENI ID (eni-xxxxxxxx) は後で AWS Elastic IP リソース の設定時に必要となるため、 別途控えておきます。

    インスタンスに割り当てられた ENI ID は以下の操作で確認できます。

    1. インスタンスを選択して詳細情報を表示する。

    2. [Network Interfaces] から該当するデバイスをクリックする。

    3. ポップアップ表示中の [Interface ID] を参照する。

  5. EIP を追加する

    インターネット側からVPC内のインスタンスにアクセスするための EIP を追加します。

    ⇒ EIP の追加は、 EC2 Management Console の [Elastic IPs] から、 [Allocate new address] をクリックして行います。

    [3] Elastic IP Address
    EIP は EIP Allocation ID で識別できます。
    ここで追加した EIP の Allocation ID (eipalloc-xxxxxxxx) は後で AWS Elastic IP リソース の設定時に必要となるため、 別途控えておきます。
  6. ルートテーブルを設定する。

    AWS CLI が NAT 経由でリージョンのエンドポイントと通信可能にするためのInternet Gatewayへのルーティングを追加します。

    Public ネットワーク (図では Subnet-1A、および、Subnet-1B)のルートテーブル(Public-AB)には、以下のルーティングが必要となります。

    • Route Table (Public-AB)

      Destination

      Target

      備考

      VPCのネットワーク
      (例では10.0.0.0/16)

      local

      最初から存在

      0.0.0.0/0

      Internet Gateway

      追加(必須)

    フェイルオーバ時に AWS Elastic IPリソースがAWS CLI を使用して、現用系側のインスタンスに割り当てられている EIP の切り離しを行い、 待機系側のインスタンスの ENI に EIP を割り当てます。
    その他のルーティングは、環境にあわせて設定してください。
  7. ミラーディスク(EBS) を追加する

    必要に応じてミラーディスク(クラスタパーティション、データパーティション)に使用する EBS を追加します。

    ⇒ EBS の追加は、EC2 Management Console の [Volumes] から、[Create Volume]をクリックして作成します。その後、作成したボリュームを任意のインスタンスに Attach することで行います。

6.2. インスタンスの設定

HAクラスタ用の各インスタンスにログインして以下の設定を実施します。

CLUSTERPROがサポートしているPython、および、AWS CLI のバージョンについては、『スタートアップガイド』-「CLUSTERPRO の動作環境」-「AWS Elastic IP リソース、AWS 仮想 IP リソース、AWS Elastic IP モニタリソース、AWS 仮想 IP モニタリソース、AWS AZ モニタリソースの動作環境」を参照してください。

  1. SELinux を無効にする

    CLUSTERPRO で必要な通信を行うためには SELinux は permissive または disabled である必要があります。SELinux の動作状態は以下のコマンドで確認します。

    $ getenforce
    Enforcing
    

    ※ Enforcingが出れば有効になっています

    SELinuxの動作状態を変更するためには、/etc/sysconfig/selinux で SELinux をdisabled に修正し、再起動します。その後、getenforceコマンドで Disabled になっていることを確認します。
  2. Firewall を設定する

    必要に応じて Firewall の設定を変更します。
    CLUSTERPRO 関連コンポーネントが使用するポート番号については、『スタートアップガイド』の「注意制限事項」-「OS インストール後、CLUSTERPRO インストール前」を参照し、設定してください。
  3. Python のインストール

    CLUSTERPRO が必要とする Python をインストールします。
    まず、Pythonがインストールされていることを確認します。
    未インストールの場合、yumコマンドなどでインストールします。
    python コマンドのインストールパスは、以下のいずれかにする必要があります。環境変数PATHにおいて、最初に見つかったpythonコマンドを使用します。
    /sbin/bin/usr/sbin/usr/bin
    Python3のみインストールされており /usr/bin/python が存在しない場合、/usr/bin/python3.x (xはバージョン) もしくは /usr/bin/python3 に対し /usr/bin/python のシンボリックリンクを作成してください。
  4. AWS CLI のインストール

    AWS CLI をインストールします。

    AWS CLI のインストールパスは、以下のいずれかにする必要があります。
    /sbin/bin/usr/sbin/usr/bin/usr/local/bin
    AWS CLI のセットアップ方法に関する詳細は下記を参照してください。
    (PythonまたはAWS CLIのインストールを行った時点ですでにCLUSTERPROがインストール済の場合は、OSを再起動してからCLUSTERPROの操作を行ってください。)
  5. AWS アクセスキーIDの登録

    シェルから、以下のコマンドを実行します(必ず sudo をつけて root 権限で実行します)。

    $ sudo aws configure
    
    質問に対して、AWS アクセスキーIDなどの情報を入力します。
    インスタンスにIAMロールを割り当てているか否かで2通りの設定に分かれます。

    ◇ IAMロールを割り当てているインスタンスの場合

    AWS Access Key ID [None]: (Enterのみ)
    AWS Secret Access Key [None]: (Enterのみ)
    Default region name [None]: <既定のリージョン名>
    Default output format [None]: text

    ◇ IAMロールを割り当てていないインスタンスの場合

    AWS Access Key ID [None]: <AWS アクセスキーID>
    AWS Secret Access Key [None]: <AWS シークレットアクセスキー>
    Default region name [None]: <既定のリージョン名>
    Default output format [None]: text
    "Default output format"は、"text"以外を指定することも可能です。
    もし誤った内容を設定してしまった場合は、/root/.aws をディレクトリごと消去してから上記操作をやり直してください。
  6. ミラーディスクの準備

    ミラーディスク用にEBSを追加していた場合は、EBS をパーティション分割し、それぞれクラスタパーティション、データパーティションに使用します。
    ミラーディスク用のパーティションについては、『インストール&設定ガイド』の「システム構成を決定する」-「ミラーディスクリソース用のパーティションを設定する (Replicator 使用時は必須)」を参照してください。
  7. CLUSTERPROのインストール

    インストール手順は『インストール&設定ガイド』を参照してください。
    CLUSTERPRO のインストール媒体を導入環境に格納します。
    (データの転送に関してはFTP、SCP、Amazon S3 経由など任意です。)

    インストール完了後、OSの再起動を行ってください。

6.3. CLUSTERPRO の設定

Cluster WebUI のセットアップ、および、接続方法は『インストール&設定ガイド』の「クラスタ構成情報を作成する」を参照してください。

ここでは以下のリソースを追加する手順を記述します。

  • ミラーディスクリソース

  • AWS EIPリソース

  • AWS AZモニタリソース

  • AWS EIPモニタリソース

  • NP解決 (HTTP方式)

上記以外の設定は、『インストール&設定ガイド』を参照してください。

  1. クラスタの構築

最初に、クラスタ生成ウィザードを開始し、クラスタを構築します。

  • クラスタの構築

    【手順】

    1. Cluster WebUI にアクセスし、[クラスタ生成ウィザード] をクリックします。
    2. [クラスタ生成ウィザード]画面の[クラスタ]画面が表示されます。
      [クラスタ名] に任意のクラスタ名を入力します。
      [次へ] をクリックします。
    3. [基本設定]画面が表示されます。
      Cluster WebUI に接続したインスタンスがマスタサーバとして登録済みの状態で表示されます。
      [追加] をクリックし、残りのインスタンスを追加します(インスタンスのPrivate IP アドレスを指定します)。[次へ] をクリックします。
    4. [インタコネクト] 画面が表示されます。
      インタコネクトのために使用するIPアドレス(各インスタンスのPrivate IP アドレス)を指定します。また、後で作成するミラーディスクリソースの通信経路として [MDC] に mdc1 を選択します。[次へ] をクリックします。
    5. [NP解決] 画面が表示されます。
      HTTP方式のNP解決を設定します。
      [次へ] をクリックします。
  1. グループリソースの追加

  • グループの定義

    フェイルオーバグループを作成します。

    【手順】

    1. [グループ一覧] 画面が表示されます。
      [追加]をクリックします。
    2. [グループの定義] 画面が表示されます。
      [名前] にフェイルオーバグループ名(failover1)を設定します。[次へ] をクリックします。
    3. [起動可能サーバ] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [グループ属性] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    5. [グループリソース一覧] 画面が表示されます。
      以降の手順で、この画面でグループリソースを追加していきます。
  • ミラーディスクリソース

    必要に応じてミラーディスク(EBS)にあわせたミラーディスクリソース を作成します。
    詳細は『リファレンスガイド』-「ミラーディスクリソースを理解する」を参照してください。

    【手順】

    1. [グループリソース一覧] で [追加] をクリックします。

    2. [グループのリソース定義 | failover1] 画面が開きます。
      [タイプ] ボックスでグループリソースのタイプ(ミラーディスクリソース) を選択し、[名前] ボックスにグループリソース名 (md) を入力します。[次へ] をクリックします。
    3. [依存関係] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [復旧動作] 画面が表示されます。[次へ] をクリックします。

    5. [詳細] 画面が表示されます。
      [マウントポイント] にミラーディスクのマウント先、[データパーティションデバイス名] [クラスタパーティションデバイス名] に「 6.2. インスタンスの設定 」-「6. ミラーディスクの準備」で作成したパーティションのデバイス名を入力します。 [完了] をクリックして設定を終了します。
  • AWS Elastic IP リソース

    AWS CLI を利用して、EIP の制御を行う AWS Elastic IP リソースを追加します。

    詳細は『リファレンスガイド』-「AWS Elastic IPリソースを理解する」を参照してください。

    【手順】

    1. [グループリソース一覧] で [追加] をクリックします。

    2. [グループのリソース定義 | failover1] 画面が開きます。
      [タイプ] ボックスでグループリソースのタイプ (AWS Elastic IP リソース) を選択して、[名前] ボックスにグループリソース名 (awseip1) を入力します。[次へ] をクリックします。
    3. [依存関係] 画面が表示されます。何も指定せず [次へ] をクリックします。

    4. [復旧動作] 画面が表示されます。[次へ] をクリックします。

    5. [詳細] 画面が表示されます。
      [共通] タブの[EIP ALLOCATION ID] ボックスに、付与したいEIPのAllocation IDを設定します(図 6.1 システム構成 EIP 制御による HA クラスタ の[3][4]が該当)。
      [ENI ID] ボックスに、EIPを割り当てる現用系側のインスタンスのENI IDを設定します。
    6. 各ノードのタブをクリックし、ノード別設定を行います。
      [個別に設定する] をチェックします。
      [ENI ID] ボックスに、そのノードに対応するインスタンスのENI IDを設定します(図 6.1 システム構成 EIP 制御による HA クラスタ の[4][5]が該当)。
    7. [完了] をクリックして設定を終了します。

  1. モニタリソースの追加

  • AWS AZ モニタリソース

    監視 コマンドを利用して、指定したAZが利用可能かどうかを確認する AWS AZ モニタリソースを作成します。
    詳細は『リファレンスガイド』-「AWS AZ モニタリソースを理解する」を参照してください。

    【手順】

    1. [モニタリソース一覧] で [追加] をクリックします。

    2. [タイプ] ボックスでモニタリソースのタイプ (AWS AZモニタ) を選択し、[名前] ボックスにモニタリソース名 (awsazw1) を入力します。[次へ] をクリックします。
    3. [監視(共通)] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [監視(固有)] 画面が表示されます。
      [共通] タブの[アベイラビリティーゾーン] ボックスに監視するアベイラビリティーゾーンを入力します(現用系側のインスタンスのアベイラビリティーゾーンを設定します)(図 6.1 システム構成 EIP 制御による HA クラスタ の[1]が該当)。
    5. 各ノードのタブをクリックし、ノード別設定を行います。
      [個別に設定する]をチェックします。
      [アベイラビリティーゾーン] ボックスに、そのノードに対応するインスタンスのアベイラビリティーゾーンを設定します(図 6.1 システム構成 EIP 制御による HA クラスタ の[1][2]が該当)。[次へ] をクリックします。
    6. [回復動作] 画面が表示されます。
      [回復対象] に [LocalServer]を設定します。
    7. [完了] をクリックして設定を終了します。

  • AWS Elastic IP モニタリソース

    AWS Elastic IP リソース追加時に、自動的に追加されます。
    現用系側のインスタンスに割り当てられている EIP アドレスへの通信を監視することで、EIPアドレスの健全性を確認します。
    詳細は『リファレンスガイド』-「AWS Elastic IP モニタリソースを理解する」を参照してください。
  1. 設定の反映とクラスタの起動

  1. Cluster WebUI の設定モードから、[設定の反映] をクリックします。
    「設定を反映しますか。」 というポップアップメッセージが表示されるので、[OK] をクリックします。
    アップロードに成功すると、[反映に成功しました。] のメッセージが表示されますので、[OK] をクリックします。
    アップロードに失敗した場合は、表示されるメッセージに従って操作を行ってください。
  2. Cluster WebUI のツールバーのドロップダウンメニューで [操作モード] を選択して、操作モードに切り替えます。

  3. 使用するリソースによって以降の手順が異なります。詳細は『インストール&設定ガイド』-「クラスタを生成するには」を参照してください。

7. DNS名制御によるHAクラスタの設定

本章では、DNS名制御によるHAクラスタの構築手順を説明します。

図中の Server Instance (Active)は現用系サーバ、Server Instance (Standby)は待機系サーバのインスタンスです。

2つのAvailability Zoneとそれぞれの中の Server Instance、およびDomain Name

図 7.1 システム構成 DNS名制御によるHAクラスタ

CIDR (VPC)

10.0.0.0/16

Domain Name

srv.hz1.local

Public subnet (Subnet-1A)

10.0.10.0/24

Public subnet (Subnet-1B)

10.0.20.0/24

Private subnet (Subnet-2A)

10.0.110.0/24

Private subnet (Subnet-2B)

10.0.120.0/24

7.1. VPC 環境の設定

VPC Management Console、および、EC2 Management Console上でVPCの構築を行います。

図中および説明中のIPアドレスは一例であり、実際の設定時はVPCに割り当てられているIPアドレスに読み替えてください。既存のVPC にCLUSTERPROを適用する場合は、不足しているサブネットを追加するなど適切に読み替えてください。

  1. VPC およびサブネットを設定する

    最初にVPCおよびサブネットを作成します。

    ⇒ VPC Management Console の [VPC] および [Subnets] でVPC およびサブネットの追加操作を行います。

    [1] VPC
    VPC ID (vpc-xxxxxxxx) は後でホストゾーンの追加時に必要となるため、別途控えておきます。
  2. Internet Gateway を設定する。

    VPC からインターネットにアクセスするための Internet Gatewayを追加します。

    ⇒ VPC Management Consoleの [Internet Gateways] から [Create internet gateway] をクリックして作成します。その後、 作成したInternet GatewayをVPCにAttachします。

  3. Network ACL/Security Groupを設定する

    VPC内外からの不正なネットワークアクセスを防ぐために、Network ACL、および、Security Group を適切に設定します。

    Privateネットワーク(Subnet-2AおよびSubnet-2B)内に配置予定のHAクラスタノード用のインスタンスから、HTTPSでInternet Gatewayと通信可能となるように、また、Cluster WebUIやインスタンス同士の通信も可能となるよう各経路についてNetwork ACLやSecurity Groupの設定を変更します。

    ⇒ 設定変更は、VPC Management Consoleの [Network ACLs] 、および、[Security Groups] から行います。

    CLUSTERPRO関連コンポーネントが使用するポート番号については、『スタートアップガイド』の「注意制限事項」-「CLUSTERPRO インストール前」を参照し、設定してください。

  4. HAクラスタ用のインスタンスを追加する

    HAクラスタノード用のインスタンスをPrivate ネットワーク(Subnet-2A、および、Subnet-2B)に作成します。

    IAMロールをインスタンスに割り当てて使用する場合は、IAMロールを指定してください。

    ⇒ インスタンスの作成は、EC2 Management Consoleの [Instances] から、 [Launch Instance] をクリックして行います。

    ⇒ IAMの設定については「8. IAMの設定」を参照してください。

  5. NATを追加する

    AWS CLIによるDNS名制御処理を実行するために、HAクラスタノード用のインスタンスからリージョンのエンドポイントに対してHTTPSによる通信が可能な状態にする必要があります。

    そのために Public ネットワーク(Subnet-1A、および、Subnet-1B)上に NAT インスタンスを作成します。AWS環境では、文字列 amzn-ami-vpc-nat が含まれるAMI として amzn-ami-vpc-nat-pv-2014.09.1.x86_64-ebs などが用意されています。

    NAT作成時にはPublic IPを有効にします。また、追加したNATインスタンスについてSource/Dest. Checkをdisabledに変更します。この操作を行わないとNAT機能が有効になりません。

    ⇒ EC2 Management Consoleの [Instances] から、NATインスタンスの上で右クリックし、[Networking] - [Change Source/Dest. Check] をクリックすることで設定変更を行えます。

  6. ルートテーブルを設定する。

    AWS CLIが NAT 経由でリージョンのエンドポイントと通信可能にするための Internet Gatewayへのルーティングを追加します。

    Publicネットワーク(図ではSubnet-1A、および、Subnet-1B)のルートテーブル(Public-AB)には、以下のルーティングが必要となります。

    • Route Table (Public-AB)

      Destination

      Target

      備考

      VPCのネットワーク
      (例では10.0.0.0/16)

      local

      最初から存在

      0.0.0.0/0

      Internet Gateway

      追加(必須)

      Private ネットワーク(図では Subnet-2A、および、Subnet-2B)のルートテーブル(Private-A、およびPrivate-B)には、以下のルーティングが必要となります。
    • Route Table (Private-A)

      Destination

      Target

      備考

      VPCのネットワーク
      (例では10.0.0.0/16)

      local

      最初から存在

      0.0.0.0/0

      NAT1

      追加(必須)

    • Route Table (Private-B)

      Destination

      Target

      備考

      VPCのネットワーク
      (例では10.0.0.0/16)

      local

      最初から存在

      0.0.0.0/0

      NAT2

      追加(必須)

      その他のルーティングは、環境にあわせて設定してください。
  7. ホストゾーンを追加する

Amazon Route 53にPrivateホストゾーンを追加します。

⇒ ホストゾーンの追加は、Route 53 Management Consoleの [DNS management]を選択し、[Create Hosted Zone] をクリックして作成します。[Type] ボックスは [Private Hosted Zone for Amazon VPC] を選択し、[VPC ID] ボックスにインスタンスが所属するVPCのID (図 7.1 システム構成 DNS名制御によるHAクラスタ の[1]に該当)を設定します。

[7] Amazon Route 53 (Hosted Zone)
ホストゾーンは Hosted Zone ID で識別できます。
Hosted Zone IDは後でAWS DNSリソースの設定時に必要となるため、別途控えておきます。

なお、本書では、クラスタを Private なサブネット上に配置してVPC 内のクライアントからアクセスする構成を採用しているためにPrivate ホストゾーンを追加していますが、Publicなサブネット上に配置してインターネット側の任意のクライアントからアクセスする構成の場合は、Publicホストゾーンを追加して ください。

  1. ミラーディスク(EBS) を追加する

必要に応じてミラーディスク(クラスタパーティション、データパーティション)に使用する EBS を追加します。

⇒ EBS の追加は、EC2 Management Console の [Volumes] から、[Create Volume]をクリックして作成します。その後、作成したボリュームを任意のインスタンスに Attach することで行います。

7.2. インスタンスの設定

HAクラスタ用の各インスタンスにログインして以下の設定を実施します。
CLUSTERPROがサポートしているPython、および、AWS CLI のバージョンについては、 『スタートアップガイド』-「CLUSTERPRO の動作環境」-「AWS DNS リソース、AWS DNS モニタリソースの動作環境」を参照してください。
  1. SELinux を無効にする

    CLUSTERPRO で必要な通信を行うためには SELinux は permissive または disabled である必要があります。SELinux の動作状態は以下のコマンドで確認します。

    $ getenforce
    Enforcing
    

    ※ Enforcingが出れば有効になっています

    SELinuxの動作状態を変更するためには、/etc/sysconfig/selinux で SELinux をdisabled に修正し、再起動します。その後、getenforceコマンドで Disabled になっていることを確認します。

  2. Firewall を設定する

    必要に応じて Firewall の設定を変更します。
    CLUSTERPRO関連コンポーネントが使用するポート番号については、『スタートアップガイド』の「注意制限事項」-「OS インストール後、CLUSTERPRO インストール前」を参照し、設定してください。
  3. Python のインストール

    CLUSTERPRO が必要とする Python をインストールします。
    まず、Pythonがインストールされていることを確認します。
    未インストールの場合、yumコマンドなどでインストールします。
    python コマンドのインストールパスは、以下のいずれかにする必要があります。環境変数PATHにおいて、最初に見つかったpythonコマンドを使用します。
    /sbin/bin/usr/sbin/usr/bin
    Python3のみインストールされており /usr/bin/python が存在しない場合、/usr/bin/python3.x (xはバージョン) もしくは /usr/bin/python3 に対し /usr/bin/python のシンボリックリンクを作成してください。
  4. AWS CLI のインストール

    AWS CLI をインストールします。

    AWS CLI のインストールパスは、以下のいずれかにする必要があります。
    /sbin/bin/usr/sbin/usr/bin/usr/local/bin
    AWS CLI のセットアップ方法に関する詳細は下記を参照してください。
    (Python またはAWS CLI のインストールを行った時点ですでにCLUSTERPROがインストール済の場合は、OSを再起動してからCLUSTERPROの操作を行ってください。)
  5. AWS アクセスキーIDの登録

    シェルから、以下のコマンドを実行します。

    $ sudo aws configure
    
    質問に対して、AWS アクセスキーIDなどの情報を入力します。
    インスタンスにIAMロールを割り当てているか否かで2通りの設定に分かれます。

    ◇ IAMロールを割り当てているインスタンスの場合

    AWS Access Key ID [None]: (Enterのみ)
    AWS Secret Access Key [None]: (Enterのみ)
    Default region name [None]: <既定のリージョン名>
    Default output format [None]: text

    ◇ IAMロールを割り当てていないインスタンスの場合

    AWS Access Key ID [None]: <AWS アクセスキーID>
    AWS Secret Access Key [None]: <AWS シークレットアクセスキー>
    Default region name [None]: <既定のリージョン名>
    Default output format [None]: text
    "Default output format"は、"text"以外を指定することも可能です。
    もし誤った内容を設定してしまった場合は、/root/.aws をディレクトリごと消去してから上記操作をやり直してください。
  6. ミラーディスクの準備

    ミラーディスク用にEBSを追加していた場合は、EBSをパーティション分割し、それぞれクラスタパーティション、データパーティションに使用します。
    ミラーディスク用のパーティションについては、『インストール&設定ガイド』の「システム構成を決定する」-「ミラーディスクリソース用のパーティションを設定する (Replicator 使用時は必須)」を参照してください。
  7. CLUSTERPROのインストール

    インストール手順は『インストール&設定ガイド』を参照してください。
    CLUSTERPRO のインストール媒体を導入環境に格納します。
    (データの転送に関してはFTP、SCP、Amazon S3 経由など任意です。)
    インストール完了後、OSの再起動を行ってください。

7.3. CLUSTERPROの設定

Cluster WebUI のセットアップ、および、接続方法は『インストール&設定ガイド』の「クラスタ構成情報を作成する」を参照してください。

ここでは以下のリソースを追加する手順を記述します。

  • ミラーディスクリソース

  • AWS DNSリソース

  • AWS AZモニタリソース

  • AWS DNSモニタリソース

  • NP解決 (HTTP方式)

上記以外の設定は、『インストール&設定ガイド』を参照してください。

  1. クラスタの構築

最初に、クラスタ生成ウィザードを開始し、クラスタを構築します。

  • クラスタの構築

    【手順】

    1. Cluster WebUI にアクセスし、[クラスタ生成ウィザード] をクリックします。
    2. [クラスタ生成ウィザード]画面の[クラスタ]画面が表示されます。
      [クラスタ名] に任意のクラスタ名を入力します。
      [言語] を適切に選択します。[次へ] をクリックします。
    3. [基本設定]画面が表示されます。
      Cluster WebUI に接続したインスタンスがマスタサーバとして登録済みの状態で表示されます。
      [追加] をクリックし、残りのインスタンスを追加します(インスタンスのPrivate IP アドレスを指定します)。[次へ] をクリックします。
    4. [インタコネクト] 画面が表示されます。
      インタコネクトのために使用するIPアドレス(各インスタンスのPrivate IP アドレス)を指定します。また、後で作成するミラーディスクリソースの通信経路として [MDC] に mdc1 を選択します。[次へ] をクリックします。
    5. [NP解決] 画面が表示されます。
      HTTP方式のNP解決を設定します。
      [次へ] をクリックします。
  1. グループリソースの追加

  • グループの定義

    フェイルオーバグループを作成します。

    【手順】

    1. [グループ一覧] 画面が表示されます。
      [追加]をクリックします。
    2. [グループの定義] 画面が表示されます。
      [名前] にフェイルオーバグループ名(failover1)を設定します。[次へ] をクリックします。
    3. [起動可能サーバ] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [グループ属性] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    5. [グループリソース一覧] 画面が表示されます。
      以降の手順で、この画面でグループリソースを追加していきます。
  • ミラーディスクリソース

    必要に応じてミラーディスク(EBS) にあわせたミラーディスクリソース を作成します。
    詳細は『リファレンスガイド』-「ミラーディスクリソースを理解する」を参照してください。

    【手順】

    1. [グループリソース一覧] で [追加] をクリックします。

    2. [グループのリソース定義 | failover1] 画面が開きます。
      [タイプ] ボックスでグループリソースのタイプ(ミラーディスクリソース) を選択し、[名前] ボックスにグループリソース名 (md) を入力します。[次へ] をクリックします。
    3. [依存関係] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [復旧動作] 画面が表示されます。[次へ] をクリックします。

    5. [詳細] 画面が表示されます。
      [マウントポイント] にミラーディスクのマウント先、[データパーティションデバイス名] [クラスタパーティションデバイス名] に「 7.2. インスタンスの設定 」-「6. ミラーディスクの準備」で作成したパーティションのデバイス名を入力します。 [完了] をクリックして設定を終了します。
  • AWS DNSリソース

    AWS CLIを利用して、DNS名の制御を行うAWS DNSリソースを追加します。

    詳細は『リファレンスガイド』-「AWS DNS リソースを理解する」を参照してください。

    【手順】

    1. [グループリソース一覧] で [追加] をクリックします。

    2. [グループのリソース定義 | failover1]] 画面が開きます。
      [タイプ] ボックスでグループリソースのタイプ (AWS DNS リソース) を選択して、 [名前] ボックスにグループリソース名 (awsdns1) を入力します。[次へ] をクリックします。
    3. [依存関係] 画面が表示されます。何も指定せず [次へ] をクリックします。

    4. [復旧動作] 画面が表示されます。[次へ] をクリックします。

    5. [詳細] 画面が表示されます。
      [共通] タブの [ホストゾーンID] ボックスに、ホストゾーンのIDを設定します(図 7.1 システム構成 DNS名制御によるHAクラスタ の[7]が該当)。
      [リソースレコードセット名] ボックスに、付与したいDNS名を設定します(図 7.1 システム構成 DNS名制御によるHAクラスタ の[5]が該当)。
      DNS名はFQDNで、末尾にドット (.) を付けた形式で設定してください。
      [IPアドレス] ボックスに、DNS名に対応するIPアドレスを設定します(図 7.1 システム構成 DNS名制御によるHAクラスタ の[4]が該当)。
      [共通]タブでは、任意のサーバのIPアドレスを記載し、他のサーバは個別設定を行うようにしてください。
      なお、本書では各サーバのIPアドレスをリソースレコードセットに含める構成を採用しているために上記の手順となっていますが、VIPやEIPをリソースレコードセットに含める場合は、[共通]タブでそのIPアドレスを記載し、個別設定は不要です。
      [TTL] ボックスに、キャッシュの生存期間(TTL = Time To Liveの略)を設定します。
      TTLの秒数を設定してください。
      [非活性時にリソースレコードセットを削除する]チェックボックスを設定します。
      AWS DNSリソースの非活性時にホストゾーンからリソースレコードセットを削除しない場合、チェックを外してください。
      なお、削除しない場合、残存したDNS名にクライアントからアクセスされる可能性があります。
    6. 各ノードのタブをクリックし、ノード別設定を行います。
      [個別に設定する] をチェックします。
      [IPアドレス] ボックスに、そのノードに対応するインスタンスのIPアドレスを設定します(図 7.1 システム構成 DNS名制御によるHAクラスタ の[4][6]が該当)。
      なお、本書では各サーバのIPアドレスをリソースレコードセットに含める構成を採用しているために上記の手順となっていますが、VIPやEIPをリソースレコードセットに含める場合は、本手順は不要です。
    7. [完了] をクリックして設定を終了します。

  1. モニタリソースの追加

  • AWS AZ モニタリソース

    監視 コマンドを利用して、指定したAZが利用可能かどうかを確認する AWS AZ モニタリソースを作成します。

    詳細は『リファレンスガイド』-「AWS AZ モニタリソースを理解する」を参照してください。

    【手順】

    1. [モニタリソース一覧] で [追加] をクリックします。

    2. [タイプ] ボックスでモニタリソースのタイプ (AWS AZモニタ) を選択し、[名前] ボックスにモニタリソース名 (awsazw1) を入力します。[次へ] をクリックします。
    3. [監視(共通)] 画面が表示されます。
      何も指定せず [次へ] をクリックします。
    4. [監視(固有)] 画面が表示されます。
      [共通]タブの[アベイラビリティーゾーン] ボックスに監視するアベイラビリティーゾーンを入力します(現用系側のインスタンスのアベイラビリティーゾーンを設定します)(図 7.1 システム構成 DNS名制御によるHAクラスタ の[2]が該当)。
    5. 各ノードのタブをクリックし、ノード別設定を行います。
      [個別に設定する]をチェックします。
      [アベイラビリティーゾーン] ボックスに、そのノードに対応するインスタンスのアベイラビリティーゾーンを設定します(図 7.1 システム構成 DNS名制御によるHAクラスタ の[2][3]が該当)。[次へ] をクリックします。
    6. [回復動作] 画面が表示されます。
      [回復対象] に [LocalServer] を設定します。
    7. [完了] をクリックして設定を終了します。

  • AWS DNSモニタリソース

    AWS DNSリソース追加時に、自動的に追加されます。
    OS APIおよびAWS CLIコマンドを利用して、リソースレコードセットの存在と登録したIPアドレスがDNS名の名前解決によって得られるかを確認します。
    詳細は 『リファレンスガイド』 -「AWS DNS モニタリソースを理解する」を参照してください。
  1. 設定の反映とクラスタの起動

  1. Cluster WebUI の設定モードから、[設定の反映] をクリックします。
    「設定を反映しますか。」 というポップアップメッセージが表示されるので、[OK] をクリックします。
    アップロードに成功すると、[反映に成功しました。] のメッセージが表示されますので、[OK] をクリックします。
    アップロードに失敗した場合は、表示されるメッセージに従って操作を行ってください。
  2. Cluster WebUI のツールバーのドロップダウンメニューで [操作モード] を選択して、操作モードに切り替えます。

  3. 使用するリソースによって以降の手順が異なります。詳細は『インストール&設定ガイド』-「クラスタを生成するには」を参照してください。

8. IAMの設定

本章では、AWS 環境における IAM (Identity & Access Management)の設定について説明します。
AWS 仮想IP リソース などのリソースおよびモニタリソースは、その処理のために AWS CLI を内部で実行します。AWS CLI が正常に実行されるためには、事前に IAM の設定が必要となります。

AWS CLI にアクセス許可を与える方法として、IAM ロールを使用する方針と、IAM ユーザを使用する方針の2通りがあります。基本的には各インスタンスに AWS アクセスキーID、AWS シークレットアクセスキーを保存する必要がなくセキュリティ上安全であることから、前者のIAM ロールを使用する方針を推奨します。

それぞれの方針のメリット・デメリットは以下のとおりです。

メリット

デメリット

IAMロールを使用する方針

セキュリティ上安全
キー情報の管理が簡単

なし。

IAMユーザを使用する方針

後からインスタンス別のアクセス権限設定が可能

キー情報漏えいのリスクが高い
キー情報の管理が煩雑

IAMの設定手順は次の通りです。

  1. まずIAMポリシーを作成します。後述の「IAMポリシーの作成」を参照してください。

  2. 次にインスタンスの設定を行います。
    IAMロールを使用する場合、後述の「インスタンスの設定 - IAMロールを使用する」を参照してください。
    IAMユーザを使用する場合、後述の「インスタンスの設定 - IAMユーザを使用する」を参照してください。

8.1. IAMポリシーの作成

AWS の EC2 や S3 などのサービスへのアクションに対するアクセス許可を記述したポリシーを作成します。CLUSTERPRO の AWS 関連リソースおよびモニタリソースが AWS CLI を実行するために許可が必要なアクションは以下のとおりです。

必要なポリシーは将来変更される可能性があります。

◇ AWS 仮想IPリソース/AWS 仮想IPモニタリソース

アクション

説明

ec2:DescribeNetworkInterfaces
ec2:DescribeVpcs
ec2:DescribeRouteTables

VPC、ルートテーブル、ネットワークインタフェースの情報を取得する時に必要です。

ec2:ReplaceRoute

ルートテーブルを更新する時に必要です。

◇ AWS Elastic IPリソース/AWS Elastic IPモニタリソース

アクション

説明

ec2:DescribeNetworkInterfaces
ec2:DescribeAddresses

EIP、ネットワークインタフェースの情報を取得する時に必要です。

ec2:AssociateAddress

EIPをENIに割り当てる際に必要です。

ec2:DisassociateAddress

EIPをENIから切り離す際に必要です。

◇ AWS DNSリソース/AWS DNSモニタリソース

アクション

説明

Route 53:ChangeResourceRecordSets

リソースレコードセット の追加、削除、設定内容の 更新する時に必要です。

Route 53:ListResourceRecordSets

リソースレコードセット 情報の取得をする時に必要 です。

◇ AWS AZモニタリソース

アクション

説明

ec2:DescribeAvailabilityZones

アベイラビリティーゾーンの情報を取得する時に必要です。

以下のカスタムポリシーの例ではすべてのAWS 関連リソースおよびモニタリソースが使用するアクションを許可しています。

{
    "Version": "2012-10-17",
    "Statement": [
    {
        "Action": [
            "ec2:Describe*",
            "ec2:ReplaceRoute",
            "ec2:AssociateAddress",
            "ec2:DisassociateAddress",
            "route53:ChangeResourceRecordSets",
            "route53:ListResourceRecordSets"
        ],
        "Effect": "Allow",
        "Resource": "*"
    }
    ]
}

⇒ IAM Management Console の [Policies] - [Create Policy] で カスタムポリシーを作成できます。

8.2. インスタンスの設定

IAMロールを使用する

IAM ロールを作成し、インスタンスに付与することでAWS CLIを実行可能にする方法です。

IAMとEC2インスタンス

図 8.1 IAMロールを使用したインスタンスの設定

  1. IAM ロールを作成します。作成したロールに IAM ポリシーをアタッチします。
    IAM Management Console の [Roles] - [Create New Role] で IAM ロールを作成できます。
  2. インスタンス作成時に、「IAM Role」に作成した IAM ロールを指定します。

  3. インスタンスにログオンします。

  4. Pythonをインストールします。
    CLUSTERPRO が必要とする Python をインストールします。まず、Pythonがインストールされていることを確認します。もし未インストールであれば、yumコマンドなどでインストールします。
    pythonコマンドのインストールパスは、以下のいずれかにする必要があります。環境変数PATHにおいて、最初に見つかったpythonコマンドを使用します。

    /sbin/bin/usr/sbin/usr/bin

    Python3のみインストールされており /usr/bin/python が存在しない場合、/usr/bin/python3.x (xはバージョン) もしくは /usr/bin/python3 に対し /usr/bin/python のシンボリックリンクを作成してください。
  5. AWS CLI をインストールします。

    AWS CLI のインストールパスは、以下のいずれかにする必要があります。
    /sbin/bin/usr/sbin/usr/bin/usr/local/bin
    AWS CLI のセットアップ方法に関する詳細は下記を参照してください。

    (PythonまたはAWS CLIのインストールを行った時点ですでにCLUSTERPROがインストール済の場合は、OSを再起動してからCLUSTERPROの操作を行ってください。)

  6. シェルから以下のコマンドを実行します。

    $ sudo aws configure
    

    質問に対して AWS CLI の実行に必要な情報を入力します。AWS アクセスキー ID、AWS シークレットアクセスキーは入力しないことに注意してください。

    AWS Access Key ID [None]: (Enterのみ)
    AWS Secret Access Key [None]: (Enterのみ)
    Default region name [None]: <既定のリージョン名>
    Default output format [None]: text
    "Default output format"は、"text" 以外を指定することも可能です。
    もし誤った内容を設定してしまった場合は、/root/.aws をディレクトリごと消去してから上記操作をやり直してください。

IAMユーザを使用する

IAM ユーザを作成し、そのアクセスキーID、シークレットアクセスキーをインスタンス内に保存することでAWS CLIを実行可能にする方法です。 インスタンス作成時の IAM ロールの付与は不要です。

IAMとEC2インスタンス

図 8.2 IAMユーザを使用したインスタンスの設定

  1. IAM ユーザを作成します。作成したユーザに IAM ポリシーをアタッチします。
    IAM Management Console の [Users] - [Create New Users] で IAM ユーザを作成できます。
  2. インスタンスにログインします。

  3. Pythonをインストールします。
    CLUSTERPRO が必要とする Python をインストールします。まず、Pythonがインストールされていることを確認します。もし未インストールであれば、yumコマンドなどでインストールします。
    python コマンドのインストールパスは、以下のいずれかにする必要があります。環境変数PATHにおいて、最初に見つかったpythonコマンドを使用します。
    /sbin/bin/usr/sbin/usr/bin

    Python3のみインストールされており /usr/bin/python が存在しない場合、/usr/bin/python3.x (xはバージョン) もしくは /usr/bin/python3 に対し/usr/bin/python のシンボリックリンクを作成してください。

  4. AWS CLI をインストールします。

    AWS CLI のインストールパスは、以下のいずれかにする必要があります。
    /sbin/bin/usr/sbin/usr/bin/usr/local/bin
    AWS CLI のセットアップ方法に関する詳細は下記を参照してください。
    (PythonまたはAWS CLIのインストールを行った時点ですでにCLUSTERPROがインストール済の場合は、OSを再起動してからCLUSTERPROの操作を行ってください。)
  5. シェルから以下のコマンドを実行します。

    $ sudo aws configure
    

    質問に対して AWS CLI の実行に必要な情報を入力します。AWS アクセスキー ID、AWS シークレットアクセスキーは作成した IAM ユーザの詳細情報画面から取得したものを入力します。

    AWS Access Key ID [None]: <AWS アクセスキー>
    AWS Secret Access Key [None]: <AWS シークレットアクセスキー>
    Default region name [None]: <既定のリージョン名>
    Default output format [None]: text
    "Default output format"は、"text"以外を指定することも可能です。
    もし誤った内容を設定してしまった場合は、/root/.aws をディレクトリごと消去してから上記操作をやり直してください。

9. トラブルシューティング

本章では、AWS 環境において CLUSTERPRO の設定が上手くいかない時の確認事項と対処方法について説明します。

◆ AWS 関連リソースおよびモニタリソース起動に失敗する。

まずOSが再起動済であること、PythonおよびAWS CLIがインストールされていること、AWS CLIの設定が正しく完了していることを確認してください。
CLUSTERPROのインストール時に再起動を行っていた場合でも、その後にPython、AWS CLI のインストールに伴い環境変数の設定変更が発生する場合はOSの再起動を行ってください。

◆ AWS 仮想 IP リソースの起動に失敗する。

Cluster WebUIのメッセージ
Activating awsvip1 resource has failed.(99 : Internal error. (status=nn))
考えられる原因

以下のいずれかが考えられます。

  • Python が未インストール、またはパスが通っていない。

  • AWS CLI が未インストール、またはパスが通っていない。

対処方法

以下を確認します。

  • Python、またはAWS CLI がインストールされていることを確認します。

  • python コマンドのインストールパスが以下のいずれかであることを確認します。
    /sbin/bin/usr/sbin/usr/bin
  • AWS CLI のインストールパスが以下のいずれかであることを確認します。
    /sbin/bin/usr/sbin/usr/bin/usr/local/bin

Cluster WebUIのメッセージ
Activating awsvip1 resource has failed.(5 : Failed in the AWS CLI command.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI 設定が未設定(aws configure未実行)

  • AWS CLI 設定が見つからない(aws configure をroot以外のユーザ、または、sudoなしで実行したなど)
    以下の順序でcredentials(IAMユーザを使用する方針の場合)、configファイルを検索します。
    1. $HOME/.aws配下
    2. /root/.aws配下
  • AWS CLI 設定の入力内容誤り(リージョン、アクセスキーID、シークレットキー入力誤り)

  • (IAMロールを使用した運用の場合)インスタンスへのIAMロール未設定。
    IAMロールを使用する方針の場合、該当インスタンスから以下へアクセスし、設定しているIAMロール名が表示されるか確認してください。「404 Not Found」になった場合はIAMロールが設定されていません。
    http://169.254.169.254/latest/meta-data/iam/security-credentials/
  • 指定した VPC ID、または、ENI IDが不正

  • リージョンのエンドポイントがメンテナンスや障害のため停止している。

  • リージョンのエンドポイントまでの通信路の問題。

  • ノードの高負荷による遅延。

対処方法

以下を確認します。

  • AWS CLI の設定を正しい内容に修正し、AWS CLI が正常に動作することを確認します。

  • ノードの高負荷の場合は、負荷要因を取り除いてください。

  • (IAMロールを使用した運用の場合)AWS管理コンソールで設定を確認してください。


Cluster WebUIのメッセージ
Activating awsvip1 resource has failed.(5 : The vpc ID 'vpc-xxxxxxxx' does not exist)
考えられる原因

指定したVPC IDが誤っているか、または存在しない可能性が考えられます。

対処方法

正しいVPC ID を指定します。


Cluster WebUIのメッセージ
Activating awsvip1 resource has failed.(5 : The networkInterface ID 'eni-xxxxxxxx' does not exist)
考えられる原因

指定したENI IDが誤っているか、または存在しない可能性が考えられます。

対処方法

正しいENI ID を指定します。


Cluster WebUIのメッセージ
Activating awsvip1 resource has failed.(5 : You are not authorized to perform this operation.)
考えられる原因

IAM ロールの ReplaceRoute 権限について実行できるルートテーブルを制限している場合、IAM ポリシーの Resource に指定したルートテーブルに誤り、または不足がある可能性があります。

対処方法
AWS 仮想 IP リソースはルートテーブル更新時、指定された VPC 配下のすべてのルートテーブルのうち、指定された仮想 IP アドレスのエントリが存在するルートテーブルについて更新を行います。
そのため IAM ポリシーの Resource には、該当する(更新対象となる)ルートテーブルすべてについて許可を設定してください。

Cluster WebUIのメッセージ
Activating awsvip1 resource has failed.(6 : Timeout occurred.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI コマンドがルートテーブルやNATの設定ミスやプロキシサーバーなどの理由でリージョンのエンドポイントと通信できない状態である可能性が考えられます。

  • ノードの高負荷による遅延。

対処方法

以下を確認します。

  • NAT インスタンスが起動していること

  • NAT インスタンスへのルーティングが設定済みであること。

  • パケットがフィルタリングで落とされていないこと。

  • ルートテーブル、NAT、プロキシサーバーの設定を確認してください。

  • ノードの高負荷の場合は、負荷要因を取り除いてください。


Cluster WebUIのメッセージ
Activating awsvip1 resource has failed.(7 : The VIP address vvv.www.xxx.yyy belongs to a VPC subnet.)
考えられる原因

指定したVIP アドレスが VPC CIDR 範囲内のため不適切です。

対処方法

VIP アドレスに VPC CIDR の範囲外となるIPアドレスを指定します。


◆ AWS 仮想 IP リソースは正常に起動しているが、VIP アドレスに対する ping が通らない。

Cluster WebUIのメッセージ
-
考えられる原因

AWS 仮想 IP リソースに設定した ENI の Source/Dest. Check が有効になっています。

対処方法

AWS 仮想 IP リソースに設定した ENI の Source/Dest. Check を無効に設定します。


◆ AWS 仮想 IP モニタリソースが異常になる。

Cluster WebUIのメッセージ
Detected an error in monitoring awsvipw1. (8 : The routing for VIP vvv.www.xxx.yyy was changed.)
考えられる原因

ルートテーブルにおいて、AWS 仮想 IP リソースに対応するVIP アドレスのターゲットがなんらかの理由で別のENI IDに変更されている。

対処方法
異常を検知した時点でAWS 仮想 IP リソースが自動的に再起動され、ターゲットが正しいENI IDに更新されます。
別のENI IDに変更された原因として、他のHAクラスタで同じVIPアドレスを誤って使用していないかなどを確認します。

◆ AWS Elastic IP リソースの起動に失敗する。

Cluster WebUIのメッセージ
Activating awseip1 resource has failed.(99 : Internal error. (status=*nn*))
考えられる原因

以下のいずれかが考えられます。

  • Python が未インストール、またはパスが通っていない。

  • AWS CLI が未インストール、またはパスが通っていない。

対処方法

以下を確認します。

  • Python、またはAWS CLI がインストールされていることを確認します。

  • python コマンドのインストールパスが以下のいずれかであることを確認します。
    /sbin/bin/usr/sbin/usr/bin
  • AWS CLI のインストールパスが以下のいずれかであることを確認します。
    /sbin/bin/usr/sbin/usr/bin/usr/local/bin

Cluster WebUIのメッセージ
Activating awseip1 resource has failed.(5 : Failed in the AWS CLI command.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI 設定が未設定(aws configure未実行)

  • AWS CLI 設定が見つからない(aws configure をroot以外のユーザ、または、sudoなしで実行したなど)
    以下の順序でcredentials(IAMユーザを使用する方針の場合)、configファイルを検索します。
    1. $HOME/.aws配下
    2. /root/.aws配下
  • AWS CLI 設定の入力内容誤り(リージョン、アクセスキーID、シークレットキー入力誤り)

  • (IAMロールを使用した運用の場合)インスタンスへのIAMロール未設定。
    IAMロールを使用する方針の場合、該当インスタンスから以下へアクセスし、設定しているIAMロール名が表示されるか確認してください。「404 Not Found」になった場合はIAMロールが設定されていません。
  • 指定した EIP Allocation ID、または、ENI IDが不正

  • リージョンのエンドポイントがメンテナンスや障害のため停止している。

  • リージョンのエンドポイントまでの通信路の問題。

  • ノードの高負荷による遅延。

対処方法

以下を確認します。

  • AWS CLI の設定を正しい内容に修正し、AWS CLI が正常に動作することを確認します。

  • ノードの高負荷の場合は、負荷要因を取り除いてください。

  • (IAMロールを使用した運用の場合)AWS管理コンソールで設定を確認してください。


Cluster WebUIのメッセージ
Activating awseip1 resource has failed.(5 : The allocation ID 'eipalloc-xxxxxxxx' does not exist)
考えられる原因

指定したEIP Allocation IDが誤っているか、または存在しない可能性が考えられます。

対処方法

正しいEIP Allocation ID を指定します。


Cluster WebUIのメッセージ
Activating awseip1 resource has failed.(5 : The networkInterface ID 'eni-xxxxxxxx' does not exist)
考えられる原因

指定したENI IDが誤っているか、または存在しない可能性が考えられます。

対処方法

正しいENI ID を指定します。


Cluster WebUIのメッセージ
Activating awseip1 resource has failed.(6 : Timeout occurred.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI コマンドがルートテーブルやNATの設定ミスやプロキシサーバーなどの理由でリージョンのエンドポイントと通信できない状態である可能性が考えられます。

  • ノードの高負荷による遅延。

対処方法

以下を確認します。

  • 各インスタンスにPublic IPが割り当てられていることを確認します。

  • 各インスタンスでAWS CLIが正常に動作することを確認します。

  • ルートテーブル、NAT、プロキシサーバーの設定を確認してください。

  • ノードの高負荷の場合は、負荷要因を取り除いてください。


◆ AWS Elastic IP モニタリソースが異常になる。

Cluster WebUIのメッセージ
Detected an error in monitoring awseipw1. (7 : The EIP address does not exist. (EIP ALLOCATION ID=eipalloc-xxxxxxxx))
考えられる原因

指定したENI IDとElastic IPの関連付けが何らかの理由で解除されている。

対処方法
異常を検知した時点でAWS Elastic IP リソースが自動的に再起動され、指定したENI IDとElastic IPの関連付けが行われます。
Elastic IPとの関連付けが変更された原因として、他のHAクラスタで同じEIP Allocation IDを誤って使用していないかなどを確認します。

◆ AWS DNSリソースの起動に失敗する。

Cluster WebUIのメッセージ
Activating awsdns1 resource has failed.(99 : Internal error. (status=*nn*))
考えられる原因

以下のいずれかが考えられます。

  • Pythonが未インストール、またはパスが通っていない。

  • AWS CLIが未インストール、またはパスが通っていない。

対処方法

以下を確認します。

  • Python、またはAWS CLI がインストールされていることを確認します。

  • python コマンドのインストールパスが以下のいずれかであることを確認します。
    /sbin/bin/usr/sbin/usr/bin
  • AWS CLI のインストールパスが以下のいずれかであることを確認します。
    /sbin/bin/usr/sbin/usr/bin/usr/local/bin

Cluster WebUIのメッセージ
Activating awsdns1 resource has failed. (5 : Failed in the AWS CLI command.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI設定が未(aws configure未実行)

  • AWS CLI 設定が見つからない(aws configure をroot以外のユーザ、または、sudoなしで実行したなど)
    以下の順序でcredentials(IAMユーザを使用する方針の場合)、configファイルを検索します。
    1. $HOME/.aws配下
    2. /root/.aws配下
  • AWS CLI設定の入力内容誤り(リージョン、アクセスキーID、 シークレットキー入力誤り)

  • (IAMロールを使用した運用の場合)インスタンスへのIAMロール未設定。
    IAMロールを使用する方針の場合、該当インスタンスから以下へアクセスし、設定しているIAMロール名が表示されるか確認してください。「404 Not Found」になった場合はIAMロールが設定されていません。
  • 指定したリソースレコードセットが不正

  • リージョンのエンドポイントがメンテナンスや障害のため停止している。

  • リージョンのエンドポイントまでの通信路の問題。

  • ノードの高負荷による遅延。

  • Route 53 にアクセスできない状態もしくは Route 53 が応答しない状態。

  • Route 53 の当該ホストゾーンが対象とするVPCに、HAインスタンスが所属するVPCを追加していない。

  • HA インスタンスが所属する VPC で DNS 名前解決を有効にしていない。

  • [リソースレコードセット名] が大文字で指定されている。

  • 以下のコマンドをノード(インスタンス)上の端末から手動で実行してください。
    # aws route53 list-resource-record-sets --hostted-zone-id <ホストゾーンID>
    「Could not connect to the endpoint URL」エラーが表示される場合、以下のいずれかが考えられます。
    - VPCエンドポイントを使用している場合、VPCエンドポイントはRoute 53のサービスには未対応のため、VPCエンドポイントを使用している場合はAWS DNSリソース/モニタリソースは利用できません。
    - VPCエンドポイントを使用していない場合、AWS上の設定の問題が考えられます。
対処方法

以下を確認します。

  • AWS CLI の設定を正しい内容に修正し、AWS CLI が正常に動作することを確認します。

  • ノードの高負荷の場合は、負荷要因を取り除いてください。

  • Route 53 マネジメントコンソールの「当該ホストゾーン」について、「関連付けられた VPC」に必要なVPCが追加されていることを確認してください。

  • VPC マネジメントコンソールにおいて、使用している VPC のプロパティで「DNS 解決」が有効になっていることを確認してください。意図的に「DNS 解決」を無効にしている場合は、インスタンスが AWS DNS リソースで追加したレコードセットを名前解決できるように適切なリゾルバを設定してください。

  • [リソースレコードセット名] は小文字で指定してください。

  • VPCエンドポイントを使用している場合、NATゲートウェイ、NATインスタンス、Proxyサーバのいずれかの方法に変更することを検討してください。VPCエンドポイントを使用していない場合、AWSへ確認してください。

  • (IAMロールを使用した運用の場合)AWS管理コンソールで設定を確認してください。


Cluster WebUIのメッセージ
Activating awsdns1 resource has failed. (5 : No hosted zone found with ID: %1)
考えられる原因

指定したホストゾーンIDが誤っているか、または存在しない可能性が考えられます。

対処方法

正しいホストゾーンIDを指定します。


Cluster WebUIのメッセージ
Activating awsdns1 resource has failed. (6 : Timeout occurred.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI コマンドがルートテーブルやNATの設定ミスやプロキシサーバーなどの理由でリージョンのエンドポイントと通信できない状態である可能性が考えられます。

  • ノードの高負荷による遅延。

  • Route 53エンドポイント側の処理遅延。

  • AWS CLI 内部で実行されるインスタンスメタデータに対するアクセスが遅延。

対処方法

以下を確認します。

  • NATインスタンスが起動していること。

  • NATインスタンスへのルーティングが設定済みであること。

  • パケットがフィルタリングで落とされていないこと。

  • ルートテーブル、NAT、プロキシサーバーの設定を確認してください。

  • ノードの高負荷の場合は、負荷要因を取り除いてください。

  • AWS 環境において監視(共通)の [タイムアウト] が AWS CLI 実行に必要な時間以上の値を設定していること。AWS DNS モニタリソースは以下の AWS CLI を実行しています。手動にて AWS CLI を実行し、必要な時間を計測してください。
    # aws route53 list-resource-record-sets
  • (IAMロールを使用した運用の場合)CLUSTERPRO の AWS DNS リソースおよびモニタリソースが AWS CLI を実行する際に、インスタンスメタデータからアクセスキーIDなどの認証情報を取得します。
    インスタンスメタデータに対するアクセスに遅延がないか、手動で以下のコマンドを実行に必要な時間を確認してください。
    どちらかひとつでも遅延がある場合はアクセスの遅延が発生しています。
    遅延がある場合は、aws configure コマンドにより、各クラスタノードにアクセスキー ID およびシークレットアクセスキーの設定を追加し、IAM ユーザで実行されるようにすることで、タイムアウトの発生確率が減少する可能性があります。
    - 各クラスタノードから http://169.254.169.254/latest/meta-data/ にブラウザまたは curl コマンドなどでアクセス。
    - クラスタノードのいずれかにおいて aws configure list を実行。

◆ AWS DNS リソースは正常に起動しているが、クライアントから名前解決できるようになるまでに時間が掛かる。

Cluster WebUIのメッセージ
考えられる原因

以下のいずれかが考えられます。

  • Route53の仕様により、Route53の設定が権威サーバすべてに反映されるまでに最大60秒掛かります。以下を参照してください。
    Amazon Route 53 のよくある質問
    Q:Amazon Route 53 での DNS 設定の変更が全体に適用されるには、どのくらいの時間がかかりますか。
  • OS側のリゾルバにより時間が掛かっている。

  • フェイルオーバー時にAWS DNSリソースによるリソースレコードセットの削除と作成に時間が掛かっている。
    [非活性時にリソースレコードセットを削除する] がチェックがONの場合、フェイルオーバー元でAWS DNSリソース非活性時にリソースレコードセットを削除後、フェイルオーバー先でAWS DNSリソース活性時にリソースレコードセットを作成となるため、名前解決可能になるまでの時間が遅くなる可能性があります。
    チェックがOFFの場合、非活性時にもリソースレコードセットが削除されなくなり、該当リソースレコードセットのIPアドレス更新のみとなるため、名前解決可能になるまでの時間が短縮される可能性があります。
    チェックをOFFにした場合は、通常のAWS DNSリソース非活性時やクラスタ停止後にもリソースレコードセットは削除されずに残りますので、ご留意ください。AWS DNSリソース非活性後やクラスタ停止後でも名前解決されます。
  • AWS DNSリソースの[TTL]の値が大きい。

  • AWS DNSモニタリソースの [監視開始待ち時間] の値が小さい。
    もしRoute 53 の変更が反映完了する前に名前解決を試みてしまうとDNSからはNXDOMAIN(存在しないドメイン)が返りますが、その場合はネガティブキャッシュの有効期間が経過するまでは名前解決に失敗します。
    そのため、[監視開始待ち時間]を小さい値に設定していると、名前解決可能になるまでに長時間を要する結果となる可能性があります。
対処方法

以下を確認します。

  • OS側のリゾルバの設定を見直してください。

  • AWS DNSリソースの [非活性時にリソースレコードセットを削除する] をOFFにします。

  • AWS DNSリソースの [TTL] の値を小さい値に設定します。

  • AWS DNSモニタリソースの [監視開始待ち時間] の値を許容できる大きな値に設定します。


◆ AWS DNSモニタリソースが異常になる。

Cluster WebUIのメッセージ
Detected an error in monitoring awsdnsw1. (7 : The resource record set in Amazon Route 53 does not exist.)
考えられる原因

以下のいずれかが考えられます。

  • ホストゾーンにおいて、 AWS DNS リソースに対応するリソース レコードセットがなんらかの理由で削除されている。

  • AWS DNS リソースの活性直後、Route 53 における DNS 設定の変更が反映される前に、AWS DNS モニタリソースが監視を実行すると名前解決ができないため監視に失敗します。『スタートアップガイド』-「注意制限事項」-「AWS DNS モニタリソースの設定について」を参照してください。

  • IAMポリシーの route53:ChangeResourceRecordSets、route53:ListResourceRecordSets が未設定。「8.1. IAMポリシーの作成」を参照してください。

  • Route 53 の当該ホストゾーンが対象とするVPCに、HAインスタンスが所属するVPCを追加していない。

対処方法

以下を確認します。

  • リソースレコードセットが削除された原因として、他の HAクラスタで同じリソースレコードセットを誤って使用していないこと。

  • AWS DNS モニタリソースの [監視開始待ち時間] が Route 53 における DNS 設定の変更が反映される時間より長く設定されていること。

  • IAMポリシーに route53:ChangeResourceRecordSets、route53:ListResourceRecordSets が設定されていること。

  • Route 53 マネジメントコンソールの「当該ホストゾーン」について、「関連付けられた VPC」に必要なVPCが追加されていること。


Cluster WebUIのメッセージ
Detected an error in monitoring awsdnsw1. (8 : IP address different from the setting is registered in the resource record set of Amazon Route 53.)
考えられる原因

ホストゾーンにおいて、 AWS DNS リソースに対応するリソース レコードセットのIPアドレスがなんらかの理由で変更されている。

対処方法

リソースレコードセットが変更された原因として、他の HAクラスタで同じリソースレコードセットを誤って使用していないかなどを確認します。


Cluster WebUIのメッセージ
Detected an error in monitoring awsdnsw1. (9 : Failed to resolve domain name.)
考えられる原因

リソースレコードセットとしてホストゾーンに登録したDNS 名での名前解決確認がなんらかの理由で失敗した。

対処方法

以下を確認します。

  • リゾルバの設定に誤りがないこと

  • ネットワークの設定に誤りがないこと

  • Publicホストゾーンを使用している場合は、レジストラのネームサーバ(NS)レコードの設定で、ドメインへのクエリがAmazon Route 53ネームサーバを参照するようになっていること


Cluster WebUIのメッセージ
Detected an error in monitoring awsdnsw1. (10 : IP address which is resolved domain name from the DNS resolver does not match setting.)
考えられる原因

リソースレコードセットとしてホストゾーンに登録したDNS 名での名前解決確認で得られたIPアドレスが正しくない。

対処方法

以下を確認します。

  • リゾルバの設定に誤りがないこと

  • hostsファイル中にDNS名に関するエントリが存在しないこと


◆ AWS DNS モニタリソースが警告または異常になる。

Cluster WebUIのメッセージ
[警告時]
Warn monitoring awsdnsw1. (106 : Timeout occurred.)
[異常時]
Detected an error in monitoring awsdnsw1. (6 : Timeout occurred.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI コマンドがルートテーブルやNATの設定ミスやプロキシサーバーなどの理由でリージョンのエンドポイントと通信できない状態である可能性が考えられます。

  • ノードの高負荷による遅延。

  • Route 53エンドポイント側の処理遅延。

  • AWS CLI 内部で実行されるインスタンスメタデータに対するアクセスが遅延。

対処方法

以下を確認します。

  • NATインスタンスが起動していること。

  • NATインスタンスへのルーティングが設定済みであること。

  • パケットがフィルタリングで落とされていないこと。

  • ルートテーブル、NAT、プロキシサーバーの設定を確認してください。

  • AWS 環境において監視(共通)の [タイムアウト] が AWS CLI 実行に必要な時間以上の値を設定していること。AWS DNS モニタリソースは以下の AWS CLI を実行しています。手動にて AWS CLI を実行し、必要な時間を計測してください。
    # aws route53 list-resource-record-sets
  • (IAMロールを使用した運用の場合)CLUSTERPRO の AWS DNS リソースおよびモニタリソースが AWS CLI を実行する際に、インスタンスメタデータからアクセスキーIDなどの認証情報を取得します。
    インスタンスメタデータに対するアクセスに遅延がないか、手動で以下のコマンドを実行に必要な時間を確認してください。
    どちらかひとつでも遅延がある場合はアクセスの遅延が発生しています。
    遅延がある場合は、aws configure コマンドにより、各クラスタノードにアクセスキー ID およびシークレットアクセスキーの設定を追加し、IAM ユーザで実行されるようにすることで、タイムアウトの発生確率が減少する可能性があります。
    - 各クラスタノードから http://169.254.169.254/latest/meta-data/ にブラウザまたは curl コマンドなどでアクセス。
    - クラスタノードのいずれかにおいて aws configure list を実行。

◆ AWS AZ モニタリソースが警告または異常になる。

Cluster WebUIのメッセージ
[警告時]
Warn monitoring awsazw1. (105 : Failed in the AWS CLI command.)
[異常時]
Detected an error in monitoring awsazw1. (5 : Failed in the AWS CLI command.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI 設定が未設定(aws configure未実行)

  • AWS CLI 設定が見つからない(aws configure をroot以外のユーザ、または、sudoなしで実行したなど)
    以下の順序でcredentials(IAMユーザを使用する方針の場合)、configファイルを検索します。
    1. $HOME/.aws配下
    2. /root/.aws配下
  • AWS CLI 設定の入力内容誤り(リージョン、アクセスキーID、シークレットキー入力誤り)

  • (IAMロールを使用した運用の場合)インスタンスへのIAMロール未設定。
    IAMロールを使用する方針の場合、該当インスタンスから以下へアクセスし、設定しているIAMロール名が表示されるか確認してください。「404 Not Found」になった場合はIAMロールが設定されていません。
  • 指定した アベイラビリティーゾーンが不正

  • リージョンのエンドポイントがメンテナンスや障害のため停止している。

  • リージョンのエンドポイントまでの通信路の問題。

  • ノードの高負荷による遅延。

対処方法

以下を確認します。

  • AWS CLI の設定を正しい内容に修正し、AWS CLI が正常に動作することを確認します。

  • ノードの高負荷の場合は、負荷要因を取り除いてください。

  • 頻繁に警告が表示される場合は、「回復動作を実行しない(警告を表示しない)」へ変更することを推奨します。この場合でも、モニタリソースから実行する AWS CLI の実行失敗や応答遅延以外のエラーは検知可能です。

  • (IAMロールを使用した運用の場合)AWS管理コンソールで設定を確認してください。


Cluster WebUIのメッセージ
[警告時]
Warn monitoring awsazw1. (105 : Invalid availability zone: [ap-northeast-1x])
[異常時]
Detected an error in monitoring awsazw1. (5 : Invalid availability zone: [ap-northeast-1x])
考えられる原因

指定したアベイラビリティーゾーンが誤っているか、または存在しない可能性が考えられます。

対処方法

正しいアベイラビリティーゾーンを指定します。


Cluster WebUIのメッセージ
[警告時]
Warn monitoring awsazw1. (106 : Timeout occurred.)
[異常時]
Detected an error in monitoring awsazw1. (6 : Timeout occurred.)
考えられる原因

以下のいずれかが考えられます。

  • AWS CLI コマンドがルートテーブルやNATの設定ミスやプロキシサーバーなどの理由でリージョンのエンドポイントと通信できない状態である可能性が考えられます。

  • ノードの高負荷による遅延。

対処方法

以下を確認します。

  • NATインスタンスが起動していること。

  • NATインスタンスへのルーティングが設定済みであること。

  • パケットがフィルタリングで落とされていないこと。

  • ルートテーブル、NAT、プロキシサーバーの設定を確認してください。

  • AWS 環境において監視(共通)の [タイムアウト] が AWS CLI 実行に必要な時間以上の値を設定していること。AWS AZ モニタリソースは以下の AWS CLI を実行しています。手動にて AWS CLI を実行し、必要な時間を計測してください。
    # aws ec2 describe-availability-zones
  • ノードの高負荷の場合は、負荷要因を取り除いてください。