<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: santhoshnimmala</title>
    <description>The latest articles on DEV Community by santhoshnimmala (@santhoshnimmala).</description>
    <link>https://dev.to/santhoshnimmala</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F717038%2F666c77e2-0a4a-4108-b477-1239af389687.jpeg</url>
      <title>DEV Community: santhoshnimmala</title>
      <link>https://dev.to/santhoshnimmala</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/santhoshnimmala"/>
    <language>en</language>
    <item>
      <title>Building your own chatbot by using AWS bedrock service, How this kind of tool can help Banks?</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Sun, 01 Oct 2023 23:00:59 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/building-your-own-chatbot-by-using-aws-bedrock-service-how-this-kind-of-tool-can-help-banks-4mn9</link>
      <guid>https://dev.to/santhoshnimmala/building-your-own-chatbot-by-using-aws-bedrock-service-how-this-kind-of-tool-can-help-banks-4mn9</guid>
      <description>&lt;p&gt;Amazon Bedrock, which was just announced, offers a convenient serverless API that lets you choose from a variety of foundation models to match your specific needs without the need for a convoluted setup and infrastructure. The creation of a chatbot utilizing the AWS Bedrock service will be covered in this post.&lt;/p&gt;

&lt;p&gt;Amazon Bedrock is a fully managed service, which is accessible through an API. With Bedrock, you may pick the model that's ideal for your use case from a range of options.&lt;/p&gt;

&lt;p&gt;in this article let's see how to create a chatbot by using Chatbot using Claude, Claude is a in Bedrock service apart from chatbots we can relay on bedrock for various other app developments in AI space like &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Small text summarization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Long text summarization &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simple questions and answers &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Answering questions with Retrieval Augmented Generation(RAG)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Chatbot by using Claude&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Chatbot using Titan&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Image generation by Stable diffusion &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code generation for (SQL, C++..etc)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Entity Extraction with Claude v2&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Image source&lt;/em&gt;: aws&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1jj511frmixc4thsm0fj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1jj511frmixc4thsm0fj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use conversational interfaces, such as chatbots and virtual assistants, to improve the user experience for your consumers. To comprehend and reply to customer enquiries, chatbots use machine learning and natural language processing (NLP) algorithms. Customer service, sales, and online shopping are just a few of the situations where chatbots can be utilised to respond to people quickly and effectively. They can be accessed through a variety of channels, including websites, social networking sites, and messaging services.&lt;/p&gt;

&lt;h4&gt;
  
  
  chatbot using Amazon bedrock
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;image source :&lt;/em&gt; aws&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3ulwubiuvzyunswm4wo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3ulwubiuvzyunswm4wo.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chatbots powered by artificial intelligence (AI) have become a useful tool for banks, providing a range of benefits to improve customer service, streamline operations, and support data-driven decision-making. Some of the ways AI chatbots can help financial organisations are listed below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Improved customer engagement and support:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Round-the-Clock Accessibility: AI chatbots guarantee constant customer care, enabling users to get help whenever they need it, even beyond regular business hours.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rapid Responses: Chatbots respond immediately to frequent client questions, promptly addressing enquiries regarding account information, transaction history, and standard banking chores.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Effective Query Handling: AI-powered chatbots are skilled at comprehending and responding to complicated consumer requests, including those about account balances, transaction data, loan inquiries, and more.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Banking Services That Are Personalised:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;client profiling: To generate individualised banking experiences, AI models analyse client data and behaviours. Based on unique financial goals and histories, chatbots provide specialised &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;suggestions for and services related to financial products.&lt;br&gt;
Financial Advice: AI chatbots can help with budgeting, offer investment recommendations, and provide essential financial planning advice, enabling users to make wise financial decisions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Fraud prevention and detection that works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
AI models that analyse historical data and transaction trends can help identify anomalous or suspicious transactions. When suspected fraudulent activity are found, they swiftly issue alerts to both clients and bank officials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Processing loans quickly:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Automated Application Handling: By assisting consumers with application submission and document gathering, chatbots streamline the loan application process. They speed up application reviews by checking facts and figuring out eligibility.
Analysis and Reporting of Data:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Actionable Insights:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To identify trends, dangers, and opportunities, AI models thoroughly examine financial data. Making informed decisions about investments, risk assessment, and compliance is made easier with the help of this data-driven strategy.&lt;/p&gt;

&lt;p&gt;not limited to the above use cases, we can apply AI in many other places in the banking industry.&lt;/p&gt;

&lt;p&gt;HANDS-ON :- &lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Subscribe to Models in the Amazon Bedrock Console
&lt;/h4&gt;

&lt;p&gt;go to the AWS console and request for Foundation models you want to use like below.&lt;/p&gt;

&lt;p&gt;once you got access to models you can start your work on below python scripts .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67stdthb5hi5dqbqs9hy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67stdthb5hi5dqbqs9hy.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step2: Cloning git repo and executing python code
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git clone https://github.com/santhoshnimmala/amazon-bedrock-flask.git&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install Flask boto3 langchain&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd amazon-bedrock-flask&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python Fast_Gen_AI.py&lt;/code&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step3: you can interact with Chatbot on localhost:8000 like below
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgddwzxyw0w1lehctqh9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgddwzxyw0w1lehctqh9.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you ask your questions like the below example.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9om0wzvq22k9w7vr8t7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9om0wzvq22k9w7vr8t7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In conclusion, the banking sector is prepared to undergo a considerable transition as a result of the incorporation of AI-driven chatbots. Financial institutions can gain a variety of advantages from these intelligent chatbots, including improved customer service and engagement, operational efficiency, and the ability to make data-driven decisions.&lt;/p&gt;

&lt;p&gt;AI chatbots deliver continuous, round-the-clock customer support, guaranteeing that customers may get help whenever they need it. They are excellent at answering common concerns quickly and are also able to deal with difficult inquiries from clients. Additionally, they enable users to make wise financial decisions by providing personalised banking experiences, including targeted product suggestions and financial assistance.&lt;/p&gt;

&lt;p&gt;Beyond providing customer care, AI chatbots are essential for preventing and detecting fraud by seeing questionable activity and issuing timely alerts. They make the loan simpler.&lt;/p&gt;

</description>
      <category>bedrock</category>
      <category>aws</category>
      <category>ai</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Migrating Banks Good old Monolith Architecture to Container-Based Microservices</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Sun, 24 Sep 2023 07:44:40 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/migrating-banks-good-old-monolith-architecture-to-container-based-microservices-4p2n</link>
      <guid>https://dev.to/santhoshnimmala/migrating-banks-good-old-monolith-architecture-to-container-based-microservices-4p2n</guid>
      <description>&lt;p&gt;Hey, my name is Santhosh Nimmala, and I work as a Principal Consultant at Luxoft, leading Cloud and DevOps in the TRM space. In this series of articles, I will be discussing about various solutions for FSI usecases. In this article, we will delve into Migrating Banks Good old Monolith Architecture to Container-Based Microservices&lt;/p&gt;

&lt;p&gt;Technology has a long-term relevance to business processes, customer delivery and maintaining data security in the banking industry. Many banks have been using "monolith" architectures for their applications for years. However, there seems to be a big shift in adopting "microservice" to modernize banking operations Let's take a look at what these terms mean and why the shift to microservices is becoming more popular.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monolithic Design
&lt;/h2&gt;

&lt;p&gt;Monolithic architecture is a Prefred approach to software development where the entire application is packaged as one sophisticated cohesive unit In banking, the term "tight integration" refers to integrating all components and components of a banking application into a single code base&lt;/p&gt;

&lt;h4&gt;
  
  
  Why did Banks adopt Microservices?
&lt;/h4&gt;

&lt;p&gt;Banks uses Monoliths over other for certain reasons :&lt;/p&gt;

&lt;p&gt;1) Stability:  Monoliths are well known for stability, for example, if you make modifications in one source code, this change may not affect other components often &lt;/p&gt;

&lt;p&gt;2) Simplicity: All functionalities will be codified in the single code base, it would be easy to maintain a single repository rather than multiple.&lt;/p&gt;

&lt;p&gt;3) Security: A centralized security paradigm can be provided by monoliths.&lt;/p&gt;

&lt;h4&gt;
  
  
  Monolithic Advantages:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Simplicity:&lt;br&gt;
It is simpler to build and maintain because there is only one codebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stability:&lt;br&gt;
Generally speaking, it is stable and less prone to issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security:&lt;br&gt;
It might be easier to manage a centralised security architecture.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Monolithic disadvantages include:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Scalability:&lt;br&gt;
Growth is constrained by the difficulty of horizontal scaling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexibility:&lt;br&gt;
Less able to adjust to shifting demands or technologies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Development speed:&lt;br&gt;
Changes require cooperation and can take a while to implement.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--421G8jta--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/el1aioigs25b8a9eb6wi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--421G8jta--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/el1aioigs25b8a9eb6wi.png" alt="Image description" width="592" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Microservices architecture
&lt;/h2&gt;

&lt;p&gt;Contrarily, a microservices architecture is a technique for segmenting an application into smaller, loosely coupled services, each of which is in charge of a certain business functionality. This implies that account administration, transactions, and customer support are created as separate, independent microservices in the context of banking.&lt;/p&gt;

&lt;h4&gt;
  
  
  What motivates banks to use microservices?
&lt;/h4&gt;

