0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Route 53 Resolverを試してみた

Posted at

背景・目的

以前、Route 53 Resolverについて整理しましたが、今回は実際に手を動かしてみたいと思います。

実践

下記の環境でテストをしてみます。

image.png

VPCの構築

  1. AWSにサインインします
  2. VPCに移動します
  3. 「VPCを作成」をクリックします
  4. 下記の内容でVPCを作成します
    • Publicサブネット、Private サブネットが1つづつ
    • IGW
    • S3 VPCe
    • DNSオプションを無効化

S3の作成

  1. バケットを作成します

EC2インスタンスのセットアップ

  1. EC2に移動します
  2. ナビゲーションペインで「インスタンス」をクリックします
  3. 「インスタンスを起動」をクリックします
  4. 作成したPublic サブネットに起動します

EC2にSSH

  1. SSHします
    % ssh -i {KEY} ec2-user@XX.XXX.XXX.XXX
       ,     #_
       ~\_  ####_        Amazon Linux 2023
      ~~  \_#####\
      ~~     \###|
      ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
       ~~       V~' '->
        ~~~         /
          ~~._.   _/
             _/ _/
           _/m/'
    [ec2-user@XXXXXX ~]$ 
    

クエリを実行

  1. S3バケットに対して、digを実行します

Inbound Endpointを作成する前なので想定通りです。

```bash
[ec2-user@ip-XX-XX-XX-XX ~]$ dig {S3バケット名}
;; communications error to 10.0.0.2#53: timed out
;; communications error to 10.0.0.2#53: timed out
;; communications error to 10.0.0.2#53: timed out

; <<>> DiG 9.18.28 <<>> {S3バケット名}
;; global options: +cmd
;; no servers could be reached

[ec2-user@ip-XX-XX-XX-XX ~]$ 
```

Resolver Inbound Endpointの作成

セキュリティグループの作成

  1. EC2に移動します
  2. ナビゲーションペインで「セキュリティグループ」を選択します
  3. 「セキュリティグループを作成」をクリックします
  4. 下記を入力し、「セキュリティグループを作成」をクリックします
    • セキュリティグループ名
    • 説明
    • VPC
    • インバウンドルールにUDPとTCPのDNSを指定。ソースは作成したVPCを指定
      image.png
      image.png

インバウンドエンドポイントの作成

  1. Route 53 Resolverに移動します
  2. トップページで「エンドポイントの設定」をクリックします
  3. DNSクエリの方向では、「インバウンドのみ」を選択し、「次へ」をクリックします
  4. 下記を入力し、「次へ」をクリックします
    • エンドポイント名:任意
    • VPC:作成したVPC
    • セキュリティグループ:上記で作成したセキュリティグループ
    • エンドポイントタイプ:IPv4
    • エンドポイントのプロトコル:Do53
    • IPアドレス#1、#2:作成したPrivate Subnet(※今回AZが1つのため同一を指定しています)
      image.png
      image.png
  5. 確認画面で「送信」をクリックします
  6. リゾルバーのVPC画面で、作成できたことがわかります
    image.png
  7. ナビゲーションペインで「インバウンドエンドポイント」をクリックすると、作成されていることがわかります
    image.png

クエリを実行(再)

  1. S3バケットに対して、digを実行します。失敗しました

EC2のデフォルトのDNSは、VPCのデフォルトリゾルバーを参照しているので想定内です

```bash
[ec2-user@ip-XX-XX-XX-XX ~]$ dig {S3バケット名}
;; communications error to 10.0.0.2#53: timed out
;; communications error to 10.0.0.2#53: timed out
;; communications error to 10.0.0.2#53: timed out

; <<>> DiG 9.18.28 <<>> {S3バケット名}
;; global options: +cmd
;; no servers could be reached

[ec2-user@ip-XX-XX-XX-XX ~]$ 
```

DNS設定

  1. ナビゲーションペインで「インバウンドエンドポイント」に移動します
  2. プライベートIPアドレスを確認します(メモします)
  3. EC2で/etc/resolv.confを開きます。デフォルトでは下記の定義になっています
    nameserver 10.0.0.2
    search ap-northeast-1.compute.internal
    
  4. 上記でメモしたインバウンドエンドポイントにnameserverのIPアドレスを変更します

クエリを実行(再々)

  1. 再々度、S3バケットに対して、digを実行します。成功しました
    [ec2-user@ip-XX-XX-XX-XX ~]$ dig {S3バケット名}
    
    ; <<>> DiG 9.18.28 <<>> {S3バケット名}
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 24383
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ;; QUESTION SECTION:
    ;{S3バケット名}.	IN	A
    
    ;; AUTHORITY SECTION:
    .			2153	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2024112100 1800 900 604800 86400
    
    ;; Query time: 9 msec
    ;; SERVER: {プライベートIPアドレス}#53({プライベートIPアドレス}) (UDP)
    ;; WHEN: Thu Nov 21 07:26:19 UTC 2024
    ;; MSG SIZE  rcvd: 134
    
    [ec2-user@ip-XX-XX-XX-XX ~]$ 
    
    

クエリログの有効化

クエリログが出力されるように設定します。

  1. Route 53 Resolverに移動します
  2. ナビゲーションペインで「クエリのログ記録」をクリックします
  3. 「クエリログ記録の設定」をクリックします
  4. 下記を入力し、「クエリログの設定」をクリックします
    • クエリログ記録の設定名:任意
    • クエロログの送信先:今回は、CWLを指定
    • CWLのロググループの指定:新しいロググループ名
    • クエリをログ記録するVPC:作成したVPCを指定
      image.png
      image.png

CWLを確認

  1. CloudWatchに移動します
  2. ナビゲーションペインで「ロググループ」をクリックします
  3. ログストリームができていました。
    image.png

クエリを実行

  1. S3バケットに対して、digを実行します。
    [ec2-user@ip-XX-XX-XX-XX ~]$ dig {S3バケット名}
    
    ; <<>> DiG 9.18.28 <<>> {S3バケット名}
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 24383
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ;; QUESTION SECTION:
    ;{S3バケット名}.	IN	A
    
    ;; AUTHORITY SECTION:
    .			2153	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2024112100 1800 900 604800 86400
    
    ;; Query time: 9 msec
    ;; SERVER: {プライベートIPアドレス}#53({プライベートIPアドレス}) (UDP)
    ;; WHEN: Thu Nov 21 07:26:19 UTC 2024
    ;; MSG SIZE  rcvd: 134
    
    [ec2-user@ip-XX-XX-XX-XX ~]$ 
    
    

ログを確認

  1. ログストリームができていました。クリックします
    image.png

  2. 下記のログが出力されていました

    2024-11-21T16:37:54.000+09:00
    {
        "version": "1.100000",
        "account_id": "XXXXXXX",
        "region": "ap-northeast-1",
        "vpc_id": "vpc-XXXXXX",
        "query_timestamp": "2024-11-21T07:37:54Z",
        "query_name": "{S3バケット名}.",
        "query_type": "A",
        "query_class": "IN",
        "rcode": "NXDOMAIN",
        "answers": [],
        "srcaddr": "XXXXXX",
        "srcport": "48000",
        "transport": "UDP",
        "srcids": {
            "resolver_endpoint": "rslvr-in-XXXX",
            "resolver_network_interface": "rni-XXXX"
        }
    }
    

考察

今回、Route 53 Resolverのインバウンドエンドポイントを試しました。実際に手を動かすことで挙動のイメージが少しつきました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?