概要
WAR パッケージを使用して、 Serverless App Engine (SAE)で開発されたデモ Java アプリケーションをデプロイする方法の例を示します。このトピックでは、インターネット経由でアプリケーションにアクセスできるように、インターネットに接続されたサーバー ロード バランサー (SLB) インスタンスをアプリケーションにバインドする方法についても説明します。
利用可能な言語としてJava(OpenJDK、Dragonwell)、PHP、Python、C++、Go、.NET、Node.jsに対応しています。WAR、JAR、ZIPでのデプロイだけでなくKubernetesなのでイメージによるデプロイで行うものもあります。
物は試しと以下のチュートリアルを参考に行っていきます。英語版は間違っていいる箇所があるため中国語版で確認します。
前提条件
- VPCが構成されていること(Defaultでも問題ない)
- 初回はSAEを有効化する必要があります
- セキュリティグループを作成します(事前に作業が必要)
またhttpポートの受信トラフィックを許可する設定をします。
テストのため0.0.0.0/0を送信元に設定していますが、環境に合わせて設定します。
- デモアプリがダウンロードします
準備
今回は事前に準備されているNamespaceを利用しています。
手順
Java アプリケーションを作成する
左のナビゲーションペインからApplicationを選択し、Create Applicationをクリックします。
Basic Infomationステップでパラメーターを設定します。
パラメーター | 説明 |
---|---|
Application Name: | my-sae |
VPC | Custom Configuration |
Namespace | Defaultを選択し関連付けられたVPCを選択します |
vSwitch | Select VSwitchから1つ以上選択します |
Security Group | 事前に作成したセキュリティグループを指定します |
Application Instances | 2 |
VCPU | 1Core |
Memory | 2GiB |
パラメーターを入力します。費用も認識しておきます。一日で約3ドルかかります。
VSwitchの選択
右下のApplication Deployment Configurations をクリックします。
Deployment Configurationsでは以下の項目を入力します
パラメーター | 説明 |
---|---|
Technology Stack Programming Language | Java |
Application Deployment Method | Deployment with WAR Packages |
Application | Runtime Enviroment |
Java Enviroment | Open JDK 8 |
File Upload Method | Upload WAR Package |
Upload WAR Package | ダウンロードしたファイル、hello-sae.warをアップロードします |
Version | タイムスタンプをバージョンに利用します |
Time Zone Settings | UTF+8 |
Specification Confirmationをクリックして確認します。
Current Instancesが2/2になっていることを確認します。
この時点では外部よりアクセスすることができません。
そこでSLBを利用してエンドポイントを構成します。
インターネット経由でアプリケーションにアクセスする
Basic InformationのApplication Access Settingsより「Public Endpoint:Add Internet-facing SLB Instance」をクリックします。
以下のようにパラメーターを設定します。
パラメーター | 説明 |
---|---|
SLB Instance | Create |
Network Protocol | TCPを指定し、SLB Port:80 Container Port:8080 |
SLBも同様に課金されます。
OKをクリックして作成されるのを待ちます。
表示されているIPアドレスにアクセスすることで起動したアプリケーションを確認できます
スケーリング
オートスケーリングと手動でのスケールが用意されています。
オートスケーリングでは以下のスケーリングに対応しています。
モニタリング
トラブルシューティング
デモアプリケーションのSLB設定後に接続できない場合があります。その場合には以下の2点を確認します。
- セキュリティグループの送信トラフィックでHTTPが開いているか
- SLNのContainer Portが8080になっているか(ドキュメントが間違っています)
主にこの2点だと思います。
それでも解決しない場合はInstance Deployment Informationからアプリケーションが動作しているか確認します。
また、ログの確認やWebshellで接続しアプリケーションが動作しているか確認できます。
まとめ
今回はSAEのデモアプリケーションをデプロイしました。非常に起動も早くコンパクトにまとまった設定で起動しやすかったです。また、トラブルシューティングのためのツールが充実しているように感じました。
基本的な機能はそろっており非常に便利なサービスだと思いました。