2023/01/31 TIL | [Cloud] 운영 환경 구성

    반응형

    💭 오늘의 학습 전략

    # Cloud와 Deployment

    ◼️ Cloud Computing

    ◻️ Deploy

    # AWS (Amazon Web Service)

    ◼️ EC2

     ◽AMI

     ◽보안 그룹

    ◼️ RDS

    ◻️ S3

     ◽확장성과 가용성

     ◽버킷

     ◽객체

    # 배포 실습

    ◻️ 3 Tier-architecture 배포 전략

     ◾Server 배포

     ◽Client 배포

     ◽Databaes 배포

     ◽DNS

    🌼 학습한 것들

    ◾ Cloud Computing

     ▪️ 기존 방식

      - 확장 시: 같은 공간에 컴퓨터 추가 or 업그레이드

      - 주기적인 관리 필요, 인력과 비용 ↑, 공간의 한계

      - 데이터 센터 등장, 유휴자원 대여

      - 서버 자원, 공간, 네트워크 환경 제공(온프레미스 방식)

     ▪️ 현대의 클라우드 컴퓨팅

      - 가상 컴퓨터 대여

      - 유연성: 필요할 때 컴퓨팅 능력 조절 가능

      - 온디맨드: 사용한만큼만 요금 지불

      - 스냅샷: 다른 컴퓨터로 즉시 migration 가능

      - 종속성: 클라우드 서비스 문제 시 내 서비스에 영향

      - 서비스 형태

        SaaS(Software): 당장 사용 가능한 SW 제공

        PaaS(Platform): DB, 개발 플랫폼 제공

        IaaS(InfraStructure): 가상 컴퓨터 제공

     Deploy

     ▪️ 기본 4단계

      - Development: local, sample data, 데이터 변경에도 문제 없는, 각자 개발

      - Intergratrion: 취합, conflict 확인

      - Staging: production 환경과 유사, 복제 데이터

      - Production: 실제 서비스

     ▪️ 주의

      - 절대 경로보다 상대경로를 사용한다

      - 환경에 따른 포트 분기(환경변수)

      - Docker: 환경 변수를 메타 데이터로 관리(개발 환경 통일)

     ▪️ 플랫폼

      - AWS, Azure, Firebase, heroku, Digital Ocean 등 ...

     EC2 (Elastic Computer Cloud)

     ▪️ "AMI를 토대로 세팅된 PC 빌리기"

     ▪️ 비용, 성능, 용량 면에서 탄력적인 클라우드 컴퓨터 제공

     ▪️ 구성 소요시간 단축

     ▪️ 다양한 운영체제에 대한 선택 가능(CPU, RAM 용량도)

     ▪️ 한 대의 컴퓨터 = 인스턴스

      - 인스턴스 중지 (Stop instance) : 인스턴스(운영체제) 종료

      - 인스턴스 시작 (Start instance) : 인스턴스를 다시 사용할 수 있는 실행(running) 상태로 변환

      - 인스턴스 재부팅 (Reboot instance) : 인스턴스 재부팅

      - 인스턴스 최대 절전 모드 (Hibernate instance) : Amazon Linux와 특정 이미지의 인스턴스에서 지원하는 수면모드

      - 인스턴스 종료 (Terminate instance) : 인스턴스 삭제

     ▪️ AMI (Amazon Machine Image)

      - 소프트웨어 구성이 기재된 템플릿

      - 단순 OS ~ 특정 런타임

      - 선택한 AMI를 토대로 인스턴스 구성(직접 구성도 가능)

     ▪️ 보안 그룹

      - 인바운드 규칙: EC2 인스턴스로 들어오는 트래픽에 관한 규칙, 추가 제거 자유로움

      - 아웃바운드 규칙: EC2에서 나가는 트래픽에 대한 규칙

     RDS (Relational Database Service)

     ▪️ EC2에 직접 DB 설치

      - DB 설치, 관리, 백업, 규모 확장 등 모두 직접 관리 필요

     ▪️ RDS 사용 시

      - RDS에서 전적으로 관리

      - 다양한 DB 엔진 제공

     S3 (Simple Storage Service)

     ▪️ 클라우드 스토리지 서비스

     ▪️ 확장성: 비용만 지불한다면 데이터 무한 저장

     ▪️ 내구성

     ▪️ 가용성

      - 이는 가용영역이 많기 때문 (데이터 백업)

      - Region: 물리적 서버 위치, 각 리전에는 가용영역(IDC)가 2~3개 존재

     ▪️ 어떤 목적의 스토리지인지에 따른 다양한 스토리지 클래스 제공

     ▪️ 대표적으로 Standard(범용, 빠른 접근과 처리)와 Glacier(장기, 느리고 저렴)

     ▪️ 정적 웹 사이트 호스팅 가능

     ▪️ 핵심 개념

      - 버킷: 파일의 최상위 디렉토리

      - 객체: 버킷에 담기는 파일 + 메타 데이터 (키-값 형식)

    🔥 보충이 필요한 것들

    도메인 주소를 이용한 HTTPS 인증 튜토리얼

     

     

    💨 하루를 마치며

    1. 실습 후기

    오늘은 서버 배포까지만 실습했다. 서버 배포까지는 책이랑 강의 보면서 혼자 해봤었는데 그 때 과금됐던 기억이 있따...ㅋㅋ 지금도 메일 오면 심장이 조금 뛰지만

    아무튼 이번 실습은 SSH 방식이 아닌 세션 매니저 방식으로 연결을 했는데 간단하고 편했다.

    Shell script를 작성하니까 수동으로 재부팅해는 것보다 훨씬 좋았다. 원하는 작업을 한 번에 정의해둘 수 있었다.

    보안 그룹은 조금 더 공부가 필요할 것 같다. 개념은 알겠는데 특정 프로토콜이나 포트만 허용해본 적이 없어서 크게 와닿지는 않았다.

    2. webflux를 완벽하게는 학습 못 하고 이전에 놓쳤던 부분들을 많이 보완하는 시간을 가졌는데 아쉽지만 지금 나한테는 좋은 선택이었던 것 같다.

    3. 스터디를 하면서 간단한 Q&A 게시판 실습을 진행하고 있는데 설계라던가 API 정의를 내 마음대로 할 수 없을 때도 있지만 나도 부족한 점, 좋은 아이디어나 놓쳤던 것들을 보완하면서 진행할 수 있다. 내부 구현은 자기 마음대로이지만 작은 프로젝트를 경험하는 기분ㅎㅎㅎ 좋은 기회인 것 같으니 열심히 해봐야겠따......

    반응형

    댓글