2022/08/25

AWSでJenkinsを活用しよう|メリットや使用方法をご紹介

 
  

Jenkinsとは


Jenkinsは、継続的インテグレーション(CI)をサポートするオープンソースのツールです。

開発過程におけるビルドやデプロイ、テストを自動化し、過程の遂行速度を高められます。プラグインによる拡張機能もあり、多様なカスタマイズが可能です。

派生として、Kubernetes環境に特化したJenkins Xも存在しますが、本記事では割愛します。

JenkinsをAWSへ導入するには


Amazon Web Services(AWS)へJenkinsを導入するには、Elastic Compute Cloud(EC2)を使用します。

Jenkinsを実行する上で便利な機能が多数搭載されています。

EC2とは

Elastic Compute Cloud(EC2)は、クラウドにコンピューティング環境を構築するサービスです。

一言で言えば、AWS上の仮想サーバーです。このサーバーはインスタンスと呼ばれ、さまざまなアプリケーションタイプに対応します。スケーリングが簡単で、必要に合わせてサイズを変更できるのが特徴です。

このEC2インスタンスにJenkinsをインストールすることで、AWS環境での使用が可能になります。

AWSでJenkinsを使用するメリット


この項目では、AWSでJenkinsを使用するメリットについてご紹介します。

前述の通り、AWSでは、JenkinsはEC2にインストールすることが必要です。したがって、EC2の特徴がそのままメリットとして当てはまります。また、EC2は統合可能なサービスが豊富で、それらの機能も取り入れられます。

メリット1:自動スケーリングができる

EC2は、Auto Scalingによる自動スケーリングが可能です。

その時点での使用量に合わせて、インスタンスの追加あるいは削除を自動的に行います。これにより、常にニーズに合致した環境を整えられ、その他、Auto Scalingでは異常が起きているインスタンスを検出して自動で削除する機能もあり、耐障害性を向上させます。

Jenkinsのアプリケーションを常に最適な環境で実行でき、サイズの無駄を減らすことでコストの節約にもなるでしょう。

メリット2:プライベート環境で実行できる

AWSでは、Virtual Private Cloud(VPC)を使用してプライベート環境でJenkinsを実行できます。

VPCは、クラウド上に独自の仮想ネットワークを構築するサービスです。豊富なセキュリティ機能も備え、重要なデータも安全に取り扱えます。

Virtual Private Network(VPN)またはDirect Connectを使用することで、データセンターとJenkinsをプライベート環境で接続することが可能です。

メリット3:EBSによる可用性・耐久性の向上

Elastic Block Store(EBS)は、EC2インスタンスのデータを保存するブロックストレージサービスです。

EC2のバックアップとしての役割を持ち、スナップショットやレプリケート、暗号化など、データの可用性や耐久性を高める機能が豊富です。

AWSでJenkinsを実行する時は、EBSも併用してバックアップを取っておくと安心です。

AWSでJenkins環境を構築する方法


この項目では、AWSでJenkins環境を構築する方法について、流れを簡単にご紹介します。

EC2を起動した後、そこにJenkinsをデプロイして設定、というステップになります。

詳細な操作方法については、公式ページのチュートリアルをご覧ください。

EC2インスタンスを起動

最初に、EC2を起動します。

セキュリティグループやインスタンスのタイプ、サイズなどを指定します。それぞれのニーズに合わせて設定していきましょう。

必須ではありませんが、EBSボリュームも作成しておくとバックアップストレージとして役立ちます。

EC2にJenkinsをデプロイして設定

次に、EC2にJenkinsをデプロイして設定します。

最新版のJenkinsをインストールおよびデプロイした後、ロックを解除し、そこから専用のプラグインを導入して、先程作成したEC2をビルドサーバーとして指定します。

最後にAWSの認証情報を含むデータを入力したら、セットアップは完了です。

AWSでJenkinsを使用してCI CDパイプラインを構築する方法


この項目では、AWSでJenkinsを使用してCI CDパイプラインを作成する方法についてご紹介します。

