Azureのクラウドサービスを使うメリットを理解する【AZ-900】
はじめに
こんにちは。
Azure Fundamentals(AZ-900)の学習を進めていると、「高可用性」「スケーラビリティ」「ガバナンス」など、クラウドならではの用語がたくさん登場します。
そして何より
公式ドキュメントが機械翻訳過ぎて何言ってるかわからん
という問題を解決するため、かみ砕いて理解した内容をまとめていきます。
Microsoft Learnを読み進める中で、それぞれの言葉の意味は何となく分かるものの、
- 結局オンプレミスと何が違うの?
- それぞれのメリットはどういう場面で役立つの?
- 試験では何を覚えればいいの?
という点が少し曖昧でした。
そこで今回は、Microsoft Learnで学習した内容をもとに、自分なりに理解した内容を整理してみます。
同じようにAzureを学び始めた方の参考になれば嬉しいです。
クラウドサービスを利用するメリットとは
オンプレミス環境では、サーバーを自社で購入し、設置から運用・保守まで自分たちで管理する必要があります。
例えば新しいWebサービスを公開するとしても、
- サーバーを購入する
- ネットワークを構築する
- 停電や障害に備える
- 将来のアクセス増加を予測して性能を決める
といった準備が必要になります。
私はここで、「将来どれくらい利用者が増えるか分からないのに、最初からサーバーを用意するのはリスクが高いし見通し立たないよな」と感じました。
実際、多めに見積もれば設備が余ってしまいますし、逆に少なければアクセス集中でサービスが止まってしまう可能性があります。
クラウドでは、このような課題を解決するための仕組みが最初から用意されています。
Microsoft Learnでは、クラウドを利用するメリットとして次のような特徴が紹介されていました。
- 高可用性
- スケーラビリティ
- 信頼性
- 予測可能性
- ガバナンスとコンプライアンス
- 管理性
- 持続可能性
最初は似たような言葉が多く(翻訳精度の問題かもしれないですが)わかりにくかったですが、一つずつ整理しました。
高可用性(Availability)
高可用性とは?
Microsoft Learnでは、高可用性(Availability)は
システムをできるだけ停止させず、利用できる状態を維持すること
と説明されています。
私は最初、「信頼性と何が違うんだろう?」と思いました。
調べながら読み進めてみると、
高可用性は"止まりにくいシステムを作ること"
というイメージを持つと理解しやすかったです。
例えばネットショップを考えてみます。
24時間注文を受け付けているサイトが、昼間に数時間停止してしまったら、その間は商品を購入してもらえません。
サービス停止は売上や信用にも影響するため、企業では「できるだけ止めないこと」がとても重要になります。
Azureには、そのための仕組みが数多く用意されています。
SLAとは?
高可用性とセットで登場するのが SLA(Service Level Agreement:サービス レベル アグリーメント) です。
SLAは、
「このサービスはこれくらいの稼働率を保証します」という約束
のことです。
AzureではサービスごとにSLAが設定されています。
例えば、
| SLA | 年間停止時間(目安) |
|---|---|
| 99.9% | 約8時間45分 |
| 99.99% | 約52分 |
私は最初、この数字だけ見ても違いがあまりピンときませんでした。
ですが、
数字が高いほど停止時間が短くなる
ということを理解すると覚えやすくなりました。
AZ-900では細かい停止時間を暗記するというより、
SLAが高いほど可用性も高い
という考え方を理解しておけば十分だと思います。
Azureではどのように実現するの?
Azureでは、一台のサーバーだけに頼るのではなく、複数のリソースを組み合わせて障害に備えることができます。
例えば、負荷分散を利用すると、利用者からのアクセスを複数の仮想マシン(VM)へ振り分けることができます。
もしVM1で障害が発生しても、VM2が処理を続けられるため、サービス全体が停止する可能性を小さくできます。
Microsoft Learnを読みながら、
「クラウドはサーバーを貸してくれるだけではなく、止まりにくい仕組みまで提供してくれるんだな」
ということが印象に残りました。
スケーラビリティ(Scalability)
次に学習したのがスケーラビリティです。
これはAzureだけではなく、クラウド全体を代表する特徴の一つだと感じました。
スケーラビリティとは、
利用者やアクセス量に合わせて、必要な分だけリソースを増減できること
です。
例えば、普段は100人程度しか利用しないサービスでも、テレビやSNSで紹介されると、一気に数万人がアクセスすることがあります。
オンプレミスでは、そのような状況を想定して最初から高性能なサーバーを購入しておく必要があります。
しかし、それでは普段は性能を持て余してしまいます。
クラウドでは必要なタイミングだけリソースを増やし、不要になれば元に戻すことができます。
「使った分だけ支払う」というクラウドの料金体系とも相性が良い仕組みだと感じました。
垂直スケーリングと水平スケーリング
Microsoft Learnでは、スケーリングには次の2種類があると説明されています。
- 垂直スケーリング(スケールアップ・スケールダウン)
- 水平スケーリング(スケールアウト・スケールイン)
最初は「名前が似ていて覚えにくいな…」と思ったのですが、それぞれが変更するものを意識すると整理しやすくなりました。
垂直スケーリング
垂直スケーリングは、
1台のサーバーの性能を変更する方法
です。
例えば、
| 変更前 | 変更後 |
|---|---|
| CPU 2コア | CPU 8コア |
| メモリ 8GB | メモリ 32GB |
のように、CPUやメモリを増やしてサーバー自体をパワーアップします。
逆に、「そこまで性能はいらなかった」と分かった場合は、CPUやメモリを減らしてコストを抑えることもできます。
水平スケーリング
水平スケーリングは、
サーバーの台数を増減する方法
です。
例えば、普段は2台で十分だったWebサーバーを、アクセスが増えたタイミングだけ6台や10台に増やすようなイメージです。
アクセスが落ち着いたら、不要になったサーバーを減らすこともできます。
クラウドは「使った分だけ課金される」ため、この仕組みはコスト面でも大きなメリットがあります。
2つの違いを整理してみる
私は次のように覚えるようにしました。
| 項目 | 垂直スケーリング | 水平スケーリング |
|---|---|---|
| 変更するもの | サーバーの性能 | サーバーの台数 |
| 対象 | CPU・メモリ | 仮想マシンの数 |
| 別名 | スケールアップ・ダウン | スケールアウト・イン |
| 利用例 | データベース | WebサイトやWebアプリ |
AZ-900では、
問題文に
- CPUを増やす
- メモリを増やす
と書かれていたら垂直スケーリング、
- 仮想マシンを追加する
- コンテナーを増やす
と書かれていたら水平スケーリング
と考えると答えを選びやすいと思います。
私は水平と垂直の差を覚えるときに、
一台の性能を「上げる」 = 垂直スケーリング
数を増やして「横」に並べる = 水平スケーリング
と覚えると混乱しなくなりました。
信頼性(Reliability)
次に登場するのが「信頼性」です。
ここは個人的に一番混乱した部分でした。
高可用性も「止まらない仕組み」だったので、
「結局何が違うんだろう?」
と思いながらMicrosoft Learnを読み進めました。
私なりに整理すると、
- 高可用性:できるだけ止めない仕組み
- 信頼性:障害が起きても復旧して動き続けられる仕組み
という違いだと理解しました。
完全に別物というより、「似ているけれど注目しているポイントが違う」というイメージです。
Azureではどのように信頼性を高めるの?
Azureには世界中にデータセンターがあり、それぞれをリージョンと呼びます。
例えば、日本リージョンで大きな障害が発生したとしても、別のリージョンに同じシステムを用意しておけば、そちらへ切り替えてサービスを継続できます。
この仕組みをフェールオーバーと呼びます。
Microsoft Learnを読んでいて、
「クラウドは1か所だけで動いているわけではないから、このような仕組みが実現できるんだな」
と感じました。
予測可能性(Predictability)
予測可能性という言葉も、最初は少しイメージしにくいと感じました。
Microsoft Learnでは、
- パフォーマンスの予測可能性
- コストの予測可能性
という2つの視点で説明されています。
パフォーマンスの予測可能性
パフォーマンスの予測可能性とは、
サービスを利用する人に対して、安定した性能を提供しやすくする考え方です。
例えばアクセスが急に増えても、
- 自動スケーリング
- 負荷分散
などを利用することで、性能を維持しやすくなります。
利用者からすると、
「今日はサイトが重い」
「昨日は速かったのに今日は遅い」
という状況をできるだけ防ぐことにつながります。
コストの予測可能性
クラウドは従量課金なので、
「毎月いくらになるんだろう?」となりそうです。
Azureでは、
- 現在どれくらい使っているか
- どのサービスにお金がかかっているか
- 今後どれくらいの費用になりそうか
を確認できる仕組みがあります。
また、Azure Pricing Calculator(Azure料金計算ツール)を使えば、
サービスを利用する前におおよその料金を見積もることもでるようです。
オンプレミスのように最初に高額な設備投資をするのではなく、
利用状況を見ながらコストを調整できるのもクラウドの特徴だと感じました。
ガバナンスとコンプライアンス
Microsoft Learnでは、クラウドのメリットとして「ガバナンス」と「コンプライアンス」も紹介されています。
この2つも最初は違いが分かりにくかったので、自分なりに整理してみました。
私の理解では、
- ガバナンス:ルールを決めて、正しく運用する仕組み
- コンプライアンス:法律や業界のルールを守ること
という違いがあります。
例えば会社でAzureを利用する場合、
- 勝手にリソースを作らない
- 決められたリージョンだけ利用する
- 必ずタグを付ける
といったルールを設けることがあるそうです。
これがガバナンスと覚えました。
一方で、
- 個人情報保護法
- ISO
- GDPR
などの法律などの外部ルールを守ることがコンプライアンスということですね。
(コンプラ研修とかよく聞くけどこれは法律順守しましょうということですねw)
Azureには、このようなルールを守るための機能があらかじめ用意されているということでした。
Microsoft Learnを読んで、「クラウドは自由に使えるだけではなく、企業が安全に運用するための仕組みも重要なんだな」と感じました。
管理性(Manageability)
クラウドのメリットとして、管理がしやすいことも挙げられていました。
Microsoft Learnでは管理性を
- クラウドの管理
- クラウドでの管理
という2つに分けて説明していました。
最初は違いが分かりませんでしたが、
「何を管理するか」と「どうやって管理するか」の違いだと考えると理解しやすかったです。
というか公式の機械翻訳チックな文章がわかりにくいのが悪いんですけどね。
クラウドの管理
こちらは、
クラウド上のリソースを効率よく運用する仕組み
と考えました。
例えば、
- 必要に応じて自動でスケールする
- テンプレートから同じ構成を作る
- リソースの正常性を監視する
- 異常があればアラートを送る
といった機能があります。
毎回手作業で設定しなくても、自動化できるところがクラウドらしい特徴だと思いました。
クラウドでの管理
こちらは、
Azureを操作する方法
と考えました。
代表的な方法として、
- Azure Portal(ブラウザからGUIで操作)
- Azure CLI(Bashコマンドで操作)
- Azure PowerShell(PowerShellで操作)
- API(アプリケーション、システム同士から操作)
があります。
私は普段Web画面を操作することが多いので、Azure Portalが一番イメージしやすかったです。
一方で、同じ作業を何度も行う場合はCLIやPowerShellを使うと効率が良くなることも学びました。
AZ-900では、それぞれのツールの特徴を大まかに理解しておけば十分だと思います。
持続可能性(Sustainability)
最後に紹介されていたのが持続可能性です。
最初は、
「クラウドと環境問題ってどう関係があるんだろう?」
と思いました。
Microsoft Learnを読み進めると、
クラウドは必要な分だけリソースを使えるため、無駄な電力や設備を減らせることが理由だと理解しました。
例えば、
- 夜間は開発環境を停止する
- 利用者が少ない時間帯はスケールダウンする
- 使っていない仮想マシンを停止する
といった運用を行うことで、
- 電力消費を抑えられる
- コストも削減できる
というメリットがあります。
つまり、
持続可能性は環境への配慮だけではなく、コスト削減にもつながる考え方
だと理解しました。
AZ-900試験で押さえたいポイント
このセクションでは、次の内容を整理して覚えておくと問題を解きやすいと思います。
| 用語 | 押さえたいポイント |
|---|---|
| 高可用性 | サービスをできるだけ停止させない |
| SLA | サービスの稼働率保証 |
| 信頼性 | 障害から回復してサービスを継続する |
| 垂直スケーリング | CPUやメモリを増減する |
| 水平スケーリング | サーバー台数を増減する |
| 予測可能性 | 性能やコストを見積もりやすい |
| ガバナンス | 組織内の運用ルール |
| コンプライアンス | 法律や規制を守ること |
| 管理性 | Azureを効率よく管理できること |
| 持続可能性 | 無駄なリソースを減らして効率よく利用する |
特に試験では、
- 垂直スケーリングと水平スケーリング
- 高可用性と信頼性
- ガバナンスとコンプライアンス
の違いを問われる問題がよく出題される印象があります。
似た言葉が多いので、違いを自分の言葉で説明できるくらいになると安心だと思います。
実務ではどのように使われる?
今回学習した内容は、実際の業務でもよく登場しそうだと感じました。
例えばWebサービスを運営する場合、
- アクセスが増えたら自動でスケールアウトする
- 障害に備えて複数のリージョンへ配置する
- Azure Monitorで監視する
- Azure Policyで社内ルールを適用する
といった形で利用されます。
Microsoft Learnを読むまでは、
「クラウド=サーバーを借りる」
くらいのイメージでした。
ですが実際には、
止まりにくくする仕組み、管理しやすくする仕組み、安全に運用する仕組みまでまとめて提供されている
ということが分かりました。
このあたりが、オンプレミスとの大きな違いなのだと思います。
まとめ
今回は、Microsoft Learnで紹介されていたクラウドサービスを利用するメリットについて整理しました。
学習を始めた頃は似たような用語が多くて混乱していましたが、それぞれの役割を整理すると少しずつ違いが見えてきました。
個人的には、スケーラビリティと高可用性は、クラウドの特徴を表す代表的な考え方だと感じています。
今後Azureの各サービスを学習していく中でも、今回学んだ考え方が何度も出てきそうなので、しっかり理解しておきたいと思います。
次回は、Azureで提供されている IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)、SaaS(Software as a Service) の違いについて整理していきます。
おわりに
本記事は、Microsoft Learnを読みながら理解した内容を、自分なりに整理したものです。
現時点でAZ-900範囲の学習は一通り終えて、模擬テストも合格圏内の点数を取れていますが、復習のためと、あとから見直すための資料として学習内容をまとめている状態です。
引き続き学習内容をまとめて記事投稿してくつもりです。
内容に誤りや理解不足があるかもしれませんので、お気づきの点があればコメントで教えていただけると嬉しいです。
また、最新情報や詳細については Microsoft Learn の公式ドキュメントもあわせてご確認ください。