강의

멘토링

커뮤니티

BEST
Programming

/

Devops & Infra

Complete Guide to AWS Deployment (feat. Lightsail, Docker, ECS)

In this lecture, you will learn about AWS ECS, one of the representative technologies of Container Orchestration! You will also build CICD with Github Action. However, you will not learn ECS from the beginning. ECS can be called the king of DevOps, so it can feel too difficult. So, in the beginning of the lecture, we will first cover the basics with AWS Lightsail, which has a relatively low learning curve among traditional virtual servers. You will also experience the limitations and inconveniences of the existing method. By building up with the basics and “Why” in this way, you will naturally learn Docker Containers and ECS!

(4.8) 45 reviews

714 learners

Level Basic

Course period Unlimited

  • sihoon
Docker
Docker
CI/CD
CI/CD
AWS
AWS
aws-ecs
aws-ecs
Docker
Docker
CI/CD
CI/CD
AWS
AWS
aws-ecs
aws-ecs

Reviews from Early Learners

Reviews from Early Learners

4.8

5.0

jaykim

91% enrolled

Thank you for the lecture.

5.0

frenchkebab

100% enrolled

It's just so clean and well-organized... I had a vague fear of Docker and CI/CD, but after taking this course... I've gained complete confidence. It's simply the best lecture.

5.0

wonu U

64% enrolled

I am a spring backend job seeker. Even though it was done with node, I think I can apply it to spring right away because you explained the overall context. When I did a side project, I only used ec2 or beanstalk, but this is a lecture that will help me build the power to configure it myself in the future. I will listen to the remaining parts well. Thank you for opening a good lecture! Have a happy holiday~

What you will gain after the course

  • Traditional Virtual Server Deployment - AWS Lightsail

  • High Availability - High Availability

  • CI/CD using Github Actions

  • Container Technology - Docker

  • Container Orchestration - AWS Elastic Container Service (ECS)

  • Cloud Security

  • Docker Compose - Building a clean dev & test environment

Understanding AWS Server Deployment Properly!
I'll explain it to you more simply and more firmly.

This isn't just a simple AWS ECS & Docker tutorial!

You'll experience the inconveniences of deploying traditional VMs firsthand. This will help you understand the why and learn ECS & Docker properly . 😎

Why does AWS adoption feel so unfamiliar? 😥

Have you ever felt overwhelmed trying to use the AWS cloud? There are so many ways to deploy servers within AWS. And most importantly, each configuration is different. You simply want to deploy your code robustly, cheaply, securely, and quickly. But there are so many unfamiliar settings.

  • VPC?! What's a Subnet anyway?
  • Availabiliy Zone?
  • What about security groups... inbound? Shouldn't this just allow all IPs?
  • Wouldn't it be safe to put environment variables here?
  • What the heck is IAM?! Why not just grant AdminAccess?
  • What else is a load balancer? Setting up listener rules and target groups...

Haven't you ever asked yourself this question after barely distributing it?

  • How do you automate deployment? CI/CD? What is CI and what is CD?
  • They say you can auto scale using the cloud, but how do you do that?
  • What exactly is the difference between a virtual machine and a container?
  • Why use containers? And what is Container Orchestration?
  • Kubernetes vs Elastic Container Service (AWS ECS), I don't know what's the difference.
  • I understand Docker, but what is Docker-compose? Do I need to know this too?
  • Why not just use an "easy" cloud like Fly.io, Vercel, or Heroku? Sure, it might be a bit more expensive, but wouldn't it save me a lot of time?

I think most of you have either given up on adopting AWS because you wanted to focus on service development, or you've just haphazardly set things up to make it work.

The problem is that if done wrong, you could be exposed to costly and critical security vulnerabilities . And despite the ease of building highly available servers, you might not be able to take advantage of these cloud benefits.

Highly available servers are crucial, especially as your service grows. Even if a natural disaster completely shuts down your data center, you can still maintain service!

I hope that through this lecture, many people will be able to properly understand AWS and use it easily.

Originally, I planned to create a course solely covering Docker and AWS ECS. However, I felt that it might be too overwhelming and difficult to understand why these technologies were developed. Therefore, to facilitate understanding, I divided the course into two parts .

The first part covered "A robust deployment method using traditional virtual servers."
I've tried to explain this as simply as possible, using Lightsail instead of EC2. This process covers important concepts related to server deployment.

  • Horizontal Scaling vs. Vertical Scaling
  • Stateless vs. Statefull
  • High Availability & Availability Zones
  • Private Network & Firewall
  • Load balancer & HTTPS
  • SSH tunneling
  • Deployment Automation: Pull Request-based CI/CD for Teams & CI/CD for Solo Developers
  • Handling the Test & Build Process for CI
  • Managing environment variables safely

Next, we'll revisit the shortcomings of virtual servers and explore how container technology can improve these issues . In the final part, we'll delve into the fundamentals of Docker containers and focus on AWS Elastic Container Service (ECS), a leading container orchestration technology.

