Panduan Lengkap Yahut AWS CloudFormation: Kuasai Templates YAML 2024!

Kuasai AWS CloudFormation dengan panduan lengkap ini! Pelajari cara efektif menggunakan templates YAML di 2024 untuk optimalkan proyek Anda. Klik untuk mulai!

By WGS INDONESIA
4.9/4.9
Indonesia
Rp 43,750.00 GRATIS
E-COURSE banner with text and icons representing Artificial Intelligence and video learning

Detail Pembelajaran

Panduan Lengkap Yahut AWS CloudFormation: Kuasai Templates YAML 2024!
  • AWS, CloudFormation, Templates YAML, Panduan, Teknologi, Cloud Computing, 2024

Baca Online

Panduan Lengkap Yahut AWS CloudFormation: Kuasai Templates YAML 2025!

Daftar Isi

  1. Pengantar AWS CloudFormation
  2. Struktur Template YAML CloudFormation
  3. Mendefinisikan Resource
  4. Parameter dan Output
  5. Intrinsic Functions
  6. Condition dan Mapping
  7. Deployment dan Manajemen Stack
  8. Best Practices dan Tips
  9. Studi Kasus: Membuat VPC dan EC2 Instance
  10. Referensi dan Sumber Belajar

1. Pengantar AWS CloudFormation

AWS CloudFormation adalah layanan dari Amazon Web Services yang memungkinkan Anda untuk memodelkan dan menyediakan sumber daya AWS secara otomatis dan terstruktur menggunakan template. Dengan CloudFormation, Anda dapat mengelola infrastruktur sebagai kode (IaC) sehingga memudahkan pengelolaan, pengulangan, dan kolaborasi.

Diagram arsitektur AWS CloudFormation yang menunjukkan template, stack, dan resource AWS

Template CloudFormation ditulis dalam format JSON atau YAML. Pada panduan ini, kita akan fokus pada format YAML yang lebih mudah dibaca dan ditulis.

2. Struktur Template YAML CloudFormation

Template YAML CloudFormation memiliki beberapa bagian utama yang wajib dan opsional, yaitu:

  • AWSTemplateFormatVersion: Versi format template (opsional).
  • Description: Deskripsi singkat tentang template.
  • Parameters: Parameter yang dapat diinput saat deployment.
  • Mappings: Pemetaan nilai statis berdasarkan kondisi.
  • Conditions: Kondisi untuk menentukan resource yang dibuat.
  • Resources: Bagian utama yang mendefinisikan resource AWS.
  • Outputs: Output yang ingin ditampilkan setelah stack dibuat.
AWSTemplateFormatVersion: '2010-09-09'
Description: Template contoh sederhana
Parameters:
  InstanceType:
    Type: String
    Default: t2.micro
Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref InstanceType
      ImageId: ami-0abcdef1234567890
Outputs:
  InstanceId:
    Description: ID instance EC2
    Value: !Ref MyEC2Instance
      

3. Mendefinisikan Resource

Resource adalah komponen utama dalam template CloudFormation yang merepresentasikan layanan AWS yang ingin Anda buat, seperti EC2, S3, VPC, dan lain-lain.

Contoh mendefinisikan sebuah instance EC2:

Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t3.micro
      ImageId: ami-0abcdef1234567890
      KeyName: my-key-pair
      Tags:
        - Key: Name
          Value: MyInstance
      
Diagram yang menunjukkan resource EC2 instance dalam template CloudFormation

4. Parameter dan Output

Parameter memungkinkan Anda membuat template yang dinamis dengan menerima input saat stack dibuat. Output digunakan untuk menampilkan informasi penting setelah stack selesai dibuat.

Contoh parameter dan output:

Parameters:
  InstanceType:
    Type: String
    Default: t2.micro
    AllowedValues:
      - t2.micro
      - t2.small
      - t2.medium
    Description: Tipe instance EC2

Outputs:
  InstanceId:
    Description: ID instance EC2 yang dibuat
    Value: !Ref MyEC2Instance
      

5. Intrinsic Functions

Intrinsic functions adalah fungsi bawaan CloudFormation yang membantu Anda mengelola referensi, kondisi, dan manipulasi data dalam template.

  • !Ref - Mengambil nilai dari parameter atau resource.
  • !GetAtt - Mengambil atribut dari resource.
  • !Sub - Melakukan substitusi string dengan variabel.
  • !Join - Menggabungkan array string menjadi satu string.
  • !If - Menggunakan kondisi untuk memilih nilai.

