12월 6일 TIL

임덤덤·2022년 12월 6일
0

☁️ Cloud Computing

  • 기존 서버의 방식은 서버실과 같은곳에 컴퓨터를 배치해서 인터넷을 연결하고 서비스를 제공했음
    • 하지만 서버가 요청에대한 수용하는 능력이 한계에 도달하면 문제가 생김
    • 방법은 있음 컴퓨터 한대한대의 성능을 높히던지 아니면 여러대가 요청을 나눠서 처리하는 방법등이 있음 하지만 근본적인 해결방법이 아님

기존 방식의 한계

  • 주기적인 관리가 필요함
    • 컴퓨터가 많아지다보면 고장이나거나 인터넷이 연결이 되지않는등 문제가 생기는 컴퓨터는 존재하게 되는데 이런 상황이 발생하면 인력과 비용이 투입되어야 함
    • 하지만 컴퓨터와 다른전자기기의 수가 많아지는 만큼 투입되어야 하는 인력, 비용도 증가함
  • 공간의 한계
    • 예전의 방식은 서버실이라는 공간에 컴퓨터를 배치하고 필요할때마다 추가컴퓨터를 추가하는 방식으로 수용능력을 향상 해왔음
    • 하지만 부피도 큰 서버 컴퓨터를 한 공간에 채우는것에는 한계가 있음을 느껴서 큰 기업들은 데이터센터 라는 건물을 세우기 시작했고 이때부터 데이터 센터의 유후 자원을 대여하는 서비스가 생김
  • 서버의 자원과 공간, 네트워크 환경을 제공을 빌려서 사용하는 클라우드 컴퓨팅이 시작되었음

💻 Deployment

배포

  • 개발한 서비스를 사용자가 이용 가능하게 하는 일련의 과정
    • 회사마다 추가적 과정이 있을수 있지만 기본적으로는 4단계를 거쳐서 배포가 진행됨

Deployment

  • 각자 컴퓨터에서 코드를 작성하고 테스트하는 과정
    • 개발단 계이기 때문에 실제 데이터를 이용하지 않고 더미데이터를 이용해서 테스트함

Integration

  • 각자의 컴퓨터에서 작성한 코드를 합치는 과정
    • 내 코드가 다른코드로 침범해서 오류가 생기는지, 코드간에 conflict가 있지는 않은지 확인함

Staging

  • 출시단계인 Production 단계와 가장 유사한 환경에서 테스트를 진행함
    • 실제 데이터를 복사해서 문제가 있지 않은지등 다양한 환경에서 테스트를 진행함
    • 서비스와 관련된 부서 혹은 인원의 확인과정을 거침

Production

  • 개발된 서비스를 출시하는 단계
    • 사용자가 접속 할 수 있는 환경에서 코드를 구동하고 서비스를 제공함
    • 실제 데이터를 가지고 서비스가 운영되기 떄문에 문제가 생기면 안되는단계

환경

  • 배포에서는 환경의 차이를 이해하고 환경설정 코드와 분리하는게 중요함
  • 작성된 코드가 다른환경에서 정상 작동할 수 있게 하려면 설정을 환경변수에 저장해야하고 환경변수는 코드변경없이 배포마다 쉽게 변경 할 수 있음
    • 설정 파일과 달리 잘못해서 코드 저장소에 올라갈 가능성도 낮음

💻 EC2

  • 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스임
    • 쉽게 정리하면 아마존에서 가상컴퓨터 한대를 빌리는것과 같음
  • EC2는 후불제 피시방같이 사용한 만큼 비용을 지불하고 비용적인 부분만 아니라 성능과 용량을 자유롭게 조절 할 수 있다는 의미도 가지고 있음
    • 정리하면 AWS에서 비용,성능,용량면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스라고 할 수 있음

장점

  • 구성하는데 필요한 시간이 짧음
  • AMI를 통해 필요한 용도에 따라서 운영체제에 대한 선택이 가능함
    • EC2에서는 AMI라는 템플릿을 제공하고 있어서 필요에따라 운영체제를 선택과 구성할수있음

AMI

  • 소프트웨어 구성이 기재된 템플릿임
    • 이미지 종류로는 단순히 운영체제만 깔려있는 템플릿을 선택할 수도 있고 아예 특정 런타임이 설치 되어있는 템플릿이 제공되는 경우도 있음

정리

  • AWS에서 EC2 인스턴스를 생성한단것은 AMI를 토대로 운영체제,CPU,RAM혹은 런타임등이 구성된 컴퓨터를 빌리는것

💻 RDS(Relational Database Service)

  • AWS에서 제공하는 관계형 데이터베이스 서비스임
    • RDS를 이용하면 데이터 베이스에 유지보수와 관련된 일들을 전적으로 자동 관리함
    • 사용자가 해야할 일은 초기 설정을 제외하고는 데이터 베이스에 저장된 데이터를 관리하는 일뿐이기 때문에 큰 편의성을 느낄 수 있음

💻 S3

클라우드 스토리지

  • 인터넷 공간에 데이터를 저장하는 장소임
    • 장점으로는 뛰어난 접근성이 있음 컴퓨터의 하드디스크에 저장된 파일에 접근하기 위해서는 해당 컴퓨터를 이용해야만 하는데
    • 클라우드 스토리지를 이용하게 되면 웹 환경이라면 어디서든 저장된 파일에 접근이 가능함
    • 컴퓨터 뿐만아니라 웹에 접속이 가능한 다른 전자기기를 사용해서 저장된 데이터에 접속이 가능함

S3란?

  • AWS에서 제공하는 클라우드 스토리지 서비스임
  • 장점
    • 높은 확장성이 있음 확장성이 높으면 많은 시간과 수고를 들이지 않고 스토리지 규모를 확장/축소 할수 있음
    • S3에서는 스토리지의 용량을 무한하게 확장 할 수 있고 사용한 만큼만 비용을 지불하면 되기때문에 비용적 측면에서 효율적임
    • 99.9999999999%의 내구성을 보장함
    • 가용성이 높으면 스토리지에 저장된 파일들을 정상적으로 사용할 수 있는 시간이 길어짐
    • 다양한 스토리지 클래스를 제공함
    • 대표적으로 많이 선택하는 스토리지 클래스는 Standard와 Glacier클래스가 있음
  • Standard
    • 범용적인 목적으로 사용하기 좋음
      • 데이터에 빠르게 접근 할 수 있고 데이터 액세스 요청에 대한 처리속도가 빠름
    • 대신 데이터를 오래 보관하는 목적으로는 효율적인 선택지는 아님
      • 보관비용이 높음
  • Glacier
    • 장기적인 보관목적일 경우에는 좋음
      • 저장된 데이터의 액세스 속도는 느리지만 데이터 보관비용이 매우저렴함
  • 정적인 웹 사이트 호스팅
    • 버킷이 사용자들이 정적 웹 사이트를 배포 할 수 있는 공간을 제공하고
    • 버킷이라는공간에 정적 파일을 업로드하고 버킷을 정적 웹사이트 호스팅 용도로 구성하면 정적 웹 사이트를 배포 할 수 있음
  • 버킷
    • 파일을 저장하는 최상위 디렉터리
      • S3에서 저장되는 모든 파일은 버킷 안에 저장되어야 하고 버킷에는 무한한 양의 파일을 저장 할 수있음
      • 각각의 버킷은 이름을 가지고 있는데, 버킷의 이름은 버킷이 속해 있는 리전에서 유일해야함
profile
응애🐣 예비 개발자 입니다.

0개의 댓글