Wdrożenie statycznej strony

0

Zastanawiam się w jaki sposób zrobić deploy statycznej strony na AWS używając do tego aplikacji, która byłaby czymś w rodzaju kreatora stron. Wybierasz elementy, które mają być widoczne na stronie, dodajesz zdjęcia, teksty a później robisz deploy.

Ma ktoś jakieś propozycje?

1

Najprościej przez AWS CDK. Po prostu aplikacja odpowiedzialna za deploy tworzy wymagane zasoby w AWS i robi deploy. Na przykład tak:

import {Bucket, BucketAccessControl} from "@aws-cdk/aws-s3";
import {BucketDeployment, Source} from "@aws-cdk/aws-s3-deployment";
import * as path from "path";

// tworzy S3 bucket do hostowania stron statycznych https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html
const bucket = new Bucket(this, 'Bucket', {
  ...
})

// deploy na stworzony wcześniej S3 bucket
new BucketDeployment(this, 'BucketDeployment', {
  destinationBucket: bucket,
  sources: [Source.asset(path.resolve(__dirname, './dist'))]
})

Najlepiej zrobić tak, że bucket ze stroną jest prywatny, a stronę udostępniasz publicznie za pomocą AWS CloudFront

import {Distribution, OriginAccessIdentity} from "@aws-cdk/aws-cloudfront";
import {S3Origin} from "@aws-cdk/aws-cloudfront-origins";

const bucket = new Bucket(this, 'Bucket', {
  accessControl: BucketAccessControl.PRIVATE,
})
const originAccessIdentity = new OriginAccessIdentity(this, 'OriginAccessIdentity');

bucket.grantRead(originAccessIdentity);

new Distribution(this, 'Distribution', {
  defaultRootObject: 'index.html',
  defaultBehavior: {
    origin: new S3Origin(bucket, {originAccessIdentity}),
  },
})

1 użytkowników online, w tym zalogowanych: 0, gości: 1