본문 바로가기

반응형

GO

(5)
5) AWS ECR에 docker images Push하기 앞에서 만들어 놓은 docker images를 aws ecr에 올려 보자. 먼저 AWS 계정을 만들고 테스트를 위한 EC2 instance를 하나 만들자. 이제 순서는 아래와 같다. 1) AWS ECR repository를 생성한다. 2) IAM > 사용자에 ECR 관련 권한추가 3) 만들어 놓은 EC2 instance에서 ecr에 접속하고 docker push 하면 끝. 매우 간단하다. 1) AWS ECR 생성 간단히 ecrtest라는 repository를 생성했다. 2) IAM > 사용자에 ECR 관련 권한추가 권한은 AmazonEC2ContainerServiceforEC2Role , AmazonEC2ContainerRegistryFullAccess 두개를추가헀다. 3) 만들어 놓은 EC2 insta..
4) Go Dockerfile 만들기 ( go mod ) 앞에서 만들어 놓은 helloTest 를 Dockerfile로 만들어서 서버에서 실행시켜 보자. 먼저 Dockerfile을 만드는 방법은 생각보다 단순하다. 1) single stage 방법 FROM golang:alpine ADD . . RUN go build main.go CMD ["./main"] 위와 같은 방법으로 하게 되면 go lib 를 모두 포함한 이미지가 만들어져 실제 docker image 사이즈 700M 이 넘어 갈만큼 커지는것을 확인 할수 있다. 사실 go 를 build 하고 나오는 실행 파일만 있으면 되는데 이미지에 불필요한 lib가 들어가는 모양이 되는것이다. 이를 해결하기 위해 Multi Stage 방법이 있다는것을 알게 되었다. 2) Multi Stage 방법 단순하다. go ..
3) GO Module 이란? GO Module 테스트 GO를 공부하면서 가장 이상하고 불편했던 점이 Java와 다르게 workspace가 GOPATH가 되어야 한다는것이다. workspace를 변경하고 싶으면 환경변수에서 GOPATH를 변경하고 IDE를 재시작해야하는 굉장히 불편한 상황이 계속 연연출되었다. 처음에는 에이 아니겠지 설마 이렇게 불편하게 컴파일을 해야 하나? 하면서 의심하다가 ... 결국 그래야만 한다고 생각하면서 GOPATH를 수정했는데. GO Module이 있다는것을 알게 되었다. 그러면 그렇지! 사람들이 이렇게 불편하게 놔두진 않았을것이다. GO Module 은 Java의 gradle or Maven Dependency를 관리해주는 기능이다. 아주 단순하다. 1) GO Path와 다른 폴더에 main.go를 작성 기존 GOPATH = C..
2) GO RESTAPI 만들기. 설정된 개발환경에서 main.go에 아래와 같이 간단한 rest api 를 만들어 봤다. package main import ( "fmt" "log" "net/http" ) func main(){ //fmt.Println("main test 입니다.") router := httprouter.New() router.GET("/hello", HelloAPI) log.Fatal(http.ListenAndServe(":8080", router)) } func HelloAPI(rs http.ResponseWriter, r *http.Request, ps httprouter.Params){ fmt.Fprintln(rs , "Hello GO!") } 위 코드를 httprouter 라는 package가 import 되..
1) GO 설치하기 먼저 간단히 GO는 2009년도에 구글에서 개발한 언어이다. 특징은 간결하다 . 가볍다 . 스레드보다 가벼운 Go루틴이라는 동시성 제어기능을 제공한다. 자체 GC기능을 제공한다. Docker를 GO로 개발했다. 등이 있는것 같다. 여러내용을 읽어 본 결과 GO의 가장 큰 장점은 간결한 소스코드와 뛰어난 성능이라고 느껴졌다. 예를 들어 자바로 REST API를 만들면 유휴 상태일떄 기본적인 메모리를 사용하고있는 반면 GO는 거의 메모리를 사용하지 않고 있고 . 실제 초당 요청 처리수도 자바에 비해 적은 리소스를 사용하고 더 많은 요청에 대해 처리가 가능한 데이터들이 많이 있었다. 그래서 기존 java 로 만들어진 REST API들을 GO로 바꿔 보고자 GO에 대해 공부하기로 한다. 아래 사이트에 접속해서 ..

반응형