Start Building for Free
CircleCI.comアカデミーブログコミュニティサポート

インストールの前提条件

5 months ago1 min read
Server v2.x
このページの内容

CircleCI は、Terraform を使って CircleCI Server v2.x をインストールするインフラの一部を自動化しているため、まず Terraform をインストールする必要があります。

インストール手順を開始する前に、以下の情報を準備してください。

  • CircleCI ライセンス ファイル (.rli): ライセンスについては CircleCI サポートにお問い合わせいただき、最高のパフォーマンスを得るために、専用インスタンスでジョブを実行するためのクラスタ対応ライセンスをリクエストしてください。

  • AWS アクセス キー ID とシークレット アクセスキー

  • AWS EC2 SSH キーペアの名前

  • AWS リージョン、例えば us-west-2

  • AWS Virtual Private Cloud (VPC) ID および AWS サブネット ID。 アカウントがデフォルトのVPC を使用するように設定されている場合、デフォルトの VPC ID は「Account Attributes」に記載されており、AWS マネジメントコンソールからEC2 ダッシュボードページで確認できます。

  • VPC の [enableDnsSupport] を`true`に設定し、Amazon が提供する IP アドレス169.254.169.253 の DNSサーバー、または VPC IPv4 ネットワーク範囲のベース+2の予約 IP アドレスへのクエリが成功するようにします。 詳しい情報については、Amazon Web サービスのドキュメントにある VPC での DNS の使用を参照してください。

プライベート サブネットの要件

AWS 上の非公開サブネットを CircleCI で使用するには、次の追加設定が必要です。

  • ビルダーボックス用の非公開サブネットは、添付のルートテーブルにより、インターネットへのアウトバウンドトラフィック用に設定された NATゲートウェイ または インターネットゲートウェイ で設定する必要があります。

  • S3 用 VPC エンドポイント を有効にする必要があります。 S3 用 VPC エンドポイントを有効にすると、CircleCI およびサブネット内の他のノードに対する S3 の操作性が大幅に向上します。

  • 高負荷のネットワーク操作に対しては NAT インスタンスを適切に強化します。 デプロイの仕様によっては、Docker および外部ネットワーク リソースを使用した高度並列ビルドによって NAT インスタンスが制約を受けるおそれがあります。 不適切な NAT によってネットワーク操作やキャッシュ操作が低速化するおそれがあります。

  • github.com と連携する場合、ネットワークのアクセス制御リスト (ACL) で GitHub Webhook のポート80 および 443 が許可されていることを確認します。 GitHub と統合する場合は、CircleCI をパブリック サブネット内に準備するか、パブリック ロードバランサーを使用して github.com トラフィックを転送するように設定します。

  • See the Services Machine section of our overview for more information on the specific ports that need to be accessible to instances in your CircleCI installation.

事前準備

インストールを開始する前に、以下の情報とポリシーを確認してください。

  • ネットワーク プロキシを使用する場合は、インストールを開始する前に、お客様のアカウントチームに連絡してください。

  • Services 用に 1つ、Nomad クライアントの最初のセット用に 1つ、少なくとも 2つの AWS インスタンスのプロビジョニングを行います。 ベストプラクティスとして、Services と Nomad クライアントの両方のインスタンスに、8つの vCPU と 32 GB の RAM を備えた m4.2xlarge インスタンスを使用することをお勧めします。

  • AWS インスタンスには、Docker コンテナをプルし、ライセンスを確認するために、アウトバウンドアクセスが必要です。 外部アクセスを制限したい場合は、 アクセスが必要なポート一覧 を参照してください。

  • Terraform を使用して必要な AWS エンティティをプロビジョニングするには、次の権限を持つ IAM ユーザーが必要です (IAM ユーザーの作成については、 AWS ガイダンス を参照してください)。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": [
                    "s3:*"
                ],
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:s3:::circleci-*",
                    "arn:aws:s3:::circleci-*/*",
                    "arn:aws:s3:::*"
                ]
            },
            {
                "Action": [
                    "autoscaling:*",
                    "sqs:*",
                    "iam:*",
                    "ec2:StartInstances",
                    "ec2:RunInstances",
                    "ec2:TerminateInstances",
                    "ec2:Describe*",
                    "ec2:CreateTags",
                    "ec2:AuthorizeSecurityGroupEgress",
                    "ec2:AuthorizeSecurityGroupIngress",
                    "ec2:CreateSecurityGroup",
                    "ec2:DeleteSecurityGroup",
                    "ec2:DescribeInstanceAttribute",
                    "ec2:DescribeInstanceStatus",
                    "ec2:DescribeInstances",
                    "ec2:DescribeNetworkAcls",
                    "ec2:DescribeSecurityGroups",
                    "ec2:RevokeSecurityGroupEgress",
                    "ec2:RevokeSecurityGroupIngress",
                    "ec2:ModifyInstanceAttribute",
                    "ec2:ModifyNetworkInterfaceAttribute",
                    "cloudwatch:*",
                    "autoscaling:DescribeAutoScalingGroups",
                    "iam:GetUser"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }

ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。

サポートが必要ですか

CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。

または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。