AWS App Runner에서 Golang 서버를 빠르게 시작하십시오.

AWS App Runner란 무엇입니까?
컨테이너화된 웹 애플리케이션을 간단하게 디버깅할 수 있는 서비스다.(뒷면에는 Fargate 사용)
2021년 5월에 등장하는 서비스라 새롭다.
컨테이너를 움직이게 하는 수단으로는 아마존 ECS가 있지만, 그것보다 서버를 빨리 만들려고 할 때 편리할 것 같다.
요금 체계 (@ 도쿄 지역)
다음 세 가지 요소로 구성되어 있습니다.
  • 스토리지 제공...GB당 0.009달러
  • 활성 컨테이너 인스턴스의 CPU 및 스토리지... 0.081 USD/vCPU+ 0.009 USD/GB
  • 건축비·0.005달러/건축시간(분)
  • 1vCPU 메모리 2GB가 구축되지 않고 한 달 동안 유효하게 작동하려면 약 70달러의 비용이 소요됩니다.
    2022년 2월 업데이트에서 VPC 트래픽 지원
    게시 노트에 따르면 앱 런너는 VPC의 리소스에 접근할 수 있다.
    https://docs.aws.amazon.com/apprunner/latest/relnotes/release-2022-02-08-vpc.html
    어떻게 된 일인지 말하자면 기존에는 앱런너가 RDS 등 AWS 리소스에 접근할 때 공적인 접근이 필요했다.그게 마음에 걸려서 앱런너 사용에 두 걸음 밟았지만 이번 업데이트를 계기로 해보고 싶었다.(단, 이번 보도는 공개적으로 방문한 서버입니다.)
    환경 확인
    Golang의 echo 프레임워크를 사용하여 응용 프로그램을 설계하고 싶습니다.
    Golang의 버전은 다음과 같다↓
    go version go1.17.8 darwin/amd64
    
    GiitHub 창고의 URL은 여기.입니다.
    손수
    (1) ECR의 창고 제작
    이번에는 ECR에 밀린 인상을 바탕으로 앱 런너를 운영하고 싶다.
    이 글에서 우리는 appprunner-golang라는 창고를 만들었다.

    ※ 나중에 필요하면 추진 명령을 미리 복사합니다.
    (2) Golang 어플리케이션 설치 준비
    mkdir apprunner-golang && cd apprunner-golang
    go mod init apprunner-golang
    go get github.com/labstack/echo/v4
    go get github.com/labstack/echo/v4/middleware
    
    (3) 설치
    vim server.go
    
    package main
    
    import (
    	"github.com/labstack/echo/v4"
    	"github.com/labstack/echo/v4/middleware"
    	"net/http"
    )
    
    func main() {
    	e := echo.New()
    	e.Use(middleware.Logger())
    	e.Use(middleware.Recover())
    
    	e.GET("/", helloAppRunner)
    
    	e.Logger.Fatal(e.Start(":8080"))
    }
    
    func helloAppRunner(c echo.Context) error {
    	return c.String(http.StatusOK, "Hello, This is AWS App Runner!!")
    }
    
    (4) Docker File 만들기
    FROM golang:1.17-alpine
    
    WORKDIR /app
    COPY go.mod ./
    COPY *.go ./
    
    RUN go mod tidy \
        && go get \
        && go build -o /apprunner-golang
    
    EXPOSE 8080
    
    CMD ["/apprunner-golang"]
    
    (5) ECR에 이미지 누르기
    ECR의 콘솔에서 얻은 추진 명령을 사용합니다.
    aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin {your_account_id}.dkr.ecr.ap-northeast-1.amazonaws.com
    docker build -t apprunner-golang .
    docker tag apprunner-golang:latest {your_account_id}.dkr.ecr.ap-northeast-1.amazonaws.com/apprunner-golang:latest
    docker push {your_account_id}.dkr.ecr.ap-northeast-1.amazonaws.com/apprunner-golang:latest
    
    //M1 Macでビルドす場合は以下の通りにしないとだめっぽい
    docker build --platform amd64 -t apprunner-golang .
    
    (6) App Runner 콘솔에서 작업
    컨테이너 레지스트리 및 Amazon ECR을 선택한 후 방금 만든 ECR 이미지의 URI를 지정합니다.
    아래와 같이 설정하고 "다음"을 누르십시오.

    다음 화면에서 서비스 이름을 지정합니다.
    또 포트가 8080인지 네트워크가 パブリックアクセス인지 확인한다.

    다음 을 누릅니다.이후 확인 화면에 "제작과 디버깅"을 누릅니다.
    (7) 확인
    몇 분 후Create Serviceが成功しました。.

    기본 도메인을 클릭하면 Golang의 응답이 표시됩니다.

    감상
  • 컨테이너만 준비하면 서비스가 간단하게 시작되어 매우 편리하다.앞으로 특별히 EC2에서 docker를 시작할 필요가 있다고 생각합니다.
  • ECS보다 서버를 쉽게 구축할 수 있습니다.학습 원가도 상당히 낮다.
  • 맞춤형 도메인 이름도 앱 러너의 콘솔을 통해 설정할 수 있어 별도의 도메인 이름 사이트를 쉽게 만들 수 있다.
  • GiitHub과 합작할 수 있기 때문에 이미지를 구축하는 시간을 절약할 수 있다.
  • Auto Scoling도 쉽게 설정할 수 있는 느낌.
  • 좋은 웹페이지 즐겨찾기