Skip to content

PRTIMES/private-isu-bench-lambda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

private-isu-bench-lambda

ISUCON」は、LINE株式会社の商標または登録商標です。

本リポジトリはprivate-isuのベンチマーカーをAWS Lambdaで動かすためのリポジトリです。

チーム情報をスプレッドシートで管理し、Lambda関数URLをcurlで叩くことでベンチマーカーを動かし、その結果をMackerelに送信します。

This is not an official product.

使い方

  1. private-isu/benchmarker/をビルドし、そのファイルをbinディレクトリに配置する。
GOOS=linux GOARCH=amd64 go build -o benchmarker
  1. userdataをこちらを参照して必要なファイルを配置する。そのまま配置してしまうと、Lambdaにデプロイする際のデプロイパッケージの制限を超えてしまうので画像を削除するなどの対応をしてください。
  2. スプレッドシートを作成し、スプレッドシートIDを取得する。
  3. Googleの認証情報Jsonファイルを取得する。
  4. MackerelでサービスとAPIKeyを作成する。
  5. 本リポジトリのmain.goをビルドし、ファイルをzip化し、S3にアップロードする。
  6. Lambdaの「コードソース」の「アップロード元」から先ほどアップロードしたzipファイルのURLを入力する。
  7. Lambdaで環境変数を設定する。
Environment Variable Description
MACKEREL_API_KEY Mackerelから発行されるAPIキー
MACKEREL_SERVICE_NAME Mackerelのサービス名
SPREADSHEETID GoogleスプレッドシートのID
SPREADSHEET_CREDENTIALS_JSON Google APIの認証情報を含むJSON(サービスアカウントからダウンロード)
SPREADSHEET_RANGE チーム情報が記載されているシート名と範囲(シート1のA2からB50の場合。シート1!A2:B50
  1. private-isuを動かしているサーバー上で、Lambda関数のURLを叩く。
curl <your-lambda-function-url>
# レスポンス例
{"pass":true,"score":623,"success":565,"fail":2,"messages":["リクエストがタイムアウトしました (POST /login)"]}

lambroll を活用したデプロイ

1~5については上記と同様。Makefileで以下の環境変数を設定する。

Environment Variable Description
MACKEREL_API_KEY Mackerelから発行されるAPIキー
MACKEREL_SERVICE_NAME Mackerelのサービス名
SPREADSHEETID GoogleスプレッドシートのID
SPREADSHEET_CREDENTIALS_JSON Google APIの認証情報を含むJSON(サービスアカウントからダウンロード)
SPREADSHEET_RANGE チーム情報が記載されているシート名と範囲(シート1のA2からB50の場合。シート1!A2:B50
FUNCTION_NAME AWS Lambda関数の名前
FUNCTION_ROLE 関数を実行するときのAWSロール
S3_BUCKET 関数のデプロイ先のS3バケット
S3_KEY デプロイするときのS3のキー

その後make deploy_private_isu_bench_lambda を実行し、デプロイが完了する。

ディレクトリ構成

├── bin  # private-isuのベンチマーカーのバイナリ
├── userdata  # ベンチマーカーで必要な画像などのデータ
└── main.go  # Lambda上で動かすメインプログラム

スプレッドシートについて

左側にIPアドレス、右側にチーム名になるようにしてください。

IPアドレス チーム名
192.0.2.1 test1

参考ブログ

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published