Below are some of the materials used in the lecture :)


Q&A 🙋🏻‍♂️

Q. Should I learn ECS instead of Kubernetes?

I've been using Kubernetes for about five years. I introduced it to my company directly when I implemented MSA. Even then, I was debating between K8S and ECS. The open source aspect was appealing, so I chose Kubernetes at the time.

After much deliberation, I decided to use ECS for my new company. While ECS isn't open source, I found it easier to use. And then I realized that the vendor-lock issue was actually much smaller than I'd anticipated. Regardless of whether you use Kubernetes or ECS, you're using the same Docker containers. All code is written in the same Docker environment. On AWS, ECS was attractive because it was slightly cheaper and had slightly easier DX. Furthermore, both Kubernetes and ECS are container orchestration technologies. In other words, if you excel at one, switching to the other is surprisingly easy.

Q. What do you think about serverless systems like AWS Lambda?

It's certainly a good technology, and I use it in my image upload tutorial . However, I don't think it's suitable for general servers unless there are special circumstances. While it may seem very cheap, it quickly becomes significantly more expensive as traffic increases. It's also highly susceptible to vendor lock-in, making it relatively difficult to migrate to a general server later.

First of all, because Lambda is a short-lived server, it's difficult to create a WebSocket server. Therefore, Vercel, which uses AWS Lambda, states in its documentation that it doesn't support WebSockets and recommends using an external service. There may also be additional issues to consider, such as managing a database connection pool.

Q. Do I need to know Node.js?

No! In this course, we'll initially build a simple backend (Express app) using Node.js. However, this is purely for the purpose of providing code for deployment. It's also intended to add dummy test code and build processes for building a CI pipeline. All the Node.js code generated here is provided, so you can skip this section.

Q. Do you also learn about deploying stateful services, such as databases or message queues like Kafka, and managing servers?

Stateful services like databases and message queues are more complex and require more management than you might think. This course focuses on deploying your own developed services (backend, ETL pipeline, SSR server), rather than complex external services like databases.

While the material covered here is certainly relevant for deploying complex services like databases, if you're looking to deploy your own databases, you'll need to study more. For stateful services like databases and queues (Kafka), managed services are recommended! Most managed services are supported by AWS itself, while others are managed clouds offered by individual service providers.

For example, for Kafka, there's Confluent or AWS MSK, and for MongoDB, there's Atlas or AWS DocumentDB. These managed services exist for each service in the first place because server management for these services is more complex than you might think! Therefore, even if you're taking this course, I highly recommend using managed services for these stateful services!

Recommended for
these people

Who is this course right for?

  • Backend Developer

  • DevOps Engineer

  • Data Engineer

Need to know before starting?

  • Basic understanding of web development and servers.

Hello
This is

2,717

Learners

188

Reviews

261

Answers

4.7

Rating

3

Courses

I am currently serving as the CTO at Ninjalerts, a small startup I co-founded. Ninjalerts is a service that provides real-time NFT trading alerts based on Ethereum blockchain data!

I previously served as the Lead Developer at Manna CEA. I started as a project manager, but due to a shortage of developers, I was looking to outsource when I got the chance to code myself. Fortunately, that led to my transition into a developer role. Later, I led the e-commerce development team while building our in-house online mall from scratch.

I was able to grow quickly thanks to the many great resources available online. I hope my know-how can be of help to you as well :) Linkedin Profile

Curriculum

All

117 lectures ∙ (14hr 29min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

45 reviews

4.8

45 reviews

  • jay6106님의 프로필 이미지
    jay6106

    Reviews 1

    Average Rating 4.0

    4

    100% enrolled

    It's a good lecture. I was able to quickly learn about the infrastructure. However, when I tried to review it after some time had passed since the lecture ended, I felt regretful that I had to listen to it again. It would be good to have lecture materials, even if it's just to look back on my memories. Thank you for the good lecture.

    • sihoon
      Instructor

      Thank you for your good opinion. I will take it into consideration when making the next lecture!

  • ybsong5089님의 프로필 이미지
    ybsong5089

    Reviews 1

    Average Rating 5.0

    5

    31% enrolled

    • taehyeonpark3462님의 프로필 이미지
      taehyeonpark3462

      Reviews 1

      Average Rating 5.0

      5

      100% enrolled

      • baek9106236223님의 프로필 이미지
        baek9106236223

        Reviews 7

        Average Rating 5.0

        5

        31% enrolled

        • jaykim4823님의 프로필 이미지
          jaykim4823

          Reviews 2

          Average Rating 5.0

          Edited

          5

          91% enrolled

          Thank you for the lecture.

          Limited time deal ends in 1 days

          $45.10

          24%

          $59.40

          sihoon's other courses

          Check out other courses by the instructor!

          Similar courses

          Explore other courses in the same field!