Google app engineは無料の枠内でWebアプリを公開できるPaaSとして最も規模が大きく、使い勝手の良いサービスです。 herokuの料金体系が代わり無料での稼働がほぼできなくなると、実質無料で使うことができる唯一のPaaSかもしれません。 Googleが運営するインフラサービスということもあり、持続性に関してもある程度期待して使っていいのではないかと思います。
長く運営されているサービスのため、Googleも新しい取組みがいろいろ始まり、 app engineは現在単体のサービスというよりGoogle Cloud Platformの一部という位置づけです。 当初(独自ドメインの割当以外は)app engine 専用のコンソール だけでだいたい設定できたのですが、 現状では新しいアプリケーションを作る際にはDeveloper consoleで、アプリケーションを登録し、APIやドメインを設定するところから始めることになります。
app engineの コンソールを開くと、自分のアカウントが管理するApplicationリストが最初に表示されそのリストの下に"You can create your new cloud project in the Google Developers Console."とDebelopers Consoleのリンクが表示されます。
appe engineで新しいアプリケーションを作るには
- Developers Consoleのメニューから「プロジェクトを作成」を選びプロジェクト名を入力し、プロジェクトを作成する
- サイドバーの「API」と認証の「API」メニューを開き、App engine Admin APIを探し有効にする
最低でもここまですると、app engineの コンソールにアプリケーションが表示されるようになります。
Mac & Pythonでapp engineアプリを開発する場合、SDKはGoogleAppEngineLauncherに含まれます。このアプリをダウンロードし起ち上げ、新規アプリを追加し先ほど登録したApplication IDを入力すれば、新しいアプリケーションの開発とデプロイの準備が完了します。
pycharmでGAE pluginが入っている場合、New ProjectのMore SettingsのApplication IDに取得したID App Engine SDK directoryにGAEアプリに含まれるSDK(/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine)を指定います。
PycharmからGAEへのアップロードは、Pycharmの<Tools/Google App Engine/Up load app engine app..>で行います。
ドメインの管理は以前はGoogle appsとapp engineのコンソールで行っていましたが、現在はやはりGoogle Developers Console.で行うことになります。
サイドメニューの「コンピュート」「App Engine」「設定」から「カスタムドメイン」画面を開き、ここに書かれているDNSの設定をお名前.comとかムームーとか、、のDNS設定に入力します。
以前はapp engineはネイキッドドメインを利用できなかったのですが、現在は普通にネイキッドドメインを利用するラジオボタンが表示されています。
こちらのページで app engineのカスタムドメインの設定について詳しく解説されていて、参考になります。
GAE/Pは何もしなくてWebフレームワークとしてwebapp2が使えるのですが、Flask/jinja2を普段使っていると、当然Flaskの方を使いたくなります。
こちら のスケルトンをgit cloneしlibフォルダーをプロジェクトのディレクトリに置いて pip インストールすると、必用なモジュールが一式libフォルダーにダウンロードされます。後は何も考えることなく普通にFlaskアプリを開発&デプロイすることができます。
ただしlibフォルダのモジュールを読み込むためには、アプリの先頭に
sys.path.insert(0, 'lib')
の表記が必用です。もちろんモジュールのimportの記述も。
また、Flaskアプリを呼び出すメソッドに静的ファイルのディレクトリを記述しておくのが良いと思います。
app = Flask(__name__, static_folder='static', static_url_path='')
便利な割にすごく使われているという感じがしないapp engineですが、 あっけないほど簡単にWebアプリを公開できるのはGoogle Cloud Platformの一部となった現在も変わっていません。とりあえず試しに作ってみようという段階のアイデアの具現には非常に適しているサービスです。ぜひ。