ハイブリッドクラウドについてとAzureとAzureStackHubの違いをまとめてみた　ハイブリッドクラウド説明編



#　書き出し
最近業務でAzureStackHub（以下、AzureStack）とかAzureを触る機会があって、
その違いをしっかり自分で確認するために書きなぐります

ハイブリッドクラウドって何？みたいな人の参考になればいいかと
~~そんな人いないかもしれん~~

あと、間違いあれば遠慮なくご指摘いただけると幸いです！
間違った情報をそのまま載せるのは問題なので！

# 最初に
上でも書きましたが、業務内でAzureStackを触りはじめ、きちんと自分が理解しているか確認するためにも、ここで知識を展開します

なので、内容としては専門的なものというより、かなり表面的なものになりますので、踏み込んだ説明等はしておりません

さらに、簡潔な説明で済むものを自身の理解に長く書いているので、ご容赦くださいね

「AzureとAzureStackって違うの？？」程度の知識の人に読んでもらえたら嬉しい！

# どんな人
* SIer
* Azure, AzureStackを触って約半年
* 設計・運用について少しずつ理解し始めてきた

# Azureとは
Azureは、Microsoftが提供する[クラウドプラットフォーム](https://azure.microsoft.com/ja-jp "クラウドプラットフォーム")です

クラウドの特徴といえば、Amazonは[次](https://aws.amazon.com/jp/cloud/ "クラウドの特徴")のように説明しています~~Azureのやつみつけられなかった~~
**クラウドサービスを利用することで、ハードウェア導入に伴う初期の多額の投資や、リソースの調達、メンテナンス、容量の使用計画といったわずらわしい作業に 多大な人的リソースを費やす必要がなくなります。削減することができた資金や人的リソースを新しいアイデアの実現に充てることが可能になり、IT 部門を運営するために必要な、適切な種類とスペックのコンピューティングリソースもプロビジョニングすることができます。**

簡単に言うと、「今まで手元に持っていた物理的なサーバを、クラウドなら意識せず（手元に持たず）にネットサービスを利用・運用できますよ」ってことですね
これがクラウドの特徴の1つです

物理サーバを意識しなくていいなら、電気代とか、維持するための人件費や、果てはストレージの大きさやCPU等のリソースを事前に計算する~~（面倒な管理作業）~~手間も小さくなりますよね、ってのがAWSの説明ですね

これにより稼働を減らし、減らした分の稼働を別業務に回すことができる
上記が、クラウド導入＝安価になる、という理論の根拠になることが多いです
~~もちろん安くなるとは限らない罠~~

クラウドプラットフォームで有名なものといえば、MSのAzure以外にも

* AmazonのAWS
* GoogleのGCP
* 中国で幅広いシェアを持つAlibabaのAlibaba clud
* IBMのIBM Cloud

等ありますが、今回それらの差分についてはスルーします

あくまで今回は説明を簡潔にするためAzureをクラウドの代名詞として扱います
※クラウド＝Azureという認識はまったく一般的ではありません

差分について気になる人は、わかりやすくまとめてくださっているご先達がいらっしゃるので、そちらをご参照ください

とにかく、今回大事なのは、クラウドは**物理的なサーバを意識しなくてもよい**という特徴を持っていることです

# Azure Stackとは　その1
MicrosoftはAzureStackを[以下](https://azure.microsoft.com/ja-jp/overview/azure-stack/ "MSハイブリッドクラウド")のように説明しています
**「オンプレミスで常にハイブリッドアプリケーションを実行できるようにするAzureの拡張機能です」**

まぁ何言ってるかわかりませんね

これが私の初めての感想でしたし、この文章を理解してもらうことがこの記事の理想です

そもそも単語の意味がわからないとどうしようもないので、理解のためにはまずそれらの単語について簡単に説明します

ただ、ここで覚えていてほしいのは、AzureとAzureStackは（物理的には）全くの別物である、ということです

# オンプレミスとは
いわゆる「サーバやソフトウェアなどの情報システムを、自身が管理する設備内に設置し、運用すること」ですね
厳密に言うとシステムなどを構成するDBやソフトウェアを自社のサーバ室や、データセンターなどに設置し、運用することです

クラウドの対として扱われ、オンプレとクラウドどちらか、という議論は今の設計議論では必ずといって良いほど出てくるものでしょう

# オンプレミスとクラウドの比較
ここでオンプレとクラウドを比較してみましょう

|  | オンプレミス | クラウド|　備考 |
|:--------------------- |:------------:|:------------:|:----:|
| コスト                 | △           | 〇           | 初期費用の差     |
| インフラ調達期間        | ×           | 〇           |  クラウドは登録のみだが、オンプレは機器を比較して、検討発注etc...           |
| カスタマイズ            | 〇          | △           | クラウドも十分自由だが、オンプレと比べるとクラウドが劣る |
| ネットワークセキュリティ | 〇          | △           | 理論上はこうだが、自社とクラウドを比較すると、意外とクラウドの方が…ということもある |
| 既存システムとの連携     | 〇          | △           | クラウドも十分自由だが、オンプレと比べるとクラウドが劣る |

必ずしもどちらが良い、というのは環境によって異なることがわかると思います
コスト面からするとクラウドの方がよいけれど、セキュリティ等の社内ポリシーや、法的な課題等の理由でオンプレミスを選択する企業は数多くいるでしょう
クラウドからデータを抜かれた、という事件は誰しも耳にしたことがあり、それがトラウマとなってクラウドを忌避する人もSEをやっているとよく見るかもしれません

ここで覚えていてほしいのは、**オンプレとクラウドには両方メリットがあるが、デメリットも存在する**ということです

# ハイブリッドアプリケーションとは
一般的なハイブリッドアプリケーションは、「Webアプリとネイティブアプリ（AndroidとかiOSで動作するやつ）を組み合わせて、JS等のスクリプトでアプリを作れちゃう」ものですね
[参考](https://qiita.com/soarflat/items/cf5d343c75baadb461dc "ハイブリッドアプリケーション")

上の意味わからない人はスルーでOKです
今回扱うハイブリッドアプリケーションはこの定義とは当てはまりません

では、今回取り扱うハイブリッドアプリケーションとは何なのか？

答えは「オンプレとクラウド、両方のハイブリッドでアプリケーションを実行できる」ことです。

つまり、オンプレとクラウド、両方のいいとこだけを取り入れてアプリケーションを作っちゃおうってことですね
この「両方のいいとこだけ」というのがハイブリッドと言われるゆえんです

このように、オンプレとクラウド両方を組み合わせることをハイブリッドクラウドと呼びます

# AzureStackとは　その2
ここでもう一度、AzureStackについてのMSの説明を見てみましょう
**「オンプレミスで常にハイブリッドアプリケーションを実行できるようにするAzureの拡張機能です」**
[参考](https://azure.microsoft.com/ja-jp "AzureStack説明文")

少しくらいは理解できるようになっているのではないでしょうか
ただ、問題は「Azureの拡張機能」という説明文です

これは簡単に言うと、クラウドの部分はAzureが担うので、AzureStackにはオンプレ部分を担うことで、Azure＋AzureStackでハイブリッドクラウドを実現することを意味します

AzureStackを実際に見てみましょう
(; ･`д･´)「ハイブリッドクラウドってどんなモンなんやろ……」
![AzureStackHPE](https://h50003.www5.hpe.com/digmedialib/prodimg/lowres/i00049900.png "AzureStackHPE")
※参考URL：https://www.hpe.com/jp/ja/product-catalog/detail/pip.hpe-proliant-for-microsoft-azure-stack.1009954522.html
( ﾟДﾟ)「オンプレ機器やんけ！！！！！！！！！！」

そうAzureStackとはオンプレに設置する機器なのです
オンプレ部分を担うのだから、オンプレに機器を置いちゃおうって簡単な話ですね

# AzureStackとは　その3
上記のように、AzureStackを使用するためには、オンプレにAzureStack用の機器を置く必要があります。

AzureStack用の機器というのは、MSとしっかりと連携し、安定稼働していると証明されている、DELやHPEといった限られた会社からしか購入できず、数千万ほどの金額がかかります

ここまでの説明について、少し考えると次のような考えが浮かぶでしょう

(; ･`д･´)「そんな高いなら、オンプレ部分ですでにある仮想基盤をAzureとつなげればよくね？？」

**AzureStackをただの仮想基盤（VMのみ扱います的な奴）として扱う予定ならその通りです**

しかしもちろん、AzureStackにはただの仮想基盤とは違い、クラウドの特徴を一部持っています。

その部分とは、PaaS（Platform as a Service）です。
この機能こそが、AzureStackを採用する大きな理由となるのではないかと考えています。

# 続きます

今回はここまで。
次回は、ただの仮想基盤とAzure、AzureStackそれぞれ何が違うの？ということを主眼に説明していきます。

ここまで読んでくれてありがとうございます。
まだまだ技術者としては若輩者なので、ご指摘等ありましたらぜひお願いします！

それでは次回もよろしくお願いします（今月中には書きます）