CodeBuild、CodeDeployの2種類のサービスと組み合わせます。ソースコードの変更をデプロイするまでの過程すべてを自動化することが可能です。

CodeBuildとは

AWS CodeBuildは、コードのビルドを自動化するサービスです。

ソースコードの場所の指定とビルド設定を行うことで、自動的にコンパイルやテストを実行しましょう。デプロイ可能になるまでの過程を大幅に省略できます。

Jenkinsでは、サーバーから送られてきたコミットを受け取り、コンパイルとテストを行います。

CodeDeployとは

AWS Codedeployは、コードのデプロイを自動化するサービスです。

デプロイから本番へのリリースまでの過程をすべて自動化でき、手動での操作が不要です。また、過程が正常に行われているかをモニタリングする機能があり、デプロイ中にシステムを停止する必要もないため、ダウンタイムを抑制できます。

CodeBuildで生成されたビルド成果物を受け取り、あらかじめ設定された手法でデプロイを実施します。

作成手順

ここからは、上記の3種類を使用したCI CDパイプラインの作成手順を説明します。

流れとしては、各リソースを作成→ロック解除→プラグインの導入・設定→実行の4段階です。

手順の数が多いため、ここでは大まかな流れに絞ってご紹介します。全手順の詳細については、公式ブログをご覧ください。

リソースを作成

最初に、使用するリソースを用意します。

上記のJenkins、CodeBuild、CodeDeployの3種類に加え、成果物を保存するSimple Storage Service(S3)バケットや、Auto Scaling、セキュリティグループなどを作成します。

一見すると多いですが、これらはCloudFormationテンプレートを使用すると、まとめて作成することが可能です。

Jenkinsのロックを解除

Jenkinsのパスワードを入力し、ロックを解除します。

パスワードはJenkinsの新規サーバーに初めてアクセスすると自動生成され、それを入力すればロックが解除されます。

その後、推奨プラグインのセットが表示されます。ここについては任意ですが、すべて導入してしまって問題ありません。

プラグインを導入してプロジェクトを作成

必要となるプラグインを導入し、プロジェクトを新規作成します。

プラグインはCodeDeploy、CodeBuild、HTTP Request、File Operationsの4種類を使用します。これらを導入することで、Jenkins上で各サービスが利用可能です。上記の推奨プラグインとは別になるためご注意ください。

その後、新しくプロジェクトを作成します。プロジェクト名、ソースコードの場所指定、ビルドやデプロイの設定など、必要事項を入力していきます。項目の数が多いので、一つずつ確実に行いましょう。

すべての入力を終えてプロジェクトを作成できれば、パイプラインの準備は完了です。

パイプラインを実行

作成したパイプラインを実行します。

アプリケーションをGitHubのリポジトリにプッシュすると、Jenkinsが更新を検出し、CodeBuildによるビルドとCodeDeployによるデプロイが自動で開始されます。正常に完了すると、その旨を伝えるページが表示されますので、最後に確認しておきましょう。

AWSでJenkinsを使用する時の料金


Jenkins自体はフリーのオープンソースであり、すべて無料です。ただし、過程で使用するAWSの一部サービスは有料になります。

例えばEC2の場合、オハイオ州リージョンでm4.largeタイプのインスタンスを使用すると、1時間あたり0.10USD(約10円)の料金が発生します。

サービスによっては無料利用枠やプランが存在し、それらを利用することでコストの節約になります。

詳しくは、公式ページをご覧ください。

出典:Amazon EC2 On-Demand Pricing
参照:https://aws.amazon.com/jp/ec2/pricing/on-demand/

AWSでJenkinsを活用しよう


この記事では、AWSでJenkinsを使用する方法とメリットについてご紹介しました。

AWSでは、EC2にインストールすることで使用できます。他のAWSサービスと統合することで、可用性や耐久性、セキュリティの強化、自動デプロイなど、多方面からサポートを受けられます。

Jenkinsをもっと活用したいという方は、AWSでの使用を検討してみてはいかがでしょうか。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】