Terraform ilə AWS İnfrastrukturunun Qurulması: Başlanğıc Bələdçisi
Terraform, komandalara bulud infrastrukturunu manual sazlamalar əvəzinə konfiqurasiya faylları vasitəsilə idarə etməyə imkan verir (Infrastructure as Code - IaC). Bu bələdçidə Terraform-un əsas anlayışlarını, üstünlüklərini və sadə bir AWS layihəsini (Security Group və EC2 instansiyası) addım-addım öyrənəcəyik.
Terraform, komandalara bulud infrastrukturunu manual sazlamalar əvəzinə konfiqurasiya faylları vasitəsilə idarə etməyə imkan verir (Infrastructure as Code - IaC). Bu bələdçidə Terraform-un əsas anlayışlarını, üstünlüklərini və sadə bir AWS layihəsini (Security Group və EC2 instansiyası) addım-addım öyrənəcəyik.
Terraform Nədir?
Terraform, HashiCorp tərəfindən yaradılmış açıq mənbəli bir alətdir. O, serverləri, şəbəkələri və verilənlər bazalarını bulud panellərində əllə yaratmaq əvəzinə, kodla təyin etməyə imkan verir. Terraform AWS, Azure və Google Cloud kimi nəhəng platformalarla tam uyumlu çalışır.
Terraform-un Əsas Üstünlükləri
- Kodlaşdırılmış İnfrastruktur: İnfrastruktur kod şəklində yazılır və Git kimi versiya nəzarət sistemlərində saxlanıla bilir.
- Sürətli Tətbiq: Resurslar manual sazlama olmadan saniyələr içində qurulur.
- Ardıcıllıq: İnkişaf (Dev), test və istehsal (Prod) mühitləri arasındakı fərqlər aradan qalxır.
- Multi-Cloud: Eyni alətlə fərqli bulud provayderlərini idarə etmək mümkündür.
Əsas Anlayışlar
- Provider (Provayder): Terraform-un hansı platforma ilə danışacağını müəyyən edir (məsələn: AWS).
- Resource (Resurs): Yaratmaq istədiyiniz komponentdir (Virtual maşın, S3 bucket və s.).
- State (Vəziyyət): Terraform infrastrukturun cari vəziyyətini
terraform.tfstatefaylında saxlayır. Bu, dəyişiklikləri izləmək üçün vacibdir. - Execution Plan (İcra Planı): Dəyişiklikləri tətbiq etmədən öncə nəyin baş verəcəyini göstərən önbaxışdır.
Praktiki Layihə: AWS-də EC2 Qurulması
Bu kiçik layihədə bir Security Group yaradacaq və EC2 instansiyasını işə salacağıq.Ön Hazırlıq:
- AWS Hesabı: Aktiv bir hesab.
- AWS CLI: Qurulmuş və
aws configureəmri ilə sazlanmış olmalıdır. - Terraform: Kompüterinizdə quraşdırılmalıdır.
Addım 1: Layihə Qovluğunu Yaradın
Bash
Kod (Code):
mkdir terraform-aws-project
cd terraform-aws-project
Addım 2: main.tf Faylını Yaradın
Bu fayl bizim əsas konfiqurasiya mərkəzimiz olacaq.Addım 3: AWS Provider-i Sazlayın
main.tf faylına daxil edin:Terraform
Kod (Code):
provider "aws" {
region = "us-east-1"
}
Addım 4: Security Group Yaradın
SSH (22) və HTTP (80) portlarına icazə vermək üçün:Terraform
Kod (Code):
resource "aws_security_group" "web_sg" {
name = "web-security-group"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}
Addım 5: EC2 İnstansiyasını Təyin Edin
Terraform
Kod (Code):
resource "aws_instance" "web_server" {
ami = "ami-0c02fb55956c7d316" # Regiona uyğun AMI ID
instance_type = "t2.micro"
security_groups = [aws_security_group.web_sg.name]
tags = {
Name = "terraform-demo-server"
}
}
Terraform İş Axını (Commands)
İnfrastrukturu ayağa qaldırmaq üçün növbə ilə bu əmrləri icra edin:| Əmr | Məqsədi |
terraform init | Layihəni hazırlayır və provayderləri yükləyir. |
terraform validate | Kodda sintaksis xətası olub-olmadığını yoxlayır. |
terraform plan | Hansı dəyişikliklərin ediləcəyini göstərir. |
terraform apply | İnfrastrukturu real olaraq qurur. |
terraform destroy | Yaradılmış bütün resursları silir. |
Yeni Başlayanlar üçün Qızıl Qaydalar
- Git istifadə edin: Terraform fayllarınızı həmişə versiya nəzarətində saxlayın.
- State faylını qoruyun:
.tfstatefaylını heç vaxt public repozitoriyalara yükləməyin. - Dəyişənlərdən istifadə edin: Sabit dəyərləri (məsələn, region adını) kodun içində bərk yazmaq əvəzinə
variables.tfistifadə edin. - Planı yoxlayın:
applyetmədən öncə həmişəplançıxışına baxın.
Qeyd: Bu məqalə devs.az icması üçün hazırlanmışdır. Faydalı oldusa, reaksiyalarınızı gözləyirik!