티스토리 뷰
2. AWS로 워드프레스 구축하기(2) 웹서버, DB 구축하기
네트환경을 설정하였으니 이젠 웹서비스를 배포할 서버를 구축해봅시다!
- 웹서버 구축
1) 우선 웹서버 설정은 아래와 같이 진행할 겁니다
- 중요한점은 기존 default 리눅스 ami 버전인 amazon linux 3 이 아닌 2로 진행할 겁니다.
- 왜냐하면 이후 워드프레스 배포할 때 php 8.x 버전하고 계속 충돌이 일어납니다.
※ 워드프레스가 php 8.x 버전을 사용할 때, mysqli(php 모듈)을 찾을 수 없다는 오류가 계속 발생합니다. 관련 설정을 바꾸어도 자체적으로 모듈 경로를 아예 못찾더라고요. 하지만, aws linux 3 는 php 8.x만 지원합니다. 그래서 php7.x버전을 지원하는 aws linux 2를 사용해서 진행하셔야 워드프레스가 정상적으로 돌아갑니다.
- 키페어 설정합니다. 웹서버로 원격제어를 통해 들어가서 각종 파일을 설치할거에요.
- 구성도를 보면 이렇게 구성할 겁니다. 외부에서 HTTP request를 ELB의 리스너를 통해서 받아서 처리할 겁니다. 그리고 해당 로드밸런서는 웹서버에 트래픽을 분배해서 처리할 겁니다. 그리고 관리자는 Bastion-Host(NAT Instance)를 통해 접근하여 서버 설정을 해줄 겁니다.
- Web_server 보안 그룹 설정은 아래와 같습니다.
- 우선 웹서버이기 때문에 외부에서 접근하는 모든 http request(80번 포트)는 오픈할겁니다.
- 그리고 웹서버 작업을 위해 바스티온 호스트로 접근해오는 ssh 접근도 오픈할 겁니다.
2. 워드프레스 배포를 위한 설정 작업
1) 원격제어 설정 (putty)
- 원격제어는 bastion host에 할당된 공인 ip를 통해 들어갈겁니다. ssh 인증에 필요한 ppk는 이전에 생성한 키페어로 진행할 겁니다.
- 위와 같이 putty 를 설정하여 들어갑니다.
- .ppk는 이전에 키페어 생성하면서 만든 .pem key를 putty key generator를 통해 만들 수 있습니다.
Windows Putty 환경에서 AWS EC2 ssh 접속 :: 데브웁스 (devoops.kr)
- 위와 같이 원격으로 bastion host에 들어가면 id를 입력해야 됩니다. 우선, 기본 aws id는 ec2-user입니다.
- 이렇게 잘들어가면 OK입니다.
- 자 그럼 지금은 bastion host에 들어간거에요. 아직 웹서버에 들어간 건 아니에요. 저희는 웹서버로 들어가서 작업을 해야하는 겁니다.
- Bastion Host에 원격제어를 위한 키를 옮기고, 그 원격제어키를 가지고 직접 ssh 명령어를 웹서버 ip로 입력하여 원격제어를 진행할 겁니다.
- 웹서버 원격제어 들어가기
- 파일질라 설치
- 갑자기 왠 파일질라? 왜냐하면 웹서버에 ssh 들어가기 위해서는 원격제어를 위한 키가 필요합니다. 따라서 파일질라를 활용하여 해당서버에 키를 넣을겁니다.
- 파일질라 클라이언트를 설치하고 실행합니다. 그리고 파일탭에 사이트 관리자 들어가시면 해당 창이 뜹니다.
- 새 사이트를 누르시고 호스트에 들어갈 항목은 nat-instance(bastion host)의 IPv4 DNS를 넣으시면 됩니다.(포트는 비워두세요)
- ipv4 dns 정보는 EC2 -> Nat instance 정보에서 볼 수 있어요.
- 이렇게 설정해서 연결하면…!
- 잘 됩니다. 자 그럼 본인이 편한 디렉토리에 인증키파일을 옮기시면 됩니다.
*사용자가 ec2-user이기 때문에, 권한문제가 발생할 수 있기 때문에, ec2-user home에 넣는 걸 추천드립니다.
- 그리고 본인 디렉토리에 제대로 되었는지 확인하세요! (해당 디렉토리에서 ls -al)
- 자 그럼 웹서버로 원격제어 들어갈 겁니다.
- 우선 바스티온 호스트에서 해당 명령어를 수행합니다.
sudo -i // 관리자 권한 변경
ssh -i [옮긴키이름].pem ec2-user@웹서버ip
- 이렇게 해서 웹서버로 원격제어가 들어가질 겁니다.
4. RDS
1) RDS 생성
- 워드프레스가 저장될 데이터베이스를 생성할 겁니다. RDS가 위치할 서브넷그룹을 생성할 겁니다.
- 이전과 서브넷을 생성했던 같은 방법으로
- wp-db-1(서브넷이름)/10.0.4.0/16(ip대역)/ap-northeast-2a(가용지역)
- wp-db-2/ 10.0.5.0/16 / ap-northeast-2c
- 이렇게 두 서브넷 영역을 생성할 겁니다.
- 그리고 RDS 서비스에 들어가서 아래와 같이 RDS를 생성할 겁니다.
- 보안그룹의 경우,
- Bastion-host, web서버 보안그룹을 통해 3306(mysql포트)가 통하도록 설정하면 됩니다.
2) 웹서버에 mysql , wordpress, apache 설치
- putty로 다시 웹서버 접속 후 명령어 실행
yum update -y
yum install mysql
mysql -u admin -p wordpress(db이름) -h 엔드포인트
- 엔드포인트는 RDS 정보에서 볼 수 있다.
- 이후 mysql이 실행이 되면 show databases; 명령어 실행하여 wordpress db가 있는지 확인한다.
- 다음 명령을 추가적으로 실행한다.
CREATE USER adminuser@’%’ IDENTIFIED BY ‘qwer1234’; //사용자 생성
GRANT ALL PRIVILEGES ON wordpress.* TO adminuser@’%’; // 게시판 사용 권한 부여
FLUSH PRIVILEGES; //권한 적용
2) 아파치 설치
yum -y install httpd //아파치 설치
service httpd start //아파치데몬 실행
systemctl enable httpd.service
systemctl status httpd // 상태확인, acitve여야 함
3) 워드프레스 설치
Amazon-linux-extras install php72 // php 8.x 는 잘안되므로 php7.x
wget https://wordpress.org/latest.tar.gz // 워드프레스 최신버전 다운
tar -xvzf latest.tar.gz -C /var/www/html // tar 압축 해제 후 html폴더로 이동
rm -f latest.tar.gz // 사용 파일 삭제
chown -R apache:apache /var/www/html/wordpress // wordpress 파일 소유자 변경
cd /var/www/html/wordpress/ //워드프레스 디렉토리로 이
cp wp-config-sample.php wp-config.php /워드프레스 설정파일 백업
vi wp-config.php // 파일 수정
- 워드프레스 설정파일을 이렇게 고쳐야함 , 중간 호스트네임은 db 엔드포인트로 설정
- Httpd.conf 파일을 바꾼다 .
vi /etc/httpd/conf/httpd.conf
그리고 systemctl restart http를 실행하여 아파치를 재시작한다.
이제 기본적인 웹 설정은 완료되었습니다!! 이젠 해당 웹서버로 접근하기 위한 Auto Scaling, https 등을 구현할 겁니다!
'AWS' 카테고리의 다른 글
AWS로 워드프레스 구축하기(3) 배포 및 도메인, 모니터링 설정 (6) | 2024.09.04 |
---|---|
AWS로 워드프레스 구축하기 (1)VPC,서브넷 등 네트워크 환경 구축하기 (0) | 2024.09.04 |