{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/getting-started-with-aws-app-runner","result":{"data":{"markdownRemark":{"id":"b8823a82-30a8-5018-a369-c9c5b6cbd2c0","html":"<p>本日 (2021/05/19)、AWS に App Runner というサービスがリリースされました。</p>\n<p>App Runner は、コンテナアプリケーションを非常に簡単にデプロイできるサービスのようです。</p>\n<p>GitHub と連携した自動デプロイや、接続数でのオートスケーリングを試したのと、ゼロスケールのような挙動に気付いたので、そのあたりをまとめました。</p>\n<h2 id=\"公式ブログによると\" style=\"position:relative;\"><a href=\"#%E5%85%AC%E5%BC%8F%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AB%E3%82%88%E3%82%8B%E3%81%A8\" aria-label=\"公式ブログによると permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>公式ブログによると…</h2>\n<p>公式ブログの記事「<a href=\"https://aws.amazon.com/jp/blogs/aws/app-runner-from-code-to-scalable-secure-web-apps/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">New – AWS App Runner: From Code to a Scalable, Secure Web Application in Minutes</a>」によると、</p>\n<blockquote>\n<p>I can configure the auto scaling behavior. By default, my service will have one instance of my container image, but if the service receives more than 80 concurrent requests, it will scale to multiple instances. You can optionally specify a maximum number for cost control.</p>\n</blockquote>\n<p>とので、CPU 使用率などではなく、接続数をもとにオートスケーリングしてくれるようです。</p>\n<p>これは少し特徴的だなと思ったので、チュートリアル的なものをやりつつ、オートスケーリングも試すことにしました。</p>\n<h2 id=\"さわってみる\" style=\"position:relative;\"><a href=\"#%E3%81%95%E3%82%8F%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B\" aria-label=\"さわってみる permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>さわってみる</h2>\n<p>まずは公式ワークショップ「<a href=\"https://www.apprunnerworkshop.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AWS App Runner Workshop :: AWS App Runner Workshop</a>」をもとに、アプリケーションを起動してみます。</p>\n<p>GitHub にリポジトリ (<a href=\"https://github.com/os1ma/aws-app-runner-demo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">os1ma/aws-app-runner-demo</a>) を作成します。</p>\n<p>package.json を用意します。</p>\n<div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"name\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"apprunner_example\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"version\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"1.0.0\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"main\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"index.js\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"dependencies\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"express\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"^4.17.1\"</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"devDependencies\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"author\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"license\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"ISC\"</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>index.js を用意します。</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> express <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'express'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> app <span class=\"token operator\">=</span> <span class=\"token function\">express</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> port <span class=\"token operator\">=</span> <span class=\"token number\">3000</span><span class=\"token punctuation\">;</span>\n\napp<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token string\">'/'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">req<span class=\"token punctuation\">,</span> res</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  res<span class=\"token punctuation\">.</span><span class=\"token function\">send</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Hello World!'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\napp<span class=\"token punctuation\">.</span><span class=\"token function\">listen</span><span class=\"token punctuation\">(</span>port<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">Example app listening at http://localhost:</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>port<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>ワークショップの内容とは違いますが、設定は YAML ファイルでやってみたいので、apprunner.yaml を書きます。</p>\n<p>書き方は公式ドキュメントのこちら (<a href=\"https://docs.aws.amazon.com/apprunner/latest/dg/config-file.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Setting App Runner service options using a configuration file - AWS App Runner</a>) の通りです。</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">version</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1.0</span>\n<span class=\"token key atrule\">runtime</span><span class=\"token punctuation\">:</span> nodejs12\n<span class=\"token key atrule\">build</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">commands</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">build</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> npm install\n<span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">command</span><span class=\"token punctuation\">:</span> node index.js\n  <span class=\"token key atrule\">network</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">port</span><span class=\"token punctuation\">:</span> <span class=\"token number\">3000</span></code></pre></div>\n<p>これをコミットした状態で、マネジメントコンソールでぽちぽちすると、無事、デプロイされました！</p>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">$ curl https://&lt;ドメイン&gt;\nHello World!</code></pre></div>\n<h2 id=\"github-と連携した自動デプロイ\" style=\"position:relative;\"><a href=\"#github-%E3%81%A8%E9%80%A3%E6%90%BA%E3%81%97%E3%81%9F%E8%87%AA%E5%8B%95%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4\" aria-label=\"github と連携した自動デプロイ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>GitHub と連携した自動デプロイ</h2>\n<p>コードを書き換えて自動デプロイされるか試します。</p>\n<p>あとでオートスケールを試しやすいように、index.js レスポンスを返すまで指定した秒数待つような仕組みを入れます。</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> express <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'express'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> app <span class=\"token operator\">=</span> <span class=\"token function\">express</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> port <span class=\"token operator\">=</span> <span class=\"token number\">3000</span><span class=\"token punctuation\">;</span>\n\napp<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token string\">'/'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">req<span class=\"token punctuation\">,</span> res</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Receive request'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">const</span> delaySec <span class=\"token operator\">=</span> req<span class=\"token punctuation\">.</span>query<span class=\"token punctuation\">.</span>delay <span class=\"token operator\">||</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Return response'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    res<span class=\"token punctuation\">.</span><span class=\"token function\">send</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Hello World!'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> delaySec <span class=\"token operator\">*</span> <span class=\"token number\">1000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\napp<span class=\"token punctuation\">.</span><span class=\"token function\">listen</span><span class=\"token punctuation\">(</span>port<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">Example app listening at http://localhost:</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>port<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>これを GitHub の main ブランチに入れると、無事自動デプロイされました。</p>\n<p><img src=\"/media/getting-started-with-aws-app-runner-deployment.png\" alt=\"getting-started-with-aws-app-runner-deployment.png\"></p>\n<p>ちなみに、コードにエラーがあってコンテナが正常に起動しない場合は、自動でロールバックしてくれました。</p>\n<h2 id=\"接続数でオートスケールさせてみる\" style=\"position:relative;\"><a href=\"#%E6%8E%A5%E7%B6%9A%E6%95%B0%E3%81%A7%E3%82%AA%E3%83%BC%E3%83%88%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%81%95%E3%81%9B%E3%81%A6%E3%81%BF%E3%82%8B\" aria-label=\"接続数でオートスケールさせてみる permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>接続数でオートスケールさせてみる</h2>\n<p>では、接続数でのオートスケールを試します。</p>\n<p>デフォルトでは 80 の接続でスケールするようになっていますが、10 に変更しました。</p>\n<p>そのうえで、何かツールを入れるのも手間なので、簡易的に curl を使ったワンライナーで 20 アクセスしてみます。</p>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">for i in {1..20}; do bash -c &#39;curl https://&lt;ドメイン&gt;/?delay=5 &amp;&#39;; done</code></pre></div>\n<p>すると、しっかりオートスケールしてくれました。</p>\n<p><img src=\"/media/getting-started-with-aws-app-runner-scaling.png\" alt=\"getting-started-with-aws-app-runner-scaling.png\"></p>\n<p>Fargate などのサービスは基本的に CPU 使用率等でオートスケールさせるので、接続数でオートスケールするのは特徴的ですね。</p>\n<p>使い方のイメージが、少し Lambda に近いのかなと思いました。</p>\n<p>ちなみに、Fargate で接続数でオートスケールする場合は、こちら (<a href=\"https://dev.classmethod.jp/articles/afargate-fast-autoscaler/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">爆速でFargateをスケールさせる「aws-fargate-fast-autoscaler」を試してみた | DevelopersIO</a>) の記事のようなことをすることになるようです。</p>\n<h2 id=\"もしかしてゼロスケールしてる？？？\" style=\"position:relative;\"><a href=\"#%E3%82%82%E3%81%97%E3%81%8B%E3%81%97%E3%81%A6%E3%82%BC%E3%83%AD%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E3%82%8B%EF%BC%9F%EF%BC%9F%EF%BC%9F\" aria-label=\"もしかしてゼロスケールしてる？？？ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>もしかしてゼロスケールしてる？？？</h2>\n<p>アクティブなインスタンス数のデータを見て「おや？」と思ったのですが、どうやらアクセスがないときはゼロスケールしてくれるようです。</p>\n<p>Google Cloud Run (Knative) みたいですね。</p>\n<p>料金のページ (<a href=\"https://aws.amazon.com/jp/apprunner/pricing/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AWS App Runner Pricing – Fully managed container application service – Amazon Web Services</a>) を見ると、アクティブなインスタンスがない状態でもメモリは確保しているため、少し料金はかかるようです。 </p>\n<p>Cloud Run や Knative のゼロスケールとはちょっと違う雰囲気ですね。</p>\n<h2 id=\"感想\" style=\"position:relative;\"><a href=\"#%E6%84%9F%E6%83%B3\" aria-label=\"感想 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>感想</h2>\n<p>App Runner をなんとなくさわってみましたが、確かに楽だなと思いました。</p>\n<p>細かい設定が不要で、とりあえずサクッと動かしたいときには良いかもしれません。</p>\n<h2 id=\"気になったところ\" style=\"position:relative;\"><a href=\"#%E6%B0%97%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D\" aria-label=\"気になったところ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>気になったところ</h2>\n<p>現状では</p>\n<ul>\n<li>VPC には配置できない</li>\n<li>ヘルスチェックは TCP のコネクション確立のみ</li>\n<li>パラメータストアなどの値を環境変数に設定できない</li>\n</ul>\n<p>などの制約がありそうです。</p>\n<p>あと、どっちでもよくはあるのですが、「マネジメントコンソールでログが下から上向きに表示される」というのが気になりました笑</p>\n<p>今後のアップデートに期待してます！</p>","fields":{"slug":"/posts/getting-started-with-aws-app-runner","tagSlugs":["/tag/aws/","/tag/container/"],"autoRecommendPosts":["aws-app-runner-with-cloud-native-buildpacks","udemy-aws-container","raspberrypi-k3s-non-stop-release","how-to-study-aws-basics"]},"frontmatter":{"date":"2021-05-19T09:33:52.876Z","description":"本日 (2021/05/19)、AWS に App Runner というサービスがリリースされました。\nApp Runner は、コンテナアプリケーションを非常に簡単にデプロイできるサービスのようです。\nGitHub と連携した自動デプロイや、接続数でのオートスケーリングを試したのと、ゼロスケールのような挙動に気付いたので、そのあたりをまとめました。","tags":["aws","container"],"title":"AWS App Runner を早速さわってみた【接続数でオートスケーリング・ゼロスケール（？）】","socialImage":null,"recommendPosts":["https://www.kanzennirikaisita.com/posts/aws-app-runner-with-cloud-native-buildpacks","https://www.kanzennirikaisita.com/posts/4839975868","https://www.kanzennirikaisita.com/posts/how-to-study-aws-basics","https://www.kanzennirikaisita.com/posts/software-developer-books-index"]}}},"pageContext":{"slug":"/posts/getting-started-with-aws-app-runner"}},"staticQueryHashes":["251939775","3942705351","401334301"]}