$30 off During Our Annual Pro Sale. View Details »

第3回 PackerでAzureにおける イメージコンプライアンスを実現する / HCP Packer + GitHub Actions on Azure

第3回 PackerでAzureにおける イメージコンプライアンスを実現する / HCP Packer + GitHub Actions on Azure

HashiCorpとMicrosoft Azureのセキュリティ シリーズとして Packer について話をしました。

第3回:PackerでAzureにおけるイメージコンプライアンスを実現する

HashiCorpとMicrosoft Azureのセキュリティ シリーズの第1回と第2回では、安全なリソースの構築と利用方法についてお話しました。第3回では、Azureのイメージコンプライアンスを満たすために、Packerのワークフローを使用して、環境のコンプライアンスを維持する方法を紹介します。

https://www.hashicorp.com/events/webinars/azure-security-webinar-series-3-meeting-image-compliance-on-your-azure-fleet-jp

Kodai Sakabe

November 08, 2023
Tweet

More Decks by Kodai Sakabe

Other Decks in Technology

Transcript

  1. Nov 8th, 2023
    12:00 – 12:25
    第3回
    PackerでAzureにおける
    イメージコンプライアンスを
    実現する
    日本マイクロソフト株式会社
    パートナー事業本部
    パートナー技術統括本部
    AI & Azure アーキテクト本部
    坂部 広大
    2023/11/08 12:00 – 12:25
    https://www.hashicorp.com/events/webinars/azure-security-webinar-series-3-meeting-image-compliance-on-your-azure-fleet-jp

    View Slide

  2. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    本資料の位置づけ
    構成に関しては、実際のシステム動作に関して、保証をするものではありません。
    予めご了承ください。
    仮想マシンを中心にクラウド活用始めた方向け
    クラウドを活用した自動化・コード化によるメリットを知る
    話さないこと
    PaaS の紹介(これまで VM を手作業でセットアップした範囲を中心に紹介)
    継続的インテグレーション/継続的デリバリー(次のセッション)

    View Slide

  3. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Packer x Azure Packer
    ソフトウェアデリバリーの重要性
    Immutable Infrastructure
    Golden Image
    IaaS on Azure

    View Slide

  4. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Packer

    View Slide

  5. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Packer
    複数のプラットフォームにマシンイメージを作成するツール
    マシンイメージの形式はプラットフォームごとに出力可能
    ※HCP Packer は hashicorp 社提供のマネージド・サービス
    Chef や Puppet や Ansible のような構成管理を置き換えるものではなく、
    ツールを一緒に活用してイメージを作成
    https://developer.hashicorp.com/packer

    View Slide

  6. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Install Packer
    # MacOS
    $ brew tap hashicorp/tap
    $ brew install hashicorp/tap/packer
    https://developer.hashicorp.com/packer/tutorials/d
    ocker-get-started/get-started-install-cli

    View Slide

  7. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Build an image
    # see
    https://developer.hashicorp.com/packer/tutorial
    s/docker-get-started/docker-get-started-build-
    image
    $ mkdir packer_tutorial
    $ cd packer_tutorial
    $ touch docker-ubuntu.pkr.hcl # write some
    code
    $ packer init .# Initialize Packer configuration
    $ packer fmt . # Format your Packer template
    $ packer validate . # validate your Packer
    template
    $ packer build docker-ubuntu.pkr.hcl
    https://github.com/koudaiii/packer_tutorial/issues?q=label%3Atutorial+is%3Aclosed

    View Slide

  8. Nov 8th, 2023
    12:00 – 12:25
    https://developer.hashicorp.com/
    packer/guides/hcl
    Packer template
    structure

    View Slide

  9. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    HCP Packer + GitHub Actions on Azure
    https://github.com/koudaiii/packer_tutorial
    1. ローカル環境で確認、git push
    2. GitHub Actions が push をトリガー
    に Packer セットアップし、 packer
    build
    3. packer build を行うに当たり、 base
    イメージとなる VM を立ち上げ
    build 開始
    4. Build 完了後、 image 化、 metadata
    作成。
    5. HCP Packer へ metadata を push
    (詳細は、 .github/workflows)

    View Slide

  10. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    VM
    Subscription
    任意リソースグループにゴールデンイメージをデプロイ
    Resource Group
    subnet
    Vnet
    仮想ネットワーク
    NSG
    ネットワークセキュリティグループ
    https://github.com/koudaiii/packer_tutorial
    az vm create \
    --resource-group $az_resource_group \
    --name $az_vm_name \
    --image $az_vm_image\
    --admin-username azureuser \
    --location $az_region \
    --size $az_vm_size \
    --generate-ssh-keys

    View Slide

  11. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    ソフトウェアデリバリーの重要性

    View Slide

  12. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    State of DevOps Report https://dora.dev/
    2014年から DevOps の業界動向に関する年次調査レポー
    ト(最新では Platform Engineering や SRE 含む)
    ソフトウェアデリバリーのパフォーマンス
    スループットを測定
    安定性
    運用パフォーマンス
    信頼性
    組織パフォーマンス
    収益性、市場占有率、生産性目標をどの程度達成
    継続的な改善の必要性を認識しているチームは、
    そうでないチームよりも高い
    高いソフトウェアデリバリーパフォーマンスは、運用
    パフォーマンスも高い場合のみ、組織パフォーマン
    スに良い影響を与える
    ユーザーが持つ信頼性の期待度にサービスが届か
    ない場合は、迅速なデリバリーが意味を成さない
    ことがある => 非対称情報による期待値齟齬

    View Slide

  13. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    2021 年 2022 年(Elite performers 削除)
    https://cloud.google.com/devops/state-of-devops
    ソフトウェアデリバリーのパフォーマンス比較
    https://dora.dev/publications/pdf/state-of-devops-2021.pdf

    View Slide

  14. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Immutable Infrastructure

    View Slide

  15. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    インフラコード化からImmutable Infrastructure 発展
    Blue-green Deployment のフロー
    1. 新アプリ(green)を必要な数だけ用意
    2. 新アプリ(green)にデプロイ
    3. ルーティング(web)切替(+α スキーマ変更)
    4. 経過観察後に旧アプリ(blue)削除
    1993
    CFengine https://cfengine.com/
    2005
    Puppet https://www.puppet.com/
    2009
    Chef https://www.chef.io/
    10 deploys per day Dev & ops cooperation at
    Flickr
    https://www.oreilly.com/library/view/devops-in-
    practice/9781491902998/video169253.html
    2010
    BlueGreenDeployment
    https://martinfowler.com/bliki/BlueGreenDeployment.html
    https://www.publickey1.jp/blog/14/blue-
    green_deployment.html
    Immutable Infrastrucure(変更不可能なインフラ)
    Mutable Infrastructure(変更可能なインフラ)

    View Slide

  16. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    10 deploys per day Dev & ops cooperation at Flickr 2009
    1. Automated infrastructure
    2. Shared version control
    3. One step build and deploy
    4. Feature flags
    5. Shared metrics
    6. IRC and IM robots
    1. Respect
    2. Trust
    3. Healthy attitude about
    failure
    4. Avoiding Blame
    https://www.oreilly.com/library/view/devops-in-practice/9781491902998/video169253.html

    View Slide

  17. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    インフラコード化からImmutable Infrastructure 発展
    2012
    Ansible https://www.ansible.com/
    Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS
    re:Invent 2012 基調講演
    https://www.publickey1.jp/blog/12/amazon11000_aws_reinventday2_am.html
    2013
    ImmutableServer https://martinfowler.com/bliki/ImmutableServer.html
    Trash Your Severs and Burn Your Code: Immutable Infrastructure and Disposable Components
    http://chadfowler.com/blog/2013/06/23/immutable-deployments/
    https://www.publickey1.jp/blog/14/immutable_infrastructure.html
    Packer https://github.com/hashicorp/packer/releases/tag/v0.1.0
    Ops 側でも TDD や DDD などの考えが浸透し誰でも実践しやすくなった

    View Slide

  18. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Immutable Infrastructure
    目的
    サーバー状態の複雑さの増加を防ぎ、コントロール、運用
    コストを下げる
    アプリケーションのテストやデプロイのプロセスをシンプルにし
    、いつでもデプロイ可能かつ不具合が発生した際のロール
    バックできるようにすることで開発効率を向上させる
    構成
    不変なサーバ(Immutable Sever)。設定後は何も変え
    ない手作業運用は行わない)
    OS 設定やアプリケーションまで細かくビルド
    いつでも差替可能なデプロイメント
    条件
    API でインフラ操作
    サーバクラスタを扱うツール
    可視化・監視ツール
    サーバーの配布
    ローカル、テスト、ステージ、プロダクションの環境差異
    ロードバランサ・プロキシーのリモート操作
    GitHub や配布するためのツールの充実
    ゴールデンイメージ
    仮想化技術の容易さ
    プロビジョニング/コンフィグツールの進化
    開発プロセス(Git, Test, Pull Request, 差分がない環境)

    View Slide

  19. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Golden Image

    View Slide

  20. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Golden Image
    ゴールデンイメージ
     開発者がその上にアプリケーションを構築できる仮想マシンのイメージ
     開発者はシステムの依存関係やパッチではなくアプリケーション自体に集中できる
     一般的なゴールデンイメージ
     共通のシステム
     ロギング
     監視ツール
     最新のセキュリティ パッチ
     アプリケーションの依存関係
    https://developer.hashicorp.com/packer/tutorials/cloud-production/golden-image-with-hcp-packer?product_intent=packer

    View Slide

  21. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Golden Image を支える習慣 = トイルをなくす
    アンチフラジャイル(ストレスを受けたときに強化されるシステム)
    属人化から見える化
    手順書から実行できるコード
    SSH/RDP/Console 作業の削減
    運用ローテーション
    ポストモーテム(アドホックな作業の振り返り)
    latestといった一意にならないものを排除
    人のチェックを機械(クラウドやツール)に任せる
    共通の設定と関心ごとの共有とトレードオフ
    ログ、メトリクス、セキュリティ etc
    ミドルウェア
    スペック
    デプロイ(イメージ単位 or 二段階ビルド)
    ログ、トレース、メトリクス
    デバッグ、キャパシティ(scale up or. Scale out)
    => MTTR の短縮、共通化、暗黙知の削減

    View Slide

  22. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Packer の範囲外としてステートフルな DB や File
    のようなデータストアはマネージド・サービスの活用。
    バックアップ、リストア含めてマネージド側で管理。
    GitHub Actions 経由で HCP Packer ビルドす
    る。 git の commit ハッシュ値を image の tag に
    入れることでロールバックやテスト用でも利用。
    a
    b
    サブスクリプション
    Availability Zone 1
    VNet
    Availability Zone 2
    Azure Backup
    Blob
    Storage
    Snapshot
    Image
    Azure SQL Database
    Application Gateway Standard_v2
    a
    c
    考慮事項
    b
    Resource Manager
    DB
    snapshot
    ロードバランサーといったネットワークについては、 マ
    ネージドを活用。 TLS 終端等で利用。 blue-
    green deployment の場合にセッションの切替た
    めに nginx 利用。 Rolling Deploy でシンプルに
    構成する場合不要。または DNS 切替も可能。
    c
    DNS
    b
    e
    Azure SQL Database ゾーン冗長。バックアップ、
    リストア等もマネージド・サービス側で管理
    e
    f Rolling deploy の場合、 Virtual Machine
    Scale Set の機能で可能。接続ドメインの設定で
    安全にセッションの着替えができる。図は blue-
    green deployment の場合は、新旧混在を防ぐ
    f
    監視を Azure Monitor や Log Analytics への検
    討。セキュリティ対策のための Microsoft
    Defender for Cloud やコンプライアンス違反の検
    出、運用における自動化を行う。 Key Vault には
    証明書等の秘匿情報のための管理。 Managed
    ID は、 VM からインフラを操作時に褐葉する。
    g
    g
    Storage Account
    静的ファイルやコンテンツ置き場として blob または
    azure file などを活用
    h
    h
    Log Analytics
    Key Vault
    Managed ID
    Azure Monitor
    Automation(WSUS)
    blue
    green
    Defender
    (ウィルス対策)
    Standard Load balancer
    Virtual Machine Scale Set
    (nginx 4-6台) Packer
    Developer
    Virtual Machine Scale Set
    (web-green 4-6台)
    Virtual Machine Scale Set
    (web-bule 4-6台)
    Standard Load balancer
    2
    1
    1
    2
    3
    3
    4
    4
    5 5
    6
    6
    7
    7

    View Slide

  23. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    マネージド・サービスの裏側(Availability Zone 冗長構成)

    View Slide

  24. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    IaaS アプリの高可用性とディザスター リカバリーのシナリオ
    https://learn.microsoft.com/ja-jp/azure/architecture/example-scenario/infrastructure/iaas-high-availability-disaster-recovery

    View Slide

  25. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Azure における IaaS ワークロードのセキュリティに関するベスト
    プラクティス
    認証とアクセス制御 (Azure ポリシー, Azure RBAC, Azure Resource Manager)
    可用性を高めるために複数の VM (可用性セット, ゾーン)
    マルウェア対策 (Microsoft Antimalware, Microsoft Defender for Cloud)
    VM の更新管理 (Update Management)
    VM のセキュリティ体制の維持 (Microsoft Defender for Cloud, Azure Monitor ログ)
    VM パフォーマンスの監視 (Azure Monitor, Microsoft Azure Diagnostics 拡張機能, Azure Resource Manager テン
    プレート)
    仮想ハード ディスク ファイルを暗号化する (Linux VM に対する Azure Disk Encryption, Windows VM 用の Azure
    Disk Encryption, Key Vault)
    インターネットへの直接接続を制限する (Just-In-Time (JIT) VM アクセス)
    https://learn.microsoft.com/ja-jp/azure/security/fundamentals/iaas
    https://learn.microsoft.com/ja-jp/security/zero-trust/azure-infrastructure-virtual-machines
    https://learn.microsoft.com/ja-jp/azure/security/fundamentals/network-best-practices

    View Slide

  26. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Azure Monitor / Azure Resource Graph
    Azure Virtual Machines 用の Azure Resource Graph サンプル クエリ
    https://learn.microsoft.com/ja-jp/azure/virtual-machines/resource-graph-samples?tabs=azure-cli

    View Slide

  27. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Microsoft Defender for Cloud

    View Slide

  28. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    Why Blue-green Deployment using Nginx?
    https://jpaztech.github.io/blog/network/appgw-
    configchange/#%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4%E3%81%AE%E5%BD%B
    1%E9%9F%BF-1で
    Application Gateway HTTP 設定を行う場合に既存すべてのリスナーへのTCP 接続が切断される動作
    AppGw の仕様に問題がなければ、直接バックエンドプールを指定のみ。または backend pool 内でrolling
    でVM入替も可能)
    Nginx
    User A
    blue
    Application Gateway
    green
    App
    App
    User B
    Deploy 中でたまたま User A が blue へ振られてもblue でタイムアウトやエラーがない限りそのままレスポンスを返す
    Switch 後(瞬時)は、たまたま User B がきたトラフィックはそのままgreen へ
    2. green へ
    1. deploy 前のアクセス
    3. Deploy 後のアクセス
    ファイルの有無で簡単切替
    $ touch /etc/nginx/switch/green

    View Slide

  29. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    参考情報: Blue – Green Deployment と Rollback
    Nginx はロードバランサーとリバースプロキシの2つの機能が大きくある
    Blue-green deployment ゼロダウンタイム(ステートレスのみ)
    Nginx の upstream を変更して reload する
    マスタープロセスで構成を再ロードする信号を受信すると、新しい構成ファイルの構文の有効性をチェックし、そこに提供されている構成を適用しよう
    とします。これが成功すると、マスター プロセスは新しいワーカー プロセスを開始し、古いワーカー プロセスにメッセージを送信してシャットダウンを要求し
    ます。それ以外の場合、マスター プロセスは変更をロールバックし、古い構成で動作し続けます。シャットダウンのコマンドを受信した古いワーカー プロ
    セスは、新しい接続の受け入れを停止し、すべてのリクエストが処理されるまで現在のリクエストの処理を続けます。その後、古いワーカー プロセスは
    終了します。https://nginx.org/en/docs/beginners_guide.html
    Nginx の if を使って変数やファイルの有無による切替(reload いらない)
    https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
    https://github.com/koudaiii/modernize-private-isu/pull/1/commits/40b82c4023b337b2aa74477a06bf357faf6bbef6
    この場合、ファイルの入れ替えや変数の変更を自作する必要がある
    ngx_dynamic_upstream https://github.com/cubicdaiya/ngx_dynamic_upstream
    Webhook で動的に upstream を変更できるもの。 Nginx PLUS にある機能と挙動が同じにできる
    ロールバックを瞬時実行可能
    Nginx の切替部分はダウンタイムがない点であり、不具合検知後にすぐに元に戻しやすい
    何かあってもすぐに戻せるのはデプロイおける心理的な負担が少ない

    View Slide

  30. Nov 8th, 2023
    12:00 – 12:25
    MICROSOFT CONFIDENTIAL
    本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。
    従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved.
    新しい機能をサービスに安全に追加するための9つのステップ
    Create a new runtime configuration directive 新しい機能のためのconfig を作成し、default は false に
    設定。
    Release a new binary :参照がない状態でリリース
    Update the configuration file :config を更新して見えるようにする。ユーザーの導線なし。
    Update the canary jobs :カナリージョブのみでconfig を有効にする
    Update all jobs :全部公開。この時点で新しい機能が有効。
    Change the default flag value :flag を default で true になるように変更。
    Update the configuration file again :config を更新して、config 参照をなくします。
    Edit the conditional code execution :条件付きのコード実行を常に実行するように編集します。
    Remove the now-unused code :今は使われていないコードを削除します。
    https://www.usenix.org/system/files/login/articles/login_1410_05_klein.pdf
    Daniel V. Klein、DinaM. Betser、Mathew G. Monroe

    View Slide

  31. Nov 8th, 2023
    12:00 – 12:25
    © 2023 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be re
    gistered trademarks and/or trademarks in the U.S. and/or other countries.
    The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing
    market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee t
    he accuracy of any information provided after the date of this presentation.
    MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

    View Slide