見出し画像

Google Cloud Platformエンタープライズ設計ガイド vol.6

ラストです。

動画配信サービスのための導入事例

動画配信サービスを始めるにあたってパブリッククラウドを利用しプライベートクラウドで稼働している既存システムと連携するハイブリッドクラウド環境の構築、特に重要な権限設定とネットワーク設計を中心に説明する。

【シナリオ】
小中学生・社会人向けの英会話教室を運営する教育関連企業
急激な企業成長による全国展開のために、スマホ・タブレット端末を活用したオンrナイン英会話授業や映像配信による講義を提供し全国展開の足掛かりを目的とする。

【導入前の検討内容】
外部公開しているシステムは公式HPのみのためインターネット回線帯域は広くなく動画配信を行うには回線増強が必要。
プライベートクラウド環境で契約しているストレージ内容では本格的な動画配信サービスを展開するには不十分。
プライベートクラウド環境で稼働しているがこれらをパブリッククラウドに移行する計画はなく、会員情報などの顧客個人情報は現行通りプライベートクラウドに保管しておきたいという要望もあったためハイブリッドクラウド構成を採用する方針になった。

役割分担と権限運用

既存システムの構築・運用は基盤担当ベンダとアプリケーション担当ベンダにアウトソーシングしている。基盤担当ベンダはハイブリッドクラウド環境の構築・運用実績があるためプライベートクラウドと同様にネットワーク管理やサーバ構築・運用を一貫に引き受けることが可能である。アプリケーション担当ベンダは動画配信システムの実績があり、運用ノウハウもある。そのためGCPインフラおよび動画アプリはこれまでどおり外部ベンダに依頼することとなった。
 ただどちらのベンダもGCPの契約・請求代行は請け負っておらずGCPの運用は本社が担うこととなった。複数の部門とベンダが作業分担するため適切な権限管理を行う必要があった。

ネットワーク構成とセキュリティ

いままでひとつのプライベートクラウド環境でシステム運用を実施してきたがGCP上で構築した動画配信システムとプライベートクラウド上のシステムと連携が必要になるため、プライベートクラウド環境とGCP環境の接続方法およびネットワーク構成を検討する必要がある。またGCP上に構築する動画配信サービスはインターネットからのアクセスが発生するためGCP環境を踏み台にしたプライベート環境への不正アクセスを防止するネットわーーく通信制御方式を検討する必要がある。

システムアーキテクチャ

Web/APサーバ:Compute Engine 
データベース:Cloud SQL
配信用動画のコンテンツ格納用ストレージ:Cloud Storage
Web/APサーバの前段:Cloud Load Balancing
を配置。プライベートクラウド環境の会員情報管理システムと認証基盤でユーザ認証を行い、運用監視基盤でGCP環境のインスタンス監視を行う。

アカウント管理

G suiteやCloud Identityを利用して払い出すアカウント
個人のメールアドレスで登録するGoogleアカウント
の2ケースが存在。
G suiteの契約をしていない場合は会社ドメインの個人メールアドレスでGoogleアカウントを作成して利用する方針にした。外部ベンダも同様に構築・運用担当者の会社個人メールアドレスでGoogleアカウントを作成し、対象のGCPプロジェクトに紐づけて利用できるようにする。

権限設定

GCPのIAM権限はサービス別・役割別でロールが提供される。
例:Compute Engine の設定は
すべてのリソース管理ができる:管理者
関連情報の読み取りのみ:閲覧者
ネットワーク関連リソースのみ:ネットワーク管理者 など

このロールを理解しアカウントに対して最小限の権限の身を付与することで意図しない設定変更や操作ミスを防止する。
今回でいうと、ベンダが構築・運用でGCP環境を操作する必要があるためセキュリティレベルを安全に保つには適切な権限管理運用が重要となる。そのためにはまず各アカウントが実施する業務を設計する必要がある。今回の会社のシステム部門委はGCP環境の管理者と運用担当者がおり、管理者は課金管理とあかうんと・権限管理を、運用担当者はGCPプロジェクト内の全サービスに対する管理者相当の操作を実施する。
映像コンテンツ制作部門はローカル環境で映像コンテンツを作成し、でき当たった動画ファイルをCloud Storageにアップロードする。
基盤担当ベンダはCompute Engine インスタンス、Cloud SQLインスタンス、Cloud Load Balancing、Cloud Storageバケットの構築と設定変更、およびVPCのネットワーク設定返納を実施するが運用フェーズではCompute Engine インスタンスのOSログインは基本的に実施しない。

プライベートクラウド環境との接続方法

IPsec VPNとDedicated Interconnectの2種類がある。Cloud VPCは10Gビット/秒の広帯域幅と高いか要請を必要とするケースには適さないが、導入が比較的容易である。Dedicated Interconnectは後退良い気幅と高い可用性を提供できる。今回のケースではWebサーバ・動画データはGCP上に存在し、プライベートクラウドとの連携は会員管理システムとの会員情報連携のみである。よって今回はCloud VPNを用いる。

ネットワーク構成

重要なのはVPCとサブネットの分割単位とリソース配置である。

VPC:サブネット単位でIPレンジを自由に設定可能
  同じVPC内であればサブネットが異なっても通信可能
  (Googleのプライベートネットワークを通る)
VPCの分割は
相互通信が発生しない本番環境と開発環境などの用途ごとや
ファイアーウォールルール管理の分割事
の利用を推奨
また、動画配信システムは国内ユーザ向けであるためVPC内に作成するサブネットはすべて東京リージョンに作成することで、Cloud VPN接続費用を最小限に抑えられる。

サブネット分割:最も基本的な考え方
・パブリックサブネット:インターネットからの通信を受け付けるサブネットでプライベートとの直接通信を許可しない。
・プライベートサブネット:インターネットからアクセスできないリソースを配置するサブネット。パブリックサブネット上のリソースとの通信およびCloud VPN経由のプライベートクラウド環境との通信を許可する。

最後に

ここまでひたすらと内容をメモして勉強してきました。読んでいる人のことを全く考えない勉強noteとなっていますが、このままではつまらないので個人的に実際に導入事例で使用されていたもの(BigQueryやCloud Storageなどなど)はどういうものかを次回以降は僕なりのまとめ方で紹介していきたいと思います。

かなり勉強となった本だったので、一読推奨です。

私の常日頃の生活をベースに、皆さんの役に立てたり、探しているものを紹介できたらと思っています。今後もよろしくお願いします!