반응형

google cloud 에 어플리케이션을 배포하려면 CI/CD 도구가 필요하다.

배포 도구로 github actions 를 통해 구글 클라우드에 어플리케이션을 배포하려면 IAM 이라는 서비스계정 인증절차가 필요한대 이에 대해 포스팅하려고 한다.

 

Github Action 

 최상위 폴더에서 ./github/workflows 폴더에 .yml 파일을 넣어주면 된다. 이 떄 파일명은 상관없다.

 

name: Google Cloud Auth

on:
  push:
    branches: [ "master" ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    
    - name: Google Auth
      id: auth
      uses: 'google-github-actions/auth@v1'
      with:
        credentials_json: '${{ secrets.GCP_CREDENTIALS }}' 
        
    - name: set up cloud sdk
      uses: 'google-github-actions/setup-gcloud@v1'

    - name: "Use gcloud CLI"
      run: "gcloud info"

위 처럼 github action 파일을 작성해주고, 위의 secrets 텍스트를 GCP IAM 서비스에서 발급 받으면 된다.

 

 

구글 클라우드에 루트 계정이 있겠지만 다른 작업자 및 다른 서비스에서 구글 클라우드를 접근하게 하기 위해서는 IAM 서비스 사용을 해야한다.

github action 처럼 외부 서비스에서 구글클라우드에 접근하게 하려면 

서비스계정을 생성해야 한다.

 

서비스계정 생성

IAM 및 관리자 > 서비스 계정 

계정ID 만 임의로 만들면 끝이다

선택사항 기입할 필요없고 완료 버튼 누른면 완료

 

서비스 계정을 생성하게 되면 리스트에 키 없음이라고 뜨는데, 여기 키를 생성해주게 되면 된다.

해당 줄 맨 우측에 [키관리] 버튼 누르게 되면 키 페이지 로 이동된다.

 

새 키 만들기 

만들기 버튼을 하게되면 json 파일이 다운되는데, 여기서 이 파일의 json 전체를 복사해서

 

github 변수 등록

프로젝트의 settings > Secrets and variables 메뉴에서 Secrets 변수를 넣어주면 된다.

 

 

 

https://cloud.google.com/iam/docs/service-accounts-create?hl=ko

반응형
반응형

 

구글 클라우드 플랫폼(GCP) 시작하기

구글 클라우드 플랫폼(GCP)를 사용하려면 먼저 계정을 등록시켜야 합니다. Gmail에 사용하는 구글 계정이 있는경우 이를 통해 로그인을 진행 할 수 있지만 클라우드 계정이 없다면 클라우드 계정에 가입해야합니다. 구글 클라우드 플랫폼은 90일간 $300을 사용할 수 있는 무료 크레딧을 제공해 주기 때문에 이를 통해 구글 클라우드 플랫폼을 체험해 볼수도 있습니다.

 

구글 클라우드 플랫폼 등록을 맞추면 클라우드 콘솔로 이동하고 My First Project라는 새로운 프로젝트가 자동으로 만들어 줍니다. 또한 페이지의 왼편에는 컴퓨팅, 서버리스, 저장소등과 같이 구글 클라우드 플랫폼이 제공하는 서비스가 속한 카테고리와 프로젝트별 구성란이 있습니다.

 

1. 프로젝트 선택하기

 

2. cloud shell

cloud shell 활성화하기

cloud shell 로 한 프로젝트에 속한 application 들을 관리

 

gcloud auth list

 

gcloud config set account `이메일계정`

 

다음과 같이 output 이 나오면 인증 되었고, 아래 명령어로 프로젝트를 확인하면 된다.

gcloud config list project

 

정상 output 이다 

안된다면 아래 명령어로 project 를 설정하자

gcloud config set project <PROJECT_ID>



참고

https://codelabs.developers.google.com/codelabs/cloud-app-engine-springboot#0

반응형

+ Recent posts