LoginSignup
1
2

More than 1 year has passed since last update.

Google Cloudを利用してサーバレス構成でWebサイトを公開する

Last updated at Posted at 2022-10-27

最初に

Google Cloudのプロダクトを用いてベーシックなサーバーレス構成で開発を実施しました。
開発にあたって特殊なプロダクトは使用しておらず、シンプルなサイトを作成するのであれば複雑な手順は必要ありません。

構成図

image.png

プロダクト

Cloud Storage
容量無制限・低価格・堅牢なオブジェクトストレージサービスです。
公開するファイルを配置しています。

Cloud Logging
Google Cloud上のシステムが生成したログを収集・管理するサービスです。

Cloud Load Balancing
自動スケーリングにより、トラフィックの増減に合わせた対処が可能なGoogle Cloudの提供するロードバランシングサービスです。

Cloud CDN
Cloud Load Balancingと連携してユーザーにコンテンツを高速で配信するサービスです。
信頼性が高く、また高性能なGoogle Cloudのインフラを使ってファイルの配信を行うことが可能です。

Cloud Armor
Cloud Load Balancingの背後にあるWebアプリケーションを保護できます。
今回はIPアドレスの制限に用いています。

Cloud Functions
Cloud Functions とは Google Cloudが提供するサーバーレスのコンピューティングサービスです。

サーバーレスのメリットとして、サーバーの構築や保守、スケールアップ・ダウンなどの管理メンテナンスを必要としません。
またミドルウェアのインストール等、構築の手間がないためスピードが早く、ロジックが複雑でなないWebサービスの場合はランニングコストが圧縮され、コスト効率を高める場合があります。

Firestore
FirestoreのNoSQLデータベースは大容量データでも処理速度が速く、さらに水平分散によるスケールアップが可能なことから拡張性にも優れています。

Cloud Functions、Firestoreの両サービスともにリクエストに応じた課金体系でもあるため、公開から時間が経過しアクセス数が減少したタイミングでもアクセス数に応じた利用料金のみを支払えば良いというメリットもあります。

サーバーレスでWebサイトを作成する流れ

以下の手順で作成します。

1.Cloud Storageを作成

Cloud Storageを作成し、公開するファイルを配置します。

  • 設定
データの保存場所:Region
ストレージクラス:Standard
公開アクセスの防止:アクセス禁止を適用しない
アクセス制御:均一
オブジェクトデータの保護:なし

特に理由がなければ、上記の設定で良いと思います。

また、アクセス権の編集からプリンシパルの追加でallUsersに対してStorageの読み取り用のロールを追加し、インターネット上に公開する必要があります。
レガシー権限であれば一覧表示権限は含まれません。
image.png

2.ロードバランシングの設定

HTTP(S)ロードバランシングを構成します。

  • フロントエンドの構成
    HTTPS接続する場合は証明書を作成して登録する必要があります。
  • バックエンドの構成
    先ほど作成したCloud Storageを登録します。
    また、ロードバランサを作成中に静的コンテンツをキャッシュさせるためにCloud CDNを設定できます。
    image (30).png
    ドメインを取得している場合は、Cloud DNSから登録します。

3.Firestoreを作成

Cloud Functionsから利用するFirestoreを設定します。
使用を想定しているコレクションを作成し、データを登録・取得できるようにします。

4.Cloud Functionsを作成

scriptファイルからAPIを呼び出せるように、未認証の呼び出しを許可します。
Firestoreを利用できるように、新しくランタイムサービスアカウントを作成し、Firestoreを利用できるようにロールを付与します。
Cloud Storageからファイルを取得したりする場合は追加で別のロールも付与します。
image.png

image (31).png
URLから呼び出すことができます。

その他.Cloud Armor

開発中で外部に公開したくない場合は、Cloud ArmorでIPアドレス制限をかけることができます。

最後に

この仕組みは弊社事例だとこのようなサービスに活用しております。

関連事例:https://cloudpack.jp/casestudy/gcp-008.html

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2