まずはLambda関数を作成してみよう
AWSで簡単なアービトラージの仕組みを作りたいとき、最初に必要になるのが Lambda関数の作成 です。
Lambdaは、サーバーを自分で用意しなくても、必要なタイミングでプログラムを実行できる便利なサービスです。
今回は、まず Lambda関数を新規作成するところ までを整理し、そのあとで コードタブ・テストタブ・設定タブの基本的な使い方 も簡単に紹介します。
アービトラージ用の本格的なロジックを書く前に、まずは「関数を作る」「コードを置く」「テストする」「設定を調整する」という流れをつかんでおくと、その後の作業がかなり進めやすくなります。
1. Lambdaの作成画面を開く
AWSマネジメントコンソールで Lambda を開き、関数を作成 を選択します。
作成方法はいくつかありますが、今回は一番わかりやすい 「一から作成」 を選べば大丈夫です。
シンプルな構成で始められるので、最初の学習や検証にはこの方法が向いています。
2. 基本的な情報を入力する
Lambda関数を作るときは、まず基本情報を入力します。
関数名
関数名には、あとから見ても内容がわかる名前を付けるのがおすすめです。
たとえば今回のようにアービトラージや通貨ペア監視を想定しているなら、次のような名前がわかりやすいです。
mizuho-pair-monitorsimple-arbitrage-checkfx-arbitrage-lambda
名前はあとから見返したときに意味がわかるものにしておくと、運用が楽になります。
ランタイム
Pythonでコードを書く予定なら、Python系のランタイム を選択します。
画面ではランタイム選択欄がありますが、アービトラージのようなデータ取得や計算処理では Python が扱いやすいです。
3. 詳細設定は最初は最小限でOK
作成画面には、永続実行、EC2キャパシティプロバイダー、ARM64、関数URL、VPC、コード署名、KMSによる暗号化、タグなど、いろいろな項目があります。
ただ、最初の段階では 無理にいろいろ設定しなくても大丈夫 です。
最初は次の考え方で十分です。
- まずは シンプルに作る
- 必要になったらあとで設定を追加する
- 最初から複雑にしすぎない
特に、簡単なアービトラージの試作段階であれば、最初からVPC接続などを入れなくても進められるケースが多いです。
4. 「関数を作成」を押して作成完了
必要事項を入力したら、画面右下の 「関数を作成」 を押します。
これでLambda関数の土台ができあがります。
この時点では中身はほぼ空ですが、ここからコードを書いて、テストして、設定を調整していくことで、実際に動く仕組みにしていきます。
作成後にまず見る3つのタブ
Lambda関数を作成すると、主に最初に使うのは次の3つです。
- コード
- テスト
- 設定
この3つを押さえておけば、最初の開発はかなり進めやすくなります。
コードタブの使い方
コードタブ は、Lambdaの中で実行するプログラムを書く場所です。
ここでは lambda_function.py などのファイルが表示され、Pythonコードを直接編集できます。
簡単なアービトラージであれば、まずはこの画面に
- データ取得処理
- 価格差の計算
- シグナル判定
- 結果の出力
といった処理を書いていく流れになります。
最初は、いきなり複雑なコードを書くよりも、まずは
- ちゃんと関数が動くか
- 期待した値が返るか
- ログが出るか
を確認するための簡単なコードから始めるのがおすすめです。
たとえば最初は、イベントを受け取ってメッセージを返すだけでも十分です。
そのあと少しずつ、価格データの比較や通知処理を追加していくとわかりやすいです。
また、コードを書いたあとは Deploy を押して反映するのを忘れないようにします。
保存しただけでは反映されないことがあるので、修正後はデプロイまでを1セットで覚えておくと安心です。
テストタブの使い方
テストタブ は、作成したLambda関数を手動で実行して確認する場所です。
ここではまず 新しいイベントを作成 し、イベント名を付けてテスト用の入力データを設定します。
最初はテンプレートが Hello World になっていても問題ありません。
Lambdaのテストは、「本番で動かす前に中身を確認する」ためにとても重要です。
たとえばテストタブでは、
- エラーが出ていないか
- 返り値が正しいか
- 想定したログが出ているか
を確認できます。
アービトラージ用のLambdaでも、最初は本番データを取りに行く前に、ダミーデータで動作確認するのがおすすめです。
まずは「関数が最後まで動く」ことを確認して、その後で実際の価格取得処理を組み込むと、原因の切り分けがしやすくなります。
設定タブの使い方
設定タブ では、Lambda関数の動作条件を調整できます。
ここで特に最初に見ておきたいのが 一般設定 です。
一般設定では、主に次のような項目を調整できます。
- メモリ
- タイムアウト
- 一時ストレージ
この中で特に重要なのが タイムアウト です。
タイムアウトは1分にしておく
簡単なアービトラージ処理でも、
- 外部データの取得
- 価格の比較
- 条件判定
- 通知や保存処理
などを行うと、数秒では終わらないことがあります。
そのため、最初の設定では タイムアウトは短すぎないように1分 にしておくのがおすすめです。
短すぎると、処理自体は問題なくても途中でタイムアウトしてしまい、原因がわかりにくくなります。
最初は余裕を持って 1分 にしておき、必要に応じて後から調整するほうが進めやすいです。
初心者向けの進め方
Lambdaでアービトラージを作り始めるときは、次の順番で進めるとわかりやすいです。
1. まずはLambda関数を作る
最初は「一から作成」でシンプルに始めます。
2. コードタブで最低限のコードを書く
いきなり完成版を目指さず、まずは動作確認用の簡単なコードを書きます。
3. テストタブで手動実行する
イベントを作って、エラーが出ないかを確認します。
4. 設定タブでタイムアウトを調整する
最初は 1分 にしておくと安心です。
まとめ
Lambdaで簡単なアービトラージを作るときは、最初から難しく考えすぎず、まずは Lambda関数を1つ作ること が大切です。
流れとしては、次の形を覚えておけばOKです。
- 関数を作成する
- コードタブで処理を書く
- テストタブで動作確認する
- 設定タブでタイムアウトなどを調整する
特に設定では、タイムアウトは短すぎないように1分 にしておくと、最初の検証がかなりやりやすくなります。
この土台ができれば、その次に
- 為替データの取得
- 価格差計算
- シグナル判定
- SNS通知
- EventBridgeによる定期実行
といった形で、少しずつアービトラージの仕組みに育てていけます。