Skip to content

[P1] 6. Cloud Computing Service

Kim Seohyun edited this page Aug 10, 2022 · 8 revisions

Lecture Summary

Cloud Service

Cloud computing is a general term for anything that involves delivering hosted services over the internet. These services are divided into three main categories or types of cloud computing: infrastructure as a service(IaaS), platform as a service(PaaS) and software as a service(SaaS).

IaaS

IaaS providers, such as Amazon Web Services(AWS), supply a virtual server instance and storage, as well as application programming interfaces(APIs) that let users migrate workloads to a virtual machine(VM). Users have an allocated storage capacity and can start, stop, access and configure the VM and storage as desired. IaaS providers offer small, medium, large, extra-large, and memory- or compute-optimized instances, in addition to enabling customization of instances, for various workload needs. The IaaS cloud model is closest to a remote data center for business users.

PaaS

In the PaaS model, cloud providers host development tools on their infrastructures. Users access these tools over the internet using APIs, web portals or gateway software. PaaS is used for general software development, and many PaaS providers host the software after it's developed. Common PaaS products include Salesforce's Lightning Platform, AWS Elastic Beanstalk and Google App Engine.

SaaS

SaaS is a distribution model that delivers software applications over the internet; these applications are often called web services. Users can access SaaS applications and services from any location using a computer or mobile device that has internet access. In the SaaS model, users gain access to application software and databases. One common example of a SaaS application is Microsoft 365 for productivity and email services.

AWS

Amazon Web Services(AWS) contains a great many elements, components, and supporting systems within its overall ecosystem. AWS Elastic Compute Cloud(EC2) is a web-based service. It provides scalable computing power on AWS, whereas AWS Elastic Container Service(ECS) is a container orchestration service. In short, Amazon ECS is a good way to run containers inside Amazon EC2 instances.

EC2

Amazon EC2 is a web-based service providing scalable computing power on AWS. Businesses can choose from more than 500 instances (servers) based on processors, storage, memory, networking, OS, and pricing models. AWS also supports Intel, AMD, and Arm processors and offers 400Gbps Ethernet networking.

ECS

Amazon ECS is a fully-managed container orchestration service designed to make it easy for AWS users to deploy, manage, and scale popular containerized applications. Its deep integration with the AWS platform provides a secure and relatively easy-to-use way to run container workloads in the cloud.
The primary benefit of ECS is users can put all their attention on building applications rather than maintaining the underlying infrastructure. It also supports Docker containers, and IT can scale container clusters on-demand when using ECS.

Things That Were Confusing

  • ECR image push commands
    $ aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com  
    $ docker build -t <image_tag> .  
    // For M1, $ docker buildx build --platform=linux/amd64 -t <image_tag> .
    $ docker tag <image_tag>:latest 854407906105.dkr.ecr.ap-northeast-2.amazonaws.com/mlopscurriculum:<image_tag>
    $ docker push <aws_account_id.dkr.ecr.<region>.amazonaws.com/<image_tag>:latest
    
  • RDS DB Name When creating a DB instance, some database engines require that a database name be specified. A DB instance can host multiple databases, or a single Oracle database with multiple schemas. The database name value depends on the database engine:
    • For the MySQL and MariaDB database engines, the database name is the name of a database hosted in your DB instance. Databases hosted by the same DB instance must have a unique name within that instance.
    • For the Oracle database engine, database name is used to set the value of ORACLE_SID, which must be supplied when connecting to the Oracle RDS instance.
    • For the Microsoft SQL Server database engine, database name is not a supported parameter.
    • For the PostgreSQL database engine, the database name is the name of a database hosted in your DB instance. A database name is not required when creating a DB instance. Databases hosted by the same DB instance must have a unique name within that instance.

What Else I Found Out


Curriculum Page
Related PR