2026年10月27日
2026年10月27日
クラウドサーバーのオートスケーリング設定方法
はじめに
オートスケーリングは、パフォーマンスを最適化し、システムの可用性と信頼性を向上させるための重要な機能です。この記事では、クラウドサーバー上で自動的にリソースを調整するためのオートスケーリング設定方法について詳しく解説します。
症状・背景
このテーマが必要になる主な場面:
- ユーザー数が急激に増加し、サーバーのレスポンスタイムが悪化した場合
- システム負荷が高い時間帯と低い時間帯がある場合
- 運用コストを最小限に抑えつつシステム性能を維持したい場合
手順・設定方法
ステップ1: AWS Elastic Load BalancingとAuto Scalingのセットアップ
# IAMロールを作成し、必要なポリシーを追加します。
aws iam create-role --role-name AutoScalingRole --assume-role-policy-document file://trust-policy.json
aws iam attach-role-policy --role-name AutoScalingRole --policy-arn arn:aws:iam::aws:policy/service-role/AutoScalingConsoleAccess
# Auto Scalingグループを作成します。
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name my-auto-scaling-group \
--launch-template LaunchTemplateId=my-launch-template,Version=1 \
--min-size 2 \
--max-size 4 \
--desired-capacity 3 \
--load-balancer-names MyLoadBalancer \
--availability-zones ap-northeast-1a,ap-northeast-1b
ステップ2: Google Cloud Platform (GCP)のManaged Instance GroupとAutoscalerのセットアップ
# Managed Instance Groupを作成します。
gcloud compute instance-groups managed create my-managed-instance-group \
--zone us-central1-a \
--template my-template \
--size 3 \
--target-pool my-target-pool
# Autoscalerを設定してManaged Instance Groupに適用します。
gcloud compute instance-groups managed set-autoscaling my-managed-instance-group \
--autoscaling-policy min-num-replicas=2,max-num-replicas=5,cpu-utilization=target-value,custom-metric-utilization=magnitude-below-zero=1.0,metric=queue-length
ステップ3: Microsoft AzureのVirtual Machine Scale SetsとAutoscaleのセットアップ
# Virtual Machine Scale Setを作成します。
az vmss create \
--resource-group my-resource-group \
--name my-vmss \
--image UbuntuLTS \
--admin-username azureuser \
--upgrade-policy-mode automatic \
--instance-count 2
# Autoscaleルールを設定してVirtual Machine Scale Setに適用します。
az monitor autoscale create \
--resource-group my-resource-group \
--name my-autoscale \
--target-resource /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Compute/virtualMachineScaleSets/my-vmss \
--min-count 2 \
--max-count 6 \
--count 3
ステップ4: 監視とトラブルシュート
# サーバーのCPU使用率をモニタリングします。
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUUtilization \
--dimensions Name=AutoScalingGroupName,Value=my-auto-scaling-group \
--start-time $(date -d "15 minutes ago" +%Y-%m-%dT%H:%M:00Z) \
--end-time $(date +%Y-%m-%dT%H:%M:00Z) \
--period 300 \
--statistics Average
注意事項
- オートスケーリングの設定は、サービス利用状況やシステム負荷に合わせて適宜調整が必要です。
- ロールバックを容易にするため、過去の設定を保存しておくことを推奨します。
- 安全性の観点から、必要以上の権限を持たないIAMロールまたは役割を使用するようにしましょう。
- 運用コストを抑えるために、オフピーク時の最小インスタンス数を適切に設定することが重要です。
まとめ
1. クラウドプロバイダーの選択: AWS, GCP, Azureなどの主要なクラウドプラットフォームから最適なものを選びます。
2. リソースのモニタリング: CPU使用率やメモリ消費量などを定期的に監視し、必要に応じて調整します。
3. 自動スケーリンググループの設定: プロバイダーごとの異なるコマンドを利用して適切なスケーリングポリシーを設定します。
4. セキュリティとコスト管理: IAMロールやタグなどの機能を使用して、セキュリティと運用コストを最適化します。
関連記事: