AWS App Runner を使用してウェブアプリケーションを実行する

0 株式
0
0
0
0

導入

このガイドでは、AWS App Runner を使用してコンテナ化されたアプリケーションをデプロイする方法を学習します。AWS App Runner は、開発者がインフラストラクチャに関する事前の知識を必要とせずに、コンテナ化されたウェブアプリケーションと API を大規模かつ迅速にデプロイできるフルマネージドサービスです。ソースコードまたはコンテナイメージから始めることができます。App Runner はウェブアプリケーションを自動的にビルドおよびデプロイし、暗号化を使用してトラフィックの負荷分散を行います。また、トラフィックのニーズに合わせてスケールアップまたはスケールダウンも自動的に行います。.

前提条件
  • AWSアカウント
  • AWS CDK が正しく設定されていることを確認してください。

ステップ1 – CDKアプリケーションを作成する

まず、このガイドの紹介ページで参照されているサンプルコードをダウンロードして解凍してください(参考としてサンプルコードのアドレス、および対応するファイル名に置き換えてください):

wget <EXAMPLE_CODE_URL>
unzip <DOWNLOADED_FILE_NAME>
cd getting-started-containers-app-runner-main

次に、CDK v2 がインストールされていることを確認します。

cdk --version

ここで、TypeScript を言語として選択して、CDK スケルトン アプリケーションを作成します。

mkdir infra
cd infra
cdk init app --language typescript

出力は次のようになります。

Applying project template app for typescript
# Welcome to your CDK TypeScript project!
This is a blank project for TypeScript development with CDK.
The `cdk.json` file tells the CDK Toolkit how to execute your app.
## Useful commands
* `npm run build` compile typescript to js
* `npm run watch` watch for changes and compile
* `npm run test` perform the jest unit tests
* `cdk deploy` deploy this stack to your default AWS account/region
* `cdk diff` compare deployed stack with current state
* `cdk synth` emits the synthesized CloudFormation template
Executing npm install...
✅ All done!
リソーススタックのコードを生成する

lib/infra-stack.ts ファイルに移動してください。ここに、作成したいリソーススタックのコードを記述します。リソーススタックとは、特定のアカウントにプロビジョニングされたクラウドインフラストラクチャリソース(この場合はすべてのAWSリソース)の集合です。これらのリソースがプロビジョニングされるアカウント/リージョンは、スタック内で設定できます。.

このカテゴリでは、次のリソースを作成します。
  • App Runner サービス: コンテナはこのように実行されます。.
  • 出力: サービスの URL が表示されます。.
コンテナサービスをデプロイする

サービスをデプロイするには、まず正しいモジュールをインポートする必要があります(以下のコード スニペットで、以前に取得した CDK バージョンを置き換えます。.

npm i @aws-cdk/aws-apprunner-alpha@<CDK_VERSION>-alpha.0

次に、lib/infra-stack.ts ファイルを編集して、ファイルの先頭に依存関係を追加します。

import apprunner = require('@aws-cdk/aws-apprunner-alpha'); // Allows working with App Runner resources
import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets'; // Allows building the docker image and uploading to ECR
import * as path from "path"; // Helper for working with file paths

これらのモジュールは、Web アプリケーションのデプロイに必要なすべてのコンポーネントへのアクセスを提供します。.

次に、App Runner サービスを作成して、使用するコンテナを指定する必要があります。このチュートリアルでは、サンプルアプリに付属のコンテナイメージを SampleApp にビルドし、CDK にコンテナのビルド、アップロード、デプロイを任せます。また、今後のチュートリアルで使用するために、サービスに関連付ける空の IAM ロールも作成します。サービスと IAM ロールを作成するには、次のコードを追加します。

 // The code that defines your stack goes here
//If you are running on a Mac using the new M1 chip, please change `../SampleApp` to `../../SampleApp`.
const imageAsset = new DockerImageAsset(this, 'ImageAssets', {
directory: path.join(__dirname, '../SampleApp'),
});
const service = new apprunner.Service(this, 'Service', {
source: apprunner.Source.fromAsset({
imageConfiguration: { port: 80 },
asset: imageAsset
})
});
new cdk.CfnOutput(this, "apprunner-url", {
exportName: "apprunner-url",
value: service.serviceUrl,
description: "URL to access service"
});

上記のコードでは、App Runner を使用して、CDK が SampleApp ディレクトリ内の Dockerfile から構築するコンテナを実行するサービスを作成しました。CDK を使用する前に、CDK をブートストラップする必要があります。これにより、CDK がアカウント内のインフラストラクチャを管理するために必要なインフラストラクチャが作成されます。

cdk bootstrap

次のような出力が表示されます。

⏳ Bootstrapping environment aws://0123456789012/<region>... 
✅ Environment aws://0123456789012/<region> bootstrapped

ブートストラップが完了したら、CDK を実行して必要なインフラストラクチャをすべてデプロイします。

cdk deploy

次のような出力が表示されます。


CDKはインフラストラクチャを作成する前にプロンプトを表示します。これは、セキュリティ構成(この場合はIAMロールとセキュリティグループの作成)を変更するインフラストラクチャを作成するためです。デプロイするには、yを押してからEnterを押してください。CDKは定義したすべてのインフラストラクチャをデプロイします。完了まで数分かかります。実行中は、次のような更新が表示されます。


完了すると、次に示すように、サービスにアクセスするためのパブリック URL へのリンクを含む出力が表示されます。


ステップ2 – リソースのクリーンアップ

クラウドベースのインフラストラクチャを排除

AWS CDK を使えば、たった 1 つのコマンドでインフラストラクチャを簡単に削除できます。作成したすべてのインフラストラクチャを削除するには、cdk kill コマンドを使用します。このコマンドでは、このチュートリアルで作成したインフラストラクチャのみが削除されます。.

確認が表示されます:

cdk destroy 
Are you sure you want to delete: InfraStack (y/n)? 

yとEnterキーを押すと、CDKはすべてのインフラストラクチャの削除とアップデートの提供を開始します。完了すると、次の画面が表示されます。

Are you sure you want to delete: InfraStack (y/n)? y
InfraStack: destroying...
✅ InfraStack: destroyed

結果

AWS App Runner を使用して Web アプリをデプロイするチュートリアルを完了しました。.

コメントを残す

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

あなたも気に入るかもしれない