<?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>Forem: ahmeddaker</title>
    <description>The latest articles on Forem by ahmeddaker (@ahmeddaker).</description>
    <link>https://forem.com/ahmeddaker</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%2F748169%2F1014c1b7-293b-40cf-9411-dc4cef88ea87.png</url>
      <title>Forem: ahmeddaker</title>
      <link>https://forem.com/ahmeddaker</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ahmeddaker"/>
    <language>en</language>
    <item>
      <title>SageMaker Studio Administration Best Practices part-1</title>
      <dc:creator>ahmeddaker</dc:creator>
      <pubDate>Sat, 21 Jan 2023 16:41:24 +0000</pubDate>
      <link>https://forem.com/ahmeddaker/sagemaker-studio-administration-best-practices-part-1-2m46</link>
      <guid>https://forem.com/ahmeddaker/sagemaker-studio-administration-best-practices-part-1-2m46</guid>
      <description>&lt;p&gt;In this series of articles we will discuss and explain the best practices for SageNaker Studio Administration from AWS whitepapers docs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
When using SageMaker Studio as your ML platform, it's important to follow best practices for scaling and organization. Consider the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose an operating model and organize ML environments to meet your business goals.&lt;/li&gt;
&lt;li&gt;Set up domain authentication for user identities and be aware of limitations.&lt;/li&gt;
&lt;li&gt;Federate user identity and authorization for fine-grained access control and auditing.&lt;/li&gt;
&lt;li&gt;Set up permissions and guardrails for various ML roles.&lt;/li&gt;
&lt;li&gt;Plan your VPC network topology based on workload sensitivity, user numbers, and launched instances and jobs.&lt;/li&gt;
&lt;li&gt; Monitor your platform's performance and resource usage to ensure that it meets your needs and identify any potential bottlenecks.&lt;/li&gt;
&lt;li&gt;Regularly review and update your security and compliance controls to ensure that they are up-to-date and meet your organization's requirements.&lt;/li&gt;
&lt;li&gt;Automate your ML pipeline as much as possible to reduce manual errors and improve the efficiency of your ML development and deployment process.&lt;/li&gt;
&lt;li&gt;Continuously evaluate and update your ML models to ensure that they are performing well and that the data used for training and validation is up-to-date.&lt;/li&gt;
&lt;li&gt;Collaborate with your team to share best practices, knowledge and expertise to improve the performance of your ML platform.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Recommended account structure&lt;/strong&gt;&lt;br&gt;
When setting up an operating model for your SageMaker Studio platform, it's important to follow best practices for organization and management. Here are a few recommendations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use AWS Control Tower for account setup, management and governance&lt;/li&gt;
&lt;li&gt;Centralize identities with an Identity Provider and AWS IAM Identity Center and enable secure access to workloads&lt;/li&gt;
&lt;li&gt;Isolate ML workloads across development, test, and production accounts&lt;/li&gt;
&lt;li&gt;Stream logs to a log archive account for analysis and filtering&lt;/li&gt;
&lt;li&gt;Use a centralized governance account for data access provisioning and auditing&lt;/li&gt;
&lt;li&gt;Embed security and governance services in each account for security and compliance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Model account structures for data science teams&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;1. Centralized: *&lt;/em&gt;&lt;br&gt;
all data science activities are managed by one team or organization.&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%2F0p772xt1kkurcjez7e28.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%2F0p772xt1kkurcjez7e28.png" alt="Image description" width="800" height="693"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this model, the ML platform team will be responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Providing shared services and tools for MLOps across data science teams&lt;/li&gt;
&lt;li&gt;Managing shared accounts for ML workload development, testing, and production&lt;/li&gt;
&lt;li&gt;Implementing governance policies for workload isolation&lt;/li&gt;
&lt;li&gt;Ensuring adherence to common best practices for the platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Decentralized: 
data science activities are spread across different business functions or divisions.&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%2Fj3yq2mraizrs3iew96ih.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%2Fj3yq2mraizrs3iew96ih.png" alt="Image description" width="800" height="697"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this model, each ML team is responsible for their own ML accounts and resources. However, it is recommended to use a centralized approach for monitoring and managing data governance for ease of audit management.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Federated: 
shared services are managed by a centralized team, while business units or product teams are managed by decentralized teams. This model is similar to a hub and spoke model, where each business unit has its own team, but they coordinate with the central team.&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%2Fmhk9cp2vwf2lngib2mj9.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%2Fmhk9cp2vwf2lngib2mj9.png" alt="Image description" width="800" height="685"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This model is similar to the centralized model, but with the added benefit of each data science/ML team having their own set of accounts for development, testing, and production. This allows for better isolation of resources and independent scaling for each team without affecting others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ML platform multitenancy&lt;/strong&gt;&lt;br&gt;
**Multitenancy is a way to manage multiple user groups within a single software instance. Each group, called a tenant, has its own set of privileges and access to the software.&lt;br&gt;
In Machine Learning (ML) platforms like SageMaker Studio, multitenancy allows multiple teams to work within the same platform, but with separate access and resources.&lt;br&gt;
It is possible to have multiple teams within one SageMaker Studio instance, but it's important to consider factors such as cost, security and account limitations.&lt;br&gt;
A best practice is to have each team work within its own Studio Domain, using separate accounts. This can be done with the help of tools like AWS Service Catalog. It allows self-service deployment of Studio resources in multiple accounts and regions.&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%2Fnm8g9pes59xoog0b8os8.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%2Fnm8g9pes59xoog0b8os8.png" alt="Image description" width="800" height="881"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Domain management&lt;/strong&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%2Fmx5eq1cmccf32ntb4t1z.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%2Fmx5eq1cmccf32ntb4t1z.png" alt="Image description" width="800" height="881"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Set up your domain for Identity and Access Management (IAM) federation.&lt;/strong&gt;&lt;br&gt;
Before you can use IAM federation for your Studio Domain, you need to create an IAM federation user role (like a platform administrator) in your IdP (Identity Provider). You can find more information on how to do this in the Identity Management section. To set up SageMaker Studio with IAM, refer to the guide "Onboard to Amazon SageMaker Domain Using IAM Identity Center" for detailed instructions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Set up your domain for single sign-on (SSO) federation.&lt;/strong&gt;&lt;br&gt;
To use Single Sign-On (SSO) with SageMaker Studio, you must first enable AWS SSO in your AWS Organization management account in the same region where you plan to run SageMaker Studio. The process for setting up the domain is similar to setting up IAM federation, with the exception of selecting SSO in the authentication section.&lt;br&gt;
For more information on how to set it up, please refer to the guide "Onboard to Amazon SageMaker Domain Using IAM Identity Center".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Studio user profile.&lt;/strong&gt;&lt;br&gt;
A user profile is an entity that represents an individual user within a SageMaker Studio domain. It's created when a user is onboarded to SageMaker Studio and it's used for sharing, reporting and other user-related features. When an administrator invites a person by email or imports them from SSO, a user profile is automatically created. Each user profile has its own private Amazon EFS home directory, settings and it's the main way to reference a user. It's recommended to create a user profile for each physical user of the application. Each user profile has its own dedicated directory on EFS, there is no shared directory between users.&lt;br&gt;
Each user profile has its own dedicated compute resources, such as EC2 instances, to run notebooks. The resources allocated to one user are completely isolated from those allocated to another user and resources allocated to users in one account are separate from those allocated to users in another account. Each user can run up to four applications within isolated Docker containers or images on the same instance type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Jupyter Server app.&lt;/strong&gt;&lt;br&gt;
When you start a Studio Notebook for a user by using the pre-signed URL or by logging in with AWS SSO, the Jupyter Server App will be launched on a SageMaker service-managed VPC instance. Each user has their own dedicated Jupyter Server App. By default, the Jupyter Server App for SageMaker Studio Notebooks runs on a dedicated ml.t3.medium instance, which is reserved as a "system" instance type and the compute for this instance is not charged to the customer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Jupyter Kernel Gateway app.
The Kernel Gateway app allows users to run multiple Jupyter notebook kernels, terminal sessions and interactive consoles within a SageMaker Studio image/Kernel Gateway app. Users can create it through the API or the SageMaker Studio interface and it runs on a chosen instance type. Users can also run up to four Kernel Gateway apps or images on the same physical instance, each one isolated by its container or image.
Users can use built-in SageMaker Studio images that are preconfigured with popular data science, and deep learning packages such as TensorFlow, Apache MXNet, and PyTorch.
To create more apps, you'll need to use a different instance type. Each user profile can only have one running instance of any type. Users will be billed for the time the instance is running. To save costs, users can shut down the instance when not in use.
When a user shuts down and reopens a Kernel Gateway app from the SageMaker Studio interface, the app starts on a new instance, so the packages installed will not be persisted. Similarly, if a user changes the instance type on a notebook, the packages and session variables will be lost. However, users can use features such as bring your own image and lifecycle scripts to bring their own packages to Studio and persist them through instance switches and new instance launches.
For more information, refer to Shut down and Update Studio Apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;- EFS volume.&lt;/strong&gt;&lt;br&gt;
When a domain is created, a single EFS volume is created for use by all the users within the domain. Each user profile receives a private home directory within the EFS volume for storing the user’s notebooks, GitHub repositories, and data files. Access to the folders is segregated by user, through filesystem permissions. SageMaker Studio creates a global unique user ID for each user profile, and applies it as a Portable Operating System Interface (POSIX) user/group ID for the user’s home directory on EFS, which prevents other users from accessing its data.&lt;/p&gt;