&lt;p&gt;Modern banking must quickly adapt to changing customer needs and developing technologies, among other dynamic issues. In this situation, microservices provide a number of benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Flexibility:&lt;br&gt;
Banks can swiftly adjust to new technologies and shifting customer needs thanks to microservices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability:&lt;br&gt;
Since each microservice may be scaled independently, resources can be allocated more effectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Speed:&lt;br&gt;
Development teams can work simultaneously on many microservices, accelerating the creation and updating of new features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fault Isolation:&lt;br&gt;
Issues in one microservice do not always affect others, increasing system resilience.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Benefits of Microservices:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Flexibility:&lt;br&gt;
Makes it easier to adjust to changes and incorporate new technology.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability&lt;br&gt;
efficient resources scaling for increased performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Speed:&lt;br&gt;
Individual services can be developed and deployed more quickly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fault Isolation: &lt;br&gt;
Issues that are isolated have a lower impact on the overall system.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Microservices also have the following disadvantages:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Complexity: &lt;br&gt;
Managing several services might be difficult.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Coordination:&lt;br&gt;
Effective growth necessitates collaboration across several teams.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Increased overhead:&lt;br&gt;
Microservices may necessitate additional infrastructure and operational costs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;let's see if that is the case how to Migrate and what services in AWS can help you to host a microservice-based application &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;This solution modernizes the bank's core systems. It uses a microservices architecture to rebuild previous applications, and it orchestrates containerized applications by using Amazon Elastic Kubernetes Service (Amazon EKS). Amazon DynamoDB tables are used as the persistence layer to store data for the different applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;customers can access bank applications using mobiles, and desktops..etc &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The bank applications are made available to customers through an internet gateway. An internet gateway is a horizontally scaled, redundant, and highly available virtual private cloud (VPC) component that allows communication between your VPC and the internet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When a Kubernetes ingress is created, providing HTTP and HTTPS routes from outside a cluster to services within the cluster, an Application Load Balancer is also provisioned. Traffic routing is controlled by rules defined on the Ingress resource.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Application Load Balancer distributes incoming traffic at the application layer (layer 7) across multiple targets, such as applications running on a Kubernetes cluster. After the load balancer receives a request, it evaluates the listener rules and directs traffic to the target microservices-based applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With a microservices architecture, an application is built as independent components that run each&lt;br&gt;
application process as a service. Services are built for business capabilities, and each service performs a single function.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developers may deploy their programmes and package them effectively using containers. Containers are small and portable software environments that enable applications to scale and run anywhere.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Container orchestration is carried out using Amazon Elastic Kubernetes Service (Amazon EKS), which aids in maintaining containers in the proper state. Service-level agreements (SLAs) are also maintained with the use of orchestration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kubernetes may be run on AWS and in on-premises data centers with the support of Amazon EKS, a fully managed solution. The Kubernetes control plane nodes in the cloud that are in charge of scheduling containers, managing application availability, storing cluster data, and other crucial functions are automatically managed by Amazon EKS for availability and scalability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The application code, libraries, and any other dependencies are packaged by developers into a container image. The Amazon Elastic Container Registry (Amazon ECR) repository is where the container image is pushed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A safe, scalable, and dependable container image registry service is Amazon ECR. This technique deploys the containerized application on the Amazon EKS cluster using a container image.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Amazon EKS helps pull and then run the container image, stored in Amazon ECR, to deploy applications in the Amazon EKS cluster. Microservices-based applications reside in containers and are managed by Amazon EKS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Application Load Balancer ingress service uses path-based routing to direct customer requests to different applications. For example, if the URL path includes /deposit at the end, requests are routed to the deposit application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Persistent storage for the apps in this approach is provided by Amazon DynamoDB tables. A serverless, fully managed, key-value NoSQL database called DynamoDB is made to support high-performance software at any size.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3BvQqGG1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/059hyz2uixgwadoxd5b3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3BvQqGG1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/059hyz2uixgwadoxd5b3.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While microservices are highly scalable, scalable, and quick to build, it is important to understand that they are not a universally effective answer for all applications It is important to choose a microservice framework after carefully reviewing business requirements only. For some applications, especially those with straightforward or limited access, a monolithic or hybrid architecture may be preferable to a microservice architecture Consider application size, complexity, scalability needs and organizational scalability and processing capabilities when determining whether microservices are a good fit Conclusion Microservices are a powerful tool, but their How well they align with a specific need will determine how effective they are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion :
&lt;/h2&gt;

&lt;p&gt;Despite the historical success of unified solutions for banks, the drive to microservices stems from the need to be faster, more flexible and adaptable to changing market dynamics and customers in the face of expectations. Given the rapid advances in technology, banks need to scrutinize the architecture that best aligns with their long-term goals and vision for customers.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>microservices</category>
      <category>kubernetes</category>
      <category>container</category>
    </item>
    <item>
      <title>Implementing Hybrid cloud Retail trading Solution for Clearning house with AWS Cloud</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Sun, 10 Sep 2023 22:48:42 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/implementing-hybrid-cloud-retail-trading-solution-for-clearning-house-with-aws-cloud-2lf8</link>
      <guid>https://dev.to/santhoshnimmala/implementing-hybrid-cloud-retail-trading-solution-for-clearning-house-with-aws-cloud-2lf8</guid>
      <description>&lt;p&gt;Hey, my name is Santhosh Nimmala, and I work as a Principal Consultant at Luxoft, leading Cloud and DevOps in the TRM space. In this series of articles, I will be discussing about various solutions for FSI usecases. In this article, we will delve into Implementing Hybrid cloud Retail trading Solution for Clearning house with AWS Cloud, we have implememted similar soultion at luxoft .&lt;/p&gt;

&lt;p&gt;stock trading infrastructure for a clearning house is quickely outgrowing data center (on-prem) , if we reserver new capicity of infra on-prem it will take time and more costly compared to public clouds , our bets current option is to keep the oder managment application on-premises and move the Trading applications, databases and stock exchange client to AWS while continuing to communicate with on-premises infra .&lt;/p&gt;

&lt;p&gt;This is a hybrid solution with Order managemnt systems on-prem and Trading systems and DB's on cloud .&lt;/p&gt;

&lt;p&gt;AWS Managed Streaming for Apache Kafka (MSK) and Amazon DynamoDB can be used to design a solution to transfer messages from an order booking system to a clearing house trading application. Here is a high-level design of this approach, along with several benefits:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Architecture :&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7MGf3ptf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0bmimcpmgsihayemm6jp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7MGf3ptf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0bmimcpmgsihayemm6jp.png" alt="Image description" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Order Managment System&lt;/strong&gt;: As customer's like Bank's Trade stocks and other instruments like thousand's of trades per minute will be submitted to order managment system .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS MSK&lt;/strong&gt;: Amazon Managed Streaming for Apache Kafka (Amazon MSK) is a fully managed service that enables you to build and run applications that use Apache Kafka to process streaming data. Amazon MSK provides the control-plane operations, such as those for creating, updating, and deleting clusters. It lets you use Apache Kafka data-plane operations, such as those for producing and consuming data.&lt;/p&gt;

&lt;p&gt;Create an AWS MSK cluster to serve as a message broker between the Order Booking System and the Clearing House Trading Application using AWS MSK (Managed Streaming for Apache Kafka). For your message streaming needs, MSK offers scalability, high availability, and durability.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To represent various message or event kinds, create Kafka topics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Setup the Order Booking System's producers to publish messages to the appropriate Kafka topics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set up consumers in the Clearing House Trading Application to process messages and subscribe to Kafka topics.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Clearing House Trading Application&lt;/strong&gt;: this is where messages were consumed and processed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon DynamoDB&lt;/strong&gt;: Use DynamoDB to store processed data or important metadata as a data store. You may keep track of order status, trade history, or other pertinent data in DynamoDB, for instance.&lt;/p&gt;

&lt;p&gt;You can keep pertinent information in DynamoDB tables for when the Clearing House Trading Application consumes and processes messages.&lt;br&gt;
To automate data processing and communication with DynamoDB, take into account using AWS Lambda functions or other elements.&lt;/p&gt;

&lt;p&gt;To deliver these streams to the stock exchange application, use NLB. From there, you can interact with various interfaces .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trading application with ASG&lt;/strong&gt;: If your Clearing House Trading Application needs to be scalable, you can install it in an auto-scaling group to make sure it can effectively handle a range of workloads.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advantages of this solution :
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: Because AWS MSK and DynamoDB may grow to handle massive amounts of messages and data, your system will be able to withstand heavier loads during the busiest trading hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High Availability&lt;/strong&gt;: AWS MSK offers high availability multi-Availability Zone (AZ) deployments, ensuring that your message broker is error-resistant. DynamoDB also provides durability and availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-time Messaging&lt;/strong&gt; Instant Messaging Thanks to AWS MSK's high availability multi-Availability Zone (AZ) installations, your message broker will be error-proof. Additionally, DynamoDB offers excellent availability and durability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Durability&lt;/strong&gt;: Kafka keeps messages around for a while to allow replay, in case there are problems with the processing, or for auditing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managed Services&lt;/strong&gt;: Kafka keeps messages for a specific amount of time to enable replay in the event of processing faults or for auditing requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;: You can effectively with Kafka subjects. Route messages while DynamoDB's adaptable architecture allows for versatile data storing and querying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration Possibilities&lt;/strong&gt;: Utilising Kafka topics makes it easier to organise and route messages, and DynamoDB's adaptive design enables data archiving and retrieval.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;: To safeguard the confidentiality of sensitive financial data, AWS implements security measures like isolation, IAM access restrictions, encryption, and auditing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost effectiveness&lt;/strong&gt;: By paying for the resources used with DynamoDB and AWS MSK, serverless processing components like AWS Lambda assist minimise costs..&lt;/p&gt;

&lt;p&gt;Conclusion;Choosing the cloud model turned out to be the best decision because it balanced the flexibility of the cloud with the dependability of on-site infrastructure.By deciding to keep our Order Management System on-site while moving our Trading Applications, Databases, and Stock Exchange Client to AWS, we have created a foundation for the future. We can now move on with a flexible and scalable architecture thanks to this choice. &lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>msk</category>
      <category>fsi</category>
    </item>
    <item>
      <title>AWS Grid computing for Capital Markets (FSI)</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Sun, 03 Sep 2023 16:34:56 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/aws-grid-computing-for-capital-markets-fsi-4pga</link>
      <guid>https://dev.to/santhoshnimmala/aws-grid-computing-for-capital-markets-fsi-4pga</guid>
      <description>&lt;p&gt;Hey, my name is Santhosh Nimmala, and I work as a Principal Consultant at Luxoft, leading Cloud and DevOps in the TRM space. In this series of articles, I will be discussing about various solutions for FSI usecases, including real-world projects with code examples and common Arch patterns. In this article, we will delve into the Grid implemetation using AWS(options pricing usecase) in capital markets.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Financial services and Capital markets ?
&lt;/h2&gt;

&lt;p&gt;Financial services include banking, investing, insurance, and financial planning, among other diversified services. They provide crucial instruments for managing money, building wealth, and defending against unforeseen financial difficulties. They cater to the interests of both individuals and companies.&lt;/p&gt;

&lt;p&gt;On the other hand, capital markets are vibrant centres where businesses, governments, and investors interact. Organisations can raise cash by issuing stocks and bonds on the primary market, and the secondary market makes it possible to trade these securities. Markets for equity and debt provide channels for investment, and markets for derivatives permit risk management and speculation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we need Grid ?
&lt;/h2&gt;

&lt;p&gt;in capital markets usually , banks trade on options and it need to be priced daily , it uses an application that performs the calculations on the marlket data through financial quantitative analysis . if use use normal approach it may take few days to price the bank's entire portfolio of options , but if i want to run entire portfolio of options in one hours ? that where cloud comes to picture it can provide unlimited compute power with less cost compared to on-premises .&lt;/p&gt;

&lt;p&gt;Using several networked computers(Grid) in a grid configuration, grid computing is a high-performance computing strategy that can handle challenging jobs. Through the use of a grid of linked machines, it allows businesses to process large amounts of data and calculations in an efficient manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to implement Grid in AWS ?
&lt;/h2&gt;

