JavaScriptヘッダ定義

広告

2016年6月11日土曜日

App Engineでスタティックファイルのみのサイトを作成する

Google App Engine

Google App Engine (GAE) は、Googleの提供するサービスの1つであり、ウェブアプリケーションをPHP・Python・Java・Go言語を使用して開発し、Googleのインフラストラクチャー上で実行し、バージョン管理することができる。
Google App Engine - wikipedia 
Google App Engineは、ウェブサービスのホスティングサービスで、Pythonなどで記述したウェブアプリをGoogleのプラットフォーム上で実行できます。基本的にはPythonなどを用いた動的なウェブアプリを実行するためのものですが、単純ないわゆるホームページをホストするのにも利用できます。Googleのプラットフォームを利用するため、どれだけアクセスが集中してもほぼ落ちないサイトを、ほぼ無料で運用することができます。今回www.kilojapan.comで静的なファイルをホストしてホームページのようなものを作ったので、その方法を書いていきます。

App Engineプロジェクトの作成

からApp Engineのプロジェクトを作成します。プロジェクトは表示名とIDのようなものがあります。IDがID.appspot.comのようにアクセスするURLになります。独自ドメインを設定する場合はあまり気にしなくていいでしょう。

App Engine Launcherのインストール

https://cloud.google.com/appengine/downloadsからGoogle App Engine SDK for Pythonをインストールします。インストールするとGoogle App Engine Launcherというものが利用できるようになります。このアプリケーションからローカルで開発したプロジェクトをコミットします。

コンテンツの作成

アップロードするコンテンツを保存するディレクトリを作成します。ディレクトリ内には「static」ディレクトリと「app.yaml」というファイルのみが必要です。どのようなURLにアクセスされてもstaticディレクトリ内を参照するように、app.yamlを次のように設定します。

application: kilojapan-com
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /
  static_files: static/index.html
  upload: static/index.html
- url: /(.*)
  static_files: static/\1
  upload: static/(.*)
1行目では作成したプロジェクトのIDを指定します。App Engine LauncherがここでプロジェクトIDを認識して、正しいプロジェクトにコンテンツをデプロイします。
2行目のバージョンは任意の整数を指定しておきます。ここを変更することにより、App Engineのコンソール内で自由に配信するバージョンを指定できるようになります。常に1などにしておけばコミットする度にリアルタイムで配信されるものが上書きされます。
handlers内は2つ指定することがあります。1つ目はファイルを指定しなかった時にindex.htmlを開くという設定です。urlにアクセスした時にstatic_filesを配信する、という意味です。uploadはどのファイルをサーバに送信するか指定するのに指定します。ここが間違っていてもローカルでは動きますが、本番環境にアップロードした時に404エラーが発生します。
2つ目のhandlerがindex.html以外のファイルにアクセスした時に、static以下の対応するファイルを返すという設定です。同様にstatic以下のすべてのファイルをアップロードするような設定になっています。

コミット

ファイルの作成が終わったらApp Engine Launcherからコミットします。まず、Add Existing Applicationメニューでapp.yamlがあるディレクトリを指定してプロジェクトを読み込みます。次にそのプロジェクトを選択してDeployボタンを押します。問題がなければプロジェクトがデプロイされ、ID.appspot.comを確認するとコミットしたファイルが表示されるようになります。ちなみに、Runボタンを押すとローカルの開発サーバが立ち上がります。Browseボタンで開発サーバをブラウザから確認できます。

最後に

以上で一通り静的ファイルのみのサイトをデプロイすることができました。本当に静的なファイルのみでいい場合はこれで非常に安価に、大量のトラフィックをさばけるサイトを運営することができます。静的ファイルはApp Engineのいわゆるインスタンスとは別のサーバにホストされるので、無料で数100万PVのサイトを運営できるはずです。ドメインを指定したい場合は、お名前.com などでドメインを取得し、App Engineのメニューからドメインを追加し、ドメインを管理しているサービス上でA/AAAAレコードもしくはCNAMEレコードを設定すればいいです。詳しくはGAE アプリケーションにカスタム(独自)ドメインを設定する方法 〜2015・夏〜 #gcpja #gcpugが参考になりると思います。

0 件のコメント :

コメントを投稿

広告