9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Route53でプライベートホストゾーンを利用してるのにパブリックIPが返却されるってどういうこと?

Posted at

結論

ALB作成時にスキームがインターネット向けになっておりRoute53のプライベートホストゾーンを利用してもエイリアスによる接続を行うことでパブリックIPを返却するようになっていた。
ALB作成時に内部を選択するとプライベートIPアドレスが返却されるようになる。

顛末

要件

WebアプリケーションA(以降スクレイパーと呼ぶ)から、WebアプリケーションB(以降スクレイプリーと呼ぶ)へスクレイピングを行いたい。
社内利用のアプリケーションのため、特定のIP以外アクセスできないようにしたい。

環境

  • スクレイパーとスクレイプリーは同じVPCで動作している
  • スクレイパーとスクレイプリーはECSを利用している
  • スクレイプリーは簡単に言うと、Route53→ALB→ECSのような構成
    image.png

作戦1:セキュリティーグループにVPCのCIDRを追加

ECSのIPアドレス起動のたびに変更されるので固定するのは面倒。
なのでドメインが固定されているALBにアクセスすれば簡単に実現できそう。
同じVPCサービス内だからプライベートIPで接続されそう。
上記の理由からスクレイプリーのセキュリティグループにVPCのCIDRを設定し、同じVPC内のサービスからのアクセスを許可してしまえばいいと思い設定、スクレイパーを実行してみました。
image.png

結果:スクレイパーはスクレイプリーにアクセスできず、タイムアウトすることになりました。

作戦2:プライベートホストゾーンを利用すればいい

調べているとRoute53にはプライベートホストゾーンという概念があり、それを利用するとこでVPCネットワーク内でドメインによるアクセスを行うとプライベートIPアドレスが利用できるというものです。同じVPC内であればドメインによるアクセス時に勝手にプライベートIPになると勘違いしていたので、これを行っていないため、うまくいかないことに納得しましたあ。また、プライベートホストゾーンはパブリックホストゾーンと競合しても問題ないそうです。
早速プライベートホストゾーンを設定し、試してみます。
image.png

結果:スクレイパーはスクレイプリーにアクセスできず、タイムアウトすることになりました。

作戦3:スキームが内部のALBを利用する

調べているとALBにはスキームでインターネット向け内部を選択できます。
この時にインターネット向けを選んでいるとプライベートホストゾーンを利用していてもパブリックIPを返却するみたいです。
これを実装するには以下の構成を行う必要があります。
image.png

もうお気づきですね、そう料金が跳ね上がっているんです。
ECSの料金とALBの料金とホストゾーンの料金がかかるのでこれならNATゲートウェイを利用する方が安く済みそうです。

結果:料金が高いことがわかった

作戦4:NATゲートウェイを利用し、スクレイパーのパブリックIPを固定する

あとは当初のALBのセキュリティグループでスクレイパーからのパブリックIPを固定すればいいだけですね。
image.png

結果:シンプルに解決

学び

  • ALBとターゲットグループは1対1対応
  • EC2のAWSコンソールからターゲットグループを作成する時にECSのリソースを選択できない。ECSのサービス作成でターゲットグループを作成することができる。
  • ALBはALBをターゲットにしたターゲットグループを選択できない

最後に

ここまで読んでくださりありがとうございます。
スクレイプリーという言葉へのなんとも言えない違和感を堪能していただきありがとうございました。

9
2
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
9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?