VPC 内の Lambda インスタンスから DynamoDB に接続する方法を教えてください。

所要時間2分
0

Amazon DynamoDB を Amazon Virtual Private Cloud (Amazon VPC) の AWS Lambda インスタンスと統合したいと考えています。

解決策

前提条件:

Lambda を DynamoDB に接続する

次の手順を実行します。

  1. Lambda コンソールを開きます。
  2. ナビゲーションペインで、[関数] を選択します。
  3. [関数の作成] を選択します。
  4. [一から作成] を選択します。
  5. [基本情報] に、以下を設定します。
    [関数名] に、関数の名前を入力します。
    [ランタイム] で、ランタイムオプションを選択します。この例では、Python 3.12 を使用します。
    [アーキテクチャ] で、[x86_64] を選択します。
  6. [詳細設定] で、以下を設定します。
    [VPC を有効にする] を選択し、お使いの VPC を選択します。
    [サブネット] には、プライベートサブネットのみを選択します。
    [セキュリティグループ] には、デフォルトのセキュリティグループを選択します。
  7. [関数の作成] を選択します。
  8. [関数の詳細] ページの [コードソース] で、次のコードを入力します。
    import json
    import boto3
    
    client = boto3.client('dynamodb')
    
    def lambda_handler(event, context):
        response = client.get_item(
            TableName='Music',
            Key={
                'Artist': {
                    'S': 'No One You Know',
                },
                'SongTitle': {
                    'S': 'Call Me Today',
                },
            }
        )
    
        print(response)
    
        return {
            'statusCode': 200,
            'body': json.dumps('Success!')
        }
    注: [TableName][Value] は、お使いの値で置き換えます。
  9. [デプロイ] を選択します。
  10. 関数をテストします
    注: 関数をテストするには、Lambda の AWS Identity and Access Management (IAM) ロールに適切なアクセス許可が必要です。詳細については、「AWS Lambda でのアクセス許可の管理」を参照してください。

その他のトラブルシューティング

VPC にアタッチされている Lambda 関数をトラブルシューティングするには、以下のアクションを実行します。

  • Lambda 関数からパブリックサブネットへの接続をすべて削除します。パブリックサブネットに接続した場合は、トラフィックはパブリックサブネットを通過しようとするため、断続的にタイムアウトの問題が発生する可能性があります。

  • DynamoDB に、ゲートウェイエンドポイントが正しく設定されていることを確認します。

  • Lambda 関数に関連付けられているプライベートサブネットを更新して、DynamoDB VPC ゲートウェイエンドポイント経由でルーティングします。これらのエンドポイントには、Lambda と DynamoDB 間のセキュリティグループ設定の設定を補助する AWS マネージドプレフィックスリストがあります。
    プライベートサブネットルートテーブルの例:

    Route Table: rtb-12345
    Destination        Gateway     Status
    10.0.0.0/16         local      active
    pl-1234           vpce-1234    active
  • すべてのトラフィックを許可するように Lambda セキュリティグループのルールを更新します

関連情報

コンソールで Lambda 関数を作成する

Amazon VPC エンドポイントを使用して DynamoDB にアクセスする

ネットワークと VPC の設定

AWS公式
AWS公式更新しました 3ヶ月前
コメントはありません