AWS で TeamCity スタックを実行する
CloudFormation テンプレート(英語)を使用して、AWS で TeamCity スタックを実行できます。これは実験的なオプションであり、現在進行中の作業であることに注意してください。
スタックの概要
現在の設定では、パブリックとプライベートの 2 つのサブネットを使用しています。
- プライベートサブネットには、すべての必須項目が含まれています。
Docker Hub から指定されたバージョンの公式 TeamCity サーバーと 1 つの TeamCity ビルドエージェントを備えた Amazon ECS 最適化 Linux EC2 インスタンスの ECS クラスター。TeamCity サーバーとビルドエージェントを含む公式の Docker イメージが使用されます。
RDS MySQL データベース
- パブリックサブネットには以下が含まれます。
アプリケーションロードバランサ
公的に利用可能な IP を保証する NAT ゲートウェイ
両方のサブネットは、完全に安全な Virtual Private Cloud(VPC)に配置されています。データベースは VPC 内の内部接続のみを許可し、HTTP または SSH のみを介してサーバーに接続することが可能です。
前提条件
TeamCity スタックを作成してそれに接続するには、次のものが必要です。
TeamCity スタックと同じ領域にある EC2 キーペア (英語)
TeamCity サーバーに接続してログを表示するためにインストールされた SSH クライアント
サービスリンクロールを作成し、スタックを作成する IAM エンティティにポリシーを適用するための IAM 権限
テンプレートを使う
1. テンプレートの選択ページで、デフォルトの TeamCity テンプレートを選択し、次へをクリックします。
2. テンプレートが提供するスタック名とパラメーターを指定します。
テンプレートパラメーター
設定 | 説明 |
---|---|
名前 | TeamCity サーバーの名前。デフォルトでテストするように設定されています。 |
TeamCity バージョン | デフォルトでは、テンプレートは最新バージョンの TeamCity インストールを作成します。正確なバージョン番号をここで指定することもできます(例: 2017.1.5, 2017.2)。 |
インターネット向けスタック | デフォルトでは |
EC2 キーペア (必須) | TeamCity サーバー EC2 インスタンスへの SSH アクセス用に既存の EC2 KeyPair を指定します。キーペアを指定しなかった場合、スタックの作成は次のエラーで失敗します。「テンプレート検証エラー: パラメーター 'KeyName' はパターンと一致する必要があります。 |
SSL 証明書ドメイン | オプションです。ドメイン所有者の場合は、ここでドメインを指定してロードバランサーに自動的に登録される証明書を取得できます。あなたのスタックの作成はあなたのメールを確認するまで一時停止されます。 |
EC2 インスタンスタイプ | TeamCity サーバーのインスタンス(英語)のタイプ(英語)を指定します |
コンテナー CPU | 仮想 CPU 単位のコンテナー CPU |
コンテナーメモリ | デフォルトでは 3700MiB に設定されています。 |
RDS データベースインスタンスタイプ | TeamCity の外部データベースとして使用される RDS MySQL インスタンスのタイプを指定します。デフォルト: |
TeamCity データベースパスワード (必須) | TeamCity データベースのパスワードを指定してください |
ビルドエージェント
設定 | 説明 |
---|---|
エージェント番号 | 起動したいエージェントの数を指定します。すべてのエージェントは別々のマシンで起動されます。0 を指定した場合、エージェントは起動しません。 |
EC2 インスタンスタイプ | TeamCity エージェントのインスタンス(英語)のタイプ(英語)を指定します |
コンテナー CPU | 仮想 CPU 単位のコンテナー CPU |
コンテナーメモリ | デフォルトでは 2048MiB に設定されています。 |
3. 次へをクリックします。(オプション)表示されるダイアログで、必要に応じて追加のオプションを指定します。
4. 次へをクリックして設定を確認し、AWS ロールの作成を受け入れます。
5. 作成するをクリックします。他のアクションは必要ありません。テンプレートがスタック全体をデプロイするのに約 15 分かかります。デプロイの準備が整うと、TeamCity のインストールを示す TeamCity サーバーエンドポイントが出力セクションに表示されます。
6. ブラウザーから TeamCity インスタンスにアクセスし、管理者アカウントを作成して、TeamCity の使用を開始します。
サーバーへの接続とログの表示
サーバーコンソールに接続するには、インスタンスの秘密鍵を使用する必要があります。
teamcity-agent.log
または teamcity-server.log
を表示するには、目的のコンテナーに対して docker logs
コマンドを実行するだけです。例: サーバーログの場合は、次のコマンドを実行します。
次のステップ
TeamCity を起動して実行したら、次の手順を検討してください。
Amazon EC2 用の TeamCity のセットアップを使用して他のビルドエージェントを実行し、サーバーに接続する
S3 バケットをアーティファクトストレージの構成として使用するように TeamCity を構成します。
AWS で TeamCity をアップグレードする
TeamCity を更新するには、CloudFormation テンプレートから始めます。
AWS CloudFormation コンソール(英語)で、スタックのリストから実行中の TeamCity スタックを選択し、スタック更新(英語)オプションを使用します。
テンプレートの選択ページにリダイレクトされます。現在のテンプレートオプションを使用して、次へをクリックします。
テンプレート設定ページで、アップデートしたい TeamCity のバージョンを入力します。最新のタグ付き TeamCity バージョンを以前に使用したことがある場合は、
latest
タグはサーバーに 1 回しか適用できないため、実際のバージョン番号を入力する必要があります。次へをクリックし、必要に応じて追加オプションを提供し、新しい設定を確認して更新をクリックします。更新が完了したら、ブラウザーから TeamCity Web UI にアクセスします。
必要に応じて、スーパーユーザートークンを提供します。それを取得するには、サーバーインスタンスに接続し、上記の TeamCity サーバーログを取得し、メンテナンストークンを取得する必要があります。
サーバーがアップグレードされるのを待ち、TeamCity サーバーにログインし、エージェントがアップグレードされてサーバーに接続するのを待ちます。
関連ページ:

Amazon EC2 用の TeamCity のセットアップ
TeamCity Amazon EC2 統合により、Amazon アカウントで TeamCity を構成し、キューに入れられたビルドに基づいて TeamCity エージェントでオンデマンドでイメージを開始および停止できます。他のクラウドソリューションとの統合が可能です。概要:マシンイメージは、起動時に TeamCity エージェントを開始するように事前設定されていることが前提となっています(詳細を参照)。TeamCity で 1 つまたは複数のイメージを使用してクラウドプロファイルを構成すると...

アーティファクトストレージの構成
「プロジェクト設定 | アーティファクトストレージ」タブには、このプロジェクトで構成されているアーティファクトストレージと、親から継承されたストレージが表示されます。デフォルトでは、組み込み TeamCity アーティファクトストレージが表示され、アクティブとしてマークされています。対応するリンクを使用して別のストレージを有効化することができます。組み込みアーティファクトストレージ:TeamCity は、TeamCity サーバーによってアクセス可能なファイルシステム上のビルドによって生成され...