베하.
다들 2024년 복 많이 받으세요! 올해도 열심히 달려봅시다.
오늘의 포스팅 주제는 Cloud Build란 무엇이고, Cloud Build를 이용한 간단한 Build 및 Deploy에 대해 알아보겠습니다.
Cloud Build는 GCP에서 제공하는 Build를 실행하는 서비스입니다.
Cloud Build는 다양한 저장소 또는 Cloud Storage에서 Source Code를 가져오고, 사양에 맞게 Build를 실행하며, Docker Container 또는 Java Archive와 같은 Artifact를 생성할 수 있습니다.
또한 Cloud Build를 사용하여 Software 공급망을 보호할 수 있습니다. Cloud Build 기능은 Software Artifact Level 3의 공급망 수준 요구사항을 충족합니다.
수행 작업을 위해선 Build Configuration을 작성해야합니다.
Build Configuration은 종속 항목을 가져오고, 단위 테스트, 정적 분석, 통합 테스트를 실행하고, Docker / Gradle / Maven / Bazel / Gulp와 같은 Build 도구로 Artifact를 만들도록 Build를 구성할 수 있습니다.
Cloud Build가 제공하는 Build Configuration File Schema의 종류는 아래 링크에서 확인할 수 있습니다.
https://cloud.google.com/build/docs/build-config-file-schema?hl=ko
Docker Image를 Build하고 Image를 Artifact Registry에 Push하여 Cloud Build를 시작하는 방법을 알아보겠습니다.
해당 실습은 간단한 Sample Code를 예시로 준비하였습니다.
먼저, Build할 Source File을 준비합니다.
touch sample.sh
echo "Hello, world! The time is $(date)." >> sample.sh
그 후, DockerFile을 생성합니다.
FROM alpine
COPY sample.sh /
CMD ["/sample.sh"]
파일을 실행가능하게 만듭니다.
chmod +x sample.sh
Artifact Registry에 Docker 저장소를 생성합니다.
실습 Region으로는 us-west2를 선택했습니다.
gcloud artifacts repositories create sample-repo --repository-format=docker --location=us-west2
DockerFile을 이용하여 Image를 빌드합니다.
gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/[Project ID]/sample-repo/sample-image:v1
이렇게 DockerFile을 이용하여 sample-image라는 Docker Image를 Build하고, Artifact Registry에 Push가 완료됩니다.
Deploy 또한 간단하게 수행이 가능합니다.
해당 내용의 yaml File을 생성합니다.
steps:
- name: 'gcr.io/cloud-builders/gcloud'
script: |
gcloud run deploy sampleservice --image us-west2-docker.pkg.dev/[Project ID]/sample-repo/sample-image --region us-west2 --platform managed --allow-unauthenticated
해당 File은 Cloud Build Configuration File로 사용됩니다.
생성한 yaml File을 Deploy합니다.
gcloud builds submit --region=us-west2 --config deploy.yaml
오늘은 Cloud Build란 무엇이며, Cloud Build를 이용하여 간단한 Build와 Deploy하는 법에 대해 알아보았습니다.
처음엔 다 어렵지만.. 하나하나 배워가는 재미는 역시 즐겁게 일하는 원동력이 되는 것 같습니다.
그럼 다들 독감 조심하시구요! 오늘의 포스팅은 여기서 마치겠습니다.
베바~!
'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글
VPC Service Control (0) | 2024.01.12 |
---|---|
Duet AI Bigquery 활용 (1) | 2024.01.05 |
Bigquery Table 속성 일괄 수정 (0) | 2023.12.27 |
[GCP] Organization Policy (0) | 2023.12.26 |
App Engine과 각 언어 환경 (0) | 2023.12.22 |
댓글