AWS 주간 구축 - S1 E4 - 정적 S3 사이트
안타깝게도 오늘은 Jacquie가 자리를 비웠기 때문에 대머리 남자가 카메라를 향해 고함치는 소리만 듣게 됩니다. 그러나 그는 ( ) 최신 놀라운 도구인 Terraform용 클라우드 개발 키트(CDK)를 사용하여 몇 가지 마법 같은 일을 하는 방법을 보여줄 것입니다. 오늘은 정적 웹 사이트를 위한 인프라 구축에 관한 모든 것입니다. CDK와 Terraform의 강력한 기능으로 모두 가능합니다. 🪣
여기 dev.to에 게시하여 쇼 노트, 링크, 소셜, 코드 및 라이브 스트림 중에 언급된 기타 사항을 여러분과 공유할 것입니다! 🚀
질문, 피드백 또는 의견이 있으면 이 게시물의 댓글에 자유롭게 남겨주세요! 😇
매주 배포됨
오늘 Deployed Weekly에서는 모든 C# 팬을 위해 다시 AWS Power Tools를 다룰 것입니다. Terraform과 CDK는 여러분에게 말할 것이 있습니다. 개인 IP를 통한 사이트 간 VPN에 대한 일부 코드 공유. 다음 주에 참여할 수 있는 멋진 워크숍과 모든 개발자와 빌더를 위한 월드 챔피언십이 있습니다!
dotnet용 AWS PowerTools는 알파 버전입니다: https://github.com/awslabs/aws-lambda-powertools-dotnet
TF용 CDK가 이제 GA입니다. https://www.hashicorp.com/blog/cdk-for-terraform-now-generally-available
직접 연결을 통한 사설 IP를 통한 AWS 사이트 간 VPN. Terraform의 모든 것:
https://github.com/aws-samples/aws-site-to-site-vpn-private-ip-vpn
Pulumi의 Python을 사용한 코드형 인프라 소개 - 워크숍:
게임 데이 월드 챔피언십: https://pages.awscloud.com/GLOBAL-gamedev-OE-AWS-GameDay-WorldChampionship-2022-reg-event.html
Terraform용 CDK가 있는 정적 웹 사이트
오늘 우리는 새로 출시된 Terraform용 CDK(클라우드 개발 키트)를 확인하고 있습니다. 🥳 그리고 이를 통해 Amazon S3 🪣를 사용하여 정적 웹사이트 호스팅 시스템을 구축할 것입니다.
목표는 정적 웹 사이트를 호스팅하는 데 필요한 모든 구성으로 S3 버킷을 설정하는 것입니다. 이것은 Terraform용 CDK를 사용한 Darko의 첫 번째 시도였으므로 약간의 여유를 두었습니다.
Terraform용 CDK란 무엇입니까? Terraform용 클라우드 개발 키트입니다... 알겠습니다. 하지만 그게 무슨 뜻인가요? 즉, TypeScript, Python, C#, Java 또는 Go 중에서 선택하여 Terraform 구성을 작성하고 HashiCorp Terraform 공급자 및 모듈의 전체 에코시스템을 계속 활용할 수 있습니다. 아주 멋진.
즉, 다음 코드 줄에 정의된 정적 웹 사이트에 대한 인프라가 AWS에 있음을 의미합니다.
import { Construct } from "constructs";
import * as path from "path";
import { sync as glob } from "glob";
import { lookup as mime } from "mime-types";
import { App, TerraformStack, TerraformOutput } from "cdktf";
import { AwsProvider, s3 } from "@cdktf/provider-aws"
class MyStack extends TerraformStack {
constructor(scope: Construct, name: string) {
super(scope, name);
// AWS Provider
new AwsProvider(this, 'AWS', {
region: "us-west-2",
});
// Bucket
const cobucket = new s3.S3Bucket(this, "cobus-website-bucket", {
bucket: "cobus-website-bucket",
});
// Configure the bucket for a website
new s3.S3BucketWebsiteConfiguration(this, "cobus-websiteconfig", {
bucket: cobucket.bucket,
indexDocument: {
suffix: "index.html"
},
errorDocument: {
key: "error.html"
},
});
// Open up the bucket
new s3.S3BucketPolicy(this, "cobus-policy", {
bucket: cobucket.bucket,
policy: JSON.stringify({
Version: "2012-10-17",
Id: "public-website-access",
Statement: [
{
Sid: "PublicRead",
Effect: "Allow",
Principal: "*",
Action: ["s3:GetObject"],
Resource: [`${cobucket.arn}/*`, `${cobucket.arn}`],
},
],
}),
});
// Add files
const absolutePath = path.resolve(__dirname, "website/");
const files = glob("**/*.html", {
cwd: path.resolve(__dirname, "website/"),
});
// file loop
files.forEach((f) => {
const filePath = path.join(absolutePath, f);
new s3.S3Object(this, `${f}`, {
bucket: cobucket.bucket,
key: f,
source: filePath,
contentType: mime(path.extname(f)) || "text/html",
});
});
// outputs
new TerraformOutput(this, 'bucketname', {
value: cobucket.bucket,
});
}
}
const app = new App();
new MyStack(app, "staticwebsite-with-cdktf");
app.synth();
💾 동영상을 따라가면서 오늘 Darko가 작성한 나머지 코드를 확인하세요. https://github.com/darko-mesaros/cdktf-s3-website
토론 링크:
🐦 호스트와 게스트에게 연락:
재키:
다르코:
Reference
이 문제에 관하여(AWS 주간 구축 - S1 E4 - 정적 S3 사이트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws/build-on-aws-weekly-s1-e4-static-s3-site-45c6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)