Bulud Hesablama
6 dəq. oxunuş

AWS EC2-də Veb Tətbiqi Barındırma

AWS EC2 üzərində veb tətbiqi barındırma, Apache qurulması, FTP konfiqurasiyası, Load Balancer və Route53 inteqrasiyası üçün əhatəli rəhbər.

N
Necmettin Demir
21 iyul 2023
Yüklənir...

AWS EC2-də Veb Tətbiqi Barındırma

AWS EC2 Web Hosting
AWS EC2 Web Hosting
AWS mühitində bir veb tətbiqini barındırmağın bir çox yolu var. Veb tətbiqiniz ənənəvi bir veb sayt və ya bir API layihəsi ola bilər. Hər iki növ bundan sonra "veb tətbiqi" (web app) olaraq adlandırılacaq.

Giriş

AWS mühitində bir veb tətbiqini barındırmağın bir çox yolu var. Veb tətbiqiniz ənənəvi bir veb sayt və ya bir API layihəsi ola bilər. Hər iki növ bundan sonra "veb tətbiqi" (web app) olaraq adlandırılacaq. AWS-də bir veb tətbiqini barındırmaq üçün tətbiq edə biləcəyimiz bəzi yollar aşağıda siyahılanmışdır:
  1. S3 bucket-da veb tətbiqi barındırma
  2. ECS, EKS və ya Fargate konteynerlerində veb tətbiqi barındırma
  3. Elastic Beanstalk ilə veb tətbiqi barındırma
  4. Birbaşa EC2 üzərində veb tətbiqi barındırma
[!NOTE] AWS-də məzmun barındırmaq üçün 1, 2 və 3 nömrəli seçimlər müasir yanaşmalar olsa da, bu məqalədə köhnə sistemlərdə çox işləmiş lakin köhnə vərdişləri ilə AWS mühitinə keçmək istəyən şəxslərə müraciət edirik!
Məqsədimiz Route53, Application Load Balancer, Security Groups və s. axınını EC2 ilə birlikdə sürətlə tanıtmaqdır.
Bu məqalədə son seçimi incələyəcəyik. EC2-də istifadə edilə bilən bir çox əməliyyat sistemi var. Biz "Free Tier" (Pulsuz Səviyyə) daxilində əlçatan olan ən aşağı konfiqurasiyalı Linux-u istifadə edəcəyik. AWS Free Tier haqqında daha çox məlumat üçün bura klikləyin.
Amazon EC2 bir veb tətbiqini barındırmaq üçün birbaşa istifadə edilə bilər. Bu məqalədə belə bir tapşırığı yerinə yetirmək üçün lazım olan bütün addımlar addım-addım izah edilir.

Arxa Plan

Nə Edəcəyik?

Əsas arxitektura aşağıda göstərildiyi kimi ola bilər:
Sistem Arxitekturası
Sistem Arxitekturası
Şəkil-001: Ana sistem görünüşü
Deyək ki, məqsədiniz veb saytınızı bir AWS EC2 maşınında barındırmaqdır. Tətbiqin sadəliyi baxımından AWS EC2-dəki Apache Web serverində statik bir HTML səhifə dərc ediləcək. Apache-nin standart www qovluğuna FTP üzərindən əlçatanlıq etməyi mümkün edəcəyik. Bu tələblərdən əlavə bir domen adı (domain) AWS Route53 vasitəsilə bu veb tətbiqinə yönləndiriləcək.
Şəkil-001-də göstərilən arxitekturanı dizayn etmək üçün boz dairələrdəki nömrələrin sırasına görə AWS elementlərini yaradacağıq.
Deyək ki domen adımız WELR.com və bunun işlək elementlərini EC2-də barındırmaq istəyirik.
WELR.com məzmununu bir AWS EC2-də barındırmaq üçün bütün addımlar aşağıdakı kimi ola bilər.

Addım 1: AWS-də bir Təhlükəsizlik Qrupu Yaratma

