관련지식
GCP, Compute Engine, metadata

GCP에서 VM 인스턴스가 실행되면 서버 안의 관련 프로세스도 실행하고 싶을것입니다. 특히 서버가 기동되면서 할당되는 아이피를 duckdns와 같은 DDNS에 갱신하고 싶은 경우엔 꼭 필요하겠죠. 인스턴스 설정으로 들어가서 메타데이터를 적용하면 됩니다.

메타데이터 키 startup-script 에는 실행하고 싶은 스크립트를 정의할수 있습니다. 공식 가이드에서는 아래와 같은 문장을 넣는것을 예로 들었습니다.

  1. #! /bin/bash
  2. apt-get update
  3. apt-get install -y apache2
  4. cat <<EOF > /var/www/html/index.html
  5. <html><body><h1>Hello World</h1>
  6. <p>This page was created from a simple startup script!</p>
  7. </body></html>
  8. EOF

하지만 보통은 저러한 내용을 담은 스크립트 파일을 실행할것 같습니다.

여기서 정의되는 스크립트는 모두 root 로 실행됩니다. 특정 사용자의 권한으로 실행하고 싶다면 su 명령어를 이용하면 됩니다. 아래 스크립트는 사용자1의 권한으로 \”\” 안의 내용을 실행하게 됩니다.

만약 서버 기동시 스크립트가 정상적으로 실행된것 같지 않아서 확인이 필요할땐 ssh 접속후 ‘sudo google_metadata_script_runner —script-type startup —debug’ 명령어를 입력하면 수동으로 실행해볼수 있습니다.

서버 기동시 Google Cloud Storage URL 을 실행하고 싶다면 startup-script 대신 startup-script-url 를 사용하면 됩니다.