ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Web] 배포 - #1. Cloud Service
    Environment(개발환경)/Web 2021. 3. 23. 01:56
    반응형

    😆 서론

    방금 막, 내 프로젝트 및 포트폴리오 사이트를 성황리에 배포하고 온 참이다!

    뿌듯한 한편, 다양한 서비스를 통해 배포하다보니 각각의 방법도 아직까지 헷갈리고 있는 것 같다.

     

    배포 포스팅 시리즈를 결심하게 된 계기는, 우선 클라우드 서비스에 다양한 분류가 있었다. (인프라, 플랫폼 등등)

    이에 대한 정리와 더불어, 매 서비스마다의 간단한 배포방법과 내가 실제 적용하면서 겪었던 문제해결을 공유하고자 한다.


    💻 Cloud Computing(클라우드 컴퓨팅)

    클라우드 컴퓨팅인터넷으로 가상화된 IT 리소스를 서비스로 제공하는 것을 의미한다.

    예를 들면, 개인용 컴퓨터나 기업의 서버에 개별적으로 저장한 프로그램이나 문서를 클라우드(대형 컴퓨터)에 저장하고 웹 브라우저 등 필요한 어플리케이션을 구동해 원하는 작업을 수행할 수 있는 사용자 중심의 컴퓨터 환경인 것이다.

     

    즉, 클라우드 컴퓨팅은 특정 기술보다는 서비스를 제공하는 하나의 방법론적인 의미가 크다. 

    특히, AWS, Azure 가 대중화되면서 클라우드는 Infrastructure 뿐만 아니라, 플랫폼과 소프트웨어까지 포함하는 온라인의 모든 영역을 다루는 광범위한 개념으로 발전했다.

    그렇기 때문에, 클라우드 서비스를 해당 서비스에 따라 분류하게 되었고, 각각의 특징에 따른 적절한 서비스를 선택해야 할 필요성이 생겼다.

     

    - Cloud의 장점

    • 경제성 : HW, SW 없이 원하는 기능을 서비스할 수 있다. 또한, 소프트웨어와 데이터를 클라우드가 통합관리하여 유지보수 효율이 좋음
    • 유연성 : 자체 시스템에 비해 컴퓨팅 리소스가 필요할 때, 필요한 만큼 확장/축소하는 유연성이 우수
    • 가용성 : 클라우드 데이터 센터 내 일부 하드웨어에 문제가 발생해도 서비스 사용에 지장이 없는 사용 우수성과 전문성이 있음
    • 빠른 구축속도 : 자체 시스템을 구축할 경우, 설계 후 HW, SW 설치에 많은 시간이 소요되던 부분을 단축시킴

     

     

    💻 Cloud Service(클라우드 서비스) 구분

    위에서 말했듯, Cloud는 많은 개념을 포괄적으로 품고 있으며, 서비스 종류에 따라 이를 분류할 수 있다.

    크게, IaaS, PaaS, SaaS 3가지로 나뉜다.

    1. IaaS (Infrastructure as a Service)

    IaaS(혹은 인프라스트럭쳐 서비스) 는 확장성이 높고 자동화된 컴퓨팅 리소스(물리적 자산) 를 가상화하여 제공하는 것이다.

    컴퓨팅, 네트워킹, 스토리지 및 기타 인프라를 사용하기 위한 서비스이며, 사용자는 필요할 때마다 서비스를 통해 리소스를 구입할 수 있다.

    가상 서버에서는 OS에 설치되는 데이터베이스와 미들웨어, 응용 프로그램 등 소프트웨어 자유도가 높지만 스스로 설치/관리해야 한다.

     

    - 장점

    • 비용 : 물리적 자원을 서버 형태로 사용하기 때문에 고정비가 감축
    • 속도 : 물리적 자원을 즉시 소비할 수 있으므로 간편하고 빠르다
    • 관리 : 물리적 자원의 자동화된 배포 및 자유로운 확장/축소가 가능하다. 또한, 안정적인 운영은 벤더가 담당한다.

     

    - 적용기준 : 빠른 변화를 원한다면

    스타트업이나 중소기업에게 IaaS는 훌륭한 옵션이다. 시간과 비용을 절약하고, 실제로 필요하거나 소비되는 부분만 구매하기 때문이다.

    빠르게 성장하는 기업의 경우, IaaS는 좋은 선택이 될 수 있으며, 유연성이 좋으므로 응용 프로그램에 요구사항이 불분명한 경우 유용하다.

     

    - 예시

    AWS(Amazon Web Service) EC2, Microsoft Azure, DigitalOcean, GCE(Google Compute Engine)

     

     

    2. PaaS(Platform as a Service)

    PaaS(혹은 플렛폼 서비스) 는 주로 사용자 정의 응용 프로그램을 개발할 때 필요한 플랫폼을 제공하는 것이다.

    즉, 기업의 애플리케이션 개발 및 실행환경을 서비스로 제공하는 모델로, 인프라를 모니터링 할 필요 없이 개발에만 집중할 수 있다.

     

    플랫폼은 하드웨어, OS, 미들웨어가 구축되어 있으며, Java, PHP, Ruby 등의 프로그래밍 언어를 지원하는 실행환경이나 DB를 서비스하는 것을 의미한다.

    개발자는 플랫폼에서 제공하는 API를 사용하여 소프트웨어를 개발할 수 있으며, 가장 이상적인 클라우드 모델로 취급된다.

     

    - 장점

    • 비용 : 필요한 플랫폼만을 소비 형태로 사용하기 때문에 고정비가 감축
    • 속도 : 개발 및 배포 프로세스를 빠르게 확보할 수 있음
    • 관리 : 소프트웨어 유지관리가 쉬우며, 많은 사용자가 동일한 개발 응용 프로그램에 엑세스하여 개발, 테스트, 배포 등이 가능

    - 단점

    • 특정 플랫폼 서비스에 종속될 수 있다.

    - 적용기준 : 신속한 개발을 원한다면

    동일한 개발 프로젝트를 여러 명의 개발자가 진행하거나, 다른 공급업체도 포함해야 하는 경우 Paas는 전체 프로세스에서 뛰어난 속도와 유연성을 보장한다. 사용자 정의 응용 프로그램 개발에도 장점이 있으며, 비용을 절감하고 배포절차를 단순화할 수 있다.

     

    - 예시

    Heroku, Netlify, Google App Engine(or Firebase), Windows Azure

     

     

    3. SaaS(Software as a Service)

    SaaS(혹은 소프트웨어 서비스 클라우드) 는 사용자에게 제공되는 소프트웨어를 가상화하여 제공하는 것이다.

    별도로 다운로드나 설치할 필요 없이, 브라우저 혹은 클라우드에서 바로 제공되는 소프트웨어이다.

    주로 업무에서 사용하는 소프트웨어 기능을 인터넷 등의 네트워크를 통해 필요한 만큼만 서비스로 제공되는 모델이다.

     

    -  장점

    • 비용 : 소프트웨어를 소비 형태로 사용하기에 비용 부담이 적음
    • 속도 : 역시 클라우드를 통해 즉시 사용이 가능하다
    • 관리 : 소프트웨어를 설치하는 물리적 자원이 불필요하며, 접근성이 좋음

    - 단점

    • 커스터마이징이 어려움

    - 적용기준 : 비즈니스에 집중하고 싶다면

    보안상 기준이 엄격하지만 않다면 모든 기업에게 SaaS는 훌륭한 옵션이다. 또한, 협업이 필요한 단기 프로젝트에서도 적절하다.

    또한, 테블릿이나 모바일 기기의 엑세스가 가능하다는 특징도 있다.

     

    - 예시

    웹 메일, Google Cloud, Naver Cloud, Dropbox 등

     

     

    지금도 많은 기업에서 클라우드의 적용여부와 선정에 대해 고민을 하고 있다. 또한, 많은 스타트업 역시 클라우드 기반 서비스를 구축한다.

    나 역시도 입사하게 된다면, 회사가 어떤 서비스를 사용하는지 이유를 납득하고 고객과 사측에 충분히 설명할 수 있어야 하겠다.


    본래는, Netlify, Heroku 등 클라우드의 사용법을 리마인드하기 위해 시작한 포스팅이었으나,

    인프라와 플랫폼 용어에 대해 확실히 짚고 넘어가고 싶어 개념을 정리하다보니 내용이 길어졌다!

     

    이 역시 시리즈로 포스팅하겠으며, 다음에는 PaaS인 Netlify, Heroku, Firebase의 사용법과 내가 실제 사이트 배포중에 겪었던 이슈를 공유하고자 한다.

     

     

    [출처]

    - jyebe 님의 블로그 : velog.io/@jyebe/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%BB%B4%ED%93%A8%ED%8C%85-%EA%B0%9C%EB%85%90-%EB%B0%8F-SaaS-PaaS-IaaS-%EB%B9%84%EA%B5%90

    - whatap 님의 블로그 : www.whatap.io/ko/blog/9/  

    - wnsgml972 님의 블로그 : wnsgml972.github.io/network/2018/08/14/network_cloud-computing/  

     

    [배포(클라우드 컴퓨팅) 시리즈]

    - #2. PaaS 사용법(Netlify, Heroku) : abangpa1ace.tistory.com/140

     

    [Web] 배포 - #2. PaaS 사용법(Netlify, Heroku)

    바로 드루가보도록 하겠다! 이번 포스팅에선, 2차 프로젝트와 포트폴리오 배포에 사용한 Netlify(클라이언트) 와 Heroku(서버) 사용법을 간단히 설명하려고 한다. 💻 Netlify : www.netlify.com/ Netlify: Develo

    abangpa1ace.tistory.com

    - #3. IaaS 사용법(AWS EC2) : abangpa1ace.tistory.com/141

     

    [Web] 배포 - #3. IaaS 사용법(AWS EC2)

    마찬가지로, 이번엔 3차 프로젝트(나이키) 배포에 사용한 인프라, 바로 AWS EC2 사용법에 대하여 정리해보았다. 💻 AWS(Amazon Web Service) AWS는 아마존닷컴의 클라우드 컴퓨팅 서비스이다. 다른 웹사이

    abangpa1ace.tistory.com

     

    반응형
Designed by Tistory.