SlideShare a Scribd company logo
1 of 32
Download to read offline
現場からみた Azure リファレンスアーキテクチャ
答え合わせ
Kuniteru Asami
Masahito Morishima
Yoshimasa Katakura
Yui Ashikaga
Session Code : JPCTT09
登壇者紹介
浅見 城輝
Kuniteru Asami
株式会社 pnop
Microsoft MVP for Azure
森島 政人
Masahito Morishima
株式会社 pnop
Microsoft MVP for Azure
片倉 義昌
Yoshimasa Katakura
株式会社 pnop
Microsoft MVP for Azure
足利 惟
Yui Ashikaga
株式会社 pnop
Microsoft MVP for Azure
セッション概要
 Azureでシステムを構築する場面において、Azure Architecture
Centerで提供されているリファレンスアーキテクチャはとても参考
になります。しかしプロジェクトにおける様々な要件により、リ
ファレンス通りにはできないこともあります。
 そこで本セッションでは、Webアプリケーションを対象としたリ
ファレンスアーキテクチャを題材に、Azureスペシャリストが数多
のプロジェクトで経験してきた考慮点とそれに対する解決案や、皆
さんが遭遇した課題についてお話ししましょう。
Azure Architecture
Center とは?
https://docs.microsoft.com/ja-jp/azure/architecture/reference-architectures/app-service-web-app/basic-web-app
このアーキテクチャの特長
 PaaSのみで構成されたWebアプリケーションアーキテクチャ
 フルマネージドなのでOSの管理などは必要ない(作りたいものに注力できる)
 PaaSで構成されているためスケールが容易
現場からみた課題
現場で言われること
 通信のプライベート化
 Webサーバーからバックエンドサービス(Key VaultやSQL DBなど)へは内部通信を制限したい
 アウトバウンド通信の制限
 Webサーバーから外に出ていく通信を制限したい、送信元IPアドレスも固定化したい
 Azureリソースへのアクセス制御
 いろいろなリソースへのアクセスに使う資格情報の管理から開放されたい
 その他にも
 マルチリージョン構成にするにはどうしたらいいか
 リトライ処理がなぜ必要なのか
 特定サービスの監視がしたいが、どのメトリックをみればいいのか
 などなど…
通信のプライベート化
通信のプライベート化
とある現場における通信のプライベート化の要件
 Azureで利用しているPaaS(Key
VaultやSQL DB)はインターネット
からアクセスさせたくない
 各PaaSのFirewall設定を細かく制御するのは大変
 Webアプリケーションのログには秘
匿情報が含まれているため
プライベートネットワークを経由し
て保存したい
 オンプレミスからも安全にPaaSを利
用したい
(インターネット経由させたくない)
 ExpressRouteのMicrosoftピアリングではなく
選択肢
Service Endpoint
特定の仮想ネットワークサブネットか
らのみ、PaaSへのアクセスを許可する
Private Endpoint
個々のPaaSが仮想ネットワーク内に専
用のプライベートIPアドレスを持つ
Subnet
Service
Endpoint
Subnet
Virtual
Machine
Subnet
Private
Endpoint
Subnet
Virtual
Machine
Virtual
Machine
App Service(Web App)のVNET統合
Web AppをVirtual Networkに統合することで、VNET内の他リソースにプライ
ベートIPアドレスでアクセスが行える
(2022年4月からはBasic SKUでも利用可能!)
Subnet
Subnet
Virtual Network
VNET統合
App Service
web app
App Service Plan
Virtual
Machine
Subnet
現場ではこうしました
Internet
Azure Active
Directory
Azure DNS
Private Endpoint
Subnet
Virtual Network
VNET統合
App Service
web app
App Service Plan
Azure Key Vault
Logical server
Database Database
Azure Private DNS
(privatelink.database.windows.net
privatelink.vaultcore.azure.net
privatelink.monitor.azure.com
etc..)
Azure Monitor
Private Link Scope
Azure Monitor
Log Analytics
Metric data
Audit and
Diagnostic logs
Metric data
Audit and
Diagnostic logs
VNETリンク
プライベート
リンク
Application
Insights
on-premises
GatewaySubnet
Metric data
Audit and
Diagnostic logs
プライベート接続を行わない場合のその他考慮事項
 SNATポートの枯渇
 Azure PaaSや、インターネット外部へのアクセスは全てAzureプラットフォーム側のLoad
Balancerを経由する
 その際にAzureが管理しているPublic IP Addressを使用するが、同時接続が行えるSNATポー
