GCEでゲロ吐くほど負荷をかける構成の作り方
Google Cloud Platform(2) Advent Calendar 2016 1日目を担当するkumanoryoです。
先日、GoogleCloudSQLに限界まで負荷をかけるべく、こんな記事を書いた時に構築したclient側の手順・ノウハウを本エントリで紹介させてください。
構成図
起動時に自動でターゲットに対して負荷をかけるVM(ComputeEngine)を好きな台数で構築する構成を構築します。
また、構築作業はCloud Console(Webブラウザ)およびCloud Consoleから起動させるCloud Shellから実施するので、OSやソフトウェアに依存せず作業することができます。
利用機能・技術要素
構築手順
GCP Porjectの作成
GCP Porjectの作成
※既に自前でご利用中のGCP Projectをお持ちの方は省略可能です。
Google Accountの新規取得
Googleアカウントの作成ページでGoogleアカウントを作成します。
新規GCP Projectの作成
上記作成したアカウントでログインした状態でGoogle Cloud Consoleページにアクセスします。
アクセス後、Project
部分をクリックし、プロジェクトを作成
をクリック。
任意のプロジェクト名・プロジェクトIDでGCP Projectを作成してください。
請求情報の登録
各機能のAPIを有効にするために必要な手順となります。
カード情報が必要ですが、無料試用終了後に勝手に有償に移行したり引き落とされるわけではありません。
無料試用期間終了 or $300使い切った後、アップグレード手続きを行った後に課金運用が発生します。
無料試用に登録
口座の種類、名前と住所、カード情報を入力します。個人情報の為スクリーンショットを掲載できず、すいません。
(画面右に記載されているとおり、自動的に請求されることはありません)
請求先アカウントの設定
お支払いページで請求先アカウントを有効にしてください。
(こちらも個人情報(請求先アカウントID)が含まれるのでスクリーンショットの掲載ができません。すいません。)
Cloud Shellの起動
Cloud Console上部にあるCloud Shellボタンを押下して起動してください。
ブラウザでコマンドラインプロンプトが起動しますので、次以降の手順はコマンドラインプロンプトで実施してください。
構築スクリプト群の取得
今回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ページににアクセスし 有効にする
をクリックする。
GCS bucketの作成
APIを有効にし、deployment managerからGCS bucketが作成できるようにしてから
shell scriptを実行してGCS bucketを作成します。
Cloud StorageのAPIを有効にする
Google Cloud Storageを選択する。
認証情報入力画面へ遷移する
認証情報・データの種類の設定
認証情報追加処理の完了
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の作成
負荷をかけるclientのVM Imageを作成します。
以下をCloud Shellで実行してください。(そこそこ時間かかります。)
cd ~/src/github.com/kumanoryo/gero-bench
sh scripts/create_image.sh
実行後、Compute Engine - イメージに移動しimage-gero-bench-client
が作成されていることを確認してください。
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
が作成されていること
およびCompute Engine - インスタンスグループに移動しinstance-group-manager-gero-bench
が作成されていることを確認してください。
また、このタイミングでstartup scriptがGCSにデプロイされます。
負荷開始(VM構築)
VMを起動させてstartup-scriptより負荷をかけます。
GCSに配置するstartup script startup.sh を弄ることで、sysbenchであったり、apache benchなど任意の負荷試験ツールを実行することが可能です。
起動方法は、インスタンスグループ数を0から任意の数に変更します。
お好みの台数で負荷をかけてください。
一応、こちらで準備したスクリプトに関しては終了後GCSにログファイルをcpするようにしています。
負荷試験、ずっと見てるのしんどいのでオススメです。
負荷停止(VM削除)
逆にインスタンスの数を0にすることで負荷を中断させることができます。
VMのマシンスペックを上げたい場合(スケールオーバー)
まず~src/github.com/kumanoryo/gero-bench/scripts/conf/common.confを変更。
次にDeployment Managerのページからinstance-group-gero-bench
を削除。
削除後、Instance Groupを再作成してください。
おわりに
なんやかんやで長くなってしまってすいません。
結果、今年GAリリースされたGCEの機能に関していい感じでまとめられたのではないでしょうか。
無料試用状態では8vCPUが上限なので、課金してガンガン負荷かけちゃいましょう!
それこそゲロ吐くくらいに!(他の方の環境にかけちゃダメですよ、ゼッタイ!!)
明日(12/2)はstrskさんがGKEに関してなんかしら発表いただけると思います。
日本有数の動画配信サービスという大規模環境でバリバリGKE使われているので、きっと面白いお話が伺えると思います!!
ということで、お付き合いありがとうございましたー。
メリークリスマス!!
Author And Source
この問題について(GCEでゲロ吐くほど負荷をかける構成の作り方), 我々は、より多くの情報をここで見つけました https://qiita.com/kumanoryo/items/cfb23ac6ad2fd000aa65著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .