Microsoft Azureは、AmazonAWSの代替パブリッククラウドプラットフォームとして多くの人に知られています。これら2つの巨大企業を直接比較することは容易ではありません。 Microsoftのクラウドビジネス(商用クラウドと呼ばれる)には、AzureからOffice 365エンタープライズサブスクリプション、Dynamics 365、LinkedInサービスまですべてが含まれます。 LinkedInがMicrosoftに買収された後、LinkedInはインフラストラクチャをAzureに移行し始めました。 LinkedInをAzureに移行するには時間がかかる場合がありますが、MicrosoftAzureの機能と数百万のトランザクションを処理する機能を示しています。マイクロソフトの強力なエンタープライズヘリテージ、ソフトウェアスタック、およびデータセンターツールは、クラウド展開に精通していることとハイブリッドアプローチの両方を提供します。
Microsoft Azureは、IaaS(Infrastructure as a Service)およびPaaS(Platform as a Service)として構築されています。 Azure仮想マシンは1秒あたりの課金を提供し、現在はマルチテナントコンピューティングです。ただし、最近、仮想マシンをシングルテナントの物理サーバーで実行できるようにする新しいサービスをプレビューしました。このオファリングは、AzureDedicatedHostsと呼ばれます。
Azureは、特殊な大規模インスタンス(SAP HANAなど)も提供します。マルチテナントブロック、ファイルストレージ、その他多くの追加のIaaSおよびPaaS機能があります。これらには、オブジェクトストレージ(Azure Blob Storage)、CDN、Dockerベースのコンテナーサービス(Azure Container Service)、バッチコンピューティングサービス(Azure Batch)、およびイベント駆動型の「サーバーレスコンピューティング」(Azure Functions)が含まれます。 Azure Marketplaceは、サードパーティのソフトウェアとサービスを提供します。コロケーションのニーズは、EquinixやCoreSiteなどのパートナーから提供されるパートナー交換(Azure ExpressRoute)を介して満たされます。
これらすべての製品により、Microsoft Azureは、パブリッククラウド市場で重要な役割を果たすためにゲームを強化しました。消費者に提供されるPaaSインフラストラクチャは多くの信頼を獲得しており、多くの人が独自のインフラストラクチャまたはプライベートクラウドをMicrosoftAzureのパブリッククラウドインフラストラクチャに移行しています。これは、VisualStudioなどの他のWindowsサービスとの統合が必要な消費者にとって特に有利です。
では、Azureと、このシリーズで見てきた他のクラウドとの違いは何ですか?マイクロソフトは、AI、分析、モノのインターネットに重点を置いてきました。 AzureStackは、市場で真の差別化要因となっているもう1つの「クラウド-ミーツ-データセンター」の取り組みです。
MicrosoftAzure移行の長所と短所
- Microsoftテクノロジに戦略的に取り組んでいる企業は、通常、主要なIaaS+PaaSプロバイダーとしてAzureを選択します。 Visual Studio(および関連サービス)を使用して.NETアプリケーションを構築する企業向けの統合されたエンドツーエンドのエクスペリエンスは、卓越しています。マイクロソフトはまた、その驚異的な販売範囲と、Azureを他のマイクロソフト製品やサービスと共同販売する機能を活用して、採用を促進しています。
- Azureは、エッジコンピューティングとモノのインターネット(IoT)への十分に統合されたアプローチを提供し、AzureStackやデータボックスエッジなどのエッジソリューションを通じて、ハイパースケールデータセンターから到達するサービスを提供します。
- Microsoft Azureの機能は、ますます革新的でオープンになっています。ワークロードの50%は、多数のオープンソースアプリケーションスタックとともにLinuxベースです。マイクロソフトは、VMware、NetApp、Red Hat、Cray、Databricksなどのネイティブのファーストパーティ製品を通じてテクノロジーパートナーを取り込むことを含む、将来に向けた独自のビジョンを持っています。
- Microsoft Azureの信頼性の問題は、主にAzureの増大する苦痛の結果として、お客様にとって引き続き課題となっています。 2018年9月以降、Azureには、Azure Active Directoryに関連する重大な停止など、サービスに影響を与える複数のインシデントが発生しています。これらの停止により、顧客はダウンタイムを軽減することができなくなります。
- Gartnerのクライアントは、予算内で時間どおりに実装を実行する際に課題を経験することがよくあります。これは、Microsoftが顧客に不当に高い期待を提供することが多いためです。これの多くは、Microsoftのフィールドセールスチームが顧客ベース内でAzureを適切に配置して販売することを「奨励」されていることに起因しています。
- 企業は、マイクロソフトのテクニカルサポートの品質(サポートのコストの増加とともに)とフィールドソリューションアーキテクトを頻繁に嘆いています。これは顧客満足度に悪影響を及ぼし、Azureの採用を遅らせ、したがって顧客支出を遅らせます。
Microsoftは、「それほどオープンソースに適さない」技術の巨人と見なされてきたため、最初の選択肢ではないかもしれませんが、公平を期すために、Microsoftは多くの活動とサポートを受け入れてきました。オープンソースの世界。 Microsoft Azureは、PostgreSQL、MySQL、MariaDBなどのトップオープンソースRDBMSデータベースのほとんどにフルマネージドサービスを提供します。
Galera Cluster(Percona、Codership、またはMariaDB)のバリアントは、残念ながらAzureではサポートされていません。 GaleraクラスターをAzureにデプロイできる唯一の方法は、仮想マシンを使用することです。 AzureでのMariaDBEnterpriseCluster(Galeraに基づく)の使用に関するブログも確認してください。
Azureの仮想マシン
仮想マシンは、GCPとAWSのコンピューティングインスタンスに相当するサービスです。 Azure仮想マシンは、クラウド内のオンデマンドの高性能コンピューティングサーバーであり、さまざまな方法を使用してAzureにデプロイできます。これには、Azureポータル内のユーザーインターフェイス、Azureマーケットプレイスで事前構成されたイメージの使用、Azure PowerShellを介したスクリプト、JSONファイルを使用して定義されたテンプレートからの展開、またはVisualStudioを介した直接展開が含まれる場合があります。
>Azureは、Azure Resource Manager(ARM)と呼ばれる展開モデルを使用します。これは、アプリケーションソリューション全体の一部を形成するすべてのリソースを定義し、ソリューションを1回の操作で展開、更新、または削除できるようにします。 。
リソースには、ストレージアカウント、ネットワーク構成、IPアドレスが含まれる場合があります。 「ARMテンプレート」という用語を聞いたことがあるかもしれません。これは、基本的に、デプロイしようとしているソリューションのさまざまな側面を定義するJSONテンプレートを意味します。
Azure仮想マシンにはさまざまな種類とサイズがあり、名前はAシリーズからNシリーズで始まります。各VMタイプは、汎用、コンピューティング最適化、ストレージ最適化、メモリ最適化など、特定のワークロードまたはパフォーマンスのニーズを念頭に置いて構築されています。 GPUやハイパフォーマンスコンピューティングVMなどのあまり一般的ではないタイプをデプロイすることもできます。
他のパブリッククラウド製品と同様に、仮想マシンインスタンスで次のことを実行できます...
- 仮想マシンでディスクを暗号化する 。 GCPやAWSと比較すると、これは簡単には実現できませんが。仮想マシンを暗号化するには、より手動のアプローチが必要です。 AzureDiskEncryptionの前提条件を完了する必要があります。 GaleraはWindowsをサポートしていないため、ここではLinuxベースのイメージについてのみ説明します。基本的に、システムにdm-cryptモジュールとvfatモジュールが存在する必要があります。その部分を正しく理解したら、AzureCLIを使用してVMを暗号化できます。 LinuxIaaSVMでAzureDiskEncryptionを有効にする方法を確認して、その方法を確認できます。ディスクの暗号化は非常に重要です。特に、会社や組織でGalera Clusterデータが、PCIDSSやGDPRなどの法律や規制で義務付けられている基準に準拠している必要がある場合は重要です。
- スナップショットの作成 。スナップショットは、AzureCLIまたはポータルを使用して作成できます。方法については、マニュアルを確認してください。
- 水平スケーリングが必要な場合は、自動スケーリングまたは仮想マシンスケールセットを使用します 。 Azureでの自動スケーリングの概要、または仮想マシンのスケールセットの概要を確認してください。
- マルチゾーン展開 。単一障害点を回避するために、仮想マシンインスタンスをさまざまなアベイラビリティーゾーンにデプロイします。
仮想マシンをさまざまな方法で作成(または情報を取得)することもできます。 Azureポータル、Azure PowerShell、REST API、クライアントSDK、またはAzureCLIを使用できます。 Azure仮想ネットワーク内の仮想マシンは、組織のネットワークに簡単に接続して、拡張データセンターとして扱うこともできます。
MicrosoftAzureの価格
他のパブリッククラウドプロバイダーと同様に、MicrosoftAzureもいくつかの無料サービスを備えた無料利用枠を提供しています。また、従量課金制のオプションと予約済みのインスタンスから選択することもできます。従量課金制は、1時間あたり0.008ドルから0.126ドルで始まります。
予約済みインスタンスの場合、Azureとのコミットとコントラクトが長くなるほど、より多くのコストを節約できます。 Microsoft Azureは、サブスクライバーがWindowsまたはLinux仮想マシンに1〜3年の期間でサインアップする場合、従量課金モデルと比較して、サブスクライバーが請求コストを最大72%節約できると主張しています。また、Microsoftは、ビジネスの変更が必要な場合に、いつでもAzure RIサブスクリプションをキャンセルし、残りの未使用のRIを早期終了料金としてMicrosoftに返却できるという意味で、追加の柔軟性を提供します。
GCP、AWS EC2、Azure仮想マシンの価格を比較してみましょう。これはus-east1リージョンに基づいており、Galeraクラスターの実行に必要なコンピューティングインスタンスの価格範囲を比較します。
マシン/ | Google | AWS EC2 | Microsoft |
| f1-micro G1-小さい | t2.nano – t3a.2xlarge | Bシリーズ |
| n1-standard-1 – n1-standard-96 | m4.large – m4.16xlarge m5.large – m5d.metal | Av2標準、D2-64 v3最新世代、D2s-64s v3最新世代、D1-5 v2、DS1-S5 v2、DCシリーズ |
| n1-highmem-2 – n1-highmem-96 n1-megamem-96 n1-ultramem-40 – n1-ultramem-160 | r4.large – r4.16xlarge x1.16xlarge – x1.32xlarge x1e.xlarge – x1e.32xlarge | D2a – D64a v3、D2as – D64as v3、E2-64 v3最新世代、E2a – E64a v3、E2as – E64as v3、E2s-64s v3最新世代、D11-15 v2、DS11-S15 v2、Mシリーズ、Mv2シリーズ、インスタンス、エクストリームメモリ最適化 |
| n1-highcpu-2 – n1-highcpu-32 | h1.2xlarge – h1.16xlarge i3.large – i3.metal I3en.large --i3en.metal d2.xlarge – d2.8xlarge | Fsv2シリーズ、Fシリーズ、Fsシリーズ |
MicrosoftAzureでのデータ暗号化
Microsoft Azureは、Galera Clusterの暗号化サポートを直接提供していません(またはその逆)。ただし、保存中または転送中のデータを暗号化する方法はいくつかあります。
暗号化送信中は、データがネットワークを介して送信されるときにデータを保護するためのメカニズムです。 Azure Storageでは、次を使用してデータを保護できます:
- AzureStorageとの間でデータを転送するときのHTTPSなどのトランスポートレベルの暗号化。
- Azureファイル共有用のSMB3.0暗号化などの有線暗号化。
- クライアント側の暗号化。データをストレージに転送する前に暗号化し、データをストレージから転送した後に復号化します。
Microsoftは、暗号化を使用して、顧客のレルムとMicrosoftクラウドサービス間で転送中の顧客データを保護します。具体的には、トランスポート層セキュリティ(TLS)は、MicrosoftのデータセンターがMicrosoftクラウドサービスに接続されているクライアントシステムとネゴシエートするために使用するプロトコルです。
Perfect Forward Secrecy(PFS)も採用されているため、顧客のクライアントシステムとMicrosoftのクラウドサービス間の各接続で一意のキーが使用されます。 Microsoftクラウドサービスへの接続でも、RSAベースの2,048ビットの暗号化キーの長さを利用します。
多くの組織にとって、保存時のデータ暗号化は、データのプライバシー、コンプライアンス、およびデータ主権を達成するための必須のステップです。 3つのAzure機能により、保存データの暗号化が提供されます:
- ストレージサービス暗号化は常に有効になっており、AzureStorageに書き込むときにストレージサービスデータを自動的に暗号化します。アプリケーションロジックで貴重なデータを保存するためにMySQLGaleraClusterデータベースが必要な場合は、AzureStorageに保存することもできます。
- クライアント側の暗号化は、保存時の暗号化機能も提供します。
- Azure Disk Encryptionを使用すると、IaaS仮想マシンが使用するOSディスクとデータディスクを暗号化できます。 Azure Disk Encryptionは、mdadmを使用してディスクストライピング(RAID)で構成されたLinux VMで暗号化を有効にし、データディスクにLVMを使用してLinuxVMで暗号化を有効にすることもサポートします。
GCPを使用したGaleraClusterMulti-AZ / Multi-Region / Multi-Cloud Deployments
AWSやGCPと同様に、Microsoft Azureは、GaleraClusterをMulti-AZ/ -Region/-Cloudにデプロイするための直接サポートを提供していません。ただし、ノードを手動でデプロイすることも、PowerShellまたはAzureCLIを使用してスクリプトを作成してこれを行うこともできます。または、仮想マシンインスタンスをプロビジョニングするときに、ノードをさまざまなアベイラビリティーゾーンに配置できます。 Microsoft Azureは、仮想マシンスケールセットと呼ばれる可用性ゾーンを持つ以外に、別の種類の冗長性も提供します。仮想マシンとスケールセットの違いを確認できます。
AzureでのGaleraクラスターの高可用性、スケーラビリティ、および冗長性
Galeraノードクラスターを使用する主な理由の1つは、高可用性、冗長性、および拡張性です。グローバルにトラフィックを処理している場合は、地域ごとにトラフィックを処理するのが最善です。アーキテクチャ設計にデータベースノードの地理分布が含まれていることを確認する必要があります。これを実現するには、マルチAZ、マルチリージョン、またはマルチクラウド/マルチデータセンターの導入をお勧めします。これにより、クォーラムの不足による誤動作だけでなく、クラスターのダウンも防止されます。
前述のように、Microsoft Azureには、スケールセットを使用して利用できる自動スケーリングソリューションがあります。これにより、(監視対象に基づいて)特定のしきい値に達したときにノードを自動スケーリングできます。これは、垂直方向にスケーリングする前に監視しているヘルスステータス項目によって異なります。このトピックに関する彼らのチュートリアルはここでチェックできます。
マルチリージョンまたはマルチクラウド展開の場合、Galeraにはgmcast.segmentと呼ばれる独自のパラメーターがあり、サーバーの起動時に設定できます。このパラメータは、Galeraノード間の通信を最適化し、ネットワークセグメント間で送信されるトラフィックの量を最小限に抑えるように設計されています。これには、ライトセットリレーとISTおよびSSTドナーの選択が含まれます。このタイプのセットアップでは、異なるリージョンに複数のノードをデプロイできます。それとは別に、GaleraノードをGCP、AWS、Microsoft Azureからルーティングするさまざまなクラウドベンダーにデプロイすることも、オンプレミスのセットアップ内にデプロイすることもできます。
これらのタイプの実装方法の詳細については、ブログ「MySQLまたはMariaDB用のGaleraクラスターを使用した複数のデータセンターのセットアップ」および「リレーノードを使用したMySQLガレラクラスターによるダウンタイムゼロのネットワーク移行」を確認することをお勧めします。展開。
MicrosoftAzureでのGaleraクラスターデータベースのパフォーマンス
Azureの仮想マシンで使用される基盤となるホストマシンは、実際には非常に強力です。 Azureの最新のVMには、ネットワーク最適化モジュールが既に装備されています。これは、実行することでカーネル情報で確認できます(Ubuntuなど)。
uname -r|grep azure
注:コマンドに「azure」文字列が含まれていることを確認してください。
Centos / RHELの場合、バージョン4.2以降のLinux Integration Services(LIS)のインストールにはネットワーク最適化が含まれています。詳細については、ネットワークスループットの最適化に関するページをご覧ください。
アプリケーションがネットワーク遅延に非常に敏感な場合は、近接配置グループを調べることに関心があるかもしれません。現在プレビュー中です(本番環境での使用はまだ推奨されていません)が、これはネットワークスループットの最適化に役立ちます。
使用する仮想マシンのタイプの場合、これはアプリケーショントラフィックの要件とリソースの需要によって異なります。メモリ消費量が多いクエリの場合は、Dv3から始めることができます。ただし、メモリを最適化する場合は、Ev3シリーズから始めてください。高トランザクションデータベースやゲームアプリケーションなどの高CPU要件の場合は、Fsv2シリーズから始めます。
また、Galera Clusterの最適化の詳細については、ブログ「MySQLまたはMariaDBのGaleraClusterのパフォーマンスを向上させる方法」を確認して読むことをお勧めします。
Azure上のGaleraノードのデータベースバックアップ
AzureのMySQLGaleraデータに対する既存の単純なバックアップサポートはありませんが、スナップショットを作成することはできます。 Microsoft Azureは、スケジュールと暗号化が可能なスナップショットを取得するAzureVMバックアップを提供します。
または、Galera Clusterからデータファイルをバックアップする場合は、ClusterControlなどの外部サービスを使用したり、バイナリバックアップにPercona Xtrabackupを使用したり、論理バックアップにmysqldumpまたはmydumperを使用したりすることもできます。これらのツールは、ミッションクリティカルなデータのバックアップコピーを提供します。詳細を知りたい場合は、これを読むことができます。
AzureでのGaleraクラスターの監視
Microsoft Azureには、AzureMonitorという名前の監視サービスがあります。 Azure Monitorは、クラウドおよびオンプレミス環境からテレメトリを収集、分析、および操作するための包括的なソリューションを提供することにより、アプリケーションの可用性とパフォーマンスを最大化します。これは、アプリケーションのパフォーマンスを理解し、アプリケーションに影響を与える問題(およびアプリケーションが依存するリソース)を事前に特定するのに役立ちます。ヘルスアラートを設定または作成し、展開したサービスで検出されたアドバイザリとアラートに関する通知を受け取ることができます。
データベースに固有の監視が必要な場合は、高度で高度なデータベースメトリックを備えた外部監視ツールを利用する必要があります。 PerconaによるPMM、DataDog、Idera、VividCortex、または独自のClusterControl(ClusterControl Communityではモニタリングは無料です)など、いくつかの選択肢があります。
Azure上のGaleraクラスターデータベースのセキュリティ
AWSとGCPに関する以前のブログで説明したように、パブリッククラウドでデータベースを保護するために同じアプローチを取ることができます。仮想マシンを作成したら、開くことができるポートのみを指定したり、Azureでネットワークセキュリティグループを作成してセットアップしたりできます。開いている必要のあるポート(特にポート3306、4444、4567、4568)をセットアップするか、Azureで仮想ネットワークを作成し、プライベートサブネットとして残っている場合はプライベートサブネットを指定できます。これを追加するには、パブリックIPを使用せずにAzureでVMをセットアップした場合でも、SNATとPATを使用しているという理由だけでVMをアウトバウンド接続できます。 AWSとGCPに精通している場合は、理解しやすくするためにこの説明が気に入るはずです。
使用可能なもう1つの機能は、MicrosoftAzureのロールベースのアクセス制御です。これにより、必要な特定のリソースにアクセスするユーザーを制御できます。
これに加えて、TLS / SSL接続を使用するか、データが保存されているときにデータを暗号化することで、転送中のデータを保護できます。 ClusterControlを使用している場合、転送中の安全なデータのデプロイはシンプルで簡単です。試してみたい場合は、ブログSSL Key Management and Encryption of MySQL DatainTransitをチェックしてください。保存データについては、このブログの暗号化セクションで前述した説明に従うことができます。
Microsoft Azureは、トラブルシューティングと監査に役立つさまざまな種類のログを提供しています。ログアクティビティログ、Azure診断ログ、Azure ADレポート、仮想マシンとクラウドサービス、ネットワークセキュリティグループ(NSG)フローログ、およびアプリケーションインサイトは、トラブルシューティング時に非常に役立ちます。トラブルシューティングが必要な場合は、必ずしもこれらすべてに取り組む必要はないかもしれませんが、ログを確認するときに、より多くの洞察と手がかりが追加されます。
ClusterControlを使用している場合は、[ログ]-> [システムログ]に移動すると、MySQLGaleraノード自体から取得したキャプチャされたエラーログを参照できます。これとは別に、ClusterControlは、緊急時やMySQLGaleraノードが故障した場合にアラームと通知システムを増幅するリアルタイムの監視を提供します。
この3部構成のブログシリーズを終えるにあたり、パブリッククラウド業界にサービスを提供する各テクノロジージャイアントの製品と利点を紹介しました。どちらかを選択する場合には長所と短所がありますが、最も重要なのは、パブリッククラウドに移行する理由、組織にとってのメリット、およびアプリケーションの要件にどのように対応するかです。
Galera Clusterのプロバイダーの選択には、「最も費用対効果の高いもの」などの財務上の考慮事項が含まれる場合があり、予算のニーズにより適しています。また、プライバシー法や規制への準拠が原因である可能性もあります。また、使用したいテクノロジースタックが原因である可能性もあります。重要なのは、大量のトラフィックを処理するクラウドにアプリケーションとデータベースが配置された後のパフォーマンスです。高可用性、復元力、適切なレベルのスケーラビリティと冗長性を備え、データを確実に復旧するためにバックアップをとる必要があります。