Чому AWS EC2 для Node.js?
AWS EC2 надає гнучкі обчислювальні можливості в хмарі, що дозволяє розгортати додатки з високою доступністю та масштабованістю. В поєднанні з SSL це забезпечує безпечну комунікацію між вашим бекендом і клієнтами, підвищуючи довіру користувачів і SEO-рангування.
Крок 1: Налаштування інстансу AWS EC2
Запуск інстансу:
- Увійдіть у свою AWS Management Console.
- Перейдіть до панелі EC2 і натисніть Launch Instance.
- Виберіть останній AMI Amazon Linux 2023 або Ubuntu 22.04 для кращої безпеки та сумісності.
- Виберіть тип інстансу (наприклад, t2.micro для безкоштовного рівня або t3.small для продакшн).
Налаштування деталей інстансу:
- Переконайтеся, що автоматичний публічний IP-адрес увімкнений.
- Додайте групу безпеки, що дозволяє трафік на портах 22 (SSH), 80 (HTTP) і 443 (HTTPS).
Ключова пара: Створіть нову ключову пару або використовуйте наявну. Завантажте файл .pem
для доступу до інстансу.
Запустіть інстанс: Натисніть Launch і зачекайте, поки інстанс ініціалізується.
Крок 2: Налаштування Node.js на EC2
SSH доступ до інстансу:
ssh -i "your-key.pem" ec2-user@your-ec2-public-ip
Встановлення Node.js:
Для Amazon Linux:
sudo yum update -y
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
Для Ubuntu:
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
Перевірка встановлення:
node -v
npm -v
Завантажте ваш Node.js додаток:
Використовуйте scp
або Git для передачі файлів вашого додатку:
scp -i "your-key.pem" -r /path/to/your/app ec2-user@your-ec2-public-ip:/home/ec2-user
Крок 3: Встановлення та налаштування PM2
Встановлення PM2:
sudo npm install -g pm2
Запуск вашого додатку:
pm2 start app.js
pm2 save
pm2 startup
Дозвіл трафіку на порт 80:
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Крок 4: Налаштування домену та SSL сертифікату
Вказівка домену на ваш EC2 інстанс:
- Оновіть A record вашого домену в DNS провайдері, щоб він вказував на публічний IP вашого EC2.
Встановлення Nginx:
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
Встановлення Certbot для SSL:
Для Amazon Linux:
sudo yum install -y certbot python3-certbot-nginx
Для Ubuntu:
sudo apt install -y certbot python3-certbot-nginx
Налаштування SSL з Certbot:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Автоматичне оновлення SSL:
sudo crontab -e
Додайте цей рядок для оновлення SSL кожні 3 місяці:
0 0 * * 0 certbot renew --quiet
Крок 5: Оновлення Nginx для зворотного проксі
Редагування конфігурації Nginx:
sudo nano /etc/nginx/conf.d/yourdomain.com.conf
Додайте цю конфігурацію:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Перевірка та перезапуск Nginx:
sudo nginx -t
sudo systemctl restart nginx
Крок 6: Оптимізація для SEO
Використовуйте HTTPS: Google віддає перевагу безпечним вебсайтам у своєму ранжуванні.
Забезпечте примусове використання HTTPS, перенаправляючи HTTP на HTTPS у конфігурації Nginx:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
Оптимізація метаданих: Додайте мета-теги, такі як title, description і keywords, у ваші HTML шаблони.
Використання кешування: Використовуйте Nginx для налаштування заголовків кешування для статичних ресурсів.
Мобільна адаптивність: Переконайтеся, що ваш додаток є мобільним, оскільки Google надає перевагу адаптивним дизайнам.
Подання карти сайту: Використовуйте інструменти, як Google Search Console, для подання карти сайту для вашого домену.
Висновок
Розгортання Node.js бекенду на AWS EC2 з SSL є потужним способом масштабування вашого додатку при забезпеченні безпеки та готовності до SEO в 2025 році. Слідування цьому посібнику дозволить вам отримати повнофункціональний і безпечний сервер, готовий до обробки продукційного трафіку.
Готові підняти свій додаток на новий рівень? Почніть розгортати вже сьогодні!
Перекладено з: How to Deploy a Node.js Backend on AWS EC2 with SSL Certificate in 2025