Which solution will meet these requirements with the MOST operational efficiency?
Create the AMIs with EC2 Image Builder. Create an AWS CodePipeline pipeline to share the AMIs across all AWS accounts.
Deploy Jenkins on an EC2 instance. Create jobs to create and share the AMIs across all AWS accounts.
Create and share the AMIs with EC2 Image Builder. Use AWS Service Catalog to configure a product that provides access to the AMIs across all AWS accounts.
Create the AMIs with EC2 Image Builder. Create an AWS Lambda function to share the AMIs across all AWS accounts.
Explanations:
While EC2 Image Builder can create AMIs and AWS CodePipeline can automate tasks, managing the sharing of AMIs across multiple accounts through CodePipeline may introduce unnecessary complexity and operational overhead. CodePipeline is more suited for CI/CD processes rather than AMI sharing.
Deploying Jenkins for AMI creation and sharing adds unnecessary complexity and operational overhead. Jenkins requires management and maintenance, which detracts from efficiency. Additionally, it does not leverage AWS’s native tools designed for AMI management.
Using EC2 Image Builder to create the AMIs ensures they are custom and hardened. AWS Service Catalog allows for centralized management of products (in this case, AMIs), enabling access across multiple AWS accounts efficiently, thereby ensuring operational efficiency.
While creating AMIs with EC2 Image Builder is a good approach, using an AWS Lambda function to share AMIs could lead to complexities in permission management and operational overhead. Lambda functions are typically for event-driven tasks rather than for managing resources like AMIs across multiple accounts.