Bu yazımda Huawei Cloud'un sunmuş olduğu avantajlı Flexus Serisi Makinalar ile tek adımda nasıl bir websitesi kurabiliriz sorusunu yanıtlayacağım. Bu örnekte Flexus X serisini tercih etmemin sebebi kolaylıkla makinamın Cpu ve Ram miktarını ihtiyacıma göre kendim belirleyebilirim.
Bu örnekte kullandığım servis ve teknolojiler;
- Flexus X (minimum 3 vCPU , 3 GB RAM)
- Ubuntu Server Image (Paylaşılan user-data ubuntu OS için geçerlidir.)
- Docker Container
- User Data (Provisioning)
Flexus X Sunucu
Huawei Cloud Console ekranına giriş yapalım. Ardından Huawei Cloud Flexus servisini seçelim. Açılan ekranda Buy FlexusX'e tıklayalım.
Pay per-use (kullandıkça öde) yapıda ilerliyorum ve Ubuntu için minimum gereksinimli bir cpu ram miktarı belirliyorum. Image olarakta Ubuntu seçiyorum. (User Data Scripti Debian Tabanlı işletim sistemler içindir farklı OS kullanıyorsanız değişiklik yapmanız gerekmektedir.)
Network kısmına geçtiğimizde Http ve Https portlarını herkese açıyorum (80,443 - 0.0.0.0/0). Bu sayede oluşan websitesine dışardan erişebileceğiz.
Son olarakta User Data'nın çalışması için Login mode kısmını Key Pair (.pem) veya Set Password Later seçmemiz gerekmektedir. Biz şifremizi daha sonra belirleyeceğimizden Set Password Later seçeneği üzerinden ilerliyorum.
Advanced Option kısmından User Data kısmını ise aşağıda paylaşmış olduğum kodu kullanıyorum. Yaklaşık 1 Dakika içinde size tanımlanan EIP(Public IP)" üzerinden websiteniz kurulacaktır. Dilerseniz bir Domain (Alan adı) satın alarak bu makinanın ip sini yönlendirebilirsiniz.
Sevgi ve saygılarımla,
User Data
(Dikkat: Lütfen "WORDPRESS_DB_USER", "WORDPRESS_DB_PASSWORD", "MYSQL_USER" ve "MYSQL_PASSWORD" gibi alanları kendi güvenli kullanıcı adı ve şifrenizle değiştirin.)
#!/bin/bash
apt-get update -y
apt-get install ca-certificates curl wget -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update -y
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
systemctl start docker
systemctl enable docker
mkdir -p /home/ubuntu/wordpress
cd /home/ubuntu/wordpress
cat > /home/ubuntu/wordpress/docker-compose.yml <<EOL
version: '3.8'
services:
wordpress:
image: wordpress:latest
container_name: wordpress
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: password
volumes:
- wordpress_data:/var/www/html
networks:
- wordpress_net
depends_on:
- mysql
mysql:
image: mysql:5.7
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- mysql_data:/var/lib/mysql
networks:
- wordpress_net
volumes:
wordpress_data:
mysql_data:
networks:
wordpress_net:
driver: bridge
EOL
docker compose -f /home/ubuntu/wordpress/docker-compose.yml up -d