Bu təhlükəsizlik qrupu EC2 üçün istifadə ediləcək. Bir təhlükəsizlik qrupu bağlı olduğu obyektin firewall-u olaraq düşünülə bilər.
Bütün gələn (inbound) portları aşağıda göstərildiyi kimi ayarlayın:
  • 20-21 (FTP)
  • 1024-1048 (FTP), isteğe bağlı
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP özəl), isteğe bağlı
  • 443 (HTTPS)
Aşağıdakı rəsmdəki qırmızı düzbucaqlı əlaqəli təhlükəsizlik qrupları vasitəsilə ALB-dən EC2-yə olan axını göstərmək baxımından vacibdir.
İnbound Qaydaları
İnbound Qaydaları
Şəkil-002: SG-for-EC2-for-WELR-ın gələn (inbound) qaydaları

Addım 2: Bir EC2 Instance Yaratma

AWS-də bir EC2 instance-ı yaratmaq sadə bir prosesdir. Aşağıdakı rəsmin sağ üst küncündəki Connect (Bağlan) düyməsi EC2-yə bağlanmaq üçün istifadə ediləcək.
EC2 Yaratma
EC2 Yaratma
Şəkil-003: EC2-for-WELR
EC2-for-WELR-a bütün tələbləri yükləyin.
Əvvəlcə EC2 əmr sətrinə bağlanmalısınız. Bu addımı edə bilmək üçün bir çox yol var lakin ən sadəsi birbaşa AWS veb konsolu üzərindən bağlanmaqdır.
EC2 Bağlantısı
EC2 Bağlantısı
Şəkil-004: EC2-for-WELR-a Bağlanma
Connect düyməsinə basdıqdan sonra EC2 əmr sətrinə ec2-user olaraq bağlanacaqsınız.

2.1- Apache Qurulması

TEXT
> sudo s
> yum update -
> yum install -y httpd.x86_6
> systemctl start httpd.servic
> systemctl enable httpd.service
Bütün veb tətbiqi faylları Apache-nin standart veb qovluğunda olacaq.
Apache üçün standart veb qovluğu /var/www/html qovluğudur.

2.2 - FTP Qurulması

TEXT
> sudo su
> yum update -y
> yum install vsftpd
			
> sudo vi /etc/vsftpd/vsftpd.conf
FTP konfiqurasiya faylında aşağıda göstərilən bəzi dəyişiklikləri etməlisiniz.
Konfiqurasiya faylında bütün bu sətirlər göstərildiyi kimi mövcud olmalıdır. vi redaktorunu istifadə etmək üçün necə istifadə edildiyini bilməlisiniz. Əgər vi redaktorunu ilk dəfə istifadə edəcəksinizsə bura baxın.
TEXT
# aşağıdakı sətirlərin hamısındakı # işarələrini silin
anonymous_enable=NO
#
local_enable=YES
#
write_enable=YES
#
local_umask=022
#
dirmessage_enable=YES
#
xferlog_enable=YES
#
connect_from_port_20=YES
#
chroot_local_user=YES
write_enable=YES
allow_writeable_chroot=YES
#
listen=NO
#
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=18.170.116.xxx
vsftpd xidmətini yenidən başlatmaq üçün aşağıdakılardan biri istifadə edilə bilər:
TEXT
> /etc/init.d/vsftpd restart
VƏ YA:
TEXT
> systemctl restart vsftpd
FTP üçün bir istifadəçi əlavə etmək üçün EC2 əmr sətrində aşağıdakıları edin:
TEXT
> adduser awsftpuse
> passwd awsftpuse
> usermod -a -G root awsftpuser
> usermod -d /var/www/html/ awsftpuse
> chown -R awsftpuser /var/www/htm
> systemctl restart vsftpd

2.3 - FTP İstemcisi Qurulması

Məsələn, Windows üzərində Filezilla istemcisi.
AWS-də bütün elementləri yaratdıqdan sonra bir FTP istemcisi ilə bağlanmağı və bir fayl yükləməyi sınayın. index.html faylını EC2-dəki FTP veb qovluğuna yükləyə bilməlisiniz.

