<?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: Anja</title>
    <description>The latest articles on DEV Community by Anja (@anja).</description>
    <link>https://dev.to/anja</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%2F486610%2F77b48738-6ca1-442e-bcf9-05c933d58944.jpeg</url>
      <title>DEV Community: Anja</title>
      <link>https://dev.to/anja</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anja"/>
    <language>en</language>
    <item>
      <title>Amazon Route 53</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Tue, 20 Dec 2022 10:39:34 +0000</pubDate>
      <link>https://dev.to/anja/amazon-route-53-2g7j</link>
      <guid>https://dev.to/anja/amazon-route-53-2g7j</guid>
      <description>&lt;p&gt;&lt;strong&gt;Amazon Route 53&lt;/strong&gt; is a Domain Name System (DNS) web service. The task of a DNS is to translate domain names into IP addresses. An example for a domain name is &lt;a href="http://www.google.com" rel="noopener noreferrer"&gt;www.google.com&lt;/a&gt;, an IP address could be e.g. &lt;strong&gt;172.217.0.0&lt;/strong&gt;. When you open a new URL, like &lt;a href="http://www.google.com" rel="noopener noreferrer"&gt;www.google.com&lt;/a&gt;, the browser first checks in the caches if the IP for this domain name is already present. If it can't find one, it will send a request to a DNS server to receive the IP address. With the IP address the browser is then able to connect to the destination server.&lt;/p&gt;

&lt;p&gt;Route 53 is in authoritative DNS, meaning that you have control over which DNS record entries it has. Its also possible to add health checks so that as a result Route 53 returns the IP of the healthy resource. &lt;/p&gt;

&lt;h3&gt;
  
  
  Elements of a DNS record
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;domain name: e.g. google.com&lt;/li&gt;
&lt;li&gt;record type: A,AAAA, CNAME, ..&lt;sup id="fnref1"&gt;1&lt;/sup&gt;
&lt;/li&gt;
&lt;li&gt;value: e.g. 172.217.0.0&lt;/li&gt;
&lt;li&gt;routing policy &lt;/li&gt;
&lt;li&gt;TTL: Time to Live, how long the DNS record is cached&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hosted Zones
&lt;/h3&gt;

&lt;p&gt;Hosted Zones are containers for records that define how to route traffic to a domain. Public hosted zones contain records for traffic on the internet. Private Hosted Zones contain records for one or more Virtual Private Networks (VPN).&lt;/p&gt;

&lt;h3&gt;
  
  
  Time to Live (TTL)
&lt;/h3&gt;

&lt;p&gt;When the client receives the IP address from Route 53, there will also be an information about the TTL contained. If the TTL is e.g. 24 hours, then the client will ask Route 53 for a new IP address of this destination when the time has passed. If you configure a low TTL this will cost more as there are more requests to Route 53 neccessary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Routing Policies
&lt;/h3&gt;

&lt;p&gt;Routing policies define how Route 53 will respond to DNS queries.&lt;/p&gt;

&lt;h4&gt;
  
  
  Simple
&lt;/h4&gt;

&lt;p&gt;The simple policy means, that Route 53 will send back one or more IP addresses for one domain name. The client can then choose one of these randomly. This policy can't be combined with health checks.&lt;/p&gt;

&lt;h4&gt;
  
  
  Weighted
&lt;/h4&gt;

&lt;p&gt;With the weighted policy you control how many % of the requests should go to each destination server. You can assign a weight to each DNS record then, when these have the same name and type. You can also add health checks. A possible use case for this policy is to test a new app version with some of your customers.&lt;/p&gt;

&lt;h4&gt;
  
  
  Latency based
&lt;/h4&gt;

&lt;p&gt;If you would like to redirect to the resource that has the least latency for the client that send the request, you can use the latency based policy. Again, you can add a health check.&lt;/p&gt;

&lt;h4&gt;
  
  
  Failover (active-passive)
&lt;/h4&gt;

&lt;p&gt;With the failover policy you can define a primary resource with a health check and a different resource for failover. When the first resource is unhealthy, the traffic will be routed to the second resource.&lt;/p&gt;

&lt;h4&gt;
  
  
  Geolocation
&lt;/h4&gt;

&lt;p&gt;The geolocation policy is based on the user-location. You can e.g. define that if the DNS request originates from France, you route them to a resource in Germany. You can define geolocations by continent, by country, or in the US by state.&lt;/p&gt;

