AWS App RunnerにGoアプリケーションをデプロイするステップバイステップガイド
...管理されたGoランタイムを使って
このブログ記事では、Goのプラットフォームランタイムを使ってGoアプリケーションをAWS App Runnerに実行する方法を学びます。GitHub上の既存のGoアプリケーションをスタートとして、それをAWS App Runnerにデプロイします。アプリケーションは、DynamoDBにデータを保存するURL短縮アプリケーション(いくつかの変更を加えたバージョン)に基づいています。
取り上げる内容は以下の通りです:
- 前提条件
- URL短縮アプリケーション用のGitHubリポジトリを作成する
- URL情報を保存するためのDynamoDBテーブルを作成する
- DynamoDB固有の権限を持つIAMロールを作成する
- アプリケーションをAWS App Runnerにデプロイする
- URL短縮機能を検証する
- クリーンアップ
- 結論
AWS App Runnerは、2種類のサービスソースに基づいてサービスを作成し管理できます:
- ソースコード(このブログ記事で取り上げています)
- ソースイメージ
ソースコードとは、App Runnerがビルドしてデプロイするアプリケーションコードのことです。必要なのは、App Runnerにソースコードリポジトリを指定し、プログラミングプラットフォームバージョンに対応した適切なランタイムを選ぶことだけです。App Runnerは、言語固有の管理されたランタイム(Python、Node.js、Java、Goなど)を提供します。
AWS App Runner Go プラットフォームランタイムは、Goバージョンに基づいたWebアプリケーションのコンテナを簡単にビルドして実行することを可能にします。コンテナ設定やビルド指示(Dockerfileなど)を提供する必要はありません。 Goランタイムを使用すると、App Runnerは_管理された_ Goランタイムイメージからスタートします。これはAmazon Linux Dockerイメージに基づいており、Goのバージョンのランタイムパッケージといくつかのツールが含まれています。App Runnerはこの管理ランタイムイメージをベースイメージとして使用し、あなたのアプリケーションコードを追加してDockerイメージをビルドします。続いて、このイメージをデプロイしてコンテナでWebサービスを実行します。
前提条件
AWSアカウントを持っている必要があり、AWS CLIをインストールしてください。
始めましょう…
URL短縮アプリケーション用のGitHubリポジトリを作成する
以下のコードブロックを記入してください。言語はGoです。
git clone https://github.com/abhirockzz/apprunner-go-runtime-app
URL情報を保存するためのDynamoDBテーブルを作成する
urls
という名前のテーブルを作成します。次のように選択してください:
shortcode
という名前のパーティションキー(データタイプはString
)オンデマンド
容量モード
DynamoDB固有の権限を持つIAMロールを作成する
以下のコマンドを入力してください。言語はbashです。
export IAM_ROLE_NAME=apprunner-dynamodb-role
aws iam create-role --role-name $IAM_ROLE_NAME --assume-role-policy-document file://apprunner-trust-policy.json
ポリシーを作成する前に、dynamodb-access-policy.json
ファイルを更新してDynamoDBテーブルARNを反映させてください。
aws iam put-role-policy --role-name $IAM_ROLE_NAME --policy-name dynamodb-crud-policy --policy-document file://dynamodb-access-policy.json
アプリケーションをAWS App Runnerにデプロイする
既存のAWS App Runner GitHub接続を持っていて、それを使用したい場合は、リポジトリ選択ステップにスキップしてください。
AWS App Runner GitHub接続を作成する
App Runnerコンソールを開いてサービスを作成を選択します。
ソースとデプロイメントページのソースセクションで、リポジトリタイプにソースコードリポジトリを選択します。GitHubに接続するの下で、新規追加を選び、プロンプトが表示されたらGitHubの資格情報を提供してください。
GitHubアカウント名が選択されたGitHubアカウント/組織として出現します。これでアカウント内のリポジトリを選択できます。
リポジトリ選択
リポジトリとして、作成したリポジトリを選択します(apprunner-go-runtime-app)。ブランチにはリポジトリのデフォルトのブランチ名を選択します(例: main)。
デプロイメントの設定を構成する:デプロイメント設定セクションで、自動を選択し、次へをクリックします。
アプリケーションビルドを構成する
ビルドを構成するページで、設定ファイルにここで全ての設定を構成するを選んでください。
URL短縮機能を検証する
アプリケーションは2つのエンドポイントを公開しています:
- URLに対して短縮リンクを作成するためのもの
- 短縮リンク経由で元のURLにアクセスするためのもの
まず、App Runnerサービスのエンドポイントを環境変数としてエクスポートします。
export APP_URL=<enter App Runner service URL>
# 例
export APP_URL=https://jt6jjprtyi.us-east-1.awsapprunner.com
短縮リンクを通してアクセスしたいURLでそれを呼び出します。
curl -i -X POST -d 'https://abhirockzz.github.io/' $APP_URL
# 出力
HTTP/1.1 200 OK
Date: Thu, 21 Jul 2022 11:03:40 GMT
Content-Length: 25
Content-Type: text/plain; charset=utf-8
{"ShortCode":"ae1e31a6"}
クリーンアップ
このチュートリアルを完了したら、以下を削除することを忘れないでください:
- DynamoDBテーブル
- App Runnerサービス
結論
このブログ記事では、GitHubリポジトリにあるGoアプリケーションから、AWS App Runnerにデプロイされた完全なURL短縮サービスに至るまでの方法を学びました!
こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/aws/deploying-go-applications-to-aws-app-runner-a-step-by-step-guide-3jff