07/04/2021

AWS architecture overview

AWS is an online platform that provides scalable and cost-effective cloud solutions. 

Servers are placed across the whole world inside 25 AWS regions, and 215 availability zones for disaster recovery purposes. 

It is a pay-as-you-go pricing system, which means that you pay for the amount of usage. 

Scalability (horizontal and vertical), high availability, performance, security, reliability are some of the features that AWS provides.

 

Widely used AWS services groups: 

 

  1. Compute AWS services
  2. Storage AWS services
  3. Networking AWS services
  4. Security & Identity AWS services etc…

 

Compute services: 

 

  1. EC2 
  2. Elastic Beanstalk
  3. Lambda
  4. Others

 

EC2

 

Amazon Elastic Compute Cloud (Amazon EC2) provides scalable computing capacity in the AWS Cloud. You can use Amazon EC2 to launch as many or as few virtual servers as you need, configure security and networking, and manage storage.

 

 

When you reserve an instance you need to choose an instance type that consists of instance family and instance size.

 

 

Each family is optimized for some workflow, and based on your setup you should choose the appropriate one.

 

 

When choosing storage for your EC2 you have 3 options: 

 

  1. Amazon EFS – shared file system for multiple instances
  2. Amazon EBS – detached block storage from your instances, snapshots are saved in S3
  3. Instance store – removed when an instance is terminated

 

For scaling purposes, AWS provides Auto Scaling Groups(ASG) and Load Balancers. 

When defining ASG, you define the minimum, desired and maximum number of instances, AWS will add or remove instances based on your configuration example when the CPU reaches over 80%.

A load balancer is used for intelligent routing or requests, it can be internet-facing ( public ) or internal ( between private instances) 

 

Storage AWS  services:

 

  1. S3
  2. EBS
  3. EFS
  4. S3 Glacier
  5. Others

 

S3 general information: 

 

  1. Object-based storage
  2. Objects are stored in buckets
  3. Data is stored across multiple devices
  4. 99.999999999% durability
  5. 99.99% availability

S3 Features: 

 

  1. Static Website Hosting
  2. Cross-Region Replication
  3. Data encryption
  4. Security
  5. Versioning
  6. Emit event

 

Networking services

 

 

VPC is the main representative of this group. In the example above we defined a simple VPC with a private and public subnet. Internet-facing servers are configured in a public subnet, and private servers are not exposed to the internet, and so put inside a private subnet. 

Nat gateway is one of the possibilities to provide internet to private servers without exposing them to the internet.

Route tables are used for request redirection inside VPC.

 

 

In this example, it is demonstrated how security inside VPC is handled. Before each subnet, we have Access Control Lists ( ACL) where we define inbound and outbound rules for accessing the subnet. The second level of security is Security groups, which are checked before reaching concrete instances or instances.

 

Security and identity services

 

IAM is the main representative of this group.

 

It is defined by Users, Groups, and Roles, each one of them can have attached permissions to it, and you can assign users to groups or add them roles. 

To do some action on AWS, you need to have permission for it. It is defined by “least privilege” which means that by default users don’t have rights to anything and you need to specify and add one that you want to provide them with.

Examples: 

A typical architecture for serverless development: 

 

Mock example of Facebook architecture on AWS: 

 

source: www.youtube.com

photo source: www.youtube.com

 

We are looking for a Senior Blockchain Developer with 5+ years of experience who will join our team.

Your core skills are:

  • Proven experience as a Blockchain Developer, with a strong focus on JavaScript
  • Proficiency in JavaScript, including frameworks such as Node.js, React, or Angular
  • Solid understanding of blockchain concepts and cryptographic principles
  • Experience with smart contract development and deployment on platforms like Ethereum or Hyperledger
  • Extensive knowledge of Object-Oriented Programming (OOP), including principles, data structures, algorithms, and design patterns
  • Familiarity with Docker, Kubernetes, and cloud services to support modern application development and deployment
  • Demonstrable experience with software engineering tools such as Git for version control, Maven for build automation, and tools for unit and integration testing
  • Comfortable working within a Scrum Agile framework to deliver high-quality software in iterative cycles

Requirements:

  • Minimum of 5 years of relevant experience
  • Degree in Computer Science or a related field
  • Proficiency in English with excellent communication skills
  • Strong problem-solving and analytical abilities
  • Effective communication and presentation skills