&lt;p&gt;It's important to backup your EFS volume to another EFS volume or Amazon S3 in case of accidental deletion, in order to restore the SageMaker Studio domain. The administrator needs to list all user profiles and associated EFS user IDs, delete all apps, user profiles, and the SageMaker Studio domain, create a new Studio domain, create the user profiles, and copy the files from the backup on EFS/Amazon S3.&lt;br&gt;
You can use LifecycleConfigurations to back up data to and from S3 every time a user starts their app.&lt;br&gt;
For more detailed instructions refer to the appendix section Studio Domain Backup and Recovery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- EBS volume.&lt;/strong&gt;&lt;br&gt;
When you launch a SageMaker Studio Notebook instance, an EBS storage volume is also attached to it. It's used as the main storage for the container or image running on the instance. However, unlike EFS storage, which is persistent, the EBS volume attached to the container is temporary. That means that if you delete the app or image, the data stored locally on the EBS volume will be lost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Securing access to the pre-signed URL.&lt;/strong&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%2Fp8xbgqs2yvx901mbjueu.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%2Fp8xbgqs2yvx901mbjueu.png" alt="Image description" width="800" height="340"&gt;&lt;/a&gt;&lt;br&gt;
When a user opens a notebook link in SageMaker Studio, the Studio validates the user's IAM policy to authorize access and generates a pre-signed URL for the user. However, since the Studio console runs on an internet domain, this generated pre-signed URL is visible in the browser session, which could present a security risk for data theft if proper access controls are not in place.&lt;/p&gt;

