이번 블로그 포스트에서는 Go 언어로 작성된 웹 애플리케이션을 클라우드 환경에 배포하는 방법을 살펴보겠습니다. Go 언어는 간결하고 빠른 실행 속도를 가지고 있어 웹 애플리케이션 개발에 널리 사용되고 있습니다. 우리는 이를 Google Cloud Platform (GCP)을 예시로 들어 설명을 진행할 것입니다.
1. Go 웹 애플리케이션 작성하기
Go로 간단한 웹 애플리케이션을 작성해보겠습니다. 다음은 간단한 “Hello, World!” 웹 애플리케이션을 작성한 예시입니다.
package main
import (
"fmt"
"log"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, World!")
}
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
2. Docker 이미지 빌드하기
이제 작성한 Go 웹 애플리케이션을 Docker 이미지로 만들어보겠습니다. Docker를 사용하면 애플리케이션을 독립적으로 실행할 수 있으며, 클라우드 환경에서 쉽게 배포할 수 있습니다.
# Dockerfile
FROM golang:1.16
WORKDIR /app
COPY . .
RUN go build -o main .
CMD ["./main"]
이후 터미널에서 다음 명령어를 실행하여 Docker 이미지를 빌드합니다.
docker build -t my-go-app .
3. Google Cloud Platform에 배포하기
먼저, Google Cloud Console에서 새로운 프로젝트를 생성하고, Cloud Shell을 열어보겠습니다. 이후 Docker 이미지를 Google Container Registry에 업로드하고, Google Kubernetes Engine을 사용하여 클러스터를 생성하고 애플리케이션을 배포할 수 있습니다.
gcloud builds submit --tag gcr.io/[PROJECT-ID]/my-go-app
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-go-app
spec:
replicas: 3
selector:
matchLabels:
app: my-go-app
template:
metadata:
labels:
app: my-go-app
spec:
containers:
- name: my-go-app
image: gcr.io/[PROJECT-ID]/my-go-app
ports:
- containerPort: 8080
kubectl apply -f deployment.yaml
이제, Go 언어로 작성한 웹 애플리케이션이 Google Cloud Platform에서 성공적으로 배포되었습니다.
이처럼, Go 언어를 사용하여 작성한 웹 애플리케이션은 Docker를 통해 쉽게 이미지로 만들고, Google Cloud Platform과 같은 클라우드 환경에 배포할 수 있습니다. Go 언어와 클라우드 기술을 함께 사용하여 안정적이고 확장 가능한 웹 애플리케이션을 개발하는 것을 기대해 봅니다.
참고 자료
- Google Cloud Platform 공식 문서
- Docker 공식 문서
- A Tour of Go - Go 언어 튜토리얼 페이지