💻
Albert's Til
GitHub
  • 매일매일 조금씩 성장하기
    • README
    • CS
      • Network
      • HTTP
        • NO-CACHE
      • 오류 코드
      • ORM 도구
      • Design Pattern
        • CQRS Pattern
          • Event Sourcing and CQRS pattern
        • Builder Pattern
    • DB
      • MySQL
        • Timeline
        • Pagination
        • Index
        • Database Performance Optimization Strategies
        • B+ tree
        • MySQL Connectors VS MySQL Shell(Scripting) VS MySQL Workbench
        • MySQL Storage Engine Architecture
      • Normalization & Denormalization
      • JPA
        • @Transactional
        • Why JPA?
        • About JPA
        • N+1 Issue
        • Index
        • ElementCollection&CollectionTable
        • orphanRemoval
        • CascadeType
        • Use Subselect
        • Dynamic Instance Creation
        • Paging
        • Order
        • Spefication
        • mappedBy
      • MongoDB
        • ObjectId
      • Why MySQL?
      • ACID properties of transactions
      • Between JPA and JDBC
      • Identifiers in Hibernate/JPA
    • Java
      • Jackson de/serialize
      • Collections.singletonList() vs List.of()
      • Manage dependencies in Gradle
      • Logging Level
      • Bean Validation
      • JVM Internals
        • Threads
          • Frame
        • Shared Between Threads
          • Classloader
            • Class Loader Hierarchy
            • Loading Linking Initialization
      • Java Collection Framework
      • Annotation
      • Generic
      • 디미터 법칙
    • Spring
      • Caching
      • Spring Integration Overview
        • ThreadPollTaskExecutor
        • Messaging Bridge
        • Channel Adapter
        • Poller
        • Configuration and @EnableIntegration
        • Message Endpoints
        • Message Channels
      • HATEOAS
      • @Autowired vs Constructor Dependency Injection
      • Spring Security
        • JWT 토큰 사용한 인가
        • OAuth 2 Login
        • OAuth 2 인증
        • 인가
        • 인증
        • PasswordEncoder
      • IoC Container
      • Filter,Interceptor,AOP,Argument Resolver
      • Spring Annotation
      • About Spring
    • Kafka
      • Error Channel
    • Infra
      • Scale Up || Scale Out
      • Docker
        • Dockerfile
        • Docker Hub Deploy
        • Command
      • Cloud 유형
        • Infrastructure as a Service
        • Platform as a Service
        • Software as a Service
      • 무중단 배포
        • 엔진엑스(Nginx)
      • 코드 자동 배포
        • Technical
      • AWS EC2
        • PEM(Privacy Enhanced Mail) 키
      • AWS RDS
      • AWS S3
    • CodeSquad
      • Spring Boot Project 1주차 회고
      • Spring Boot Project 2주차 회고
      • Spirng Boot Project 3주차 회고
      • Spring Boot Project 4주차 회고
    • Foody Moody 프로젝트
      • Query Performance Comparison
      • HeartCount Asynchronous Issue
      • DeferredResult
      • ResponseBodyEmitter
      • SseEmitter (Spring)
      • Server-Sent Events (SSE)
      • 기술 스택 적용 이유
      • NO-CACHE(HTTP)
      • Transactional
    • DDD
      • AggregateId
    • Test
      • RestAssured
    • Coding and Algorithmic Problems
      • 819. Most Common Word
      • 344. Reverse String
      • 125. Valid Palindrome
      • 937. Reorder Data in Log Files
    • Node
      • Async... Await...
      • Custom Transactional Decorator Challenger
    • Python
      • Python Basic Grammar
        • Comments and Input/Output
        • Variable
        • Data type
        • Operations and syntax
        • List,Tuple,Dictionary,Set
        • Function
        • Conditional statement
        • Loop
    • HTML
      • HTML Basic
      • HTML Basic Tags
      • HTML Form Tags
      • HTML Table Tags
    • CSS
      • CSS Basic
      • CSS Practice
