<?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: Leonard Hermawan</title>
    <description>The latest articles on DEV Community by Leonard Hermawan (@leonardhermawan).</description>
    <link>https://dev.to/leonardhermawan</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%2F954716%2F5f656a9b-1cc3-439a-a74c-dcc0ff33ee8f.png</url>
      <title>DEV Community: Leonard Hermawan</title>
      <link>https://dev.to/leonardhermawan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leonardhermawan"/>
    <language>en</language>
    <item>
      <title>How to use DMS services</title>
      <dc:creator>Leonard Hermawan</dc:creator>
      <pubDate>Fri, 31 Jan 2025 15:20:26 +0000</pubDate>
      <link>https://dev.to/leonardhermawan/how-to-use-dms-services-25ll</link>
      <guid>https://dev.to/leonardhermawan/how-to-use-dms-services-25ll</guid>
      <description>&lt;p&gt;DMS is a fully managed service that enables migration and continuous data replication from on-premises, cloud, or hybrid databases to AWS with minimal downtime. It supports heterogeneous and homogeneous migrations.&lt;br&gt;
Setting Up a Replication Instance&lt;br&gt;
First, we must set up a replication instance. One advantage of AWS DMS is that it does not require a license—we only pay for the virtual machine (VM) used.&lt;br&gt;
For production purposes, we can choose a multi-AZ (Availability Zone) deployment to enhance availability and fault tolerance.&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%2Fa0dcrpt99usbmzthsaxe.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%2Fa0dcrpt99usbmzthsaxe.png" alt="Image description" width="739" height="876"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Configuring the Source Endpoint&lt;br&gt;
Next, we must create a source endpoint for AWS DMS to connect to. In my case, the source is located in an AWS VPC, but we can also use an on-premises server or another cloud provider.&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%2Fdtlv9nhkdq3l1hab67ok.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%2Fdtlv9nhkdq3l1hab67ok.png" alt="Image description" width="800" height="779"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once AWS DMS successfully connects, the source endpoint status will change to Active. We must also create a target endpoint and ensure that both the source and target endpoints have an Active status.&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%2Fj1yxwoztan588wk7mrm3.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%2Fj1yxwoztan588wk7mrm3.png" alt="Image description" width="800" height="123"&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%2F07azqwyrc21c5ve2sld0.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%2F07azqwyrc21c5ve2sld0.png" alt="Image description" width="800" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To verify connectivity, we can use the Test Endpoint feature in AWS DMS.&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%2Fm66k4gd8vb3dmcgagce1.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%2Fm66k4gd8vb3dmcgagce1.png" alt="Image description" width="695" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creating a Migration Task&lt;br&gt;
After configuring the endpoints, we need to set up an AWS DMS migration task by selecting the source and target databases.&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%2Fnisuuad3ei8915knwgz8.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%2Fnisuuad3ei8915knwgz8.png" alt="Image description" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the migration type, we can choose from:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Full Load – Migrates all data in one go.&lt;/li&gt;
&lt;li&gt; Full Load and CDC (Change Data Capture) – Performs a full migration and continues replicating changes in real-time.&lt;/li&gt;
&lt;li&gt; CDC Only – Captures and replicates only the incremental changes.
I used Full Load and CDC for real-time replication of delta changes. It is recommended to enable CloudWatch monitoring to track the performance of the replication task. &lt;/li&gt;
&lt;/ol&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%2Fby39myh7i9cei1muu9ce.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%2Fby39myh7i9cei1muu9ce.png" alt="Image description" width="800" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Filtering and Migrating Data&lt;br&gt;
We can filter and specify which schemas or tables to migrate to AWS and which ones to exclude.&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%2F7pthwuga85a0libwph5v.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%2F7pthwuga85a0libwph5v.png" alt="Image description" width="800" height="778"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once everything is set up, the migration task will start, and the data will begin replicating to the target database.&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%2Fgdle2ltqljek01izeg80.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%2Fgdle2ltqljek01izeg80.png" alt="Image description" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dms</category>
      <category>database</category>
      <category>migration</category>
      <category>aws</category>
    </item>
    <item>
      <title>Amazon Q in Quicksight</title>
      <dc:creator>Leonard Hermawan</dc:creator>
      <pubDate>Mon, 27 Jan 2025 05:03:29 +0000</pubDate>
      <link>https://dev.to/aws-builders/amazon-q-in-quicksight-1gd8</link>
      <guid>https://dev.to/aws-builders/amazon-q-in-quicksight-1gd8</guid>
      <description>&lt;p&gt;Amazon Q in QuickSight is a natural language querying feature in Amazon QuickSight BI tools that allows users to ask questions about their data in plain language and receive visual responses instantly. This feature helps users create visual diagrams and analyze datasets with the assistance of a large language model (LLM) in the background.&lt;br&gt;