ト数に制限がある
 App Serviceの場合は1インスタンスあたり最低128ポートが用意されており、それを超えた
場合にPaaSや外部サービスに接続できなくなる場合がある
Azure SQL DatabaseやAzure StorageなどのAzure PaaSに対してApp Serviceから多くの接続が
ある場合に、Load BalancerのSNATポートが枯渇して接続の不具合が発生してしまうことが
しばしばあるが、App ServiceからAzure PaaS へのアクセスをService Endpointあるいは
Private Endpoint経由でにすることで、この制限を回避することができる。
Azureリソースへの
アクセス制御
Azureリソースへのアクセス制御
現場での課題
 パスワードはどこに保存したらよいですか?
 Key Vault ってどうやって使ったらよいですか?
 アプリケーション構成設定ファイル (Web.config など) にパスワー
ドが記述されている
 権限の管理が正しくされていない
我々の視点
現場ではこうしました その1
 アプリの構成ファイルからWeb
App の構成へ
 サブスクリプションにアクセスで
きる人しか参照できない
 サブスクリプションにアクセスで
きれば見られてしまう
 権限の管理まではできていない
アプリ
Web.config
ApplicationSettings.json
現場ではこうしましたその2
 マネージドIDを有効にしパスワードを無くす
 Web App の マネージドIDを利用することによって、パスワードな
しでリソースにアクセスできる
 Storageに読み取り権限を付与する
 SQL Database の ユーザーの連携する
 Key Vault リファレンスを使う
1. マネージドID
2. アクセス権付与(RBAC)
3. アクセス
SP
Build 2022 サービスコネクターがGAしました
 説明したような設定を簡略化できる
設定
✓ 接続先(BLOB/Cosmos/SQL..)
✓ 接続名
✓ 接続先の情報
✓ クイライアントタイプ(.NET/Java)
認証
✓ システムマネージドID
✓ ユーザーマネージドID
✓ 接続文字列(KVに格納するか)
✓ サービスプリンシパル
設定した結果
アウトバウンド通信
の制限
アウトバウンド通信の制限
外部サービス
Internet
とある現場におけるアウトバウンド通信の要件
 決まった 1 つの IP アドレスから
だけ送出したい
 Azure App Service などから SaaS など
外部のサービスを利用する場合に、
外部サービス側では特定の IP アドレスからのみ
アクセスを受け入れるため
 App Service からアクセスできる
サイトを URL で制限したい
 App Service の送信 IP アドレス
 いくつかの所定の IP アドレスから送信される
 IP アドレスを 1 つに固定するための
選択肢
 VNet NAT 経由での送信
 Azure Firewall 経由での送信
Subnet
Public IP IP Prefix
Virtual Network
Firewall
選択肢
VNet NAT
インターネットへの送信 IP を
1 つまたは所定の複数に固定できる
Azure Firewall
ネットワーク間通信のフィルタリング
や SNAT 機能などを有する
Subnet
Public IP IP Prefix
NAT
Virtual Network
O microsoft.com
O google.com
X DANGER.com
現場ではこうしました
外部サービス
Internet
Subnet
Public IP
Virtual Network
Firewall
まとめ
まとめ
 現場ではこうしました
 通信のプライベート化:Private Endpoint で内部通信を明示的に (ER経由の接続もOK)
 アウトバウンド制御:Azure Firewall で通信内容含め細かく制御
 Azureリソースへのアクセス制御:Managed Identities を活用
 今回紹介しきれなかったトピック
 開発環境の準備について
 Infrastructure as Code (環境の自動化)
 DevOps
 まだまだ語りたいアーキテクチャはたくさん
 IaaS中心の構成とか、IoTとか
今回紹介した要素が含まれているリファレンスアーキテクチャ
Azure SQL Database への
Web アプリのプライベート接続
https://docs.microsoft.com/ja-jp/azure/architecture/example-
scenario/private-web-app/private-web-app
PaaS データストアへのプライベート接続を使用した
ネットワーク強化 Web アプリケーション
https://docs.microsoft.com/ja-jp/azure/architecture/example-
scenario/security/hardened-web-app
株式会社pnop
株式会社pnopはMicrosoft Azureに関する課題解決のプロフェッショナル集団です。
皆様のプロジェクトに、 Azure経験豊富なエンジニアがノウハウを提供いたします。
Azure
アーキテクチャ
設計相談
Azure
運用設計
相談
Azure開発
Azure
環境構築
Azure
トラブル
シューティング
Azure
トレーニング
新規システムを
Azureで稼働させしたい
既存システムを
Azureに移行したい
パッケージ・ソリューション
をAzureに対応したい
Azureを利用することで
システムコストを下げたい
Azureで安全・安心な
システムを提供したい
Azureを利用することで
運用担当者の負担を軽減し
たい
Azureを利用しているうえで
困っていることを解決した
い
Azureのスキルを向上したい
Azureに関するご相談・お問い合わせ:sales@pnop.co.jp
https://www.pnop.co.jp

