본문 바로가기
웹 프로그래밍

GCP 가상 머신 생성 및 APACHE 서버 배포(feat.vscode로 ssh)

by CSEGR 2024. 3. 12.
728x90

. 웹 서버 인프라 환경

  • 클라우드 플랫폼: Google Cloud Platform(GCP)
  • 웹 서버 소프트웨어: Apache
  • 인스턴스 유형: Google Compute Engine
  • ssh 접속 방법 : Visual Studio Code 
1. GCP (= Google Cloud Platform) VM 생성 

Google Cloud Platform에서 가상 머신을 생성을 하는 과정이다. 

 계정을 만든 후 "콘솔로 이동" 선택 

1. 프로젝트 생성 및 선택 

2. 좌측 상단 메뉴에서 "ComputeEngine > VM인스턴스" 선택 

3. 파란색 인스턴스 만들기 선택

1. vm 머신 이름 설정 

2. 지역 설정 

e2-micro 선택 (본인이 원하는 사양으로 설정)

 

(본인 환경에 맞게 설정)

1. 부팅 디스크 변경 버튼 누르기 

2. 운영체제에 Ubuntu 설정 

3. 버전 Ubuntu 20.04 LTS -x86/64, amd64 선택 

 

2. SSH key 생성 

 

Gcp ssh key를 생성하는 명령어 입니다.

ssh-keygen -t rsa -f [~/.ssh/KEY_FILENAME] -C [USERNAME] -b 2048

 

  • -f ~/.ssh/KEY_FILENAME: 키 파일의 경로와 이름을 지정합니다.
  • -C USERNAME: 키에 주석을 추가합니다. 주석은 키를 식별하는 데 사용되며, 일반적으로 사용자 이름 또는 이메일 주소를 입력합니다.
  • -b 2048: 생성할 키의 비트 수를 지정합니다. 이 경우 2048 비트의 키를 생성합니다.

명령어를 실행하면, ~/.ssh 디렉토리에 공개키(public key)와 비밀키(private key)가 한 쌍으로 저장되게 됩니다. 

저는 KEY_FILENAME을 newwebproject로 정한 결과, 비밀키인 newwebproject 파일과 공개키인 newwebproject.pub 파일이 

.ssh 디렉토리에 자동으로 생성되었습니다. 

 

참고로, ssh에 대한 공식 문서를 공유하겠습니다.

https://cloud.google.com/compute/docs/connect/create-ssh-keys?hl=ko

 

SSH 키 만들기  |  Compute Engine 문서  |  Google Cloud

SSH 키 생성 방법

cloud.google.com

3. SSH key 등록하기 

ssh key를 생성하였으면, SSH 키를 사용하여 사용자가 안전하게 원격 서버에 접속할 수 서버측에 공개키를 등록하여야한다. 

 

public key를 cat 명령어를 사용하여 복사한다. 

$ cat ~/.shh/[NAME].pub

 

1. VM 인스턴스에 key 등록 

VM 인스턴스에서 가상머신 이름 클릭 

수정을 눌러서 스크롤을 내린 뒤, SSH 키에 public key 등록 

 

2. 메타 데이터에 key 등록 

1. Coumpute Engine > 메타데이터 선택 

2. SSH KEYS 선택 후 공개키(public keys) 등록 

 

4. vs code로 ssh 실행하기 

 

vs code 내에서 확장자 Remote-SSH를 설치해준다. 

 

2. F1 버튼을 눌러서 ssh 를 친 후, Config 버튼을 누른다. 

 

3. 접속하려는 원격 서버 정보를 입력한다. 

