LoginSignup
31
15

More than 1 year has passed since last update.

LambdaのIPアドレスを固定化する

Posted at

はじめに

LambdaとAPIサーバを組み合わせたサービスを開発する際、Lambdaのアクセス制御をしたいケースがあるかと思います。
その際、IPアドレスでアクセス制御を行うことが多いと思うのですが、LambdaのIPアドレスは基本的には固定化されていません。
さらに、Lambdaが使うIPアドレス範囲も結構広く、ちょくちょく変わるため、IPアドレスを固定化しないと制御が難しい。

上記について、LambdaのIPアドレスを固定化させる方法を紹介します。

前提

VPC,Lambdaが作成されていること。
LambdaがVPCに紐づいていること。

手順

  1. インターネットゲートウェイの作成
  2. パブリックサブネットの作成
  3. インターネットゲートウェイの割り当て
  4. プライベートサブネットの作成
  5. NATゲートウェイの作成
  6. プライベートサブネットとNATゲートウェイを紐づける

最終的な構成としては、下記のようになります。
LambdaToEC2.png

順に紹介していきます。

インターネットゲートウェイの作成

インターネットゲートウェイは、VPC とインターネットとの間の通信を可能にする VPC コンポーネントであり、冗長性と高い可用性を備えており、水平スケーリングが可能です。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html

作成済みのVPCを選択し、左ペインの「インターネットゲートウェイ」>「インターネットゲートウェイの作成」を押下します。

image.png

任意のタグをつけて、作成しましょう。

パブリックサブネットの作成

作成済みのVPCを選択し、左ペインの「サブネット」>「サブネットの作成」を押下します。
image.png

既存のVPCを選択すると、下記のように表示されます。
image.png

パブリックサブネットだとわかりやすいように、サブネット名に「public-xxxxx」のような名前を付けておきましょう。

IpV4 CIDRブロックは、紐づいているVPCの範囲内に収まるように設定しましょう。

上記入力して、「サブネットを作成」を押下。

インターネットゲートウェイの割り当て

先ほど作成したサブネットは、今の段階ではパブリックとは言えません。
インターネットゲートウェイを割り当てて、パブリックサブネットとしてあげましょう。

作成済みのVPCを選択し、左ペインの「サブネット」>作成したサブネットを選択します。
その後、紐づいているルートテーブルを選択します。

スクリーンショット 2021-08-30 183608.png
(ルート「0.0.0.0/0」の設定はまだないかと思います。こちらを今から追加していきます。)

「ルートテーブル:xxxxxxxxxx(リンク)」となっているので、リンク部分を押下します。

スクリーンショット 2021-08-30 185221.png

「ルートを編集」を押下します。
image.png

ここで下記を入力し、「変更を保存」を押下します。
送信先:0.0.0.0/0
ターゲット:インターネットゲートウェイ⇒1.で作成したインターネットゲートウェイを選択

これで、パブリックサブネットが作成できました。

プライベートサブネットの作成

次に、プライベートサブネットを作成していきます。
手順はパブリックサブネットを作った時と同様です。

作成済みのVPCを選択し、左ペインの「サブネット」>「サブネットの作成」を押下します。

image.png

既存のVPCを選択すると、下記のように表示されます。
image.png

プライベートサブネットだとわかりやすいように、サブネット名に「private-xxxxx」のような名前を付けておきましょう。

IpV4 CIDRブロックは、紐づいているVPCの範囲内に収まるように設定しましょう。

上記入力して、「サブネットを作成」を押下。

今の段階で、ここまでできてます。
1LambdaToEC2.png

NATゲートウェイの作成

次に、NATゲートウェイを作成していきます。

NAT ゲートウェイは、ネットワークアドレス変換 (NAT) サービスです。NAT ゲートウェイを使用すると、プライベートサブネット内のインスタンスは VPC 外のサービスに接続できますが、外部サービスはそれらのインスタンスとの接続を開始できません。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating

作成済みのVPCを選択し、左ペインの「NATゲートウェイ」>「NATゲートウェイを作成」を押下します。
image.png

下記のように入力して、「NATゲートウェイを作成」を押下します。
名前:任意
サブネット:public-xxxx
接続タイプ:パブリック
Elastic IP:「Elastic IPの割り当て」を押下し、作成

プライベートサブネットとNATゲートウェイを紐づける

今の段階で、ここまでできてます。
2LambdaToEC2.png

プライベートサブネットとNATゲートウェイが紐づいていないため、そこの設定をしていきます。

作成済みのVPCを選択し、左ペインの「サブネット」>プライベートサブネットを選択します。
【インターネットゲートウェイの割り当て】の手順と同様に、ルートテーブルの「ルートを編集」を押下します。

下記のように入力し、「変更を保存」を押下
image.png
送信先:0.0.0.0/0
ターゲット:NATゲートウェイ⇒作成したNATゲートウェイ

これでLambdaのIPアドレスが、NATゲートウェイのElastic IP Addressに固定化されます。
LambdaToEC2.png

31
15
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
31
15