Amazon EC2のインストール

Updated 2 years ago by Admin

このドキュメントの目的は、オートスケーラーを構成して実行するための十分な技術的詳細を提供することです。適切に設定すると、Droneサーバーのビルドボリュームに基づいてEC2インスタンスが自動的に提供および終了されます。


前提条件

Droneトークンを作成する

オートスケーラーに提供できる管理者権限を持つDroneユーザートークンを作成する必要があります。オートスケーラーはこのトークンを使用して、Droneビルドキューにリモートアクセスします。トークンの作成方法がわからない場合はチュートリアルを参照してください。

シークレットアクセスキーを作成する

オートスケーラーに提供できるAWSシークレットアクセスキーを作成する必要があります。オートスケーラーはこれらの資格情報を使用してAPIリクエストを承認します。トークンの作成方法がわからない場合は、チュートリアルを参照してください。

SSHキーペアの作成

droneという名前のSSHキーペアを作成し、AWSに登録する必要があります。オートスケーラーは、プロビジョニングされたインスタンスにSSHキーを追加します。その後、手動デバッグの目的で、インスタンスへのリモートSSH アクセスに秘密鍵を使用できます。キーペアの作成方法とアップロード方法がわからない場合は、チュートリアルを参照してください。

VPC を作成する

デフォルトのサブネットで構成されたVPCが必要です。オートスケーラーにサブネットIDを提供する必要があります。サブネットを見つけたり作成したりする方法がわからない場合は、チュートリアルを参照してください。

セキュリティグループを作成する

0.0.0.0/0 2376へのインバウンドTCPトラフィックを有効にするVPCおよび=セキュリティグループが必要になります。セキュリティグループの作成方法がわからない場合は、チュートリアルを参照してください。


ダウンロード

オートスケーラーは、軽量のDockerイメージとして配布されます。イメージは自己完結型であり、外部要件はありません。

docker pull drone/autoscaler

サーバーを起動する

オートスケーラーコンテナは、以下のコマンドで起動できます。コンテナは環境変数を介して構成されます。構成パラメータの完全なリストについては、 構成リファレンスを参照してください。

 1  docker run -d \
2 -v /var/lib/autoscaler:/data \
3 -e DRONE_POOL_MIN=${DRONE_POOL_MIN} \
4 -e DRONE_POOL_MAX=${DRONE_POOL_MAX} \
5 -e DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO} \
6 -e DRONE_SERVER_HOST=${DRONE_SERVER_HOST} \
7 -e DRONE_SERVER_TOKEN=${DRONE_SERVER_TOKEN} \
8 -e DRONE_AGENT_TOKEN=${DRONE_AGENT_TOKEN} \
9 -e DRONE_AMAZON_INSTANCE=${DRONE_AMAZON_INSTANCE} \
10 -e DRONE_AMAZON_REGION=${DRONE_AMAZON_REGION} \
11 -e DRONE_AMAZON_SUBNET_ID=${DRONE_AMAZON_SUBNET_ID} \
12 -e DRONE_AMAZON_SECURITY_GROUP=${DRONE_AMAZON_SECURITY_GROUP} \
13 -e DRONE_AMAZON_SSHKEY=${DRONE_AMAZON_SSHKEY} \
14 -e AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} \
15 -e AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} \
16 -p 8080:8080 \
17 --restart=always \
18 --name=autoscaler \
19 drone/autoscaler

参照

環境

構成パラメータは環境変数を使用して設定されます。このセクションでは、推奨される構成パラメーターのサブセットを定義します。完全なリストについては、構成リファレンスをご覧ください。

DRONE_POOL_MIN

オートスケーラーが維持する必要のあるインスタンスの最小数を定義する整数です。デフォルト値は2つのインスタンスです。

DRONE_POOL_MIN=2

DRONE_POOL_MAX

オートスケーラーがプロビジョニングできるインスタンスの最大数を定義する整数です。デフォルト値は4つのインスタンスです。

DRONE_POOL_MAX=4

DRONE_SERVER_PROTO

Droneサーバープロトコルスキームを含む文字列です。この値はhttpまたはhttpsに設定する必要があります。

DRONE_SERVER_PROTO=https

DRONE_SERVER_HOST

Droneサーバーのホスト名またはIPアドレスを含む文字列です。

DRONE_SERVER_HOST=drone.domain.com

DRONE_SERVER_TOKEN

Droneユーザートークンを含む文字列です。このトークンは、Droneサーバーへの管理アクセスを許可する必要があります。

DRONE_AGENT_CONCURRENCY

エージェントが実行できる同時ビルドの最大数を定義する整数です。この値は、新しいエージェントを構成するために使用されます。

DRONE_AGENT_CONCURRENCY=2

DRONE_AGENT_TOKEN

エージェントからサーバーへの通信を許可する共有シークレット (DRONE_RPC_SECRET) を含む文字列です。この値は、新しいエージェントを構成するために使用されます。

DRONE_AGENT_TOKEN=IiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ikxvb2

DRONE_AMAZON_REGION

新しいインスタンスが提供されるリージョンを含む文字列です。

DRONE_AMAZON_REGION=us-east-1

DRONE_AMAZON_SUBNET_ID

インスタンスネットワークの構成に使用されるサブネットの識別子を含む文字列です。

DRONE_AMAZON_SUBNET_ID=subnet-0b32177f

DRONE_AMAZON_INSTANCE

文字列フィールドは、インスタンスの提供時に使用するインスタンスタイプを提供します。デフォルト値はt2.mediumです。

DRONE_AMAZON_INSTANCE=t2.medium

DRONE_AMAZON_SECURITY_GROUP

インスタンスネットワークの設定に使用されるセキュリティグループの識別子を含む文字列です。

DRONE_AMAZON_SECURITY_GROUP=sg-770eabe1

DRONE_AMAZON_SSHKEY

新しく作成されたインスタンスに追加する必要がある、登録済みのSSHキーの名前を含む文字列です。

DRONE_AMAZON_SSHKEY=id_rsa

AWS_ACCESS_KEY_ID

アマゾンの秘密鍵IDを含む文字列です。または、承認にIAMロールを使用することもできます。

AWS_SECRET_ACCESS_KEY

アマゾンシークレットアクセスキーを含む文字列です。または、承認にIAMロールを使用することもできます。

Network

オートスケーラーはRESTエンドポイントを公開して、システムからランタイム情報を抽出できるようにします。オートスケーラーはコンテナ内のポート8080でリッスンし、ホストマシンで公開する必要があります。

--publish=8080:8080

Volumes

オートスケーラーはsqliteデータベースを作成し、 /dataコンテナボリュームに保持します。データ損失を防ぐために、データボリュームをホストマシンにマウントすることをお勧めします。

--volume=/var/lib/autoscaler:/data


How did we do?