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

0

2024年12月23日 8:40

概要

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

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

image.png

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

https://iret.media/52328

手順

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エンドポイントが表示される。

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

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

img

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

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

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

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

APIを実行

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

img

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

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

参考サイト

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-private-apis.html

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-resource-policies-create-attach.html

https://taiyakikuroann.hatenablog.com/entry/2021/07/09/214956

https://www.higutthiengineer.com/2022/10/22/awsprivateapi/

https://oji-cloud.net/2020/03/13/post-4469/

https://dev.classmethod.jp/articles/private-api-is-not-private-for-you/
[cv:issue_marketplace_engineer]

0

診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。