Successfully reported this slideshow.

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

1

Share

1 of 32
1 of 32

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

1

Share

Download to read offline

Microsoft Build 2022のセッションでのスライドです。
オフィシャルで公開されているAzureリファレンスアーキテクチャをベースに、実プロジェクトの要件にあわせてそれを拡張したお話をさせていただきました。

Microsoft Build 2022のセッションでのスライドです。
オフィシャルで公開されているAzureリファレンスアーキテクチャをベースに、実プロジェクトの要件にあわせてそれを拡張したお話をさせていただきました。

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

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

  1. 1. 現場からみた Azure リファレンスアーキテクチャ 答え合わせ Kuniteru Asami Masahito Morishima Yoshimasa Katakura Yui Ashikaga Session Code : JPCTT09
  2. 2. 登壇者紹介 浅見 城輝 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
  3. 3. セッション概要  Azureでシステムを構築する場面において、Azure Architecture Centerで提供されているリファレンスアーキテクチャはとても参考 になります。しかしプロジェクトにおける様々な要件により、リ ファレンス通りにはできないこともあります。  そこで本セッションでは、Webアプリケーションを対象としたリ ファレンスアーキテクチャを題材に、Azureスペシャリストが数多 のプロジェクトで経験してきた考慮点とそれに対する解決案や、皆 さんが遭遇した課題についてお話ししましょう。
  4. 4. Azure Architecture Center とは?
  5. 5. https://docs.microsoft.com/ja-jp/azure/architecture/reference-architectures/app-service-web-app/basic-web-app
  6. 6. このアーキテクチャの特長  PaaSのみで構成されたWebアプリケーションアーキテクチャ  フルマネージドなのでOSの管理などは必要ない(作りたいものに注力できる)  PaaSで構成されているためスケールが容易
  7. 7. 現場からみた課題
  8. 8. 現場で言われること  通信のプライベート化  Webサーバーからバックエンドサービス(Key VaultやSQL DBなど)へは内部通信を制限したい  アウトバウンド通信の制限  Webサーバーから外に出ていく通信を制限したい、送信元IPアドレスも固定化したい  Azureリソースへのアクセス制御  いろいろなリソースへのアクセスに使う資格情報の管理から開放されたい  その他にも  マルチリージョン構成にするにはどうしたらいいか  リトライ処理がなぜ必要なのか  特定サービスの監視がしたいが、どのメトリックをみればいいのか  などなど…
  9. 9. 通信のプライベート化
  10. 10. 通信のプライベート化
  11. 11. とある現場における通信のプライベート化の要件  Azureで利用しているPaaS(Key VaultやSQL DB)はインターネット からアクセスさせたくない  各PaaSのFirewall設定を細かく制御するのは大変  Webアプリケーションのログには秘 匿情報が含まれているため プライベートネットワークを経由し て保存したい  オンプレミスからも安全にPaaSを利 用したい (インターネット経由させたくない)  ExpressRouteのMicrosoftピアリングではなく
  12. 12. 選択肢 Service Endpoint 特定の仮想ネットワークサブネットか らのみ、PaaSへのアクセスを許可する Private Endpoint 個々のPaaSが仮想ネットワーク内に専 用のプライベートIPアドレスを持つ Subnet Service Endpoint Subnet Virtual Machine Subnet Private Endpoint Subnet Virtual Machine Virtual Machine
  13. 13. 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
  14. 14. 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
  15. 15. プライベート接続を行わない場合のその他考慮事項  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経由でにすることで、この制限を回避することができる。
  16. 16. Azureリソースへの アクセス制御
  17. 17. Azureリソースへのアクセス制御
  18. 18. 現場での課題  パスワードはどこに保存したらよいですか?  Key Vault ってどうやって使ったらよいですか?  アプリケーション構成設定ファイル (Web.config など) にパスワー ドが記述されている  権限の管理が正しくされていない 我々の視点
  19. 19. 現場ではこうしました その1  アプリの構成ファイルからWeb App の構成へ  サブスクリプションにアクセスで きる人しか参照できない  サブスクリプションにアクセスで きれば見られてしまう  権限の管理まではできていない アプリ Web.config ApplicationSettings.json
  20. 20. 現場ではこうしましたその2  マネージドIDを有効にしパスワードを無くす  Web App の マネージドIDを利用することによって、パスワードな しでリソースにアクセスできる  Storageに読み取り権限を付与する  SQL Database の ユーザーの連携する  Key Vault リファレンスを使う 1. マネージドID 2. アクセス権付与(RBAC) 3. アクセス SP
  21. 21. Build 2022 サービスコネクターがGAしました  説明したような設定を簡略化できる 設定 ✓ 接続先(BLOB/Cosmos/SQL..) ✓ 接続名 ✓ 接続先の情報 ✓ クイライアントタイプ(.NET/Java) 認証 ✓ システムマネージドID ✓ ユーザーマネージドID ✓ 接続文字列(KVに格納するか) ✓ サービスプリンシパル 設定した結果
  22. 22. アウトバウンド通信 の制限
  23. 23. アウトバウンド通信の制限 外部サービス Internet
  24. 24. とある現場におけるアウトバウンド通信の要件  決まった 1 つの IP アドレスから だけ送出したい  Azure App Service などから SaaS など 外部のサービスを利用する場合に、 外部サービス側では特定の IP アドレスからのみ アクセスを受け入れるため  App Service からアクセスできる サイトを URL で制限したい  App Service の送信 IP アドレス  いくつかの所定の IP アドレスから送信される  IP アドレスを 1 つに固定するための 選択肢  VNet NAT 経由での送信  Azure Firewall 経由での送信
  25. 25. 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
  26. 26. 現場ではこうしました 外部サービス Internet Subnet Public IP Virtual Network Firewall
  27. 27. まとめ
  28. 28. まとめ  現場ではこうしました  通信のプライベート化:Private Endpoint で内部通信を明示的に (ER経由の接続もOK)  アウトバウンド制御:Azure Firewall で通信内容含め細かく制御  Azureリソースへのアクセス制御:Managed Identities を活用  今回紹介しきれなかったトピック  開発環境の準備について  Infrastructure as Code (環境の自動化)  DevOps  まだまだ語りたいアーキテクチャはたくさん  IaaS中心の構成とか、IoTとか
  29. 29. 今回紹介した要素が含まれているリファレンスアーキテクチャ 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
  30. 30. 株式会社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

×