&lt;p&gt;we can create a workflow orchestration to perform financial quantitative analysis by using below aws service .&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Step Functions &lt;/li&gt;
&lt;li&gt;AWS Batch &lt;/li&gt;
&lt;li&gt;Amazon ECR &lt;/li&gt;
&lt;li&gt;AWS ECS &lt;/li&gt;
&lt;li&gt;AWS Fargate &lt;/li&gt;
&lt;li&gt;S3&lt;/li&gt;
&lt;li&gt;Lambda &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;in this solution we can use a grid computing architecture with AWS Batch to process an entire portfolio of options data .&lt;/p&gt;

&lt;p&gt;AWS batch is a fully managed service that helps to run batch computing workloads at any scale , that means AWS batch can automatically provisions compute resources and optimizes workload distribition based on the quantity and scale of workload .&lt;/p&gt;

&lt;p&gt;AWS step functions workflow orchestration acts as a an orchestrator and is configured with an AWS lambda function , AWS batch job queue and job definition parameters .&lt;/p&gt;

&lt;p&gt;Lambda function takes an input file(JSON) form S3 bucket this file is nothing but large file with Trades and portfolio details , lambda will split this big file to multiple smaller files .&lt;/p&gt;

&lt;p&gt;AWS step Function workflow then creates a batch job for each of the splitted JSON file , the batch jobs are configured to use AWS fargate serverless compute capacity to process the portfolio options for each of the JSON files &lt;/p&gt;

&lt;p&gt;computing application for processing these files can be containerize using docker and store this image in ECR (Elastic container registry ) used by ECS &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RA-vAax3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ol1encdyrnj1fmkil1nh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RA-vAax3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ol1encdyrnj1fmkil1nh.png" alt="Image description" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The adoption of cutting-edge technologies has become crucial in the fast-paced world of capital markets, where seconds may make or break fortunes. Enter grid computing, a paradigm-shifting technology that, when combined with AWS Batch, Lambda, and Fargate, offers a range of benefits that enable financial institutions to compete in a landscape that is becoming more and more competitive.&lt;/p&gt;

&lt;p&gt;Scalability and speed: The scalability of AWS Batch, Lambda, and Fargate is unsurpassed. The ability to scale up resources on-demand allows lightning-fast execution whether managing large datasets or carrying out intricate financial modelling. This flexibility is essential for making split-second trading decisions and performing in-the-moment market trend analysis.&lt;/p&gt;

&lt;p&gt;Cost effectiveness: Grid computing using these AWS services reduces expenses by cutting down on unused resources. You just pay for the computer power that you really utilise, thus there is no need for expensive infrastructure.&lt;/p&gt;

&lt;p&gt;Managed Services : AWS's managed services, including as AWS Batch, AWS ParallelCluster, and AWS HPC, make it easier to set up and run Grid setups, which lowers operational costs.&lt;/p&gt;

&lt;p&gt;Security and Compliance: Security and compliance: To assist you in meeting security and compliance needs, AWS offers strong security features including encryption, IAM (Identity and Access Management), and VPC (Virtual Private Cloud) setups.&lt;/p&gt;

&lt;p&gt;In conclusion, the integration of grid computing with AWS Batch, Lambda, and Fargate ushers in a new age for capital markets. It provides scalability, cost-effectiveness, dependability, security, and a competitive advantage that positions organisations as innovators. These technologies, which are strategic assets rather than merely tools as the financial landscape changes, enable financial professionals to traverse the market's complexity with confidence &amp;amp; agility, which ultimately encourages success and growth in the always changing financial arena&lt;/p&gt;

</description>
      <category>aws</category>
      <category>grid</category>
      <category>batch</category>
      <category>serverless</category>
    </item>
    <item>
      <title>dd</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Fri, 19 May 2023 13:23:42 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/reap-the-benefits-of-cloudmigration-in-capital-markets-3ona</link>
      <guid>https://dev.to/santhoshnimmala/reap-the-benefits-of-cloudmigration-in-capital-markets-3ona</guid>
      <description></description>
      <category>aws</category>
      <category>cloud</category>
      <category>migration</category>
      <category>banking</category>
    </item>
    <item>
      <title>Calculating the True Cost of Migrating to AWS: A TCO Analysis</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Fri, 12 May 2023 15:09:29 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/calculating-the-true-cost-of-migrating-to-aws-a-tco-analysis-5fo8</link>
      <guid>https://dev.to/santhoshnimmala/calculating-the-true-cost-of-migrating-to-aws-a-tco-analysis-5fo8</guid>
      <description>&lt;p&gt;Hey, my name is Santhosh Nimmala, and I work as a Principal Consultant at Luxoft, leading Cloud and DevOps in the TRM space. In this series of articles, I will be explaining DevOps and DevTools with a focus on AWS, including real-world DevOps projects with code examples and common DevOps patterns. In this article, we will delve into the process of calculating the total cost of migrating applications from on-premises to AWS. At Luxoft, we follow these patterns when moving workloads to the cloud.&lt;/p&gt;

&lt;p&gt;Cloud technology has revolutionized the way organizations operate by providing flexible, scalable, and cost-effective solutions to meet their IT needs. However, while the cloud offers numerous advantages, it is important for organizations to closely monitor their cloud costs to avoid overspending and optimize their investments. In this article, we will explore the significance of cloud cost analysis, the different stages and steps involved in the process, and strategies to reduce cloud costs. We will also provide an overview of the cloud pricing calculator and Total Cost of Ownership (TCO) analysis.&lt;/p&gt;

&lt;h5&gt;
  
  
  Why is Cost Analysis Important?
&lt;/h5&gt;

&lt;p&gt;Cost analysis is crucial for several reasons. Firstly, it provides organizations with a clear understanding of their migration expenses, allowing them to compare and contrast with their current on-premises costs. This analysis helps identify areas where costs can be optimized. Secondly, it enables organizations to effectively allocate resources and optimize their cloud utilization. Thirdly, it helps in avoiding unexpected bills and allows for better project budget planning. Lastly, it provides a comprehensive cost breakdown, allowing organizations to compare different cloud providers and choose the one that best suits their needs.&lt;/p&gt;

&lt;p&gt;Migrating applications to the cloud has become a strategic move for many organizations. Let's take Amazon Web Services (AWS) as an example. AWS is one of the leading cloud providers, offering a robust platform that can support trading applications with scalability, reliability, and cost-efficiency. Now, let's explore the key elements of cost analysis when migrating a trading application to AWS, including TCO and the AWS Pricing Calculator.&lt;/p&gt;

&lt;h5&gt;
  
  
  What is TCO and How to Calculate it?
&lt;/h5&gt;

&lt;p&gt;Total Cost of Ownership (TCO) is a critical stage in assessing the overall cost implications of migrating an application to AWS. It involves identifying and measuring all costs associated with the application, both direct and indirect, over its lifecycle. Here are the important components to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Infrastructure Costs: Make a list of existing infrastructure costs, including servers, network devices, storage, and data center expenses. Don't forget to include costs associated with procuring, maintaining, and upgrading these components. For example, acquiring a server on-premises involves costs such as facility expenses, maintenance, power and cooling, network connectivity, staffing and operations, and compliance and regulatory costs. All of these factors should be considered during the analysis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Licensing: List down all the licenses associated with your application, such as application licenses, database licenses, and operating system licenses. Determine whether you can use the same licenses in the cloud or if there are dedicated licenses for cloud usage. For instance, some products have separate licenses for on-premises and cloud usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Labor Costs: Analyze the labor costs involved in managing the current infrastructure, including system administrators, network engineers, DBAs, and support engineers. Compare these costs with the management costs in AWS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maintenance and Support: Consider the costs involved in ongoing maintenance, upgrades, and technical support for your application. Evaluate how these costs will change after migration to the cloud.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Transfer: Take into account the data transfer costs associated with moving data between on-premises systems and AWS. Note that inbound traffic is often free or charged at a lower rate, while outbound traffic can be more expensive. Additionally, consider the cost of setting up a direct line connectivity between your data center and the cloud, as this may involve additional expenses.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Till now, we saw the cost involved in hosting applications on-premises and the cost factors to consider when migrating applications to a cloud provider like AWS. Now, let's explore AWS's tool called the AWS Pricing Calculator, which helps customers estimate the cost associated with running their workloads in AWS cloud environments. Let's see how we can utilize this tool.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Application Architecture: Obtain the application architecture of your trading app. In AWS, this architecture may differ from your on-premises diagram. If you wish to refactor your architecture, you can leverage cloud services. Once you finalize the services you want to use in AWS, list them all. This includes instance types (servers) based on your workload, storage requirements, auto-scaling, load balancing, database servers, and any other managed services provided by AWS in your application architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instance Types: Selecting the appropriate instance (server) for your application will be time-consuming. Based on your application requirements, you can gather statistics from your production environments, such as CPU, storage, network, performance, and workload patterns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Usage Metrics: Estimate the usage metrics, including load by traffic, number of users, data transfer I/O, storage capacity, and server uptime. This data will help you calculate the usage-based costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reserved Instances and Savings Plans: One of the reasons for moving to the cloud is cost reduction. You can significantly reduce infrastructure costs by opting for reserved instances and savings plans, saving up to 70-75% compared to on-prem infrastructure. This can be achieved by committing to 3-5 years of compute resource usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pricing Breakdown: The AWS Pricing Calculator provides a clear breakdown of costs, including compute, storage, networking, data transfer, and any other managed services you choose. This provides granular visibility to gain insights into potential savings.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, let's take an example of migrating a trading application from on-premises to AWS. We have 15 environments in total, consisting of 10 medium-sized and 5 large-sized instances in the development/testing environment. In the table below, you can see the cost comparison between on-premises and AWS cloud.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cost Category&lt;/th&gt;
&lt;th&gt;On-Premises&lt;/th&gt;
&lt;th&gt;AWS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Infrastructure Costs&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server hardware&lt;/td&gt;
&lt;td&gt;$150,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network infrastructure&lt;/td&gt;
&lt;td&gt;$30,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Datacenter costs&lt;/td&gt;
&lt;td&gt;$20,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EC2 instances&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$32,400&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;- R5.xlarge (10 instances)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;- R5.x4large (5 instances)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EBS volumes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$8,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;- 500 GB General Purpose SSD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VPC setup&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$2,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Software Costs&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Murex software licenses&lt;/td&gt;
&lt;td&gt;$100,000&lt;/td&gt;
&lt;td&gt;$100,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Third-party software&lt;/td&gt;
&lt;td&gt;$50,000&lt;/td&gt;
&lt;td&gt;$10,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Labor Costs&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IT staff salaries&lt;/td&gt;
&lt;td&gt;$80,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consultants&lt;/td&gt;
&lt;td&gt;$20,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloud architect&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$30,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Migration specialists&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$10,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ongoing management&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$10,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance and Support&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hardware maintenance&lt;/td&gt;
&lt;td&gt;$30,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Software support contracts&lt;/td&gt;
&lt;td&gt;$20,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS support plans&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$10,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Occasional consultant fees&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$10,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Transfer Costs&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data migration&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$5,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network transfer fees&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$5,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Miscellaneous Costs&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backup systems&lt;/td&gt;
&lt;td&gt;$10,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Power, cooling, physical security&lt;/td&gt;
&lt;td&gt;$10,000&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Additional security measures&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$5,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS Direct Connect&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;$5,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total TCO&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$520,000&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$265,400&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You can see huge savings in cost most of this comes from compute, some of the  major factors that are contributing to cost reduction in our cost  are Cost-efficient Infrastructure, Reserved Instances and Savings Plans , Elasticity and Auto-scaling, Automation, and DevOps Practices not only this by training staff on the cloud also can reduce consultants cost significantly  &lt;/p&gt;