&lt;h4&gt;
  
  
  Geoproximity
&lt;/h4&gt;

&lt;p&gt;Geoproximity routing routes traffic to your resources based on the geolocation of the users and the resources. You can shift more traffic to a certain resource with a bias&lt;sup id="fnref2"&gt;2&lt;/sup&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Multi-Value
&lt;/h4&gt;

&lt;p&gt;When configured for Multi-value Route 53 will return multiple IP-addresses for the same domain name which the client can choose from. It is possible to add health checks.&lt;/p&gt;

&lt;p&gt;📚 Learn more: &lt;a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html" rel="noopener noreferrer"&gt;AWS Route 53 documentation&lt;/a&gt;&lt;/p&gt;




&lt;ol&gt;

&lt;li id="fn1"&gt;
&lt;p&gt;Full list with details about the types: &lt;a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html" rel="noopener noreferrer"&gt;Record types&lt;/a&gt; ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn2"&gt;
&lt;p&gt;Detailed explanation with visuals: &lt;a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geoproximity.html" rel="noopener noreferrer"&gt;Geoproximity policy&lt;/a&gt; ↩&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;

</description>
      <category>reactnative</category>
      <category>dart</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Amazon S3 - Basics</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Fri, 16 Dec 2022 14:07:47 +0000</pubDate>
      <link>https://dev.to/anja/amazon-s3-basics-1lk3</link>
      <guid>https://dev.to/anja/amazon-s3-basics-1lk3</guid>
      <description>&lt;p&gt;Amazon S3 is a highly available data storage that can be used for example for backups, app hosting, data lakes and hosting of static websites. With S3 you can store objects in buckets, objects are similar to files and buckets can be thought of as directories. A &lt;strong&gt;bucket&lt;/strong&gt; must have a globally unique name and is tied to a specific region.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objects&lt;/strong&gt; have a unique key as an identifier and are composed of the folder name and the object name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ss3://EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com/picture/cat.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here "picture/cat.png" would be the unique key. &lt;/p&gt;

&lt;h3&gt;
  
  
  🔒Security
&lt;/h3&gt;

