Führen Sie eine Webanwendung mit AWS App Runner aus.

0 Aktien
0
0
0
0

Einführung

In dieser Anleitung erfahren Sie, wie Sie mit AWS App Runner eine containerisierte Anwendung bereitstellen. AWS App Runner ist ein vollständig verwalteter Service, mit dem Entwickler containerisierte Webanwendungen und APIs schnell und skalierbar bereitstellen können, ohne Vorkenntnisse im Bereich Infrastruktur zu benötigen. Sie können mit Quellcode oder einem Container-Image beginnen. App Runner erstellt und stellt die Webanwendung automatisch bereit und verteilt den Datenverkehr mit Verschlüsselung. App Runner skaliert außerdem automatisch nach oben oder unten, um Ihren Anforderungen gerecht zu werden.

Voraussetzungen
  • Ein AWS-Konto
  • Bitte stellen Sie sicher, dass Sie Ihr AWS CDK korrekt konfiguriert haben.

Schritt 1 – Erstellen der CDK-Anwendung

Stellen Sie zunächst sicher, dass Sie den auf der Einführungsseite erwähnten Beispielcode für diese Anleitung heruntergeladen und extrahiert haben (anstatt Die Adresse des Beispielcodes als Referenz, und Ersetzen Sie dies durch den entsprechenden Dateinamen):

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

Stellen Sie als Nächstes sicher, dass CDK v2 installiert ist.

cdk --version

Nun erstellen wir die CDK-Skelett-Anwendung mit TypeScript als unserer bevorzugten Sprache:

mkdir infra
cd infra
cdk init app --language typescript

Dies führt zu folgender Ausgabe:

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!
Generieren Sie den Code für den Ressourcenstapel.

Öffnen Sie die Datei lib/infra-stack.ts. Hier schreiben Sie den Code für den Ressourcen-Stack, den Sie erstellen möchten. Ein Ressourcen-Stack ist eine Sammlung von Cloud-Infrastrukturressourcen (in diesem Fall alle AWS-Ressourcen), die in einem bestimmten Konto bereitgestellt werden. Das Konto bzw. die Region, in der diese Ressourcen bereitgestellt werden, kann im Stack konfiguriert werden.

In dieser Kategorie sollten Sie die folgenden Ressourcen erstellen:
  • App Runner Service: So wird Ihr Container ausgeführt.
  • Ausgabe: Hier wird die URL Ihres Dienstes angezeigt.
Den Containerdienst bereitstellen

Um Ihren Dienst bereitzustellen, müssen Sie zuerst die richtigen Module importieren (anstatt Ersetzen Sie im folgenden Codeausschnitt Ihre zuvor abgerufene CDK-Version.

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

Anschließend bearbeiten Sie die Datei lib/infra-stack.ts, um die Abhängigkeiten am Anfang der Datei hinzuzufügen:

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

Diese Module bieten Zugriff auf alle Komponenten, die zum Bereitstellen einer Webanwendung erforderlich sind.

Als Nächstes müssen Sie den zu verwendenden Container festlegen, indem Sie einen App-Runner-Dienst erstellen. In diesem Tutorial erstellen wir das mit der Beispiel-App bereitgestellte Container-Image in „SampleApp“ und lassen das CDK den Container-Build, Upload und die Bereitstellung übernehmen. Außerdem erstellen wir eine leere IAM-Rolle, die wir dem Dienst für zukünftige Tutorials zuordnen. Um den Dienst und die IAM-Rolle zu erstellen, fügen Sie folgenden Code hinzu:

 // 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"
});

Im obigen Code haben Sie mit App Runner einen Dienst erstellt, um einen Container auszuführen, den CDK aus einer Dockerfile im Verzeichnis SampleApp erstellt. Bevor Sie CDK verwenden können, müssen Sie es initialisieren – dadurch wird die notwendige Infrastruktur erstellt, damit CDK die Infrastruktur in Ihrem Konto verwalten kann.

cdk bootstrap

Die Ausgabe sollte in etwa so aussehen:

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

Nach Abschluss des Bootstrapping-Vorgangs führen Sie das CDK aus, um die gesamte erforderliche Infrastruktur bereitzustellen:

cdk deploy

Die Ausgabe sollte in etwa wie folgt aussehen:


Das CDK fordert Sie vor der Erstellung der Infrastruktur auf, da es die Infrastruktur erstellt, die die Sicherheitskonfiguration ändert – in diesem Fall durch die Erstellung von IAM-Rollen und Sicherheitsgruppen. Drücken Sie zum Bereitstellen „y“ und anschließend die Eingabetaste. Das CDK stellt nun die gesamte von Ihnen definierte Infrastruktur bereit. Dies dauert einige Minuten. Sobald die Bereitstellung abgeschlossen ist, werden Aktualisierungen wie die folgende angezeigt:


Nach Abschluss des Vorgangs wird Ihnen die Ausgabe mit einem Link zur öffentlichen URL angezeigt, über die Sie auf Ihren Dienst zugreifen können, wie unten dargestellt:


Schritt zwei – Ressourcen aufräumen

Eliminierung der Cloud-basierten Infrastruktur

Mit AWS CDK können Sie Ihre Infrastruktur ganz einfach mit nur einem Befehl entfernen. Um die gesamte von Ihnen erstellte Infrastruktur zu löschen, verwenden Sie den Befehl `cdk kill`. Dadurch wird nur die in diesem Tutorial erstellte Infrastruktur entfernt.

Sie werden eine Bestätigung sehen:

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

Nach dem Drücken von „y“ und der Eingabetaste beginnt CDK mit dem Entfernen der gesamten Infrastruktur und der Bereitstellung von Aktualisierungen. Nach Abschluss des Vorgangs wird Folgendes angezeigt:

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

Ergebnis

Sie haben das Tutorial „Bereitstellen einer Web-App mit AWS App Runner“ abgeschlossen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen