技業LOG
はじめに
~AzurePortalの概要~
当社では、マイクロソフトのクラウドコンピューティングサービスを利用して仮想環境を構築しています。仮想環境では、Microsoft Azureの仮想マシン、データベース、メールの機能を連携させ、Webアプリケーションサービスをお客さまに提供しています。
今回は、このサービスを構築するにあたり、仮想マシン(Virtual Machine)、データベース(PostgreSQL)、メール (Twilio Sendgrid)の3つの機能について、Azure Portalを利用した設定手順を紹介します。

図0. 全体システム構成
-
※AzurePortalおよびMicrosoft Azureは、Microsoftの米国およびその他の国における商標または登録商標です。
-
※PostgreSQLは、PostgreSQLの米国およびその他の国における商標または登録商標です。
-
※Twilio Inc.の社名(Twilio Inc.)、社名ロゴおよびサービス名称(Twilio SendGrid)は、Twilio Inc.の商標または登録商標です。
Azure portal は、GUI(グラフィカルユーザーインターフェス)を使用して、簡単な Web アプリケーションから複雑なクラウド デプロイまで、ポータルですべてを構築、管理、監視することができます。

図1. Azure Portal画面
0. AzurePortalのサービス
Azure portalのサービスメニューを操作するにあたり、すべてのリソースにアクセスするための権限が与えられたアカウントを用意します。そのアカウントでAzure portalにログインすると、Azureサービスの様々なメニューを開くことができます。
1. Azureアカウントと必要なアクセス許可
-
1-1.
Active Directory
Azure portalのアカウントは、Active Directoryを使用し、IDやパスワードの認証情報を一元管理しています。作成したアカウントは、企業単位のグループに所属し、ロールで操作権限を与えることで、Azure portalのログイン、サービスの利用が可能になります。図2.Active Directory画面
-
1-2.
ユーザー管理
Active Directoryから、操作可能なユーザーを作成していきます。当社ではテナントに、氏名およびメールアドレスなどの情報をアカウント登録することで、AzurePortalを利用する組織に所属させます。図3.Active Directoryのユーザー画面
アカウントは、「ロールと管理者」から管理者ロールを割り当てることができます。管理者ロール以外にもアプリ、セキュリティ、ネットワーク、課金、レポートといった様々な管理者が存在し、独自の権限を割り当てることも可能です。
図4.Active Directoryの「ロールと管理者」画面
2. Azure サブスクリプション
Azure Portalでは、契約したライセンスを実際のサービス利用単位で管理しています。Azure 利用料の支払いに関連するサブスクリプションを1つ作成し、仮想マシンや仮想ネットワークなどのリソースやアカウントを紐づけることで、コストと利用状況を把握します。当社ではサブスクリプションから、リソース毎のコストに関する支出の割合と予測に役立てています。

図5.Azureの「サブスクリプション」画面
3. Azure 管理するリソースグループ
Azure Portalでは、仮想マシンや仮想ネットワーク、ストレージ、アカウント、Webアプリケーション、データベースなどはすべてリソースに該当します。当社では、リソースグループに仮想マシンのネットワーク、インターフェース、ディスクを割り当て、アプリやデータベースを連携したシステムを運用しています。

