분류 전체보기
-
AWS ECS를 활용한 머신러닝 서비스 배포하기 #2 (feat. Security Group 생성)AWS/ECS 2021. 7. 1. 23:51
https://ninano1109.tistory.com/155 AWS ECS를 활용한 서비스 배포하기 #1 (feat. Cluster, Load Balancer 생성) 1. Cluster EC2 Linux + Networking> Create an empty cluster> Tag 입력 2. Load Balancer Dev/Prod Application Load Balancer Create> Name입력> Scheme: internet-facing> Listeners: HTTP/80> Availability.. ninano1109.tistory.com Security Group Security group name> VPC 선택> Inbound rules> Outbound rules:All> Tags 설정..
-
AWS ECS를 활용한 머신러닝 서비스 배포하기 #1 (feat. Cluster, Load Balancer 생성)AWS/ECS 2021. 6. 27. 09:16
1. Cluster EC2 Linux + Networking> Create an empty cluster> Tag 입력 2. Load Balancer Dev/Prod Application Load Balancer Create> Name입력> Scheme: internet-facing> Listeners: HTTP/80> Availability Zones: VPC 선택> Tag 설정 Listeners 해당 Load Balancer에서 사용할 Security Group 생성 시 추가했더 IP의 Port 번호를 추가해주어, 요청이 들어오는 Port를 듣고 허용을 해 줄 수 있음 Security Settings: Next 누르기 Security Group 선택/ 새로 생성하기(Load Balancer용으로!) ..
-
[Docker] RUN vs CMD vs ENTRYPOINT 실행 명령어 차이점 비교Docker 2021. 6. 26. 10:07
RUN Shell command 실행과 같이 이미지 빌드 과정에서 필요한 커맨드 실행하기 위해 사용 보통 이미지 위에 패키지를 설치하고, 새로운 레이어 생성(RUN 명령어 실행할 때 마다)할 때 사용 CMD default 명령어나 파라미터 설정에 사용 docker run 실행 시 별도의 command 주지 않으면, CMD 명령어가 default로 실행됨 docker run 실행 시 command 명령어(ex. echo)가 있다면, CMD 명령어는 무시됨(덮어쓰기) 즉, docker container 실행할 때 사용할 default 명령어를 설정함 여러개의 CMD 중 가장 마지막 CMD 1개만 실행 됨 ENTRYPOINT docker run 실행 시 수행하는 명령어로 container를 실행할 수 있게 설..
-
[Docker] Dockerfile $ 환경 변수 활용 방법Docker 2021. 6. 25. 23:02
변수 사용 $ 변수 사용시에는 "=" 앞 뒤로 공백 없이 입력해야 한다. 선언한 변수를 사용하기 위해서는 ${변수이름} 또는 $변수이름 으로 표기 ENV MODEL_NAME="GS" ENV MODEL_VERSION="${MODEL_NAME}_${TIMESTAMP}" `(백틱) Template literals $(변수)와 같은 기능 JavaScript에서 문자열을 입력하는 방식 내장된 표현식을 허용하는 문자열 리터럴 런타임 시점에 일반 javascript 문자열로 처리 및 변환 백틱(`)은 내부 명령어의 실행 결과를 스트링으로 반환 TIMESTAMP=`date +%y%m%d%H%M` # TIMESTAMP=2106251525 - 이상 오늘의 삽질일기 끝! 여기저기 삽질도 해보고 날려도 먹으면서 배우는 게 결..
-
[Docker] EXPORT vs ARG vs ENV 환경변수 생성 명령어 비교Docker 2021. 6. 23. 23:32
ARG AKA "build-time variables" Docker 이미지를 build할 때(RUN) 환경 변수 생성 Dockerfile에서 ARG로 정의된 순간부터 이미지 빌드되는 시점까지 사용됨. 컨테이너 실행 시에는 ARG 변수 접근 불가 Dockerfile에서 ARG 값을 default로 주지 않고, build 명령어에 값을 지정하지 않으면 에러 발생함 해당 default 값이 있다면, build 명령 시 ARG 값으로 대체됨 ENV Build 단계에서 참조 가능(ARG를 ENV에 pass하는 경우 등) Docker 컨테이너를 실행할 때(ENTRYPOINT, CMD) 환경 변수 전달 및 덮어쓰기 가능 # expect a build-time variable(이미지 빌드 시 --build-arg 파라..
-
Docker 컨테이너 배포 파이프라인 구축 스프린트 회고프로젝트 회고록 2021. 6. 18. 22:11
0. 진행 배경 검색어 추천 학습을 위한 버전 관리 (새 고객사 추가 이후 데이터 반영, 기존 고객사 데이터 업데이트 등) 파이프라인 구축 필요 처음 목표했던 점은 keyword DAG 에서 1) 데이터 전처리, 학습 진행 후 S3 업로드와 2) 학습 결과 데이터를 바탕으로 docker 이미지 빌드 후 3) ECR에 Push하여 4) ECS에서 최신 이미지를 Pull 받아 추천 컨테이너 돌리기⇒ 추천 API 응답 확인 1. Dockerfile 작성 👉 검색어 추천 학습을 마치고 해당 버전을 구분할 수 있는 TIMESTAMP(날짜_시간) 태그를 달아서 docker 이미지 빌드 후 ECR에 이미지 Push 하기 위한 Dockerfile 작성 FROM --platform=linux/amd64 python:3...
-
Docker API 이미지 빌드 buildargs 파라미터 값 변환(Feat. URI component encode)카테고리 없음 2021. 6. 15. 22:58
Docker API로 도커 이미지 빌드 시 buildargs라는 파라미터를 Request body에 추가하여 변수 값을 전달할 수 있습니다. 이때 buildargs 파라미터를 전달하기 위해서는 URI component encoded 형태로 변환을 해주어야 합니다. 아래 Docker API 공식문서를 보고 참고해보겠습니다. https://docs.docker.com/engine/api/v1.41/#operation/ImageBuild Docker Engine API v1.41 Reference docs.docker.com buildargs를 파라미터로 추가할 수 있는 방법에 대해서 설명해주고 있습니다. 👉 buildargs={"FOO":"bar"} 일반적으로 URL 주소에 파라미터를 추가하는 양식은 다음과..
-
[Docker] Image build 자동화를 위한 Shell Script 작성하기Docker 2021. 6. 11. 22:05
👉 이미지 빌드를 위한 파일 압축 및 빌드 명령어를 자동화하기 위해 Shell Script에 작성하기 👉 해당 스크립트를 실행하기 위한 Task를 Airflow DAG에 추가하기 3-1) Shell Script 작성 👉 Docker 이미지 빌드를 위한 cmd 명령어 등 관련 명령어들 자동화 하기 위해 shell script에 작성 buildargs={"TIMESTAMP":"${TIMESTAMP}"} # Image Build 시 필요한 파일들 압축 tar -cvf Dockerfile.tar.gz Dockerfile requirements.txt app.py ... # CLI 명령어 첫번째 전달 파라미터 -> $1 # Image TAG Name from Airflow DAG(current_dag_run_ti..