SQL Server × Access

拡張シナリオ:Azure・クラウド連携

nanikatoaccess

目次

  1. はじめに:なぜAzure・クラウド連携を検討するのか
  2. Azure SQL Databaseを活用するメリット
    • 2.1 スケーラビリティと柔軟なコストモデル
    • 2.2 高可用性・障害対策(地理冗長化)
    • 2.3 保守負荷の軽減
  3. AccessからAzure SQL Databaseへ接続する方法
    • 3.1 DSNレス接続文字列の例
    • 3.2 ODBCドライバーのバージョンと注意点
    • 3.3 SQL認証とAzure Active Directory認証
  4. その他のAzureサービスとの連携例
    • 4.1 Azure Storage(BLOB/ファイル)
    • 4.2 Azure Functionsでバックエンド処理をクラウド化
    • 4.3 Power AutomateやLogic Appsとの統合
  5. 運用のポイント:ネットワーク・セキュリティ・コスト管理
    • 5.1 VPNやExpressRoute、Private Endpointの活用
    • 5.2 ログ・モニタリング(Azure Monitor)
    • 5.3 コスト最適化(スケーリングプランの見直し)
  6. まとめ

ないものはない!お買い物なら楽天市場

1. はじめに:なぜAzure・クラウド連携を検討するのか

Access×SQL Server構成は、オンプレミス環境でも十分に運用可能な場合が多いです。しかし以下のような要件・課題を抱えた場合、Azureをはじめとするクラウドとの連携が有力な選択肢になります。

  • 災害対策・バックアップ強化: 自社サーバーだけで運用していると、地震や火災などのリスクが高い。クラウド側にデータを置くことで地理的な冗長化が簡単に行える。
  • リモートアクセス: テレワークや複数拠点からのアクセスが必要になり、クラウドDBの利用がスムーズ。
  • スケーラビリティ: 利用ユーザー数やデータ量が増加しても、クラウドならばリソースを増強しやすい。
  • 保守コスト削減: Azure SQL DatabaseなどのPaaSを使えば、SQL Serverのバージョンアップやハードウェア管理の手間を大幅に軽減できる。

2. Azure SQL Databaseを活用するメリット

2.1 スケーラビリティと柔軟なコストモデル

Azure SQL Databaseは、DTU(Database Transaction Unit)やvCoreモデルで課金され、必要に応じてプランを上下させることができます。

  • ピーク時だけ高いパフォーマンスプランを利用し、オフピークにはスケールダウンする、といった運用も可能。
  • 従来のオンプレミス環境のように、サーバーハードウェアを増設・買い替えする初期コストやリードタイムがほぼ不要。

2.2 高可用性・障害対策(地理冗長化)

Azure SQL Databaseは、デフォルトでゾーン冗長あるいはGeo-Replicationといった仕組みを備えています。これにより、同一リージョン内や別リージョンへ自動的にデータを複製することができ、大規模障害時でも迅速に切り替えが行えます。災害対策(BC/DR)の観点で大きなメリットです。

2.3 保守負荷の軽減

  • 自動パッチ適用自動バックアップなどの機能が標準的に備わっており、オンプレミスのSQL Serverで手動管理していた部分をAzureがカバーしてくれます。
  • セキュリティパッチやマイナーバージョンアップもクラウド側で適宜実行されるため、管理者の負荷が大きく下がります。

3. AccessからAzure SQL Databaseへ接続する方法

3.1 DSNレス接続文字列の例

従来と同様にADOを使って接続文字列(strcn)を指定し、cn.OpenすればAzure SQL Databaseへアクセスできます。例として、SQL認証を利用する場合は下記のようになります。

'--- Azure SQL Database接続文字列の例 ---
strcn = "Provider=SQLOLEDB.1;" & _
"Data Source=tcp:xxxxx.database.windows.net,1433;" & _
"Initial Catalog=MyAzureDB;" & _
"User ID=MyAzureUser;" & _
"Password=MyAzurePass;" & _
"Persist Security Info=False;"

注意点

  • Azure SQL Databaseは通常、ポート1433で通信するため、社内ファイアウォールの許可設定が必要になる場合があります。
  • サーバー名はAzure側のポータルで取得できる**xxxxx.database.windows.net**の形になります。

3.2 ODBCドライバーのバージョンと注意点

  • ODBCドライバを最新(SQL Server Native Client / Microsoft OLE DB Driver for SQL Serverなど)のバージョンにすることを推奨。
  • 古いドライバではAzure SQL Databaseに対応していない機能があったり、TLS接続の問題が起きる可能性があります。

3.3 SQL認証とAzure Active Directory認証

  • SQL認証: ユーザーIDとパスワードをアプリ側で保持し、接続文字列に含める方式。
  • Azure Active Directory(AAD)認証: AADにログインしたユーザーが、そのままAzure SQL Databaseへのアクセスを行える方式。
    • ドメイン環境を統合し、Windows認証に近い使い勝手でクラウドDBを運用できるメリットがある。
    • 設定にはAzure管理者がAADユーザー作成・ロール付与などを行う必要がある。

