【トラブルシューティング】また Amazon Linux2 に MySQL をインストールしようとしたらエラーが起きたので解決するお話

記事タイトルとURLをコピーする

こんにちわ!サーバーワークス日本最南端社員の久保玉井(くぼたまい)です。

ちょうど一年ほど前にも同じような記事を木谷さんが書いていましたが、同様なトラブルが発生し解決したので備忘録です。

調査方法など参考になれば幸いです。

きっかけはUdemy教材

弊社では Udemy という世界最大のオンライン学習プラットフォームにて、AWS 関係の教材をご提供しております。

www.udemy.com

カリキュラム内容として・・

AWS の基本サービスの知識とアーキテクチャ設計を学びたい方へ。見て学ぶだけではなくハンズオンを通して、AWSソリューションアーキテクトアソシエイト (SAA) 合格相当の実践的な知識やスキルを身につけることができます。

上記を掲げて今まで9200人の受講者の方々にご利用頂いております。 (いつもありがとうございます)

CloudFormation で準備しているはずの MySQL が動いてない

上記の講座ではコンテンツ内容として一部 CloudFormation テンプレートも準備ご提供しております。

その CloudFormation テンプレートでは、ネットワーク環境の作成( VPC 等 )、EC2 の準備、その EC2 に必要なソフトウェア類をインストールするという簡単な内容です。

CloudFormation テンプレート内にて UserData を用いてコミュニティ版の MySQL Ver8系をダウンロードしインストールするという内容を記述しているのですが、それがどうも動いてない様子でした。

実際にCloudFormation テンプレートでスタック作成しましたが、CloudFormation 上ではエラー発生はせず。

出来上がった EC2 にログインしてみると・・本当だ! MySQL がインストールされてない状況でした。

トラブルシューティングしてみる

では何が原因で MySQL がインストールされてないのかトラブルシューティングする事にしました。

当該 EC2 のシステムログを確認する

MySQL がインストールされてない EC2 に原因があると想定し、EC2 のシステムログを確認します。

システムログを確認すると確かに MySQL はインストールされていません。

GPG キーがうまく動いていない様子です。

GPG キーが有効なのか確認する

以前は日本ネットワークインフォメーションセンターでも、GPGキー に関する情報の検索も可能でしたが、今はサービス終了しています。

www.nic.ad.jp

他に有効な GPGキー に関する公開鍵情報を検索できるサイトが無いか探してみると、日本ネットワークインフォメーションセンターのニュースレターにて有用な情報を見つけました。

なるほど。以下の3サイトで引き続き検索できそうですね。

  • keys.openpgp.org
  • keyserver.ubuntu.com
  • pgpkeys.eu

試しにubuntu.com で稼働しているサイトで鍵情報を検索をしてみます。

keyserver.ubuntu.com

EC2 のシステムログに出ていた鍵情報を入力し検索してみます。

なるほどー 2023年12月14日で終了しているようです。

解決をどうするか?

今回の場合、古い基盤となっていますのでいろいろな解決策があると思います。そもそも MySQL のコミュニティ版を使うのではなく、OS標準のリポジトリからインストール可能な MariaDBなどに変更するなど。。

ただその場合、Udemy 教材すべての整合性確認が必要となるので一番速く解決できる方法として、新しい GPG キーを使う事にしました。

新しい GPG キーを使う

MySQL のサイトにて対処策も公開されていました。

dev.mysql.com

以下コマンドを実行し、新しい GPG キーを用います。

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

あとは CloudFormation テンプレートに記述の内容を検証してみます。

wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
sudo yum localinstall -y mysql80-community-release-el7-5.noarch.rpm
sudo yum install -y mysql-community-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld

うむ。新しい GPG キーを使えば大丈夫な事が確認できました。

CloudFormation テンプレートを更新する。

内容が確認できましたので、CloudFormation テンプレートを更新し動作確認します。

      UserData:
        Fn::Base64: !Sub
          - |
            #!/bin/bash
            yum update -y
            # Install Apache
            yum install httpd -y
            systemctl start httpd
            systemctl enable httpd
            rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

更新した CloudFormation テンプレートにて出来上がった EC2 に接続して状況を確認します。

よし。MySQL 今度はちゃんとインストール出来ている事が確認できました。

まとめ

今回は 「CloudFormation上ではエラーが出てないのに、 MySQL が動かない」 と言う内容についてのトラブルシューティングでした。

EC2 が作成されますので、システムログから情報収集出来たのが良かったですね。

たぶんまた数年すると鍵情報の有効期限が来ると思うので、今後は根本的な対応をしたほうが良いかと思います。

以上です。最後までお読み頂きありがとうございました\(^o^)/

久保玉井純(執筆記事の一覧)

アプリケーションサービス部

サーバーワークス日本最南端社員。
最近、AWS Authorized Instructor Award 2022で表彰いただきました。引き続きわかりやすいトレーニング提供できるように頑張ります!