はじめてのLINE Pay -AWS準備編-

こんにちは、中村です。
出張で東京に来ています。Tシャツ1枚でも暖かいです。

今回は、LINE Payのチュートリアルです。
Lambdaを使うのですが、LINE PayのAPIを利用するのにIPを制限する必要があります。
そのため、LambdaのIPを固定するところから解説します。

はじめに

LINE Payとは、フィンテック時代の新しいインフラとなるモバイル送金・決済サービスです。LINEユーザーであればだれでもアカウントに残高をチャージして加盟店での決済にご利用いただけます。銀行口座、コンビニなどでチャージ可能。表示したコードをお店のレジで読み取ってもらうだけでスムーズにお買い物できます。銀行口座を登録すると、LINEの友だち同士での送金も可能に。

sandboxの申請

本番利用するには、LINE Pay加盟店申請が必要ですが、開発用にsandboxが用意されています。
こちらから申請できます。
必要事項を入力後、メールにてログイン情報が送信されてきます。

AWS準備

VPC

VPCの作成をクリック。入力項目はこれだけです。

成功するとVPCのリストに表示されます。

サブネット

パブリックとプライベートの2つを用意。

インターネットゲートウェイ・ルートテーブル

"インターネットゲートウェイの作成"をクリック。インターネットゲートウェイ名を入力し作成。
インターネットゲートウェイの"アクション"から"VPCのアタッチ"で先ほど作成したVPCにアタッチ。
ルートテーブルは、VPC作成時に1つ作成されているので、パブリックサブネットの関連付け・ルート登録。

これでパブリックサブネット側の準備は完了です。
次に、プライベートサブネット側の設定をします。

Elastic IP・NATゲートウェイ・ルートテーブル

Elastic IPの"新しいアドレスの割り当て"から発行。
NATゲートウェイの"NATゲートウェイの作成"からサブネット・発行したElastic IPを選択し、NATゲートウェイを作成。 作成されると、ルートテーブルの編集への導線が表示されます。

先ほどのパブリックサブネット側と同じ様な形で設定していきます。

Lambda・IAM

Lambdaを作成していきます。ランタイムはNode.js8.10、ロールは、新規で作成してください。
作成が完了したら、ネットワークにてVPCを設定するのですが、VPC権限がないので保存できません。
IAMで、AWSLambdaVPCAccessExecutionRoleを追加しましょう。

IAMのロールから、先ほど作成したロールで、"ポリシーのアタッチ"をクリック。

AWSLambdaVPCAccessExecutionRoleを検索し、アタッチ。

成功するとポリシーが追加されます。

ロールが完成したら、Lambdaに戻ってネットワークの設定をします。
先ほど作成したVPC, サブネットを選択します。※セキュリティグループは1つだけ表示されるはずですので、それを選択してください。

次は、権限も足りているので問題なく保存されると思います。
これで、LambdaがLINE Pay APIにアクセスする際のIPはNATゲートウェイのIPになります。

API Gateway

APIの作成をクリックし、必要事項を入力。
LINEのwebhook用に、POSTメソッドを追加し下記の様に設定していきます。

ここまでの設定が完了したら、APIをデプロイします。
ダッシュボードページにURLが表示されるので、LINEの開発者コンソールに登録しましょう。
詳しくはこちらを参考にしてください。

まとめ

いかがでしたでしょうか。
LINEに限らずIP制限を要求されるAPIは多々ありそうですので、まとめてみました。
次回はLINEでのやり取りを中心に、解説していきます。