Powered by GitBook
On this page
  • 주요 특징과 구성 요소
  • 1. 애플리케이션 개발 환경
  • 2. 서비스 제공 업체 관리
  • 3. 확장성과 유연성
  • 4. 다중 테넌시
  • 5. 자동화된 배포 및 스케일링
  • 6. 데이터베이스 및 저장소
  • 7. 통합 및 API
  • 8. 지불 모델
  • 장점
  • 1. 개발 생산성 향상
  • 2. 인프라 관리 부담 감소
  • 3. 스케일링 용이성
  • 4. 다중 테너시와 리소스 공유
  • 5. 자동화된 배포 및 관리
  • 6. 통합 및 확장 가능성
  • 7. 비용 효울성
  • 단점
  • 1. 플랫폼 제한
  • 2. 제한된 유연성
  • 3. 데이터 보완과 컨트롤
  • 4. 의존성과 가용성
  • 5. 제한된 커스터마이징
  • 6. 데이터 이동 및 Vendor Lock-in

Was this helpful?

  1. 매일매일 조금씩 성장하기
  2. Infra
  3. Cloud 유형

Platform as a Service

Paas, 파스

Platform as a Service (PaaS)는 클라우드 컴퓨팅 서비스 모델 중 하나로, 응용 프로그램을 개발, 테스트, 배포하기 위한 플랫폼을 제공하는 형태입니다. (AWS의 Beanstalk(빈스톡),Heroku(헤로쿠) 등)

주요 특징과 구성 요소

1. 애플리케이션 개발 환경

  • PaaS는 개발자들이 응용 프로그램을 개발하는 데 필요한 개발 환경을 제공합니다. 이는 프로그래밍 언어, 개발 도구, 라이브러리 등을 포함합니다.

2. 서비스 제공 업체 관리

  • PassS 제공 업체는 플랫폼의 운영체제, 네트워크, 서버 등을 관리하고 유지보수합니다. 개발자는 인프라에 대한 관리를 신경쓰지 않고 애플리케이션을 집중할 수 있습니다.

3. 확장성과 유연성

  • PaaS는 필요에 따라 애플리케이션의 규모를 확장하거나 축소할 수 있는 유연성을 제공합니다. 이는 트래픽 변동이나 사용자 수의 증가에 대응할 수 있음을 의미합니다.

4. 다중 테넌시

  • PaaS는 여러개의 개발 팀이나 조직이 동시에 독립적으로 애플리케이션을 개발하고 실행 할 수 있는 다중 테넌시를 제공합니다. 이는 효율적인 리소스 공유와 비용 절감을 도모합니다.

5. 자동화된 배포 및 스케일링

  • PaaS는 애플리케이션의 배포 및 스케일링을 자동화하여 개발자가 수동으로 작업할 필요를 줄여줍니다. 이는 애플리케이션의 빠른 배포와 관리를 가능하게 합니다.

6. 데이터베이스 및 저장소

  • PaaS는 데이터베이스 및 저장소를 포함한 다양한 데이터 관리 기능을 제공합니다. 개발자는 데이터의 저장, 검색, 분석 등을 편리하게 처리할 수 있습니다.

7. 통합 및 API

  • PaaS는 다른 서비스와의 통합을 쉽게 구현할 수 있는 API(Application Programming Interface)를 제공합니다. 이는 외부 서비스와의 상호 작용을 용이하게 합니다.

8. 지불 모델

  • PaaS는 사용한 리소스에 대한 지불 모델을 제공합니다. 대부분의 PaaS 제공 업체는 사용한 컴퓨팅 리소스, 스토리지, 네트워크 및 추가적인 서비스에 대한 비용을 기반으로 과금합니다. 이는 사용한 만큼의 리소스에 대해서만 비용을 지불하므로 비용을 효율적으로 관리할 수 있습니다. 일부 PaaS 제공 업체는 무료 티어를 제공하기도 하며, 애플리케이션의 규모에 따라 유연한 가격 체계를 제공할 수도 있습니다.

장점

1. 개발 생산성 향상

  • PaaS는 개발자들이 애플리케이션을 더 쉽게 개발하고 배포할 수 있도록 도와줍니다. 사전에 설정된 개발 환경, 개발 도구, 라이브러리, 템플릿 등을 제공하여 개발 시간과 노력을 줄여줍니다.

