目次

Oracle Database@AWS 完全ガイド v2.0

Exadata on AWS・Oracle Native 統合・エンタープライズ DB クラウド化


概要

Oracle Database@AWS は、Oracle Exadata ハードウェアを AWS データセンター内に物理設置し、AWS コンソール・VPC・IAM・CloudWatch などで管理する統合ハイブリッドサービス です。2024年11月に GA 達成し、オンプレミス Exadata と同等の最高パフォーマンス・機能・スケーラビリティを AWS から直接利用できます。

初心者向けメモ:Oracle Database@AWS は「Oracle Exadata のパフォーマンスを AWS クラウドで実現するサービス」です。RDS for Oracle では実現できない Exadata 固有機能(Smart Scan・Hybrid Columnar Compression・Storage Index)が使用でき、大規模エンタープライズ Oracle ワークロードに最適です。


Oracle Database@AWS が解決する課題

課題 RDS for Oracle Oracle Cloud(OCI) Oracle Database@AWS
Exadata パフォーマンス ✗ 汎用 EC2 ベース ✅ オンプレ同等 ✅ オンプレ同等
Oracle 全機能 △ 一部制限 ✅ 全機能 ✅ 全機能
AWS 統合(VPC・IAM・CloudWatch) ✅ ネイティブ △ 統合強化中 ✅ ネイティブ
データローカリティー AWS リージョン管理下 OCI リージョン管理下 AWS リージョン管理下
運用複雑性 ✅ 低(フルマネージド) △ 中(一部マネージド) △ 中(Exadata 管理)
Oracle Support ✅ AWS + Oracle 双方 ✅ Oracle サポート ✅ AWS + Oracle 双方
Bring Your Own License(BYOL) △ 一部対応 ✅ 完全対応 ✅ 完全対応
既存 Oracle 資産の活用度 △ ライセンス互換性あり ✅ 最大 ✅ 最大

主な特徴

特徴 説明
Exadata ハードウェア in AWS Oracle Exadata Database Machine を AWS データセンターに物理設置・運用。オンプレと同等のパフォーマンス
Smart Scan Technology ストレージレベルでデータを高速フィルタリング。CPU・メモリへの転送量を削減し高速化
Hybrid Columnar Compression(HCC) 列指向圧縮でデータサイズ最大 10 分の 1 に削減。ディスク I/O・メモリ効率向上
Storage Index ブロック単位でのメタデータ索引。フルテーブルスキャンを高速化
Real Application Clusters(RAC) 複数の Exadata ノード間でアクティブ・アクティブなクラスタリング。スケーラビリティ・可用性向上
Data Guard 別リージョンでの同期・非同期レプリケーション。Disaster Recovery・フェイルオーバー自動化
AWS VPC 統合 Exadata を VPC 内に統合。Security Group・NACLで通信制御。Direct Connect で専用線接続可能
IAM ベースアクセス制御 AWS IAM ロール・ポリシーで OS レベルのアクセス制御。通常の Oracle 認証と並行
CloudWatch 統合 Exadata メトリクス・ログを CloudWatch に自動送信。統合監視・アラーム・ダッシュボード可能
Bring Your Own License(BYOL) 既存 Oracle ライセンスを継続利用。新規ライセンス購入費用を大幅削減
自動バックアップ・リカバリ AWS Backup との統合で一元管理。RMAN バックアップの自動スケジュール
ネットワーク統合 AWS Transit Gateway・Direct Connect で既存 WAN・多リージョン接続をシームレスに統合

アーキテクチャ

