AWS・GCP・Azure 3大クラウドの特徴比較
クラウドサービスを選ぶ際、AWS・Google Cloud(GCP)・Microsoft Azureの3社が市場の8割以上を占めています。それぞれに強みがあり、用途や既存環境によって最適な選択が異なります。2026年最新データを元に詳しく比較します。
| 項目 | AWS | Google Cloud | Microsoft Azure |
|---|---|---|---|
| 市場シェア | 31%(1位) | 11%(3位) | 25%(2位) |
| 強み | サービス数が最多、成熟度高い | AI/ML、データ分析、Kubernetes | Microsoftエコシステムとの統合 |
| 弱み | 料金体系が複雑、コスト高め | サポートが弱い | オープンソース対応が遅い |
| AI/MLサービス | SageMaker、Bedrock | Vertex AI、BigQuery ML | Azure OpenAI Service |
| 無料枠 | 12ヶ月無料+永続無料枠 | 3ヶ月$300クレジット | 12ヶ月無料+$200クレジット |
AWS入門:EC2・S3・RDSの基本を理解する
EC2でWebサーバーを立ち上げる最短手順
# AWS CLIのインストールと設定
pip install awscli
aws configure
# AWS Access Key ID: [アクセスキーを入力]
# AWS Secret Access Key: [シークレットキーを入力]
# Default region name: ap-northeast-1 (東京)
# Default output format: json
# EC2インスタンスの起動(Amazon Linux 2023)
aws ec2 run-instances --image-id ami-0c3fd0f5d33134a76 --count 1 --instance-type t3.micro --key-name my-key-pair --security-groups my-security-group --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=WebServer}]'
# インスタンスのIPアドレスを確認
aws ec2 describe-instances --filters "Name=tag:Name,Values=WebServer" --query 'Reservations[*].Instances[*].PublicIpAddress' --output text
S3でWebサイトをホスティングする
# S3バケットの作成
aws s3 mb s3://tech-athletes-website --region ap-northeast-1
# 静的Webサイトのホスティングを有効化
aws s3 website s3://tech-athletes-website --index-document index.html --error-document error.html
# ファイルのアップロード(ビルド済みのReactアプリ等)
aws s3 sync ./build/ s3://tech-athletes-website --delete --cache-control "max-age=31536000" --exclude "*.html" --include "*.js" --include "*.css"
# HTMLファイルはキャッシュなし
aws s3 sync ./build/ s3://tech-athletes-website --delete --cache-control "no-cache" --exclude "*" --include "*.html"
Terraformでインフラをコード化する(IaC入門)
Infrastructure as Code(IaC)は、サーバー構成をコードで管理する手法です。Terraformを使えばAWS・GCP・Azureをまとめて管理できます。
# main.tf - AWSでWebアプリのインフラを構築
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "ap-northeast-1"
}
# VPCの作成
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "tech-athletes-vpc"
Environment = "production"
}
}
# パブリックサブネット
resource "aws_subnet" "public" {
count = 2
vpc_id = aws_vpc.main.id
cidr_block = "10.0.${count.index + 1}.0/24"
availability_zone = data.aws_availability_zones.available.names[count.index]
map_public_ip_on_launch = true
tags = {
Name = "tech-athletes-public-subnet-${count.index + 1}"
}
}
# Application Load Balancer
resource "aws_lb" "main" {
name = "tech-athletes-alb"
internal = false
load_balancer_type = "application"
subnets = aws_subnet.public[*].id
tags = {
Name = "tech-athletes-alb"
}
}
# ECSクラスター(コンテナ実行環境)
resource "aws_ecs_cluster" "main" {
name = "tech-athletes-cluster"
setting {
name = "containerInsights"
value = "enabled"
}
}
# RDS(MySQL)
resource "aws_db_instance" "main" {
identifier = "tech-athletes-db"
engine = "mysql"
engine_version = "8.0"
instance_class = "db.t3.micro"
allocated_storage = 20
db_name = "techathletes"
username = "admin"
password = var.db_password # 変数で管理(コードに直書きしない)
skip_final_snapshot = true
tags = {
Name = "tech-athletes-db"
}
}
DockerとKubernetesでコンテナ運用を自動化
# Kubernetes Deployment(k8s/deployment.yaml)
apiVersion: apps/v1
kind: Deployment
metadata:
name: tech-athletes-api
labels:
app: tech-athletes-api
spec:
replicas: 3 # 3つのポッドで冗長化
selector:
matchLabels:
app: tech-athletes-api
template:
metadata:
labels:
app: tech-athletes-api
spec:
containers:
- name: api
image: 123456789.dkr.ecr.ap-northeast-1.amazonaws.com/tech-athletes-api:latest
ports:
- containerPort: 8000
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: app-secrets
key: database-url
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: tech-athletes-api-service
spec:
selector:
app: tech-athletes-api
ports:
- protocol: TCP
port: 80
targetPort: 8000
type: LoadBalancer
クラウドコスト最適化:無駄なAWS費用を削減する
クラウドのコスト管理は開発者にとっても重要なスキルです。よくある無駄なコストと削減方法を紹介します:
- 未使用のEC2・RDSインスタンス:定期的にAWS Cost Explorerで確認。使っていないリソースは即削除または停止
- リザーブドインスタンスの活用:1年以上使うリソースはReserved Instancesで最大72%割引
- S3のライフサイクルポリシー:アクセス頻度が低いデータをS3 Glacierに自動移行(コスト80%削減)
- Savings Plans:コンピューティング使用量をコミットすることで最大66%割引
- Lambda・Fargate活用:常時起動のサーバーをサーバーレスに移行してアイドルコストゼロ
まとめ:クラウドエンジニアへのキャリアパス
クラウドエンジニアは2026年も引き続き需要が高く、AWS認定ソリューションアーキテクトなどの資格を持つと年収800〜1200万円も現実的です。学習ロードマップを紹介します:
- Linux基礎とネットワーク知識の習得(TCP/IP・DNS・HTTP)
- Dockerでコンテナの概念を理解
- AWS CLFまたはAWS SAA認定を取得
- TerraformでIaCを習得
- Kubernetes(CKA/CKAD)でコンテナオーケストレーションをマスター
- CI/CD(GitHub Actions・ArgoCD)でDevOpsを実践