Q: Jenkins とは何ですか?

Jenkins は、Java で作成されたオープンソースの継続的インテグレーションツールです。ソフトウェア開発のカスタムインテグレーションサービスを提供します。多くの開発チームで使用されているサーバーベースのシステムです。

Q: Jenkins を使用する理由は何ですか?

ソフトウェア開発ライフサイクル (SDLC) を加速化したい場合は、Jenkins の使用をお勧めします。Jenkins を使用すれば、ビルド、デプロイ、テストをさまざまな環境に統合できるうえ、開発チームの待機時間も削減できます。さらに、継続的インテグレーションが可能になるため、Jenkins は短いイテレーションサイクルである DevOps やアジャイル手法に最適です。

Q: AWS で Jenkins を実行する理由は何ですか?

AWS には、信頼性が高く、スケーラブルで、安全なインフラストラクチャリソースが用意されているので、Jenkins などのアプリケーションの実行に理想的です。Jenkins を AWS コンピューティング環境で実行すれば、使用した分に対してのみ料金が発生するため、特定のニーズに合わせてキャパシティーをスケーリングできます。

Q: 独自の Jenkins 環境を所有することになりますか?

はい。この入門ガイドで実行して作成されたリソースはすべて、お客様の所有となり、お客様のアカウント内に存在することになります。Amazon EC2 インスタンスを削除するまでご利用になれます。

Q: Jenkins のコストはどれくらいですか?

Jenkins はオープンソースの無料ソフトウェアです。発生するのは、Jenkins を実行する基礎インフラストラクチャのコストのみです。コストの詳細については、使用するサービスとコストを参照してください。

Q: AWS で Jenkins のセキュリティを確保するには、どうすればよいですか?

セキュリティグループと強力なパスワードの利用をお勧めします。また、EC2 インスタンスと Jenkins のインストールが最新であり、最新のセキュリティパッチが適用されていることもご確認ください。セキュリティグループは、1 つ以上のインスタンスを制御するステートフルな仮想ファイアウォールとして動作します。可能であれば、IP 範囲を関連するソースの IP アドレスのみに制限してください。関係のない TCP ポートや UDP ポートは開かないでください (TCP 80 と 8080 で十分です)。Jenkins のパスワードを設定する場合は、パスワードの一般的なベストプラクティスに従い、記号 (/、,、!、*など) を加えた小文字と大文字の英数字を使用してください。Amazon Linux インスタンスでは、yum アップデートを実行することで常に最新のパッケージがインストールされます。このガイドの手順に従って、yum を使用して Jenkins をインストールしていれば、このとき Jenkins も更新されます。

Q: Jenkins をプライベートサブネットで実行できますか?

パブリックサブネットまたはプライベートサブネット内の EC2 インスタンスに Jenkins をインストールできます。プライベートサブネットにインスタンスを配置するには、Jenkins のフロントエンドにアクセスできることが必要です。インターネットを介して接続している場合は、Jenkins ターゲットグループを作成し、Application Load Balancer を使用してプライベートにホストされたインスタンスのパブリックエンドポイントを作成できます。独自のデータセンターから接続している場合は、VPN を設定するか、Direct Connect を介して Jenkins に接続できます。

Q: Jenkins をスケールするには、どうすればよいですか?

Jenkins を CI/CD のニーズに合わせる方法はいくつかあります。1 つの簡単な方法として、インスタンスのサイズを変更することで EC2 インスタンスを垂直方向にスケーリングする方法があります。また、ECS クラスターでビルドジョブを Jenkins スレーブタスクにファームアウトするように Jenkins Amazon EC2 Container Service Plugin を設定する方法もあります。