はじめに
対応した案件で、踏み台サーバーとして使用していたEC2インスタンスのOS更新が必要になったため、新たに構築し直すことになりました。
本記事では、その際の構築手順や注意点を備忘録としてまとめています。
同様の構成を検討している方の参考になれば幸いです!
踏み台サーバーとは
インターネットから直接アクセスできないプライベートなクラウド環境にあるリソース(例:RDS for MySQL)へ接続するには、中継用のサーバーが必要です。
この中継サーバーのことを「踏み台サーバー(Bastion Host)」と呼ばれ、外部からのアクセスをこのサーバーに限定し、そこから内部ネットワークへ接続する構成が一般的です。
今回は、Amazon EC2 インスタンスを踏み台サーバーとして利用し、AWS Systems Manager(SSM) のセッションマネージャーを使って接続する方法を紹介しています
AWS公式ドキュメントにも詳細な説明がありますので、あわせて参考にしてみてください。
構成図
構築手順
-
IAMロール作成
-
AmazonSSMManagedInstanceCore
ポリシーを含む踏み台サーバー用のロールを作成する
-
-
新規でEC2インスタンスを作成
-
作成したEC2インスタンスに接続
- SSMのセッションマネージャーを使用する
-
EC2サーバー上でMySQLクライアントをインストール
-
MySQLデータベースに接続
困ったこと
実際の構築時にSSMセッションマネージャーがうまく動かず焦りましたが、EC2インスタンスのステータスチェックが完了していなかったのが原因だったと思われます。
接続エラーの原因となることがあるため、EC2インスタンスのステータスチェックが完了しているかを忘れずに、確認するようにしましょう。
なぜMariaDBを使用したのか
OSの更新により、Amazon Linux 2023 を使うことになりましたが、MySQLのインストールがうまくいかず代替としてMariaDBをインストールしました。
具体的には、MySQL公式リポジトリ(mysql-community-release
)を使ってyumインストールを試みましたが、Amazon Linux 2023 では非対応で失敗しました。
そのため、MySQLと互換性のあるMariaDBを使用することで対応しました。
参考:Amazon Linux 2023 へ MySQL をインストールしてログインする(クラスメソッド)
まとめ
今回の構築を通じて、SSMセッションマネージャーの活用方法や、セキュリティを意識した踏み台サーバーの運用を学ぶことができました。
それ以前はSSH接続を使用していましたが、SSMによって鍵管理やポート開放が不要になり、運用負担が軽減される点が非常に便利だと感じました。
また、EC2インスタンスの構築からデータベース接続までを一通り体験できたことで、インフラ構成全体の理解も深まりました。