Addım 3: ALB üçün Təhlükəsizlik Qrupu Yaratma

Bütün gələn (inbound) portları aşağıda göstərildiyi kimi ayarlayın:
  • 20-21 (FTP)
  • 1024-1048 (FTP), isteğe bağlı
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP özəl), isteğe bağlı
  • 443 (HTTPS)
ALB İnbound Qaydaları
ALB İnbound Qaydaları
Şəkil-005: SG-for-ALB-for-WELR-ın gələn (inbound) qaydaları

Addım 4: Target Group Yaratma

Target Group
Target Group
Şəkil-006: Target Group TG-for-WELR

Addım 5: Application Load Balancer Yaratma

Bu ALB TG-for-WELR hədəf qrupuna sahib olmalıdır.
Target group (Hədəf qrupu) bir EC2 qrupudur. Lakin hələlik yalnız EC2-for-WELR instance-ını ehtiva edir.
Əlavə olaraq bu ALB SG-for-ALB-for-WELR təhlükəsizlik qrupuna sahib olmalıdır.
Şəkil-007: Application Load Balancer ALB-for-WELR
ALB Yaratma
ALB Yaratma

Addım 6: Təhlükəsizlik Qrupları Arası İcazələr

SG-for-EC2-for-WELR-a SG-for-ALB-for-WELR-dan gələn bütün TCP tələblərini qəbul edəcək şəkildə gələn (inbound) qaydalar əlavə edin.
Təhlükəsizlik Qrupları Arası Axın
Təhlükəsizlik Qrupları Arası Axın
Şəkil-008: Təhlükəsizlik qrupları vasitəsilə ALB-dən EC2-yə axına icazə vermə

Addım 7: Route53 Hosted Zone Yaratma

Aşağıdakı kimi dörd qeydə (record) sahib olmalıdır:
  • NS və SOA avtomatik olaraq yaradılır
  • Record A yaradın. Aşağıdakı rəsmdə görüldüyü kimi
  • Record CNAME yaradın - welr.com üçün
Şəkil-009 - Route53 Qeydləri
Route53 Qeydləri
Route53 Qeydləri
NS ünvanları domen adı idarəetmə interfeysində domen adını EC2 Apache-də barındırdığınız veb tətbiqinə yönləndirmək üçün istifadə edilə bilər.

Nəticə

Bu məqalənin əvvəlində qeyd edildiyi kimi istənilən bulud mühitində bir veb tətbiqini barındırmağın bir çox yolu var. AWS EC2 üzərində bəzi incələmələr etdik. Görüldüyü kimi veb tətbiqinin işlək elementlərini Apache-yə FTP üzərindən əl ilə dağıtdığımızı fərz edirik. Lakin istənilən CI/CD vasitəsi ilə bu proses FTP əmrləri istifadə edilərək avtomatlaşdırıla bilər.
Bu məqalənin əsas məqsədi Route53 və Yük Balanslaşdırıcıların (Load Balancers) arxasındakı EC2-də bir veb tətbiqinin AWS mühitində necə barındırılacağını göstərməkdir.

Öyrəndiklərimiz:

  • EC2 instance yaratma və konfiqurasiya
  • Apache veb serveri qurulması
  • FTP konfiqurasiyası və istifadəçi əlavə etmə
  • Security Group ayarları
  • Application Load Balancer qurulması
  • Route53 ilə domen yönləndirmə

☁️ Bulud Hesablama Xidmətləri

AWS, Azure və Google Cloud platformalarında infrastruktur dizaynı, miqrasiya, idarəetmə və optimallaşdırma xidmətləri təqdim edirik.

Xidmətimizi İncələ

📞 Bizimlə Əlaqə Qurun

AWS və bulud hesablama həllərimiz haqqında ətraflı məlumat almaq üçün komandamızla görüşün.

Əlaqə