<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Sonali Shah on Medium]]></title>
        <description><![CDATA[Stories by Sonali Shah on Medium]]></description>
        <link>https://medium.com/@sonalishah_63223?source=rss-3aa2b9e71f81------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*AAm70JzQLeKPvZFb.</url>
            <title>Stories by Sonali Shah on Medium</title>
            <link>https://medium.com/@sonalishah_63223?source=rss-3aa2b9e71f81------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 22:12:37 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@sonalishah_63223/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[How to resolve common error “provider configuration not present” in Terraform]]></title>
            <link>https://medium.com/@sonalishah_63223/resolving-the-provider-configuration-not-present-in-terraform-a1698239e485?source=rss-3aa2b9e71f81------2</link>
            <guid isPermaLink="false">https://medium.com/p/a1698239e485</guid>
            <category><![CDATA[terraform-modules]]></category>
            <category><![CDATA[cloud-services]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[terraform]]></category>
            <dc:creator><![CDATA[Sonali Shah]]></dc:creator>
            <pubDate>Wed, 19 Jul 2023 11:20:19 GMT</pubDate>
            <atom:updated>2023-07-19T16:48:26.417Z</atom:updated>
            <content:encoded><![CDATA[<p>Hello folks..!!</p><p>Today, we will discuss and solve a common error that many of you might have encountered while using modules and nested modules in Terraform. We are going to address the “Provider Configuration Not Present” error, also known as the “chicken and egg problem.&quot;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/876/1*MttfKpEc9OE-xtR2pMEKsQ.jpeg" /></figure><p><strong>Problem Notification:</strong></p><p><strong>Terraform provider configuration not present error occurs when the nested module tries to access the resource in the parent module.</strong></p><p>For Example, let’s say we are using terraform Azure module to create Azure infrastructure. We are creating azure app services using terraform code in a development environment in eastus region. Here is the directory structure.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/482/1*Cb-apkKJxXnMSD2lKNVa4g.png" /><figcaption>Directory structure</figcaption></figure><p>We have created three app services using the nested app_service module. Below are the config files content.</p><p>The main.tf file looks like</p><pre>module &quot;app_service_1&quot; {<br>  source = &quot;../../modules/app_service&quot;<br><br>  resource_group_name        = azurerm_resource_group.app_rg.name<br>  location                   = azurerm_resource_group.app_rg.location<br>  app_services_plan_id       = module.app_plan.appservice_plan_id<br>  } <br><br></pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XrU7oz6duRgG6xsRwa9-GA.png" /><figcaption>main.tf config file</figcaption></figure><p>The app_service.tf configuration of the app_service module</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*b1D39NUJwwTUNUKoB1ToTQ.png" /><figcaption>app_service.tf config file</figcaption></figure><p>The provider.tf config file of the app_service module</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3shNJxLLZkk8UltoHkNwDA.png" /><figcaption>provider.tf config file</figcaption></figure><p>Now, when I need to delete one of the app service, I used a traditional method of deleting the component by removing definition or configuration from the main.tf of the root module. Then, I executed the terraform plan</p><p>While doing so, I encountered the following error:</p><pre>Error: Provider configuration not present<br><br>To work with module.app_service_1.azurerm_windows_web_app.webapp its<br>original provider configuration at<br>module.app_service_1.provider[&quot;registry.terraform.io/hashicorp/azurerm&quot;] is<br>required, but it has been removed. This occurs when a provider configuration<br>is removed while objects created by that provider still exist in the state.<br>Re-add the provider configuration to destroy<br>module.app_service_1.azurerm_windows_web_app.webapp, after which you can remove the provider configuration again.</pre><p>The provider config of the app_service module remembers that it created the app_service_1 resources using an azurerm provider that was defined in that directory. It thinks it needs that provider configuration to still exist in order to destroy them.</p><p>When I encountered this error, I struggled to find the correct steps to resolve it. Below is a step-by-step guide to resolving the above-mentioned error:</p><ol><li>Create a copy of the module that is triggers error, In our case, we have cloned the app_service module &amp; named it app_service_delete</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/604/1*9O7vfEe6Wfc0_XAQtd-j5Q.png" /><figcaption>Created copy of app_service module with name app_service_delete</figcaption></figure><p>2. Modify the provider.tf file of the newly created module to reference the existing module name. Add alias = “app_service” to the provider “azurerm” block.</p><pre>provider &quot;azurerm&quot; {<br>version = &quot;3.54.0&quot;<br>features {}<br>skip_provider_registration = true<br>alias = &quot;app_service&quot;<br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bJaR6QYpqxijeghULkuWMQ.png" /><figcaption>Created alias in provider.tf of app_service_delete module</figcaption></figure><p>3. Update the module in the main.tf file of the root module to utilize the newly created module.</p><pre>module &quot;app_service_1&quot; {<br>source = &quot;../../modules/app_service_delete&quot;<br>.<br>.<br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bV6yhogXZZ_he9R1ZXy_oA.png" /><figcaption>Updated source attribute pointing to newly created module</figcaption></figure><p>4. Execute terraform plan and terraform apply. This will update the Terraform state file and detach all the resources of app_service_1 from the app_service module.</p><p><strong>Note: Once terraform apply successfully completes, the association between resource app_service_1 and the existing app_service module is removed.</strong></p><p>5. Now, update the provider.tf file of the newly created module and define two separate provider blocks with different aliases.</p><pre>provider &quot;azurerm&quot; {<br>version = &quot;3.54.0&quot;<br>features {}<br>skip_provider_registration = true<br>}<br><br>provider &quot;azurerm&quot; {<br>version = &quot;3.54.0&quot;<br>features {}<br>skip_provider_registration = true<br>alias = &quot;app_svc_delete&quot;<br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-xHrqne_T6oXYLlmA79TMQ.png" /><figcaption>app_service_delete’s provider.tf config file</figcaption></figure><p>6. Utilize the newly defined provider alias in the app_service.tf file when defining the app_service resource block.</p><pre>resource &quot;azurerm_windows_web_app&quot; &quot;webapp&quot; {<br>name = “app_service_1”<br>location = var.location<br>resource_group_name = var.resource_group_name<br>service_plan_id = var.app_services_plan_id<br>provider = azurerm.app_service_delete<br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KGChME00ZAJLqsAYMdFntw.png" /><figcaption>provider attribute added in resource block</figcaption></figure><p>7. The next step involves deleting the configuration of the component you wish to remove from the main.tf file of the root module.</p><pre>/* module &quot;app_service_1&quot; {<br>source = &quot;../../modules/app_service_delete&quot;<br>.<br>.<br>.<br>}*/</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dvDaST0wNv01O-gfU1Josw.png" /></figure><p>8. Run terraform plan to confirm that the app_service_1 resource will be destroyed.</p><pre>  # module.app_service_1.azurerm_windows_web_app.webapp will be destroyed<br>  - resource &quot;azurerm_windows_web_app&quot; &quot;webapp&quot; {<br>      - location                          = &quot;eastus&quot; -&gt; null<br>      - name                              = &quot;app_service_1 &quot; -&gt; null<br>      - id                                = &quot;XXXXX” -&gt; null<br>}</pre><p>9. Finally, execute terraform apply. Once the apply process is complete, you can verify that app_service_1 has been successfully deleted from the app_services dashboard on the Azure portal.</p><p>I hope this comprehensive guide proves helpful to you! Feel free to reach out if you have any further questions.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a1698239e485" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Docker Installation & Basic Commands]]></title>
            <link>https://medium.com/@sonalishah_63223/docker-installation-basic-commands-81cfd7dd581e?source=rss-3aa2b9e71f81------2</link>
            <guid isPermaLink="false">https://medium.com/p/81cfd7dd581e</guid>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[swarm]]></category>
            <category><![CDATA[docker]]></category>
            <dc:creator><![CDATA[Sonali Shah]]></dc:creator>
            <pubDate>Mon, 14 Mar 2022 18:26:53 GMT</pubDate>
            <atom:updated>2022-03-14T18:26:53.980Z</atom:updated>
            <content:encoded><![CDATA[<h3>Introduction</h3><p>Docker is open source platform for developing, shipping and running your applications. It also enables you to separate your applications from the infrastructure, this results in faster delivery of the software.<br>Docker comes with two editions</p><ul><li>Community Edition(CE)</li></ul><p>This is mainly used by developers &amp; ideal for small teams, experimenting with container-based apps e g. Dev and Test environment of the applications.</p><ul><li>Enterprise Edition (CE)</li></ul><p>This is mainly used for Production environments &amp; for the big IT firms. <a href="https://www.docker.com/enterprise-edition/"><strong>Look here for more info</strong></a><br>We are going to perform the docker installations and execute basic commands of Docker. For more information of Docker Editions, <a href="https://docs.docker.com/engine/installation/"><strong>click here</strong></a></p><h3>Installations &amp; Configuration</h3><p>In this section, we are going to install Docker CE on various Operating System which widely used like Ubuntu, CentOS, RHEL and Windows etc.</p><h3>Prerequisites</h3><ul><li>64-bit bit Operating System</li><li>Non-root user with sudo privileges</li></ul><h3>Installation</h3><h3>Ubuntu [16.04]</h3><ol><li>Docker package is available in official Ubuntu 16.04 repository, might not be the latest one. So, we will update repo to get the latest repository.</li></ol><p>curl -fsSL <a href="https://download.docker.com/linux/ubuntu/gpg">https://download.docker.com/linux/ubuntu/gpg</a> | sudo apt-key add –</p><ol><li>Add the repository to the APT sources</li></ol><p>sudo add-apt-repository “deb [arch=amd64] <a href="https://download.docker.com/linux/ubuntu">https://download.docker.com/linux/ubuntu</a> $(lsb_release -cs) stable”</p><ol><li>Now, update the package database with newly added docker repository</li></ol><p>sudo apt-get update</p><ol><li>Check the docker repo, which we are going to install.</li></ol><p>apt-cache policy docker-ce</p><p><strong>Notice: </strong>docker-ce is not installed. The docker-ce version might be different in the newly added repository</p><ol><li>Finally install docker using following command. To install the latest docker version, we can remove the version string parameter.</li></ol><p>sudo apt-get install docker-ce=&lt;VERSION_STRING&gt;</p><ol><li>Docker is now be installed, the demon process enabled to start on boot. Check that it’s running:</li></ol><p>sudo systemctl status docker</p><h3>RHEL &amp; CentOS 7</h3><ol><li>Update the official repository</li></ol><p>sudo yum update<br>yum install docker</p><ol><li>After installation, we need to start daemon, check the status &amp; enable it.</li></ol><p>sudo systemctl start docker<br>sudo systemctl status docker<br>sudo systemctl enable docker<br>sudo chkconfig docker on</p><h3>Windows</h3><ol><li>Download the docker installer file <a href="https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe"><strong>from here</strong></a>. Double click the installer</li><li>Follow the install wizard to accept the license, authorize the installer, and proceed with the install steps on the Installation wizard.</li></ol><h3>Configuration</h3><p>Here we are going to configure to execute docker commands without sudo privileges. By default docker commands runs with sudo privileges, so every time we need to add prefix sudo to execute command. If we don’t use the sudo privileges, we get the following error</p><h3>Ubuntu [16.04]</h3><ol><li>To avoid using sudo, first we will check from which user you are logged in &amp; add that particular user to the docker group</li></ol><p>sudo usermod -aG docker $(USER)</p><ol><li>Now, we will add a username of a user that we are not logged in to the docker group</li></ol><p>sudo usermod -aG docker username</p><ol><li>Let’s verify which version of docker is installed</li></ol><p>docker version</p><h3>RHEL &amp; CentOS 7</h3><ol><li>To avoid using sudo, first we will check from which user you are logged in</li></ol><p>sudo usermod -aG docker $(whoami)</p><ol><li>Now, we will add a username to the docker group</li></ol><p>sudo usermod -aG docker username</p><ol><li>Let’s verify which version of docker is installed</li></ol><p>docker version</p><h3>Hands-On with Docker</h3><ol><li>To view the entire System information</li></ol><p>docker info</p><ol><li>To pull the image from docker hub below is the docker command to pull hello-world image from docker hub</li></ol><p>docker pull centos</p><ol><li>To search image on docker hub, following is the command</li></ol><p>docker search image-name</p><ol><li>To run the hello-world image with simple run command</li></ol><p>docker run hello-world</p><p>Note: here container runs, displays the text messages and immediately exist itself. However container should be used in interactive way</p><ol><li>Let’s run the centos image in interactive mode, combination of the -i and -t switches gives you interactive shell access into the container</li></ol><p>docker run –it centos</p><ol><li>List the running docker container</li></ol><p>docker ps</p><ol><li>List all active &amp; and inactive containers use –a</li></ol><p>docker ps -a</p><ol><li>To view latest container, we have created</li></ol><p>docker ps -l</p><ol><li>To stop the running container</li></ol><p>docker stop container-id / container name</p><ol><li>To delete / remove the inactive or active container</li></ol><p>docker rm container-id / container name</p><ol><li>To remove one or more images</li></ol><p>docker rmi image-id / image name</p><ol><li>To display the live stream i.e. usage statistics of containers</li></ol><p>docker stats container-id / container name</p><ol><li>Pushing Docker images to docker repository</li></ol><p>docker login -u docker-registry-username</p><ol><li>After successful authentication, we can push our image to Docker Hub</li></ol><p>docker push docker-registry-username/docker-image-name</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=81cfd7dd581e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to host subdomain in AWS Route 53 for an existing Parent Domain with different Service…]]></title>
            <link>https://medium.com/@sonalishah_63223/how-to-host-subdomain-in-aws-route-53-for-an-existing-parent-domain-with-different-service-9b4dde061b85?source=rss-3aa2b9e71f81------2</link>
            <guid isPermaLink="false">https://medium.com/p/9b4dde061b85</guid>
            <category><![CDATA[web-hosting]]></category>
            <category><![CDATA[godaddy]]></category>
            <category><![CDATA[acm]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[route-53]]></category>
            <dc:creator><![CDATA[Sonali Shah]]></dc:creator>
            <pubDate>Sat, 24 Nov 2018 07:01:11 GMT</pubDate>
            <atom:updated>2018-11-24T07:01:11.599Z</atom:updated>
            <content:encoded><![CDATA[<h3>How to host subdomain in AWS Route 53 for an existing Parent Domain with different Service Providers</h3><p>Recently, I came across the use case where applications are being deployed using AWS Beanstalk Services. When you deploy your applications using Beanstalk, your application URL looks like <strong>my-environment.us-west-2.elasticbeanstalk.com, </strong>which is not at all user-friendly. <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html">Beanstalk details</a></p><p>To make the URLs user-friendly, one must Launch Reverse proxy server (EC2 instance). After launching server, create DNS (Forward lookup) record entry in our existing domain under your parent domain and point to Reverse Proxy Server. The approximate cost of a server is $79/ month &amp; additional certificate cost. Also, this is the single point of failure.</p><h3>Requirement</h3><p>Host a sub-domain(demo.example.com) of an existing domain(example.com) on Route 53 <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html">Read more</a>, while the rest of the domain remains with an existing service provider.</p><p>This can be done by doing a delegation of authority for the sub-domain alone to Route 53. Sub-domain delegation is done by creating a record type of NS and the data of the record type are the name-servers that will contain the DNS records for the sub-domain.</p><h3>Pre-requisite</h3><p>Following are important pre-requisites</p><ol><li>One must have AWS Account to host the subdomain and launch applications</li><li>There must be a domain registered with any of the service providers.</li><li>SSL Certificate (optional)</li></ol><h3>Architecture</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/751/1*BB0-syjzZwAuE1ljtwT5jA.png" /><figcaption>Diagrammatic representation of the use case</figcaption></figure><h3>Steps to perform</h3><ol><li>In AWS Route 53 console, create a <strong>public </strong>hosted zone with the name of the sub-domain that you want to host in Route 53. Here I have <strong>example.com </strong>domain hosted on<strong> GoDaddy</strong>. I want to create <strong>demo</strong>.<strong>example.com </strong>subdomain in my parent domain</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*q9Fo2tuU8ZgLMOY2.png" /><figcaption>Route 53: Create subdomain as a hosted zone on R53</figcaption></figure><ol><li>After creation of the hosted zone, 4 nameservers &amp; 1 SOA DNS record is generated for that hosted zone</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/0*aqsCtyhgzNNmWFPE.png" /></figure><p><strong>NOTE</strong>: <strong>Keep note of these Nameservers.</strong> We will require them for later use</p><ol><li>The next step is to do the delegation in our existing Service provider account. Create a subdomain(<strong>example.com</strong>) <strong>with the same name</strong> that we have created on Route 53</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/377/0*oxz21_yudAYlsVWv.png" /><figcaption>Registering the newly created subdomain with the parent service providers</figcaption></figure><ol><li>Now, Create DNS record entries for a newly created subdomain. Use 4 nameservers, which were generated in Route 53 as the values for the NS record. Make sure the record type is NS.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/0*Ei0JcqkfGJGMBu4F.png" /><figcaption>Route 53 NameServer record entries</figcaption></figure><ol><li>We have configured it successfully. Now, we will do the testing by launching a beanstalk Web application. <a href="https://aws.amazon.com/getting-started/tutorials/launch-an-app/">please check how to launch the Beanstalk application</a>. Put this application behind the load balancer.</li><li>Create a DNS record in Route 53 which points to the Load balancer (Web Application is running behind the load balancer). Below screenshots refers to DNS record entry(secelb.demo.example.com) in Route 53</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/413/0*EA9dlkhj-AbboYAw.png" /><figcaption>DNS Record Set entry on Route 53</figcaption></figure><ol><li>Open that subdomain in the browser</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/626/0*Ydka0jYlDqTroM7d.png" /></figure><p>We have successfully hosted the subdomain in Route 53. Now, we will create the SSL certificates for all the application URLs in our domain using AWS Certificate Manager.</p><ol><li>Go to AWS Console and Select <strong>AWS Certificate Manager </strong>service</li><li>If we w­­ant to generate a certificate for the domain in Certificate manager, use option <strong>Request a certificate.</strong> <strong>You already have a certificate for your domain choose Import a certificate option</strong>.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/774/0*bHpMLBWBbJQ4Gl08.png" /><figcaption>AWS ACM console dashboard</figcaption></figure><ol><li>Choose option “<strong>request a</strong> <strong>public certificate</strong> “</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4N25Fsl0PML84zkx.png" /><figcaption>Generating Public Certificate</figcaption></figure><ol><li>Add the domain name. Also, we can specify the ‘*’ to create a wildcard certificate.<br>So, I have added <strong>example.com &amp; *.example.com</strong></li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/626/0*b19xCkrtXQrdVHCS.png" /><figcaption>Registering domain name</figcaption></figure><ol><li>Choose <strong>Email validation</strong> method to validate your request. It will send a confirmation email on administrator email account for approval</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*1_V-uF1SVDaqlO9p.png" /></figure><ol><li>Review your request</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/998/0*NEWHWAfiysIXx-_6.png" /></figure><ol><li>Once you confirm your request, it will show the status as “pending validation”</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/725/0*P5Lq7SxNq-C9Xjg9.png" /></figure><ol><li>It sends email to the domain name you specify in the Domain-name parameter or in the optional Validation-domain You need to click <strong>I Approve</strong> link in the email.</li></ol><ul><li>administrator@your_domain_name</li><li>hostmaster@your_domain_name</li><li>postmaster@your_domain_name</li><li>webmaster@your_domain_name</li><li>admin@your_domain_name</li></ul><ol><li>You can navigate back to the ACM console. After validating the domain name, ACM changes the validation status to <strong>Success</strong>. After AWS issues the certificate, ACM changes the certificate status to <strong>Issued</strong></li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4-KIh5B65EVVQC4B.png" /></figure><ol><li>Now attach this certificate to load balancer. Click <strong>Listeners</strong>. Click <strong>Edit</strong>. Add <strong>HTTPS</strong> port</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/888/0*SFSUWLBerXhhThYv.png" /><figcaption>Open listener port 443 on the load balancer</figcaption></figure><ul><li>Click change SSL Certificate option. Choose ACM option from pop up. Select the certificate.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/773/0*SG61segHozME0PVx.png" /><figcaption>Choose the ACM certificate in Load Balancer configuration</figcaption></figure><ul><li>Click change Cipher option. Choose “Predefined Security Policy”</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/768/0*pjw7vCiAZ2eP4VE5.png" /><figcaption>Selecting the default Load Balancer cipher</figcaption></figure><p><strong>Note: Make sure port 443 is open on Server as well as on Load Balancer.</strong></p><ol><li>After this configuration, the load balancer will take some time to propagate the certificate. Keep checking in the browser. Open the domain<strong>(secelb.demo.example.com)</strong> in the browser.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/676/0*5CnCmO_FzHByz845.png" /></figure><h3>Conclusion</h3><p>Today, we have seen how to host a subdomain in Route 53 (which AWS service to host domains)<br>Create SSL certificate using AWS certificate manager service and apply it on Load Balancer.<br>Next, we will see how to import the existing certificate in AWS Certificate manager and apply it on Load Balancer.</p><blockquote>Contributed by : Sonali Shah</blockquote><blockquote><a href="https://www.linkedin.com/in/sonali-shah/">https://www.linkedin.com/in/sonali-shah/</a></blockquote><h3>Reference</h3><p><a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html</a></p><p><a href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-format.html">https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-format.html</a></p><p><a href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-prerequisites.html">https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-prerequisites.html</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9b4dde061b85" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>