目次
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 費用) │
└─────────────────────────┴──────────────────────┴────────────────────────┘
ベストプラクティス
✅ 推奨
-
BYOL で既存 Oracle ライセンスを活用
- 新規ライセンス購入費用を削減
- 既存投資を最大限活用
-
Data Guard で Disaster Recovery 構築
- 別リージョンに Standby 配置
- RPO=0(同期モード)で確実な復旧
-
CloudWatch・CloudTrail で監視・監査
- CPU・メモリ・ディスク I/O を統合監視
- 全操作を CloudTrail で記録(コンプライアンス)
-
AWS Backup で統一バックアップ管理
- RMAN バックアップを S3 に自動保存
- 他リージョンへの自動レプリケーション
-
既存 Oracle オンプレミス設定を段階的に移行
- Parallel を段階的にフェーズアウト
- SQL*Net・TNS 接続を AWS に統合
❌ アンチパターン
-
RDS for Oracle で Exadata 要件を満たそうとする
- Smart Scan・HCC 使用不可
- パフォーマンス不足
-
バックアップなし・リカバリ計画なし
- RPO/RTO が定義されていない
- AWS Backup を必ず設定
-
セキュリティグループ・NACLなしで公開
- 外部ネットワークから直接アクセス可能
- VPC 内のプライベートサブネットに必ず配置
-
Monitoring なし
- パフォーマンス問題を見逃し
- CloudWatch・OEM で統合監視を設定
-
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