&lt;p&gt;You can control access to your S3 buckets by using S3 bucket policies, IAM roles or IAM policies. If your data in the S3 buckets isn`t supposed to be public, check that the bucket settings to block public access are configured correctly. To encrypt your data, you can enable server-side encryption, which encrypts your data when it gets stored in the bucket. Alternatively you could use client-side encryption, meaning that you encrypt your data before you load it into the S3 bucket.&lt;/p&gt;

&lt;h3&gt;
  
  
  Versioning
&lt;/h3&gt;

&lt;p&gt;When you enable versioning on your buckets, a new version will be created when you upload a file to a destination where a file already exists. It's recommended to enable it so you don't accidentally overwrite files you still need.&lt;/p&gt;

&lt;h3&gt;
  
  
  Replication
&lt;/h3&gt;

&lt;p&gt;With replication you can crate copies of objects across S3 buckets asynchronously. This can be replication inside of the same or a different region, "Same region replication" or "Cross region replication".&lt;/p&gt;

&lt;h3&gt;
  
  
  💾 Storage classes
&lt;/h3&gt;

&lt;p&gt;There are different S3 storage classes available.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. General purpose
&lt;/h4&gt;

&lt;p&gt;The general purpose class offers an availability of 99,99% and is fitting for frequently accessed data. It offers a low latency and a high throughput. Use cases are e.g. cloud apps, dynamic websites or mobile apps.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Infrequent access
&lt;/h4&gt;

&lt;p&gt;With the infrequent access class you have an availability of 99,9%. It should be used for less frequently accessed data, that still requires a rapid access to the data. Its cheaper than "general purpose", but there's cost for the retrieval of data. It's useful for e.g. backup and disaster recovery.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. One Zone-infrequent access
&lt;/h4&gt;

&lt;p&gt;Fitting when you access your data infrequently and only want your data in one Availability Zone(AZ). The availability is 99,5%. It can be used for storing secondary backup copies of on-premise data or re-creatable data.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Glacier storage classes
&lt;/h4&gt;

&lt;p&gt;The purpose of the glacier storage classes is archiving and backup. You need to pay for storage and object retrieval.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Glacier instant retrieval&lt;/strong&gt; offers a fast retrieval of data(milliseconds) that is rarely accessed.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Glacier flexible retrieval&lt;/strong&gt; you have flexible retrieval times ranging from minutes to hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Glacier deep archive&lt;/strong&gt; offers a long term storage with a retrieval time of 12 hours.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Intelligent Tiering
&lt;/h4&gt;

&lt;p&gt;Intelligent Tiering automatically moves data to the most cost-effective tier based on the access frequency. You are charged an object monitoring and automation charge, but you don't need to pay for data retrieval. When activated, your objects are moved automatically to these tiers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frequent Access Tier: default&lt;/li&gt;
&lt;li&gt;Infrequent Access Tier: objects are not accessed for 30 days&lt;/li&gt;
&lt;li&gt;Archive Instant Access Tier: objects are not accessed for 90 days&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also configure additional tiers for the Intelligent Tiering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Archive Access Tier: objects not accessed &amp;gt;=90 days&lt;/li&gt;
&lt;li&gt;Deep Archive Access Tier: objects not accessed &amp;gt;=180 days&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📚 Learn more: &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html"&gt;AWS S3 documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Elastic Load Balancer and Auto Scaling Group - Basics</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Thu, 15 Dec 2022 14:42:50 +0000</pubDate>
      <link>https://dev.to/anja/aws-elastic-load-balancer-and-auto-scaling-group-basics-4a5k</link>
      <guid>https://dev.to/anja/aws-elastic-load-balancer-and-auto-scaling-group-basics-4a5k</guid>
      <description>&lt;p&gt;Before understanding Elastic Load Balancers(ELB) and Auto Scaling Groups we need to look at a few definitions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability:&lt;/strong&gt; Increase or decrease a system`s performance in response to a greater or smaller load&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vertical Scaling:&lt;/strong&gt; Changing the power of an instance by switching the type. The type might have more RAM or CPU for example. Increasing the power means to scale up, decreasing it to scale down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Horizontal Scaling:&lt;/strong&gt; Increase ("scale out") or decrease ("scale in") the number of AWS instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High Availability:&lt;/strong&gt; Run an app in at least 2 Availabilty Zones. If there's a disaster in one of the AZs the second one is still available.&lt;/p&gt;

&lt;h3&gt;
  
  
  Elastic Load Balancer /ELB
&lt;/h3&gt;

&lt;p&gt;An Elastic Load Balancer is a server that forwards the traffic to multiple instances. The ELB serves as a single point of access for clients. It performs health checks on the instances and forwards the traffic only to the healthy ones. ELBs can offer a high availability across Availability Zones and AWS takes care of their maintenance. You only need to configure the ELB according to your needs. Its possible to create your own custom Load Balancer, but then you have to maintain it yourself so its more time consuming.&lt;/p&gt;

&lt;p&gt;There are four types of Load Balancers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Application Load Balancer&lt;/strong&gt; - works on layer 7 of the OSI model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Load Balancer&lt;/strong&gt; - functions on layer 4 &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gateway Load Balancer&lt;/strong&gt; - layer 3, forwards traffic to 3rd Party security virtual apps. Only when the security checks pass, the traffic is forwarded to the destination&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Classic Load Balancer&lt;/strong&gt; (retires in 2023) - layer 4 and 7&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Auto Scaling Groups / ASG
&lt;/h3&gt;

&lt;p&gt;An Auto Scaling group contains EC2 instances that are treated as a group for automatic scaling and it can automatically scale in or out depending on the load. When scaling out, instances are added, when scaling in, instances are removed. New instances can be auto-registered to your Load Balancer. Unhealthy instances can be replaced by the ASG.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scaling Strategies
&lt;/h3&gt;

&lt;p&gt;There are a few scaling strategies that can be used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual scaling:&lt;/strong&gt; change size manually&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple/ Step Scaling:&lt;/strong&gt; choose threshold values for CloudWatch alarms that invoke the scaling process. E.g.: when the CPU utilization is &amp;gt;80%, add 2 instances&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target tracking Scaling:&lt;/strong&gt; specify an Amazon CloudWatch average utilization value for your app, e.g. the CPU utilization should stay at 70% for each instance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled Scaling:&lt;/strong&gt; E.g. each Friday at 5 p.m. add 2 instances for 4 hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predictive Scaling:&lt;/strong&gt; uses machine learning to predict capacity requirements based on data from CloudWatch and adjusts the number of instances accordingly
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Amazon EC2 Storage - Basics</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Tue, 13 Dec 2022 13:42:13 +0000</pubDate>
      <link>https://dev.to/anja/amazon-ec2-instance-storage-basics-4f88</link>
      <guid>https://dev.to/anja/amazon-ec2-instance-storage-basics-4f88</guid>
      <description>&lt;p&gt;Let's have a look at EC2 Storage. There are different storage options for EC2 instances.&lt;/p&gt;

