Запустите веб-приложение с помощью AWS App Runner

0 Акции
0
0
0
0

Введение

В этом руководстве вы узнаете, как развернуть контейнеризированное приложение с помощью AWS App Runner. AWS App Runner — это полностью управляемый сервис, который позволяет разработчикам быстро развертывать контейнеризированные веб-приложения и API в масштабе, не требуя предварительного опыта работы с инфраструктурой. Начните с исходного кода или образа контейнера. App Runner автоматически собирает и развертывает веб-приложение, а также распределяет нагрузку трафика с использованием шифрования. 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

Теперь мы создадим каркас приложения CDK, используя TypeScript в качестве языка программирования:

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), которые развертываются в определенной учетной записи. Учетная запись/регион, где развертываются эти ресурсы, можно настроить в стеке.

В этой категории вам потребуется создать следующие ресурсы:
  • Сервис запуска приложений: так запускается ваш контейнер.
  • Результат: Отображается 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

Эти модули предоставляют доступ ко всем компонентам, необходимым для развертывания веб-приложения.

Далее необходимо указать, какой контейнер использовать, создав службу 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 собирает из Dockerfile в каталоге SampleApp. Прежде чем использовать CDK, необходимо выполнить его инициализацию — это создаст необходимую инфраструктуру для управления инфраструктурой в вашей учетной записи с помощью CDK:

cdk bootstrap

Вы должны увидеть примерно такой вывод:

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

После завершения начальной загрузки запустите CDK для развертывания всей необходимой инфраструктуры:

cdk deploy

Вы должны увидеть вывод, подобный следующему:


Перед созданием инфраструктуры CDK запросит подтверждение, поскольку она будет создавать инфраструктуру, которая изменит конфигурацию безопасности — в данном случае, путем создания ролей IAM и групп безопасности. Для развертывания нажмите y, а затем Enter. CDK начнет развертывание всей определенной вами инфраструктуры. Это займет несколько минут. После завершения процесса вы увидите обновления, подобные этим:


После завершения вы увидите результат со ссылкой на общедоступный URL-адрес для доступа к вашему сервису, как показано ниже:


Шаг второй – Очистка ресурсов

Откажитесь от облачной инфраструктуры.

AWS CDK позволяет легко удалить вашу инфраструктуру всего одной командой. Чтобы удалить всю созданную вами инфраструктуру, используйте команду `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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Вам также может понравиться

Как запускать скрипты Python в Ubuntu

Введение. С ростом популярности разработки инструментов на основе искусственного интеллекта среди разработчиков, Python стал востребованным языком благодаря своей простоте…
Настройка выделенных серверов для популярных игр Minecraft ARK Survival

Настройка выделенных серверов для популярных игр

Введение Мир онлайн-игр расширяется с каждым днем, и геймеры ищут более плавный игровой процесс, больше настроек и полный контроль...