🖍️
Developer Note
  • Welcome
  • Git
    • Eslint & Prettier & Stylelint & Husky
  • Programming Language
    • JavaScript
      • Script Async vs Defer
      • Module
      • Const VS Let VS Var
      • Promise
      • Event Loop
      • Execution Context
      • Hoisting
      • Closure
      • Event Buddling and Capturing
      • Garbage Collection
      • This
      • Routing
      • Debounce and Throttle
      • Web Component
      • Iterator
      • Syntax
      • String
      • Array
      • Object
      • Proxy & Reflect
      • ProtoType
      • Class
      • Immutability
      • Typeof & Instanceof
      • Npm (Node package manager)
    • TypeScript
      • Utility Type
      • Type vs Interface
      • Any vs Unknown vs Never
      • Void and undefined
      • Strict Mode
      • Namespace
      • Enum
      • Module
      • Generic
    • Python
      • Local Development
      • Uv
      • Asyncio & Event loop
      • Context Manager
      • Iterator & Generator
      • Fast API
      • Pydantic & Data Class
    • Java
      • Compilation and Execution
      • Data Type
      • Enumeration
      • Data Structure
      • Try Catch
      • InputStream and OutputStream
      • Concurrent
      • Unicode Block
      • Build Tools
      • Servlet
      • Java 8
  • Coding Pattern
    • MVC vs MVVM
    • OOP vs Functional
    • Error Handling
    • MVC vs Flux
    • Imperative vs Declarative
    • Design Pattern
  • Web Communication
    • REST API
      • Web Hook
      • CORS issue
    • HTTPS
    • GraphQL
      • REST API vs GraphQL
      • Implementation (NodeJS + React)
    • Server-Sent Event
    • Web Socket
    • IP
    • Domain Name System (DNS)
  • Frontend
    • Progressive Web App (PWA)
    • Single Page & Multiple Page Application
    • Search Engine Optimiaztion (SEO)
    • Web bundling & Micro-frontend
      • Webpack
        • Using Webpack to build React Application
        • Using Webpack to build react library
      • Vite
      • Using rollup to build react library
      • Implementing micro frontend
    • Web Security
      • CSRF & Nonce
      • XSS
      • Click hijacking
    • Cypress
    • CSS
      • Core
        • Box Model
        • Inline vs Block
        • Flexbox & Grid
        • Pseudo Class
        • Position
      • Tailwind CSS
        • Shadcn
      • CSS In JS
        • Material UI
    • React
      • Core
        • Component Pattern
        • React Lazy & Suspense
        • React Portal
        • Error Boundary
        • Rendering Methods
        • Environment Variable
        • Conditional CSS
        • Memo
        • Forward Reference
        • High Order Component (HOC) & Custom Hook
        • TypeScript
      • State Management
        • Redux
        • Recoil
        • Zustand
      • Routing
        • React Router Dom
      • Data Fetching
        • Axios & Hook
        • React Query
        • Orval
      • Table
        • React Table
      • Form & Validation
        • React Hook Form
        • Zod
      • NextJS
        • Page Router
        • App Router
      • React Native
    • Angular
    • Svelte
      • Svelte Kit
  • Backend
    • Cache
      • Browser Cache
      • Web Browser Storage
      • Proxy
      • Redis
    • Rate limit
    • Monitoring
      • Logging
      • Distributed Tracing
    • Load Test
    • Encryption
    • Authentication
      • Password Protection
      • Cookie & Session
      • JSON Web Token
      • SSO
        • OAuth 2.0
        • OpenID Connect (OIDC)
        • SAML
    • Payment
      • Pre-built
      • Custom
    • File Handling
      • Upload & Download (Front-end)
      • Stream & Buffer
    • Microservice
      • API Gateway
      • Service Discovery
      • Load Balancer
      • Circuit Breaker
      • Message Broker
      • BulkHead & Zipkin
    • Elastic Search
    • Database
      • SQL
        • Group By vs Distinct
        • Index
        • N + 1 problem
        • Normalization
        • Foreign Key
        • Relationship
        • Union & Join
        • User Defined Type
      • NOSQL (MongoDB)
      • Transaction
      • Sharding
      • Lock (Concurrency Control)
    • NodeJS
      • NodeJS vs Java Spring
      • ExpressJS
      • NestJS
        • Swagger
        • Class Validator & Validation Pipe
        • Passport (Authentication)
      • Path Module
      • Database Connection
        • Integrating with MYSQL
        • Sequalize
        • Integrating with MongoDB
        • Prisma
        • MikroORM
        • Mongoose
      • Streaming
      • Worker Thread
      • Passport JS
      • JSON Web Token
      • Socket IO
      • Bull MQ
      • Pino (Logging)
      • Yeoman
    • Spring
      • Spring MVC
      • Spring REST
      • Spring Actuator
      • Aspect Oriented Programming (AOP)
      • Controller Advice
      • Filter
      • Interceptor
      • Concurrent
      • Spring Security
      • Spring Boot
      • Spring Cloud
        • Resilience 4j
      • Quartz vs Spring Batch
      • JPA and Hibernate
      • HATEOS
      • Swagger
      • Unit Test (Java Spring)
      • Unit Test (Spring boot)
  • DevOp
    • Docker
    • Kubernetes
      • Helm
    • Nginx
    • File System
    • Cloud
      • AWS
        • EC2 (Virtual Machine)
        • Network
        • IAM
          • Role-Service Binding
        • Database
        • Route 53
        • S3
        • Message Queue
        • Application Service
        • Serverless Framework
        • Data Analysis
        • Machine Learning
        • Monitoring
        • Security
      • Azure
        • Identity
        • Compute Resource
        • Networking
        • Storage
        • Monitoring
      • Google Cloud
        • IAM
          • Workload Identity Federation
        • Compute Engine
        • VPC Network
        • Storage
        • Kubernetes Engine
        • App Engine
        • Cloud function
        • Cloud Run
        • Infra as Code
        • Pub/Sub
    • Deployment Strategy
    • Jenkins
    • Examples
      • Deploy NextJS on GCP
      • Deploy Spring on Azure
      • Deploy React on Azure
  • Domain Knowledge
    • Web 3
      • Blockchain
      • Cryptocurrency
    • AI
      • Prompt
      • Chain & Agent
      • LangChain
      • Chunking
      • Search
      • Side Products