What We Offer:

  • Remote work opportunities with flexible hours
  • No overtime policy
  • 25 vacation days annually to recharge and relax
  • Challenging international projects to expand your horizons
  • Private health insurance including regular medical check-ups
  • Supportive and friendly work environment that values honesty
  • Knowledge-sharing, transparent, and proactive communication within the team

If you’re ready to take on exciting challenges and grow your career with a supportive and innovative team, we’d love to hear from you!

    We are looking for a Senior Full Stack Developer with 5+ years of experience who will join our team.

    Your core skills are:

    • Excellent knowledge of Java and JavaScript programming language
    • Excellent knowledge of Spring, Spring Boot, Hibernate
    • Excellent knowledge of Angular or React
    • Proficiency in both relational (e.g., MySQL, PostgreSQL) and NoSQL databases (e.g., MongoDB)
    • Good understanding of Microservice architecture
    • Exposure to Docker, Kubernetes, and cloud services is beneficial (AWS or Azure)
    • Extensive OOP knowledge - principles, data structures, algorithms, and patterns
    • Demonstrable experience building modern software using engineering tools such as Git, Maven, unit testing, and integration testing tools
    • Experience working in Scrum Agile methodology

    Requirements:

    • A minimum of 5 years of relevant experience
    • Degree in Computer Science or other relevant field
    • Excellent verbal and written communication skills in English
    • Strong problem-solving and analytical skills
    • Effective communication and presentation skills (written and verbal)

    We can give you a fair amount of great benefits such as:

    • Remote work opportunities with flexible hours
    • No overtime policy
    • 25 vacation days annually to recharge and relax
    • Challenging international projects to expand your horizons
    • Private health insurance including regular medical check-ups
    • Supportive and friendly work environment that values honesty
    • Knowledge-sharing, transparent, and proactive communication within the team

    Feel free to apply for the job if you think we are a perfect match!

      We are looking for a Senior iOS Developer with 5+ years of experience who will join our team.

      Your core skills are:

      • Excellent knowledge of iOS SDK (Objective-C and Swift) and XCode
      • Extensive OOP knowledge - principles, data structures, algorithms, and patterns
      • Demonstrable experience building modern software using engineering tools such as Git, Maven, unit testing, and integration testing tools
      • Experience working in Scrum Agile methodology
      • It would be beneficial to have experience with Android and Flutter

      Requirements:

      • A minimum of 5 years of relevant experience
      • Degree in Computer Science or other relevant field
      • Excellent verbal and written communication skills in English
      • Strong problem-solving and analytical skills
      • Effective communication and presentation skills (written and verbal)

      We can give you a fair amount of great benefits such as:

      • Remote work opportunities with flexible hours
      • No overtime policy
      • 25 vacation days annually to recharge and relax
      • Challenging international projects to expand your horizons
      • Private health insurance including regular medical check-ups
      • Supportive and friendly work environment that values honesty
      • Knowledge-sharing, transparent, and proactive communication within the team

      Feel free to apply for the job if you think we are a perfect match!

        We are looking for a Senior .NET Developer with 5+ years of experience who will join our team.

        Your core skills are:

        • Excellent knowledge of .NET (.NET Core and ASP.NET)
        • Excellent knowledge of SQL server
        • Good knowledge of JavaScript and frameworks such as React and Angular
        • Good understanding of Microservice architecture
        • Extensive OOP knowledge - principles, data structures, algorithms, and patterns
        • Exposure to Docker, Kubernetes, and cloud services is beneficial
        • Demonstrable experience building modern software using engineering tools such as Git, Maven, unit testing, and integration testing tools
        • Experience working in Scrum Agile methodology

        Requirements:

        • A minimum of 5 years of relevant experience
        • Degree in Computer Science or other relevant field
        • Excellent verbal and written communication skills in English
        • Strong problem-solving and analytical skills
        • Effective communication and presentation skills (written and verbal)

        We can give you a fair amount of great benefits such as:

        • Remote work opportunities with flexible hours
        • No overtime policy
        • 25 vacation days annually to recharge and relax
        • Challenging international projects to expand your horizons
        • Private health insurance including regular medical check-ups
        • Supportive and friendly work environment that values honesty
        • Knowledge-sharing, transparent, and proactive communication within the team

        Feel free to apply for the job if you think we are a perfect match!