図6.Azureの「リソースグループ」画面
4. Azure 仮想マシン(VirtualMachine)の作成と管理
ここでは、実際に仮想マシンで必要となる情報について解説します。仮想マシンを作成する前に、CPU、メモリ、ディスクを何するか「料金計算ツール」で見積作成しておくことを推奨しています。
-
4-1.
Virtual Machine作成
Azure Portalで、サブスクリプションのリソースとなる仮想マシンを作成します。仮想マシンは、Azure Portal上でプロジェクトの詳細(サブスクリプション、リソースグループの選択)、インスタンスの詳細(仮想マシン名、可用性、OSイメージ)から仮想的なサーバー環境を構築することができます。図7-1.Virtual Machineの「プロジェクトの詳細」画面
図7-2.Virtual Machineの「インスタンスの詳細」画面
-
4-2.
CPU,メモリ,ディスク管理
仮想マシンでは、CPU、メモリ、ディスクのサイズをAzurePortal上から自由に選択することができます。選択したCPU,メモリ,ディスクのサイズによって、料金体系が変わる特徴があります。図8-2.Virtual Machineの「サイズ」画面
図8-2.Virtual Machineの「OSディスク」画面
-
4-3.
仮想ネットワークとサブネット
仮想マシンでは、仮想ネットワーク、サブネットをAzurePortal上に設定しておくことで、ネットワークインターフェースを自動的に作成します。ネットワークインターフェースが作成されると、サブネットに割り振られたIPアドレス(パブリックアドレスおよびプライベートアドレス)が自動付与されます。図9.Virtual Machineの「ネットワークインターフェース」画面
5. Azure データベース(PostgreSQL)の作成と管理
-
5-1.
PostgreSQL作成
Azure Database for PostgreSQLには、リレーショナル データベース サービスとしてデータベース管理機能があります。当社はAzureの仮想マシンにWebアプリケーションを導入し、氏名、メールアドレスといった様々なデータを登録、更新、削除しており、オンライン申込が可能なデータベースとして、Azure Database for PostgreSQLを仮想マシンと連携させたシステムを提供しています。AzurePortalのサービスメニューからAzure Database for PostgreSQLを選択することで、新しいデータベースを作成します。Azure Database for PostgreSQLは、オープンソース データベース エンジンとして、2つのデプロイモード(フレキシブル サーバー or 単一サーバー)を選択しますが、サポートされるバージョン更改に伴い、「フレキシブル サーバー」で作成することを推奨しています。
図10.データベースサービス「Azure Database for PostgreSQL」 画面
-
5-2.
価格レベル
Azure Database for PostgreSQL では、仮想マシン作成時と同様にCPU、メモリ、ディスクのサイズをAzurePortal上から自由に選択することができます。選択したCPU,メモリ,ディスクのサイズによって、料金体系が変わる特徴があります。価格帯レベルは、Basic、汎用目的、メモリ仮想化の3つから選択しますが、当社では「汎用目的」から作成しています。図11.Azure Database for PostgreSQL「価格の概要」 画面
図12.Azure Database for PostgreSQL「価格レベル」 画面
-
5-3.
コンピューティング世代およびvCore
コンピューティング リソースは基礎となるハードウェアの論理 CPU を表しており、仮想コアとして提供されています。当社のコンピューティング世代では、Intel E5-2673 v4 (Broadwell) 2.3 GHz プロセッサに基づいた Gen 5 の論理 CPUを、仮想コアは、最小となる「2つの仮想コア」を利用しています。図13.PostgreSQL「コンピューティング世代およびvCore」 画面
-
5-4.
ストレージ
ストレージは、データベース ファイル、一時ファイル、トランザクション ログ、および PostgreSQL サーバー ログに使用され、使用している Azure Database for PostgreSQL サーバーで使用可能なストレージ容量にプロビジョニングしています。【注意事項!!】
プロビジョニングするストレージの合計容量によって、ご利用のサーバーで使用できる I/O 容量も決まります。当社では、「100GB」に設定しており、自動拡張は有効になっておりますが、ストレージはスケールアップのみ可能で、スケールダウンはできません。図14.PostgreSQL「ストレージ」 画面
-
5-5.
バックアップ保有期間、冗長オプション
Azure Database for PostgreSQL では、データ ファイルとトランザクション ログのバックアップが作成されます。バックアップは、サーバーのバックアップ保有期間の設定に基づいて保持され、7 日間から 35 日間までの保有期間を選択できます。既定の保有期間は 7 日ですが、当社では14日に設定しています。また、汎用レベルとメモリ最適化レベルで、ローカル冗長バックアップ ストレージまたは geo 冗長バックアップ ストレージのいずれかを柔軟に選択できます。 当社ではローカル冗長バックアップ ストレージを利用しています。
【注意事項!!】
一度サーバーがプロビジョニングされると、バックアップ ストレージ冗長オプションを変更することはできません。図15.PostgreSQL「バックアップ」 画面
-
5-6.
接続セキュリティ
最後に、仮想マシンとPostgreSQLの接続セキュリティを設定することで、両者間の接続とシステムの連携が可能となります。当社では、ファイアウォール規則の開始と終了に仮想マシンのパブリックアドレスを設定しています。
図16.PostgreSQL 「接続セキュリティ」 画面
6. Azure メール送信(Twilio Sendgrid)の設定と管理
-
6-1.
Twilio Sendgrid
Azureのメール送信機能として、SMTPリレーや柔軟なWeb APIで、トランザクションメールを細かくカスタマイズできる「Twilio Sendgrid」を利用しています。当社のシステムでは、パスワードリマインド、受注申請のやりとりにこの「Twilio Sendgrid」で、送受信件数、リレー先、日時のデータを管理しています。「Twilio Sendgrid」の作成に伴い、無料版と有償版を選択することになりますが、送信メール数の制限があるため、有償版を推奨しています。当社では、webアプリケーション上でメールリレー先を「Twilio Sendgrid」に指定することで、メール送信を可能にしています。図17.Twilio Sendgrid「ダッシュボード」 画面
-
6-2.
アカウント管理
Twilio Sendgrid は、アクセスできるユーザーを Azure AD で制御しています。Azure AD アカウントを使用して Twilio Sendgrid にサインインし、Azure Portalでアカウントを管理します。Azure ADアカウントから、さらにTwilio Sendgridのダッシュボードへサインインすることで、システムのメール送受信履歴を確認することができます。図18.Azure Portal「Twilio Sendgrid」 画面
-
6-3.
メール管理
Twilio Sendgridでは、メールのアクティビティから、タイプ(納品済み、加工済みなど)、リレー先メールアドレス、時間を確認することができます。図19.Twilio Sendgrid「メールアクティビティ」 画面
7. 【まとめ】Azure Portal
ここまで、Azure Portalを利用した仮想マシン、データベース、メールを連携する手順について解説しました。
仮想マシン、データベース、メールを連携させるにあたり、どのスペックが適しているか、運用と費用の面からあらかじめシミュレーションし、判断することが重要だと感じました。構築前に要件をとりまとめ、パラメータへの落とし込みが決まれば、仮想マシン、データベース、メールそれぞれ連携させることは比較的簡単であると考えています。
ただし、この手順はただシステムを連携して、動作可能な状態に持っていくのみとなります。加えて、構築したシステムを誰にアクセスさせるのか、異常が発生した場合の対応や日々の監視など、改善の余地があると思われます。
これらを解消するには、セキュリティ、監視、バックアップ機能を活用します。後編では、実際に日々の運用で欠かすことができないセキュリティ、監視、バックアップ機能に視点を置いた設定手順をご紹介いたします。
技業LOG
NTTPCのサービスについても、ぜひご覧ください