To start using QuickSight, you must first sign up via the QuickSight AWS Console. You can log in to QuickSight using SAML, an IAM user, or IAM Identity Center.&lt;br&gt;
Setting up an IAM Role for QuickSight&lt;br&gt;
You need to allow access to the resources you plan to use with QuickSight. For this example, I used a dataset stored in an S3 bucket.&lt;br&gt;
Once the user is successfully created, you can proceed by uploading your dataset to S3, which serves as the repository. QuickSight supports many different dataset types as sources.&lt;br&gt;
After successfully uploading the dataset, it becomes visible in QuickSight. For this demonstration, I used a dataset related to the sales of home materials at offline retail stores.&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%2F5tuotwq6kqvyfznwmbon.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%2F5tuotwq6kqvyfznwmbon.png" alt="Image description" width="712" height="613"&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%2Fdvdqi3lsjtzy9yd2woxx.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%2Fdvdqi3lsjtzy9yd2woxx.png" alt="Image description" width="800" height="742"&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%2Fpt487zs0afyuo2bi9d40.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%2Fpt487zs0afyuo2bi9d40.png" alt="Image description" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My user successfully created.&lt;/p&gt;

&lt;p&gt;Now we put our dataset in the S3 as a repository. Quicksight support many different datasets as a source.&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%2F3ds43bub20wyurkrjnhh.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%2F3ds43bub20wyurkrjnhh.png" alt="Image description" width="800" height="395"&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%2Fkkcoiez2xd3y0kwucuhx.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%2Fkkcoiez2xd3y0kwucuhx.png" alt="Image description" width="800" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After dataset upload successfully, we can see our data in the Quicksight.&lt;br&gt;
I used data set about sales of home material at retail offline stores.&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%2F30cqu3j93mjg25psa4po.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%2F30cqu3j93mjg25psa4po.png" alt="Image description" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Optimizing the Dataset in QuickSight&lt;br&gt;
In this stage, you can create synonyms and remove unused labels to optimize the dataset for both the QuickSight dashboard and QuickSight Q (Generative AI for BI). This step is particularly useful when enabling the generative AI capabilities later.&lt;br&gt;
QuickSight User Roles and Licenses&lt;br&gt;
To create a dashboard from scratch and enable generative AI features in QuickSight, you need an AUTHOR PRO license.&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%2F12xictw3sxbh9wg2gorh.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%2F12xictw3sxbh9wg2gorh.png" alt="Image description" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using Generative AI in QuickSight&lt;br&gt;
With generative AI in QuickSight, you can issue prompts to generate visualizations based on your source dataset using the "Build a Visual" command. This feature allows you to ask questions about your dataset, create diagrams, and gain deeper insights for analysis.&lt;/p&gt;

</description>
      <category>generativeai</category>
      <category>bitools</category>
      <category>aws</category>
    </item>
    <item>
      <title>Auto Remediation Action with AWS Config and AWS System Manager to Make Your Life Easier</title>
      <dc:creator>Leonard Hermawan</dc:creator>
      <pubDate>Tue, 09 Jan 2024 03:55:55 +0000</pubDate>
      <link>https://dev.to/leonardhermawan/auto-remediation-action-with-aws-config-and-aws-system-manager-to-make-your-life-easier-ik9</link>
      <guid>https://dev.to/leonardhermawan/auto-remediation-action-with-aws-config-and-aws-system-manager-to-make-your-life-easier-ik9</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  It can be challenging to monitor the EC2 instances that developers or admin teams launch. Sometimes, these launches may exceed the budget allocated to an organization. To address this, I will demonstrate how to set up automatic remediation actions using AWS Config, AWS Systems Manager and AWS Lambda. This setup ensures that only EC2 instances of type 't3.medium' are considered compliant. Any instance launched with a type other than 't3.medium' will be identified as non-compliant by AWS Config and will be immediately stopped by an automatic remediation action. This approach helps in maintaining budget control and ensuring compliance with organizational standards for resource usage.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In this case we will make custom rules with help from AWS Lambda in AWS config. Before start, this is my network topology diagram for real life testing.&lt;/p&gt;

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

