Loading

    Introducing Amazon Web Services

    Adam ElmoreAdam Elmore

    What is AWS?

    AWS (Amazon Web Services) is a collection of cloud computing services that provide solutions for various infrastructure needs. It offers services across several major categories, including compute, storage, databases, and more. AWS serves as a comprehensive ecosystem for building and running applications, providing over 200 services that cater to a wide range of requirements.

    AWS Services

    Compute

    AWS offers numerous solutions for executing your code, such as servers, on-demand compute (like AWS Lambda for serverless functions), and containers. This category covers a diverse range of compute options to meet different needs.

    Storage

    For storing files and data, AWS provides services like Amazon S3 (Simple Storage Service) for object storage, as well as various other storage solutions.

    Databases

    AWS offers a dozen different database services, catering to different data storage and retrieval requirements, including relational databases, NoSQL databases, and more.

    Beyond the Basics

    In addition to the fundamental services, AWS has offerings that go beyond traditional application needs. For instance, AWS Ground Station allows communication with satellites, and Amazon Braket enables quantum computing simulations. AWS serves millions of customers across a wide range of industries and use cases.

    The AWS Ecosystem

    One of the key advantages of AWS is its cohesive ecosystem. All services use the same underlying primitives, making it simple to connect and interact between them. AWS employs a consistent security protocol (IAM) and provides a unified SDK for interacting with its services.

    While there is an initial learning curve to understand AWS's primitives and how they work together, the ecosystem offers a streamlined experience once you overcome that initial hurdle.

    Building on the Bedrock of the Web

    AWS represents the fundamental building blocks of the modern web. By learning AWS, you gain the ability to build applications at a lower level of abstraction compared to using third-party cloud providers like Vercel or Netlify, which essentially wrap AWS services and charge additional costs.

    Mastering AWS allows you to build directly on the bedrock of the web, leveraging reliable, scalable, fast, and cost-effective services. While there are always lower levels of abstraction (like buying hardware and running your own servers), AWS provides a powerful and efficient way to build applications in the cloud.

    Conclusion

    Learning AWS can be a transformative step in your career as a web developer. It opens up a world of possibilities by providing access to a vast array of cloud computing services and the ability to build applications on the bedrock of the modern web. Embrace the opportunity to master AWS and unlock new horizons in your professional journey.

    Transcript

    Introducing AWS to somebody who has no exposure to infrastructure or cloud computing, it's a difficult task, but I know there's some commonalities here. I'm a web developer, and 10 years ago I started building on AWS. If I could learn it, I know any of you can learn it. And I think it's the next step in your career that could really unlock some incredible opportunities. So let's talk about what is AWS.

    And to do that, I'm going to start with your humble beginnings as a web developer. You're building a new application, and you're just building it on your local machine. Maybe you're using a front-end library, or framework, or meta-framework. You're building with Next.js, or just a simple React application, or maybe you're just writing HTML, and CSS, and JavaScript. You're building something that works on your machine.

    And it works in your browser at localhost 3000, right? At some point, you've got to get that off of your machine and onto something else that other people can use. And at some point, you're going to realize if it's a useful application that you're building, it's going to have a database. And maybe it's going to need file uploads. Maybe it's going to need a cache of some sort.

    Maybe not. Don't introduce a cache. I just wish you hadn't later. But maybe you're going to need global availability. As your thing continues to grow, you've got users that are experiencing a pretty slow site over in Europe because you're hosting on a server in the US.

    All of these concerns, these are infrastructure concerns. So there's the code that you build your application with, the code that executes in the browser, and then there's all of the downstream things, the infrastructure, the requirements to run your application for your users in production. AWS is a solution to all of that. And this is so hard to know where to stop and where to branch off. But AWS is basically, in cloud computing more generally, it's a collection of services that fall into the major buckets.

    So they have answers for compute, how your code executes, whether that's servers or on-demand compute, like Lambda functions, if you've heard of functions as a service. Maybe it's containers. They have solutions for all of it, dozens of solutions for compute. They have solutions for storage, like S3 for storing files that your users might upload. They have solutions for databases.

    They have a dozen different database offerings, and more if you get into the more granular categories under each of those high-level buckets. So they have all the basics that you need for an application, but then it goes beyond that. There's over 200 AWS services. If you need to communicate with satellites, there's literally a service for that. It's called Ground Station.

    If you need to communicate, or if you need to build quantum computing simulations, there's Amazon Bracket. Like, they literally have a service for everything you could imagine. They serve as millions of customers, and they're all within this very cohesive ecosystem. They all use the same underlying primitives. So connecting to these services from each other is very simple.

    It uses the same security protocol, IAM, it's the same way you would interact. They have an SDK that's very cohesive and it's all very like shrink-wrapped into this nice experience once you get over the initial hump. There is like a learning curve. There's an amount of effort you've gotta put in up front to get your development machine set up and to understand all of these primitives and how it all works together. But this is going beyond maybe the abstraction you've been at in your career so far.

    Maybe to date, you've just built applications and you've handed them off to somebody else. It could be a third party, like a cloud wrapper like Vercel or Netlify. Or Maybe you hand it off to an ops team. You have a team that manages getting your application out to people to use. And all you have to worry about is it works on your machine.

    AWS is about going to the lowest level that's necessary in 2024 to these fundamental building blocks of the web. It's this perfect abstraction of primitive services that are reliable, scalable, incredibly fast, and incredibly affordable. So if you use Vercel and you use Netlify, all of these providers are really just wrapping AWS and they're charging multiples of the costs to run those workloads on AWS. So by learning this skill, you're learning how to build at sort of the bedrock of the web. And obviously it goes lower than that.

    Obviously, you can rent a VM and you can, you know, install, you could rent hardware and get a static IP in your closet and run your server for your users. And obviously that's a whole nother route. There's always a deeper layer, always goes lower in terms of abstractions. But in 2024, the best way to build applications is to build on the cloud. And AWS is by far the leading cloud provider.

    I genuinely believe, and this might sound ridiculous, I think AWS is one of the greatest achievements of humankind. That sounds way overdramatic. But if you really start to look at the global infrastructure and the amount of people and time and money and resources going into creating this highly available elastic thing that we can deploy to in seconds. You can type two lines of code with an infrastructure as code framework, and in five minutes with one CLI command, you can deploy your application literally all over the world to edge locations all over the world. And maybe you're used to that with Vercel.

    It's the same concept, but it's going to the underlying infrastructure that Vercel uses. And AWS is just this incredible achievement of humankind. I'm so excited for you to learn it, for you to dive a little deeper in your career and to sort of go to that next step and that deeper, deeper understanding.