【技術ブログ】クラウド、及びAzureサービスの概要
初めまして!TERAZでインフラエンジニアをやっている宮尾と申します。
今回は技術ブログを担当させていただくということで本稿では、数あるクラウドサービスの内、筆者が使用経験のあるAzureについて、その概要を記載させていただきます。
1.オンプレミスとクラウド、ハイブリッド環境への移行
従来、ITシステムはオンプレミス、すなわち自社で運用管理する社内データセンタで構築されていました。しかし現在では、リスク管理やコスト低減の観点から、ITシステムの構築先は社外データセンタ、昨今ではクラウド環境など、多様な選択肢があります。
2.クラウドとは
サーバ、ストレージ、ネットワークなどのITリソースをインターネット経由で、いつでもどこからでも任意のデバイスから自由に利用できるようにする形態を、クラウドまたはクラウドコンピューティングといいます。
各クラウドサービスは、クラウドサービスプロバイダー(クラウド事業者)により、管理、運営されます。クラウドサービス共通の特徴として、以下5つの事項が上げられます。
オンデマンドセルフサービス:
ユーザーがセルフサービスポータルからシステムの調達や各種設定を直接行うことができ、行われた変更は人手を介することなく自動で反映されること。
幅広いネットワークアクセス:
さまざまなデバイス、地点から利用可能であること。
リソースの共有:
複数ユーザーで共通のシステム資源を利用し、別システム間で融通が可能であること。
迅速な拡張性:
ユーザーの需要に応じて、システムの拡張や縮小を即座に行えること。
サービスの計測可能性(従量課金制):
クラウドサービスの利用量が計測可能であり、従量課金が可能であること。
中でも、筆者が特にその強みを実感したのは拡張性における部分です。
過去、実運用中にオンプレミス仮想サーバの元となる物理サーバが、リソース不足に陥ったため、増設するという案件が発生しました。その際は、メンテナンスのための調整、部品の取り寄せ、各ベンダーとの日程調整など、作業外でも工数が膨大であった為、問題が発覚してから実際に拡張ができたのは半年後となってしまいました。
(その間リソース不足に起因するアラート等も発生し、そちらにも工数が割かれるなども多くありました。)
クラウド環境であれば、こういった仮想サーバのためのリソースが枯渇するという問題はほぼ起こりえと言ってよいでしょう。
一方で、クラウドには弱みもあります。上記のように、工数削減に役立つクラウドですが、一概に低コスト化が進められるかというと、そこには注意が必要です。
オンプレミスやデータセンタでの機器維持にかかる費用と、クラウドでの年間費用を綿密に比較考量し、選択する必要があります。
また、Azureではデータのやり取りにより課金が発生する等、従来とは違ったコスト感覚を持つ必要があるため、ログファイルやバックアップの取得方法等、実運用の観点でも注意が必要になってきます。
また、本稿では割愛しますが、クラウドサービスには特有のセキュリティ上のリスク、及び可用性の問題もあります。半面、機器保有によるリスクやコストなど、軽減、ないし転嫁することができるものもあります。
オンプレミスとクラウド、両方の性質を理解した上で、場合によっては、使用用途により両者を選択し併用する、ハイブリッドクラウドへの検討も必要です。
3.MicrosoftAzureとは
MicrosoftAzure(以下Azure)はMicrosoft社がクラウドサービスプロバイダーとして提供しているクラウドサービスです。Azureniha100を超えるサービスが存在し、ユーザはそれらを組み合わせて使用します。
(AIや、監視、サポート等、Azureならではのサービスも存在します。)
Azureサービスの内、汎用性の高いものはコアサービスと呼ばれ、
コアサービスは以下の種類に分類されます。
・コンピュートサービス
・ネットワークサービス
・ストレージサービス
・データベースサービス
Azureには数多くのサービスがありますが、本稿では筆者の作業経験に基づき、実際にAzure内で仮想サーバ構築を行う際に最低限必要となる知識に着目した上で、いくつかのコアサービスについて紹介します。
Azureでのサーバ構築の流れは以下の通りです。
1.サブスクリプションの作成
2.リソースグループの作成
3.仮想ネットワークの作成
4.仮想サーバの作成
6.NSGの設定(Azure内の通信制御)
7.GWの設定(AzureFireWallによる通信監査)
8.サイト間接続設定(VPN装置を使用、又はAzureExpressRouteの使用)
4.サーバ構築時に使用するAzureサービス
・「Azureポータル」、「サブスクリプション」
Azure 上では契約したライセンスの実際の利用をサービス(プロジェクト)単位で管理しており、この単位を「サブスクリプション」と呼んでいます。つまり Azure サブスクリプションとは、ひとくくりの「管理単位」であり、Azure 利用料の支払いやリソース等に対する「権限の単位」となります。
例えばサブスクリプション A が、サブスクリプション B の課金に影響を及ぼすことはありません。またサブスクリプション毎のリソース(仮想マシン、データベース等)を作成したり、削除したり、監視したり等の操作の権限も影響を及ぼすことはありません。
これは企業利用によくある Azure 利用に際し、部門や担当チーム毎に利用料金や利用サービスを、個別に管理したいというケースに対応する仕組みです。
サブスクリプションを作成することにより、各サービスを使用するためのWEBGUIである「Azureポータル」へのログインが可能となります。以降記載する各Azureサービスへの操作は、Azureポータルを経由して行われます。
・リソースグループ
サブスクリプションの作成が完了した後、Azureポータルよりリソースグループを作成します。リソースグループは、関連性のあるリソースを纏め、ライフサイクルを合わせるためのものです。
仮想マシンや仮想ネットワーク等、Azure上でのリソース作成時には、リソースグループの指定が必要になります。リソースグループを削除した際には、内部に含まれるリソースも同時に削除されます。
そのため、ライフサイクルが同じリソースを同一のリソースグループ上にまとめるというのが、リソースグループの設計時の考え方の基本になります。
・「仮想ネットワーク」
Azureで提供されるネットワークサービスであり、仮想マシンを接続するためのものです。同一の仮想ネットワークに接続されている仮想マシンはお互い事由に通信することができます。
それぞれの仮想ネットワークは完全に独立しており、他の仮想ネットワークと接続を行いたい場合にはピアリングが必要です。また、仮想ネットワークとオンプレミス環境を接続するためには、後述の「サイト間接続設定(VPN)」、又は「AzureExpressRoute」の導入が必要です。
・「AzureVirtualMachine」
Azureのコンピュートサービスの1つで、仮想サーバの作成に使用します。
オンプレ上の仮想化ホストと同様に動作します。Windows又はLinuxのOSイメージデータを、Azure内に用意されているテンプレートより読みだして使用します。
AzureVirtualMachine(以下、AzureVM)最大の特徴は、そのサーバの担う役割に応じ、可用性セットまたは可用性ゾーンを設定することにより、高い可用性の担保が可能になる点です。
(1)可用性セット
可用性セットの設定においては、仮想マシンの配置レイアウトを制御する ことができます。これにより、冗長設定されているサーバなどを同一のサーバラックやサーバ機に作成されないように、Azureへ要求することができます。
(2)可用性ゾーン
可用性セットはデータセンタ内のラック単位などでの可用性の保証を担保するための仕組みでしたが、可用性ゾーンはデータセンタ単位、又はリージョン単位での可用性を担保するための仕組みです。
可用性セットはあくまで同一データセンタ内での設定ですので、災害発生などによるデータセンタ事態への影響は避けられませんが、可用性ゾーンを使用し、別リージョンへの設定を行うことにより、さらに高い可用性を保証できます。
マイクロソフトは、可用性セット及び可用性ゾーン両方を組み合わせて使用することを推奨しています。
・「Network Security Group (NSG)」
ネットワークセキュリティグループ(以下、NSG)は、仮想マシンの通信を制御するパーソナルファイアウォールです。
WindowsFWと同様の働きをしますが、別個に設定が必要なので注意が必要です。
・「AzureFireWall」
Azure空間内で使用できるネットワークファイアウォールサービスです。
仮想ネットワーク内の経路に配置することで内部での通信監査に使用したり、パブリックとの通信時にデフォルトゲートウェイとして設定することで、不正通信の監視、遮断等を行うことができます。
・「サイト間接続設定(VPN)」
サイト間接続は、インターネットを介したVPNによって実現されます。
サイト間接続を行うためには仮想ネットワークとオンプレミスネットワークにそれぞれVPN装置を用意し、それらを接続します。
・「AzureExpressRoute」
AzureExpressRouteはサイト間接続を行うためのもう1つの方法で、
VPNではなく、プライベートな専用線を使用します。
VPNを使用したサイト間接続よりも、セキュリティと通信品質が向上しますが、コストも高くなります。
その他の用語、概念、サービス:
・「Azure Resource Manager」(ARM)
ARMは、リソースの作成と管理、アクセス制御を行うAzure内部のサービスです。ユーザは、API、又はAzurePortal(ARM操作用GUI)を通してARMに対して働きかけを行うので、普段はあまりその存在を意識することはありません。ARMはAzure全体でのリソースの一貫性を提供します。
・リージョンについて
リージョンとは、世界中に分散されたAzureデータセンタの地理的グループのことです。アジア、ヨーロッパ、アメリカなどの各地域や、日本国内でも東日本リージョン及び西日本リージョンなどがあります。
複数リージョンを使用した可用性ゾーンを設定することにより、高い可用性を実現することができます。
以上、Azureでの仮想サーバ作成時に必要となるAzureの構成要素の内、
基本的なものに限って記載させていただきました。
また、TERAZではエンジニアも絶賛採用中ですので気になった方はご応募ください。
https://teraz.jp/culture_recruit/
参考文献:
The NIST Definition of Cloud Computing 「Recommendations of the National Institute of Standards and Technology」 NIST 2011
AZ-900:Mircrosoft Azure Fandamentals テキスト&問題集 吉田 薫 2020 「2.5 Azure におけるサブスクリプションとは」Rworks 2022 https://www.rworks.jp/cloud/azure/azure-column/azure-entry/25533/