آشنایی با آمازون EC2 و موارد استفاده از آن

Amazon Elastic Compute Cloud (EC2) یکی از خدمات اصلی خدمات وب آمازون (AWS) است که ظرفیت محاسبات مقیاس پذیر در ابر را ارائه می دهد. برای مشاغل و توسعه دهندگان ، EC2 نیاز به سرمایه گذاری در پیشرو سخت افزار را از بین می برد و به آنها امکان می دهد تا در حالی که فقط برای ظرفیتی که در واقع استفاده می کنند ، سریعتر توسعه و استقرار دهند.
آمازون EC2 چیست؟
EC2 سرورهای مجازی ، معروف به “نمونه ها” را ارائه می دهد که می تواند با ترکیب های مختلف CPU ، حافظه ، ذخیره و ظرفیت شبکه پیکربندی شود. این موارد در زیرساخت های جهانی آمازون اجرا می شود و می تواند در چندین مکان در سراسر جهان ، معروف به مناطق و مناطق در دسترس باشد.
از موارد EC2 به عنوان رایانه های مجازی در مراکز داده AWS که می توانید از راه دور به آن دسترسی پیدا کنید ، فکر کنید. شما می توانید هر نرم افزاری را روی این دستگاه های مجازی نصب کنید ، آنها را مطابق نیاز خود پیکربندی کنید و از آنها درست مانند سرورهای فیزیکی اما با انعطاف پذیری ابر استفاده کنید.
موارد استفاده عملی برای EC2
میزبانی برنامه وب
مثال: یک شرکت در حال رشد تجارت الکترونیکی در فصول تعطیلات سنبله های ترافیکی را تجربه می کند. آنها به جای ارائه سرورهای فیزیکی بیش از حد که در بیشتر سال بیکار هستند ، آنها میزبان وب سایت خود در موارد EC2 هستند که می توانند در دوره های اوج اندازه گیری شوند و در طول عملیات عادی کاهش یابد.
# Scale up during Black Friday with Auto Scaling Group
aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name my-ecommerce-asg \
--min-size 10 \
--max-size 30 \
--desired-capacity 20
محیط های توسعه و آزمایش
مثال: یک تیم توسعه نرم افزار برای آزمایش ویژگی های جدید به محیط های جدا شده نیاز دارد. آنها به جای به اشتراک گذاشتن سرورهای تست فیزیکی ، آنها برای هر توسعه دهنده یا شاخه ویژگی ها نمونه های EC2 ایجاد می کنند و امکان آزمایش موازی را بدون درگیری فراهم می کنند.
# Launch a development instance from a custom image
aws ec2 run-instances \
--image-id ami-12345678 \
--instance-type t3.large \
--key-name dev-keypair \
--security-groups dev-security-group \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=DevEnv-FeatureX}]'
پردازش داده های بزرگ
مثال: یک موسسه تحقیقاتی نیاز به تجزیه و تحلیل مجموعه داده های ژنومی بزرگ دارد. آنها از یک خوشه از نمونه های قدرتمند EC2 برای پردازش ترابایت داده ها به صورت موازی استفاده می کنند و فقط در صورت لزوم منابع محاسباتی با کارایی بالا را پرداخت می کنند.
# Launch a cluster of compute-optimized instances
aws ec2 run-instances \
--image-id ami-87654321 \
--instance-type c5.12xlarge \
--count 5 \
--block-device-mappings 'DeviceName=/dev/sda1,Ebs={VolumeSize=500}' \
--placement 'GroupName=compute-cluster'
بازیابی فاجعه
مثال: یک شرکت خدمات مالی نمونه های پشتیبان EC2 را در یک منطقه جغرافیایی متفاوت حفظ می کند. اگر مرکز داده اصلی آنها قطع قطع شود ، می توانند به سرعت ترافیک را به این موارد EC2 هدایت کنند و از تداوم تجارت اطمینان حاصل کنند.
تنظیم یک نمونه EC2: یک راهنمای عملی
1. نوع نمونه درست را انتخاب کنید
EC2 خانواده های نمونه مختلفی را برای موارد مختلف استفاده می کند:
- هدف عمومی (T3 ، M5): CPU/حافظه متعادل برای سرورهای وب و محیط های توسعه
- محاسبه بهینه سازی شده (C5): CPU بالا برای پردازش دسته ای و مدل سازی علمی
- بهینه سازی حافظه (R5): حافظه بزرگ برای پایگاه داده و تجزیه و تحلیل در زمان واقعی
- ذخیره سازی بهینه شده (D2 ، I3): توان دیسک بالا برای انبارداری داده
- موارد GPU (P3 ، G4): محاسبات شتاب برای یادگیری ماشین و ارائه گرافیک
مثال عملی: برای یک برنامه وب معمولی با پایگاه داده MySQL:
- سرورهای وب Frontend: T3.Medium (2 VCPU ، حافظه 4 گیگابایتی)
- سرورهای API Backend: C5.Large (2 VCPU ، حافظه 4 گیگابایتی)
- سرور پایگاه داده: R5.Large (2 VCPU ، حافظه 16 گیگابایتی)
2. ایجاد و پیکربندی نمونه های EC2
# Launch a web server instance with user data script
aws ec2 run-instances \
--image-id ami-0c55b159cbfafe1f0 \
--instance-type t3.medium \
--key-name mywebapp-key \
--security-group-ids sg-12345678 \
--subnet-id subnet-12345678 \
--user-data '#!/bin/bash
apt update -y
apt install -y nginx
systemctl start nginx'
3. بهترین شیوه های امنیتی
- از گروه های امنیتی به عنوان فایروال استفاده کنید (فقط درگاه های لازم را باز کنید)
- به جای ذخیره اعتبار AWS ، نقش های IAM را برای نمونه های EC2 اجرا کنید
- نمونه های خود را به روز و به روز کنید
- برای مواردی که نیازی به دسترسی مستقیم به اینترنت ندارند ، از زیر شبکه های خصوصی استفاده کنید
مثال: گروه امنیتی برای یک سرور وب:
aws ec2 create-security-group \
--group-name WebServerSG \
--description "Web Server Security Group" \
--vpc-id vpc-12345678
# Allow HTTP and HTTPS from anywhere
aws ec2 authorize-security-group-ingress \
--group-id sg-87654321 \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress \
--group-id sg-87654321 \
--protocol tcp \
--port 443 \
--cidr 0.0.0.0/0
# Allow SSH only from company IP
aws ec2 authorize-security-group-ingress \
--group-id sg-87654321 \
--protocol tcp \
--port 22 \
--cidr 203.0.113.0/24
4. استراتژی های بهینه سازی هزینه
- برای بارهای کاری قابل پیش بینی استفاده کنید (پس انداز حداکثر 75 ٪)
- مقیاس خودکار را برای مطابقت با ظرفیت با تقاضا اجرا کنید
- استفاده از نمونه های نقطه ای برای مشاغل دسته ای تحمل گسل (پس انداز حداکثر 90 ٪)
- به طور مرتب نمونه های بلااستفاده را مرور و خاتمه دهید
مثال: راه اندازی یک گروه مقیاس خودکار برای بهینه سازی هزینه ها:
# Create a launch template
aws ec2 create-launch-template \
--launch-template-name WebAppTemplate \
--version-description "Initial version" \
--launch-template-data '{
"ImageId": "ami-0c55b159cbfafe1f0",
"InstanceType": "t3.medium",
"SecurityGroupIds": ["sg-87654321"]
}'
# Create Auto Scaling group
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name WebAppASG \
--launch-template LaunchTemplateName=WebAppTemplate,Version='$Latest' \
--min-size 2 \
--max-size 10 \
--desired-capacity 2 \
--vpc-zone-identifier "subnet-12345678,subnet-87654321" \
--target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/73e2d6bc24d8a067"
پایان
آمازون EC2 ستون فقرات را برای برنامه های ابری بی شماری فراهم می کند ، انعطاف پذیری ، مقیاس پذیری و مقرون به صرفه بودن را در مقایسه با زیرساخت های سنتی در محل ارائه می دهد. با درک انواع نمونه های مختلف ، فرآیندهای راه اندازی و استراتژی های بهینه سازی ، مشاغل در هر اندازه می توانند EC2 را برای ساختن برنامه های انعطاف پذیر که با نیازهای آنها رشد می کنند ، ضمن حفظ کارایی عملیاتی ، استفاده کنند.