갬미의 성장일기

Day 55 - 3tier 구성하기, VPC Peering, CronTab 본문

Cloud/Cloud 공부일기

Day 55 - 3tier 구성하기, VPC Peering, CronTab

갬미 2022. 3. 29. 23:24

오늘 배운 내용

- 지금까지 배운 내용으로 3tier 구성하기

- VPC Peering 

- CronTab


+ 프로젝트를 진행할때 다음과 같은 순서로 진행하는것이 좋다

  1. 작업 조건 명시
  2. 구성도
  3. (프로젝트 작업)

미니 과제1

- GKE에서 3tier를 구성하며 nfs-server(Web log DB)는 다른 VPC를 만들어 그곳에 프라이빗 인스턴스로 구성한다

- nfs-server와 nginx는 vpc peering 을 맺어 ig 통신을 할때보다 저렴하고 안전하게 통신하도록 한다

- 사용자가 http로 접속했을때 https로 redirection 가능하도록 한다 (보안)

- 이때 인증서는 google cert를 사용하지 않고 사설인증서를 사용한다

 

작업 조건

GCP  AWS
vpc - front 
subnet
    1-1. name : front-s1
    1-2. region: us-central1
    1-3. CIDR: 172.16.100.0/24

vpc - gy
subnet
    1-1. name : gy-s1
    1-2. region: us-central1
    1-3. CIDR: 10.10.102.0/24
    1-4. VM: nfs-server
vpc 
1. name: backend
2. CIDR: 10.111.0.0/16

subnet1
    1-1. name : db
    1-2. AZ : us-west-1
    1-3. CIDR: 10.111.0.0/24
    1-4. EC2: DB

subnet2
    2-1. name : bastion
    2-2. AZ : us-west-1
    2-3. CIDR: 10.111.1.0/24
    2-4. EC2: Bastion Host

 

구성도

 


 

VPC Peering 

VPC가 다르면 인터넷을 통해 공인 ip로 통신 가능하지만 사설 ip로는 통신이 불가능하다

이때 VPC와 VPC간 peering을 맺을 수 있다

인터넷 망을 이용했을때 보다 VPC peering을 이용하면 비용이 90% 정도 절감되고 보안이 더 철저해짐

VPC peering은 계정에 상관없이 VPC끼리라면 모두 가능하다 (단, IP가 중복되면 안됨)

 

단 gpc와 aws vpc간 peering은 안됨! peering은 같은 벤더간에 가능한거다

 


오늘 조금 헷갈렸던 사항은 사설 tls를 사용할때 먼저 secret을 만들어야 했는데 그것을 안할뻔 했다 !


미니 과제2

과제1에 추가 기능을 구현한다

- nginx log를 5분 간격으로 backup file로 저장한다

- backup file은 object storage와 연동하여 자동으로 이곳에 저장되도록한다

 

object storage에 백업파일을 저장하기 위해

1. object storage 만들기

2. nfs server에 object storage 마운트 하기

Object starage 만들기

Cloud storage 탭으로 이동 > Backet create

nfs server에 object storage 마운트 하기

1. fuse 설치하기 (fuse = 마운트 시켜주는 툴)

https://github.com/GoogleCloudPlatform/gcsfuse/blob/master/docs/installing.md

 

GitHub - GoogleCloudPlatform/gcsfuse: A user-space file system for interacting with Google Cloud Storage

A user-space file system for interacting with Google Cloud Storage - GitHub - GoogleCloudPlatform/gcsfuse: A user-space file system for interacting with Google Cloud Storage

github.com

sudo tee /etc/yum.repos.d/gcsfuse.repo > /dev/null <<EOF
[gcsfuse]
name=gcsfuse (packages.cloud.google.com)
baseurl=https://packages.cloud.google.com/yum/repos/gcsfuse-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
 
sudo yum install gcsfuse

 

2. 마운트 

mkdir /os
gsutil ls # 버킷명 확인
gcsfuse gymin /os

 

 

기존 3tier에 크론잡을 추가한다 

 

그 후 nfs-server에서 crontab을 추가한다 (주기적으로 os 백업 - linux crontab 이용)

# /work/backup.sh 생성
mkdir work
vi /work/backup.sh

###
#!/bin/bash
mv /log/backup*.* /os
###
chmod +x /work/backup.sh

crontab -e
# 추가
*/1 * * * * /work/backup.sh

crontab 지우는 방법

crontab -r

 

오늘의 회고

  • 소스코드나 캡쳐를 여기 올리기에는 너무 많아서,, 이제 소스코드는 깃허브에 올리려고 한다
  • 까먹을 것 같은 내용은 틈틈히 문서로 만들어 놓고 있는데 이것도 같이 올릴예정이다~
Comments