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


関連記事

MySQL 5.7 オプティマイザの改善〜UNION ALL〜

1 はじめに2 「UNION」と「UNION ALL」の違い3 MySQL 5.7での「UNION ALL」の改善とは4 MySQL 5.7での実行計画4.1 UNION ALL実行計画4.2 UNI ...

aws

AWS Lambdaの関数スケーリングとローカル実行

1 はじめに2 関数スケーリングについて2.1 同時実行とは2.2 同時実行の制御方法2.3 その他3 ローカルで実行するには3.1 LocalStackについて3.2 LocalStackのSetu ...

aws

MyCoachの本番環境をAWS上に構築する 〜ネットワーク編〜

1 はじめに1.1 関連記事2 MyCoachのネットワーク構成3 VPCとは3.1 設定する項目4 VPCの設定5 インターネットゲートウェイの設定6 サブネットの設定6.1 公開ネットワークの設定 ...

同じレコードがないときだけインサートする!

はじめに あるアイテムを持っていない人だけ、別のアイテムをあげたい! もしくはその逆で、あるアイテムを持っている人に追加でアイテムをあげたい! そういうことってないでしょうか? 先日、僕がそのような状 ...

CentOS7でwebサーバの初期設定

1 はじめに2 設定内容3 必要なパッケージをインストール3.1 まずはカーネルその他諸々アップデート3.2 dnf4 SSH設定4.1 ユーザー作成・設定4.2 ローカル側で鍵作成4.3 サーバにア ...

フォロー

blog-page_side_responsive

2023年2月
 1234
567891011
12131415161718
19202122232425
262728  

アプリ情報

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