はじめに
インスタンスのグループの自動スケーリング についてまとめます
全体構成像
用語
マネージド インスタンス グループ(MIG)
- 複数の同一
VM
でのアプリケーション操作が可能
- 自動スケーリング、自動修復、リージョン(マルチゾーン)デプロイメント、自動更新などの自動化
MIG
サービスを活用することで、スケーラブルで可用性に優れたワークロード処理を実現できる
VM
仮想マシンのこと
スケールイン
負荷が多くなると
MIG
にVM
が追加されること
スケールアウト
スケールインした
VM
の必要性が低下した際に増やしたVM
を削除すること
やり方
GCE
のイメージの作成
イメージ
イメージとは、VM の起動に必要なアプリケーションとオペレーティング システムを含むディスクのレプリカです
gcloud compute images create イメージ名 --project=プロジェクト名 --source-disk=ソースディスク名 --source-disk-zone=asia-northeast1-b --storage-location=asia-northeast1
インスタンステンプレートの作成
インスタンス テンプレート
仮想マシン(VM)インスタンスとマネージド インスタンス グループ(MIG)を作成するために使用できるリソース
テンプレート名・マシン構成を設定
作成したイメージをブートディスクに設定する
アクセス スコープ > API ごとにアクセス権を設定
インスタンスグループの作成
インスタンスグループ
単一のエンティティとして管理できる仮想マシン(VM)インスタンスの集まり
前回作成したインスタンステンプレートを選択する
自動スケーリングを設定する
インスタンスの最小・最大数を設定する
設定したインスタンス数に応じてインスタンスが自動で作成される
CloudSQLに接続する
プライベートIPアドレスを設定する
設定したプライベートIPアドレスを設定する
/var/www/html/index.php
<?php
try {
$pdo = new PDO('mysql:host='プライベートIPアドレス名';dbname='DB名';charset=utf8','ユーザ名','パスワード',
[(PDO::ATTR_EMULATE_PREPARES => false)];
echo "成功";
} catch (PDOException $e) {
echo "失敗";
}
?>
<?php
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<p>";
echo $row["name"];
echo "</p>";
}
?>
イメージを作成
インスタンステンプレートを作成
作成したイメージをブートディスクに設定
起動スクリプトにGCSバケット
をマウントする処理を追加する
#! /bin/bash
sudo gcsfuse -o allow_other マウント元のバケット名 マウント先
インスタンスグループを更新
マウントしたGCSの画像を表示する
ls -ltr /var/www/html/demo/
total 224
-rw-r--r-- 1 root root 25424 Jan 10 15:01 b551ca84-3de9-2e40-5ceb-c2d7f90bb8f6.png
-rw-r--r-- 1 root root 202962 Jan 10 15:01 Corporate_Sunrise.png
vi /var/www/html/index.php
/var/www/index.php
<div>
<img src="./demo/Corporate_Sunrise.png">
</div>
画像が表示できれば成功
さいごに
読んでいただきありがとうございます。
いいねしていただけると記事執筆の励みになりますので、参考になったと思った方は是非よろしくお願いします!