[アップデート] AWS App RunnerがマネージドランタイムとしてGoをサポートしたので実行してみた

こんにちは。サービス部の武田です。AWS App Runnerのマネージドランタイムに、新しくPHP 8.1、Go 1.18、.Net 6、Ruby 3.1が追加されました。今回はGoアプリケーションをデプロイしてみました。
2022.10.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービス部の武田です。

AWS App Runnerのマネージドランタイムに、新しくPHP 8.1、Go 1.18、.Net 6、Ruby 3.1が追加されました。マネージドランタイムとしてサポートされる環境は、自前でのビルドなどをせずにアプリケーションをデプロイできるためとても便利です。

また.Net 6についてはいわさがエントリを書いています。

久しぶりにGo触ってみたくなっただけですが、今回はGoアプリケーションをデプロイしてみました。

やってみた

今回デプロイしたソースコードはGitHubにホストしてあります。

ローカルの環境作りと準備

久しぶりのGoだったのでローカルの環境作りから。Macを使っているのでHomebrewでGoはインストールできます。またWebフレームワークとしてGinを使いました。

$ brew install go
$ cd working_dir
$ mkdir example-aws-app-runner-go1 && cd $_
$ git init
$ go mod init example-aws-app-runner-go1
$ go get github.com/gin-gonic/gin@v1.8.1

今回確認用に用意したソースコードは次のものです。

アクセスされたら Hello, AWS App Runner! と返すだけのシンプルなアプリケーションです。

次のコマンドで確認できます。

$ go run .

確認できたら準備完了です。コミットしてプッシュしておきましょう。

$ git add . && git commit -m 'commit' && git push origin main

App Runnerで動かす

それでは先ほど作成したアプリケーションをApp Runnerで動かしていきます。

リポジトリタイプは「ソースコードリポジトリ」を選択し、ホストしているリポジトリと連携できるようにします。

ランタイムにGo 1が見つかります。

「構築コマンド」にはgo installを指定し、開始コマンドにgo run main.goと指定します。最初開始コマンドにgo run .と指定してみたのですが、これでは動作しませんでした。またポート番号は8080です。

Ginはデフォルトではデバッグモードで動作するため、環境変数でGIN_MODE=releaseと指定しました。

これで設定は完了です。しばらく待って問題なければアプリケーションがデプロイされます。発行されたURLにアクセスすると、無事に画面が表示されました。

まとめ

App Runnerのマネージドランタイムとしてサポートされた言語は自前のビルドなどなしに簡単にデプロイできます。今回新しく4言語が追加されたことで、また利用の幅が広がるのではないでしょうか。Fargateなどで運用している既存のシステムがあるなら、移行の検討もしてみてください。