&lt;p&gt;To prevent this, Studio offers several methods to enforce access controls against pre-signed URL data theft:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Client IP validation using the IAM policy condition aws:sourceIp&lt;/li&gt;
&lt;li&gt;Client VPC validation using the IAM condition aws:sourceVpc&lt;/li&gt;
&lt;li&gt;Client VPC endpoint validation using the IAM policy condition 
aws:sourceVpce
When accessing Studio notebooks from the Studio console, the only available option is to use client IP validation with the IAM policy condition aws:sourceIp. But you can use browser traffic routing products like Zscaler to ensure scale and compliance for internet access. These products generate their own source IP, which is not controlled by the enterprise customer, so it's impossible to use the aws:sourceIp condition.
To use client VPC endpoint validation with the IAM policy condition aws:sourceVpce, the pre-signed URL needs to be created in the same customer VPC where Studio is deployed, and accessed via a Studio VPC endpoint on the customer VPC. This can be done by using DNS forwarding rules in Zscaler and corporate DNS, then using an Amazon Route 53 inbound resolver to access the customer VPC endpoint.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;- SageMaker domain quotas and limits.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each AWS account can only have one domain per region in IAM mode and one domain per account in SSO mode.&lt;/li&gt;
&lt;li&gt;SageMaker Studio domain SSO federation is only supported in the region where AWS SSO is set up, across member accounts of the AWS Organization.&lt;/li&gt;
&lt;li&gt;Once created, the VPC and subnet configuration of a domain cannot be changed.&lt;/li&gt;
&lt;li&gt;It is not possible to switch between IAM and SSO modes after creating a domain.&lt;/li&gt;
&lt;li&gt;Each user can only launch four Kernel Gateway apps per instance type.&lt;/li&gt;
&lt;li&gt;Each user can only launch one instance of each instance type.&lt;/li&gt;
&lt;li&gt;There are limits on the resources consumed within a domain such as the number of instances launched by instance types and number of user profiles that can be created, you can refer to the service quota page for a complete list of limits.&lt;/li&gt;
&lt;li&gt;There is a hard limit of 1,000 user profiles per SageMaker Studio Domain.&lt;/li&gt;
&lt;li&gt;Customers can request to increase the default resource limits by submitting an enterprise support case with a business justification and it will be subjected to account-level guardrails.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Architectural Patterns to Build End-to-End Data Driven Applications on AWS</title>
      <dc:creator>ahmeddaker</dc:creator>
      <pubDate>Wed, 11 Jan 2023 15:37:24 +0000</pubDate>
      <link>https://forem.com/ahmeddaker/architectural-patterns-to-build-end-to-end-data-driven-applications-on-aws-4b92</link>
      <guid>https://forem.com/ahmeddaker/architectural-patterns-to-build-end-to-end-data-driven-applications-on-aws-4b92</guid>
      <description>&lt;p&gt;Amazon Web Services (AWS) offers a wide range of services to customers, with over 200 options available. While this diversity can make it easier for customers to find the right tool for a specific task, it can also make it challenging to understand how different services can be used together to achieve a particular outcome. In particular, customers may find it difficult to identify proven patterns for building data-driven applications using the various AWS services. Conducting multiple proof-of-concepts (POCs) to try and find a suitable pattern can be a time-consuming process and may not provide the level of confidence needed to implement a solution based on other customers' experiences. This guide aims to provide guidance through the process of developing data-driven applications on AWS by providing examples of proven patterns based on customer's successful implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modern data architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When building a modern data strategy, there are three main stages to consider:&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Modernization: This stage involves updating your data infrastructure to take advantage of the scalability, security, and reliability offered by a cloud provider like AWS.&lt;/li&gt;