&lt;p&gt;Add new rule:&lt;br&gt;
I will choose custom lambda rule to make custom AWS config rule.&lt;/p&gt;

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

&lt;p&gt;For lambda code,this is lambda code I configured:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Oz5X4Xbg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qeozcf4jqvrsh9mnayba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Oz5X4Xbg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qeozcf4jqvrsh9mnayba.png" alt="Image description" width="800" height="403"&gt;&lt;/a&gt;&lt;br&gt;
AWS Config detects a change in an EC2 instance's configuration, it will triggers this Lambda function. This function evaluates the instance and reports back to AWS Config whether the instance is compliant or not.&lt;br&gt;
Configure the rule, and fill lambda ARN with ARN lambda we just created. &lt;/p&gt;

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

&lt;p&gt;I configured trigger type with “when configuration changes” and resource= “AWS ëc2 instance”&lt;/p&gt;

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

&lt;p&gt;Check review for one last time:&lt;/p&gt;

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

&lt;p&gt;After creating rules, we will make remediation action IF our rule is not compliant.&lt;/p&gt;

&lt;p&gt;We go to AWS System Manager to use Automation Document to help us with remediation automatic action.&lt;/p&gt;

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

&lt;p&gt;We will use automation document named : AWS-StopEC2Instance. This is the content of automation document in SSM.&lt;/p&gt;

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

&lt;p&gt;After this, we can continue setting automatic remediation action in AWS config.&lt;/p&gt;

&lt;p&gt;AWS Config also offers manual remediation, or manual remediation with a human approval process. We can choose based on our requirements.&lt;/p&gt;

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

&lt;p&gt;We can setup retries for this script to take action, I setup just 1 time. Resource id parameter I fill with InstanceID. &lt;br&gt;
For remediation action, choose the document we choose at AWS System Manager.&lt;br&gt;
Our rules and automatic remediation action have now been completed. It's time to test if our script and design are functioning correctly.&lt;br&gt;
I am attempting to launch a noncompliant EC2 instance with the type “t3.micro”. After the EC2 instance starts and passes the status check, it won't be long before our SSM automation initiates action to stop this instance.&lt;/p&gt;

&lt;p&gt;The EC2 instance will be stopped automatically.&lt;/p&gt;

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

&lt;p&gt;Summary of aws config detail page: &lt;/p&gt;

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

&lt;p&gt;Our remediation action status is “Äction executed successfully “.&lt;br&gt;
Lets try it again to launch another ec2.&lt;/p&gt;

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

&lt;p&gt;Only ec2 type t3.medium running well. Not comply ec2 already stopping by SSM automation action .&lt;br&gt;
(Unused ec2 already terminated by me after stop)&lt;br&gt;
And one of important to run these lab is IAM role and policy.&lt;br&gt;
This is IAM role to make SSM run automation process to stopping ec2 that not compliant. We can change  policies ”EC2fullaccess” to have more least privilege level in our production /development level.&lt;/p&gt;

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

&lt;p&gt;With trust relationship to SSM.&lt;/p&gt;

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

&lt;p&gt;Source to read:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;a href="https://docs.aws.amazon.com/config/latest/developerguide/remediation.html"&gt;https://docs.aws.amazon.com/config/latest/developerguide/remediation.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>How to Configure AWS Managed Microsoft Active Directory</title>
      <dc:creator>Leonard Hermawan</dc:creator>
      <pubDate>Mon, 08 Jan 2024 05:08:34 +0000</pubDate>
      <link>https://dev.to/leonardhermawan/how-to-configure-aws-managed-microsoft-active-directory-3l7f</link>
      <guid>https://dev.to/leonardhermawan/how-to-configure-aws-managed-microsoft-active-directory-3l7f</guid>
      <description>&lt;p&gt;AWS Managed Microsoft Active Directory (AD) provides a fully managed Active Directory service in the AWS cloud. It's designed to enable AWS resources and applications to use standard AD features without setting up and managing your own Active Directory infrastructure. &lt;br&gt;
