はじめに
突然ですが、サーバーレスでWEBサービスの開発をしてみたいと思い立ち、まずはどんなサービスを使えばよいか調べてみました。いわゆるアーキテクチャを考える段階ですね。クラウドサービスはGCP(Google Cloud Platform)を使用しますが、GCPには似たようなサービスがたくさんあり、それぞれの違いや特徴を把握するのはなかなか大変です。
今回は、どんなアーキテクチャで開発していくのか、GCPで使用する予定のサービスについてご紹介します。また、開発を進めていく過程を備忘録として残していく予定なので、定期的に公開できるように頑張ります。
1. 使用するサービス紹介
1.1 Application Load Balancer
Application Load Balancer (ALB) は、GCP上で提供される高機能なロードバランシングサービスです。ALBは、トラフィックを複数のサーバーやサービスに分散し、スムーズなサービス提供を実現します。特にサーバーレス環境においては、Cloud RunやCloud Functionsなどのサービスに対するトラフィックの分散を効果的に行うことで、安定したパフォーマンスと可用性を維持できます。
セキュリティに懸念がありましたが、別サービスのCloud Armorを使えば、DDoS対策、アクセス制御、SQLインジェクションやクロスサイトスクリプティング(XSS)対策、WAF(Webアプリケーションファイアウォール)の機能を提供しているので対応できそうです。
1.2 Cloud Storage
Cloud Storageは、ストレージサービスで、大規模なデータの保存や管理に最適です。特にWebサービスのフロントエンド開発において、静的ファイル(HTML、CSS、JavaScript、画像など)をホスティングするために使われることもあります。サーバーレスアーキテクチャを採用するので、フロントエンドの部分(Vue.js)を配置する予定です。
1.3 Cloud Run
Cloud Runは、コンテナベースのアプリケーションをサーバーレスで実行できるサービスです。コンテナ化されたアプリケーションを任意の言語で作成し、GCP上で自動スケーリングを活用して効率的に動作させることができます。今回はバックエンドのAPIサーバーとして使用します。言語はPHPで作成する予定です。
1.4 Cloud SQL
Cloud SQLは、フルマネージド型のリレーショナルデータベースサービスです。Cloud SQLでは、MySQL、PostgreSQL、SQL Serverの3つのデータベースエンジンがサポートされています。今回は使い慣れたPostgreSQLを使用する予定です。
2. 今後の予定
まずは、紹介したサービスを使用して開発環境を作ります。そこで、簡単なデモを動かしてみて、各サービスの特徴や使い心地を覚えます(試してみて変更する可能性は大いにあります)
まとめ
今回は、GCPでのサーバーレス環境で使用する予定のサービスについて紹介しました。これからサーバーレスの知識を深めつつ、実際のサービス開発に取り組んでいきます💪
サーバーレスについては別の記事でも紹介しています
reisaikigyo.hatenablog.com