Heimetli Software testet die Cloud
Nach den Erfahrungen mit www.heimetli.org haben wir diesmal eine Website mit dem cdk in die Cloud gebracht. Die Website wird nicht durch Route 53 verwaltet sondern durch einen CNAME-Record im DNS mit unserer Domain verbunden.
Mit dem cdk klickt man nicht wie wild in allen möglichen Bereichen der AWS Console herum, sondern schreibt ein Programm das definiert was man haben will. Die Tools im cdk erzeugen daraus die nötigen Konfigurationen auf AWS und laden die Files für die Webseite hoch. Für Softwareentwickler ist das viel naheligender als all die Roles, Permissions und sonstigen Einstellungen zusammenzuklicken.
Deployment mit dem cdk
Der cdk unterstützt verschiedene Sprachen, und wir haben uns für die Typescript-Version entschieden. Die folgenden Ausführungen beziehen sich deshalb nur auf diese Version.
Der grösste Teil des Codes wird von cdk selber erzeugt, man muss bloss die Region in infrastructure/bin/infrastructure.ts einstellen:
new InfrastructureStack(app, 'InfrastructureStack', { env: { region: "eu-central-1" } });
In infrastructure/lib/infrastructure-stack.ts definiert man den Bucket und woher der Content für die Webseite kommen soll:
const bucket = new s3.Bucket( this, "cloud.heimetli.ch", { bucketName: "cloud.heimetli.ch", publicReadAccess: true, removalPolicy: cdk.RemovalPolicy.DESTROY, websiteIndexDocument: "index.html" } ) ; const deployment = new s3Deploy.BucketDeployment( this, "deployStaticWebsite", { sources: [s3Deploy.Source.asset("../website")], destinationBucket: bucket } ) ;
Wenn das erledigt ist, braucht es noch zwei oder drei Befehle an den cdk und die Site ist online.
WICHTIG: den seltsamen Bucket den der cdk erzeugt ja nicht löschen! Wenn man das macht, verweigert der cdk fortan alle Aktionen...