&lt;li&gt;Unification: This stage involves consolidating and integrating your data in data lakes and purpose-built data stores, such as Amazon S3, Amazon DynamoDB and Amazon Redshift. This allows you to easily access, process and analyze your data.&lt;/li&gt;
&lt;li&gt;Innovation: This stage involves leveraging artificial intelligence (AI) and machine learning (ML) to create new experiences, optimize business processes and gain insights from your data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is important to note that these stages do not have to be completed in a specific order, and it is possible to start at any stage, depending on your organization's data journey.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modern data architecture on AWS&lt;/strong&gt;&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Choose the right type of database that works best for your modern application, it can be a traditional database or something new like NoSQL database. This will help your application work better.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6SmevGpu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b4wv3ztoijw4q86z4ecj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6SmevGpu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b4wv3ztoijw4q86z4ecj.png" alt="Image description" width="880" height="447"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use a data lake, which is a big storage area for storing all kinds of data in a single place. This storage is often provided by Amazon S3. It will give you more freedom to use your data in different ways.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build analytics on top of the data stored in the data lake, this can be used for things like getting reports, finding trends, and making predictions.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JKRGQit8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aliyvfkgyyyqmyle9v2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JKRGQit8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aliyvfkgyyyqmyle9v2c.png" alt="Image description" width="880" height="579"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use AI and Machine Learning to make predictions and make your systems and applications smarter. AWS has many different tools to help with this.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y7I_fZ5n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gjlgqscylysge8v9d222.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y7I_fZ5n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gjlgqscylysge8v9d222.png" alt="Image description" width="880" height="430"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure to properly manage and share your data, this includes making sure it's safe, making sure the right people have access to it and making sure it complies with regulations.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Data driven architectural patterns&lt;/strong&gt;&lt;br&gt;
the five most commonly seen architecture patterns on AWS, that cover several use cases for various different industries and customer sizes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Customer 360 architecture&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;- Data Ingestion:&lt;/strong&gt; This involves consolidating data from various sources and storing it in a scheme less manner. This data is ingested as close to the source system as possible, and includes historical data as well as data that is predicted to be useful in the future. This can be done using connectors such as SAP, and services like AppFlow, Google analytics and data movement service.&lt;br&gt;
&lt;strong&gt;- Building a Unified Customer Profile:&lt;/strong&gt; This step involves extracting and linking elements from each customer record to create a single, 360-degree dataset that serves as the source of truth for customer data. Amazon Neptune is used to create a near real-time, persistent, and precise view of the customer and their journey.&lt;br&gt;
&lt;strong&gt;- Intelligence Layer:&lt;/strong&gt; This step involves analyzing the data using analytical stores such as Amazon Redshift or S3 to refine the ontologies, and access raw information using AWS Glue DataBrew and Amazon Athena serverless.&lt;br&gt;
&lt;strong&gt;- Activation Layer:&lt;/strong&gt; This final step involves activating the refined customer ontology by using AI/ML to make recommendations, predictions and create next best action APIs using Amazon personalize and pinpoint. These actions are then integrated and presented across various channels for optimized personal experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Event-driven architecture with IOT data&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;The architecture "Derive near real-time predictive analytics from IOT data" focuses on using IoT data to gain insights through predictive analytics. The process involves several steps including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data collection from IoT devices such as medical devices, car sensors, industrial IOT sensors. This telemetry data is collected close to the devices using AWS IoT Greengrass which enables cloud capabilities to local devices.&lt;/li&gt;
&lt;li&gt;Data ingestion into the cloud using edge-to-cloud interface services such as AWS IoT Core, which is a managed cloud platform that allows connected devices to easily and securely interact with cloud applications, and AWS IoT SiteWise, which is a managed service that allows you to collect, model, analyze, and visualize data from industrial equipment at scale.&lt;/li&gt;
&lt;li&gt;Data transformation in near real-time using Amazon Kinesis Data Analytics, which offers an easy way to transform and analyze streaming data in near real-time with Apache Flink and Apache Beam frameworks. The stream data is often enriched using lookup data hosted in a data warehouse such as Amazon Redshift.&lt;/li&gt;
&lt;li&gt;Machine learning models are trained and deployed in Amazon SageMaker, the inferences are invoked in micro-batch using AWS Lambda. Inferenced data is sent to Amazon OpenSearch Service to create personalized monitoring dashboards.&lt;/li&gt;
&lt;li&gt;The data lake stores telemetry data for future batch analytics, this is done by micro-batch streaming the data into the S3 data lake using Amazon Kinesis Data Firehose, which is a fully managed service for delivering near real-time streaming data to destinations such as S3, Amazon Redshift, Amazon OpenSearch Service, Splunk, and any custom HTTP endpoints or owned by supported third-party service providers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Personalized architecture recommendations&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;The architecture "Build real-time recommendations on AWS" focuses on using user interaction data to create personalized recommendations in real-time. The process involves several steps including:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Data preparation:&lt;/strong&gt; Collect user interaction data, such as item views and item clicks. Upload this data into Amazon S3 and perform data cleaning using AWS Glue DataBrew to train the model in Amazon Personalize for real-time recommendations.&lt;br&gt;
&lt;strong&gt;- Train the model with Amazon Personalize:&lt;/strong&gt; The data used for modeling on Amazon Personalize consists of three types: user activity or events, details about items in the catalog, and details about the users.&lt;br&gt;
&lt;strong&gt;- Get real-time recommendations:&lt;/strong&gt; After training the model, it can be used to provide recommendations to users through an API exposed through Amazon API Gateway. These recommendations are custom, private, and personalized. The process of creating these recommendations is simple and done by few clicks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Near real-time customer engagement&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;The architecture "Near real-time customer engagement architecture on AWS" focuses on using Amazon Pinpoint to collect customer engagement data and use it for creating insights through machine learning and data visualization. The process involves several steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Initializing Pinpoint and creating a marketing project:&lt;/strong&gt; Setting up the project to add users and their contact information, such as email addresses and configuring the metrics collection to capture customer interactions to Amazon S3.&lt;br&gt;
&lt;strong&gt;- Near real-time data ingestion:&lt;/strong&gt; Collecting data from Amazon Pinpoint in near real-time through Amazon Kinesis Data Firehose (optionally changed to Kinesis Data Stream for near real-time use cases), and storing it in S3.&lt;br&gt;
&lt;strong&gt;- SageMaker model implementation:&lt;/strong&gt; Training a model using a combination of Amazon Pinpoint engagement data and other customer demographic data, to predict the likelihood of customer churn or segmentation. This is done in an iterative manner and hosted in SageMaker endpoint.&lt;br&gt;
&lt;strong&gt;- Data consumption with Athena and QuickSight:&lt;/strong&gt; Analyzing the data from Amazon Pinpoint engagement and combining it with other data facts from data lake using Amazon Athena and visualizing it using Amazon QuickSight to share insights with others in the organization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Data anomaly and fraud detection&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;The architecture "Fraud detection architecture on AWS" is a solution for fraud detection by training machine learning models on credit card transaction data and using it to predict fraud. The process involves several steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Develop a fraud prediction machine learning model:&lt;/strong&gt; A dataset of credit card transactions is deployed using AWS CloudFormation template and an Amazon SageMaker notebook is trained with different ML models.&lt;br&gt;
&lt;strong&gt;- Perform fraud prediction:&lt;/strong&gt; an AWS Lambda function processes transactions from the dataset, assigning anomaly and classification scores to incoming data points using SageMaker endpoints. An Amazon API Gateway REST API is used to initiate predictions. The processed transactions are loaded into an S3 bucket for storage using Amazon Kinesis Data Firehose.&lt;br&gt;
&lt;strong&gt;- Analyze fraud transactions:&lt;/strong&gt; Once the transactions are loaded in S3, different analytics tools and services such as visualization, reporting, ad-hoc queries can be used for further analysis.&lt;/p&gt;

&lt;p&gt;In summary, when building data-driven applications on AWS, it's important to start by identifying key business requirements and user personas, and then use reference patterns to select the appropriate services for the use case. This includes using purpose-built services for data ingestion, such as Amazon Kinesis for real-time data and AWS Database Migration Service for batch data, and using tools like AWS DataSync and Amazon AppFlow to move data from file shares and SaaS applications to the storage layer. Data should be treated as an organizational asset and made available to the entire organization to drive actionable insights.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>architecture</category>
      <category>desigh</category>
    </item>
  </channel>
</rss>