4. その他のAzureサービスとの連携例

4.1 Azure Storage(BLOB/ファイル)

業務システムが扱う画像ファイルやドキュメントなどの大量データを、Azure Storage (Blob Storage) に置くことで、データベースを肥大化させずに、安全かつスケーラブルにファイルを保管できます。

  • AccessフォームでBlobのURLを管理し、必要時にダウンロード/アップロードする構成。
  • SAS(Shared Access Signature)を利用して一時的なアクセス権を発行する運用も可能。

4.2 Azure Functionsでバックエンド処理をクラウド化

Accessから実行したいバッチ処理や定型の業務ロジックを、Azure Functionsとして実装し、HTTPトリガーで呼び出すことができます。

  • 処理量が多くなっても自動スケールして対応してくれるメリット。
  • AccessのVBAからWinHttpなどでAzure Functionsにリクエストを投げ、処理結果を受け取る方式が簡単です。

4.3 Power AutomateやLogic Appsとの統合

Power Automate(旧Microsoft Flow)やAzure Logic Appsを使うと、外部サービスとの連携ワークフロー自動化が柔軟に可能になります。

  • 例: Accessでデータを登録 → Power Automateがトリガー検知 → SlackやTeamsに通知 → さらに承認プロセスを実行。
  • SQL ServerコネクタやAzure Blobコネクタを使い、業務フロー全体を自動化できる。

5. 運用のポイント:ネットワーク・セキュリティ・コスト管理

5.1 VPNやExpressRoute、Private Endpointの活用

  • インターネット経由でのアクセスをそのまま使うとセキュリティリスクが増えるため、VPNExpressRouteを使ってオンプレミスとAzureを閉域接続する方法が推奨される場合も多い。
  • Private Endpointを利用して、Azure SQL DatabaseをAzure仮想ネットワーク内のプライベートIPで参照できるようにし、インターネットに直接さらさない設計も可能。

5.2 ログ・モニタリング(Azure Monitor)

  • Azure MonitorLog Analyticsなどで、SQLクエリのパフォーマンスやエラー状況、DTU/vCore使用率を可視化可能。
  • アラート設定しておけば、高負荷時や異常検知時に自動通知を受け取れる。

5.3 コスト最適化(スケーリングプランの見直し)

  • スケールアップ/スケールダウン: 一時的に負荷が上がる時期(決算期など)だけAzure SQL Databaseのプランを上げ、通常時は下げる運用でコストを抑えられる。
  • サーバーレスオプション: 一定期間アイドル状態だとデータベースをスリープさせ、料金を節約できるモードもある(要要件確認)。

6. まとめ

「拡張シナリオ:Azure・クラウド連携」では、オンプレミスのAccess×SQL Server構成に留まらず、以下のような多様なメリットを得られます。

  1. スケーラビリティ: データ量やユーザー数の増大に応じて、Azure SQL Databaseをスケールアップ/ダウンしやすい。
  2. 可用性と災害対策: Azureの地理冗長化やバックアップ機能を利用することで、BC/DR体制を強化。
  3. 保守の省力化: サーバーハードウェア管理やOSパッチ、SQL Serverのパッチ適用が不要になり、システム開発や業務ロジックに集中できる。
  4. クラウドサービスとの統合: Azure Storageでのファイル管理、Azure Functionsでのイベントドリブン処理、Power Automateでのワークフロー自動化など、多彩なサービスと連動できる。

ただし、セキュリティやネットワーク設計、コスト管理をしっかり考慮することが大前提となります。VPNやPrivate Endpointの活用、Azure Active Directory連携などを適切に行いながら、クラウドのメリットを最大限に享受しましょう。

Access×SQL Serverの土台をしっかり押さえつつ、上手にAzure連携を取り入れることで、小規模なスタートから大規模クラウドシステムへの進化が可能となり、長期的に拡張性と信頼性の高い業務システムを構築できます。

本記事が、AccessからAzureやクラウドサービスへの接続を検討している方の一助となれば幸いです。「小さく始めて大きく育てる」というAccessの強みを活かしつつ、クラウドの柔軟性や災害対策を取り入れて、より堅牢でスケーラブルなシステムを目指してください。

DMM
ABOUT ME
管理人
管理人
駆け出しブロガー
入社した会社では、Accessを活用した基幹システムが長年運用されていました。しかし、開発者の高齢化により保守が困難となり、システムの維持・更新が急務に。 ほぼAccessに触れたことのなかった私は、ゼロから学びながら基幹システムを再構築してみることに。ついにはAccessによるシステム開発エンジニアとしてのスキルを身につけるまでに成長。 元々の業務のノウハウとそれを効率化するためのツール(Access)によって業務効率化システムをいくつも開発してきました。 みなさんの”なにか(業務のノウハウ)”とAccessで業務効率化を実現するお役に立てれば幸いです。
googleアドセンス
記事URLをコピーしました