We can create this using Directory Service window:&lt;/p&gt;

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

&lt;p&gt;Fill in the Directory DNS name, admin password for this new domain.&lt;/p&gt;

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

&lt;p&gt;Next we configure where VPC and subnet that this AWS Managed Microsoft AD will launch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1xY_fuMd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6bpwch1g2ihs5in56jhk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1xY_fuMd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6bpwch1g2ihs5in56jhk.png" alt="Image description" width="800" height="212"&gt;&lt;/a&gt;&lt;br&gt;
And review it for one last time:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R9Kpqm_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tblr3kzqni6aka0mbyu4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R9Kpqm_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tblr3kzqni6aka0mbyu4.png" alt="Image description" width="800" height="523"&gt;&lt;/a&gt;&lt;br&gt;
And then create the directory.&lt;/p&gt;

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

&lt;p&gt;After we create the directory, we will configure directory administration EC2 instance.&lt;/p&gt;

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

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

&lt;p&gt;We can configure Remote access CIDR /which subnet is allowed to do RDP to this instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s-e3TDPT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oygxqor731yr7ynyb6im.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s-e3TDPT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oygxqor731yr7ynyb6im.png" alt="Image description" width="794" height="132"&gt;&lt;/a&gt;&lt;br&gt;
SSM Will help to create our resources .&lt;/p&gt;

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

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

&lt;p&gt;Management instance will be up:&lt;/p&gt;

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

&lt;p&gt;We will check Management Instance properties:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1OwO7GWz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u7mnnmqx3ysl6onhwpuh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1OwO7GWz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u7mnnmqx3ysl6onhwpuh.png" alt="Image description" width="800" height="432"&gt;&lt;/a&gt;&lt;br&gt;
If we already joined with the domain, computer name will similar as below:&lt;/p&gt;

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

&lt;p&gt;If the admin EC2 still not joined with the domain, we can do manually to join this Management intsance ec2 to leonard.example.com domain. Configure manually DNS name, and domain name in the properties.&lt;/p&gt;

&lt;p&gt;We will install features to support AWS Managed Microsoft AD in our Management instance.&lt;br&gt;
Install the feature we need for AD:&lt;/p&gt;

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

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

&lt;p&gt;IAM Role that needed to run this service:&lt;/p&gt;

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

&lt;p&gt;With trust relationship as below:&lt;/p&gt;

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

&lt;p&gt;Security group enabled: RDP port &lt;/p&gt;

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

&lt;p&gt;And try log in again to Management instance  using user and password domain:&lt;/p&gt;

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

&lt;p&gt;I successfully log in and Management instance  already connected with AWS Managed Microsoft AD (domain leonard.example.com) :&lt;/p&gt;

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

&lt;p&gt;We can add new user /group from this Management instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kV3wVvFC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wme57xsuq6s47leo5547.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kV3wVvFC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wme57xsuq6s47leo5547.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;br&gt;
We can custom password policy. Expired password time , etc. or when someone left the company.&lt;/p&gt;

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

&lt;p&gt;And we can try to log in using this new username to another device that already joined domain .&lt;/p&gt;

&lt;p&gt;Source:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html"&gt;https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>activedirectory</category>
      <category>aws</category>
      <category>communitybuilder</category>
      <category>managedad</category>
    </item>
    <item>
      <title>Live Sport Broadcast using AWS Elemental Service</title>
      <dc:creator>Leonard Hermawan</dc:creator>
      <pubDate>Thu, 05 Jan 2023 05:30:25 +0000</pubDate>
      <link>https://dev.to/aws-builders/live-sport-broadcast-using-aws-elemental-service-1748</link>
      <guid>https://dev.to/aws-builders/live-sport-broadcast-using-aws-elemental-service-1748</guid>
      <description>&lt;p&gt;World Cup Time finally over! I really enjoyed this World Cup!. I watched official live stream in my Windows Laptop, sometime on my another mobile phone devices Android or an IOS device. I wonder. Is there any service that I can use for live broadcasting with AWS?&lt;br&gt;
