지난 포스트에 이어서 마저 진행해보도록 하자
Wordpress 설정
1) 언어 선택 및 계정생성
EC2 퍼블릭 IP로 웹 브라우저를 통해 EC2 서버에 접속한다. 안내되는대로 정보를 입력하고 설치 버튼을 입력한다. 여기서 생성한 계정은 wordpress 프로그램 내의 관리자 계정이다.

로그인을 워드프레스 설치완료!
2) 테마 디자인 선택: oceanwp
레퍼런스가 많은 oceanwp 테마를 사용해봤다.
새로운 테마 추가를 누르고 oceanwp를 검색한 후 활성화하면 설정 완료
3) 다시 퍼블릭 IP로 접근하여 설정된 내용 확인
http://(ec2@public ip)

4) 필요에 따라 /wp-damin URL로 관리자 화면 접속
URL 뒤에 /wp-admin을 붙이면 관리자 화면으로 이동할 수 있다.
5) 공식 wordpress 사용법 알아보기
공식문서 링크 사이트를 참고하거나, Youtube에 '워드프레스 웹사이트 만들기'로 검색하면 잘 나와있다고 하셨다.
EC2 복제는 이중화를 위한 작업이며 목적은 다양합니다. 안정적인 서버 운영을 위해 한 대에 문제가 생기면 다른 서버로 계속해서 서비스 제공이 가능하게 하는 것이 주 목적입니다. 또한 새로운 내용으로 업그레이드를 할 것인데, 한 대는 업그레이드 된 내용, 한 대는 기존 내용으로 서비스하면서 사용자의 반ㅇ을을 살펴볼 때에도 사용됩니다.
EC2를 다른 가용영역에 복제하는 과정을 진행해보자.

1) AWAS웹콘솔 > EC2 > 선택 > 작업 > 이미지 및 탬플릿 > 이미지 생성
이름을 짓고 이미지 생성 버튼을 누른다. (이미지는 EC2 OS정보와 저장장치인 EBS를 함께 백업하는 파일이다)
약 3~10분 후 상태가 대기 중에서 사용가능으로 변경된다
2) 이미지를 선택하고 AMI로 인스턴스 시작 버튼을 클릭한다
이름을 짓고 프리티어가 사용가능한 스팩을 선택한다
네트워크 설정에서 편집을 눌러서 VPC정보를 입력하고 서브넷은 다른 가용영역을 선택한다. (이 전에 A존을 선택했으므로, 이번에는 C존을 선택한다) 퍼블릭 IP 자동할당도 잊지 않고 활성화한다.
3) 보안그룹은 EC2용을 선택한다
기존 서버같은 보안그룹을 지정하여 관리한다
4) EC2 인스턴스 메뉴에서 새로 생긴 EC2를 확인한다
5) 새로 생긴 EC2에 접속하여 서비스 상태를 확인한다
새 EC2의 퍼블릭 IP로 접속한다. 다른 EC2를 선택하지 않도록 주의한다.
ssh -i "key-pair.pem" ec2-user@(public ip) 로 수정하여 연결
httpd의 상태를 점검한다 sudo systemctl status httpd
마찬가지로 active가 running으로 표기되어 있으면 정상
MySQL의 설치 상태도 확인한다. mysql --version
6) 새 EC2의 퍼블릭 주소로도 접근하여 정상적으로 호출되는지 확인한다

이전 EC2와 동일하게 나오므로 정상!
ALB는 사용자로부터 받은 트래픽을 1대 이상의 특정서버에 연결해주는 역할을 합니다. 서버가 2대 이상일 경우 순차적으로 트래픽을 보내줍니다. 하지만 ALBV는 트래픽 외 EC2의 설정을 복제해준다든지, EC2의 프로그램이나 데이터를 동기화하는 역할은 수행하지 못합니다. 단순히 사용자의 트래픽만 분배해주는 역할을 합니다. 만약 A존에 있는 EC2를 수정할 경우 ALB가 자동으로 C존의 EC2 설정을 변경하지 않으면, C존에도 동일하게 변경을 해야 모든 EC2가 동일하게 동작하게 됩니다. 물론 고의적으로 각 EC2의 설정내용을 다르게 하여 A/B 비교 테스트를 해보는 경우도 있습니다.
로드밸런서인 ALB를 만들고 EC2 2대와 연결하는 작업을 진행해보자.

1) ALB용 보안그룹을 생성한다
인바운드 규칙에 HTTP통신이 사용하는 TCP 80번포트를, 누구나 들어올 수 있도록 소스를 0.0.0.0/0으로 설정한다. 아웃바운드는 기본값대로 모두 허용되도록 두고 보안그룹을 생성한다.
EC2용 보안그룹에 들어가서 인바운드 규칙을 편집한다. TCP 80포트, 소스에 복사한 alb용 보안그룹 아이디를 넣어서 ALB에서 EC2로 TCP 80번을 통해 연결이 가능해지도록한다.

2) EC2 두 대를 먼저 묶어주는 작업을 한다
대상 그룹 생성을 통해 대상은 인스턴스로 선택하고 이름을 지어준 후, VPC를 선택하고 다른 것들은 기본값으로 놓고 묶어줄 두 인스턴스를 선택하고 '아래에 보류 중인 것으로 포함'을 클릭한다. 대상그룹 생성버튼을 클릭하여 생성을 완료한다.
3) EC2 > 로드밸런서 > 로드밸런서 생성을 클릭한다
http통신은 ALB를 사용하므로 Application Load Balancer의 생성을 선택한다.
이름을 지어주고 퍼블릭 접근이 가능한 설정을 유지한다. VPC를 선택하고 각 EC2가 존재하는 서브넷과 같은 서브넷을 선택한다. 보안그룹은 alb용으로 만든 보안그룹을 선택하고 유료 옵션은 체크하지 않은 후 로드밸런서를 만든다.
4) '프로비저닝 중'에서 '활성'으로 변경된 후 DNS 이름을 복사하고 웹 브라우저에서 실행한다

완성된 내용을 간소화하여 표현하면 다음과 같다.

1) ALB 상태 확인
EC2 로드밸런서의 상태가 활성이어야 한다. 대상그룹의 상태가 healthy이어야 한다.

2) 각 EC2의 상태확인
EC2 인스턴스 상태가 실행 중이어야 한다.

3) MySQL의 상태 확인
EC2 접속 후 다음 명령어로 RDS DB에 접속이 가능해야 한다.
mysql -u(db user id) -p -h (db endpoint)
4) 각 EC2의 서비스 상태 확인
웹 서빙을 해주는 Apache httpd의 상태는 active running이어야 한다.
sudo systemctl status httpd
이제 만들었던 리소스들을 역순으로 삭제해주면 업무 과제들을 완료했다! 너무 호흡이 길어서 8시간 정도 나눠서 했던 것 같은데 정리하면서 복습하는데도 아직 익숙하지가 않다... 계속해서 공부를 더 해봐야할 것 같다. 역시 네트워크는 어렵다...