0609-GCP

hyejin·2022년 6월 9일
0

블록 스토리지

인스턴스 생성1 (filestore)

  • 인스턴스 ID : hyejin2022
  • 리전 : asia-northeast3
  • 영역 : asia-northeast3-a
  • 네트워크 : default
  • 파일 공유 이름 : share

인스턴스 생성2 (compute engine)

  • 이름 : web01
  • 리전 : asia-northeast3 (서울)
  • 영역 : asia-northeast3-a
  • 머신유형 : e2-micro
  • 부팅 디스크
    • 운영체제 : CentOs
    • 버전 : CentOS 7
  • 액세스 범위 : 모든 Cloud API에 대한 전체 액세스 허용
  • 방화벽 : HTTP 트래픽 허용
  • 관리 > 자동화
#!/bin/bash
yum install -y httpd
systemctl enable --now httpd

  • 마운트 지점 복사

10.23.48.154:/share
-> mount 10.23.48.154:/share /mnt

▶ mobaxterm

  • IP로 접속

$ sudo yum install -y nfs-utils
$ sudo mount -t nfs 10.23.48.154:/share /mnt

//nfs-utils를 설치해 nfs 타입을 인식해야 함

[r2com@web01 ~]$ df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             486M     0  486M   0% /dev
tmpfs                494M     0  494M   0% /dev/shm
tmpfs                494M  6.6M  488M   2% /run
tmpfs                494M     0  494M   0% /sys/fs/cgroup
/dev/sda2             20G  2.5G   18G  13% /
/dev/sda1            200M   12M  189M   6% /boot/efi
tmpfs                 99M     0   99M   0% /run/user/1000
10.23.48.154:/share 1007G     0  956G   0% /mnt

-> 마운트 확인

[r2com@web01 ~]$ ls
gcp.tar
[r2com@web01 ~]$ sudo cp gcp.tar /mnt
[r2com@web01 ~]$ ls /mnt
gcp.tar  lost+found
[r2com@web01 ~]$ sudo tar -xvf gcp.tar -C /var/www/html/
assets/
assets/img/
assets/mail/
assets/img/avataaars.svg
assets/img/favicon.ico
assets/img/portfolio/
assets/mail/contact_me.js
assets/mail/contact_me.php
assets/mail/jqBootstrapValidation.js
assets/img/portfolio/cabin.png
assets/img/portfolio/cake.png
assets/img/portfolio/circus.png
assets/img/portfolio/game.png
assets/img/portfolio/safe.png
assets/img/portfolio/submarine.png
css/
css/styles.css
js/
js/scripts.js
index.html
[r2com@web01 ~]$ curl ipconfig.io
34.64.109.63
  • 결과

인스턴스 생성3 (compute engine)

  • 이름 : web02
  • 리전 : asia-northeast3 (서울)
  • 영역 : asia-northeast3-a
  • 머신유형 : e2-micro
  • 컨테이너 > DEPLOY CONTAINER
    • 컨테이너 이미지 : halilinux/homepage:v1.0
  • 부팅 디스크
    • 운영체제 : Container Optimized OS
    • 버전 : Container Optimized OS 97-16919.29.40 stable
    • 크기 : 10GB
      (컨테이너를 도커허브로 넣으면 이미지 저절로 변경됨)
  • 액세스 범위 : 모든 Cloud API에 대한 전체 액세스 허용
  • 방화벽 : HTTP 트래픽 허용

  • web02 IP로 접속

-> 설정해놓은 도커 이미지로 나옴

GCP 이미지 서비스

  • 빠르게 복구하기 위해서 만드는 것
  • 부팅 디스크를 이미지로 만들 수 있음
  • 보관하고 있다가 웹서버에 문제가 생기면 이미지로 다시 vm 생성 가능
  • 이미지 기능 (vm 생성은 공통점)
    • 머신 이미지
    • 커스텀 이미지

머신 이미지 생성

  • 가상 머신 > 머신 이미지
  • 이름 : my-machine-image
  • 소스 VM 인스턴스 : web01
  • 위치 : 리전 - asia-northeast3(서울)

-> 만들어진 이미지로 바로 인스턴스 만들기 가능

인스턴스 생성4 (위에서 만든 이미지를 이용해 생성)

  • 이름 : my-machine-image-1
  • 리전 : asia-northeast3(서울)
  • 영역 : asia-northeast3-a
  • 나머지는 머신이미지 때 설정한 기본값

스냅샷 생성1

  • 이름 : snapshot-1
  • 소스 디스크 : web02
  • 위치 : 리전 - asia-northeast3(서울)

-> 스냅샷으로 인스턴스 생성 가능

-> 부팅 디스크의 스냅샷이 생성됨

  • 이름 : web02-snapshot
  • 리전 : asia-northeast3(서울)
  • 영역 : asia-northeast3-a
  • 머신 유형 : e2-micro
  • 액세스 범위 : 모든 Cloud API에 대한 전체 액세스 허용
  • 방화벽 : HTTP 트래픽 허용

▶ mobaxtermd으로 접속 (web02-snapshot)

▶ mobaxtermd으로 접속 (web02)