graph TB
    subgraph "AWS Region(us-east-1 等)"
        VPC["VPC<br/>(Exadata 接続用)"]
        
        subgraph "Exadata Cloud Service"
            StorageServer["Storage Server<br/>(Exadata Storage)"]
            DatabaseServer["Database Server<br/>(Exadata Compute<br/>RAC ノード x2-4)"]
            InfiniBand["InfiniBand Network<br/>(超高速内部通信)"]
        end
        
        DatabaseServer --> StorageServer
        DatabaseServer --> InfiniBand
        StorageServer --> InfiniBand
    end
    
    subgraph "AWS Services Integration"
        EC2["EC2<br/>(アプリケーション・ミドルウェア)"]
        RDS["RDS<br/>(補助 DB)"]
        IAM["IAM<br/>(アクセス制御)"]
        CloudWatch["CloudWatch<br/>(監視・ログ)"]
        DirectConnect["AWS Direct Connect<br/>(オンプレ接続)"]
        TransitGW["Transit Gateway<br/>(マルチリージョン統合)"]
    end
    
    subgraph "AWS Storage / Backup"
        S3["S3<br/>(バックアップ・アーカイブ)"]
        AWSBackup["AWS Backup<br/>(統合管理)"]
        EBS["EBS<br/>(高性能ストレージ)"]
    end
    
    subgraph "Other Regions"
        DataGuard["Oracle Data Guard<br/>(同期レプリケーション)"]
        DR["Standby Database<br/>(フェイルオーバー)"]
    end
    
    VPC --> DatabaseServer
    EC2 --> DatabaseServer
    DatabaseServer --> IAM
    DatabaseServer --> CloudWatch
    DatabaseServer --> S3
    DatabaseServer --> AWSBackup
    DatabaseServer --> DirectConnect
    DatabaseServer --> TransitGW
    DatabaseServer --> DataGuard
    DataGuard --> DR
    
    style DatabaseServer fill:#ff9999
    style StorageServer fill:#99ccff
    style CloudWatch fill:#99ff99

コアコンポーネント

1. Exadata Database Machine on AWS

AWS データセンター内に物理設置された Oracle Exadata ハードウェア。

構成:

Exadata Cloud Service
  ├── Database Server(計算・RAC)
  │   ├── Node 1(Active)
  │   ├── Node 2(Active)
  │   └── Node 3-4(オプション)
  │       CPU: Intel Xeon(最新世代)
  │       Memory: 512GB~2TB/ノード
  │       Oracle Database 19c / 21c / 23c
  │
  ├── Storage Server(ストレージ・Smart Scan)
  │   ├── Exadata Storage Cell 1
  │   ├── Exadata Storage Cell 2
  │   └── Storage Cell 3-4(オプション)
  │       NVMe Flash: 1.3TB~
  │       SAS HDD: 90TB~
  │       Smart Scan offload
  │
  ├── InfiniBand Network
  │   └── 40Gbps or 100Gbps
  │       Database-Storage 低遅延通信
  │
  └── Power / Cooling Infrastructure
      冗長性確保(N+1)

2. Smart Scan Technology

ストレージサーバー上でデータをプレフィルタリング。不要なデータを転送しない。

動作フロー:

SELECT name, salary FROM employees WHERE salary > 100000;

従来の Database Server:
  ├─ Storage → Database Memory に全データロード
  ├─ CPU で WHERE 句評価(salary > 100000)
  └─ メモリ・CPU 消費が大きい

Exadata Smart Scan:
  ├─ WHERE clause(salary > 100000)を Storage Server に送信
  ├─ Storage Server で HDD/Flash から該当データのみ抽出
  ├─ 圧縮・フィルタリング後のみ Database Server に転送
  └─ メモリ・CPU 消費 1/10 以下に削減

効果:

  • OLAP・大規模スキャンが 10~100 倍高速化
  • メモリ・CPU 負荷軽減
  • I/O コスト削減

3. Hybrid Columnar Compression(HCC)

列指向圧縮。データサイズを最大 10:1 に圧縮。

適用シナリオ:

通常データ(行指向):
  ├─ OLTP・トランザクション
  ├─ 更新頻度高い
  └─ 圧縮度: 2-3:1

HCC Compression(列指向):
  ├─ OLAP・分析・ウェアハウス
  ├─ 更新頻度低い・読み取り主体
  └─ 圧縮度: 10-15:1

例:

OLAP テーブル(100GB 未圧縮)
  → HCC で 10GB に圧縮
  → ディスク容量 1/10
  → I/O 1/10
  → メモリ効率 10倍向上
  → 分析クエリ 10-50 倍高速化

