(1) SQL
(2) Image & Template
(3) 인스턴스 그룹
(4) 부하 분산
(5) Load Balancing 테스트
1. Cloud SQL 인스턴스 생성




- 여러영역에 저장하면 가용성은 좋지만 비쌈










2. 데이터베이스 생성




3. 사용자 확인

4. web 인스턴스 생성

- 생성시 스크립트로 설정 진행
| #! /bin/bash sudo su - setenforce 0 yum install -y httpd systemctl start httpd sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php/g' /etc/httpd/conf/httpd.conf systemctl restart httpd yum install -y wget wget https://ko.wordpress.org/latest-ko_KR.tar.gz tar xvfz latest-ko_KR.tar.gz cp -a wordpress/* /var/www/html cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php yum install -y epel-release yum-utils yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum-config-manager --enable remi-php73 yum install -y php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd systemctl restart httpd |

5. 설정 적용 확인

6. wp-config.php 파일 수정
- DB 이름 : 데이터베이스 이름
- DB 사용자 : root
- DB 패스워드 : Cloud SQL 인스턴스 생성 시 설정한 패스워드
- DB 호스트 : DB의 공인 IP

7. 방화벽 열기

8. 인스턴스 IP 승인
- DB에 공인 IP로 접근하기 위해서는 해당 인스턴스의 공인 IP를 승인해줘야함

- 서브넷 32는 해당 IP만 지정

9. 접속 확인

* DB의 공개 IP를 해제할 경우 연결 *



<db + wordpress 자동 연동 스크립트>
- wordpress 연동 실습 시 wp-config.php 파일의 수정 부분의 단어는 고유하기 때문에 sed 명령어로 수정시 자동화 가능

- 인스턴스 생성 시 위 스크립트 적용


- 설정을 완료한 인스턴스를 사용해 이미지 생성
- 생성한 이미지를 사용해 인스턴스 템플릿 생성
- 생성한 인스턴스 템플릿을 사용해 똑같은 인스턴스 복제 가능
1. 이미지 생성

- 위에서 wordpress 연동을 진행한 web 인스턴스를 소스 디스크로 사용해 이미지 생성


2. 템플릿 생성
- wordpress 연동을 진행한 web 인스턴스로 생성한 web-image로 템플릿 생성


- 부팅 디스크의 이미지를 생성한 web-image 사용해서 생성


- 템플릿에 외부IP 설정이 되어있으면 템플릿을 통해 생성하는 모든 인스턴스에 자동으로 외부 IP가 할당 되기 때문에
외부 IP 주소 없이 생성

- VM 생성 시 템플릿을 활용하여 생성 가능

- 로드밸런서에 인스턴스를 넣기 위해서는 인스턴스 그룹 필요
1. 인스턴스 그룹 생성

- stateless : 연결한 세션 정보를 저장하지 않음
- stateful: 고정적으로 연결에 대한 설정 필요 (DB)
→ 위의 두개는 Auto Scaling에 사용
- 부하분산은 unmanaged instance group 사용

- 사용자가 접속하는 앞쪽 프론트엔드 (외부 IP, 포트 필요)
- 내부의 실제 인스턴스와 연결된 백엔드 (포트)
1. 부하분산기 생성


- 로드밸런서를 외부에 노출시키기 위해 인터넷에서 VM 또는 서버리스 서비스로 설정
- 로드밸런서가 내부에 있을 때는 VM 또는 서버리스 서비스 사이에서만 (DB와 WEB)
- 전역 부하분산기는 리전 외부에 배치, 전세계가 사용 가능(과금 위험)

- test 네트워크 내에서 프록시가 전용으로 사용할 서브넷 생성

- 프런트엔드 HTTP 프로토콜, 80번 포트 사용


- 백엔드 인스턴스 유형, HTTP 프로토콜 사용



- 웹페이지 설정이 index.php로 되어있어도 index.html 을 서비용 말고 health check용도로 사용
→ 로드밸러서가 index.html 파일을 읽을 수 있으면 정상 처리



2. 설정 적용 확인



1. 이미지화 할 인스턴스 생성

- 인스턴스 생성 시 스크립트로 http 서비스 실행

2. 이미지 생성

3. 인스턴스 템플릿 생성


4. 템플릿을 활용해 인스턴스 생성


- web-1, web-2 인스턴스 생성 후 테스트를 위해 web-2의 시작페이지 수정


5. 인스턴스 그룹 생성


6. 부하 분산기 생성

7. 설정 적용 확인
- 로드밸런싱 적용 확인

