続・プリエンプティブルVMを動かしつづけてみる

 続・プリエンプティブルVMを動かしつづけてみる

1a679952cdf455ecd6a15cbde7ae80d5?s=128

Tomohiko Himura

July 03, 2016
Tweet

Transcript

  1. ଓɾϓϦΤϯϓςΟϒϧVMΛ ͣͬͱىಈͤͯ͞ΈΔ 2016-07-03 LTۦಈ։ൃ27

  2. ͻΉΒ ͱ΋ͻ͜ IaaS͋Μ·ΓΘ͔ΒΜ

  3. None
  4. 何か定期的にアウトプットするといいらしい

  5. ͜Ε·Ͱͷ͋Β͢͡

  6. プリエンプティブルVM 安く使えるGCEインスタンス

  7. 長くても 24時間で停止 それよりも早いことも

  8. インスタンスグループ 常に指定した数のインスタンスを維持してくれる

  9. ほぼずっと起動できた

  10. 停止から起動まで長くて10分

  11. お安くサーバを
 建てられそうです

  12. ໰୊఺ • IPが固定されない • ディスクが消える

  13. ىಈ࣌ʹσΟεΫΛ௥Ճ

  14. 追加ディスク • 消えてほしくないものは別のディスクに • 事前に作成しておく • gcloud compute instances attach-disk

    • 要 インスタンス名 • 要 ディスク名 • 要 ゾーン名
  15. コマンドに必要パラメータ • インスタンス名 -> hostname • ゾーン名 • インスタンスメタデータより インスタンス内から

    curl "http://metadata.google.internal/computeMetadata/v1/instance/? recursive=true" \ -H "Metadata-Flavor: Google"
  16. curl -s "http://metadata.google.internal/computeMetadata/v1/instance/? recursive=true&alt=text" -H "Metadata-Flavor: Google" DQVQMBUGPSN*OUFM)BTXFMM EFTDSJQUJPO EJTLTEFWJDFOBNFJOTUBODF

    EJTLTJOEFY EJTLTNPEF3&"%@83*5& EJTLTUZQF1&34*45&/5 IPTUOBNFJOTUBODFDFJFMEFWJOUFSOBM JE JNBHF MJDFOTFTJE NBDIJOFUZQFQSPKFDUTNBDIJOF5ZQFTGNJDSP NBJOUFOBODFFWFOU/0/& OFUXPSLJOUFSGBDFTBDDFTTDPOpHTFYUFSOBMJQ TDIFEVMJOHBVUPNBUJDSFTUBSU'"-4& TDIFEVMJOHPOIPTUNBJOUFOBODF5&3.*/"5& TDIFEVMJOHQSFFNQUJCMF536& [POFQSPKFDUTYYYYYYYYYYYYYY[POFTVTFBTUE
  17. startup-scriptを使う • インスタンスメタダータを使う • インスタンス作成時に設定可能な • keyをstartup-scriptで保存 • 起動時にvalueを読みこみして実行 •

    shell scriptがかける
  18. startup-scriptで gcloudを呼ぶだけ

  19. IPͷݻఆ

  20. IPの固定 • 事前にIPを予約しておく • gcloud compute instances add-access-config • 要

    インスタンス名 • 要 ゾーン名 • 要 予約済みIPアドレス
  21. 問題 IPは一つしかつけられない IPがないと外と通信ができない APIと通信できない

  22. 自分でIPを外して IPを取り付けるができない

  23. ($& ("& JOUBODF
 NFUBEBUB QSPKFDU
 NFUBEBUB ($&"1*

  24. ($& ("& JOUBODF
 NFUBEBUB QSPKFDU
 NFUBEBUB ($&"1* TUBUJD@JQYYYYYY IPを設定しておく

  25. ($& ("& JOUBODF
 NFUBEBUB QSPKFDU
 NFUBEBUB ($&"1* TUBUJD@JQYYYYYY 設定するIP取得

  26. ($& ("& JOUBODF
 NFUBEBUB QSPKFDU
 NFUBEBUB ($&"1* TUBUJD@JQYYYYYY プロジェクト名や
 ゾーン名など取得

    [POFBTJBFBTUC QSPKFDUFJFMIPHF
  27. ($& ("& JOUBODF
 NFUBEBUB QSPKFDU
 NFUBEBUB ($&"1* TUBUJD@JQYYYYYY 情報をGAEに渡して
 代わりにAPIを実行してもらう

    [POFBTJBFBTUC QSPKFDUFJFMIPHF
  28. ($& ("& JOUBODF
 NFUBEBUB QSPKFDU
 NFUBEBUB ($&"1* TUBUJD@JQYYYY GAEがAPIを呼び GCEの状態が変更される

    [POFBTJBFBTUC QSPKFDUFJFMIPHF
  29. だいたい起動してる 安いインスタンスがつくれました

  30. ֶΜͩ͜ͱ

  31. • 外部IPがないとGCEのAPIたたけない • IPの付け替えは一人ではできない • GAE/GoからGCEのAPIがたたける • プロジェクト内で共有したいデータはメタデータにおける • key

    valueストアの代わりになる • GAE/GoするときはGOPATHをカレントディレクトリ内に おかない
  32. None
  33. IPの予約は
 Microインスタンスより高い