2. 인프라 관리 부담 감소

  • PaaS는 백엔드 인프라(서버, 네트워크, 운영체제 등)의 관리를 제공 업체에게 맡기므로 개발자는 인프라 설정과 관리에 대한 부담을 줄일 수 있습니다. 이는 개발자들이 핵심 비즈니스 로직에 집중할 수 있도록 도와줍니다.

3. 스케일링 용이성

  • PaaS는 애플리케이션의 규모를 쉽게 확정하거나 축소할 수 있는 기능을 제공합니다. 트래픽 변동이나 사용자 수의 중가에 유연하게 대응할 수 있으며, 자동화되 스케일링 기능을 통해 리소스 사용량에 따라 자동으로 조정됩니다.

4. 다중 테너시와 리소스 공유

  • PaaS는 여러 개의 개발 팀이나 조직이 동시에 플랫폼을 공유하여 애플리케이션을 개발하고 실행할 수 있는 다중 테넌시를 제공합니다. 이는 리소스의 효율적인 공유와 비용 절감을 가능하게 합니다.

5. 자동화된 배포 및 관리

  • PaaS는 애플리케이션의 배포 및 관리를 자동화하여 개발자가 수동으로 작업할 필요를 줄여줍니다. 이는 애플리케이션의 빠른 배포, 롤백, 모니터링, 로깅 등을 가능하게 합니다.

6. 통합 및 확장 가능성

  • PaaS는 다른 서비스와의 통합을 쉽게 구현할 수 있는 API를 제공합니다. 이를 통해 외부 서비스와의 상호 작용이 용이하며, 필요에 따라 추가 서비스를 통합하여 기능을 확장할 수 있습니다.

7. 비용 효울성

  • PaaS는 사용한 리소스에 대한 지불 모델을 제공하므로, 필요한 만큼의 리소스에 대해서만 비용을 지불하면 됩니다. 이는 초기 투자 비용을 줄여줄 뿐만 아니라 인프라 관리 및 유지보소 비용을 절감할 수 있습니다. 또한, 스케일링이 필요한 경우에도 유연한 가격 체계를 통해 필요한 리소스만 확장하여 추가 비용을 최소화할 수 있습니다. 이는 작은 규모의 개발자나 스타트업부터 개규모 기업까지 다양한 규모와 예산에 맞춘 비용을 효율성을 제공합니다.

단점

1. 플랫폼 제한

  • PaaS는 제공 업체가 정의한 플랫폼 위에서 애플리케이션을 개발하고 실행해야 합니다. 따라서 특정 플랫폼에 종속되어 개발해야 하며, 다른 플랫폼으로의 전환에는 추가적인 작업과 비용이 소요될 수 있습니다.

2. 제한된 유연성

  • PaaS는 개발자에게 편리한 개발 환경을 제공하지만, 플랫폼의 제한된 설정과 규칙을 따라야 합니다. 이는 특정 기능이나 구성 요소를 사용할 수 없거나 특정 설정에 제한을 받을 수 있다는 의미입니다.

3. 데이터 보완과 컨트롤

  • 클라우드 기반 PaaS를 사용하는 경우, 애플리케이션과 데이터가 외부에 저장되고 처리됩니다. 이는 데이터 보안과 컨트롤에 대한 우려를 가질 수 있습니다. 적절한 보안 조치와 데이터 암호화, 접근 제어 등을 마련해야 합니다.

4. 의존성과 가용성

  • PaaS를 사용하면 제공 업체에 의존해야 합니다. 업체의 가용성과 서비스 수준에 문제가 발생하면 애플리케이션에 영향을 줄 수 있습니다. 따라서 업체 선택 시 신뢰성과 가용성에 대해 신중한 평가가 필요합니다.

5. 제한된 커스터마이징

  • PaaS는 개발자에게 미리 정의된 개발 환경을 제공하기 때문에 일부 커스터마이징이 제한될 수 있습니다. 특정 요구사항이나 특수한 개발 환경에 대한 유연성이 제한될 수 있습니다.

6. 데이터 이동 및 Vendor Lock-in

  • PaaS에서는 애플리케이션과 데이터가 제공 업체의 플랫폼에 종속될 수 있습니다. 다른 PaaS 제공 업체로의 전환에는 시간과 비용이 많이 들 수 있으며, 데이터 이동에 대한 문제가 발생할 수 있습니다.

Last updated 2 years ago

Was this helpful?