Jenkins CI Pipeline / Cloud Server

Software Engineer
Game Designer
XR DEveloper
Software Engineer
Game Designer
XR DEveloper
Software Engineer
Game Designer
XR DEveloper
Software Engineer
Game Designer
XR DEveloper
Software Engineer
Game Designer
XR DEveloper
Software Engineer
Game Designer
XR DEveloper
Status: Deployed Web Development & Asset Delivery | Duration: 2 years
Project description

Cloud Migration of Jenkins Server. Transferred local Jenkins Server setup handling iOS, Asset Delivery, Android, and Web Build systems to a Jenkins Server on AWS EC2.

Project Highlights

Step-by-Step Guide: Migrating a Local Jenkins Server to AWS

  • 1. Pre-Migration Preparation
    • Backup Existing Jenkins: Ensure you have a full backup of your local Jenkins server, including jobs, plugins, and configurations.
    • Assess Server Requirements: Identify the resources (CPU, memory, storage) your Jenkins instance will need in the cloud based on current usage.
    • Security Considerations: Plan your security setup, including SSH keys, firewalls, and IAM roles.
  • 2. Setting Up AWS EC2 Instance
    • Launch EC2 Instance: Go to the AWS Management Console and launch an EC2 instance. Choose an instance type that matches your resource needs (e.g., t3.medium for moderate workloads).
    • Choose an AMI: Select a Linux-based AMI (e.g., Amazon Linux 2 or Ubuntu) for your Jenkins server.
    • Configure Security Groups: Allow SSH (port 22) for admin access and HTTP/HTTPS (ports 80/443) for Jenkins access.
    • Allocate Elastic IP: Assign an Elastic IP to ensure your Jenkins server retains a consistent public IP address.
  • 3. Installing Jenkins on AWS
    • SSH into EC2 Instance: Use your SSH key to access the instance.
    • Install Java: Jenkins requires Java. Install it using sudo yum install java-1.8.0-openjdk (for Amazon Linux) or sudo apt-get install openjdk-8-jdk (for Ubuntu).
    • Add Jenkins Repository: Add the Jenkins repository and import the GPG key.
    • Install Jenkins: Install Jenkins with sudo yum install jenkins or sudo apt-get install jenkins.
    • Start Jenkins: Start the Jenkins service and ensure it starts on boot.
  • 4. Configuring Jenkins on AWS
    • Access Jenkins Web Interface: Open a web browser and navigate to http://your-elastic-ip:8080 to access Jenkins.
    • Unlock Jenkins: Use the initial admin password located at /var/lib/jenkins/secrets/initialAdminPassword to unlock Jenkins.
    • Install Plugins: Install necessary plugins, particularly those required for your CI/CD pipeline, such as Git, Maven, Pipeline, and AWS-related plugins.
    • Restore Backup: Use the backup from your local Jenkins server to restore jobs, plugins, and configurations.
  • 5. Integrating AWS Services
    • S3 Integration: Use the S3 plugin to store Jenkins artifacts and logs in an S3 bucket.
    • IAM Role Configuration: Assign an IAM role to the EC2 instance that allows it to interact with other AWS services securely.
    • Security Enhancements: Set up an SSL certificate and configure Jenkins to use HTTPS. Consider using AWS Certificate Manager (ACM) for managing SSL/TLS certificates.
  • 6. Testing and Optimization
    • Test Build Jobs: Run several jobs to ensure that the migration was successful and that Jenkins is fully operational.
    • Monitor Performance: Use AWS CloudWatch to monitor the performance and resource utilization of your Jenkins instance. Scale the instance type if necessary.
    • Optimize Costs: Consider using Spot Instances for Jenkins agents to reduce costs, or implement an auto-scaling group for dynamic scaling.
  • 7. Post-Migration Maintenance
    • Regular Backups: Implement a regular backup strategy using AWS services such as S3 and EBS snapshots.
    • Security Audits: Periodically audit your security groups, IAM roles, and Jenkins configurations to ensure they meet best practices.
    • Continuous Monitoring: Set up alerts and notifications through AWS CloudWatch to respond quickly to any issues.