More Related Content

What's hot

What's hot (20)

マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
Azure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロAzure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロ
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
 
Google Cloud で実践する SRE
Google Cloud で実践する SRE  Google Cloud で実践する SRE
Google Cloud で実践する SRE
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだ
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
App013 ここはあえて紙と
App013 ここはあえて紙とApp013 ここはあえて紙と
App013 ここはあえて紙と
 
Effective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターンEffective Data Lakes - ユースケースとデザインパターン
Effective Data Lakes - ユースケースとデザインパターン
 

Similar to 現場からみた Azure リファレンスアーキテクチャ答え合わせ

サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
Yuta Matsumura
 

Similar to 現場からみた Azure リファレンスアーキテクチャ答え合わせ (20)

Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
Microsoft MVP/Regional Director x Microsoft Japan Digital Days #MSDD2021
 
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsMicrosoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
 
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
 
ドミノピザおよびJet.comの事例 から学ぶストレスフリーな 顧客体験の作り方
ドミノピザおよびJet.comの事例から学ぶストレスフリーな顧客体験の作り方ドミノピザおよびJet.comの事例から学ぶストレスフリーな顧客体験の作り方
ドミノピザおよびJet.comの事例 から学ぶストレスフリーな 顧客体験の作り方
 
20200822 azuread gav
20200822 azuread gav20200822 azuread gav
20200822 azuread gav
 
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure 活用方法
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure活用方法一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure活用方法
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure 活用方法
 
Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介
 
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsMicrosoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
 
Tech summitの歩き方 azure編
Tech summitの歩き方 azure編Tech summitの歩き方 azure編
Tech summitの歩き方 azure編
 
[Japan Tech summit 2017] CLD 021
[Japan Tech summit 2017]  CLD 021[Japan Tech summit 2017]  CLD 021
[Japan Tech summit 2017] CLD 021
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
 
はじめての Azure 開発
はじめての Azure 開発はじめての Azure 開発
はじめての Azure 開発
 
もっとサーバーレスを手軽に便利に!Azure Logic Apps
もっとサーバーレスを手軽に便利に!Azure Logic Appsもっとサーバーレスを手軽に便利に!Azure Logic Apps
もっとサーバーレスを手軽に便利に!Azure Logic Apps
 
Azure Hybridの中核! 進化を続けるAzure Arcの今をまとめてお届け!
Azure Hybridの中核! 進化を続けるAzure Arcの今をまとめてお届け!Azure Hybridの中核! 進化を続けるAzure Arcの今をまとめてお届け!
Azure Hybridの中核! 進化を続けるAzure Arcの今をまとめてお届け!
 
Azure Fundamental
Azure FundamentalAzure Fundamental
Azure Fundamental
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
 
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
 
俺とHashiCorp
俺とHashiCorp俺とHashiCorp
俺とHashiCorp
 
安く・速く・安定したウェブを作る方法
安く・速く・安定したウェブを作る方法安く・速く・安定したウェブを作る方法
安く・速く・安定したウェブを作る方法
 

More from Kuniteru Asami

インストールマニアックス振り返り
インストールマニアックス振り返りインストールマニアックス振り返り
インストールマニアックス振り返り
Kuniteru Asami
 

More from Kuniteru Asami (16)

スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQLスケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
 
Understanding Azure Application Gateway
Understanding Azure Application GatewayUnderstanding Azure Application Gateway
Understanding Azure Application Gateway
 
Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual network
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
 
Introduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQLIntroduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQL
 
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
 
クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年
 
AzureでOracle
AzureでOracleAzureでOracle
AzureでOracle
 
SMTPサービス SendGridを契約する
SMTPサービス SendGridを契約するSMTPサービス SendGridを契約する
SMTPサービス SendGridを契約する
 
インストールマニアックス振り返り
インストールマニアックス振り返りインストールマニアックス振り返り
インストールマニアックス振り返り
 
PHP on Azure
PHP on AzurePHP on Azure
PHP on Azure
 
第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル
 

現場からみた Azure リファレンスアーキテクチャ答え合わせ