Azureを使うための勉強法 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 Tomomi  (社会人) 投稿日時 2021/2/10 12:03:48
るきお様、アドバイスありがとうございました。 
まずは、るきお様ご提示のサイトでAzureを勉強し、
ついでに他のクラウドサービスも勉強してみようと思います。
また、DBについても、必要なのはテキスト検索の高速化なので、
RDBにこだわらず、より良いコスパのものを探そうと思います。

とりあえず、この質問はクローズさせて頂きますが、
何かあればまた相談させてください。
投稿者 るきお  (社会人) 投稿日時 2021/2/5 20:18:23
>RDBで言うと何がお勧めでしょうか?
RDBで私がお勧めするのは MySQL, PostgreSQL, MariaDB, SQL Server の順です。
SQL Server には Azure SQLを含みます。

お勧めする理由は、フルマネージドの度合いとコストです。
他の要件を含めるとにお勧めは変わります。

RDB自体をお勧めしない場合もあります。

>テキスト検索の速度も向上させたいです。
現行がAccessであることを考えるとデータベース自体は何を選択してもAccessよりは高速かもしれません。
ネットワークによる遅延のほうが大きくなる場合もあります。
データ量や処理内容にもよります。

速度が気になるならGCPのBigQueryはRDBではありませんが、速度では定評があります。値段もそんなに高くないような…。
https://cloud.google.com/bigquery/pricing?hl=ja

Tomomiさんは現状ほぼビギナー状態ということなので、とっつきやすいところからお試しで作ってみるアプローチが良いのではないでしょうか。
そういう意味では上記で紹介したAzureの教材は扱いやすいと思います。
投稿者 Tomomi  (社会人) 投稿日時 2021/2/5 14:22:05
るきお様、アドバイスありがとうございます。
ご教示頂いたサイトで勉強します。
やりたいことはインターネット経由前提で考えています。
また、クライアントから直接SQLということは止めて、
WebAPIという考えで行こうと思います。

ところで、SQL Serverはあまりお勧めではない、とのことですが、
RDBで言うと何がお勧めでしょうか?

 現在AccessのMDBで行っているのは、
 例えば、各商品に関するレビュー文章や独自の記事をDBに登録し、
これをキーワード検索する、というものです。
 今後、データ量の増加に耐えられるよう、今回クラウド化を検討していますが、
テキスト検索の速度も向上させたいです。
どうしても、キーワード検索となると、いわゆる中間一致の検索が多くなるのですが、
 従来のSQLの中間LIKE検索より高速な検索ができるものがあれば、願ったり、です。 
投稿者 (削除されました)  () 投稿日時 2021/2/5 14:19:20
(削除されました)
投稿者 るきお  (社会人) 投稿日時 2021/2/5 13:15:07
訂正

Cosmod DB → Cosmos DB
投稿者 るきお  (社会人) 投稿日時 2021/2/5 13:12:52
>開発言語にVB.net(たまにC#)を使用している関係上、
>MicrosoftのAzureがいいかな、と思っています。
AWS、GCPでもVB/C#を動かせますよ。

アーキテクチャーを先に考えたほうが良いですね。
インターネット経由でなんでもできるアーキテクチャーが柔軟性・拡張性などに優れお勧めですが、要件によっては専用線(Express Routeなど)をひいて、専用線内でやりとりする場合もあります。

専用線をひくのは少しハードルがありますので、ひとまずお勧めであるインターネット経由で機能を提供する方向で書いてみます。

>クライアント側アプリからSQL Serverにクエリを投げるような使い方をしたい
これはお勧めできないです。
脆弱性の原因になりますし、セキュリティ機能(WAFなど)でこのようなリクエストが拒否される可能性すらあります。
クライアントとクラウド間の通信は WebAPI にするのが良く、そのWebAPIの機能もSQLを引数として結果を返すというようなものではなく、商品を取得する、商品を登録するなどの扱っているモノ(リソース)単位で考えるのが一般的です。

SQL Serverを使うのもお勧めではなく、もっと安いMySQLも使えますし、RDBではない、Cosmod DBやTableストレージもあります。これらは機能が劣っているわけではなく、考え方が違うものです。クラウド自体の考え方によりマッチするようになっています。

Azureについては公式の学習教材がここにそろっていますので、ご覧になってみてはいかがでしょうか。
https://docs.microsoft.com/ja-jp/learn/browse/?products=azure&resource_type=learning%20path
投稿者 Tomomi  (社会人) 投稿日時 2021/2/5 10:34:37
とあるデータ管理を行うアプリをユーザーに運用しています。
(元々VB2005で作成したものを、現在ではVB2013にしてメンテナンスを行っています。)
データ管理はAccessのMDBで行い、関連する画像ファイル等のバイナリデータは
MDBを配置した場所のサブフォルダで管理しています。
(画像ファイル等のパスをMDBで管理)

さて、MDBに蓄積されたデータ件数がかなり多くなり、
また、ユーザーより、データの場所をクラウド対応して欲しい
(いわゆるリモートワークでも利用可能としたい)
というご要望がありました。

そこで、クラウドサービスの導入を検討しているのですが、
開発言語にVB.net(たまにC#)を使用している関係上、
MicrosoftのAzureがいいかな、と思っています。

現在のAccess MDBと関連データを扱うことと同じことがやりたいので、
まずはSQL Serverを使いたいです。
次に、DBデータに関連する画像データ等を保管するフォルダですが、
以前、DBのバイナリ型に画像データを入れようかと検討したのですが
色々と検索するとあまりお勧めできないとのことで、
サーバ内部のフォルダに保管し、リクエストに応じHTTP等で応答することを
検討しています。

まとめると、以下のようなことがやりたいです。
・クライアント側アプリからSQL Serverにクエリを投げるような使い方をしたい
・HTTP等でリクエストに応じたレスポンス(画像データ等)を返すWebサービスを作りたい

とは言っても、私はこの業界をしばらく離れていて、
SQL Serverは20年近く触ったことがありません。
ましてや、Webアプリはレガシーaspの時代です。

ほぼほぼビギナーですが、勉強のためにどのようなステップで
取り組んでいけばよいでしょうか?

・まずどのような契約が必要か?
 (とりあえずは最低ランクのスペックで十分)

・AzureでSQL Serverを使用するためのお薦めの解説サイトは?

・AzureでWebサービスを開発するためのお薦めの解説サイトは?
 (とりあえずhttpでリクエストを受け取ったら何らかのレスポンスを返す、
  というところまで習得できれば、あとは何とかやっていけると思います。)

アドバイスの程、何卒宜しくお願い致します。