Yes it is! AWS provided us with AWS Elemental service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8x4h62y7g63c3vn717rg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8x4h62y7g63c3vn717rg.png" alt="network topology diagram" width="800" height="322"&gt;&lt;/a&gt;&lt;br&gt;
This lab i demonstrate using above topology diagram.&lt;br&gt;
AWS Elemental MediaLive will encodes video in real time, compressing live broadcast sources into streams for delivery to broadcast TV , mobile devices (Android or IOS ) or another internet connected devices  .&lt;br&gt;
AWS Elemental MediaPackage prepares, distributes our live / on demand video content to a broad range of connected devices ( Windows, Android, IOS, etc ). The service can take a single video input from an encoder such as AWS Elemental MediaLive.&lt;br&gt;
Amazon CloudFront will deliver our content all around the world.&lt;br&gt;
Live streaming using Real time Messaging Protocol, and will use AWS MediaLive and AWS Elemental MediaPackage&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjnab08q4rfmvdfijzbgf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjnab08q4rfmvdfijzbgf.png" alt="simplyfy network topology diagram" width="800" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For simplify my lab , I substitute live broadcasting devices with S3 Bucket. I put my free sample soccer video I got from pixabay.com/ to my S3 bucket.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbun1p35oc3y2sl7rtrlm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbun1p35oc3y2sl7rtrlm.png" alt="my s3 video bucket" width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And then we can setup our AWS Elemental MediaLive&lt;br&gt;
We must create channel first .&lt;/p&gt;

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

&lt;p&gt;Create IAM Role&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fop8e8oyvlc0lcl1223xi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fop8e8oyvlc0lcl1223xi.png" alt="Create IAM Role" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fill input source in INPUT SOURCE A:&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fupfx6d2ltp0dlcfota.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fupfx6d2ltp0dlcfota.png" alt="Input class and input source" width="800" height="376"&gt;&lt;/a&gt;&lt;br&gt;
Add input attachments:&lt;br&gt;
With input sources our S3 url wehre we put our free video.&lt;/p&gt;

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

&lt;p&gt;Medialive channel succesfully create: &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8pwjq2kcdvqcxgxgjd6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8pwjq2kcdvqcxgxgjd6.png" alt="channel status" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I will setting the output video first using AWS Elemental MediaPackage. &lt;/p&gt;

&lt;p&gt;Choose mediapackage:&lt;/p&gt;

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

&lt;p&gt;Create a new channel&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22hvt1phkfri3ryrltnr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22hvt1phkfri3ryrltnr.png" alt="Input Apple HLS" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create apple output video. This is for viewer who owned IOS devices.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko2q9eirhzm1snx9299y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko2q9eirhzm1snx9299y.png" alt="Image description" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I create three endpoints for three different outputs devices. For windows viewer using laptop or PC. For Android and IOS viewer using mobile devices , smart TV or Laptop.&lt;/p&gt;

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

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

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

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkco9of4tg61846uuu3c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkco9of4tg61846uuu3c.png" alt="all endpoint successfully created" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After we created all three endpoint, we can preview our video using preview button under each our origin endpoint. If our video appear, we successfully configure our AWS Elemental services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7zx01t0mis25s3onl6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7zx01t0mis25s3onl6a.png" alt="Preview our video" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I successfully configure using Elemental MediaLive and MediaPackage for sport live broadcasting service. Now we can distribute our live streaming globally using AWS CloudFront!&lt;/p&gt;

&lt;p&gt;Source:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/medialive/faqs/"&gt;https://aws.amazon.com/medialive/faqs/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/mediapackage/faqs/"&gt;https://aws.amazon.com/mediapackage/faqs/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>livebroadcast</category>
      <category>communitybuilder</category>
    </item>
    <item>
      <title>How to Choose &amp; Configure Appliance for AWS Gateway Load Balancer</title>
      <dc:creator>Leonard Hermawan</dc:creator>
      <pubDate>Thu, 24 Nov 2022 09:14:43 +0000</pubDate>
      <link>https://dev.to/leonardhermawan/how-to-choose-configure-appliance-for-aws-gateway-load-balancer-33bc</link>
      <guid>https://dev.to/leonardhermawan/how-to-choose-configure-appliance-for-aws-gateway-load-balancer-33bc</guid>
      <description>&lt;p&gt;This article is continuation from my previous article.&lt;/p&gt;