&lt;h3&gt;
  
  
  💾 EBS Volumes
&lt;/h3&gt;

&lt;p&gt;An EBS volume is a network drive that can be attached to an instance. It stores data even after the termination of the instance, when you configure it to. EBS volumes are bound to a specific availabilty zone. If you want to move an EBS volume to a different Availability zone(AZ) you need to create a snapshot first and then copy it to the new AZ. You can also detach an EBS volume to attach it to a different instance.&lt;/p&gt;

&lt;h3&gt;
  
  
  💾 EC2 Instance Store
&lt;/h3&gt;

&lt;p&gt;The EC2 instance store is a temporary storage for your instance. It is located on disks that are physically attached to the host computer. If you need a high-performance disk, this option is a good choice. The instance store gets deleted when your instance is stopped.&lt;/p&gt;

&lt;h3&gt;
  
  
  📁 EFS - Elastic File Storage
&lt;/h3&gt;

&lt;p&gt;EFS is a scalable shared file system that can be mounted to a lot of EC2 instances. It works across multiple Availability Zones. EFS Infrequent Access (EFS-IA) is a storage class that is less expensive than EFS Standard. Its fitting when your instance doesn't access your files every day. When you enable Amazon EFS Lifecycle Management for your file system, Amazon EFS will automatically move your files to the lower cost storage class based on the last time they were accessed.&lt;/p&gt;

&lt;h3&gt;
  
  
  📁 Amazon FSx
&lt;/h3&gt;

&lt;p&gt;Amazon FSx is a service to launch high-performance file systems on AWS. There are three different options: FSx for Lustre, FSx for Windows File Server and FSx for NetApp ONTAP. FSx for Lustre can be used for High-Perfomance Computing (HPC) and needs to run on Linux based instances.  &lt;/p&gt;

&lt;h3&gt;
  
  
  💻 AMI - Amazon Machine image
&lt;/h3&gt;

&lt;p&gt;An Amazon Machine Image (AMI) is an image from AWS that provides the information required to launch an instance. You can also create your own customized image. On the AWS Marketplace you can find and buy AMIs which have been created by a third party. AMIs can be build from your instances.   &lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>django</category>
      <category>postgres</category>
      <category>performance</category>
    </item>
    <item>
      <title>AWS IAM / Identity Access Management - Basics</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Sat, 10 Dec 2022 15:06:53 +0000</pubDate>
      <link>https://dev.to/anja/aws-iam-identity-access-management-4631</link>
      <guid>https://dev.to/anja/aws-iam-identity-access-management-4631</guid>
      <description>&lt;p&gt;Let's learn about AWS IAM - Identity Access management basics.&lt;/p&gt;

&lt;p&gt;With IAM you can define who or what can access services and resources in AWS. For each person you should create a separate user. Users can be grouped, but groups can't contain other groups.&lt;/p&gt;

&lt;p&gt;You can create &lt;strong&gt;policies&lt;/strong&gt; which define permissions for users or groups in a JSON document. Always keep in mind the principle of least privilege. The user should only get as many rights as needed. Inline policy is a policy that only applies to one user.&lt;/p&gt;

&lt;p&gt;Here is an example of a policy from the AWS website:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Principal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"AWS"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:iam::account-id:root"&lt;/span&gt;&lt;span class="p"&gt;]},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"s3:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:s3:::mybucket"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:s3:::mybucket/*"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

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

&lt;/div&gt;



