Memahami sumber daya Terraform - AWS Panduan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memahami sumber daya Terraform

Alasan utama keberadaan keduanya AWS CloudFormation dan Terraform adalah pembuatan dan pemeliharaan sumber daya cloud. Tapi apa sebenarnya sumber daya cloud itu? Dan apakah CloudFormation sumber daya dan sumber daya Terraform adalah hal yang sama? Jawabannya adalah... ya dan tidak. Untuk mengilustrasikan hal ini, panduan ini memberikan contoh penggunaan CloudFormation dan kemudian Terraform untuk membuat bucket Amazon Simple Storage Service (Amazon S3).

Contoh CloudFormation kode berikut membuat contoh bucket Amazon S3.

{ "myS3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "BucketName": "my-s3-bucket", "BucketEncryption": { "ServerSideEncryptionConfiguration": [ { "ServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true }, "VersioningConfiguration": { "Status": "Enabled" } } } }

Contoh kode Terraform berikut membuat bucket Amazon S3 yang identik.

resource "aws_s3_bucket" "myS3Bucket" { bucket = "my-s3-bucket" } resource "aws_s3_bucket_server_side_encryption_configuration" "bucketencryption" { bucket = aws_s3_bucket.myS3Bucket.id rule { apply_server_side_encryption_by_default { sse_algorithm = "AES256" } } } resource "aws_s3_bucket_public_access_block" "publicaccess" { bucket = aws_s3_bucket.myS3Bucket.id block_public_acls = true block_public_policy = true ignore_public_acls = true restrict_public_buckets = true } resource "aws_s3_bucket_versioning" "versioning" { bucket = aws_s3_bucket.myS3Bucket.id versioning_configuration { status = "Enabled" } }

Untuk Terraform, penyedia mendefinisikan sumber daya, lalu pengembang mendeklarasikan dan mengonfigurasi sumber daya tersebut. Penyedia adalah konsep yang dibahas panduan ini di bagian selanjutnya. Contoh Terraform membuat sumber daya yang sepenuhnya terpisah untuk beberapa pengaturan bucket S3. Membuat sumber daya terpisah untuk pengaturan belum tentu tipikal cara AWS Penyedia Terraform memperlakukan AWS sumber daya. Namun, contoh ini menunjukkan perbedaan penting. Sementara CloudFormation sumber daya ditentukan secara ketat oleh spesifikasi CloudFormation sumber daya, Terraform tidak memiliki persyaratan seperti itu. Di Terraform, konsep sumber daya sedikit lebih samar-samar.

Meskipun alat mungkin berbeda mengenai pagar pembatas yang tepat yang menentukan apa itu sumber daya tunggal, secara umum, sumber daya cloud adalah entitas tertentu yang ada di cloud dan yang dapat dibuat, diperbarui, atau dihapus. Jadi terlepas dari berapa banyak sumber daya yang terlibat, dua contoh sebelumnya keduanya membuat hal yang sama persis dengan pengaturan yang sama persis dalam file Akun AWS.