&lt;p&gt;My Topology for this lab same as previous one:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YIwzuOop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/abcp54yd5irwaz6sihu7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YIwzuOop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/abcp54yd5irwaz6sihu7.png" alt="Network Topology Diagram" width="880" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choose and configure 3rd party appliance for Gateway Load Balancer in AWS Marketplace.&lt;br&gt;
When we create security Gateway load balancer, AWS give us many choice using their 3rd party partner security appliance. I tried using Checkpoint product for this demo. We can use another 3rd party brand as well.&lt;/p&gt;

&lt;p&gt;At AWS marketplace I found 2 of these product and subscribed it. One is for Security Gateway load balancer and one is for their management server&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1RYccwM---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6i41608yvpyeg03kcdkf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1RYccwM---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6i41608yvpyeg03kcdkf.png" alt="Security Management Server" width="880" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;After we subscribed it we can deploy in using EC2 instance.&lt;/p&gt;

&lt;p&gt;We can use cloudformation template from checkpoint to deploy our security management server and Security Gateway load balancer.&lt;br&gt;
In this stack template we chose which vpc for our Management server and Security GWLB , which subnet we using. I created new VPC called security VPC for this purpose.&lt;/p&gt;

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

&lt;p&gt;After the stack complete, we can access our security GWLBs using our Management Server&lt;br&gt;
And we can ssh to our management server using our private key file using putty.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zdVRJ1-G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yzx0actp7m89tanb8q4q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zdVRJ1-G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yzx0actp7m89tanb8q4q.png" alt="ssh to Security Management Server" width="880" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;we must set up username and password for our Management Server before we can access it with WEBGUI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lNm4bDHS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q0e93yxku7vy7zhnry8c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lNm4bDHS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q0e93yxku7vy7zhnry8c.png" alt="Set username and password" width="880" height="181"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we want monitor our Security Gateway Load Balancer in our local laptop, we can install Smart Console from checkpoint website.&lt;br&gt;
After installed and verify our account, it will be automatically detected our security gateway and our Management server in AWS . Seamless integration with our AWS environment. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D4WqdvRx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n22fb1izu81hfy8tzyas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D4WqdvRx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n22fb1izu81hfy8tzyas.png" alt="Smart Console AWS environment" width="880" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My reference for this lab:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&amp;amp;solutionid=sk174447"&gt;https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&amp;amp;solutionid=sk174447&lt;/a&gt; -&amp;gt;AWS cloudformation example template for gateway load balancer (we can custom all the parameters freely)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=f4DduW2M5WI"&gt;https://www.youtube.com/watch?v=f4DduW2M5WI&lt;/a&gt; -&amp;gt; AWS official short video about Gateway Load Balancer&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>aws</category>
      <category>gatewayloadbalancer</category>
      <category>security</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Setup and Configuring AWS Gateway Load Balancer</title>
      <dc:creator>Leonard Hermawan</dc:creator>
      <pubDate>Mon, 31 Oct 2022 04:13:01 +0000</pubDate>
      <link>https://dev.to/aws-builders/setup-and-configuring-aws-gateway-load-balancer-2ing</link>
      <guid>https://dev.to/aws-builders/setup-and-configuring-aws-gateway-load-balancer-2ing</guid>
      <description>&lt;p&gt;Gateway load balancer works at Layer 3 OSI layer. Gateway Load Balancers use Gateway Load Balancer endpoints to securely exchange traffic across many VPC we have. In example we have 2 VPC. Security VPC and HQ VPC .&lt;/p&gt;

&lt;p&gt;This is network topology diagram for this lab.&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%2Ffp4rbsuyj9a3jbekbo8s.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%2Ffp4rbsuyj9a3jbekbo8s.png" alt="AWS gateway Load Balancer topology diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used 2 ip subnets for HQ VPC. One subnet for our web servers, and one subnet for GWLB enpoint in HQ VPC.&lt;/p&gt;