4. Real Application Clusters(RAC)

複数の Compute ノード間でアクティブ・アクティブなクラスタリング。

構成:

Primary Site:
  ├─ RAC Node 1(Active DB Instance)
  ├─ RAC Node 2(Active DB Instance)
  └─ Shared Storage(Exadata Storage)

Benefit:
  ├─ Linear Scalability(ノード追加で性能向上)
  ├─ High Availability(ノード障害時も継続稼働)
  ├─ Load Balancing(接続分散)
  └─ Rolling Restart(ダウンタイムなしパッチ適用)

5. Data Guard(レプリケーション・DR)

別リージョンでのレプリケーション。同期・非同期モード対応。

構成:

Primary Region(us-east-1):
  └─ Oracle Database@AWS(Primary)
     ↓ Redo Log Streaming
     ↓ (Synchronous Mode = 0-second RPO)
     ↓ (Asynchronous Mode = Low Latency)

Standby Region(eu-west-1):
  └─ Oracle Database@AWS(Standby)
     └─ Apply Redo → Keep in Sync
        または Apply Delayed → Protect Against Logic Error

Failover Automation:

Primary 障害検知(CloudWatch)
  ↓
AWS Automation Runbook トリガー
  ↓
Data Guard Failover(Standby → Primary 昇格)
  ↓
Application 接続切り替え(DNS・Route 53)
  ↓
Recovery Time Objective(RTO): 数分
Recovery Point Objective(RPO): 0-30秒

6. AWS 統合

VPC 統合

# Exadata を既存 VPC に統合
aws ec2-classic modify-network-interface-attribute \
  --network-interface-id eni-12345678 \
  --source-dest-check

# Security Group でアクセス制御
aws ec2 authorize-security-group-ingress \
  --group-id sg-12345678 \
  --protocol tcp \
  --port 1521 \
  --source-security-group sg-87654321

IAM ベースアクセス制御

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": [
        "rds-db:connect",
        "secretsmanager:GetSecretValue"
      ],
      "Resource": [
        "arn:aws:rds:us-east-1:123456789012:db:exadata-db-01",
        "arn:aws:secretsmanager:us-east-1:123456789012:secret:oracle-password-*"
      ],
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "10.0.0.0/8"
        }
      }
    }
  ]
}

CloudWatch 統合

# Oracle Exadata メトリクスを CloudWatch に送信
aws cloudwatch put-metric-data \
  --namespace AWS/RDSExadata \
  --metric-name DatabaseConnections \
  --value 450 \
  --unit Count \
  --dimensions Name=DBInstanceIdentifier,Value=exadata-db-01

# CloudWatch Alarms 設定
aws cloudwatch put-metric-alarm \
  --alarm-name exadata-high-cpu \
  --metric-name CPUUtilization \
  --namespace AWS/RDSExadata \
  --statistic Average \
  --period 300 \
  --evaluation-periods 2 \
  --threshold 80 \
  --comparison-operator GreaterThanThreshold

主要ユースケース

1. 大規模 Oracle ERP(SAP on Oracle・JD Edwards)システムの移行

Current: オンプレミス Oracle Exadata(SAP ERP・300GB DB)
  ├─ ハードウェア老朽化
  ├─ 拡張困難
  └─ 保守費用高

Oracle Database@AWS:
  ├─ 既存 Exadata と同等パフォーマンス
  ├─ スケールアップ・スケールアウトが柔軟
  ├─ 既存 Oracle ライセンス活用(BYOL)
  ├─ AWS 統合(VPC・IAM・CloudWatch)で運用効率化
  └─ Disaster Recovery(Data Guard)で信頼性向上

2. OLAP・Data Warehouse(大規模分析ワークロード)

Requirements:
  ├─ 10TB~100TB テーブル
  ├─ 複雑な JOIN・GROUP BY クエリ
  ├─ リアルタイム分析
  └─ 数秒で結果を得たい

