LoginSignup
21

More than 5 years have passed since last update.

GCEでゲロ吐くほど負荷をかける構成の作り方

Last updated at Posted at 2016-11-30

virus_outo.png

Google Cloud Platform(2) Advent Calendar 2016 1日目を担当するkumanoryoです。

先日、GoogleCloudSQLに限界まで負荷をかけるべく、こんな記事を書いた時に構築したclient側の手順・ノウハウを本エントリで紹介させてください。

構成図

起動時に自動でターゲットに対して負荷をかけるVM(ComputeEngine)を好きな台数で構築する構成を構築します。
また、構築作業はCloud Console(Webブラウザ)およびCloud Consoleから起動させるCloud Shellから実施するので、OSやソフトウェアに依存せず作業することができます。
Untitled (3).png

利用機能・技術要素

構築手順

GCP Porjectの作成

※既に自前でご利用中のGCP Projectをお持ちの方は省略可能です。

Google Accountの新規取得

Googleアカウントの作成ページでGoogleアカウントを作成します。

新規GCP Projectの作成

上記作成したアカウントでログインした状態でGoogle Cloud Consoleページにアクセスします。
アクセス後、Project部分をクリックし、プロジェクトを作成をクリック。
image
任意のプロジェクト名・プロジェクトIDでGCP Projectを作成してください。

請求情報の登録

各機能のAPIを有効にするために必要な手順となります。
カード情報が必要ですが、無料試用終了後に勝手に有償に移行したり引き落とされるわけではありません。
無料試用期間終了 or $300使い切った後、アップグレード手続きを行った後に課金運用が発生します。
image

無料試用に登録

ブラウザ右上の 無料試用に登録 をクリックします。
image

情報を入力し、同意して続行をクリックします。
image

口座の種類、名前と住所、カード情報を入力します。個人情報の為スクリーンショットを掲載できず、すいません。
(画面右に記載されているとおり、自動的に請求されることはありません)
image

請求先アカウントの設定

お支払いページで請求先アカウントを有効にしてください。
(こちらも個人情報(請求先アカウントID)が含まれるのでスクリーンショットの掲載ができません。すいません。)

Cloud Shellの起動

Cloud Console上部にあるCloud Shellボタンを押下して起動してください。
image
ブラウザでコマンドラインプロンプトが起動しますので、次以降の手順はコマンドラインプロンプトで実施してください。

構築スクリプト群の取得

今回githubにスクリプト一式ご用意させていただきました。
Cloud Shellにgitがinstall済みなので、git cloneしてください。

mkdir -p ~/src/github.com/kumanoryo
cd ~/src/github.com/kumanoryo/
git clone https://github.com/kumanoryo/gero-bench.git

Deployment Managerr APIを有効にする

環境構築に必要なスクリプトを実行する際に、Deployment Managerを使用しているので、実行の際にProjectでAPIを有効にしてやる必要があります。

Google Cloud Deployment Manager V2 APIページににアクセスし 有効にする をクリックする。
image

GCS bucketの作成

APIを有効にし、deployment managerからGCS bucketが作成できるようにしてから
shell scriptを実行してGCS bucketを作成します。

Cloud StorageのAPIを有効にする

左のメニューからAPI Manager画面を表示させる。
image

Google Cloud Storageを選択する。

image

認証情報入力画面へ遷移する

「認証情報に進む」ボタンを押下する。
image

認証情報・データの種類の設定

画面のとおり入力し、必要な認証情報ボタンを押下する。
image

認証情報追加処理の完了

画面の指示に従い 完了 ボタンを押下する。
image

startup scriptなどを格納するGCS bucketの作成

shell scriptを実行してbucketを作成します。
以下をCloud Shellで実行してください。

cd ~/src/github.com/kumanoryo/gero-bench
sh scripts/create_bucket.sh

実行後、Storageのページに移動し
PROJECT_ID-gero-bench という名前のbucketが作成されていることを確認してください。

network・firewall ruleの作成

shell scriptを実行してnetworkおよびfirewall ruleを作成します。
以下をCloud Shellで実行してください。

cd ~/src/github.com/kumanoryo/gero-bench
sh scripts/create_network.sh

実行後、Networkページに移動し
network-gero-bench が作成されていること、および firewall-gero-bench-allow-ssh が作成されていることを確認してください。
image

Imageの作成

負荷をかけるclientのVM Imageを作成します。
以下をCloud Shellで実行してください。(そこそこ時間かかります。)

cd ~/src/github.com/kumanoryo/gero-bench
sh scripts/create_image.sh

実行後、Compute Engine - イメージに移動しimage-gero-bench-client が作成されていることを確認してください。
image

Instance Groupの作成

負荷をかけるVMをInstance Groupで構築・設定します。
この時点でVM自体は構築しません。

cd ~/src/github.com/kumanoryo/gero-bench
sh scripts/create_gero-bench-client.sh 

実行後、Compute Engine - インスタンステンプレートに移動しtemplate-gero-bench が作成されていること
image

およびCompute Engine - インスタンスグループに移動しinstance-group-manager-gero-bench が作成されていることを確認してください。
image

また、このタイミングでstartup scriptがGCSにデプロイされます。
image

負荷開始(VM構築)

VMを起動させてstartup-scriptより負荷をかけます。
GCSに配置するstartup script startup.sh を弄ることで、sysbenchであったり、apache benchなど任意の負荷試験ツールを実行することが可能です。
起動方法は、インスタンスグループ数を0から任意の数に変更します。
お好みの台数で負荷をかけてください。
image
一応、こちらで準備したスクリプトに関しては終了後GCSにログファイルをcpするようにしています。
負荷試験、ずっと見てるのしんどいのでオススメです。

負荷停止(VM削除)

逆にインスタンスの数を0にすることで負荷を中断させることができます。
image

VMのマシンスペックを上げたい場合(スケールオーバー)

まず~src/github.com/kumanoryo/gero-bench/scripts/conf/common.confを変更。
次にDeployment Managerのページからinstance-group-gero-benchを削除。
image

削除後、Instance Groupを再作成してください。

おわりに

なんやかんやで長くなってしまってすいません。
結果、今年GAリリースされたGCEの機能に関していい感じでまとめられたのではないでしょうか。
無料試用状態では8vCPUが上限なので、課金してガンガン負荷かけちゃいましょう!
それこそゲロ吐くくらいに!(他の方の環境にかけちゃダメですよ、ゼッタイ!!)

明日(12/2)はstrskさんがGKEに関してなんかしら発表いただけると思います。
日本有数の動画配信サービスという大規模環境でバリバリGKE使われているので、きっと面白いお話が伺えると思います!!

ということで、お付き合いありがとうございましたー。
メリークリスマス!!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21