はじめに
AWS EC2 を使っていると、インスタンスを停止・再起動するたびにパブリックIPが変わってしまうのが地味に面倒ですよね。
SSH接続やWebサービスの確認をするたびに、毎回IPを確認して接続し直すのはストレスです。
そこで今回は、Elastic IPを使って EC2のパブリックIPアドレスを固定する方法を試してみました。
思ったよりも簡単に設定できたので、その手順をまとめておきます。
※本記事は、前回投稿した以下の記事の続きです。
内容の一部(環境構築や Flask アプリのセットアップなど)は前回記事を前提としているため、本記事では詳細な説明を省略しています。
概要
本記事では、EC2インスタンスにElastic IPを割り当ててIPアドレスを固定する方法を解説します。
具体的な手順は以下の通りです
- AWS マネジメントコンソールで Elastic IP を割り当てる
- EC2 インスタンスに関連付ける
- IPアドレスが固定されているか確認する
- SSH の Config ファイルを設定して、接続を簡略化する
Elastic IP を設定すれば、インスタンスを再起動しても IP アドレスは変わらなくなります。
開発環境・検証環境などで安定したアクセスが必要な方には特におすすめです。
Elastic IP の割り当て
1. AWSマネジメントコンソールで EC2 > Elastic IP に移動
2.「Elastic IP の割り当て」をクリック
3.「割り振る」をクリック
4. Elastic IPアドレスが割り振られたことを確認
Elastic IP をインスタンスに関連付ける
1. Elastic IP の左のチェックボックスを選択
2. 画面上部の「アクション」→「Elastic IPアドレスを関連付ける」を選択
3. 対象のインスタンスを選択し、「関連付け」をクリック
- プライベートIPアドレスは自動で選択されます
IPアドレスが固定されているか確認する
1. インスタンスを起動
- 起動後、Elastic IPアドレスとパブリックIPアドレスが一致していることを確認します
2. VS Code からSSH接続する
3. Flaskアプリを起動して動作確認
sudo ~/flask_app/venv/bin/python ~/flask_app/main.py
4. ブラウザから Elastic IP にアクセスし、表示を確認する
5. インスタンスを再起動して動作を確認
- インスタンスを一度停止して再起動
- Elastic IP(パブリックIP)が 変わらないことを確認
任意: SSH Config ファイルで接続を簡略化
~/.ssh/config
に以下のように設定
Host aws-ec2
HostName ec2-18-178-201-136.ap-northeast-1.compute.amazonaws.com
IdentityFile .ssh/aws-ec2-ymtdir.pem
User ubuntu
-
Host
は任意の名前(例:aws-ec2
)でOK - 過去のインスタンス情報は全て削除してOK
これで、以後は以下のコマンドで簡単に接続可能:
ssh aws-ec2