برنامه نویسی

با استفاده از Terraform با S3 و مسیر 53 یک وب سایت استاتیک در LocalStack برگزار کنید

پیوند به repo github

LocalStack یک شبیه ساز برای خدمات AWS است. بیایید مانند محیط زیست مانند محیط محلی خود را اجرا کنیم.
LocalStack برای مبتدیان بسیار مفید است که نه تنها AWS بلکه برای همکاری با آن نیز درک کنند.

در این وبلاگ ، ما با کمک ابزاری دیگر که Terraform است ، نحوه میزبانی یک وب سایت Static S3 را با استفاده از Route53 در LocalStack کشف خواهیم کرد.
Terraform ابزاری IAC است که به تعریف زیرساخت کمک می کند.

برای استفاده از Terraform با LocalStack ، ما باید Tllocal را نصب کنیم که یک بسته بندی برای Terraform است.

بنابراین ، بیایید شروع کنیم.

پیکربندی S3

یک سطل ایجاد کنید

provider "aws" {
    secret_key = "test" 
    region = "us-east-1"
    access_key = "test"
}

resource "aws_s3_bucket" "tf_bucket" {
    bucket = "websitebucket"
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ابتدا بلوک ارائه دهنده را تعریف خواهیم کرد و تنظیمات لازم را قرار می دهیم.
و در بلوک منبع ، ما سطل S3 را با نام تعریف کرده ایم websitebucketبشر این سطل شامل پرونده های وب سایت ما خواهد بود.

شیء را تعریف کرده و بلوک های دسترسی عمومی را از سطل حذف کنید

resource "aws_s3_object" "tf_bucket_object" {
    bucket = aws_s3_bucket.tf_bucket.id
    key = "index.html"
    source = "./index.html"
    content_type = "text/html"
    acl = "public-read"
}

resource "aws_s3_bucket_public_access_block" "tf_pab"{
    bucket = aws_s3_bucket.tf_bucket.id 

    block_public_acls = false
    block_public_policy = false 
    ignore_public_acls = false
    restrict_public_buckets = false 
}

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

منبع اول برای ایجاد یک شی در سطل استفاده می شود که شامل مسیر پرونده Souorce IE است ./folder nameبشر
و از منبع دیگر برای حذف بلوک دسترسی عمومی از سطل استفاده می شود تا محدود به اینترنت نباشد.

خط مشی سطل را پیکربندی کنید

resource "aws_s3_bucket_policy" "tf_bucketpolicy" {
    bucket = aws_s3_bucket.tf_bucket.id

    policy = jsonencode({
        Version = "2012-10-17"
        Statement = [{
                Sid = "PublicReadGetObject"
                Effect = "Allow"
                Principal = "*"
                Action = "s3:GetObject"
                Resource = "${aws_s3_bucket.tf_bucket.arn}/*" 
        }]
    })
} 
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این یک پیکربندی بسیار مهم است. با تعریف این خط مشی سطل ، باعث می شود اشیاء موجود در سطل توسط افراد دیگر در دسترس باشند.
حتی پس از حذف ACL ، استفاده از خط مشی سطل فقط مهم است که اشیاء قابل دسترسی باشند وگرنه ما دریافت خواهیم کرد error 403بشر

پیکربندی وب سایت سطل را تنظیم کنید

resource "aws_s3_bucket_website_configuration" "tf_bucket_config" {
    bucket = aws_s3_bucket.tf_bucket.id

    index_document {
        suffix = "index.html"
    }
} 
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

AWS یک روش عالی برای میزبانی سطل به عنوان یک وب سایت از طریق این پیکربندی فراهم می کند.

مسیر 53 را پیکربندی کنید

service service در LocalStack با نسخه حرفه ای آنها همراه است ، که من آن را ندارم و از این رو ما قادر نخواهیم بود وب سایت را با استفاده از نام دامنه واکشی کنیم.

یک منطقه میزبان ایجاد کنید

resource "aws_route53_zone" "tf_zone" {
    name = "mylocalwebsite.test"  
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این بلوک در ایجاد یک منطقه میزبانی شده استفاده می شود که نام دامنه ما را میزبان می کند.

با نقطه پایانی سطل S3 یک رکورد نام مستعار ایجاد کنید.

resource "aws_route53_record" "tf_record"{
    zone_id = aws_route53_zone.tf_zone.zone_id
    name = "mylocalwebsite.test"
    type = "A"
    alias {
        name = aws_s3_bucket_website_configuration.tf_bucket_config.website_endpoint
        zone_id = aws_s3_bucket.tf_bucket.hosted_zone_id
        evaluate_target_health = false 
    }
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این بلوک با نقطه پایانی S3 Bucekt ما نام مستعار را ایجاد می کند.

و با این کار در پایان ما باید سه کار را برای اجرای کد زیرساخت ها انجام دهیم:-

tflocal init
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این نحو منابع موجود در پرونده را آغاز می کند.

tflocal plan
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این به مشاهده برنامه منابع و تمام پیکربندی های آن کمک می کند که می توانیم قبل از درخواست بررسی کنیم.

tflocal apply
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

و در آخر استفاده از کد پس از تمام چک ها.

و هنگامی که ما با استفاده از مسیر به نقطه پایانی S3 دسترسی پیدا می کنیم:-

http://localhost:4566/websitebucket/index.html

وب سایت استاتیک در LocalStack با استفاده از Terraform با S3 و مسیر 53

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا