이 글에서는 블로그를 배포하기 위한 기본적인 설정을 다루겠습니다.
블로그를 배포하기 위해서는 크게 3가지가 필요합니다
1. 서버
2. 네트워크
3. CMS(Optional)
블로그를 위해, 콘텐츠를 저장하고 게시하기 위한 서버와 외부에서 접속할 수 있게 하는 네트워크는 필수적입니다.
블로그 뿐만이 아니라 대부분의 웹서비스가 구동되기 위한 기본적인 요소입니다.
때문에, 당연하게도 AWS에서도 관련 서비스가 존재합니다.
서버만 있다고 블로그가 생성되는 것은 아닙니다.
웹 서버를 생성하고 사용자와 상호작용을 위한 소프트웨어를 만들어야합니다.
저는 이를 위해 LAMP(Linux Apache MySQL PHP)Stack과 Wordpress를 사용했습니다.

VPC와 Public Subnet 하나로 기본적인 네트워크를 설정했습니다.
추후 서비스를 추가하며 네트워크도 확대할 예정입니다.
아래 설명을 통해 쉽게 구성할 수 있습니다.
vpc에 관한 개념이해가 필요하신 분들은 이 글을 참조해주세요. vpc란?
우선 AWS Console에서 VPC를 검색하여 VPC 페이지로 이동해줍니다.
"vpc 생성" 버튼을 눌러 생성 페이지로 이동합니다.



서브넷에 관한 개념은 아래 페이지를 참조해주세요.
서브넷이란?
VPC 대시보드의 "Subnet"을 통해 Subnet 창으로 이동합니다.
"서브넷 생성" 버튼을 눌러 생성 페이지로 이동합니다.

서브넷이 위치할 VPC와 가용영역 서브넷 대역대를 설정하고 "서브넷 생성" 버튼을 눌러줍니다.


인터넷 게이트웨이에 관한 개념이해가 필요하신 분들은 이 글을 참조해주세요.
인터넷 게이트웨이란?
VPC 대시보드의 "인터넷 게이트웨이"를 눌러 이동합니다.
"인터넷 게이트웨이 생성" 버튼을 눌러 생성 화면으로 이동합니다.

인터넷 게이트웨이의 이름을 지정하고 "인터넷 게이트웨이 생성" 버튼을 눌러 생성해줍니다.

생성한 인터넷 게이트웨이를 클릭하고 "작업 -> VPC에 연결"을 눌러줍니다

앞에서 생성한 VPC를 토글에서 찾아준뒤, "인터넷 게이트웨이 연결" 버튼을 눌러줍니다.

VPC 탭 "라우팅 테이블" 을 눌러 이동한 뒤 "라우팅 테이블 생성" 버튼을 눌러줍니다.

이름을 설정하고, VPC는 앞에서 생성한 VPC를 선택해줍니다. 다 되었다면 "라우팅 테이블 생성"버튼을 눌러줍니다.

생성한 라우팅 테이블을 선택한 뒤, "라우팅 편집" 버튼을 눌러줍니다.

"라우팅 추가" 버튼으로 라우팅을 추가하고, 아래 처럼 모든 Source에서 앞에서 생성한 인터넷 게이트웨이로 찾아올 수 있게 라우팅합니다. 다 되었다면 "변경 사항 저장" 버튼을 눌러 저장합니다.

라우팅 테이블을 선택 후 "서브넷 연결" 탭에서 "서브넷 연결 편집" 버튼을 눌러줍니다.

연결할 서브넷을 선택 후 "연결 저장" 버튼을 눌러줍니다.

EC2에 관한 개념이해가 필요하신 분들은 아래 글을 참조해주세요.
EC2란?







위 과정을 따라왔다면, EC2가 동작이 될 것입니다.
생성된 EC2를 선택하고 "연결" 버튼을 눌러줍니다.

SSH 클라이언트 탭으로 이동하여 연결을 위한 명령어를 복사합니다. 만약 user가 ec2-user가 아닌 root일 경우 ec2-user로 수정하고 연결해주면 됩니다.

EC2를 생성할 당시, 키페어를 생성했다면 private key가 다운로드 되었을 것입니다. private key가 있는 디렉토리에서 명령어를 입력하여 ssh 연결을 시도합니다.
ssh -i "zito_webserver.pem" ec2-user@43.202.58.231


아래 명령어를 통해 apache와 wordpress 설치를 진행합니다.
sudo yum install httpd
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo systemctl start httpd
sudo systemctl enable httpd

아래 명령어를 통해 php와 mariadb 설치를 진행합니다.
sudo yum install php
sudo yum install php-mysqlnd
sudo dnf install mariadb105-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
아래 명령어를 통해 다운 받은 wordpress를 복사합니다.
sudo cp -r wordpress/. /var/www/html
아래 명령어를 통해 mysql 설정을 진행합니다.
# root passwordd를 지정합니다
sudo mysql_secure_installation
# 지정한 password를 사용해 mysql에 들어갑니다.
mysql -u root -p
# wordpress가 사용할 User와 DB를 만들고 권한을 부여합니다.
MariaDB [(none)]> CREATE DATABASE wp_database;
MariaDB [(none)]> CREATE USER "wp_user"@localhost IDENTIFIED BY "password";
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wp_database.* TO "wp_user"@localhost;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT
아래 명령어를 통해 wordpress 설정 파일을 생성합니다
sudo cp wp-config-sample.php wp-config.php
wordpress 설정 파일에 DB 설정 값을 넣어줍니다.

아래 명령어를 통해 apache를 재시작 해준뒤, 웹브라우저에서 EC2의 Public IP를 사용해 접근해봅니다.
sudo systemctl restart httpd