&lt;p&gt;Version is the version of the policy language that you want to use. Sid is an optional identifier, the effect can be Allow or Deny. The principal is the user, role or account that the policy shall apply to. Action lists the actions that are allowed or denied. Resource lists the resources and there can also be conditions that specify when the policy is applied. In the example above we don`t have a condition.&lt;/p&gt;

&lt;h3&gt;
  
  
  MFA
&lt;/h3&gt;

&lt;p&gt;There is the possibility to use Multi-Factor-Authentication which is strongly recommended. Apply it for the root account and all IAM users. You can use a virtual MFA device, like e.g. the app Authy or a physical MFA device. One possible physical MFA device is a universal 2nd factor(U2F) security key, e.g. the YubiKey.&lt;/p&gt;

&lt;h3&gt;
  
  
  Access AWS
&lt;/h3&gt;

&lt;p&gt;There are three ways to access AWS:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AWS Management Console&lt;/li&gt;
&lt;li&gt;AWS CLI/ Command Line Interface&lt;/li&gt;
&lt;li&gt;AWS Software Development Kit (SDk)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the options 2 and 3 you need to generate an access key, which you can do in the AWS Console.&lt;/p&gt;

&lt;h3&gt;
  
  
  IAM role
&lt;/h3&gt;

&lt;p&gt;An IAM role is a permission that you can assign to an AWS service to enable the service to perform an action. An example is the Lambda Function role.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security tools
&lt;/h3&gt;

&lt;p&gt;With the &lt;strong&gt;IAM credentials report&lt;/strong&gt; you can list all the users of your account and check the status of their credentials.&lt;br&gt;
To check the service permissions of your users and when the services were last accessed, use the &lt;strong&gt;IAM access advisor.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learn more: &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html" rel="noopener noreferrer"&gt;AWS IAM documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
    <item>
      <title>5 tips for a great software documentation</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Wed, 26 Oct 2022 05:43:44 +0000</pubDate>
      <link>https://dev.to/anja/5-tips-for-a-great-software-documentation-3f1l</link>
      <guid>https://dev.to/anja/5-tips-for-a-great-software-documentation-3f1l</guid>
      <description>&lt;p&gt;👩🏻‍💻Describe what your program does from start to finish. It needs to be so detailed that you could implement it based on the description.&lt;/p&gt;

&lt;p&gt;📊Include architectural diagrams to enhance the understanding &lt;/p&gt;

&lt;p&gt;📝Write down the steps of how to install, update and run the software&lt;/p&gt;

&lt;p&gt;🖼Add screenshots&lt;/p&gt;

&lt;p&gt;🖥Add infos about the servers used for development, testing and production &lt;/p&gt;

&lt;p&gt;What would you like to add?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Python GUI with Tkinter - Calculator app</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Mon, 22 Nov 2021 05:43:34 +0000</pubDate>
      <link>https://dev.to/anja/python-gui-with-tkinter-calculator-app-5gm8</link>
      <guid>https://dev.to/anja/python-gui-with-tkinter-calculator-app-5gm8</guid>
      <description>&lt;p&gt;Hey everyone! Today I show you how you can create a calculator with a GUI. We are using Tkinter for this. Have a nice day! :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Q56J736uWPA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;➤ Github: &lt;a href="https://github.com/Lumary2/Python/blob/master/calculator.py"&gt;https://github.com/Lumary2/Python/blob/master/calculator.py&lt;/a&gt;&lt;br&gt;
➤ Tkinter Doc: &lt;a href="https://docs.python.org/3/library/tk.html"&gt;https://docs.python.org/3/library/tk.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>How to write your first Bash Script</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Fri, 20 Aug 2021 12:10:31 +0000</pubDate>
      <link>https://dev.to/anja/how-to-write-your-first-bash-script-286h</link>
      <guid>https://dev.to/anja/how-to-write-your-first-bash-script-286h</guid>
      <description>&lt;p&gt;Hi everyone! Today Im showing you an introduction to bash/shell scripting. Shell scripts can be used for executing one or more commands or for task automation e.g. Have a nice day! :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/SasvJZ1PjSo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;➤ Timestamps:&lt;br&gt;
0:00 Introduction&lt;br&gt;
0:31 creating the sortinghat script&lt;br&gt;
3:50 make script executable and run it&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/Lumary2/YoutubeTutorials"&gt;https://github.com/Lumary2/YoutubeTutorials&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How I switched careers to Software Engineering</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Sat, 03 Jul 2021 10:08:44 +0000</pubDate>
      <link>https://dev.to/anja/how-i-switched-careers-to-software-engineering-3omc</link>
      <guid>https://dev.to/anja/how-i-switched-careers-to-software-engineering-3omc</guid>
      <description>&lt;p&gt;Hey everyone! Today I talk about how I switched careers from law to Software Engineering. In Germany you have different education paths and I tell you more about dual studies and an education at a company.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/pA7f2gwiYHk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;➤ Timestamps:&lt;br&gt;
Introduction 0:00&lt;br&gt;
Education for programmers: 0:55&lt;br&gt;
Dual studies: 1:50&lt;br&gt;
Application process: 2:10&lt;/p&gt;

&lt;p&gt;Study/life updates playlist:&lt;br&gt;
➤ &lt;a href="https://youtube.com/playlist?list=PLWzVVoNwuhYlpGBw12JP-h8-hwjkBrco6"&gt;https://youtube.com/playlist?list=PLWzVVoNwuhYlpGBw12JP-h8-hwjkBrco6&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Build a Command Line interface with Python Click</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Sun, 30 May 2021 13:42:56 +0000</pubDate>
      <link>https://dev.to/anja/build-a-cli-with-python-click-3dp7</link>
      <guid>https://dev.to/anja/build-a-cli-with-python-click-3dp7</guid>
      <description>&lt;p&gt;Hey everyone! Today I show you how you can create a CLI (Command line interface) with Pythons Click library. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/F4iAdY8zp28"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Find the documentation with example code here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://click.palletsprojects.com/en/8.0.x/quickstart/"&gt;https://click.palletsprojects.com/en/8.0.x/quickstart/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;➤ Timestamps&lt;br&gt;
0:00 Intro&lt;br&gt;
0:13 Set up virtual environment, install Click&lt;br&gt;
0:55 click command, option and argument&lt;br&gt;
3:36 click group&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Solving Merge Conflicts with Pycharm</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Sun, 09 May 2021 14:26:57 +0000</pubDate>
      <link>https://dev.to/anja/solving-merge-conflicts-with-pycharm-o25</link>
      <guid>https://dev.to/anja/solving-merge-conflicts-with-pycharm-o25</guid>
      <description>&lt;p&gt;Hi everyone! Today I show you how you can solve merge conflicts in Pycharm. Take care and stay healthy! :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/hAj_gBUxVT8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;➤ Timestamps&lt;br&gt;
0:00​ Intro&lt;br&gt;
0:15​ Provoking a conflict&lt;br&gt;
1:15​ Solving the conflict&lt;/p&gt;

&lt;p&gt;Find me also here:&lt;br&gt;
➤ &lt;a href="https://www.instagram.com/lumarycodes/%E2%80%8B"&gt;https://www.instagram.com/lumarycodes/​&lt;/a&gt;&lt;br&gt;
➤ My Blog: &lt;a href="https://lumarycodes.wordpress.com/"&gt;https://lumarycodes.wordpress.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
    </item>
    <item>
      <title>Flask app with postgreSQL</title>
      <dc:creator>Anja</dc:creator>
      <pubDate>Sat, 01 May 2021 03:44:26 +0000</pubDate>
      <link>https://dev.to/anja/flask-app-with-postgresql-3no</link>
      <guid>https://dev.to/anja/flask-app-with-postgresql-3no</guid>
      <description>&lt;p&gt;Hi! In my video I'm showing you a Flask app that I have connected with PostgreSQL. We are also using pgadmin4, Psycopg2 (a database adapter) and SQLAlchemy. Have a nice day! :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/XZ_gAWdGzZk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;➤Code:&lt;br&gt;
&lt;a href="https://github.com/Lumary2/Python/tree/master/Python_HTML_flask"&gt;https://github.com/Lumary2/Python/tree/master/Python_HTML_flask&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;➤Timestamps:&lt;br&gt;
0:00 Introduction&lt;br&gt;
0:16 Which libraries we use&lt;br&gt;
1:37 Tutorial overview&lt;br&gt;
2:10 Flask app&lt;br&gt;
8:33 Create table, post and get data&lt;br&gt;
12:12 Solve error "connection refused"&lt;br&gt;
Postgres conf file (path Manjaro): /var/lib/postgres/data/postgres.conf&lt;br&gt;
ArchWiki: &lt;a href="https://wiki.archlinux.org/index.php/PostgreSQL"&gt;https://wiki.archlinux.org/index.php/PostgreSQL&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>sql</category>
    </item>
  </channel>
</rss>
