{"id":80323,"date":"2026-07-08T00:03:16","date_gmt":"2026-07-07T18:33:16","guid":{"rendered":"https:\/\/tothenewco.pro\/blog\/?p=80323"},"modified":"2026-07-17T08:06:50","modified_gmt":"2026-07-17T02:36:50","slug":"modern-frontend-deployment-using-aws-amplify-s3-and-jenkins","status":"publish","type":"post","link":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/","title":{"rendered":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins"},"content":{"rendered":"<p style=\"font-size: 1.2rem; color: #444; margin-bottom: 1.5rem;\"><strong>Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery<\/strong><\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Introduction<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">As frontend applications scale across multiple environments, maintaining frontend infrastructure using EC2 instances, NGINX, and load balancers becomes increasingly difficult and expensive to maintain.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">We created a frontend deployment architecture to make frontend hosting easier and deployments consistent:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>AWS Amplify<\/li>\n<li>Amazon S3<\/li>\n<li>Jenkins CI\/CD<\/li>\n<li>Route53<\/li>\n<li>ACM Certificates<\/li>\n<\/ul>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Problem Statement<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">Before we moved to Amplify-based hosting, we had a couple of operational issues with the frontend deployments:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Manual deployment tasks<\/li>\n<li>Nginx and EC2 Dependency<\/li>\n<li>Flush Cache Manually<\/li>\n<li>Complexity of SSL Certificates Management<\/li>\n<li>Scaling of infrastructure overhead<\/li>\n<li>Environment config mismatch<\/li>\n<\/ul>\n<p style=\"margin-bottom: 1.25rem;\">As deployments to multiple environments became more frequent, it became harder and more time consuming to keep things consistent.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">The objective was to develop a deployment architecture that could:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Automation of Front-end Deployments<\/li>\n<li>no need to host it on a server<\/li>\n<li>Easier domain and SSL management<\/li>\n<li>Handle multiple environments cleanly<\/li>\n<li>Works well with existing Jenkins based CI\/CD workflows.<\/li>\n<\/ul>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Why We Chose AWS Amplify<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">AWS Amplify is a fully managed service for hosting the frontend of modern web applications.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">Key features include:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Front end hosting administration<\/li>\n<li>Global delivery CDN Powered<\/li>\n<li>SSL certificate installation<\/li>\n<li>Deployments from branches<\/li>\n<li>Deployment History Tracking<\/li>\n<li>Support for custom domains<\/li>\n<li>Monitor Requests and Logs<\/li>\n<\/ul>\n<p style=\"margin-bottom: 1.25rem;\">One of the big <strong>benefits<\/strong> of Amplify was that <strong>CDN management<\/strong> was handled <strong>automatically internally<\/strong>. The CloudFront distribution, cache invalidation, and SSL integration are not manually provisioned or managed separately.<\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Why We Used S3-Based Deployment Instead of Git-Based Amplify<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">AWS Amplify makes it easy to deploy directly from GitHub, GitLab, BitBucket and AWS CodeCommit. But in our case, we deliberately employed S3-based deployments integrated with Jenkins pipelines.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">This approach resulted in improved control of:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Deployment to multiple environments<\/li>\n<li>Deployment of multiple accounts<\/li>\n<li>Deployment Permissions<\/li>\n<li>Custom CI \/ CD pipelines<\/li>\n<li>Managing Environment-Specific Configurations<\/li>\n<\/ul>\n<p style=\"margin-bottom: 1.25rem;\">Jenkins was already being used as the centralized CI\/CD platform so adding Amplify deployments to existing pipelines helped keep the consistency across environments.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80415\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/1-300x123.png\" alt=\"text\" width=\"770\" height=\"316\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/1-300x123.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/1-1024x419.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/1-768x315.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/1-624x256.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/1.png 1482w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80414\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/2.png\" alt=\"test\" width=\"754\" height=\"360\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2026\/07\/2.png 1816w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/2-300x143.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/2-1024x488.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/2-768x366.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/2-1536x732.png 1536w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/2-624x298.png 624w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><img decoding=\"async\" style=\"max-width: 100%; height: auto; border: 1px solid #e0e0e0; border-radius: 6px;\" src=\"YOUR_IMAGE_URL\/image13.png\" alt=\"Blog image\" \/><\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Architecture Overview<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">The process for deployment is:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Git repositories storing source code<\/li>\n<li>Jenkins Pipelines for CI\/CD Automation<\/li>\n<li>Artefact deployment to S3 buckets<\/li>\n<li>AWS Amplify for hosting the frontend<\/li>\n<li>Route53 for DNS management<\/li>\n<li>ACM for SSL certificates<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-80418\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/3-1024x683.png\" alt=\"test\" width=\"625\" height=\"417\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/3-1024x683.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/3-300x200.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/3-768x512.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/3-624x416.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/3.png 1536w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><img decoding=\"async\" style=\"max-width: 100%; height: auto; border: 1px solid #e0e0e0; border-radius: 6px;\" src=\"YOUR_IMAGE_URL\/image2.png\" alt=\"Blog image\" \/><\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Step 1: Jenkins for CI\/CD Automation<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">A Jenkins pipeline was configured to standardize deployments across environments.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">pipeline processed:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Git checkout<\/li>\n<li>getting environment config<\/li>\n<li>S3 sync for frontend build generation<\/li>\n<li>Scale deployment trigger<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-80419\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/4.png\" alt=\"test\" width=\"688\" height=\"575\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2026\/07\/4.png 688w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/4-300x251.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/4-624x522.png 624w\" sizes=\"auto, (max-width: 688px) 100vw, 688px\" \/><img decoding=\"async\" style=\"max-width: 100%; height: auto; border: 1px solid #e0e0e0; border-radius: 6px;\" src=\"YOUR_IMAGE_URL\/image3.png\" alt=\"Blog image\" \/><\/p>\n<p style=\"margin-bottom: 1.25rem;\">By automating this, we removed:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Manual deployment<\/li>\n<li>Deployment actions over SSH<\/li>\n<li>Manually clearing the cache<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80420\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/5.png\" alt=\"test\" width=\"690\" height=\"250\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2026\/07\/5.png 1220w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/5-300x109.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/5-1024x371.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/5-768x278.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/5-624x226.png 624w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><img decoding=\"async\" style=\"max-width: 100%; height: auto; border: 1px solid #e0e0e0; border-radius: 6px;\" src=\"YOUR_IMAGE_URL\/image4.png\" alt=\"Blog image\" \/><\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Step 2: Amplify Branches for Environment Management<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">Dedicated Amplify branches were created for each environment to keep deployments isolated and easier to manage.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">Some examples are:<\/p>\n<p style=\"margin-bottom: 1.25rem;\">QA UAT Production<\/p>\n<p style=\"margin-bottom: 1.25rem;\">Each Amplify branch was a separate deployment environment, which made testing, validation, and release management easier.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">This was good for:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Isolation of the environment<\/li>\n<li>Independent releases of the front-end<\/li>\n<li>Better deployment tracking<\/li>\n<li>Optimized testing workflows<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80434\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/6-2-1024x484.png\" alt=\"test\" width=\"744\" height=\"351\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/6-2-1024x484.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/6-2-300x142.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/6-2-768x363.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/6-2-1536x725.png 1536w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/6-2-624x295.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/6-2.png 1825w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Step 3: Serving Frontend Artifacts with S3<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">One of the biggest limitations we see with S3 deployments is that there is no environment variable management from the Amplify UI.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">To work around this, environment configurations were externally managed by using a single S3 configuration bucket.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">The configuration files required were pulled by Jenkins dynamically during deployment.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">For instance:<\/p>\n<pre style=\"background: #1e1e1e; color: #d4d4d4; padding: 1rem 1.25rem; border-radius: 6px; font-family: Consolas,Monaco,monospace; font-size: 0.9rem; line-height: 1.5; margin: 0 0 1.5rem;\">aws s3 cp s3:\/\/config-bucket\/uat\/docker\/next-app\/.env .env<\/pre>\n<p style=\"margin-bottom: 1.25rem;\">This improved:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Configuration consistency<\/li>\n<li>Security<\/li>\n<li>Isolation of the environment<\/li>\n<\/ul>\n<p style=\"margin-bottom: 1.25rem;\">Amplify deployments were triggered when frontend build artifacts were uploaded to Amazon S3.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">One behavior seen during Amplify deployments was that AWS Amplify would automatically change the S3 bucket policy to allow access to the deployment artifact path for the Amplify service.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">The Bucket policy allows the Amplify <code style=\"background: #f4f4f4; padding: 0.15em 0.35em; border-radius: 3px; font-family: monospace;\">specific<\/code> branch to list and read objects only from the <code style=\"background: #f4f4f4; padding: 0.15em 0.35em; border-radius: 3px; font-family: monospace;\">specific<\/code> prefix in the bucket. It also enforces secure HTTPS-only access to the bucket.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">This reduced the need to manually set up additional S3 access permissions for Amplify deployments.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">Using S3 also provided:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Using S3 also provided:<\/li>\n<li>Highly durable storage<\/li>\n<li>Automatic scalability<\/li>\n<li>Better cost optimization<\/li>\n<li>High uptime<\/li>\n<\/ul>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Step 4: Deploying with AWS Amplify and managing CDN<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">We set up custom domains using Route53 instead of the Amplify generated domains.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">The setup was as follows:<\/p>\n<p style=\"margin-bottom: 1.25rem;\">.com domain names .net domain names<\/p>\n<p style=\"margin-bottom: 1.25rem;\">Subdomains specific to the environment<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80423\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/7-300x133.png\" alt=\"text\" width=\"764\" height=\"339\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/7-300x133.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/7-1024x453.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/7-768x340.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/7-624x276.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/7.png 1521w\" sizes=\"auto, (max-width: 764px) 100vw, 764px\" \/><\/p>\n<p style=\"text-align: center; margin: 2rem 0;\"><img decoding=\"async\" style=\"max-width: 100%; height: auto; border: 1px solid #e0e0e0; border-radius: 6px;\" src=\"YOUR_IMAGE_URL\/image7.png\" alt=\"Blog image\" \/>When setting up custom domains, Amplify will automatically create the DNS entries for domain validation and CDN routing. These needed to be added to Route53.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80424\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/8-300x150.png\" alt=\"text\" width=\"694\" height=\"347\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/8-300x150.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/8-768x385.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/8-624x313.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/8.png 1024w\" sizes=\"auto, (max-width: 694px) 100vw, 694px\" \/><\/p>\n<p style=\"margin-bottom: 1.25rem;\">We can use both for integrating SSL:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Amplify-managed certificates<\/li>\n<li>Custom ACM certs<\/li>\n<\/ul>\n<p style=\"margin-bottom: 1.25rem;\">Now one thing:<\/p>\n<p style=\"margin-bottom: 1.25rem;\">Amplify custom domains (ACM certificates) need to be in us-east-1 because Amplify uses CloudFront distributions internally.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">If certs are created in a different region, domain validation may still be in progress.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80425\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/9-300x168.png\" alt=\"txt\" width=\"751\" height=\"421\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/9-300x168.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/9-1024x573.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/9-768x430.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/9-624x349.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/9.png 1513w\" sizes=\"auto, (max-width: 751px) 100vw, 751px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80426\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/10-300x169.png\" alt=\"tech\" width=\"754\" height=\"425\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/10-300x169.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/10-1024x576.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/10-768x432.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/10-1536x864.png 1536w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/10-624x351.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/10.png 1672w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Security Headers<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">AWS Amplify also supports custom HTTP headers for additional frontend security and browser protection.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">Headers may be set either:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Directly from the Amplify UI<\/li>\n<li>Using <code style=\"background: #f4f4f4; padding: 0.15em 0.35em; border-radius: 3px; font-family: monospace;\">customHttp.yml file<\/code><\/li>\n<\/ul>\n<p style=\"margin-bottom: 1.25rem;\">Example configuration:<\/p>\n<pre style=\"background: #1e1e1e; color: #d4d4d4; padding: 1rem 1.25rem; border-radius: 6px; font-family: Consolas,Monaco,monospace; font-size: 0.9rem; line-height: 1.5; margin: 0 0 1.5rem;\">customHeaders:\r\n- pattern: \"**\"\r\nheaders:\r\n- key: Strict-Transport-Security\r\nvalue: max-age=31536000; includeSubDomains\r\n- key: X-Frame-Options\r\nvalue: SAMEORIGIN\r\n- key: X-Content-Type-Options\r\nvalue: nosniff<\/pre>\n<p style=\"text-align: center; margin: 2rem 0;\"><img decoding=\"async\" style=\"max-width: 100%; height: auto; border: 1px solid #e0e0e0; border-radius: 6px;\" src=\"YOUR_IMAGE_URL\/image5.png\" alt=\"Blog image\" \/><\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Monitoring + Logs<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">AWS Amplify also gave us out-of-the-box monitoring capabilities that included:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Requests monitoring<\/li>\n<li>Data transfer monitoring<\/li>\n<li>4xx and 5xx error tracking<\/li>\n<li>Domain-wise access logs<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80428\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/12-300x176.png\" alt=\"txt\" width=\"694\" height=\"407\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/12-300x176.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/12-1024x602.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/12-768x452.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/12-624x367.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/12.png 1527w\" sizes=\"auto, (max-width: 694px) 100vw, 694px\" \/><\/p>\n<p style=\"margin-bottom: 1.25rem;\">These logs were helpful for:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>These logs were useful for:<\/li>\n<li>Troubleshooting Tips<\/li>\n<li>Traffic analysis<\/li>\n<li>Security Verification<\/li>\n<li>Debugging on the CDN level<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80430\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/13-300x176.png\" alt=\"text\" width=\"789\" height=\"463\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/13-300x176.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/13-1024x602.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/13-768x452.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/13-624x367.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/13.png 1527w\" sizes=\"auto, (max-width: 789px) 100vw, 789px\" \/><\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Challenges and Limitations<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">While implementing Amplify hosting and integrating it with a custom domain, we faced several practical issues.<\/p>\n<h3 style=\"font-size: 1.35rem; margin: 1.5rem 0 0.75rem;\"><strong>Route53 DNS Propagation Delays<\/strong><\/h3>\n<p style=\"margin-bottom: 1.25rem;\">Incorrect DNS entries may continue propagating temporarily even after correction.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">To avoid unnecessary issues:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>DNS records should be validated carefully<\/li>\n<li>Multiple rapid retries should be avoided<\/li>\n<li>Domain configurations should be performed gradually<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-80431\" src=\"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/14-300x137.png\" alt=\"text\" width=\"818\" height=\"372\" srcset=\"https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/14-300x137.png 300w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/14-1024x466.png 1024w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/14-768x350.png 768w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/14-1536x699.png 1536w, https:\/\/tothenewco.pro\/blog\/wp-content\/uploads\/2026\/07\/14-624x284.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/07\/14.png 1859w\" sizes=\"auto, (max-width: 818px) 100vw, 818px\" \/><img decoding=\"async\" style=\"max-width: 100%; height: auto; border: 1px solid #e0e0e0; border-radius: 6px;\" src=\"YOUR_IMAGE_URL\/image9.png\" alt=\"Blog image\" \/><\/p>\n<h3 style=\"font-size: 1.35rem; margin: 1.5rem 0 0.75rem;\"><strong>ACM Certificate Region Restriction<\/strong><\/h3>\n<p style=\"margin-bottom: 1.25rem;\">A common issue occurred when ACM certificates were created outside <code style=\"background: #f4f4f4; padding: 0.15em 0.35em; border-radius: 3px; font-family: monospace;\">us-east-1<\/code>.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">Because Amplify internally uses CloudFront:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Certificates must exist in <code style=\"background: #f4f4f4; padding: 0.15em 0.35em; border-radius: 3px; font-family: monospace;\">us-east-1<\/code><\/li>\n<li>Otherwise SSL validation may remain pending<\/li>\n<\/ul>\n<h3 style=\"font-size: 1.35rem; margin: 1.5rem 0 0.75rem;\"><strong>Limitations of S3-Based Deployments<\/strong><\/h3>\n<p style=\"margin-bottom: 1.25rem;\">With deployment workflows built around S3:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Amplify UI does not support native environment variable management<\/li>\n<li>Configuration management must be done externally<\/li>\n<\/ul>\n<p style=\"margin-bottom: 1.25rem;\">This required centralized CI\/CD-driven configuration management using Jenkins and S3.<\/p>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Alternative Approaches<\/strong><\/h2>\n<table style=\"width: 100%; border-collapse: collapse; margin: 1.5rem 0 2rem; font-size: 0.95rem;\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; text-align: left; background: #f7f7f7; font-weight: 600;\">Approach<\/th>\n<th style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; text-align: left; background: #f7f7f7; font-weight: 600;\">Advantages<\/th>\n<th style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; text-align: left; background: #f7f7f7; font-weight: 600;\">Challenges<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem;\">EC2 + NGINX<\/td>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem;\">Full server control<\/td>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem;\">High maintenance<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; background: #fafafa;\">Direct S3 Static Hosting<\/td>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; background: #fafafa;\">Cost effective<\/td>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; background: #fafafa;\">Manual CDN setup<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem;\">ECS\/Kubernetes Hosting<\/td>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem;\">Useful for SSR workloads<\/td>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem;\">Higher infrastructure complexity<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; background: #fafafa;\">AWS Amplify<\/td>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; background: #fafafa;\">Managed frontend hosting<\/td>\n<td style=\"border: 1px solid #ddd; padding: 0.75rem 1rem; background: #fafafa;\">Limited native env management for S3 deployments<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"font-size: 1.75rem; margin: 2rem 0 1rem; padding-bottom: 0.35rem; border-bottom: 2px solid #e8e8e8;\"><strong>Conclusion<\/strong><\/h2>\n<p style=\"margin-bottom: 1.25rem;\">AWS Amplify together with S3 and Jenkins delivered a scalable, lightweight and operationally efficient architecture for frontend deployment.<\/p>\n<p style=\"margin-bottom: 1.25rem;\">This is better than traditional server-based hosting because:<\/p>\n<ul style=\"margin: 0 0 1.25rem 1.5rem;\">\n<li>Eliminated infrastructure management overhead<\/li>\n<li>Simple to implement<\/li>\n<li>More scalable<\/li>\n<li>Reduced Operating Expenses<\/li>\n<li>Greater reliability of deployment<\/li>\n<\/ul>\n<p style=\"margin-bottom: 1.25rem;\">For organizations that already have centralized CI\/CD pipelines in place, the S3-based Amplify deployment model offers a flexible and production-ready solution for managing modern frontend applications across multiple environments and domains.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications [&hellip;]<\/p>\n","protected":false},"author":2297,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":118,"footnotes":""},"categories":[2348],"tags":[8667,248,1892,3259,1682],"class_list":["post-80323","post","type-post","status-publish","format-standard","hentry","category-devops-technology","tag-amplify","tag-aws","tag-devops","tag-frontend","tag-jenkins"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Aditi Thakur\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#article\",\"name\":\"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog\",\"headline\":\"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/aditi-thakur\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/wp-ttn-blog\\\/uploads\\\/2026\\\/07\\\/1-300x123.png\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#articleImage\"},\"datePublished\":\"2026-07-08T00:03:16+05:30\",\"dateModified\":\"2026-07-17T08:06:50+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#webpage\"},\"articleSection\":\"DevOps, amplify, aws, devops, frontend, Jenkins\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/devops-technology\\\/#listItem\",\"name\":\"DevOps\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/devops-technology\\\/#listItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/devops-technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#listItem\",\"name\":\"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#listItem\",\"position\":3,\"name\":\"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/devops-technology\\\/#listItem\",\"name\":\"DevOps\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/aditi-thakur\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/aditi-thakur\\\/\",\"name\":\"Aditi Thakur\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#authorImage\",\"url\":\"https:\\\/\\\/newersworld-sf-static.tothenew.net\\\/prod\\\/profilePicFolder\\\/c43674d8-5ce6-4134-a1ae-ca1adeadb420_7412-Aditi-Thakur-PROFILEPICTURE.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Aditi Thakur\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/\",\"name\":\"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog\",\"description\":\"Building a scalable frontend deployment pipeline with automated CI\\\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/aditi-thakur\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/aditi-thakur\\\/#author\"},\"datePublished\":\"2026-07-08T00:03:16+05:30\",\"dateModified\":\"2026-07-17T08:06:50+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog","description":"Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications","canonical_url":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#article","name":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog","headline":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins","author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/aditi-thakur\/#author"},"publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/tothenewco.pro\/blog\/wp-ttn-blog\/uploads\/2026\/07\/1-300x123.png","@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#articleImage"},"datePublished":"2026-07-08T00:03:16+05:30","dateModified":"2026-07-17T08:06:50+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#webpage"},"isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#webpage"},"articleSection":"DevOps, amplify, aws, devops, frontend, Jenkins"},{"@type":"BreadcrumbList","@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/tothenewco.pro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/devops-technology\/#listItem","name":"DevOps"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/devops-technology\/#listItem","position":2,"name":"DevOps","item":"https:\/\/tothenewco.pro\/blog\/category\/devops-technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#listItem","name":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins"},"previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#listItem","position":3,"name":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins","previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/devops-technology\/#listItem","name":"DevOps"}}]},{"@type":"Organization","@id":"https:\/\/tothenewco.pro\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/tothenewco.pro\/blog\/"},{"@type":"Person","@id":"https:\/\/tothenewco.pro\/blog\/author\/aditi-thakur\/#author","url":"https:\/\/tothenewco.pro\/blog\/author\/aditi-thakur\/","name":"Aditi Thakur","image":{"@type":"ImageObject","@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#authorImage","url":"https:\/\/newersworld-sf-static.tothenew.net\/prod\/profilePicFolder\/c43674d8-5ce6-4134-a1ae-ca1adeadb420_7412-Aditi-Thakur-PROFILEPICTURE.jpeg","width":96,"height":96,"caption":"Aditi Thakur"}},{"@type":"WebPage","@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#webpage","url":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/","name":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog","description":"Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/#breadcrumblist"},"author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/aditi-thakur\/#author"},"creator":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/aditi-thakur\/#author"},"datePublished":"2026-07-08T00:03:16+05:30","dateModified":"2026-07-17T08:06:50+05:30"},{"@type":"WebSite","@id":"https:\/\/tothenewco.pro\/blog\/#website","url":"https:\/\/tothenewco.pro\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog","og:description":"Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications","og:url":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/","og:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins | TO THE NEW Blog","twitter:description":"Building a scalable frontend deployment pipeline with automated CI\/CD, custom domains, and global delivery Introduction Frontend applications of today need fast deployments, scalability, global reach, and low operational overhead. But plenty of organizations still use traditional server-based hosting where deployments require manual configuration, SSH access, server maintenance, SSL handling, and cache management. As frontend applications","twitter:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"80323","title":null,"description":null,"keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"created":"2026-06-26 06:35:59","updated":"2026-07-17 02:36:52","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\/category\/devops-technology\/\" title=\"DevOps\">DevOps<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tModern Frontend Deployment Using AWS Amplify, S3, and Jenkins\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/tothenewco.pro\/blog"},{"label":"DevOps","link":"https:\/\/tothenewco.pro\/blog\/category\/devops-technology\/"},{"label":"Modern Frontend Deployment Using AWS Amplify, S3, and Jenkins","link":"https:\/\/tothenewco.pro\/blog\/modern-frontend-deployment-using-aws-amplify-s3-and-jenkins\/"}],"_links":{"self":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/80323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/users\/2297"}],"replies":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/comments?post=80323"}],"version-history":[{"count":17,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/80323\/revisions"}],"predecessor-version":[{"id":80713,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/80323\/revisions\/80713"}],"wp:attachment":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/media?parent=80323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/categories?post=80323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/tags?post=80323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}