&lt;p&gt;By leveraging AWS Marketplace, licensing optimization, and some cloud-native alternatives we can save a lot of cost's on Licensing.&lt;/p&gt;

&lt;p&gt;To Calculate the TCO we need use migration evaluator on our on-prem Infra structure process looks like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YCJivmJI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pg672ce9hlaxevsv9vce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YCJivmJI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pg672ce9hlaxevsv9vce.png" alt="Image description" width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For Pricing calculator please flow below steps .&lt;br&gt;
1)  Go to &lt;a href="https://calculator.aws/#/"&gt;https://calculator.aws/#/&lt;/a&gt;&lt;br&gt;
2)  Click on the create estimate button. &lt;br&gt;
3)  Start inputting all the services you want to use like below , this will ask different questions like which region , type , tendency ..etc &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I43FwpkT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hrh9f1h5f1ktqdhl658q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I43FwpkT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hrh9f1h5f1ktqdhl658q.png" alt="Image description" width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4)  Click on Save and add service button , and add all other services finally you will get all cost for your architecture &lt;/p&gt;

&lt;p&gt;In conclusion, conducting cost analysis is important when migrating workloads from on-premises to the cloud, specifically to AWS. It enables organizations to assess and understand the financial implications of the migration, ensuring it aligns with their budgetary objectives and overall business strategy.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>cloudmigration</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>IMAGE baking in AWS using Packer and Image builder</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Tue, 11 Apr 2023 22:32:57 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/image-baking-in-aws-using-packer-and-image-builder-1ed3</link>
      <guid>https://dev.to/santhoshnimmala/image-baking-in-aws-using-packer-and-image-builder-1ed3</guid>
      <description>&lt;p&gt;Hey, my Self Santhosh Nimmala, I am Working with Luxoft as a Principal consultant (leading Cloud and DevOps in TRM space), in coming Articles I will be explaining about DevOps and DevTools with respective to AWS it will also have real world DevOps projects with Code and common DevOps Patterns , in this blog we are going to learn about image baking with the help of Image builder which is AWS native tool and Packer which is a tool form hashicorp in the next blog we will also give source code to impalement both image builder and packer.&lt;/p&gt;




&lt;p&gt;Image building is the process of creating a pre-configured, standardized image that can be used as a base for launching new instances in the cloud. In AWS, images are created using Amazon Machine Images (AMI) and can be customized to include operating systems, applications, configurations, and other components.&lt;/p&gt;

&lt;p&gt;Image building is an important part of cloud computing as it provides a consistent, repeatable process for deploying new instances. By creating a standardized image, you can ensure that all instances launched from that image have the same configuration and software stack, reducing the risk of configuration errors and improving the reliability of your infrastructure.&lt;/p&gt;

&lt;p&gt;In addition to consistency, image building can also help improve security and reduce costs. By pre-configuring your images with security best practices and only including the necessary software components, you can reduce the risk of security vulnerabilities and reduce the amount of time and resources required for maintenance and updates.&lt;/p&gt;




&lt;p&gt;Here are some best practices to follow when building images in AWS:&lt;/p&gt;

&lt;p&gt;Use automation: Automating the image building process can help improve efficiency, reduce errors, and provide a repeatable, auditable process for managing images. AWS provides several services for automating image building, such as EC2 Image Builder and CodePipeline.&lt;/p&gt;

&lt;p&gt;Create golden images: Golden images are standardized, pre-configured images that can be used as a base for launching new instances. By creating a golden image, you can ensure consistency across your environment and simplify the process of deploying new instances.&lt;/p&gt;

&lt;p&gt;Build immutable infrastructure: Immutable infrastructure involves creating images that are designed to be immutable - that is, they cannot be changed once they are deployed. This can help improve reliability and security by reducing the risk of configuration drift and unauthorized changes.&lt;/p&gt;

&lt;p&gt;Version your images: Creating multiple versions of an image can help simplify management and provide greater flexibility in deploying and scaling applications. Versioning can also help ensure that older versions of an image are still available if needed.&lt;/p&gt;

&lt;p&gt;Reduce image size: Large images can increase launch times and storage costs. By reducing the size of your images and only including the necessary software components, you can improve performance and reduce costs.&lt;/p&gt;

&lt;p&gt;Use security best practices: When building images, it's important to follow security best practices, such as keeping software up to date, limiting access to the image, and using encryption for sensitive data.&lt;/p&gt;

&lt;p&gt;By following these best practices and leveraging AWS services, you can create a scalable, reliable, and secure image-building process that meets the needs of your organization.&lt;/p&gt;




&lt;p&gt;a step-by-step guide for using the EC2 Image Builder service in AWS to bake an image:&lt;/p&gt;

&lt;p&gt;Create a recipe: The first step in using EC2 Image Builder is to create a recipe that defines the components of the image. A recipe can include various components, such as the operating system, applications, and configurations.&lt;/p&gt;

&lt;p&gt;Create an image pipeline: An image pipeline is a set of instructions that tell Image Builder how to build and test the image. The pipeline includes stages such as building the image, testing it, and validating it.&lt;/p&gt;

&lt;p&gt;Run the pipeline: Once the pipeline is created, you can run it to build the image. Image Builder will automatically build the image according to the recipe and pipeline.&lt;/p&gt;

&lt;p&gt;Validate the image: After the image is built, it's important to validate it to ensure that it meets the necessary requirements. Image Builder provides validation tools to help ensure that the image is compliant with best practices and security standards.&lt;/p&gt;

&lt;p&gt;Distribute the image: Finally, once the image is validated, it can be distributed to other accounts or regions using the Image Builder console or APIs.&lt;/p&gt;

&lt;p&gt;Here's a more detailed breakdown of each step:&lt;/p&gt;

&lt;p&gt;Create a recipe: To create a recipe, you can use the EC2 Image Builder console or CLI. A recipe is essentially a script that defines the components of the image, such as the operating system, applications, and configurations. You can specify the source for each component, such as a Dockerfile or shell script.&lt;/p&gt;

&lt;p&gt;Create an image pipeline: An image pipeline is a set of instructions that tell Image Builder how to build and test the image. The pipeline includes stages such as building the image, testing it, and validating it. You can create a pipeline using the Image Builder console or CLI. Each stage in the pipeline is defined by a component, such as a build recipe or test command.&lt;/p&gt;

&lt;p&gt;Run the pipeline: Once the pipeline is created, you can run it to build the image. Image Builder will automatically build the image according to the recipe and pipeline. You can monitor the progress of the build in the Image Builder console.&lt;/p&gt;

&lt;p&gt;Validate the image: After the image is built, it's important to validate it to ensure that it meets the necessary requirements. Image Builder provides validation tools to help ensure that the image is compliant with best practices and security standards. You can use the validation tool in the Image Builder console or CLI to test the image against various standards.&lt;/p&gt;

&lt;p&gt;Distribute the image: Finally, once the image is validated, it can be distributed to other accounts or regions using the Image Builder console or APIs. You can specify the target accounts and regions, and Image Builder will automatically copy the image to those locations.&lt;/p&gt;




&lt;p&gt;lets create a AMI using image builder with a pipeline using terraform some of the pre-requisites are make sure you have ssmagent installed on the base AMI and replace VPC and TAG's for code with yours &lt;/p&gt;

&lt;p&gt;1) create main.tf This code is defining several AWS resources using Terraform's AWS provider. These resources include an IAM role, two IAM role policy attachments, an IAM role policy, and an IAM instance profile.&lt;/p&gt;

&lt;p&gt;The IAM role named "imagebuilder_role" is being created with an assume role policy that allows EC2 and Image Builder services to assume the role. It is also being tagged with a name of "imagebuilder_role".&lt;/p&gt;

&lt;p&gt;Two IAM role policy attachments are being created to attach existing AWS-managed policies to the IAM role. These policies are "AmazonSSMManagedInstanceCore" and "CloudWatchLogsFullAccess".&lt;/p&gt;

&lt;p&gt;An IAM role policy named "imagebuilder_policy" is being created with a policy document that allows various actions on EC2 instances and Image Builder resources. It also allows all actions on S3 resources.&lt;/p&gt;

&lt;p&gt;Finally, an IAM instance profile named "imagebuilder_instance_profile" is being created and associated with the "imagebuilder_role" IAM role. &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

resource "aws_imagebuilder_image" "example" {
  distribution_configuration_arn   = aws_imagebuilder_distribution_configuration.example.arn
  image_recipe_arn                 = aws_imagebuilder_image_recipe.example.arn
  infrastructure_configuration_arn = aws_imagebuilder_infrastructure_configuration.example.arn
}

resource "aws_imagebuilder_infrastructure_configuration" "example" {
  description                   = "example description"
  instance_profile_name         = aws_iam_instance_profile.imagebuilder_instance_profile.name
  instance_types                = ["t2.micro"]
  name                          = "example"
  security_group_ids            = [data.aws_security_group.test.id]
  subnet_id                     = data.aws_subnets.private.ids[0]
  terminate_instance_on_failure = true

  logging {
    s3_logs {
      s3_bucket_name = "aws-codepipeline-bitbucket-integration990"
      s3_key_prefix  = "logs"
    }
  }

  tags = {
    Name = "Example-Image"
  }
}

resource "aws_imagebuilder_image_recipe" "example" {
  block_device_mapping {
    device_name = "/dev/xvdb"

    ebs {
      delete_on_termination = true
      volume_size           = 100
      volume_type           = "gp2"
    }
  }

  component {
    component_arn = aws_imagebuilder_component.example.arn


  }

  name         = "example"
  parent_image = "ami-0515b741b33078e02"
  version      = "1.0.0"
}


resource "aws_imagebuilder_component" "example" {
  data = yamlencode({
    phases = [{
      name = "build"
      steps = [{
        action = "ExecuteBash"
        inputs = {
          commands = ["echo 'hello world'"]
        }
        name      = "example"
        onFailure = "Continue"
      }]
    }]
    schemaVersion = 1.0
  })
  name     = "example"
  platform = "Linux"
  version  = "1.0.0"

}

