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

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:
- S3 bucket-da veb tətbiqi barındırma
- ECS, EKS və ya Fargate konteynerlerində veb tətbiqi barındırma
- Elastic Beanstalk ilə veb tətbiqi barındırma
- 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
- Amazon Security Group (Təhlükəsizlik Qrupu)
- Amazon EC2
- Amazon Load Balancer (Yük Balanslaşdırıcı)
- Amazon Route53
Nə Edəcəyik?
Əsas arxitektura aşağıda göstərildiyi kimi ola bilər:

Şə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.

Şə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.

Şə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.

Şə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)

Şəkil-005: SG-for-ALB-for-WELR-ın gələn (inbound) qaydaları
Addım 4: Target Group Yaratma

Şə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

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.
Şə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

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ə