Server

AWS App RunnerでWebサーバをデプロイしてみる

投稿日:

はじめに

ここ最近はECSに関する記事を投稿してきましたが、今回は少し嗜好を変えて、2021年にリリースされてから新しい機能がどんどん追加されているAWS App Runnerを使ってみましたので、その紹介をしたいと思います。

今回の記事で行うこと

今回の記事では、以前の記事でECSの環境構築の際に使用したGoのEchoサーバのDockerイメージを使って、App Runnerでデプロイする手順を紹介します。

AWS App Runnerとは

AWS App Runnerは、Amazon ECSやAmazon EKSなどと同様にコンテナを扱うサービスの一種です。App Runnerはこれらの中で最も管理コストが低いサービスだと言えます。

App Runnerは、Dockerイメージ、または、GitHubのリポジトリのコードを使用し、簡単な設定のみで自動デプロイやオートスケーリングなどを実現することができます。

より詳しい説明を知りたい方は、こちらをご覧ください。

App Runnerでコンテナをデプロイする

それでは早速、App Runnerでコンテナをデプロイしてみます。

App Runnerでは、簡単な2ステップの設定でデプロイ、ヘルスチェック、オートスケーリングなどの設定が行えます。

ステップ1「ソースおよびデプロイ」

ステップ1では、ソース(デプロイするコンテナのイメージ、または、GitHubのリポジトリ)の指定と、デプロイ設定を行います。今回はソースとしてECRのイメージを指定します。

ソースの設定

コンテナイメージのURLの所で参照をクリックすると、イメージの選択が簡単にできます。

デプロイ設定

イメージがECRにPUSHされると自動でデプロイされるようにしたいので、デプロイトリガーは自動を選択します。

ECRアクセスロールをまだ作成していなければ、「新しいサービスロールの作成」を選択しておけば自動で作成されて選択されます。

ステップ2「サービスを設定」

ステップ2では、コンテナに割り当てるCPUとメモリの量、環境変数などのコンテナ実行に関するサービス設定や、Auto Scaling、ヘルスチェック、セキュリティ、ネットワーキングなどを設定します。

サービス設定

仮想CPUとメモリでは、1vCPU(メモリ2GB〜4GB)か2vCPU(メモリ4GBのみ)のどちらかしか選択することができません。

また、機密データについては、ECSと同様に環境変数として渡すことができます(ただし、App RunnerではARNで指定する必要がある)。

Auto Scaling

Auto Scalingの項目としては、1コンテナあたりのしきい値、インスタンスの最小/最大数のみ指定します。デフォルトでは以下のようになっています。

カスタム設定を選ぶ場合は、モーダルで設定を追加することができます。

ヘルスチェック

ヘルスチェックの項目は以下のとおりです。

セキュリティ

セキュリティでは、インスタンスにアタッチするIAMロールとKMSキーを選択することができます。

System ManagerのパラメータストアやSecrets Managerを参照する場合やS3などにアクセスする必要がある場合は、IAMロールをアタッチする必要があります。

ネットワーキング

基本的にApp RunnerではVPCを意識しないで扱う事ができますが、プライベートサブネット上にあるRDSにアクセスする等ようなケースでは、特定のVPC配置されてほしいという要望があると思います。

今回は特にVPCに紐付ける必要はないのですが、このようなケースでの対応を想定して既存のVPCに紐付けるようにします。

送信ネットワークトラフィックで「カスタムVPC」を選択し、VPCコネクタを選択(もしくは作成)します。

新規追加をクリックすると以下のようなモーダルが表示されます。

ステップ3「確認および作成」

ここまで設定ができれば、「作成とデプロイ」をクリックしてApp Runnerにデプロイを行います。今回は小さなアプリケーションのデプロイですが、それでも初回は結構時間がかかりました(5〜10分ほど)

App Runnerのサービスの画面はこのような感じです。

さいごに

ECSのデプロイで使用したイメージを使って、App Runnerにデプロイしてみました。設定項目が少ない(自由度も低いですが)ので、少ないリソースでサービスを立ち上げられるのは魅力てきに思えました。ただ、ある程度以上のアクセスがあるサービスの場合で利用できるようになるまでにはもう少し時間がかかりそうな印象です。

どんどん機能が追加されていっているので、今後がとても楽しみなサービスではないかと思います。

おすすめ書籍

AWSで実現するモダンアプリケーション入門 〜サーバーレス、コンテナ、マイクロサービスで何ができるのか AWSではじめるインフラ構築入門 第2版 安全で堅牢な本番環境のつくり方 AWSコンテナ設計・構築[本格]入門

blog-page_footer_336




blog-page_footer_336




-Server
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA


関連記事

aws

Amazon ECSでGoのEchoサーバを立ち上げる

はじめに コンテナをマネジメントする様々なサービスが登場し、コンテナを利用する敷居が下がってきています。今回はその中でも特に設定が簡単だと思われるAmazon ECSでGoのEchoサーバを立ち上げる ...

mkcertで簡単にオレオレ証明書を発行する

はじめに ローカルのwebサーバにhttpsで接続する場合、よくある方法がオレオレ証明書の発行です。 リモート環境ならLet’s Encryptでサクッと終わるのですが、ローカルでも同じく ...

aws

Amazon EC2を使ってみる

はじめに 近々、開発中のサービスの本番環境をAWS上に構築します。 今回はその予行演習として、学習用のAWSアカウントを登録してEC2を使ってみました。 事前準備 アカウントの登録に関しては特に難しい ...

Python(bottle)をApacheで動かす

はじめに 以前、「配牌からアガれるかアガれないか予測する」を公開しました、tonnyです。 最近はもう少しスケールダウンさせて、何切る問題でディープラーニングを利用してみようと思っています。 データを ...

aws

ECSとCWLでのアラームの設定

はじめに ECS上のタスクで特定の文字列をログに出力した際にCloudWatch Logsでアラームとして表示する方法を紹介します。 全体の流れ やることは以下の通りです。 CloudWatch Lo ...

フォロー

blog-page_side_responsive

2023年2月
日 月 火 水 木 金 土
 1234
567891011
12131415161718
19202122232425
262728  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。