resource "aws_imagebuilder_distribution_configuration" "example" {
  name = "example"

  distribution {
    ami_distribution_configuration {
      ami_tags = {
        CostCenter = "IT"
      }

      name = "example-{{ imagebuilder:buildDate }}"

    }



    region = "us-east-1"
  }
}

resource "aws_imagebuilder_image_pipeline" "example" {
  image_recipe_arn                 = aws_imagebuilder_image_recipe.example.arn
  infrastructure_configuration_arn = aws_imagebuilder_infrastructure_configuration.example.arn
  name                             = "example"

}



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;2) data.tf This code is defining three Terraform data sources that retrieve information from the AWS provider.&lt;/p&gt;

&lt;p&gt;The first data source is named "aws_subnets" and retrieves information about private subnets within a specific VPC. It filters for subnets associated with a specific VPC ID and a tag with a name of "Public".&lt;/p&gt;

&lt;p&gt;The second data source is named "aws_security_group" and retrieves information about a specific security group within a VPC. It filters for security groups associated with a specific VPC ID and a tag with a name of "Public".&lt;/p&gt;

&lt;p&gt;The third data source is named "aws_ami" and retrieves information about the latest Amazon Machine Image (AMI) that meets certain criteria. In this case, the filter criteria specify that the AMI should be owned by Red Hat's AWS account ID, have a name that starts with "RHEL-8.5", have an architecture of "x86_64", use Elastic Block Store (EBS) as its root device type, and use hardware virtualization (HVM). This data source could be used to obtain the ID of the latest RHEL 8.5 AMI that matches these criteria, which could then be used in a subsequent resource definition to launch EC2 instances using that AMI.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

data "aws_subnets" "private" {
  filter {
    name   = "vpc-id"
    values =    ["vpc-01a4ec7b",]
  }

  tags = {
    Name = "Public"
  }
}

data "aws_security_group" "test" {

  filter {
    name   = "vpc-id"
    values = ["vpc-01a4ec7b",]
  }
  tags = {
    Name = "Public"
  }
}

data "aws_ami" "rhel_8_5" {
  most_recent = true
  owners = ["309956199498"] // Red Hat's Account ID
  filter {
    name   = "name"
    values = ["RHEL-8.5*"]
  }
  filter {
    name   = "architecture"
    values = ["x86_64"]
  }
  filter {
    name   = "root-device-type"
    values = ["ebs"]
  }
  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }
}



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;3) create security.tf This Terraform code creates several AWS Identity and Access Management (IAM) resources that are required for using AWS Image Builder service. The resources created are:&lt;/p&gt;

&lt;p&gt;aws_iam_role: This resource creates an IAM role that allows EC2 instances to assume this role and interact with Image Builder service. The assume_role_policy specifies the permissions for EC2 instances and Image Builder service to assume this role.&lt;/p&gt;

&lt;p&gt;aws_iam_role_policy_attachment: This resource attaches an IAM policy to the IAM role created in the previous step. Two policies are attached, AmazonSSMManagedInstanceCore and CloudWatchLogsFullAccess.&lt;/p&gt;

&lt;p&gt;aws_iam_role_policy: This resource creates a custom IAM policy that grants permissions for EC2 instances to interact with Image Builder service and S3.&lt;/p&gt;

&lt;p&gt;aws_iam_instance_profile: This resource creates an instance profile that is associated with the IAM role created in the first step. This instance profile can be attached to an EC2 instance at launch time to provide the necessary permissions for that instance to interact with Image Builder service.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

resource "aws_iam_role" "imagebuilder_role" {
  name = "imagebuilder_role"

  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = "sts:AssumeRole"
        Effect = "Allow"
        Principal = {
          Service = "ec2.amazonaws.com"
        }
      },
      {
        Action = "sts:AssumeRole"
        Effect = "Allow"
        Principal = {
          Service = "imagebuilder.amazonaws.com"
        }
      }
    ]
  })

  tags = {
    Name = "imagebuilder_role"
  }
}

resource "aws_iam_role_policy_attachment" "imagebuilder_policy_attachment" {
  policy_arn = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
  role       = aws_iam_role.imagebuilder_role.name
}

resource "aws_iam_role_policy_attachment" "cloudwatch_logs_policy_attachment" {
  policy_arn = "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess"
  role       = aws_iam_role.imagebuilder_role.name
}

resource "aws_iam_role_policy" "imagebuilder_policy" {
  name = "imagebuilder_policy"
  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Effect = "Allow"
        Action = [
          "ec2:CreateTags",
          "ec2:ModifyInstanceAttribute",
          "ec2:DescribeInstances",
          "ec2:RunInstances",
          "ec2:TerminateInstances"
        ]
        Resource = "*"
      },
      {
        Effect = "Allow"
        Action = [
          "imagebuilder:GetComponent",
          "imagebuilder:UpdateComponent",
          "imagebuilder:ListComponentBuildVersions",
          "imagebuilder:CreateImage",
          "imagebuilder:GetImage",
          "imagebuilder:GetImagePipeline",
          "imagebuilder:ListImages",
          "imagebuilder:ListImageBuildVersions",
          "imagebuilder:ListImagePipelineImages",
          "imagebuilder:ListImagePipelines",
          "s3:*"
        ]
        Resource = "*"
      }
    ]
  })

  role = aws_iam_role.imagebuilder_role.name
}

resource "aws_iam_instance_profile" "imagebuilder_instance_profile" {
  name = "imagebuilder_instance_profile"
  role = aws_iam_role.imagebuilder_role.name
}



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;once you have created run terraform command like terraform init , terraform plan , terraform apply .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjohhwwudv92lg4bibr64.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjohhwwudv92lg4bibr64.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;once you apply code using terraform go to aws console and search for image builder service .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv4bzxm7uugtdt67bvewq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv4bzxm7uugtdt67bvewq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bmlrkq90i0fm9qhn3g8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bmlrkq90i0fm9qhn3g8.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;In conclusion, building custom images for your infrastructure is a key aspect of modern cloud computing. With tools like Packer and AWS Image Builder, it's become easier than ever to create custom images that meet the specific needs of your applications and services. Custom images can be used to standardize configurations, reduce deployment time, and improve overall security and reliability. It's important to follow best practices when building images, such as regularly updating packages and avoiding hardcoding credentials. By automating the image building process, you can ensure that your images are consistently built and up-to-date, and can be easily replicated across multiple environments.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>terraform</category>
      <category>packer</category>
      <category>cloud</category>
    </item>
    <item>
      <title>How to integrate Ansible with Terraform on AWS</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Mon, 10 Apr 2023 22:52:50 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/how-to-integrate-ansible-with-terraform-on-aws-5dfk</link>
      <guid>https://dev.to/santhoshnimmala/how-to-integrate-ansible-with-terraform-on-aws-5dfk</guid>
      <description>&lt;p&gt;Hey, my Self Santhosh Nimmala, I am Working with Luxoft as a Principal consultant (leading Cloud and DevOps in TRM space), in coming Articles I will be explaining about DevOps and DevTools with respective to AWS it will also have real world DevOps projects with Code and common DevOps Patterns , in this blog we are going to see how to integrate Ansible with terraform in AWS , we would be using terraform for infra provisioning but for configuring our applications and base packages we will be using config management languages like ansible , now we will see how can we integrate both so that we can have single pipeline , i have developed sample project and pushed to git repo please follow steps below   .&lt;/p&gt;




&lt;p&gt;As organizations move towards adopting Infrastructure as Code (IaC), they often find themselves using multiple tools for different stages of their development pipeline. Two popular tools in the IaC space are Ansible and Terraform. While they are both useful in their own ways, they can also be integrated to create a more streamlined and efficient development process.&lt;/p&gt;

&lt;p&gt;In this article, we will explore the integration of Ansible with Terraform and discuss the benefits of using them together.&lt;/p&gt;




&lt;p&gt;What is Ansible?&lt;br&gt;
Ansible is an open-source automation platform that helps automate tasks related to configuration management, application deployment, and orchestration. It uses a simple YAML-based syntax to define tasks, making it easy to read and understand for both developers and operations teams.&lt;/p&gt;

&lt;p&gt;Ansible is often used for managing infrastructure at scale, configuring servers, deploying applications, and managing network devices. It can also be used for provisioning resources on cloud platforms like AWS, Azure, and GCP.&lt;/p&gt;



&lt;p&gt;What is Terraform?&lt;br&gt;
Terraform is an open-source infrastructure as code tool that allows you to define and provision infrastructure resources in a declarative language. It provides a simple, consistent interface for managing resources across multiple cloud providers, on-premises data centers, and other infrastructure.&lt;/p&gt;

&lt;p&gt;Terraform uses a configuration language called HCL (HashiCorp Configuration Language) to define infrastructure resources. With Terraform, you can define resources like virtual machines, networks, storage, and more, and manage their lifecycle through a series of commands.&lt;/p&gt;



&lt;p&gt;Why integrate Ansible with Terraform?&lt;br&gt;
While both Ansible and Terraform can be used to provision and manage infrastructure resources, they are designed to solve different problems. Ansible is focused on configuration management, while Terraform is focused on infrastructure provisioning.&lt;/p&gt;

&lt;p&gt;By integrating Ansible with Terraform, you can take advantage of the strengths of both tools to create a more streamlined and efficient development process. Ansible can be used to configure the resources provisioned by Terraform, ensuring that they are set up exactly as you need them.&lt;/p&gt;

&lt;p&gt;This integration can help to simplify the overall development process, reduce the amount of code you need to write, and make it easier to manage and update your infrastructure resources.&lt;/p&gt;



