상세 컨텐츠

본문 제목

[GCP] VPC | 인스턴스 접속 방법 | gcloud 명령줄 | Filestore | Cloud Storage | Cloud DNS (web, ftp, mail)

IT/GCP

by o_zeew 2022. 6. 27. 19:49

본문

(1) VPC 네트워크

(2) 인스턴스 접속 방법

(3) 명령줄을 사용해 인스턴스 생성

(4) Firestore

(5) Cloud Storage

(6) Cloud DNS


1. VPC 네트워크 

  - GCP는 AZURE, AWS와 다르게 VPC안에 리전이 포함됨 (VPC > Region)
  - aws에서 다른 region과 통신 하기 위해서는 vpc peering을 사용 필수

  - GCP는 다른 region과 통신 가능

1. VPC 네트워크 생성

 

  - 항상 정확한 프로젝트를 쓰고 있는지 확인!

VPC 네트워크 만들기
이름, IPv6 비활성화, 서브넷 커스텀
서브넷 설정

 

2. 방화벽 규칙 만들기

  - 현재 생성되어있는 방화벽들은 default 네트워크 설정

 

  - test 네트워크의 방화벽 규칙을 새로 생성해줘야함

방화벽 규칙 만들기

 

  - SSH

test 네트워크 설정
모든 IP의 SSH 접속을 위한 22번 포트

 

  - ICMP

test 네트워크 설정
모든 IP에 icmp 서비스 열어주기

 

  - Internal(내부 통신)

test 네트워크 설정
test 네트워크 대역 모두 허용
test 네트워크의 방화벽 설정

 

3. 인스턴스 생성

인스턴스 만들기
서울리전에 생성

 

  - 인스턴스가 돌아갈 때는 떼어내지 못하지만 인스턴스를 삭제한 후 별도로 떼어내기 가능

CentOS7 사용

 

  - 인스턴스에 태그 설정 시 방화벽을 태그별로 설정 할 수 있음

web 태그 설정

  * 서브네트워크 이름 오타(test-1)

네트워크, 서브네트워크, 내외부 IP 설정
스크립트 작성 시 인스턴스 생성할 때 스크립트 실행

 

  - 동등한 명령줄을 사용하면 일일이 설정하지 않고 자동화 할 수 있음(스크립트 작성)

동등한 명령줄
위에서 설정한 내용들이 자동으로 추가됨
인스턴스 생성 완료

 

 

 


 

 

 

 2. 인스턴스 접속 방법 

1. Cloud Shell (내장 Shell) 접속

오른쪽 상단의 Cloud Shell 아이콘 클릭

 

2. xShell 접속

xShell 접속을 위해 공인 IP 추가
외부 고정 주소 예약
리전과 연결 대상 설정 후 예약
외부 IP 할당 완료
외부 IP, Public Key 접속
xShell 접속 확인

 

3. 브라우저 창에서 접속

해당 인스턴스 메뉴 - 브라우저 창에서 열기

 

SSH 키를 자동으로 VM에 전송
브라우저에서 SSH를 통해 연결 확인

 

4. gcloud 접속

cmd 창에서 gcloud auth login
GUI 로그인 창을 불러옴
로그인 하면 gcloud CLI 인증
프로젝트 ID, region, zone
gcloud config list로 설정 확인
ssh로 접속
gcloud sdk로 접속 확인

 

 


 

 

 3. 명령줄을 사용해 인스턴스 생성 

  - 인스턴스 생성 시 설정을 끝내고 동등한 명령줄을 확인하면 설정이 자동으로 추가가 된 스크립트 생성

동등한 명령줄

 

  - 동등한 명령줄을 notepad에 복사 후 편집

web-1이 있기 때문에 web-2로 편집

  - CMD창에 편집한 명령줄을 복사 붙여넣기

명령줄로 인스턴스 생성
인스턴스 생성 완료

 

 

 


 

 

 

 4. Firestore 

  - 여러 인스턴스가 하나의 시스템을 공유 가능
  - 관리형 서비스는 인스턴스가 생성되긴 하지만 접속 불가능
    → Serverless : 서버는 존재하지만 접속이 불가능한 것

 

1. 인스턴스 생성

Filestore - 인스턴스
Cloud Filestore API 사용
인스턴스 만들기
nfs 실습에 사용하기 위해 이름 nfs 설정
리전과 영역 설정
VPC 설정
test 이름으로 파일 공유
인스턴스 생성 완료

 

  - NFS 마운트 지점으로 마운트 해서 사용

NFS 마운트 지점 확인

 

2. web-1에서 nfs filestore 연결

nfs-utils 설치

 

 - 마운트 할 디렉토리 생성 후 마운트

생성한 디렉토리를 NFS 마운트 지점으로 마운트
마운트 확인

 

3. Filestore 사용

web-1에서 test.txt 파일 생성

 

4. Filestore 연동 확인

  - web-2에서 nfs Filestore 연결 시 web-1에서 작성한 파일이 보이는지 확인 (연동 확인)

