1
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?

[AWS]プライベートAPIを作成(雑メモ)

Posted at

概要

実務でプライベートAPIを作成したので、忘れないように、構築する手順をメモとして書いていきます。
かなり雑に書いているので見にくいです。ごめんなさい

イメージとしては、以下のような感じです。

image.png

以下のサイトから画像は頂きました。

手順

Lambda関数を作成し、API Gatewayと接続

・Lambdaを開き、関数を作成する。

・API Gatewayを開き、「APIを作成」をクリックする。

・「REST API プライベート」の「構築」をクリックする。

・「新しいAPI」を選択し、API名に任意の名前を入力、「APIエンドポイントタイプ」が「プライベート」となっていることを確認し、「APIを作成」をクリックする。

・APIが作成されたら、サイドバーから「リソース」を選択し、「メソッドを作成」をクリックする。

・メソッドタイプを「GET」とし、統合タイプに「Lambda関数」を選択し、Lambda関数のリージョンは「ap-northeast-1」を選択し、右側のメソッドには、先ほど作成した関数を選択し、「メソッドの作成」をクリックする。

・メソッドが作成されたら、APIとLambda関数が接続されたかを確認するため、「テスト」から「テストの実行」をクリックする。

VPCエンドポイント作成

・「VPCエンドポイント」を開き、「エンドポイントの作成」をクリックする。

・名前に任意の名前を入力し、サービスカテゴリは「AWSのサービス」を選択する。

・サービスで「execute-api」を選択。これを選択しないとAPIを実行できない。VPCは実行したいec2が属するVPCを選択する。

・サブネットもec2が所属するものを選択する。セキュリティグループはHTTPSがインバウンドで許可されていればなんでもOK。

・ポリシーで「フルアクセス」を選択し、「エンドポイントの作成」をクリックする。

・エンドポイントが作成される。エンドポイントIDをコピーしておく。

API Gatewayの追加設定

・API Gatewayで、先ほど作成したAPIを開き、サイドバーから「APIの設定」を選択し、「APIの詳細」の「編集」をクリックする。

・「VPCエンドポイントID」に、先ほどコピーしたVPCエンドポイントIDを追加して、「変更を保存」をクリックする。

・「VPC endpoint IDs」に、追加したVPCエンドポイントが表示される。

・続いて、サイドバーから「リソースポリシー」を選択し、「ポリシーを作成」をクリックする。

・以下のコードをポリシーの詳細に記入し、「変更を保存」をクリックする。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ],
             "Condition": {
                  "StringEquals": {
                      "aws:sourceVpce": "VPCエンドポイントID"
                  }
              }
        }
    ]
}


・続いて、サイドバーの「リソース」を選択し、「APIをデプロイ」をクリックする。

・「ステージ」で「新しいステージ」を選択する。

・「ステージ名」で任意のステージ名を入力し、「デプロイ」をクリックする。

・APIがデプロイされたら、URLをコピーしておく。

APIを実行

・コマンドプロンプトを起動し、ssh接続をして、以下のコマンドを入力して、EC2からAPIを呼び出せるかを確認する。

curl 先ほどコピーしたURL


・EC2にログインしないで、先ほどと同じコマンドを入力して、以下のメッセージが表示されるかを確認する。

curl: (6) Could not resolve host: コピーしたURL


以上の手順が問題なくいけば、成功している。

参考サイト

1
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
1
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?