4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon QuickからEC2上のMySQLにVPC接続する方法

4
Posted at

はじめに

この記事は「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を起動する

  1. AWSコンソール → EC2 → 「インスタンスを起動」
  2. 以下の設定でインスタンスを作成:
設定項目 設定値
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接続を作成

  1. Amazon Quickコンソール → 右上のアカウント名 → 「Amazon Quickの管理」
  2. 「VPC接続の管理」→「VPC接続を追加」
  3. 以下の通り設定:
設定項目 設定値
VPC接続名 mysql-vpc-connection
VPC ID EC2と同じVPC ID
サブネット 複数のAZのサブネットを選択
セキュリティグループID quicksight-eni-sgのSGID
実行ロール quicksight-vpc-role
  1. 「追加」をクリック
  2. ステータスが AVAILABLE になるまで待つ(5〜10分)

STEP 6:MySQLデータソースを追加

  1. Amazon Quickトップ → 「データセット」→「新しいデータセット」
  2. 「MySQL」を選択
  3. 以下の通り入力:
設定項目 入力する値
データソース名 ec2-mysql
接続タイプ mysql-vpc-connection
データベースサーバー EC2のプライベートIP
ポート 3306
データベース名 quicksight_demo
ユーザー名 quicksight_user
パスワード 設定したパスワード
  1. 「接続を検証」→ 成功したら「データソースを作成」

STEP 7:自然言語でダッシュボードを生成してみた!

データソースの作成が完了したら、いよいよAmazon Quickの真骨頂である自然言語によるダッシュボード生成を試してみましょう!

🗣️ 自然言語で質問するだけ!

Amazon Quickのチャット画面で、以下のように日本語で質問するだけでダッシュボードが自動生成されます:

「売上データをカテゴリ別・商品別・月別に可視化してください」

📊 生成されたダッシュボード

実際に生成されたダッシュボードがこちらです:

スクリーンショット 2026-08-11 185946.png

ダッシュボードには以下の情報が自動的に可視化されました:

ビジュアル 内容
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にも接続できる

この構成を応用すれば、本番環境でも安全にデータを可視化できます。ぜひ試してみてください!


参考リンク

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?