web-2에서 nfs Filestore 연결 시 web-1에서 작성한 test.txt 파일 확인 가능

 

 

 


 

 

 

 5. Cloud Storage

  - 오브젝트 스토리지
    → 단점 : 파일 업로드 후 직접 수정 불가, 파일을 다운해서 수정 후 다시 업로드 해야함

  - 버킷 생성 후 파일 업로드 하면 url 생김

 

1. 버킷 생성

Cloud Storage - 브라우저 - 버킷 만들기
버킷 이름 설정

 

  - 리전을 다양한 곳에 두면 가용성이 좋아지겠지만 비용이 많이 듬

단인 리전 선택
만들기

 

2. 버킷 공개 액세스 허용

버킷 - 권한 - 추가
모든 사용자 추가

 

  - 모든 사용자 추가 = 공개 액세스 허용

공개 액세스 허용

 

  - 공개 액세스를 허용했기 때문에 버킷이 인터넷에 공개 가능해짐

인터넷에 공개 설정

 

3. 객체 업로드

이미지 파일 업로드
업로드 한 객체의 인증된 URL 접속
접속 가능

 

 

 


 

 

 

6. Cloud DNS 

1. Cloud DNS 생성

네트워크 서비스 - Cloud DNS
Cloud DNS API 사용
DNS 영역 만들기

 

  - hosting.kr에서 생성한 DNS로 생성

Cloud DNS의 이름 설정
Cloud DNS 생성시 자동으로 네임서버 생성
nslookup으로 DNS 확인

 

2. hosting.kr 네임서버 변경

  - 실제 DNS 조회를 위해 네임서버를 변경

hosting.kr의 내 도메인 - 네임서버 변경
네임서버 정보 관리

 

  - 네임서버 정보 2개 필수

Cloud DNS의 네임서버 입력

 

  - 위에서 수정한 네임서버 정보 선택 

test 네임서버 정보 선택
hosting.kr의 네임서버를 Cloud DNS 네임서버로 설정

 

<httpd 설정 web-1>

  - 레코드 세트 추가

레코드 세트 추가

 

  - WEB 인스턴스의 공인 IP 등록

www.jwoh.xyz를 조회할 수 있도록 등록

 

  - 시작페이지 생성

/var/www/html/index.html

 

  - 방화벽 열기

http의 80번 포트 개방

 

  - DNS 적용 확인

www.jwoh.xyz 조회 확인
웹 접속 확인

 


 

<ftp 설정 web-2>

  - selinux 비활성화

/etc/sysconfig/selinux

 

  - vsftpd 설치

 

  - 사용자 생성

user a, b 생성 후 패스워드 설정

 

  - 설정 확인을 위해 파일 생성

각 사용자의 home 디렉토리에 500MB 크기의 txt 파일 생성

 

  - 필요한 파일 생성

파일을 모을 디렉토리 생성
/ftp/banner
/ftp/chroot

 

  - 설정 파일 편집 /etc/vsftpd/vsftpd.conf

banner file 경로 설정
chroot list file 경로 설정
chroot에게 쓰기 가능

 

  - 시스템 재시작

 

  - 레코드 세트 추가

web-2의 공인 IP 확인
ftp.jwoh.xyz 추가
ftp.jwoh.xyz 추가 완료

 

  - 방화벽 열기

ftp의 20,21번 포트 개방

 

  - 설정 확인

nslookup 조회 가능
chroot 적용된 사용자 a
chroot 적용되지 않은 사용자 b

 

 


 

<mail 설정 web-2>

  - 필요한 파일 설치

dovecot, sendmail, sendmail-cf 설치

  - sendmail.mc 편집

주석(dnl) 제거 후 14레벨 설정
인증 관련 부분 주석 제거
모든 IP에게 서비스 하기 위해 IP 부분 지우기

 

  - 수정 파일을 configuration 파일에 밀어넣기

  - configuration 파일의 39번째 공백으로 있는 오류줄을 삭제

 

  - 도메인 등록

/etc/mail/local-host-names 파일에 도메인 등록

 

  - 접근 제어 파일 설정

/etc/mail/access 파일에 도메인 RELAY 등록

 

  - hash 작업 (sendmail이 이해할 수 있게)

  - 그룹에 사용자 추가

/etc/group에 aa, bb 추가

  - 서비스 port, protocol 설정

/etc/dovecot/dovecot.conf

  - 평문 인증 사용 설정

/etc/dovecot/conf.d/10-auth.conf

  - 사서함 위치 설정

/etc/dovecot/conf.d/10-mail.conf

  - 포트 개방

/etc/dovecot/conf.d/10-master.conf

 

  - SSL 설정

/etc/dovecot/conf.d/10-ssl.conf

 

  - 시스템 재시작

 

  - 방화벽 열기

mail의 25, 110, 143번 포트 열기

 

  - 레코드 세트 추가

mail.jwoh.xyz 설정 (web-2의 공인 IP 설정)

 

  - 설정 확인

nslookup 조회 가능

 

  - 메일 계정 생성

도메인을 이용해 메일 계정 생성

 

  - 사용자 aa에서 bb로 메일 쓰기

 

  - bb 사용자가 메일 수신 가능

관련글 더보기