Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure App Service for Containerを使ったセキュアな構成とCI/CD

Azure App Service for Containerを使ったセキュアな構成とCI/CD

Qiita Night ~Azure~ で発表させて頂いた資料です
https://increments.connpass.com/event/279009/

Shingo_Kawahara

April 28, 2023
Tweet

More Decks by Shingo_Kawahara

Other Decks in Technology

Transcript

  1. 自己紹介 • 河原 慎吾 Microsoft MVP for Azure • 株式会社セゾン情報システムズ

    • R&D組織運営 • クラウド/コンテナ担当 • CCoE Lead • 経歴 • VMwareベースの自社クラウド構築/運営 ⇓⇓⇓ • パブリッククラウド活用推進、組織運営 2
  2. 全体構成 6 vNet Japan East SQL Database Container Registry App

    Service for Container (FrontEnd) Private Endpoint Log Analytics Storage Account PrivateLink Subnet (Front) Integration Subnet (Front) Private Endpoint PrivateLink Subnet (Back) Integration Subnet (Back) App Service for Container (BackEnd) Private Endpoint PrivateLink Subnet (DB) Private Endpoint PrivateLink Subnet (ACR) Audit/AppLogなど各種ログ Express Route S2S VPN等 DevOps pull VMSS Self-hosted Subnet pull push アプリケーションビルド デプロイ CI CD CD CI CD
  3. Azure App Service (Web Apps) • インフラストラクチャを管理することなく、任意のプログラミ ング言語で Web アプリケーション、モバイル

    バックエンド、 および RESTful API を構築し、ホストするためのサービスで す • AWSでいうところのElastic Beanstalkにあたります。 • 利用可能な言語は以下 • ASP.NET • ASP.NET Core • Java • Ruby • Node.js • PHP • Python 8
  4. Azure App Service (Web Apps) • App Service for Windows

    • App Service for Linux • App Service for Containers • 任意のカスタムコンテナーをWebアプリケーションとしてデプロイ可能 10
  5. コンテナーレジストリー • コンテナイメージの格納先は3つから選択できます • Azure Container Registry • Docker Hub

    • プライベートレジストリ • Azureメインで利用する場合はAzure Container Registryが選択肢になる ことが多いです(後述するプライベートエンドポイントなどはACR利用が 前提となる) • プライベートエンドポイントを活用する場合は、サービスレベル Premiumの利用が必要です。 12
  6. vNet Integration(仮想ネットワーク統合) • App Serviceから仮想ネットワーク内のリソースにアクセスすることができるようになります 14 vNet App Service for

    Container Private Endpoint Integration Subnet (Front) Private Endpoint PrivateLink Subnet (ACR) Express Route S2S VPN等 pull Container Registry オンプレサーバー Japan East • ExpressRouteやS2S VPNを介して、オンプレのリソースへのアクセスも可能 • 統合したサブネットはvNet Integration専用サブネットになるため、VM等の他のリソー スは配置できない(プライベートエンドポイントサブネットは共用できる)
  7. プライベートエンドポイント • サブネット内にプライベートIPを持たせることで、vNet内やオンプレから直接PaaSにア クセスすることが可能 15 vNet SQL Database Private Endpoint

    PrivateLink Subnet (Back) Private Endpoint Integration Subnet (Back) App Service for Container (BackEnd) Private Endpoint PrivateLink Subnet (DB) Express Route S2S VPN等 10.0.0.5 • PaaSに対してプライベートアクセスさせるためには必須の仕組みです。 • 似た仕組みでサービスエンドポイントというものがあります。
  8. Azure DevOps Services • アプリケーションビルドやコンテナイメージのpush、 App Serviceへのデプロイといった一連の流れをyaml ファイルに記載することでCI/CDを実現することが可 能です。 •

    処理を実行する環境(パイプライン実行エージェン ト)は3種類から選択可能 19 https://azure.microsoft.com/ja-jp/products/devops Node.jsインストール Nuxt.jsインストール ビルド Dockerインストール
  9. パイプライン実行エージェント • Microsoft によってホストされるエージェント • Microsoftによってホストされるエージェントを利用する • 最初から様々なツールがインストールされた状態で利用可能 • vNet内に入れることができないため、閉ざされた環境では利用できないことがある

    • 例)エージェント → ACRへのdocker pushは、ACRがインターネットからのアクセス拒否しているため利用できない • セルフホステッドエージェント • 仮想マシン上にエージェントをインストールして利用する方法 • 自由度が高く一度セットアップすればその状態でずっと利用できる • OSや各種ツールのバージョンアップなど管理が必要なのが欠点 • Azure Virtual Machine Scale Set エージェント • VMSSにエージェントをインストールして利用する方法 • 自動スケーリングが可能なため、使ってないときは0ノードにすることでコスト節約が可能 • 毎回一からのセットアップが必要なため、パイプライン実行に時間がかかるのが欠点 • 例)Dockerが必要な場合は毎回Dockerインストールから必要 20
  10. パイプライン実行エージェント 21 vNet Japan East Container Registry Private Endpoint PrivateLink

    Subnet (ACR) VMSSエージェント Self-hosted Subnet push セルフホステッド エージェント push Microsoft エージェント IP制限により アクセス不可 • 各エージェント利用時のイメージ図です。要件に応じて選択します。
  11. 全体構成 23 vNet Japan East SQL Database Container Registry App

    Service for Container (FrontEnd) Private Endpoint Log Analytics Storage Account PrivateLink Subnet (Front) Integration Subnet (Front) Private Endpoint PrivateLink Subnet (Back) Integration Subnet (Back) App Service for Container (BackEnd) Private Endpoint PrivateLink Subnet (DB) Private Endpoint PrivateLink Subnet (ACR) Audit/AppLogなど各種ログ Express Route S2S VPN等 DevOps pull VMSS Self-hosted Subnet pull push アプリケーションビルド デプロイ CI CD CD CI CD
  12. Azure Open AI Service • 今回のセキュアネットワーク構成は、Azure Open AI Serviceにおいても利用可能です。 •

    プライベートエンドポイントはリージョンを跨ぐことができるため、東日本リージョンvNet から米国東部リージョンのOpen AI Serviceにセキュアに接続する構成が可能になります。 • 当社ではこの構成で全社員向けに環境を公開しています。 26 vNet Japan East Private Endpoint PrivateLink Subnet Integration Subnet (Front) App Service for Container Azure Open AI Service Web Socket ※米国東部リージョン