はじめに
- 自社ではAzureのPaaSサービスを活用したWebシステム開発に向けての実装スキルを目指しています。
- その取り組みの一環で仮想のWebシステム開発を題材とした取り組みを行っています。
- 今回はその仮想のWebシステム開発案件におけるAzure基盤の設計について整理をおこないました。
AzureのPaaSを活用するメリット
- 一般的なPaaSを活用するメリットとなりますが、インフラ部分の管理・運用についてサービス提供者側(Azureの場合はマイクロソフト社)に任せることができます。
- マイクロソフト社からは様々なPaaSサービスが提供されているため、組み合わせることでサービスの実行基盤を整えることができます。(開発期間の短縮等に繋がっていく)
- 現在の自チーム内のメンバー全員がインフラの知識を有していません。AzureのPaaSサービスを活用することでインフラスキルの敷居を下げることが可能となると考えます。
設計時に参考にした情報
マイクロソフト社やIPAから各種参考となる情報が公開されていますので、そちらの内容等を参考に今回のアーキテクトや非機能要件を検討しました。
Microsoft Azure Well-Architected Framework
Azureアーキテクチャーセンター
- マイクロソフト社からはAzureでのアプリケーションを構築するためのベストプラクティスとパターンとして「Azureアーキテクチャセンター」で情報が提供されています。
- 今回は下記のような要件を想定してアーキテクトを検討しました。
- WebAppsやAzure SQLDatabase、Azure Cache for Redisなどの各PaaS系サービスの利用を想定
- 一旦は冗長構成での構成はおこなわない(構築後に冗長構成へ変更する可能性はあり)
- 各サービスの監視やログの取得等はセキュリティ担保・運用に必要な機能は実装をする
IPAの非機能要求グレード
- 非機能要件を検討するにあたっては、IPAから公開されている「非機能要求グレード」を参考にしました。
- 「非機能要求グレード」自体はオンプレでの構成も想定した一覧になりますが、Azureでの構築時に必要となる部分のみを抜き出しました。この辺りは考え方にもよりますが、足らないところを足すより、間引く方が漏れなく作れると思います。
システムアーキテクト図
補足
-
ベストプラクティス(実案件)では、ユーザーからのアクセスはApplicationGatewayを経由させるべきですが、今回の仮想のWeb開発プロジェクトとしては直接WebAppsへアクセスする形を取りました。
-
Azure SQL Database、Azure Cache for Redis、BlobstorageなどはPrivateLinkやVNET統合などを使って、インターネットからアクセスできないように制限を掛けています。
所感
-
AzureのPaaSサービスを活用した構成の場合、利用するリソースが多くなるため、最初のとっつきにくさはありますが、一つ一つの機能や役割を理解していくことで、よりイメージがつくようになるかと思いました。
-
ネットワークやセキュリティ回りの知識がまだ不足していると実感したので、その辺りは引き続き勉強を続けていきたいと思います。
-
非機能要件周りではAzure SQL DatabaseやWebAppsなどは自動でのバックアップ機能などを有しており、その辺りはPaaSサービスにお任せできるのは運用面でも楽だなと思いました。