AWS EC2へのSSH接続: Duck DNSを使った動的ドメイン設定
概要
AWS EC2のインスタンスにElastic IPを使用せずにSSH接続する方法を紹介します。無料の動的ドメインサービスDuck DNSを利用して、動的に変わるIPアドレスでも安定して接続できるように設定します。
目次
- はじめに
- 実行環境
- SSH接続の基本設定
- Duck DNSの導入
- ddclientのインストールと設定
- ドメイン名でSSH接続するように変更
- まとめ
1. はじめに
Elastic IPを使用せず、動的ドメインサービスを使ってAWS EC2にSSH接続する方法についてまとめてみました。
2. 実行環境
- インスタンスタイプ: t2.micro (無料枠)
- OS: Ubuntu 22.04 LTS
3. SSH接続の基本設定
SSH接続のための基本的な設定を行います。
Host aws_test
User ubuntu
HostName [インスタンスのパブリックIP]
Port 22
IdentityFile [ダウンロードした秘密鍵のパス]
4. Duck DNSの導入
Duck DNSは、無料で利用できる動的ドメインサービスです。このサービスを利用することで、AWS EC2のインスタンスの動的IPアドレスを固定のドメイン名に関連付けることができます。Duck DNSの公式サイトからサインアップを行い、ドメイン名を取得してください。本記事では、サインアップの手順は割愛します。
5. ddclientのインストールと設定
Duck DNSとの連携を実現するために、ddclient
というツールをインストールします。このツールは、動的IPアドレスの変更を検出し、Duck DNSに自動で更新を通知する役割を果たします。
$ sudo apt install ddclient
インストール後、設定画面が表示されます。
-
動的DNSサービスの選択: ここでは
duckdns.org
を選択します。
-
ユーザ名の入力: Duck DNSでの登録時に使用したユーザ名を入力します。私はGoogleアカウントでの登録したので、gmailアドレスを入力しました。
-
トークンの入力: Duck DNSのダッシュボードに表示されるトークンを入力します。このトークンは、ddclientがDuck DNSのサービスと連携するための認証情報として使用されます。
-
IP発見方法の選択: IPアドレスの検出方法を選択します。EC2インスタンスはNATされてるっぽいので
Web-based IP
を選びます。
-
ドメイン名の設定: Duck DNSで取得したドメイン名(*.duckdns.org)を入力します。複数のドメイン名を持っている場合は、カンマで区切って入力します。
設定が完了したら、Duck DNSにアクセスし、current ip
がEC2のパブリックIPと一致していることを確認します。一致していれば、設定は正しく完了しています。
6.ドメイン名でSSH接続するように変更
Duck DNSで設定したドメイン名を利用してSSH接続する設定を行います。
Host aws_test
User ubuntu
HostName [自分で決めたドメイン名(*.duckdns.org)]
Port 22
IdentityFile [ダウンロードした秘密鍵のパス]
7.まとめ
本記事では、Elastic IPを使用せずにDuck DNSを利用してAWS EC2へのSSH接続を行う方法を紹介しました。これにより、インスタンスのIPアドレスが変わっても、都度設定を変更することなくSSH接続が可能となります。
Discussion