タグ: 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環境を最小構成で構築する(前編)

  • AWS Cloud Practitioner 合格体験記とおすすめ教材まとめ

    2025年5月、AWS Certified Cloud Practitioner(CLF-C02)に合格しました!

    公式スコアは 731点 でした(合格ラインは700点)。この記事では、勉強法や試験の感想をまとめておきます。

    なぜこの資格を受けたのか?

    まず、AWSの基礎を理解しておきたかったという理由があります。
    次に、クラウドの全体像を体系的に把握したいと考えていました。
    そして、将来的なキャリアやプロジェクトのための第一歩として、資格取得を目指しました。

    勉強に使った教材・サービス

    学習スケジュールと時間

    • 学習期間:3ヶ月弱
    • 平均学習時間:1日40分程度
    • 合計学習時間:約50時間

    試験当日の感想とポイント

    • 試験時間:90分(時間には余裕あり)
    • 難易度:全体的にはやさしめだが、知らない単語が2割くらいあった
    • ポイント:
      • セキュリティ / 請求 / サポートプラン の知識は特に重要
      • 模擬試験の解説に出てくる単語は必ず調べて、どんなサービスか、似たような役割がある場合はメリット・デメリットを説明できるようにしておくと安心

    今後の予定

    次のAWS系の資格は AWS Certified Solutions Architect – Associate(SAA) に挑戦予定です。

    CLFで得た基礎知識と、今後の実務経験をうまく組み合わせて、引き続き学習を進めていきます!

    最後までお読みいただきありがとうございました!

  • Odysseytechlab 開設!ブログを立ち上げた理由と今後の予定

    自己紹介

    こんにちは、Odysseyといいます。
    普段はインフラエンジニアとして、AWSやネットワーク周りの設計・構築・運用をしています。

    このブログでは、仕事や趣味で触れた技術の記録や、試行錯誤の過程をゆるく残していくつもりです。

    入社当初は営業部に配属され、その後、分析力を評価いただいてマーケティング部に異動。
    現在はIT部門で2年目になり、社内データのデータウェアハウス化を担当しています。

    プログラミングはほとんど独学で、昔Pythonでマリオブラザーズ風のゲームを作ろうとして挫折したことがあります(笑)。

    今後は、仕事では統計の勉強を進めて顧客満足度やチャーンレートの解析をやってみたいです。
    私事ではWebサービスの開発にも挑戦していきたいと考えています。

    エンジニアとしてはまだまだ勉強中ですが、実務や学びの中で得た知見を、誰かの参考になる形で残していけたらと思います。

    なぜブログを始めたのか

    技術のインプットは日々しているものの、アウトプットの場がなかったので、
    「忘れる前に書く」「積み上げとして記録する」ことを目的にブログを始めました。

    また、業務では触れにくい技術や、自分用に構築した環境(今回のブログ環境も含む)もまとめておきたかったからです。

    このブログで書いていく予定のこと

    以下のような内容を気ままに書いていくつもりです。

    • AWS関連(Lambda、Lightsail、 資格など)
    • FastAPIやPythonまわりの開発メモ
    • SQLの実験
    • 自作ツールやスクレイピングの話
    • 試験勉強(AWS資格や統計)など

    基本は技術系中心ですが、たまに雑記もあるかもしれません。

    今回やったこと(技術的サマリ)

    このブログは、以下の構成で立ち上げました。

    • AWS Lightsail に Bitnami WordPress をデプロイ
    • お名前.com で独自ドメイン(odysseytechlab.com)を取得
    • DNSをLightsailに向けて、Let’s EncryptでSSL化
    • HTTP→HTTPSリダイレクト&wwwなしに統一
    • WordPressのURL設定、パーマリンク最適化 など

    最初からWordPressテーマを作り込むのではなく、まずは「投稿する環境を整えること」を優先しました。

    今後について

    記事数が増えてきたら、カテゴリーの整理やデザインの調整もしていく予定です。
    また、将来的に自作のサービスやツールを公開できる場所にもしていきたいと考えています。

    まずは気張らず、楽しくやっていきます。

    最後に

    まだ模索中の部分も多いですが、少しずつ形にしていけたらと思います。
    ここまで読んでいただき、ありがとうございました。