GitLab Runner에서 Docker in Docker 사용하기

2019-03-27

GitLab Runner에서 Executor를 Docker로 설정해놓고, CI/CD 파이프라인에서 사용하는 Alpine Linux(혹은 다른 Linux 배포판 이미지) 내에서 Docker를 사용해야 하는 경우가 생겨서 단순하게 해당 Linux 이미지 내에서 Docker를 설치하고 사용하는 방식으로 CI 설정 파일을 작성했는데 Linux 이미지 내에서 Docker daemon이 켜지지 않는 문제가 있었다.

Read More

Alpine Linux에 Docker와 AWS CLI 설치하기

2019-03-22

Alpine Linux는 작고 가볍고 보안을 중시한 리눅스 배포판으로 Docker 이미지가 5MB 정도밖에 되지 않는 것으로 유명하다. 그래서 리눅스 위에서 간단한 작업을 해야할 때 자주 사용하는데, 이번에 CI/CD 파이프라인을 구성하며 GitLab Runner에서 AWS ECR/ECS에 배포를 어떻게 할까 고민하다가 Alpine Linux 이미지에 Docker와 AWS CLI를 설치하여 사용하는 방법을 적용하기로 했다.

Read More

Go 언어 스터디 - (4) 함수

2019-03-15

이전 글에서 변수 선언를 선언할때 var [변수명] [타입]과 같은 형태로 선언 한다는 것이 가장 기본적인 형태라고 설명했는데 함수도 이와 크게 다르지 않다. 아래는 두 정수 x, y를 입력받아 합을 반환하는 간단한 함수다.

Read More

Go 언어 스터디 - (2) 패키지

2019-03-12

Go는 Python처럼 프로그램을 하나의 패키지로 인식하는데 컴파일 할 때 “main”이라고 이름지은 패키지가 있다면 그 패키지를 컴파일한 결과물은 실행 파일이 되고, “main” 패키지의 main함수가 프로그램의 시작점이 된다. 만약 프로그램이 아닌 라이브러리를 만들것이라면 main 함수를 만들거나 패키지 이름을 main이라 짓지 말아야 한다.

Read More

AWS Lambda에서 SQLAlchemy 사용하기

2019-03-06

기존에 만들었던 서비스를 다시 새로 개발하며 기존 백엔드 코드를 조금 더 예쁘게 구조화하고 다시 작성할 필요성을 느껴서 어떻게 바꿀까 이리저리 고민을 하다가 데이터베이스에 데이터 삽입과 수정을 하는 로직은 AWS Lambda로, 데이터를 읽기만 하는 부분은 서버에서 RDS 읽기 전용 엔드포인트를 참조하는 방식으로 하기로 했다.

Read More