0
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?

プライベートサブネットのEC2にSSH接続してMySQLを構築する

Last updated at Posted at 2025-12-07

はじめに

今回は、VPC のプライベートサブネットに MySQL 用の EC2 を立てて、インストールと初期設定まで行う流れをまとめます。

プライベートサブネットの EC2 はパブリック IP を持たないため、ローカルPCから直接 SSH 接続できません。
そのため、パブリックサブネットに踏み台の EC2 を用意し、そこを経由してプライベート側の EC2 にログインします。

また、MySQL を yum でインストールするため、プライベート側 EC2 が外部へ接続できるように一時的に NAT ゲートウェイを作成します。
作業完了後は課金を止めるため NAT ゲートウェイを削除します。

前提

AWSマネジメントコーンソールを使って、以下の手順を進めます。

  • VPC を作成済み
  • Public Subnet / Private Subnet を作成済み
  • それぞれのルートテーブルを作成済み
  • キーペア(例:myprivate.pem)を用意
  • Public Subnet / Private Subnet にEC2 を作成
  • NAT ゲートウェイを作成

それぞれの作成方法は以下の通りです。

VPC の作成

AWS コンソール → VPC → 「VPC を作成」

VPC名:MyVPC
IPv4 CIDR:10.0.0.0/16

Public / Private サブネットの作成

VPC → サブネット → 「サブネットを作成」

【パブリックサブネット】
名前:Public-Subnet
CIDR:10.0.1.0/24
AZ:ap-northeast-1a など
「自動パブリックIP割り当て」→ ON

【プライベートサブネット】
名前:Private-Subnet
CIDR:10.0.2.0/24
AZ:同じ or 別AZ
「自動パブリックIP割り当て」→ OFF

ルートテーブルの作成

Public Route Table

名前:Public-RT
VPC:MyVPC

作成後、以下のルートを追加:

0.0.0.0/0 → Internet Gateway (IGW)

サブネットの関連付けで Public-Subnet を紐付けます。

Private Route Table

名前:Private-RT
VPC:MyVPC

初期状態はアウトバウンド不可(正しい)。
サブネットの関連付けで Private-Subnet を紐付けます。

後で NAT ゲートウェイを作ってここに紐付けます。

キーペアの作成

AWS → EC2 → キーペア → 「キーペアを作成」

名前:myprivate
キーペアタイプ:RSA または ED25519
ファイル形式:pem

rsaは昔からスタンダードで使われてきた方式だけど、最近はed25519を使うことが多いらしいので、今回は後者を採用。
作成後、自動的に以下がダウンロードされます。

myprivate.pem

Public Subnet に踏み台 EC2 を作成

  • AMI:Amazon Linux 2
  • Subnet:Public Subnet
  • パブリックIP:有効

SG設定(推奨):

SSH (22) → 自分のIP(x.x.x.x/32)

※ 学習用として 0.0.0.0/0 を開けるパターンもあるが、本番は厳禁。

Private Subnet に MySQL 用 EC2 を作成

  • Subnet:Private Subnet
  • パブリックIP:無効

SG設定(推奨):

SSH 22 → 踏み台EC2のSGを許可
MySQL 3306 → 必要なSGのみ許可

一時的に NAT ゲートウェイを作成する

プライベートの EC2 が yum を使えるようにするため一時的に必要です。

VPC → NAT Gateway → 「作成」

Subnet:Public Subnet
Elastic IP:新規割り当て

Private Route Table にルートを追加:

0.0.0.0/0 → NAT Gateway

本題

ターミナルを使って作業をしていきます

① ローカルPC → 踏み台EC2 に SSH 接続

2-1 秘密鍵の権限を設定

chmod 400 myprivate.pem

2-2 踏み台 EC2 に SSH

ssh -i myprivate.pem ec2-user@<踏み台EC2のパブリックIP>

② 踏み台EC2 → Private EC2 に SSH 接続

ssh -i myprivate.pem ec2-user@<Private EC2 のプライベートIP>

③ Private EC2 に MySQL をインストール

3-1 root に切り替え

sudo su

3-2 yum update

yum update -y

3-3 MySQL リポジトリの追加

yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm -y

3-4 MySQL のインストール

yum install mysql-community-server -y

3-5 MySQL を起動/自動起動設定

systemctl start mysqld
systemctl enable mysqld

※インスタンスを起動した時にMySQLも自動で起動する

3-6 初期パスワードを取得

cat /var/log/mysqld.log | grep 'temporary password'

3-7 MySQL にログイン

mysql -u root -p

3-8 root パスワードを変更

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';

3-9 データベース作成

CREATE DATABASE udemy;

3-10 作成確認

SHOW DATABASES;

NAT ゲートウェイを削除する(片付け)

NAT ゲートウェイは 作成しただけで課金され続ける ため、管理作業が終わったら削除します。

VPC → NAT Gateway → 削除

まとめ

  • プライベート EC2 に直接 SSH はできないので踏み台 EC2 を使う
  • yum を使うために一時的に NAT ゲートウェイが必要
  • 作業後は NAT ゲートウェイを削除する
  • 秘密鍵を使って SSH する
  • VPC・サブネット・ルートテーブルの基本構成を理解できる良い練習になりました
0
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
0
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?