Notice
Recent Posts
Recent Comments
Today
Total
04-28 10:01
Archives
관리 메뉴

Jeongchul Kim

[Google Cloud Platform] Compute Engine VM을 활용한 was 서버 띄우기 본문

Google Cloud Platform

[Google Cloud Platform] Compute Engine VM을 활용한 was 서버 띄우기

김 정출 2022. 7. 30. 12:33

[Google Cloud Platform] Compute Engine VM을 활용한 was 서버 띄우기

 

 

Google Cloud Compute Engine에 VM을 생성하고, golang을 통한 WAS 서버 생성을 진행해보겠습니다.

 

Google Cloud 콘솔로 VM을 생성하는 법은 다음과 같습니다.

Compute Engine으로 이동합니다. 인스턴스 만들기 버튼을 클릭합니다.

 

인스턴스의 이름(예: was-api)을 입력합니다.

리전(예: asia-northeast3, 서울)을 선택합니다.

머신 구성에서 VM 유형을 선택합니다.

 

외부에 네트워크 트래픽을 허용하기 위해 HTTP 트래픽을 허용합니다.

만들기 버튼을 클릭합니다.

 

 

해당 VM에 접속하기 위해 SSH 를 클릭합니다.

 

다음의 웹브라우저를 통해 SSH로 연동됩니다.

 

gcloud CLI을 사용해서 VM 생성 및 SSH 접속은 다음과 같습니다.

$ gcloud compute instances create was-api --project=jckim-gcp-prj --zone=asia-northeast3-a --machine-type=e2-medium



생성된 VM에 접속하기 위해서 다음의 ssh 명령어를 입력합니다.

$ gcloud compute ssh --zone "asia-northeast3-a" "was-api"  --project "jckim-gcp-prj"

 

 

서버 내에 golang을 설치합니다.

$ mkdir Application && cd Application

$ sudo apt-get install wget

$ wget https://go.dev/dl/go1.18.4.linux-amd64.tar.gz

$ tar xzvf go1.18.4.linux-amd64.tar.gz

$ sudo mv go /usr/local

$ mkdir -p ~/gopath/src/

 

go 환경 변수를 입력합니다.

$ vi ~/.bashrc

export GO111MODULE=on
export GOPATH=/home/jeongchul.kim/gopath
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

$ source ~/.bashrc

$ go version

$ go env

 

$ cd ~/gopath/src

$ mkdir echo-was && cd echo-was

 

Golang의 labstack/echo 웹프레임워크 패키지를 활용해 간단한 WAS 서버를 개발합니다.

https://github.com/labstack/echo

$ vi main.go

https://github.com/KimJeongChul/go-was-example/tree/main/simple-http-server

package main

import (
  "net/http"
  "github.com/labstack/echo/v4"
  "github.com/labstack/echo/v4/middleware"
)


func main() {
  // Echo instance
  e := echo.New()

  // Middleware
  e.Use(middleware.Logger())
  e.Use(middleware.Recover())

  // Routes
  e.GET("/", hello)

  // Start server
  e.Logger.Fatal(e.Start(":80"))
}



// Handler
func hello(c echo.Context) error {
  return c.String(http.StatusOK, "Hello, World!")
}

 

 

Application 서버를 빌드 합니다.

$ go mod init

$ go mod tidy

$ go build

$ ls -alh



80 포트로 실행하기 위해서는 sudo 권한이 필요합니다.

$ sudo ./echo-was

 

외부 IP를 통해 curl로 호출해보겠습니다.

 

브라우저 주소창에 외부 IP를 입력합니다.

$ curl http://34.64.69.216 -X GET

이상으로 Google Cloud VM에 WAS 서버 배포하는 법을 설명 드렸습니다. 

감사합니다.


Comments