강의

멘토링

로드맵

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) 43 reviews

696 learners

  • sihoon
이론 실습 모두
Docker
CI/CD
AWS
aws-ecs

Reviews from Early Learners

What you will learn!

  • 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,691

Learners

184

Reviews

261

Answers

4.7

Rating

3

Courses

현재 공동창업한 작은 스타트업 Ninjalerts에서 CTO역할로 일하고 있습니다. Ninjalerts는 이더리움 블록체인 데이터를 기반으로 NFT 거래 정보들을 실시간으로 알려주는 서비스에요!

전에 만나씨이에이에서 개발 팀장으로 있었어요. 시작은 기획자였는데 개발자가 부족한 탓에 외주를 맡기려다가 직접 개발할 기회가 생기면서 운 좋게 개발자로 전향했어요. 이후 자사몰을 자체 개발하면서 이커머스 개발팀장을 맡았어요.

온라인에 나온 다양한 좋은 자료들 덕분에 빠르게 성장할 수 있었어요. 제 노하우가 여러분들에게도 도움이 되길 바랍니다 :) Linkedin 프로필

Curriculum

All

117 lectures ∙ (14hr 29min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

43 reviews

4.8

43 reviews

  • hola님의 프로필 이미지
    hola

    Reviews 23

    Average Rating 4.5

    3

    100% enrolled

    The curriculum is good. I like that I can cover virtual servers and Docker all at once. Overall, I recommend it to those who want to get an overview of cloud services. It would have been better if the charts used to explain concepts were shared, but that's a bit of a downside. However, it's understandable, so it's just a minor issue. Overall, it feels like the lecture is being given on the spot. So there are many times when I think the explanation is not organized, so I have to watch it several times. There are also some things that he says he will explain in detail later but doesn't. Because of these things, I thought there was no script and he was explaining on the spot. Also, he uses a lot of English, so there are times when I don't understand what he's saying. It's a lecture that has both good and bad points.

    • 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

          Limited time deal

          $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!