0. はじめに
(Azureのシステム運用)
前編の記事では、Azure Portalを利用した仮想マシン(Virtual Machine)、データベース(PostgreSQL)、メール (Twilio Sendgrid)の3つの機能について設定手順をご紹介しました。しかし、これら3つの機能を連携させるだけでは、日々の運用において様々な課題に直面します。
構築したシステムを誰にアクセスさせるのか、異常が発生した場合の対応や日々の監視など、運用業務に欠かせない定義やルール付けが重要になってきます。
後編では、これらを構築したシステムに組み込んで安定的な運用業務に活用するために、セキュリティ、監視、バックアップ機能をご紹介します。
図0. Azureのシステム運用
-
※Microsoft Azureは、Microsoftの米国およびその他の国における商標または登録商標です。
-
※PostgreSQLは、PostgreSQLの米国およびその他の国における商標または登録商標です。
-
※Twilio Inc.の社名(Twilio Inc.)、社名ロゴおよびサービス名称(Twilio SendGrid)は、Twilio Inc.の商標または登録商標です。
Azureのセキュリティ対策
Azureのセキュリティ対策として、ここでは、Active Directory、ロール、ネットワークセキュリティグループ(NSG)の3つについてご紹介します。
-
0.1
Azure Active Directory
Azure Active Directoryでは、場所に関係なく、すべてのリソースに対する認証と承認を行うためのアカウントを作成します。ここでは、「特権アカウント」と呼ばれる特権管理者ロールに割り当てられているユーザーが管理を行います。【特権アカウント】
管理タスクを実行するための昇格されたアクセス許可を持つ特権ユーザー アカウントのこと
タスクには、Azure Active Directory ロールの割り当て、Azure リソース ロールの割り当て、Azure リソースとサブスクリプションのアクセス管理が含まれます。ユーザー作成は、Azure Active Directoryの管理画面から行います。Azure Active Directoryのテナントから、ユーザー名、パスワード、氏名、ドメイン、グループ、会社名、部署、役職などを入力し、作成します。
図1-1. 特権アカウントの概要
グループでは、個々のユーザーに特別なアクセス許可を追加するのではなく、グループを作成し、そのグループのすべてのメンバーにその特別なアクセス許可を適用します。
図1-2. 特権アカウントのグループ
パスワードは、ボックスに表示されている自動生成されたパスワードをコピーします。このパスワードは初回サインインのため、ユーザーに渡す必要があります。初回サインインの時に、パスワード変更が可能です。
-
0.2
ロール
ロールでは、Azure のリソースにアクセスできるユーザー、そのユーザーがそれらのリソースに対して実行できること、そのユーザーがアクセスできる領域を管理するなど、Azure リソースに対するアクセスをきめ細かく管理できます。Azure リソースへのアクセスを制御するために、特権アカウントへロールの割り当てを行います。
Azure AD では、2 種類のロール定義がサポートされていますが、ここでは、組み込みのロールを行います。
図2. 特権アカウントに割り当てられたロール
-
0.3
ネットワークセキュリティグループ(NSG)
ネットワークセキュリティグループ(NSG)では、Azure サブスクリプションにセキュリティ規則を設け、5つ の情報(送信元/送信元ポート、宛先/宛先ポート、プロトコル)に基づいて、セキュリティ規則の評価および適用を行います。ネットワークセキュリティグループ(NSG)は、サブネットかサブネットに接続された個々の ネットワークインターフェース(NIC) に関連付けることができます。
ネットワークセキュリティグループ(NSG)は、仮想マシン(Virtual Machine)のネットワークに設定します。仮想マシンについては、「【前編】AzurePortalで仮想マシン、データベース、メール機能を連携(4.Azure 仮想マシン(VirtualMachine)の作成と管理)」をご参照ください。
仮想マシンは、Azure 内のプライベートネットワークの基本的な構成要素である仮想ネットワークにより、安全に通信することができます。
ここでは、仮想マシンのパブリックIPアドレス(インターネット側)、プライベートIPアドレス(ローカル側)に対し、サブネットおよびNICの両面からセキュリティ規制を設定していきます。
図3-1. 仮想マシンの仮想ネットワーク
【仮想ネットワーク】
仮想ネットワークでは、プライベートIPアドレスのアドレス空間とサブネットを設定します。図3-2. 仮想ネットワークのアドレス空間
【サブネット】のセキュリティ規制
優先度、名前、ポート、プロトコル、ソース、宛先を指定します。セキュリティ規制は「受信ポートの規則を追加する」から、サブネットに追加設定します。サブネットでは優先度の上位に表示されているセキュリティ規制が優遇され、ソースに指定したIPアドレスから宛先のIPアドレスを許可/拒否することで、アクセス制御を可能にします。ポート番号による指定も可能で、当社ではssh(22)、https(443)のみを有効にしています。
図3-3. サブネットの受信ポート
ネットワークインターフェースのセキュリティ規制
優先度、名前、ポート、プロトコル、ソース、宛先を指定します。セキュリティ規制は「受信ポートの規則を追加する」から、ネットワークインターフェースに追加設定します。
ネットワークインターフェースでは優先度の上位に表示されているセキュリティ規制が優遇され、ソースに指定したIPアドレスから宛先のIPアドレスを許可/拒否することで、アクセス制御を可能にします。ポート番号による指定も可能で、当社ではssh(22)、https(443)、ICMPのみを有効にしています。
図3-4. ネットワークインターフェースの受信ポート
1. Azureのシステム監視
Azureのシステム監視では、Log Analytics ワークスペース、Azure Monitorの2つについてご紹介します。
-
1.1
Log Analytics ワークスペース
Log Analytics ワークスペースでは、仮想マシンおよびサーバーからログを収集するために使用しています。ログとデータを収集すると、その情報はワークスペースに保存されます。図4-1. Log Analytics ワークスペースの概要
Log Analytics ワークスペースを作成するにあたり、サブスクリプションのリソースグループに対し、対象の仮想マシンを設定します。
図4-2. Log Analytics ワークスペースの仮想マシン
対象の仮想マシンでは、CPU、ディスク容量など、異常が発生していないかを監視しています。
図4-3. 仮想マシンの監視
また、「リソース正常性」の履歴からAzure Service Health によって、特定の Log Analytics ワークスペースに関連する待機時間の問題が検出されたかどうかを確認しています。
図4-4. 仮想マシンのリソース正常性
-
1.2
Azure Monitor
Azure Monitor では、 Log Analytics ワークスペースのパフォーマンスと可用性を維持し、発生する問題を事前に検出できるようにする必要があります。そのため、問題を通知し、警告とエラーのレベルを知らせるアラートを作成しています。
作成したアラートは、Azure Monitorのアラートルールで確認することができます。
アラートルールは、名前、条件、重要度、ターゲットスコープ、ターゲットリソースの種類、シグナルの種類、状態を設定し、一覧で表示します。図4-5. Azure Monitorのアラートルール
また、アクションに電子メールを設定することで、アラートルールの条件に従い、メール通知します。
図4-6. アラートルールの条件
2. Azureのバックアップ
Azureのデータは、定期的にバックアップすることで保護することができます。仮想マシンやデータベースは障害が発生した場合、バックアップのデータから、復元ポイントを指定することで、障害発生前の状態に戻す機能があります。
Azure Backupでは、Microsoft Azure クラウド プラットフォームにデータをバックアップすることができます。
Azure Backup を使用すると、バックアップされたデータはコンテナーに格納されます。コンテナーは、バックアップ コピー、復旧ポイント、バックアップ ポリシーなどのデータを保持するために使用されます。
Azure Backupのシナリオは数多くありますが、ここでは、仮想マシンの復元およびデータベースの復元についてご紹介します。
-
2.1
定期バックアップ
仮想マシンは障害に備えて、Recovery Services コンテナーを利用し、日毎にバックアップデータを自動で取得しています。実行されたバックアップジョブにおいて、バックアップの状態、開始時刻や終了までの合計期間を一覧で確認することができます。図5-1. コンテナーのバックアップジョブ
-
2.2
仮想マシンの復元
仮想マシンの復元は、Recovery Services コンテナで自動取得したバックアップデータから復元ポイントとなる作成時刻を選択後、「VMの復元」を実行します。取得期間は30日間となっています。
「今すぐバックアップ」からバックアップを即時実行することも可能です。図5-2. 仮想マシンのバックアップ
-
2.3
データベースの復元
Azure Database for PostgreSQL は、サーバーのバックアップを自動的に作成し、ユーザーが構成したローカル冗長に保存します。
バックアップを使用すると、サーバーを特定の時点に復元できます。不慮の破損または削除からデータを保護するバックアップと復元は、ビジネス継続性戦略の最も重要な部分です。Azure Database for PostgreSQL で復元を実行すると、サーバーのバックアップから新しいサーバーが作成されます。
復元にはポイントインタイム リストアを使用します。ポイントインタイム リストアは、いずれのバックアップ冗長オプションでも使用でき、サーバーと同じリージョンに新しいサーバーが作成されます。
復旧の推定所要時間は、データベースのサイズ、トランザクション ログのサイズ、ネットワーク帯域幅、同じリージョン内で同時に復旧するデータベースの合計数など、複数の要因によって異なります。図5-3. PostgreSQLのバックアップ
3. まとめ【Azureのシステム運用】
前編では、Azure Portalの仮想マシン、データベース、メールを簡単かつスムーズに連携する手順を解説しました。連携するシステムには手順だけでなく、どのスペックが適しているか、運用と費用の面からあらかじめ「料金計算ツール」で比較・検討しておくことなどが掲載されておりますので、あわせて確認ください。
また、後編ではAzure Portalの安定的なシステム運用を行うために、セキュリティ、監視、バックアップ機能の活用方法について解説しました。
日々の運用において、構築したシステムを誰にアクセスさせるのか、異常が発生した場合の対応や日々の監視など、運用業務に欠かせない定義やルール付けは、システムを運用する上で避けて通ることはできない重要な課題だと実感しています。
システムを安定稼働させるための監視・運用方法として、Azure Portalの導入を検討してみてはいかがでしょうか?
本記事が Azureのシステム運用にご興味ある方々のためになれば幸いです。
技業LOG
NTTPCのサービスについても、ぜひご覧ください