스냅샷 생성

  • 이름 : web01-snapshot-2
  • 소스 디스크 : web01
  • 위치 : 리전 - asia-northeast3(서울)

인스턴스 생성5 (스냅샷을 이용해서 생성) - 인스턴스는 4개만 생성가능하기 때문에 맨처음 만든 머신이미지 삭제하고 실행

  • 이름 : web01-snapshot
  • 리전 : asia-northeast3(서울)
  • 영역 : asia-northeast3-a
  • 머신 유형 : e2-micro
  • 액세스 범위 : 모든 Cloud API에 대한 전체 액세스 허용
  • 방화벽 : HTTP 트래픽 허용

  • 접속 성공 (web01-snapshot IP)

커스텀 이미지 생성

  • 스토리지 > 이미지
  • 이름 : hyejin2022-img
  • 소스 : 스냅샷 (스냅샷을 먼저 만들고 이미지를 만들어야함)
    (디스크를 사용하려면 web01을 중지해야함 -> web01을 스냅샷 찍고 그걸 이용하면 됨)
  • 소스 스냅샷 : web01
  • 리전 : asia-northeast3(서울)

인스턴스 템플릿 생성

: 더 빠르게 vm을 만들기 위한 것

  • 가상머신 > 인스턴스 템플릿
  • 이름 : web01-instance-template-1
  • 머신 유형 : e2-micro
  • 부팅 디스크 > 커스텀 이미지
    • 이미지 : hyejin2022-img
  • 액세스 범위 : 모든 Cloud API에 대한 전체 액세스 허용
  • 방화벽 : HTTP 트래픽 허용
  • 이미지 소스가 준비되어 있기 때문에 관리에서 따로 설정할 필요 X

-> 인스턴스 템플릿으로 VM 만들기

  • 이름 : web01-instance-template-1
  • 리전 : asia-northeast3(서울)
  • 영역 : asia-northeast3-a

-> 템플릿은 오토스케일링과 연관해서 알고있어야 함

  • web01-instance-template-1 IP로 접속

GCP 네트워크 서비스

VPC 생성

  • 이름 : my-vpc
  • 새 서브넷
    • 이름 : my-subnet
    • 리전 : asia-northeast3
    • IPv4 범위 : 10.24.0.0/16

방화벽 규칙 생성

  • 이름 : http
  • 우선순위 : 1001
  • 대상태그 : http80
  • 소스 IPv4 범위 : 0.0.0.0/0
  • 프로토콜 및 포트 : tcp - 80

인스턴스 생성6

  • 이름 : web03
  • 리전 : asia-northeast3 (서울)
  • 영역 : asia-northeast3-a
  • 머신유형 : e2-micro
  • 부팅 디스크
    • 운영체제 : Ubuntu
    • 버전 : Ubuntu 18.04 LTS
    • 크기 : 10GB
      (컨테이너를 도커허브로 넣으면 이미지 저절로 변경됨)
  • 액세스 범위 : 모든 Cloud API에 대한 전체 액세스 허용
  • 방화벽 : HTTP 트래픽 허용
  • 네트워킹
    • 네트워크 : my-vpc
    • 서브 네트워크 : my-subnet IPv4 (10.24.0.0/16)
  • 관리 > 자동화
#!/bin/bash
apt update
apt install -y apache2

  • web03 네트워크 태그에 추가

  • web03 IP로 접속

Cloud DNS

  • 가비아 접속

DNS 영역 생성

  • 영역 이름 : hyejin36
  • DNS 이름 : hyejin36.shop

  • 가비아에 네임서버 설정

  • 이더넷 설정 변경

레코드 세트 추가

  • DNS 이름 : blog
  • IPv4 주소 : 34.64.109.63 (web01 주소)

GCP 데이터베이스 서비스

  • MYSQL 선택

  • 인스턴스 ID : hyejin2022

  • 비밀번호 : Test1234!

  • 데이터베이스 버전 : MySQL 5.7

  • 리전 : asia-northeast3 (서울)

  • 영역 가용성 : 단일 영역

  • 머신유형 : 경량 (vCPU 1개, 3.75GB)

  • 저장용량 : SSD / 10GB

  • 연결

    • 네트워크 : 비공개 IP / default

$ sudo setenforce 0
$ sudo yum install -y mysql
[r2com@web01-instance-template-1 ~]$ mysql -h 10.37.160.3 -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 192
Server version: 5.7.37-google-log (Google)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> CREATE USER 'wpuser'@'%' IDENTIFIED BY 'wppass';
Query OK, 0 rows affected (0.01 sec)

MySQL [(none)]> CREATE DATABASE IF NOT EXISTS wordpress;
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'%';
Query OK, 0 rows affected (0.00 sec)

MySQL [(none)]> quit
Bye
$ sudo yum install -y httpd php php-mysql php-gd php-mbstring wget unzip
$ wget https://ko.wordpress.org/wordpress-4.8.2-ko_KR.zip
$ cd /var/www/html
$ sudo unzip /home/r2com/wordpress-4.8.2-ko_KR.zip
$ sudo mv ./wordpress/* .
$ sudo chown -R apache:apache /var/www/*
$ sudo systemctl restart httpd
$ sudo rm -rf index.html
  • 34.64.198.77로 접속

0개의 댓글