배포[2021.10.29]

김정훈·2021년 10월 29일
0

배포

목록 보기
1/3

1. 클라우드 컴퓨팅

클라우드 등장 이전의 방식은 전산실 등에 컴퓨터를 배치하고 인터넷을 
연결하여 서비스를 제공
1. 기존 방식의 한계
  - 주기적인 유지관리가 필요하며 점차 관리해야 하는 컴퓨터 및 다른기기의
    수가 많아지는 만큼 투입되어야 하는 인력 및 비용도 증가
  - 필요할 때마다 추가적인 컴퓨터를 추가하는 방식으로 수용 능력을 향상시켜왔고
    이러한 방식은 공간의 한계가 발생했고 데이터센터의 유휴 자원을 대여하는
    서비스가 등장
  - 서버의 자원과 공간 및 네트워크 환경을 빌려 사용하는 클라우드 컴퓨팅이 시작
  
2. 클라우드 방식의 장점
  - 필요할 때마다 컴퓨팅 능력을 유연하게 조절 가능
  - 고정적인 비용이 들어가는 온프레미스와 달리 사용한 만큼의 요금만 지불
  - 컴퓨터의 스냅샷을 이용해 다른 컴퓨터로 즉시 이주가 가능
  
3. 클라우드 방식의 단점
  - 운영 환경 자체가 클라우드 제공자에게 종속되기 때문에 클라우드 서비스에 문제가
    발생하면 내가 배포하고 관리하는 환경에도 영향이 미침
  - 백엔드 구성 자체가 특정 회사의 기술로만 구성 해야 하는 경우가 발생
  
4. 클라우드 서비스 형태
  - SaaS(Software as a Service)
   : 클라우드 제공자가 당장 사용 가능한 소프트웨어를 제공하는 경우 대부분 
     SaaS에 해당
  - PaaS(Platform as a Service)
   : 클라우드 제공자가 데이터베이스, 개발 플랫폼까지 제공하는 경우 대부분 
     PaaS에 해당
  - IaaS(Infrastructure as a Service)
   : 클라우드 제공자가 가상 컴퓨터까지 제공하는 경우 대부분 IaaS에 해당
   

2. 배포

1. 배포의 4단계
  - Development
   : 로컬 컴퓨터 환경에서 개발 및 테스트
     더미데이터를 이용
     변경사항이 있어도 문제가 되지 않음
     무든 구성원이 각자의 환경에서 진행
  - Intergration
   : 각자의 환경에서 개발된 부분을 취합
     코드간 Conflict가 없는지 확인하는 단계
     작성한 코드가 다른 코드에 문제를 발생 시키지 않는지 확인
  - Staging
   : 실제 출시 단계인 Production 단계와 가장 유사한 환경에서 테스트
     복제된 실제 데이터를 이용해서 테스트
     몯든 관계자들에게 검증 하는 단계
  - Production
   : 개발환경과는 구분 된 환경
     실제 데이터를 이용
     실제로 서비스가 제공되는 단계

2. 배포의 주의사항
배포에서는 환경의 차이를 이해하고 환경 설정을 코드와 분리하는 것이 중요
  - 절대경로 대신 상대경로를 사용
  - 환경에 따라 포트를 분기할 수 있도록 환경변수를 설정
  - Docker와 같은 개발 환경 자체를 통일시키는 솔루션을 사용
  
  

3. EC2

AWS에서 제공하는 클라우드 컴퓨팅 시스템

1. EC2(Elastic Compute Cloud)
  - 원격으로 제어할 수 있는 가상의 컴퓨터를 한대 빌리는 것
  - 사용한 만큼의 비용을 지불하기 때문에 탄력적인이라는 의미의
    Elastic이라는 단어가 붙음
  - Elastic은 비용적인 부분 뿐만 아니라 성능, 용량을 자유롭게 조절 가능
  - EC2를 통해서 할 수 있는 가장 기본적인 일은 웹서버를 설치하고
    웹 서버를 통해 사용자가 웹 브라우저로 요청하는 서비스를 제공하는 것
  
2. EC2 서비스 장점
  - 구성하는 데 필요한 시간이 짧다
  - AMI라는 다양한 템플릿을 제공하고 있어 다양한 운영체제에 대한 선택이 가능  
  - CPU, RAM, 용량까지도 쉽게 구성 할 수 있다.
  
  

4. RDS

AWS에서 제공하는 관계형 데이터베이스 서비스

1. RDS를 사용 하는 이유
  - EC2인스턴스에 데이터베이스를 설치하여 사용하면 데이터베이스 관련하여
    자동으로 관리를 담당하는 부분이 매우 적기 때문에 사용자가 일일이
    데이터베이스 엔진의 설치와 버전 관리, 데이터 백업을 해야함
  - 가용성과 내구성이 확보되지 않기에 데이터베이스에 저장된 데이터가
    유실되거나 정상적으로 사용하지 못할 확률이 커지며 필요에 따라
    데이터베이스의 규모를 확장하기 어렵다.
  - 유지보수와 관련된 일들을 RDS에서 전적으로 자동 관리함
  
    
2. RDS의 장점
  - 다양한 데이터베이스 엔진 선택지를 제공하며 필요와 목적에 맞게 데이터베이스
    엔진을 선택하여 효율성을 높일 수 있다.
    
    

5. S3(Simple Storage Service)

클라우드 스토리지는 인터넷 공간에 데이터를 저장하는 저장소
S3은 AWS에서 제공하는 클라우드 스토리지 서비스

1. S3의 장점
  - 높은 확정성
   : 많은 시간과 수고를 들이지 않고 스토리지 규모를 확장/축소 할 수 있다.
     스토리의 용량을 무한히 확장 할 수 있다.
  - 사용한 만큼만 비용을 지불
  - 뛰어한 접근성
   : 웹 환경이라면 언제 어디서나 저장된 파일에 접근 가능
  - 강력한 내구성
   : 스토리지의 내구성이 높으면 저장된 파일이 유실될 가능성이 적어짐
  - 가용성 보장
   : 스토리지에 저장된 파일들을 정상적으로 사용할 수 있는 시간이 길어짐
  - 다양한 스토리지 클래스를 제공
   : 대표적인 스토리지 클래스 2가지
     Standard 클래스는 범용적인 목적으로 사용하기 적합, 빠른 
     속도로 데이터에 접근 가능, 액세스 요청에 처리 속도가 빠름
     그러나 데이터를 오래 보관하는 목적으로는 보관 비용이 높게 
     발생하기 때문에 맞지 않음
     Glacier 클래스는는 장기적인 보관 목적으로 사용하기 적합,
     데이터에 액세스하는 속도는 느림 보관 비용이 저렴
  - 정적 웹 사이트 호스팅이 가능

6. 배포전략

profile
프론트엔드 개발자를 꿈꾸고 있습니다!

0개의 댓글