Host [alias]
    HostName [ip addr]
    User [account_name]
    Port [port number]
    IdentityFile [key location]

 

  • Host [alias]: 이 호스트에 대한 별칭(alias)을 지정합니다. 이 별칭은 SSH 연결을 설정할 때 사용됩니다. 
  • HostName [ip addr]: SSH 연결을 수립할 호스트의 IP 주소나 도메인 이름을 지정합니다. GCP에 접속하여 vm 인스턴스 정보에서 외부 IP를 적어주면 됩니다.  
  • User [account_name]: SSH 연결 시 사용될 사용자 이름을 지정합니다. 보통 이는 원격 서버에 접속할 때 사용되는 계정 이름입니다.
  • Port [port number]: SSH 연결에 사용할 포트 번호를 지정합니다. 기본적으로 SSH는 22번 포트를 사용하지만, 경우에 따라 다른 포트로 SSH 서버를 구성할 수 있습니다. 22번 포트일 경우 생략해도 됩니다. 
  • IdentityFile [key location]: SSH 연결 시 사용할 개인 키 파일의 경로를 지정합니다. 이 키 파일은 SSH 연결을 인증하는 데 사용됩니다.

예시 )

Host webproject
    HostName 34.64.241.xxx
    User cofla30105
    IdentityFile /Users/gyuri/.ssh/newwebproject

 

이후 좌측 사이드바에 새로운 아이콘이 생기게 되고 연결된 ssh 가 뜬다. 

5. ssh 서버에서 Apache 설치 

 

Apahce 설치 명령어 입니다. 

sudo apt update && sudo apt -y install apache2

 

Apache가 성공적으로 설치되면 운영체제가 자동으로 Apache 서버를 시작합니다.

 

Apache 실행 확인 명령어 입니다. 

sudo systemctl status apache2

실행화면에 active(running)이라고 뜬다면 성공  !!! 

 

https://cloud.google.com/compute/docs/tutorials/basic-webserver-apache?hl=ko

 

기본 Apache 웹 서버 실행  |  Compute Engine 문서  |  Google Cloud

의견 보내기 기본 Apache 웹 서버 실행 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 튜토리얼에서는 Compute Engine을 사용하여 가상 머신(VM) 인스턴스에서 A

cloud.google.com

 

 

6. Apache 서버에 웹 사이트 파일 업로드

 

저는 html을 Apache 서버에 올리는 실습을 진행하였습니다. 

Apache의 경우에는 서버 url을 칠 경우 /var/www/html/index.html의 내용이 제일 먼저 렌더링 됩니다. 

따라서 저는 vi 를 이용해서 index.html 내용을 고쳐주었습니다.

ssh 상에서 vi를 이용하여 파일을 생성하고 수정할 수 있지만, 

로컬 상에 있는 파일들을 원격 서버에 올리고 싶을 때 이 포스팅을 참고 하시면 좋을 것 같습니다!!

2024.03.12 - [웹 프로그래밍] - scp : 로컬 환경에서 원격 서버로 파일 보내기 [ssh 인증키 관련 오류 해결]

 

scp : 로컬 환경에서 원격 서버로 파일 보내기 [ssh 인증키 관련 오류 해결]

오늘은 문제를 해결한 것을 포스팅해보겠습니다. 이 문제는 Google Cloud Platform(GCP)을 사용하여 가상 머신을 생성하고, 그 안에 Apache 웹 서버를 설치하고 구동하는 과정에서 로컬에서 웹 서버로 이

cse-gr.tistory.com

 

🔴그리고!! ssh 서버 상에서 vi를 사용하시거나 명령어를 사용하실 때 접근 권한이 막혀있는 경우가 많으니🔴

🔴Permission Error 가 나는 경우 "sudo" 옵션을 사용하시면 됩니다. !! 🔴

 

7. 배포한 홈페이지 접속

 

웹 서버가 가상 머신(VM)에서 호스팅되는 경우, 해당 VM의 외부 IP 주소를 사용하여 웹 사이트에 접속할 수 있습니다.

http://[VM의 외부 IP 주소]

 

https://가 아닌 http://로 쓰시는걸 유의하시길 바랍니다 !!

 

728x90