Microsoftが展開・提供しているAzureとは、システム開発を行うシステムエンジニア・プログラマーが、ブラウザ上などから利用するサービスです。
既にITエンジニアをされている方・目指している方は、必須スキルです。ChatGPTのような実務のどこで使えるのか?というものとは違って、ほとんどのシステム開発で使われているので勉強しない理由はありません。
Azureのシステム開発は、従来のオンプレ開発と大きく変わるので説明していきます。
オンプレミス開発 (従来の開発)
オンプレの作業場所 ▽
会社に全員集まるので、コロナの時代には向いていない。
https://www.azureportal-site.com/entry/azuretoha
システム運用を行うサーバー ▽
数百万・数千万という高額なサーバーを事前に購入して自社のデータセンターに並べるので、家賃の他にセキュリティ対策・電源が落ちない仕組みなどの多額の経費がかかる。
問題が発生したときは自分たちで対処する必要があるので、
24時間体制・深夜残業・休日出勤が当たり前。
システム・アプリケーションの動かし方 ▽
担当者がデータセンター(現地)に行って、
開発したシステム・アプリケーションを自社サーバーの中にインストールします。そして自社サーバに外部からアクセスさせるためのネットワーク構成・セキュリティ対策なども、経験を積んだエンジニアたちのチームを組んで自分たちで行います。
Azure開発(クラウド開発)
クラウドの作業場所 ▽
パソコン1台あれば作業できてしまうため、在宅ワークがしやすい。
(私は今年2021年に、事務手続きのための1度しか現場に出社してません)
システム運用を行うサーバー ▽
Microsoftが用意してるAzureデータセンターにサーバーが用意されてるので、
最強の設備でMicrosoftが運用・管理してくれている。
更にAzureのサービス提供が年間 99.95% 程の稼働率を下回ってしまった場合、Microsoftが返金保証してくれる仕組みまで用意されている。
※ 年間 99.95% の稼働率とは、1年間(8760時間)のうち約8時間以上Azureが停止してしまった場合、その分返金保証するといったものです。8752時間は正常にサービスを提供しますよ、と約束してくれるのはさすがMicrosoftで、自社サーバーでは絶対真似できないと思いますし、もし真似できたとしても相当な時間・労力が必要になると思います。
システム・アプリケーションの動かし方 ▽
自分のパソコンのブラウザなどからAzureにアクセスして、開発したアプリケーションをAzureサーバーの中にインストールできてしまいます。設定変更が必要になったときも、自宅からポチッとできます。
システムをリリースまでの流れとリリース後の使用イメージ ▽
No1.ローカルPCでシステム・アプリケーションを開発
VisualStudioCode, eclipseの開発ツールで開発して、ローカルPC環境で動作確認・テストを行います。
No2.開発したアプリケーションをAzure上に配置
アプリケーションが完成したらGithubなどを使って、Azure上に配置(デプロイ)します。
Azure上に配置した=世の中にアプリケーションを公開したことと同じ意味になります。
No3.利用者がAzureサーバーにアクセスしてサービスを利用
例えばAzureAppServiceというものを一つ作るとURLが自動で発行されるので、そのURLにブラウザからアクセスするだけで、開発したアプリケーションに外部インターネットを経由してアクセスできます。
Azureを使うデメリット
よくAzureの概要やメリットが書かれているサイトはありますが、ここではあえてデメリットを書いてみます。
メンテナンスの影響でアプリが一時的に停止する可能性がある ▽
デメリットのところには書きましたが、MicrosoftAzure側が勝手にバージョンアップやセキュリティ対策の最新化などをしてくれていてサーバ・アプリケーションの安心・安全を担保してくれているということです。
Azure側がメンテナンスを実施してくれないと各企業・サービス者たちは安心・安全なアプリケーションをサービス利用者に提供できなくなってしまいます。
そう考えるとメンテナンスは必要なものなので、メンテナンスを随時行ってくれることは大きなメリットになると理解いただければと思います。メンテナンスに耐えられるアプリケーションの開発・構築を目指しましょう。
システム・アプリケーションの動かし方 ▽
提供されているサービスの中には、1か月使っても無料というよく使われているサービスもあったりします。(AzureFunctionsの従量課金プラン)
しかし、1か月使用すると30~40万円かかるなんていうものもあります。大規模システムで使われるものなので、個人で使うようなものではないので知識の一つとして聞いていただければと思います。(AzureAppServiceEnvironment =1台のサーバを占有できる)
デメリットのところには書きましたが、「安いプランから高いプランまで必要に応じて選べて変更できる」という意味では大きなメリットになることを理解いただければと思います。
Azureがオススメな理由
クラウド開発では、未だにAmazonのAWSがシェア1位だとは思います。だからこそ、AWSのエンジニア・書籍・サイトは多いけどAzureはまだまだ少ないのが現状です。私のこんなサイトですら「Azure料金プラン」で検索するとGoogleトップに表示されるのです。だからこそ、AWSを知ってるのは珍しくないけど、Azureを知ってるエンジニアは貴重な存在!となるわけです。ニッチ戦略というやつですね。
シェアが多い方がその分仕事の供給量も多いかもしれませんが、私は契約を取りやすいAzureをオススメします。高度なプログラミングスキルがなくても、Azureを覚えるのと少しのプログラミングスキルがあれば年収1000万とかいきます。あと、私は副業として休日にAzure構築サポートをやっていた時期もあり、普通のアルバイトの数倍の時給をいただきました。
実際にどんなサービスが使われているか
Azureでは、さまざまなサービスを利用してアプリケーションの開発やデータの管理を行うことができます。ここでは、Azure初心者の方に向けて、まず触れてみるべき基本的なサービスを紹介します。
私は、とある企業研修でAzureを教えていた、Udemy講師として動画を製作したりしているのですが、Azure初心者の方にはまず以下の代表的なサービスを説明・実践するようにしていますので、皆様もまずは以下を学習してみてはいかがでしょうか。
◎ ストレージアカウント (Storage Account) ▽
データを保存するための場所を提供するサービスです。ファイル、データベース、キュー、テーブルなど、さまざまな形式のデータを保存することができます。例えば、画像やドキュメントを保存するためにBlobストレージを使用することができます。
◎ 仮想マシン (Virtual Machine) ▽
クラウド上で仮想的なコンピュータを提供するサービスです。物理的なハードウェアを持たずに、必要なときに必要なだけのコンピュータリソースを利用することができます。開発環境やテスト環境として利用することが多いです。
◎ SQL Database ▽
リレーショナルデータベースを提供するサービスです。データの保存、管理、クエリの実行を行うことができます。高可用性とスケーラビリティを備えており、アプリケーションのデータベースとして利用されます。
◎ Open AI ▽
有料のChatGPTを従量課金でとても安く使えるサービスです。自然言語処理を利用したアプリケーションの開発に役立ちます。例えば、カスタマーサポートのチャットボットを作成することができます。
◎ AppService / Functions ▽
皆さんがプログラミングコードを書いて開発したアプリケーションをAzure上にアップロードして、簡単に世の中にアプリケーションを公開できるサービスです。App ServiceはWebアプリケーションのホスティングに、Functionsはサーバーレスアーキテクチャの実現に利用されます。
最後になりますが、これらのサービスを使い始めることで、Azureの基本的な使い方を理解し、より高度なサービスを利用するための基礎を築くことができます。ぜひ、実際に手を動かして試してみてください。
以上です。