terraformでISHOCON1の環境が構築できます。
社内ISUCON等のコンテストの開催準備として使うと便利です。
開催者(以下admins)と参加者(以下players)のロールに分けて、サーバーを複数台準備できます。
- 支払情報が紐付けされたAWSアカウント
- IAMユーザのアクセスIDとシークレットアクセスキー
$ aws configure --profile ishocon1
playerはコンテストで使用するインスタンスにログインするために、GitHubに登録されている秘密鍵を使用する。
GitHubにて秘密鍵を登録後、各自のPCで以下のコマンドを実行し自身のGitHubのアカウントIDが表示されることを確認する。
$ ssh -T git@github.com
tfstateの管理をローカルで行う場合には、作成不要。
- terraform.tfの中のbucketに、先ほど作成したS3のbucket nameを入れる
- ローカルでtfstateを管理し、S3を使わない場合にはterraform.tfを削除する
- users.tfにadmins, playersのGitHubアカウントIDを入れる
- 詳細はドキュメントを参照のこと
- adminsは全インスタンスに入ることができる
$ terraform apply
outputに競技で使用するインスタンスのIPアドレスが入っているので、playerの人に渡す。
- spot instanceで立てるようにしてコストの削減を図っています
- コンテスト中に絶対に落ちて欲しくないなどの理由により spot instanceを使わない場合、main.tfの
aws_spot_instance_request
をaws_instance
に変えてください
- コンテスト中に絶対に落ちて欲しくないなどの理由により spot instanceを使わない場合、main.tfの
- デフォルトでは、ISHOCON1の推奨インスタンスタイプである
c5.xlarge
でインスタンスが起動します - このterraformを使用することで発生した問題に対して責任は一切取りません
- コードをよく読んだ上で、自己責任でご使用ください