&lt;p&gt;First step we must choose and do initial configuration to launch third party security appliance. &lt;br&gt;
We can use Cloudformation template to help us do initial configuration for Gateway LoadBalancer. We must fill the important parameters ourself such as which VPC our security Gateway Load Balancer will reside, which subnet will we use, and if we want to install security  management server directly,and configured our security group to permit udp port 6081 for allowing traffic from GWLB. &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%2Fch6brjg7omgmrh0edm59.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%2Fch6brjg7omgmrh0edm59.png" alt="AWS cloudformation checkpoint stack (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I configured  my Gateway Load Balancer in my Security-VPC with 2 of availabilty zones( refer my topology diagram).   &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%2Fjn050nhsd278968jw0d5.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%2Fjn050nhsd278968jw0d5.png" alt="AWS cloudformation checkpoint stack (2)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I turn to ‘false’ connection acceptance required. &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%2Fnh2w8n5zxykwsk1ilec0.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%2Fnh2w8n5zxykwsk1ilec0.png" alt="Setting EC2 and auto scaling for Gateway Load Balancer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am using checkpoint AMI with C5.Xlarge EC2 (this is EC2 type recommendation). (I will added another post how to choose security gateway from AWS Marketplace).For this lab I created 2 Security Gateways Checkpoint AMI .&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%2F7y2x5ni5dec1n2rtquc2.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%2F7y2x5ni5dec1n2rtquc2.png" alt="Security Gateway EC2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After our security gateway instance is up , we must create target group&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%2Fm5wf8ldlnlfxdk71qbnh.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%2Fm5wf8ldlnlfxdk71qbnh.png" alt="Setting Target Group"&gt;&lt;/a&gt;&lt;br&gt;
After that we must create Gateway load balancer endpoint located in our HQ VPC&lt;br&gt;&lt;br&gt;
Before creating endpoint, we must create endpoint services first and choose our Gateway Load Balancer we created earlier.&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%2Fco2em0st1bfc719t73wv.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%2Fco2em0st1bfc719t73wv.png" alt="Configuring Endpoint Services"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After that we can create endpoint . We must copy our endpoint service name from previous activity, and select subnets which our endpoint services located.&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%2Fu0wqde72qrvvfaf38h76.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%2Fu0wqde72qrvvfaf38h76.png" alt="Create Endpoint"&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%2Fdqlvw5in6ycn3uyzsfna.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%2Fdqlvw5in6ycn3uyzsfna.png" alt="VPC endpoint successfully created"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last step we must configure our route tables . Outgoing route table for redirect outgoing traffic from our web server to our endpoint and Ingress route table for redirect incoming traffic from internet that will go to our web server.  All traffic will be check by our security gateway in our security VPC.&lt;/p&gt;

&lt;p&gt;All outgoing traffic will go to our security gateway first via our endpoint.&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%2Fofuxw549dpy1v92abv04.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%2Fofuxw549dpy1v92abv04.png" alt="Outgoing Route Table"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and Ingress route table for redirect incoming traffic from internet that will go to our web server.&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%2Fdhw1c2dtvjv014pdnh8a.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%2Fdhw1c2dtvjv014pdnh8a.png" alt="Ingress Route Table"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can use add 1 more route table for outgoing traffic to the internet from our HQ-VPC.&lt;br&gt;
We can check our Endpoint Metric in AWS CloudWatch too. (Configured at Cloudformation Stack). Thankyou for your time reading this!&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%2F2nv1cd1la2ah9naxihrm.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%2F2nv1cd1la2ah9naxihrm.png" alt="AWS CloudWatch Metric"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My reference for this lab:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&amp;amp;solutionid=sk174447" rel="noopener noreferrer"&gt;https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&amp;amp;solutionid=sk174447&lt;/a&gt; -&amp;gt;AWS cloudformation example template for gateway load balancer (we can custom all the parameters freely)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=f4DduW2M5WI" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=f4DduW2M5WI&lt;/a&gt; -&amp;gt; AWS official short video about Gateway Load Balancer&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>aws</category>
      <category>cloudskills</category>
      <category>devops</category>
      <category>security</category>
    </item>
  </channel>
</rss>
