はじめに
この記事は「2026 Japan AWS Jr. Champions 真夏のQiitaリレー」の33日目の記事となります。
過去の投稿(リンク集)・昨日の投稿は以下リンクからご覧ください。
https://qiita.com/ys-yoshida/private/6f7c7f85155a993e2c86
「データをグラフで分析したい!でもデータベースはEC2やオンプレミスの中にある…」
そんな悩みを解決するのが、Amazon QuickのVPC接続機能です。
この記事では、AWS初学者の方でもわかるように、EC2上のMySQLをAmazon Quickに接続する手順を丁寧に解説します。
Amazon Quickとは?
Amazon Quickは、AWSが提供する生成AI搭載のビジネスインテリジェンス(BI)プラットフォームです。
🌟 Amazon Quickでできること
| 機能 | 説明 |
|---|---|
| データの可視化 | データベースやファイルをグラフ・表で視覚化 |
| AIチャット | データについて自然言語で質問・分析 |
| ダッシュボード | インタラクティブなレポートをチームで共有 |
| ワークフロー自動化 | 繰り返し作業をFlowsで自動化 |
| リサーチ | 大量のドキュメントを横断した深い分析 |
💡 Amazon Quickが選ばれる理由
- ベンダー中立 — AWS以外のサービスにも接続可能
- エンタープライズセキュリティ — HIPAA、SOC 2、ISO 27001対応
- チーム協働 — Spacesでチーム全体の知識を共有・活用
- 生成AI統合 — AIエージェントがデータを理解して回答
📋 プランについて
| プラン | 特徴 |
|---|---|
| Free / Plus | AWSアカウント不要。メールやSNSアカウントで即利用開始 |
| Professional / Enterprise | AWSアカウント必要。高度なBI機能・自動化機能が利用可能 |
💡 今回のVPC接続機能を使うには Enterprise Edition が必要です。
これをやるとどんないいことがあるの?
🔒 セキュリティを保ちながらデータを可視化できる
通常、EC2上のデータベースをインターネット経由で外部に公開するのはセキュリティリスクがあります。VPC接続を使うことで、インターネットを経由せずにプライベートネットワーク内で安全に接続できます。
📊 SQLを書かなくてもデータを分析できる
Amazon Quickに接続すれば、ドラッグ&ドロップ、自然言語でグラフや表を作成できます。エンジニアでなくてもデータ分析が可能になります。
💰 コストを抑えられる
RDSなどのマネージドサービスを使わなくても、既存のEC2上のMySQLをそのまま活用できるため、追加コストを最小限に抑えられます。
※RDSの場合は直接データソースとして指定可能となります。
🏢 オンプレミス環境にも応用できる
今回学ぶVPC接続の仕組みは、EC2だけでなくオンプレミスのデータベースにも応用可能です。社内サーバーのデータをそのままAmazon Quickで可視化できます!
全体の構成図
[Amazon Quick]
↓ VPC接続(ENI経由)
[VPC内のプライベートネットワーク]
↓
[EC2インスタンス上のMySQL]
必要なもの
- AWSアカウント
- Amazon Quick Enterprise Edition
- EC2インスタンス(Amazon Linux 2023)
- MySQL 8.0(EC2上にインストール済み)
STEP 1:EC2インスタンスの準備
EC2を起動する
- AWSコンソール → EC2 → 「インスタンスを起動」
- 以下の設定でインスタンスを作成:
| 設定項目 | 設定値 |
|---|---|
| AMI | Amazon Linux 2023 |
| インスタンスタイプ | t3.micro |
| キーペア | 新規作成(.pemファイルを保存) |
| セキュリティグループ | SSH(22番ポート)を許可 |
EC2にSSH接続する
PowerShellで以下を実行:
ssh -i "C:\path\to\your-key.pem" ec2-user@<パブリックIPアドレス>
⚠️ EC2を停止→起動するとパブリックIPが変わります!毎回最新のIPを確認してください。
STEP 2:MySQLのインストールと設定
MySQLをインストール
sudo dnf install mysql-community-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
データベースとユーザーを作成
-- データベース作成
CREATE DATABASE quicksight_demo;
-- ユーザー作成
CREATE USER 'quicksight_user'@'%' IDENTIFIED BY 'パスワード';
-- 権限付与
GRANT SELECT ON quicksight_demo.* TO 'quicksight_user'@'%';
FLUSH PRIVILEGES;
サンプルデータを投入
USE quicksight_demo;
CREATE TABLE sales (
id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(100),
category VARCHAR(50),
amount DECIMAL(10,2),
sale_date DATE
);
INSERT INTO sales (product_name, category, amount, sale_date) VALUES
('商品A', 'カテゴリ1', 10000, '2026-01-15'),
('商品B', 'カテゴリ2', 25000, '2026-02-20'),
('商品C', 'カテゴリ1', 15000, '2026-03-10');
STEP 3:セキュリティグループの設定
VPC接続では2つのセキュリティグループが必要です。
① Amazon Quick ENI用セキュリティグループ(quicksight-eni-sg)
| ルール | タイプ | ポート | 送信先 |
|---|---|---|---|
| アウトバウンド | MySQL/Aurora | 3306 |
ec2-mysql-sgのSGID |
② EC2用セキュリティグループ(ec2-mysql-sg)
| ルール | タイプ | ポート | ソース |
|---|---|---|---|
| インバウンド | MySQL/Aurora | 3306 |
quicksight-eni-sgのSGID |
💡 ポイント:最小権限の原則
0.0.0.0/0(全て許可)ではなく、セキュリティグループID同士を指定することで、必要な通信だけを許可できます。これがAWSのセキュリティベストプラクティスです。
STEP 4:IAMロールの作成
Amazon QuickがVPCにアクセスするためのIAMロールを作成します。
カスタム信頼ポリシーで作成
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "quicksight.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
アタッチするポリシー
| ポリシー名 | 用途 |
|---|---|
AmazonVPCFullAccess |
VPC操作に必要 |
AmazonEC2FullAccess |
ENI作成・管理に必要 |
ロール名
quicksight-vpc-role
STEP 5:Amazon QuickでVPC接続を作成
- Amazon Quickコンソール → 右上のアカウント名 → 「Amazon Quickの管理」
- 「VPC接続の管理」→「VPC接続を追加」
- 以下の通り設定:
| 設定項目 | 設定値 |
|---|---|
| VPC接続名 | mysql-vpc-connection |
| VPC ID | EC2と同じVPC ID |
| サブネット | 複数のAZのサブネットを選択 |
| セキュリティグループID |
quicksight-eni-sgのSGID |
| 実行ロール | quicksight-vpc-role |
- 「追加」をクリック
- ステータスが
AVAILABLEになるまで待つ(5〜10分)
STEP 6:MySQLデータソースを追加
- Amazon Quickトップ → 「データセット」→「新しいデータセット」
- 「MySQL」を選択
- 以下の通り入力:
| 設定項目 | 入力する値 |
|---|---|
| データソース名 | ec2-mysql |
| 接続タイプ | mysql-vpc-connection |
| データベースサーバー | EC2のプライベートIP |
| ポート | 3306 |
| データベース名 | quicksight_demo |
| ユーザー名 | quicksight_user |
| パスワード | 設定したパスワード |
- 「接続を検証」→ 成功したら「データソースを作成」
STEP 7:自然言語でダッシュボードを生成してみた!
データソースの作成が完了したら、いよいよAmazon Quickの真骨頂である自然言語によるダッシュボード生成を試してみましょう!
🗣️ 自然言語で質問するだけ!
Amazon Quickのチャット画面で、以下のように日本語で質問するだけでダッシュボードが自動生成されます:
「売上データをカテゴリ別・商品別・月別に可視化してください」
📊 生成されたダッシュボード
実際に生成されたダッシュボードがこちらです:
ダッシュボードには以下の情報が自動的に可視化されました:
| ビジュアル | 内容 |
|---|---|
| KPIカード | 総売上金額:$100.00K |
| 月別売上トレンド(折れ線グラフ) | 2026年1月〜5月の月次推移 |
| カテゴリ別売上(棒グラフ) | カテゴリ2($45K)、カテゴリ3($30K)、カテゴリ1($25K) |
| カテゴリ別売上シェア(ドーナツグラフ) | 各カテゴリの売上比率 |
| 商品別売上(横棒グラフ) | 商品a($50K)〜商品e($10K)のランキング |
Amazon Quickの自然言語機能
- コード不要 — SQLやプログラミングの知識がなくても分析できる
- 即座に可視化 — 質問するだけで最適なグラフタイプを自動選択
- インタラクティブ — 生成後もフィルタリングやドリルダウンが可能
- チーム共有 — 作成したダッシュボードをワンクリックでチームに共有
応用編:オンプレミス環境との接続も可能!
今回はEC2上のMySQLを接続しましたが、同じVPC接続の仕組みを使ってオンプレミス環境のデータベースにも接続できます!
オンプレミス接続の構成図
[Amazon Quick]
↓ VPC接続(ENI経由)
[VPC内のプライベートネットワーク]
↓
[AWS Direct Connect または AWS Site-to-Site VPN]
↓
[オンプレミスのデータベース(MySQL、Oracle、SQL Serverなど)]
オンプレミス接続に必要な追加設定
| 必要なもの | 説明 |
|---|---|
| AWS Direct Connect または Site-to-Site VPN | オンプレミスとVPCを繋ぐネットワーク接続 |
| プライベートIPアドレス | オンプレミスDBのプライベートIPを使用 |
| ファイアウォール設定 | オンプレミス側でAmazon Quickからの接続を許可 |
💡 ポイント
Amazon QuickのVPC接続機能は、クラウド・オンプレミス問わずプライベートネットワーク内のデータベースに安全に接続できる汎用的な仕組みです。今回EC2で学んだ設定(セキュリティグループ、IAMロール、VPC接続)はオンプレミス接続でもそのまま活用できます!
よくあるトラブルと解決策
| エラー | 原因 | 解決策 |
|---|---|---|
VPC接続がUNAVAILABLE
|
IAMロールの権限不足 |
AmazonEC2FullAccessを追加 |
| 接続検証に失敗 | セキュリティグループの設定ミス | インバウンド/アウトバウンドルールを再確認 |
Access denied for user |
パスワードが間違っている | MySQLでパスワードをリセット |
skip-grant-tablesエラー |
設定ファイルに不要な設定が残っている |
/etc/my.cnfから削除してMySQLを再起動 |
まとめ
今回の構築で実現できたこと:
- ✅ セキュアな接続:VPC内のプライベートネットワーク経由で接続
- ✅ 最小権限の設定:セキュリティグループで必要な通信のみ許可
- ✅ データの可視化基盤:Amazon QuickでMySQLのデータをグラフ化できる環境
- ✅ 自然言語でダッシュボード生成:コード不要でインサイトを即座に可視化
- ✅ オンプレミスにも応用可能:Direct ConnectやVPNを使えば社内DBにも接続できる
この構成を応用すれば、本番環境でも安全にデータを可視化できます。ぜひ試してみてください!
