
【VPC外リージョンサービス / ENIでVPC接続】
Athena は、サーバーレス クエリエンジン であり、S3 上のデータを SQL / Presto / Trino 準拠 の構文で直接分析できるサービスです。
構造化 / 半構造化データ対応 のため、CSV、JSON、Parquet など多様なデータ形式をそのまま扱うことができます。
メタデータは Glue Data Catalog に登録され、スキーマ管理やテーブル定義を自動化できます。また、分割・圧縮・カラム型フォーマット を活用することで、クエリ実行時のスキャンデータ量を最小限に抑え、スキャンデータ量に基づく従量課金制 によりコストを大幅に削減できます。
セキュリティ面では IAM / KMS / VPCエンドポイント に対応しており、アクセス制御・暗号化・プライベートネットワーク経由での安全なクエリ実行が可能です。
クエリ結果は S3 に保存され、実行ログは CloudWatch Logs / S3 に出力されます。
QuickSight と連携して可視化を行ったり、Glue, Redshift, Lambda, Lake Formation などのサービスと統合してデータレイク構築や高度な分析基盤を実現できます。
重要用語
分割・圧縮・カラム型フォーマット
ユースケース
| S3データレイクへのSQLクエリ | S3に保存されたCSV/JSON/Parquetなどのファイルに対して、サーバーレスでSQLクエリを実行し、簡単に集計や抽出を行う。 |
| アドホックな調査・トラブルシュート | アプリケーションログやアクセスログに対して、その場でクエリを書いてエラー発生状況や特定ユーザーの操作履歴を調査する。 |
| BIツール連携のためのクエリエンジン | QuickSightや外部BIツールからAthenaをデータソースとして接続し、S3上のデータを直接参照してレポートやダッシュボードを作成する。 |
ベストプラクティス
| データのパーティション分割 | 日付や地域でパーティションを切り、スキャン量とコストを削減する。 |
| 圧縮・カラムナフォーマット | ParquetやORCで保存し、クエリ性能を向上させる。 |
| クエリ結果の管理 | 結果出力先バケットとライフサイクルを適切に設定する。 |
高可用性・バックアップ・リトライ
| 高可用性・バックアップ・リトライ設計のポイント |
|---|
| 【デフォルト】AWS内部で冗長化 ・コントロールプレーン ・クエリ実行エンジン ・データソース層(S3) ・メタデータカタログ(Glue Data Catalog) ・クエリ結果保存先(S3) ・サービスエンドポイント |
| 【自動リトライ】 障害、一時的なエラー、タイムアウト時に、クエリの自動再実行 |
セキュリティ
| 関連サービス | 設定内容 |
|---|---|
| KMS(データの暗号化と鍵の安全管理) | 【クエリ結果のS3出力データの暗号化が必要】 独自KMSキーを使うことを推奨(鍵操作、監査) |
| Secrets Manager(機密情報の安全管理) | - |
| SSM Parameter Store(設定情報の一元管理) | パラメータ(Parameter)の作成が推奨 クエリ先のS3パスや環境固有設定 |
| CloudTrail(操作履歴の記録・監査・追跡) | 【自動記録】 作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI) データ操作は追跡できない(データプレーンAPI) |
| Config(リソースの構成状態・設定変更を記録) | 【Configが有効な場合】 ワークグループ/結果出力先/暗号化設定の変更履歴・準拠評価 |
| GuardDuty(脅威を自動検出) | 【GuardDutyが有効な場合】 クエリ実行・設定変更のAPI異常検知 |
ログ・監視
| ログ出力先 | ログの種類 |
|---|---|
| S3 | クエリ結果 |
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
| EngineExecutionTime | 実行エンジン時間 |
| QueryQueueTime | キュー滞留時間 |
| TotalExecutionTime | 全体実行時間 |
| QueryCancelled | キャンセルクエリ数 |
| QueryFailed | 失敗クエリ数 |
| QuerySuccessful | 成功クエリ数 |
| ProcessedBytes | スキャンデータ量 |
制限値(固定値/ハードリミット/ソフトリミット)
| 固定値 | 制限値 |
|---|---|
| クエリ結果の場所 | S3バケット(必須) |
| パーティション数/テーブル | 1,000,000(読み取り)、20,000(メタデータ) |
| ハードリミット | 制限値 |
|---|---|
| クエリ文字列の長さ | 256 KB |
| DMLクエリタイムアウト | 30分 |
| DDLクエリタイムアウト | 600分(10時間) |
| ソフトリミット | 制限値 |
|---|---|
| アクティブDMLクエリ数/アカウント | 25(us-east-1等)、20(ap-northeast-1等) |
| アクティブDDLクエリ数/アカウント | 25(us-east-1等)、20(ap-northeast-1等) |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| スキャンデータ量 | クエリでスキャンされたデータ量(TB単位) |
| DDL | DDLクエリは無料 |