Rails on AWS

Do you feel discomfort when connecting an AWS service with a Rails application because of unclear pricing rules, complex permissions, or advanced networking configuration? I felt this way for a long time until I dedicated myself entirely to learning AWS. With this book, you can master AWS in a short amount of time without spending months getting certified.

Whether you have never used AWS or use it occasionally, this book is right for you. I explain pricing, networking, permissions, configuration, and development for the most popular services widely used with Rails applications. The book contains code examples that you can use directly in your application.

You don't have to aim to become DevOps or architect to learn AWS and take your Rails developer career to a new level. This book will be your guide through AWS and help you truly understand how to securely use the cloud and create Rails applications faster than ever.

Rails on AWS

About the author

  • Paweł Dąbrowski

    Paweł Dąbrowski

    CTO / Software Engineer

    Paweł is a Ruby engineer with over 15 years of experience building web applications and working in various roles — currently, CTO at iRonin - Software House and 4 x AWS Certified. He is passionate about the constant learning process and sharing his knowledge with other developers.

  • He was the leading architect behind the ticketing system for the Golden Globes this year and Head of Integrations at EmployeeReferrals.com, the world's leading employee referrals platform. He also designed the architecture behind the teledata washing system for the largest Danish company, acquiring people to support organizations charitably. In each of these projects, he extensively used AWS.

Table of contents

    Introduction
    Learn how to create an AWS account, create a new user, and use the IAM service to grant proper permissions.

    AWS account creation

    User creation

    Summary and next steps

    Test Rails application creation

    Simple Storage Service (S3)
    Learn how to create buckets and grant proper permissions for API keys. Upload files to the bucket, read files, store Rails assets on S3, and generate pre-signed URLs to share the buckets' contents securely.

    Explanation

    Use cases

    Configuration

    Pricing

    Permissions

    Development

    CloudFront
    Learn how to improve the performance of your application by using CDN for your assets. Use signed URLs to share private files and gain extra performance securely.

    Explanation

    Pricing

    Configuration & Development

    Accessing private s3 bucket files

    Customizing cache expiration times

    Transfer Family
    Learn how to use managed service for FTP and SFTP and manage users using API with keys for authorization instead of password.

    Explanation

    Pricing

    Configuration

    Permissions

    Adding the first user and uploading the first file

    Development

    Lambda
    Learn how to use the most known serverless service and cut the costs of functioning your application.

    Explanation

    Use cases

    Pricing

    Configuration & Development

    EC2
    Learn how to run Rails applications at low cost on old-school virtual servers.

    Pricing

    Configuration

    Relational Database Service (RDS)
    Learn how to set up and configure the database in the cloud and make it secure, scalable, and resilient.

    Explanation

    Pricing

    Configuration

    DynamoDB
    Learn how to configure and use the NoSQL database and gain significant performance improvements compared to traditional databases.

    Explanation

    Pricing

    Configuration

    Development

    Running DynamoDB locally with Docker

    ElastiCache
    Learn how to configure and use Redis in the cloud and set it up for the Rails application.

    Explanation

    Pricing

    Configuration

    Development

    Simple Email Service (SES)
    Learn how to configure and send e-mails with the AWS mail service via API or the SMTP configuration.

    Explanation

    Pricing

    Configuration & Development

    Approval process

    Elastic Container Registry (ECR)
    Learn how to store Docker images in the cloud.

    Pricing

    Configuration

    Elastic Container Service (ECS)
    Learn how to design and build from scratch containerized Rails application that uses load balancers, secure database, and Redis, and automatically deploy with GitHub Actions.

    Pricing

    Configuration

    Development

    Containers configuration

    Adding Sidekiq instance

    Management

    Automated deployment with CI/CD on GitHub

    Accessing containers to run rails console

    CloudWatch
    Learn how to push and retrieve logs using the managed service.

    Explanation

    Pricing

    Configuration & Development

    Cognito
    Learn how to configure and use cloud alternative to Devise quickly which makes it super easy to manage your users.

    Explanation

    Pricing

    Configuration

    Development

    Using Cognito without SES