Webサービスにおける継続的デプロイの秘訣とは

RSS

2023年03月31日

  • コーポレートシステム部 森田 大二郎
  • コーポレートシステム部 光原 圭祐

はじめに

大和総研では、2021年度よりパブリッククラウドの推進組織(CCoE: Cloud Center of Excellence)を設置し、積極的なパブリッククラウド人材の育成に力を入れています。社内セミナーやハンズオン研修などの育成プログラム実施や全社的な資格取得推進などにより、技術力のレベルアップやパブリッククラウド技術者の裾野拡大を進めています。

これまで当コラムサイトでは、弊社のトップエコノミスト・コンサルタント・研究員による発信を行ってきましたが、そちらに加えて、テクニカルな内容も発信していきたいと考えています。

初回のテーマとして、昨年弊社が担当した保険業界のデジタル戦略をサポートするためのクラウド基盤構築案件において、検討していたテーマを少し別の視点で深掘りして紹介をしたいと思います。前述の構築案件においては、パブリッククラウドの良さを活かすため、CICDをベースとして、Blue-Greenデプロイができることは必須と考えていました。Blue-Greenデプロイを実現するためのあるべき構成について、秘訣とは少し大げさですが、一つのプラクティスとしてまとめていけたらと思います。複数回にわたってご紹介します。

役割が明確に定義された組織におけるクラウドサービスデリバリーの構築

AWSなどクラウドサービス利用の利点の一つとして俊敏性向上があげられます。
AWSの提供する開発用ツールを利用することにより、従来よりも容易かつセキュアにサービスをデプロイする機能を構成することができ、自動化された機能によってデリバリーまでのサイクルを短くすることができます。

一方で、すでにアプリ、インフラ、運用など、役割ごとに権限の分離や別組織になっている現場にとっては、はじめからクラウドネイティブなサービスデリバリーを構築して運用していくことにハードルがあると感じている方も多いのではないでしょうか。
今の組織体制を前提としたまま、クラウド利用による恩恵を受けられる方式で、クラウドネイティブな継続的デプロイの導入を考えることも必要となります。

Blue-Greenデプロイメントとは

Blue-Greenデプロイメントは、ルーティング制御によって新アプリケーションに段階的もしくは一括でダウンタイムなしに切り替えるデプロイ方式です。デプロイを実行する環境で動作検証をしたうえで切り替えることが可能です。また、デプロイ後に問題が発生した場合もトラフィックを切り替えるなどの対応でロールバックをすることもできるため、より安全にデプロイを実施することができます。

Webサービス構成

今回は、マイクロサービスで実装されたWebサービスについて、Blue-Greenデプロイを実現するための構成をまとめていきます。マイクロサービスで実装されたWebサービスということで、今回は以下の構成で実装されたサービスを題材に検討してみます。サービスの構成のイメージは図のような構成としています。

フロントエンド

CloudFront + S3の構成としています。静的コンテンツをエッジサーバーから高速に配信することができ、可用性やセキュリティの点でも優れている構成で、一般的によく採用される構成です。
S3を使うことによりサーバーレスで運用管理コストも低い構成であることも魅力的です。

バックエンド

バックエンドはコンテナアプリケーションとしFargateを利用する構成としています。Fargateはサーバーレスのコンテナ実行環境用のコンピューティングエンジンであり、サーバー管理などの運用管理の手間を省くことができます。
マイクロサービスということで、コンテナ間の通信制御や監視の機能を備えたAppMeshを利用する構成としています。

次回は、バックエンドサービスとフロントエンドサービスのBlue-Greenデプロイメントの構成について掲載する予定です。

AWSサービス

Amazon CloudFront

高速コンテンツ伝送ネットワーク(CDN)サービスです。CloudFrontでサービスを提供しているコンテンツをユーザがリクエストすると、リクエストはエッジロケーションにルーティングされ、これにより低遅延で配信されます。

Amazon S3

データを格納し管理できるオブジェクトストレージサービスです。拡張性、可用性に優れており、アクセス制御やデータ暗号化により高いセキュリティ機能も有しています。

AWS Fargate

サーバーレスでコンテナを実行するワークロード環境です。Fargateを利用することで、コンテナワークロードのインスタンスを管理することなくコンテナを実行することができます。

AWS App Mesh

サービス間の通信制御と可観測性の向上を実現するサービスメッシュを提供するマネージドサービスです。App MeshはVirtual Gateway(仮想ゲートウェイ)、Virtual Service(仮想サービス)、Virtual Router(仮想ルータ)、Virtual Node(仮想ノード)のコンポーネントから構成されます。App Meshにより、コンテナ間のルーティング制御、サーキットブレーカー機能、サービス間通信の暗号化、メトリクスやロギングなどの可観測性向上の機能を利用することができます。

このコンテンツの著作権は、株式会社大和総研に帰属します。著作権法上、転載、翻案、翻訳、要約等は、大和総研の許諾が必要です。大和総研の許諾がない転載、翻案、翻訳、要約、および法令に従わない引用等は、違法行為です。著作権侵害等の行為には、法的手続きを行うこともあります。また、掲載されている執筆者の所属・肩書きは現時点のものとなります。