&lt;p&gt;1) clone the code form below link &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/santhoshnimmala/ansible-terraform-integration"&gt;https://github.com/santhoshnimmala/ansible-terraform-integration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) you will see below files with infra components .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vPAZsM0o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w55egk7w01aplckeezbz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vPAZsM0o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w55egk7w01aplckeezbz.png" alt="Image description" width="800" height="287"&gt;&lt;/a&gt;&lt;br&gt;
here main.tf contains all the terraform code to deploy infra structure&lt;br&gt;
3) this will deploy VPC, Subnets, route tables , security groups , instance and we will use remote exec to execute ansible playbook on the instance .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xWmJXsfe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1srfp6xsvmsnwfx6bj0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xWmJXsfe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1srfp6xsvmsnwfx6bj0x.png" alt="Image description" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) if you check remote provisioner code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
resource "null_resource" "ansible" {
  depends_on = [aws_instance.nginx]

  connection {
    type        = "ssh"
    user        = "ubuntu"
    private_key = file("key1.pem")
    host        = aws_instance.nginx.public_ip
  }
  provisioner "file" {
    source      = "playbook.yml"
    destination = "/tmp/playbook.yml"
           }


  provisioner "remote-exec" {
    inline = [
      "sudo apt-get update",
      "sudo apt-get install -y ansible",
      "cd /tmp/",
      "sudo ansible-playbook playbook.yml"
    ]
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;this creates a null resources which will first do a ssh connection to the instance and copy out ansible playbook to /tmp folder and then it will execute series of commands to install ansible and execute ansible-playbook playbook.yml in ec2 instance .&lt;/p&gt;

&lt;p&gt;this will install nginx server on the instance if you see playbook.yml you will see below code .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
- name: Install Nginx
  hosts: localhost
  become: true
  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;please make sure placing your .pem file in the directory as it is needed for ssh purpose .&lt;/p&gt;

&lt;p&gt;5) once everting is done run terraform init it should look like this .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nv15GmWZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/51pv6p31mj4thfsseyx8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nv15GmWZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/51pv6p31mj4thfsseyx8.png" alt="Image description" width="751" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6) then run plan and apply which should look like this .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WVd-Ee42--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gy26sb6qs3atha3qd6u3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WVd-Ee42--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gy26sb6qs3atha3qd6u3.png" alt="Image description" width="800" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;this make sure that nginx successfully installed , please visit the public ip of instance and check &lt;/p&gt;




&lt;p&gt;In conclusion, integrating Ansible with Terraform can help to simplify the overall development process, reduce the amount of code you need to write, and make it easier to manage and update your infrastructure resources. Ansible can be used to configure the resources provisioned by Terraform, ensuring that they are set up exactly as you need them. By leveraging the strengths of both tools, you can create a more streamlined and efficient development pipeline, enabling you to focus on delivering high-quality applications to your users.&lt;/p&gt;

</description>
      <category>ansible</category>
      <category>terraform</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Deploy ECS reference Architecture using Terraform</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Sun, 26 Mar 2023 22:49:15 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/deploy-ecs-reference-architecture-using-terraform-2k5n</link>
      <guid>https://dev.to/santhoshnimmala/deploy-ecs-reference-architecture-using-terraform-2k5n</guid>
      <description>&lt;p&gt;Hey, my Self Santhosh Nimmala, I am Working with Luxoft as a Principal consultant (leading Cloud and DevOps in TRM space), in coming Articles I will be explaining about ECS application deployment using terraform which we have used in many projects in luxoft , when when i saw the sample repos given by aws was not working properly i have decided to develop a full project in terraform instead of cloudformation  please find the repo like below &lt;a href="https://github.com/santhoshnimmala/ecs-refarch-terraform"&gt;https://github.com/santhoshnimmala/ecs-refarch-terraform&lt;/a&gt; this have complete details about how to deploy the project reference arch look's like this. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yo8ZlXwq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eu9qwvnhocdszuahwdq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yo8ZlXwq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eu9qwvnhocdszuahwdq4.png" alt="Image description" width="864" height="898"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  why i have started this project ?
&lt;/h3&gt;

&lt;p&gt;Migrating infrastructure from one tool to another can be a challenging task, but it can also be a great opportunity to improve the efficiency and reliability of your infrastructure. This is exactly what the ECS RefArch Terraform project on GitHub represents.&lt;/p&gt;

&lt;p&gt;The project was born out of a need to migrate a sample project from AWS that was written in CloudFormation to Terraform. According to the project's author, the CloudFormation project was not working properly, so they decided to take matters into their own hands and migrate it to Terraform.&lt;/p&gt;

&lt;p&gt;This migration was no small feat. Terraform and CloudFormation are two very different tools, with different syntax, paradigms, and capabilities. Migrating from one to the other requires a deep understanding of both tools, as well as a clear understanding of the infrastructure you're trying to migrate.&lt;/p&gt;

&lt;p&gt;The ECS RefArch Terraform project is a testament to the author's hard work and dedication. It provides a complete and functional example of how to deploy an ECS cluster on AWS using Terraform. It includes a set of Terraform modules and templates that define the infrastructure as code, as well as documentation and examples to help you get started.&lt;/p&gt;

&lt;p&gt;One of the main advantages of using Terraform over CloudFormation is its modular and declarative nature. Terraform allows you to define your infrastructure using a simple and intuitive language, and to reuse and share modules across different projects and environments. This makes it easier to manage and maintain your infrastructure, and to make changes and updates as needed.&lt;/p&gt;

&lt;p&gt;The ECS RefArch Terraform project takes full advantage of this modularity and reusability. It defines a set of modules for different components of the infrastructure, such as the ECS cluster, the security group, the load balancer, and more. This allows you to easily customize and extend the infrastructure to fit your specific needs.&lt;/p&gt;

&lt;p&gt;The project also provides a number of features that make it easy to manage and monitor your ECS cluster. For example, it includes automated backups, monitoring, and scaling, as well as a number of security and compliance best practices.&lt;/p&gt;




&lt;p&gt;why i have chosen terraform to deploy ECS ?&lt;/p&gt;

&lt;p&gt;Terraform is a powerful tool for managing infrastructure as code, and the ECS RefArch Terraform project on GitHub is a great example of how it can be used to automate the deployment of an Amazon Elastic Container Service (ECS) cluster.&lt;/p&gt;

&lt;p&gt;In this blog, we'll take a closer look at the ECS RefArch Terraform project and explore how it can help you streamline the deployment of containerized applications on AWS.&lt;/p&gt;

&lt;p&gt;What is ECS?&lt;/p&gt;

&lt;p&gt;Amazon Elastic Container Service (ECS) is a fully managed container orchestration service that makes it easy to run and scale containerized applications on AWS. With ECS, you can launch and manage Docker containers on a cluster of EC2 instances, and take advantage of AWS services like Elastic Load Balancing, Auto Scaling, and CloudWatch to optimize your application's performance and availability.&lt;/p&gt;

&lt;p&gt;What is the ECS RefArch Terraform project?&lt;/p&gt;

&lt;p&gt;The ECS RefArch Terraform project is a reference architecture for deploying a highly available ECS cluster on AWS using Terraform. It includes a set of Terraform modules and templates that you can use to define and provision your infrastructure as code.&lt;/p&gt;

&lt;p&gt;The project is designed to be modular and customizable, so you can easily adapt it to your specific use case. For example, you can configure the number of EC2 instances in your cluster, the instance type and size, the container image and port, and more.&lt;/p&gt;

&lt;p&gt;The project also includes a number of features that make it easy to manage your ECS cluster, such as automated backups, monitoring, and scaling. You can use these features to ensure that your application is always available and performing well, even as your workload and traffic patterns change over time.&lt;/p&gt;

&lt;p&gt;How to use the ECS RefArch Terraform project&lt;/p&gt;

&lt;p&gt;To use the ECS RefArch Terraform project, you'll need to have some familiarity with Terraform and AWS. You'll also need to have an AWS account and access to the AWS CLI.&lt;/p&gt;

&lt;p&gt;Once you have everything set up, you can follow these steps to deploy your ECS cluster:&lt;/p&gt;

&lt;p&gt;Clone the ECS RefArch Terraform project from GitHub.&lt;/p&gt;

&lt;p&gt;Configure your AWS credentials by creating a new IAM user and assigning it the necessary permissions.&lt;/p&gt;

&lt;p&gt;Update the variables.tf file to define the parameters for your ECS cluster, such as the instance type and size, the container image, and the number of EC2 instances.&lt;/p&gt;

&lt;p&gt;Run the terraform init command to initialize the Terraform modules.&lt;/p&gt;

&lt;p&gt;Run the terraform plan command to review the proposed changes to your infrastructure.&lt;/p&gt;

&lt;p&gt;Run the terraform apply command to provision your infrastructure and deploy your ECS cluster.&lt;/p&gt;

&lt;p&gt;Verify that your ECS cluster is up and running by accessing the ECS console or running the AWS CLI commands.&lt;/p&gt;




&lt;p&gt;Conclusion &lt;/p&gt;

&lt;p&gt;In conclusion, the ECS RefArch Terraform project on GitHub represents a successful migration of an AWS sample project from CloudFormation to Terraform. The project provides a complete and functional example of how to deploy an ECS cluster on AWS using Terraform, along with a set of modules and templates that define the infrastructure as code.&lt;/p&gt;

&lt;p&gt;The project highlights the advantages of using Terraform over CloudFormation, such as its modularity and declarative nature, which allows for easier management and maintenance of the infrastructure. The project also provides a number of features that make it easy to manage and monitor the ECS cluster, including automated backups, monitoring, scaling, and security and compliance best practices.&lt;/p&gt;

&lt;p&gt;Overall, the ECS RefArch Terraform project serves as a valuable resource for anyone looking to deploy containerized applications on AWS using Terraform. It demonstrates the power and flexibility of Terraform, as well as the hard work and dedication required to make a successful migration.&lt;/p&gt;

</description>
      <category>ecs</category>
      <category>aws</category>
      <category>containerapps</category>
      <category>terraform</category>
    </item>
    <item>
      <title>AWS Code-pipeline</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Thu, 16 Mar 2023 14:11:14 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/aws-code-pipeline-555d</link>
      <guid>https://dev.to/santhoshnimmala/aws-code-pipeline-555d</guid>
      <description>&lt;p&gt;Hey, my Self Santhosh Nimmala, I am Working with Luxoft as a Principal consultant (leading Cloud and DevOps in TRM space), in coming Articles I will be explaining about DevOps and DevTools with respective to AWS it will also have real world DevOps projects with Code and common DevOps Patterns , in this blog we are going to learn about AWS code pipeline .&lt;/p&gt;




&lt;p&gt;A code pipeline is a process that automates the building, testing, and deployment of software applications. It is a series of stages through which a codebase goes before it is released as a finished product. The purpose of a code pipeline is to automate the software development lifecycle, reducing the time and effort required to deliver high-quality software. In this article, we will dive deeper into what a code pipeline is, its benefits, and how it works.&lt;/p&gt;




&lt;p&gt;What is a Code Pipeline?&lt;/p&gt;

&lt;p&gt;A code pipeline is a set of automated processes that help developers quickly and efficiently develop, test, and deploy software applications. It is a continuous integration and delivery (CI/CD) pipeline that automates the software development lifecycle, from building and testing to deployment and monitoring.&lt;/p&gt;

&lt;p&gt;Benefits of a Code Pipeline&lt;/p&gt;

&lt;p&gt;A code pipeline offers numerous benefits, including:&lt;/p&gt;

&lt;p&gt;1) Faster Development and Deployment Cycles: A code pipeline streamlines the development and deployment process by automating many of the tasks that would otherwise have to be done manually. This makes it possible to release new features and bug fixes more quickly, reducing the time it takes to get software into the hands of users.&lt;/p&gt;

