برنامه نویسی

استقرار یک برنامه Docker سفارشی با آهنگسازی Terraform و Docker

مقدمه

در این وبلاگ ، ما با استقرار یک نمونه AWS EC2 با استفاده از ماژول های ترازو و تنظیم یک کاربرد چند کانتینر dockerized سفارشی با استفاده از داکر آهنگسازیبشر این یک پروژه عالی برای کسانی است که به دنبال تقویت آنها هستند شکلبا اسکلهوت AWS مهارت در هنگام خودکار سازی تأمین زیرساخت.


پیش نیازهای

قبل از شروع ، اطمینان حاصل کنید که:

شکل نصب شده → بارگیری در اینجا

AWS CLI نصب و پیکربندی → اجرا aws configure

یک جفت کلید AWS (به SSH به عنوان مثال)

یک برنامه سفارشی dockerized (یک برنامه وب ساده)


بررسی اجمالی پروژه

ما ایجاد خواهیم کرد:

یک نمونه EC2 با یک گروه امنیتی اجازه ترافیک SSH و HTTP را می دهد

ماژول های ترازو برای استفاده مجدد بهتر

نصب داکر از طریق Terraform's user_data

یک برنامه کاربردی سفارشی چندگانه با استفاده از داکر آهنگسازی


مرحله 1: ارائه دهنده Terraform را تعریف کنید

یک پرونده به نام ایجاد کنید provider.tf و AWS را به عنوان ارائه دهنده مشخص کنید:

provider "aws" {
  region = "us-east-1"  # Change this as needed
}
حالت تمام صفحه را وارد کنید

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


مرحله 2: یک ماژول Terraform برای نمونه EC2 ایجاد کنید

یک پوشه جدید ایجاد کنید modules/ec2 و در داخل آن ، ایجاد کنید main.tfبا variables.tfوت outputs.tf پرونده ها

ماژول ها/ec2/main.tf

resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"  # Amazon Linux 2 AMI (update if needed)
  instance_type = var.instance_type
  key_name      = var.key_name

  security_groups = [var.security_group]

  user_data = file("${path.module}/install_docker.sh")

  tags = {
    Name = var.instance_name
  }
}
حالت تمام صفحه را وارد کنید

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

ماژول ها/EC2/متغیرها. tf

variable "instance_type" {}
variable "key_name" {}
variable "security_group" {}
variable "instance_name" {}
حالت تمام صفحه را وارد کنید

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

ماژول ها/ec2/outputs.tf

output "public_ip" {
  value = aws_instance.web.public_ip
}
حالت تمام صفحه را وارد کنید

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


مرحله 3: ماژول گروه امنیتی را تعریف کنید

یک پوشه جدید ایجاد کنید modules/security_group و قوانین امنیتی را تعریف کنید.

ماژول ها/Security_Group/main.tf

resource "aws_security_group" "ec2_sg" {
  name        = "terraform-sg"
  description = "Allow SSH and HTTP"

  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]  # Allows SSH access
  }

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]  # Allows HTTP access
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]  # Allows all outbound traffic
  }
}
حالت تمام صفحه را وارد کنید

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


مرحله 4: آهنگسازی Docker و Docker را نصب کنید

یک اسکریپت پوسته ایجاد کنید install_docker.sh درون modules/ec2:

#!/bin/bash
sudo yum update -y
sudo yum install docker -y
sudo systemctl start docker
sudo systemctl enable docker
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
حالت تمام صفحه را وارد کنید

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


مرحله 5: با استفاده از آهنگسازی Docker یک برنامه چند کانتینر را مستقر کنید

ایجاد a docker-compose.yml پرونده در نمونه EC2 پس از تهیه:

version: '3.8'
services:
  app:
    image: my-custom-app:latest
    ports:
      - "5000:5000"
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mydb
حالت تمام صفحه را وارد کنید

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

دستورات زیر را به عنوان مثال اجرا کنید:

docker-compose up -d
حالت تمام صفحه را وارد کنید

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


مرحله ششم: با Terraform مستقر شوید

Terraform را اولیه کنید

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

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

پیش نمایش تغییرات

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

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

پیکربندی را اعمال کنید

terraform apply -auto-approve
حالت تمام صفحه را وارد کنید

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

Terraform خروجی خواهد کرد آدرس IP عمومی از نمونه


مرحله 7: به برنامه مستقر دسترسی پیدا کنید

پس از اتمام استقرار ، مرورگر خود را باز کرده و بازدید کنید:

http://:5000
حالت تمام صفحه را وارد کنید

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

شما برنامه وب سفارشی اکنون باید با موفقیت اجرا شود! 🎉


مرحله 8: منابع را نابود کنید (اختیاری)

برای تمیز کردن همه چیز و جلوگیری از اتهامات AWS ، اجرا کنید:

terraform destroy -auto-approve
حالت تمام صفحه را وارد کنید

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


پایان

در این وبلاگ ، ما:

✅ استفاده شده ماژول های ترازو برای استفاده مجدد بهتر

✅ مستقر نمونه EC2 با Terraform

✅ نصب شده Docker and Docker آهنگسازی

✅ دویدن کاربرد چند کانتینر سفارشی

✅ مجاز ترافیک SSH & HTTP با یک گروه امنیتی

✅ خروجی IP عمومی برای دسترسی آسان

این یک گام بزرگ به سمت زیرساخت به عنوان کد (IAC) وت اتوماسیون گردش کار DevOpsبشر

💡 مراحل بعدی:

  • اضافه کردن ظروف بیشتر به برنامه
  • اجرا مقیاس پذیر با AWS ECS
  • استفاده کردن حالت از راه دور Terraform برای مقیاس پذیری بهتر

سؤال یا پیشنهاد دارید؟ آنها را در نظرات رها کنید! 🚀

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

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

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

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