Contoh penggunaan !Sub dan !GetAtt :

Resources:
  MyBucket:
    Type: AWS::S3::Bucket
Outputs:
  BucketName:
    Value: !Ref MyBucket
  BucketArn:
    Value: !GetAtt MyBucket.Arn
  BucketUrl:
    Value: !Sub "https://${MyBucket}.s3.amazonaws.com"
      

6. Condition dan Mapping

Condition memungkinkan Anda membuat resource atau properti tertentu hanya jika kondisi terpenuhi. Mapping digunakan untuk membuat tabel lookup statis.

Contoh mapping dan condition:

Mappings:
  RegionMap:
    us-east-1:
      AMI: ami-0abcdef1234567890
    us-west-2:
      AMI: ami-0fedcba9876543210

Conditions:
  IsUSEast1: !Equals [ !Ref "AWS::Region", "us-east-1" ]

Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !FindInMap [RegionMap, !Ref "AWS::Region", AMI]
      InstanceType: t2.micro
    Condition: IsUSEast1
      

7. Deployment dan Manajemen Stack

Setelah template selesai dibuat, Anda dapat melakukan deployment stack menggunakan AWS Management Console, AWS CLI, atau AWS SDK. Manajemen stack meliputi update, delete, dan monitoring status stack.

Contoh perintah AWS CLI untuk membuat stack:

aws cloudformation create-stack --stack-name MyStack --template-body file://template.yaml --parameters ParameterKey=InstanceType,ParameterValue=t2.micro
      
Tampilan AWS CloudFormation Stack Management Console dengan daftar stack dan status

8. Best Practices dan Tips

  • Gunakan parameter untuk membuat template fleksibel dan reusable.
  • Manfaatkan kondisi untuk mengontrol resource yang dibuat sesuai kebutuhan.
  • Gunakan mapping untuk mengelola konfigurasi berdasarkan region atau environment.
  • Selalu validasi template sebelum deployment menggunakan aws cloudformation validate-template .
  • Gunakan version control untuk menyimpan template Anda.
  • Dokumentasikan template dengan baik di bagian Description .
Ilustrasi best practices dalam membuat template AWS CloudFormation dengan ikon checklist dan dokumen

9. Studi Kasus: Membuat VPC dan EC2 Instance

Berikut contoh template YAML sederhana untuk membuat VPC, subnet, dan EC2 instance:

AWSTemplateFormatVersion: '2010-09-09'
Description: Template membuat VPC, Subnet, dan EC2 Instance

Resources:
  MyVPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      EnableDnsSupport: true
      EnableDnsHostnames: true
      Tags:
        - Key: Name
          Value: MyVPC

  MySubnet:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref MyVPC
      CidrBlock: 10.0.1.0/24
      AvailabilityZone: !Select [0, !GetAZs '']
      Tags:
        - Key: Name
          Value: MySubnet

  MyInternetGateway:
    Type: AWS::EC2::InternetGateway
    Properties:
      Tags:
        - Key: Name
          Value: MyIGW

  AttachIGW:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      VpcId: !Ref MyVPC
      InternetGatewayId: !Ref MyInternetGateway

  MyRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref MyVPC
      Tags:
        - Key: Name
          Value: MyRouteTable

  MyRoute:
    Type: AWS::EC2::Route
    DependsOn: AttachIGW
    Properties:
      RouteTableId: !Ref MyRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref MyInternetGateway

  MySubnetRouteTableAssociation:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref MySubnet
      RouteTableId: !Ref MyRouteTable

  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t3.micro
      ImageId: ami-0abcdef1234567890
      SubnetId: !Ref MySubnet
      KeyName: my-key-pair
      Tags:
        - Key: Name
          Value: MyEC2Instance

Outputs:
  VPCId:
    Description: ID VPC yang dibuat
    Value: !Ref MyVPC
  SubnetId:
    Description: ID Subnet yang dibuat
    Value: !Ref MySubnet
  InstanceId:
    Description: ID EC2 Instance yang dibuat
    Value: !Ref MyEC2Instance
      
Diagram arsitektur VPC dengan subnet dan EC2 instance yang dibuat menggunakan CloudFormation

10. Referensi dan Sumber Belajar

Edukasi Terkait