Oracle Database@AWS の活用:
  ├─ Smart Scan で フルテーブルスキャン高速化(1/100)
  ├─ HCC で ディスク I/O 削減・メモリ効率化
  ├─ RAC でスケーラビリティ向上(ノード追加で性能向上)
  └─ BI Tool(Tableau・Qlik)と直接統合

3. Bring Your Own License(BYOL)で既存 Oracle 投資を活用

既存投資:
  ├─ Oracle Database Enterprise Edition ライセンス 30本
  ├─ Oracle Real Application Clusters(RAC)ライセンス
  └─ Oracle Exadata ライセンス含む

Oracle Database@AWS での活用:
  ├─ 既存ライセンスをそのまま利用(ライセンス費用ゼロ)
  ├─ AWS インフラ費用のみ負担
  └─ 総所有コスト(TCO)大幅削減

4. Disaster Recovery・Business Continuity

Critical Mission System(銀行勘定系 Oracle DB):
  ├─ Primary: Oracle Database@AWS (us-east-1)
  ├─ Standby: Oracle Database@AWS (eu-west-1)
  └─ Data Guard で同期レプリケーション(RPO=0)

Failover Scenario:
  1. Primary 障害検知(CloudWatch)
  2. 自動フェイルオーバー(Data Guard)
  3. DNS 更新(Route 53)
  4. RTO: < 5 分
  5. RPO: 0 秒

設定・操作の具体例

AWS CLI:Oracle Database@AWS のプロビジョニング

# 1. Exadata Infrastructure 作成
aws rds create-db-cluster-parameter-group \
  --db-cluster-parameter-group-name exadata-cluster-pg \
  --db-parameter-group-family oracle-ee-19

# 2. DB Subnet Group 作成
aws rds create-db-subnet-group \
  --db-subnet-group-name exadata-subnet-group \
  --db-subnet-group-description "Exadata Subnet" \
  --subnet-ids subnet-12345678 subnet-87654321

# 3. Security Group 作成
aws ec2 create-security-group \
  --group-name exadata-sg \
  --description "Exadata Security Group" \
  --vpc-id vpc-12345678

# 4. Oracle Database@AWS インスタンス作成
aws rds create-db-instance \
  --db-instance-identifier exadata-db-01 \
  --db-instance-class db.x10.8xlarge \
  --engine oracle-ee \
  --engine-version 23.1.0.0.0 \
  --master-username admin \
  --master-user-password 'MyStrongPassword123!' \
  --allocated-storage 1000 \
  --storage-type io2 \
  --iops 10000 \
  --db-subnet-group-name exadata-subnet-group \
  --vpc-security-group-ids sg-12345678 \
  --backup-retention-period 30 \
  --multi-az \
  --enable-cloudwatch-logs-exports error trace audit

# 5. Data Guard セットアップ(Standby 作成)
aws rds create-db-instance-read-replica \
  --db-instance-identifier exadata-db-01-standby \
  --source-db-instance-identifier exadata-db-01 \
  --db-instance-class db.x10.8xlarge \
  --region eu-west-1

# 6. CloudWatch ダッシュボード作成
aws cloudwatch put-dashboard \
  --dashboard-name ExadataHealth \
  --dashboard-body '{
    "widgets": [
      {
        "type": "metric",
        "properties": {
          "metrics": [
            ["AWS/RDSExadata", "CPUUtilization"],
            ["AWS/RDSExadata", "DatabaseConnections"],
            ["AWS/RDSExadata", "ReadThroughput"],
            ["AWS/RDSExadata", "WriteThroughput"],
            ["AWS/RDSExadata", "StorageSpace"]
          ],
          "title": "Exadata Health"
        }
      }
    ]
  }'

Terraform:Infrastructure as Code

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "us-east-1"
}

provider "aws" {
  alias  = "eu_west"
  region = "eu-west-1"
}

# Exadata DB Subnet Group
resource "aws_db_subnet_group" "exadata" {
  name       = "exadata-subnet-group"
  subnet_ids = [aws_subnet.db_subnet_1.id, aws_subnet.db_subnet_2.id]

  tags = {
    Name = "Exadata Subnet Group"
  }
}