&lt;p&gt;2) Improved Quality and Reliability: Automated testing and deployment processes help ensure that software is thoroughly tested and reliable before it is released. This reduces the risk of bugs and other issues, improving the overall quality of the software.&lt;/p&gt;

&lt;p&gt;3) Greater Collaboration: A code pipeline encourages greater collaboration between development, testing, and operations teams, as everyone works together to streamline the software development process. This leads to more efficient workflows and better communication between team members.&lt;/p&gt;

&lt;p&gt;4) Increased Efficiency: By automating many of the manual processes involved in software development, a code pipeline can significantly reduce the amount of time and effort required to develop and deploy software.&lt;/p&gt;




&lt;p&gt;How a Code Pipeline Works&lt;/p&gt;

&lt;p&gt;A typical code pipeline consists of several stages, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Source: This is the stage where the codebase is stored and managed using a version control system like Git.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build: In this stage, the code is compiled and built into a deployable package or artifact.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test: Automated tests are run to ensure that the code meets the necessary requirements and quality standards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deploy: The code is deployed to a staging environment for further testing and review.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Release: The code is released to production once it has passed all tests and reviews.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitor: The application is monitored in production to ensure that it is running smoothly and to identify any issues that may arise.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A code pipeline can be set up using a variety of tools and services, including Jenkins, AWS CodePipeline, and CircleCI. These tools provide a user-friendly interface for creating and managing pipelines, as well as integrating with other tools and services like AWS CodeBuild and AWS CodeDeploy.&lt;/p&gt;




&lt;p&gt;What advantages you get by using Codepipeline over other Orchestration tools   &lt;/p&gt;

&lt;p&gt;CodePipeline is a popular continuous integration and delivery (CI/CD) service provided by Amazon Web Services (AWS) that automates the building, testing, and deployment of software applications. While Jenkins and other orchestration tools also offer similar features, there are several advantages to using CodePipeline over these tools. In this article, we will explore some of the key advantages of using CodePipeline for your CI/CD needs.&lt;/p&gt;

&lt;p&gt;*&lt;br&gt;
Cloud-Native Architecture&lt;br&gt;
One of the main advantages of CodePipeline over Jenkins and other orchestration tools is that it is designed to work natively in the cloud. This means that it is optimized for the AWS cloud infrastructure and can easily integrate with other AWS services like CodeBuild, CodeDeploy, and Elastic Beanstalk . As a result, you can easily build and deploy your applications in the cloud without having to manage the underlying infrastructure.&lt;/p&gt;

&lt;p&gt;*&lt;br&gt;
Simple Setup and Management&lt;br&gt;
CodePipeline is easy to set up and manage, even for users who have limited experience with CI/CD pipelines. Its simple web-based console provides a user-friendly interface for configuring your pipeline stages, connecting your source code repository, and setting up your build and deployment options. This simplicity makes it easier to get started with CI/CD and reduces the learning curve for new users.&lt;/p&gt;

&lt;p&gt;*&lt;br&gt;
Scalability and Flexibility&lt;br&gt;
CodePipeline is designed to be highly scalable and flexible, allowing you to adjust your pipeline stages and resources based on the needs of your application. You can easily add new stages, adjust build and deployment options, and integrate with other AWS services as your application grows and evolves. This flexibility makes it easier to adapt your pipeline to changing business needs and requirements.&lt;/p&gt;

&lt;p&gt;*&lt;br&gt;
Security and Compliance&lt;br&gt;
CodePipeline is designed with security and compliance in mind, providing several features that help ensure the security and privacy of your code and data. For example, CodePipeline integrates with AWS Identity and Access Management (IAM) to manage user access and permissions, and also supports encrypted pipelines and artifacts to protect your data in transit and at rest.&lt;/p&gt;

&lt;p&gt;*&lt;br&gt;
Cost-Effective&lt;br&gt;
CodePipeline is a cost-effective solution for CI/CD, especially for users who are already using other AWS services. With CodePipeline, you only pay for the resources you use, and there are no upfront costs or long-term commitments required. This makes it easier to manage your costs and scale your pipeline as your application grows.&lt;/p&gt;




&lt;p&gt;lets see how to build a code-pipeline in AWS .&lt;/p&gt;

&lt;p&gt;1) Go to AWS console and choose codepipeline and create a project like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_5xqHLkY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c5sr0ol6ntrfl3y15exa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_5xqHLkY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c5sr0ol6ntrfl3y15exa.png" alt="Image description" width="880" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) give Project name this will automatically create a role if you already have a role for codepipeline please give your role name by unchecking the check box .&lt;/p&gt;

&lt;p&gt;you can see advance data about encryption and Artifact store for your project .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Oy9SQt0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o2mmw4jul7n86ogwssu4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Oy9SQt0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o2mmw4jul7n86ogwssu4.png" alt="Image description" width="880" height="389"&gt;&lt;/a&gt;&lt;br&gt;
3) Select source for your repos where you code is hosted it codepipeline supports CodeCommit , s3 , ECR , GitHub,Github Enterprise,  bitbucket .&lt;/p&gt;

&lt;p&gt;we have selected CodeCommit as we have our repo in it .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TrsIepAf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bed6ih9f13p2g9mse6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TrsIepAf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bed6ih9f13p2g9mse6s.png" alt="Image description" width="880" height="683"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) next we need to select Build tool for the project this can be codebuild or Jenkins(if you want).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XKCI4fZE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k6uh6qq810wb6cfw24ml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XKCI4fZE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k6uh6qq810wb6cfw24ml.png" alt="Image description" width="880" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;we selected Codebuild as we already created a projected , if you want to create just CI pipeline you can skip deploy stage and call this as a CI pipeline &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_ZQWDCqd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n2bwn4wd17zzmqzfszln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_ZQWDCqd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n2bwn4wd17zzmqzfszln.png" alt="Image description" width="880" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n0TN5Tm8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jvh1p092qk1w8z2wg7eo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n0TN5Tm8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jvh1p092qk1w8z2wg7eo.png" alt="Image description" width="880" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5) Next is Deploy stage you can choose various supported Providers codepipeline supports below providers .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UT_fswVx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrtwewfb0bhcrtp3pa7h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UT_fswVx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrtwewfb0bhcrtp3pa7h.png" alt="Image description" width="880" height="504"&gt;&lt;/a&gt;&lt;br&gt;
finally click next and finally create pipeline &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nIsm2Byq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qm0onhzz0d5l2kshzwb7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nIsm2Byq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qm0onhzz0d5l2kshzwb7.png" alt="Image description" width="880" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;this pipeline will trigger whenever you have any change in repo branch like a push , merge etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zT32RkJo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cnlnxwplbi15zo3qim59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zT32RkJo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cnlnxwplbi15zo3qim59.png" alt="Image description" width="880" height="388"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Conclusion &lt;br&gt;
In conclusion, CodePipeline is a powerful and versatile tool provided by AWS that allows for the automation of the software release process. With CodePipeline, developers can create, model, and automate their software release process from source code to production. This automation not only increases the speed and reliability of software releases but also reduces the potential for human error.&lt;/p&gt;

&lt;p&gt;CodePipeline is highly customizable and integrates with a variety of other AWS services and third-party tools. This allows for the creation of a pipeline that meets the specific needs of your development team and project.&lt;/p&gt;

&lt;p&gt;Overall, CodePipeline is an essential tool for any organization that wants to improve their software release process and increase their development speed and agility.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS CodeBuild</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Wed, 15 Mar 2023 11:52:34 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/aws-codebuild-5ff4</link>
      <guid>https://dev.to/santhoshnimmala/aws-codebuild-5ff4</guid>
      <description>&lt;p&gt;Hey, my Self Santhosh Nimmala, I am Working with Luxoft as a Principal consultant (leading Cloud and DevOps in TRM space), in coming Articles I will be explaining about DevOps and DevTools with respective to AWS it will also have real world DevOps projects with Code and common DevOps Patterns , in this blog we are going to learn about AWS codebuild.&lt;/p&gt;




&lt;p&gt;CodeBuild is a fully managed continuous integration and delivery service provided by Amazon Web Services (AWS). It allows you to automate the building, testing, and deployment of your code with pre-configured build environments, or you can create custom build environments that best suit your requirements. In this blog, we will explore the features of CodeBuild and how to use it to set up continuous integration and delivery for your projects.&lt;br&gt;
Features of CodeBuild:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Fully Managed: CodeBuild is a fully managed service that eliminates the need for provisioning, configuring, and managing servers. It automatically scales to meet your build demands and provides the necessary resources to execute your builds quickly and efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customizable Build Environments: CodeBuild provides pre-configured build environments with popular programming languages, such as Java, Python, Node.js, and Ruby. You can also create your custom build environments that best suit your needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security and Compliance: CodeBuild provides a secure and compliant environment for building, testing, and deploying your code. It integrates with AWS Key Management Service (KMS) to encrypt your build artifacts, and AWS Identity and Access Management (IAM) to manage access to your builds.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration with Other AWS Services: CodeBuild integrates with other AWS services, such as AWS CodeCommit, AWS CodePipeline, and AWS Elastic Container Registry (ECR), to provide end-to-end continuous integration and delivery.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;To use CodeBuild, you need to follow the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create a CodeBuild Project: The first step is to create a CodeBuild project that defines the build settings, such as the build environment, source code location, build commands, and build artifacts. You can create a project using the AWS Management Console, AWS Command Line Interface (CLI), or AWS SDKs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure the Source Code: The next step is to configure the source code that CodeBuild will use to build your application. You can use CodeCommit, GitHub, Bitbucket, or any other Git-based repository as your source code provider.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build Your Code: Once you have configured the source code and the build project, you can start building your code by running the build project. CodeBuild will execute the build commands defined in the project and generate build artifacts, such as binaries, libraries, or Docker images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deploy Your Code: After the build is successful, you can deploy your code to the desired destination, such as an Amazon S3 bucket, an AWS Elastic Beanstalk environment, or an AWS Lambda function.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;CodeBuild offers several advantages over other tools that organizations may use for their software development process. Some of these advantages include:&lt;/p&gt;

&lt;p&gt;1) Fully Managed Environment: CodeBuild is a fully managed service that eliminates the need for provisioning, configuring, and managing servers. This means that organizations do not need to worry about infrastructure management and can focus on their core business activities.&lt;/p&gt;

&lt;p&gt;2) Customizable Build Environments: CodeBuild provides pre-configured build environments with popular programming languages, such as Java, Python, Node.js, and Ruby. Organizations can also create their custom build environments that best suit their needs. This allows organizations to have greater control over their build environment, which can result in improved build times and overall productivity.&lt;/p&gt;

&lt;p&gt;3) Integration with Other AWS Services: CodeBuild integrates with other AWS services, such as AWS CodeCommit, AWS CodePipeline, and AWS Elastic Container Registry (ECR), to provide end-to-end continuous integration and delivery. This means that organizations can create a complete DevOps pipeline using AWS services, without needing to integrate multiple third-party tools.&lt;/p&gt;

