カテゴリー: AWS

  • AWS LightsailでMySQL環境を最小構成で構築する(後編)

    AWS LightsailでMySQL環境を最小構成で構築する(後編)

    前編では、AWS LightsailでUbuntuの最小構成インスタンスを作成し、スワップの追加や日本語ロケールの設定までを行いました。後編では、DockerとMySQLコンテナのセットアップ、接続確認、トラブル対応までを解説します。

    ステップ①:DockerとDocker Composeのインストール

    LightsailのUbuntuはDocker非搭載のため、まずDocker本体とCompose(v1)をインストールします。

    sudo apt install docker.io docker-compose

    最新版のdocker-compose(v2)をインストールしなくても、本記事の内容は動作します。v2を入れた場合は docker compose というようにスペース付きでコマンドを実行してください。

    ステップ②:MySQLコンテナ用ディレクトリと構成ファイルの準備

    任意のディレクトリ(例:mysql-env)を作成し、その中に docker-compose.yml ファイルを作成します。

    以下のコマンドでエディタを開き、内容を手入力してください。
    インデントを必ずつけてください。入力後は Ctrl + XYEnter で保存できます。

    mkdir ~/mysql-env
    cd ~/mysql-env
    nano docker-compose.yml

    設定例:

    version: '3.8'
    services:
      mysql:
        image: mysql:8
        container_name: mysql
        environment:
          MYSQL_ROOT_PASSWORD: ****
          MYSQL_DATABASE: testdb
        ports:
          - "3306:3306"
        volumes:
          - mysql-data:/var/lib/mysql
    volumes:
      mysql-data:

    ****部分は任意で変更してください。
    ※ 本記事の設定は学習用のサンプルです。本番環境ではパスワード変更などセキュリティ対策を十分に行ってください。

    ステップ③:コンテナの起動と確認

    docker-compose up -d

    起動状況の確認:

    docker ps

    STATUSの項目がUP~と表示されていたら起動完了です。
    MySQLに接続してみます:

    docker exec -it mysql mysql -uroot -p****

    プロンプト(mysql>)が出れば接続成功です。
    ****ここは作成したパスワードです。

    MySQL接続画面
    MySQLにSSHに接続完了画面

    ステップ④:トラブル対応と補足

    ◻︎yamlの構文エラー(インデントや文字化け)

    コピー&ペーストではインデントや改行が崩れて yaml.parser.ParserError が出ることがあります。手入力がお勧めです。

    ◻︎MySQLコンテナが起動するが接続できない

    この症状は、実は メモリ不足が原因でMySQLが内部でクラッシュしているケースがあります。特にLightsail最小構成(512MB)では起こりやすいです。

    次のようなログが繰り返されていたら、メモリ不足の可能性大です:

    Initializing database files
    Killed
    Can't connect to local MySQL server...

    この場合、スワップ追加で解消することがあります。

    ◻︎スワップを追加しても消えてしまう

    再起動後にスワップが消えていた場合、/etc/fstab への記述がない可能性があります。以下のように追記してください:

    /swapfile none swap sw 0 0

    追記後、再起動して sudo swapon --show で有効化を確認します。

    まとめ

    AWS Lightsailの最小構成でDocker+MySQL環境を構築する一連の手順を紹介しました。

    • Lightsailでの構築は低コストで始めやすい
    • Dockerで環境を簡潔に構築・削除可能
    • yamlの記述エラーやメモリ不足に注意
    • スワップは永続化しておくと安心

    開発環境や学習目的であれば、Lightsail+Dockerは非常に便利な構成です。ぜひお試しください。

    MySQLの試運転
    バージョン確認や一時テーブル作成

    ▼ 前編はこちら:
    LightsailでDocker+MySQL環境を最小構成で構築する(前編)

  • AWS LightsailでMySQL環境を最小コストで構築する(前編)

    AWS LightsailでMySQL環境を最小コストで構築する(前編)

    この記事では、AWS Lightsail 上に Docker を使って MySQL 環境を構築する手順を、スクリーンショット付きでわかりやすく解説します。前半ではサーバー作成まで立ち上げまで行います。

    それでは作成に入っていきましょう

    ステップ①:Lightsailインスタンスの作成

    1. AWS Lightsailにログインし、「インスタンスの作成」を選択
    2. プラットフォームは Linux/Unix を選択
    3. 設計図(Blueprint)は OSのみ → Ubuntu 22.04 LTS を選択
    4. インスタンスプランは最小構成($5プラン:0.5 GB RAM, 1vCPU, 40GB SSD)を選択
    5. インスタンス名を入力(例:mysql-env
    6. 「作成」ボタンをクリック

    インスタンスが起動すると、パブリックIPアドレスが割り当てられます。

    Lightsailの設定画像1
    プラットフォームと設計図の選択
    Lightsailの設定画像2
    ネットワークタイプとサイズ
    Lightsailダッシュボード
    設定完了画面(画面左:立ち上げすぐなので開始中になっています)

    ※ 以前は $3.5 プランもありましたが、2025年7月時点では $5 プランが最小構成になります。

    ステップ②:SSH接続と初期セットアップ

    1. Lightsailのインスタンス一覧から、作成したインスタンスを選択
    2. 「接続」タブから「SSHを使用して接続」からブラウザベースのSSHコンソールを起動
    3. 以下のコマンドでパッケージ情報を更新します:
    sudo apt update && sudo apt upgrade -y

    このコマンドをコピー&ペーストして実行したとき、以下のような「謎の記号」やエラー風の表示が出ることがあります:

    ��sudo: command not found

    これは「sudoが存在しない」という意味ではなく、貼り付け時の文字化けが原因で、コマンドが正しく認識されなかった状態です。

    このような場合は、コマンドをもう一度「手打ち」で入力してください。

    sudo apt update && sudo apt upgrade -y

    ブラウザ版SSHでは、コピー&ペースト時にエンコードが乱れることがあるため、最初のセットアップでは手打ちが確実です。

    インスタンス個別画面
    作成したインスタンスの個別画面

    SSH接続画面
    接続画面

    ここまででサーバーの立ち上げが完了しました。

    ステップ③:Dockerとは?導入する理由

    MySQLをこのまま直接インストールすることもできますが、本記事では Docker を利用します。

    Docker は「コンテナ型仮想環境」を作成するツールで、次のようなメリットがあります:

    • 環境構築が簡単(数行のコマンドで完了)
    • 環境が汚れない(削除すればすぐに元通り)
    • MySQLのバージョン切り替えや使い分けが楽
    • 開発・テスト環境に最適(手元のマシンと分離できる)

    今回は MySQLをDockerコンテナで動かす ことで、設定の簡略化やトラブルへの対処を学びながら進めていきます。

    後編では Docker のインストールから始めましょう。
    ▼ 後編はこちら:
    LightsailでDocker+MySQL環境を最小構成で構築する(前編)