# Security Group
resource "aws_security_group" "exadata" {
  name   = "exadata-sg"
  vpc_id = aws_vpc.main.id

  ingress {
    from_port   = 1521
    to_port     = 1521
    protocol    = "tcp"
    cidr_blocks = ["10.0.0.0/8"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }

  tags = {
    Name = "Exadata Security Group"
  }
}

# Primary Oracle Database@AWS Instance
resource "aws_db_instance" "exadata_primary" {
  identifier            = "exadata-db-01"
  engine                = "oracle-ee"
  engine_version        = "23.1.0.0.0"
  instance_class        = "db.x10.8xlarge"
  allocated_storage     = 1000
  storage_type          = "io2"
  iops                  = 10000
  db_subnet_group_name  = aws_db_subnet_group.exadata.name
  vpc_security_group_ids = [aws_security_group.exadata.id]

  username             = "admin"
  password             = var.oracle_admin_password
  parameter_group_name = aws_db_parameter_group.exadata.name

  backup_retention_period       = 30
  backup_window                 = "03:00-04:00"
  multi_az                      = true
  publicly_accessible           = false
  skip_final_snapshot           = false
  final_snapshot_identifier     = "exadata-final-snapshot"

  enabled_cloudwatch_logs_exports = ["error", "audit", "trace", "alert"]

  tags = {
    Name        = "Exadata Primary"
    Environment = "Production"
  }
}

# Standby Instance(EU リージョン)
resource "aws_db_instance" "exadata_standby" {
  provider             = aws.eu_west
  identifier           = "exadata-db-01-standby"
  replicate_source_db  = aws_db_instance.exadata_primary.identifier
  instance_class       = "db.x10.8xlarge"
  skip_final_snapshot  = false

  tags = {
    Name        = "Exadata Standby"
    Environment = "Production"
  }
}

# CloudWatch Alarm
resource "aws_cloudwatch_metric_alarm" "exadata_high_cpu" {
  alarm_name          = "exadata-high-cpu"
  comparison_operator = "GreaterThanThreshold"
  evaluation_periods  = 2
  metric_name         = "CPUUtilization"
  namespace           = "AWS/RDSExadata"
  period              = 300
  statistic           = "Average"
  threshold           = 80
  alarm_actions       = [aws_sns_topic.alerts.arn]

  dimensions = {
    DBInstanceIdentifier = aws_db_instance.exadata_primary.id
  }
}

variable "oracle_admin_password" {
  sensitive = true
  type      = string
}

output "exadata_endpoint" {
  value = aws_db_instance.exadata_primary.endpoint
}

output "exadata_standby_endpoint" {
  value = aws_db_instance.exadata_standby.endpoint
}

RDS for Oracle との比較

┌─────────────────────────┬──────────────────────┬────────────────────────┐
│ 観点                    │ RDS for Oracle       │ Oracle Database@AWS    │
├─────────────────────────┼──────────────────────┼────────────────────────┤
│ Exadata パフォーマンス  │ ✗ 標準 EC2 基盤      │ ✅ Exadata ハード同等  │
│ Smart Scan              │ ✗                    │ ✅                     │
│ HCC 圧縮                │ ✗                    │ ✅                     │
│ Storage Index           │ ✗                    │ ✅                     │
│ RAC                     │ ✗                    │ ✅ 最大 4 ノード       │
│ Oracle 全機能           │ △ 一部制限           │ ✅ 全機能              │
│ AWS IAM 統合            │ ✅                   │ ✅                     │
│ CloudWatch 統合         │ ✅                   │ ✅ より詳細            │
│ VPC 統合                │ ✅                   │ ✅                     │
│ マネージド度            │ ✅ ハイレベル       │ △ Exadata 管理必要    │
│ OS アクセス             │ ✗ 制限              │ ✅ 一定制御可         │
│ BYOL 対応               │ △ 一部             │ ✅ 完全対応            │
│ Data Guard              │ △ 一部対応          │ ✅ 標準装備            │
│ 適用シナリオ            │ 小~中規模 OLTP     │ 大規模 OLTP・OLAP     │
│ コスト                  │ 低~中              │ 高(Exadata 費用)    │
└─────────────────────────┴──────────────────────┴────────────────────────┘

ベストプラクティス

✅ 推奨

  1. BYOL で既存 Oracle ライセンスを活用

    • 新規ライセンス購入費用を削減
    • 既存投資を最大限活用
  2. Data Guard で Disaster Recovery 構築

    • 別リージョンに Standby 配置
    • RPO=0(同期モード)で確実な復旧
  3. CloudWatch・CloudTrail で監視・監査

    • CPU・メモリ・ディスク I/O を統合監視
    • 全操作を CloudTrail で記録(コンプライアンス)
  4. AWS Backup で統一バックアップ管理

    • RMAN バックアップを S3 に自動保存
    • 他リージョンへの自動レプリケーション
  5. 既存 Oracle オンプレミス設定を段階的に移行

    • Parallel を段階的にフェーズアウト
    • SQL*Net・TNS 接続を AWS に統合

❌ アンチパターン

  1. RDS for Oracle で Exadata 要件を満たそうとする

    • Smart Scan・HCC 使用不可
    • パフォーマンス不足
  2. バックアップなし・リカバリ計画なし

    • RPO/RTO が定義されていない
    • AWS Backup を必ず設定
  3. セキュリティグループ・NACLなしで公開

    • 外部ネットワークから直接アクセス可能
    • VPC 内のプライベートサブネットに必ず配置
  4. Monitoring なし

    • パフォーマンス問題を見逃し
    • CloudWatch・OEM で統合監視を設定
  5. Data Guard(レプリケーション)なしで本番運用

    • 障害時の復旧手段がない
    • 必ず Standby を別リージョンに配置

2025-2026 最新動向

2025年

  • Oracle Database 23ai Native 対応: 最新版 AI 機能の統合
  • Autonomous Database@AWS プレビュー: 自動スケーリング・自動チューニング
  • Enhanced Data Guard: フェイルオーバーの完全自動化
  • AWS Lake Formation 統合: Exadata ↔ S3 Data Lake の シームレス連携

2026年

  • Multi-Region Active-Active: 両リージョンでアクティブ・アクティブ同時実行
  • Quantum-Ready Security: 量子耐性暗号への移行支援
  • AI-driven Optimization: 自動パフォーマンス最適化(ワークロード分析・自動チューニング)
  • Oracle Database on AWS Marketplace: ライセンス・サブスクリプション市場化

学習リソース

AWS 公式

Oracle 公式

比較・解説リソース


実装チェックリスト

  • [ ] VPC・Subnet・Security Group 設計
  • [ ] Oracle Database@AWS インスタンス(Primary)を作成
  • [ ] Oracle Database@AWS インスタンス(Standby)を別リージョンで作成
  • [ ] Data Guard セットアップ(同期レプリケーション確認)
  • [ ] CloudWatch ダッシュボード・アラーム構築
  • [ ] AWS Backup ポリシー設定
  • [ ] IAM ロール・ポリシーで アクセス制御
  • [ ] AWS Direct Connect で オンプレミス接続
  • [ ] Oracle パラメータ・初期化ファイル設定
  • [ ] 移行・フェイルオーバー テスト実施

まとめ

Oracle Database@AWS は、Oracle Exadata のパフォーマンスを AWS クラウドで実現するサービス です。

Smart Scan・HCC・Storage Index などの Exadata 固有機能が使用でき、大規模 OLAP・OLTP ワークロードに最適。既存 Oracle ライセンス(BYOL)を活用でき、AWS 統合(VPC・IAM・CloudWatch)で運用効率化も実現します。

RDS for Oracle では不足していた Exadata 要件・パフォーマンス・機能を完全に満たし、エンタープライズグレードの Oracle 運用を AWS で実現する戦略的サービスです。


最終更新:2026-04-27
バージョン:v2.0