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


関連記事

DockerでRails + Vue.jsの環境を作ってみる

1 はじめに1.1 前回までのあらすじ1.2 今回の趣旨1.3 環境2 MySQLのUTF-8対応3 Node.jsをRubyコンテナに組み込む4 Webpackerを使用してVue.jsをインストー ...

CentOS6のLAMP環境でTLS1.2対応

1 はじめに2 業界団体レベルでのTLS1.2移行3 構成4 ssl.confを編集する5 ジェネレータ任せでOK6 設定変更の影響7 さいごに はじめに ものすごくひさしぶりにLAMP環境のSSL設 ...

aws

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

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

Conohaのサーバーを借りて、CentOS+MySQL+nginxの環境を作ってみた。

1 はじめに1.1 環境2 Conohaでサーバーをレンタル3 サーバーの初期設定3.1 サーバーにrootユーザーでログイン3.2 ユーザー作成3.3 SSHログインを許可3.4 秘密鍵を生成3.5 ...

Firestoreのルール設定とdumpやrestoreが簡単に行えるfsrpl

1 はじめに2 Firestoreのルール設定2.1 全て許可2.2 本番環境でのルール設定例3 fsrpl3.1 fsrplとは3.2 インストール3.3 秘密鍵3.4 copy3.5 開発環境から ...

フォロー

blog-page_side_responsive

2023年2月
 1234
567891011
12131415161718
19202122232425
262728  

アプリ情報

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