Powered by GitBook
On this page
  • ECS (Elastic Container Service)
  • EC2 Launch Type
  • Fargate Launch Type
  • ECS VS EKS
  • Similarity
  • Difference
  • App runner
  • Lambda
  • Amplify
  • CloudFront Function & Lambda Edge
  • API Gateway
  • Event Bridge
  • Amazon Cognito
  • Cognito User Pools
  • Cognito Identity Pool

Was this helpful?

  1. DevOp
  2. Cloud
  3. AWS

Application Service

PreviousMessage QueueNextServerless Framework

Last updated 22 days ago

Was this helpful?

ECS (Elastic Container Service)

EC2 Launch Type

  • EC2 instances run in ECS Cluster

  • Allow to manage the underlying infrastructure

  • Make API calls to ECS service

  • Send log to cloudwatch logs

Fargate Launch Type

  • Based on the task definition (the image that want to run)

  • Increase numbers of tasks for scaling

  • Supports auto-scaling, but it requires manual configuration. You need to define and manage scaling policies based on metrics like CPU utilization or request count. ECS gives you more control over the scaling behavior and allows you to customize it according to your application's needs.

ECS VS EKS

Similarity

  • Both are used docker container as the smallest unit, task (ECS) & pod (EKS)

  • Both are container orchestration service

  • Highly available and scalable. Also supports both manual configuration and automated scaling without running out of control

Difference

  • EKS is a managed K8s service you can run on any infrastructure — cloud or on-premises, increasing portability between vendors and lowering vendor-lock in

  • Applying namespace , ingress, service , etc is needed for EKS, but ECS has simple API eliminates complexity while using Route 53 , Elastic Load Balancer , IAM and Cloud Watch for logging

App runner

  • Fully managed service that make it easy to deploy

  • Suitable for Container-based application

  • Automatically scaling, highly available, load balacing are included

Lambda

  • Its nature is actually event listener, listen for SQS message, HTTP request, ...

  • Paid per request and compute time

  • Free tiers of 1000000 requests and 40000 GBs

  • Memory Allocation: 128MB - 10GB

  • Maximum execution time: 900s

  • Max. env variable: 4KB

  • Concurrent execution: 1000

  • Compressed deployment size: 50MB

  • Uncompressed deployment size: 250MB

  • Max. 10 messages from queue can handled for each invocation

  • RDS PostgresDB and Aurora MYSQL can send event notification about DB instance itself (created, stopped, ...) to trigger

  • Suitable for event-driven application, such as report function

Amplify

  • Similar with firebase, supabase

  • providing whole set of function as amplify SDK , but also including CI/CD

  • Amplify can be used in frontend side to conduct CRUD, authentication logic

  • Suitable for fast "full stack" development

CloudFront Function & Lambda Edge

  • Used to change the request and response

  • On CloudFront Function, It can create token for authentication and authorization

API Gateway

  • There are 2 endpoint types

  • Edge-Optimized (default): for global client, request is routed through cloud front edge location, the gateway lives in 1 region

  • Regional: For regional client

  • Private: Need to access from VPC

Event Bridge

  • As an inter-communication channel between different services within the application.

  • Can be triggered by action of aws service to react to trigger the logic in the destination

  • Can be triggered by schedule job

Amazon Cognito

Introduction

  • Provide users' identity for accessing application or aws resources

Cognito User Pools

  • Integrated with API Gateway or load balancer for authentication to application

Cognito Identity Pool

  • To grant the temporary access for aws resources

  • The IAM policy applied to access is defined