이 가이드는 Amazon EC2 인스턴스에서 LAMP 스택(Linux, Apache, MySQL, PHP)을 설치하고 워드프레스를 구축하는 전체 과정을 단계별로 설명합니다.
1. EC2 인스턴스 준비
1.1 EC2 인스턴스 생성
- AWS 콘솔에 로그인하여 EC2 서비스로 이동
- Launch Instance 클릭
- AMI 선택: Amazon Linux 2 또는 Ubuntu 20.04 LTS 권장
- 인스턴스 타입: t2.micro (프리티어) 또는 t3.small 선택
- 키 페어 생성 또는 기존 키 페어 선택
- 보안 그룹 설정:
- SSH (포트 22): 내 IP 또는 필요한 IP 범위
- HTTP (포트 80): 0.0.0.0/0
- HTTPS (포트 443): 0.0.0.0/0
1.2 EC2 인스턴스 접속
# SSH를 통해 인스턴스 접속
ssh -i "your-key.pem" ec2-user@your-ec2-public-ip
# Ubuntu의 경우
ssh -i "your-key.pem" ubuntu@your-ec2-public-ip
2. 시스템 업데이트
# Amazon Linux 2
sudo yum update -y
# Ubuntu
sudo apt update && sudo apt upgrade -y
3. Apache 웹 서버 설치
3.1 Apache 설치
# Amazon Linux 2
sudo yum install -y httpd
# Ubuntu
sudo apt install -y apache2
3.2 Apache 서비스 시작 및 활성화
# Amazon Linux 2
sudo systemctl start httpd
sudo systemctl enable httpd
# Ubuntu
sudo systemctl start apache2
sudo systemctl enable apache2
3.3 Apache 설치 확인
웹 브라우저에서 http://your-ec2-public-ip
로 접속하여 Apache 기본 페이지가 나타나는지 확인합니다.
4. MySQL 데이터베이스 설치
4.1 MySQL 설치
# Amazon Linux 2
sudo yum install -y mysql-server
# Ubuntu
sudo apt install -y mysql-server
4.2 MySQL 서비스 시작 및 활성화
sudo systemctl start mysqld
sudo systemctl enable mysqld
4.3 MySQL 보안 설정
sudo mysql_secure_installation
설정 과정에서 다음과 같이 진행:
- 루트 패스워드 설정
- 익명 사용자 제거: Y
- 루트 원격 로그인 비활성화: Y
- 테스트 데이터베이스 제거: Y
- 권한 테이블 재로드: Y
4.4 워드프레스용 데이터베이스 생성
sudo mysql -u root -p
MySQL 프롬프트에서:
CREATE DATABASE wordpress;
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
5. PHP 설치
5.1 PHP 및 필수 모듈 설치
# Amazon Linux 2
sudo yum install -y php php-mysql php-gd php-xml php-mbstring php-curl
# Ubuntu
sudo apt install -y php libapache2-mod-php php-mysql php-gd php-xml php-mbstring php-curl
5.2 Apache 재시작
sudo systemctl restart httpd # Amazon Linux 2
sudo systemctl restart apache2 # Ubuntu
5.3 PHP 설치 확인
# PHP 정보 파일 생성
sudo vim /var/www/html/info.php
파일 내용:
<?php
phpinfo();
?>
웹 브라우저에서 http://your-ec2-public-ip/info.php
로 접속하여 PHP 정보가 표시되는지 확인합니다.
6. 워드프레스 다운로드 및 설치
6.1 워드프레스 다운로드
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
6.2 워드프레스 파일을 웹 디렉토리로 복사
sudo cp -R wordpress/* /var/www/html/
sudo chown -R apache:apache /var/www/html/ # Amazon Linux 2
sudo chown -R www-data:www-data /var/www/html/ # Ubuntu
sudo chmod -R 755 /var/www/html/
6.3 워드프레스 설정 파일 생성
cd /var/www/html
sudo cp wp-config-sample.php wp-config.php
sudo vim wp-config.php
wp-config.php 파일에서 다음 부분을 수정:
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpressuser' );
define( 'DB_PASSWORD', 'strong_password_here' );
define( 'DB_HOST', 'localhost' );
6.4 보안 키 설정
WordPress 보안 키 생성기에서 생성된 키를 wp-config.php 파일의 해당 부분에 붙여넣습니다.
7. 파일 권한 설정
# 올바른 소유권 설정
sudo chown -R apache:apache /var/www/html/ # Amazon Linux 2
sudo chown -R www-data:www-data /var/www/html/ # Ubuntu
# 적절한 권한 설정
sudo find /var/www/html/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/ -type f -exec chmod 644 {} \;
sudo chmod 600 /var/www/html/wp-config.php
8. Apache 가상 호스트 설정 (선택사항)
8.1 가상 호스트 설정 파일 생성
# Amazon Linux 2
sudo vim /etc/httpd/conf.d/wordpress.conf
# Ubuntu
sudo vim /etc/apache2/sites-available/wordpress.conf
설정 파일 내용:
<VirtualHost *:80>
ServerAdmin webmaster@your-domain.com
DocumentRoot /var/www/html
ServerName your-domain.com
ServerAlias www.your-domain.com
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/wordpress_error.log
CustomLog /var/log/httpd/wordpress_access.log combined
</VirtualHost>
8.2 사이트 활성화 (Ubuntu만 해당)
sudo a2ensite wordpress.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2
8.3 mod_rewrite 활성화
# Amazon Linux 2
sudo vim /etc/httpd/conf/httpd.conf
# AllowOverride None을 AllowOverride All로 변경
# Ubuntu
sudo a2enmod rewrite
sudo systemctl restart apache2
9. 워드프레스 설치 완료
9.1 웹 설치 마법사 실행
웹 브라우저에서 http://your-ec2-public-ip
또는 도메인으로 접속합니다.
9.2 워드프레스 설치 정보 입력
- 사이트 제목
- 관리자 사용자명
- 관리자 비밀번호
- 관리자 이메일 주소
10. 보안 강화 (권장사항)
10.1 불필요한 파일 제거
sudo rm /var/www/html/info.php
sudo rm /tmp/latest.tar.gz
sudo rm -rf /tmp/wordpress
10.2 정기 백업 설정
# 간단한 백업 스크립트 예시
sudo vim /home/ec2-user/backup.sh
백업 스크립트:
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p /home/ec2-user/backups
tar -czf /home/ec2-user/backups/wordpress_$DATE.tar.gz /var/www/html
mysqldump -u wordpressuser -p wordpress > /home/ec2-user/backups/wordpress_db_$DATE.sql
10.3 SSL 인증서 설치 (Let’s Encrypt)
# Certbot 설치
sudo yum install -y certbot python3-certbot-apache # Amazon Linux 2
sudo apt install -y certbot python3-certbot-apache # Ubuntu
# SSL 인증서 발급
sudo certbot --apache -d your-domain.com -d www.your-domain.com
11. 성능 최적화
11.1 PHP 메모리 제한 증가
sudo vim /etc/php.ini
다음 설정들을 수정:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
11.2 Apache 재시작
sudo systemctl restart httpd # Amazon Linux 2
sudo systemctl restart apache2 # Ubuntu
마무리
이제 EC2에서 LAMP 스택과 워드프레스가 성공적으로 설치되었습니다. 추가적으로 다음 사항들을 고려해보세요:
- 정기 업데이트: 시스템, Apache, MySQL, PHP, 워드프레스를 정기적으로 업데이트
- 모니터링: CloudWatch를 통한 서버 모니터링 설정
- 백업: 정기적인 자동 백업 시스템 구축
- CDN: CloudFront와 같은 CDN 서비스 연동
- 방화벽: 추가적인 보안 설정
웹사이트가 정상적으로 동작하는지 확인하고, 필요에 따라 플러그인과 테마를 설치하여 사이트를 커스터마이징하세요!