&lt;p&gt;4) Scalability: CodeBuild automatically scales to meet the demands of an organization's build process. This means that organizations do not need to worry about capacity planning or infrastructure scaling, as CodeBuild can handle scaling automatically.&lt;/p&gt;

&lt;p&gt;5) Security and Compliance: CodeBuild provides a secure and compliant environment for building, testing, and deploying code. It integrates with AWS Key Management Service (KMS) to encrypt build artifacts and AWS Identity and Access Management (IAM) to manage access to builds. This ensures that organizations can meet their security and compliance requirements&lt;/p&gt;




&lt;p&gt;1) Go to AWS console and choose codebuild , then create a new project like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y0WwZSfw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6shsfzmpko6r1i419ezg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y0WwZSfw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6shsfzmpko6r1i419ezg.png" alt="Image description" width="880" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) Project configuration give your project name and description and if you want any concurrent build limits please check the box and provide the number of builds and add Tags for best practices .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6uvohcOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n17tzrff8t5fp1t9hmjo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6uvohcOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n17tzrff8t5fp1t9hmjo.png" alt="Image description" width="880" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) Provide where is your source code resides currently codebuild supports GitHub , bitbucket , s3 and  Github enterprise it cannot support bitbucket  enterprise . &lt;br&gt;
I have chosen Codecommit as i have a repo hosted in code commit like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PwNF1CH8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2v6zmb1h8l7w3yx1jhg5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PwNF1CH8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2v6zmb1h8l7w3yx1jhg5.png" alt="Image description" width="880" height="567"&gt;&lt;/a&gt;&lt;br&gt;
4) Now choosing the run time for your Build as codebuild run a docker container behind the scans you need to see what run time your application needs to compile and produce some build artifacts &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3PWhBrm0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ha7g49rq9az53odmqgv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3PWhBrm0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ha7g49rq9az53odmqgv.png" alt="Image description" width="880" height="802"&gt;&lt;/a&gt;&lt;br&gt;
for managed images you can see all runtimes available at below link &lt;a href="https://docs.aws.amazon.com/codebuild/latest/userguide/available-runtimes.html"&gt;link&lt;/a&gt;&lt;br&gt;
if you didn't  find your runtime in above link you can provide your own image from ECR .&lt;/p&gt;

&lt;p&gt;5) Buildspec is nothing but a YAML file or set of commands you will pass to codebuild to execute on the container in order to compile and produce some artifacts usually it can be provided in codecommit repository but still you give this commands in the editor a typical buildspec file look like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VKlGkB5R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zrul91zye38kmfxkav4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VKlGkB5R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zrul91zye38kmfxkav4.png" alt="Image description" width="880" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;or you can provide directly on console editor like below &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zgFKhG8v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u3zo6wvn14xchtttbfn8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zgFKhG8v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u3zo6wvn14xchtttbfn8.png" alt="Image description" width="880" height="691"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6) Log and Artifacts can be configured like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--81Aur4xz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yom6rwnns7ig0fxa772m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--81Aur4xz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yom6rwnns7ig0fxa772m.png" alt="Image description" width="880" height="743"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7) finally you can create build project like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v9FBLNZn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kt3gauc07c33eazyoxfb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v9FBLNZn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kt3gauc07c33eazyoxfb.png" alt="Image description" width="803" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8) Finally how to execute a build , select codebuild project which you have created and click on start build like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FA_kms6I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fqxjy7wqeqa3s8lv3a0t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FA_kms6I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fqxjy7wqeqa3s8lv3a0t.png" alt="Image description" width="880" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion :- &lt;/p&gt;

&lt;p&gt;In conclusion, using CodeBuild can significantly improve the operational efficiency of an organization's software development process. CodeBuild offers a fully managed environment with customizable build environments, secure and compliant build processes, and integration with other AWS services. By automating the building, testing, and deployment of code, organizations can save time, reduce errors, and increase the efficiency of their continuous integration and delivery pipelines. With CodeBuild, organizations can focus on delivering high-quality products and services to customers faster, while keeping costs under control. Overall, CodeBuild is a powerful and easy-to-use service that can help organizations achieve their operational efficiency goals.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>codebuild</category>
      <category>cloud</category>
      <category>serverless</category>
    </item>
    <item>
      <title>AWS CodeCommit</title>
      <dc:creator>santhoshnimmala</dc:creator>
      <pubDate>Sat, 21 Jan 2023 21:13:19 +0000</pubDate>
      <link>https://dev.to/santhoshnimmala/aws-codecommit-3eki</link>
      <guid>https://dev.to/santhoshnimmala/aws-codecommit-3eki</guid>
      <description>&lt;p&gt;Hey, my Self Santhosh Nimmala, I am Working with Luxoft as a Principal consultant (leading Cloud and DevOps in TRM space), in coming Articles I will be explaining about DevOps and DevTools with respective to AWS it will also have real world DevOps projects with Code and common DevOps Patterns   &lt;/p&gt;

&lt;h2&gt;
  
  
  What is VCS ?
&lt;/h2&gt;

&lt;p&gt;A version control system (VCS) is a software tool that helps developers track and manage changes to their code over time. It allows multiple developers to work on the same codebase simultaneously, and provides an easy way to roll back to previous versions of the code if necessary.&lt;/p&gt;

&lt;p&gt;Git is a widely used and popular version control system. It was created by Linus Torvalds in 2005 as a way to manage the development of the Linux kernel. Git is a distributed version control system, which means that each developer has a copy of the entire codebase on their local machine. This allows for offline development and makes it easy for developers to work on different branches of the code at the same time.&lt;/p&gt;

&lt;p&gt;Git also provides a number of powerful features that make it well-suited for collaborative development. For example, it allows multiple developers to work on the same codebase simultaneously, while keeping track of who made what changes and when. Additionally, it makes it easy to merge changes from different branches, and to resolve conflicts if they arise. Git also allows you to create branches and tags, which are useful for maintaining different versions of the codebase and for creating releases.&lt;/p&gt;

&lt;p&gt;Git also offers a powerful set of command line tools that allow developers to perform a wide range of operations on the codebase, such as committing code changes, creating branches, merging code, and reviewing code history.&lt;/p&gt;




&lt;h2&gt;
  
  
  why do we need VCS and what are the advantages?
&lt;/h2&gt;

&lt;p&gt;There are several reasons why a version control system (VCS) is an essential tool for software development:&lt;/p&gt;

&lt;p&gt;Collaboration: VCS makes it easy for multiple developers to work on the same codebase simultaneously, without interfering with each other's work. This is especially important for large development teams, where many people may be working on different features or bug fixes at the same time.&lt;/p&gt;

&lt;p&gt;History and Auditing: VCS keeps track of all changes made to the codebase, including who made them, when they were made, and what the changes were. This allows developers to easily review the history of the codebase and understand how it has evolved over time.&lt;/p&gt;

&lt;p&gt;Backup and Recovery: VCS allows developers to roll back to previous versions of the codebase if necessary, which can be useful for recovering from bugs, data loss, or other issues.&lt;/p&gt;

&lt;p&gt;Branching and Merging: VCS makes it easy to create branches of the codebase, which can be used to work on new features, bug fixes, or experiments without affecting the main codebase. This allows developers to work on different versions of the codebase simultaneously, and then merge their changes back into the main codebase when they are ready.&lt;/p&gt;

&lt;p&gt;Release Management: VCS provides an easy way to create and manage different versions of the codebase, which can be useful for creating releases and maintaining different versions of the software.&lt;/p&gt;

&lt;p&gt;Continuous integration and Deployment: VCS integrated with other tools such as CI/CD pipelines allows for a streamlined and automated process for building, testing and deploying the software, this allows for faster and more frequent releases.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Codecommit ?
&lt;/h2&gt;

&lt;p&gt;Codecommit is a fully-managed source control service offered by Amazon Web Services (AWS) that makes it easy for developers to store and manage their code in a secure and highly scalable environment. In this blog, we will discuss the key features of Codecommit and how it can benefit your development team.&lt;/p&gt;

&lt;p&gt;One of the major benefits of Codecommit is its integration with other AWS services. For example, you can use Codecommit as the source repository for your CodeBuild and CodeDeploy projects, allowing you to easily build and deploy your code from a single location. Additionally, you can use Codecommit in conjunction with CodePipeline to create a complete end-to-end continuous integration and continuous deployment (CI/CD) pipeline.&lt;/p&gt;

&lt;p&gt;Another key feature of Codecommit is its ability to handle large codebases. With support for Git Large File Storage (LFS), Codecommit can handle large binary files such as images and videos, making it a suitable option for teams working on multimedia applications.&lt;/p&gt;

&lt;p&gt;Codecommit also offers robust security features to protect your code. All repositories are encrypted at rest and in transit, and you can use IAM policies to control access to your repositories. Additionally, Codecommit supports the use of Git-over-SSH and HTTPS, allowing you to secure your code in transit.&lt;/p&gt;

&lt;p&gt;In terms of collaboration, Codecommit allows multiple developers to work on the same codebase simultaneously, with built-in support for branching and merging. This makes it easy for teams to work on multiple features or bug fixes at the same time, without interfering with each other's code.&lt;/p&gt;

&lt;p&gt;Codecommit is a fully-managed service, which means that AWS takes care of the underlying infrastructure, backups, and scaling. This allows you to focus on your code, rather than worrying about maintaining your source control infrastructure.&lt;/p&gt;

&lt;p&gt;Overall, Codecommit is a powerful and flexible source control solution that can benefit any development team looking to improve their code management and collaboration processes. With its integration with other AWS services, robust security features, and support for large codebases, it is a great option for teams looking to streamline their development workflow.&lt;/p&gt;




&lt;p&gt;Go to Codecommit managed service which location you want to choose like below &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79a71pwdyhzltillkwgo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79a71pwdyhzltillkwgo.png" alt="Image description" width="800" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create a Repository like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc500dmc9lw4srhf4o9x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc500dmc9lw4srhf4o9x.png" alt="Image description" width="800" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakcsrw5sly1zol3n1bpm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakcsrw5sly1zol3n1bpm.png" alt="Image description" width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;copy clone URL to get this repo on your machine  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz3iv8p6pn144ufpk89kz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz3iv8p6pn144ufpk89kz.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you can clone repo like below .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fldzs31z12nihibilkg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fldzs31z12nihibilkg.png" alt="Image description" width="800" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;for this you need to generate credentials from IAM Users--&amp;gt; Security Credentials --&amp;gt; HTTPS Git credentials for AWS CodeCommit &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4b28t8v2800kp68yzd2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4b28t8v2800kp68yzd2.png" alt="Image description" width="800" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
