1. 클라우드 서비스의 전달 방식이 전통적인 소프트웨어 전달 방식에 비해 갖는 단점으로는 무엇이 있을까요?
- 서버가 공격 당하면 개인정보가 유출될 수 있다.
- 재해에 서버의 데이터가 손상되면, 미리 백업하지 않은 정보는 되살리지 못하는 경우도 있다.
- 사용자가 원하는 애플리케이션을 설치하는 데에 제약이 심하거나 새로운 애플리케이션을 지원하지 않는다.
- 통신환경이 열악하면 서비스 받기 힘들다.
- 개별 정보가 물리적으로 어디에 위치하고 있는지 파악할 수 없다.
- 서비스 종료의 위험성, 서비스 제공자의 정책에 따라 서비스가 갑자기 종료될 수 있다.
2. DevOps 엔지니어, 클라우드 엔지니어, SRE 엔지니어와 같은 직군을 채용 정보 사이트(원티드 등)에서 찾아보고, 여러분이 해당 직군으로 채용된다고 가정할 때, 무슨 일을 하게 될지 이해한 만큼만 적어보세요.
원티드에 들어가면 나오는 devops직군 주요업무, 자격요건을 가져옴
https://www.wanted.co.kr/wd/143075
주요업무 devops
- AWS 클라우드 환경에 아키텍처를 설계하고 구축하며 운영해요.
- 클라우드 서비스 중에서 AWS를 사용하게 될것이다.
- 클라우드 환경에 구축하는 인프라를 IaC(Infrastructure as Code) / GitOps를 통해 구축하고 운영해요.
- IaC - 프로그래밍형 인프라, 인프라 구성을 프로그래밍 하듯이 처리하는 방식
- https://gsmesie692.tistory.com/93
- 하나의 가상머신(VM)에만 해도 설정할것이 많다. 가상머신 1대만으로는 트래픽을 감당하지 못한다.
가상 머신 여러대에 직접, 수동으로 그런작업을 반복하는 일은 비효율적이다. AWS에선 복제도 가능하나 수가 많이늘어나면 결국 비효율적이게 된다. 이미지를 만들고 이미지로부터 가상머신을 만들고 가상머신 위에 소프트웨어를 설치하고 세팅하는 작업들을 프로그램적으로 코드를 이용한 자동화를 할 수 있게 해주는것 이런걸 IaC라고 한다.
- GitOps - 애플리케이션의 배포와 운영에 관련된 모든 요소를 코드화하여 깃(Git)에서 관리(Ops)하는 것이 깃옵스의 핵심이다.
- https://dewble.tistory.com/entry/what-is-gitops
- Git에서 누릴 수 있었던 깃의 기능을 배포후 운영단계에서 활용할수 있게 해주는 것, 소스코드와 배포용을 따로 관리하여 복구에 용이하다.
- Kubernetes로 애플리케이션을 배포하고 CI/CD 파이프라인을 구축, 운영해요.
- 서비스 로깅과 모니터링 시스템을 구축하고 운영해요.반복적인 구축작업을 자동화하여 더욱 중요한 업무에 집중해요.
- 모니터링 시스템을 구축하고 자동화까지 DevOps엔지니어의 맡은 일임을 이해했습니다
- 기술, 운영 장애 시 트러블슈팅을 하고 재발 방지를 위해 여러 방안을 마련해요. 더 나은 서비스를 제공하기 위해 구성된 아키텍처에 대해 고민하고 개선하기 위해 노력해요.
DevOps엔지니어가 여러가지 에러가 발생할만한 상황을 테스트하고 방지하는 역할을 하는걸 이해했습니다.
자격요건
- Linux 환경에서 서비스 운영 경험이 있으신 분AWS 클라우드 환경을 3년 이상 구성/운영 경험이 있으신 분
- Kubernetes, Docker Orchestration 구성/운영 경험이 있으신 분
- Docker Orchestration - 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트
- https://seosh817.tistory.com/345
- 컨테이너가 가상머신보다 좋은점 - 컨테이너는 가상화된 공간을 생성할 때 리눅스 기능을 사용하여 프로세스 단위의 격리(성능 손실이 없음)
가상머신과 달리 커널을 공유해서 사용하므로, 컨테이너에는 라이브러리 및 실행파일만 있다(용량이 적다)
컨테이너를 이미지로 만들었을때 배포하는 시간이 더 빠르며 사용할 때의 성능손실이 적다
- CI/CD 구성 및 운영 경험이 있으신 분클라우드 환경에서 1개 이상의 프로그래밍 언어를 능숙하게 다룰 수 있으신 분
- DevOps엔지니어도 최소한 한개의 언어는 능숙하게 다룰수 있어야하는걸 알았다.
IaaS
IaaS는 쉽게 말해서 가상의 네트워크 공간을 사용하여 서버를 제공하는 서비스입니다. 서버와 저장하는 공간, 방화벽 그리고 실제 데이터 센터 등을 통해서 인프라가 없어도 되는 서비스입니다. IaaS에서는 사용자가 애플리케이션, 데이터, 런타임, 미들웨어, 운영체제를 다룹니다. 그리고 서비스 공급자는 가상화, 서버, 스토리지, 네트워크를 제공합니다.
PaaS
PaaS에서 사용자는 애플리케이션과 데이터를 다루고 이 외에 나머지는 서비스 공급자가 제공합니다. 즉, 개발할 수 있는 환경이 이미 구축되어 있기 때문에 인프라에 대한 걱정 없이 개발을 할 수 있다는 특징이 있습니다.
SaaS
SaaS에서는 서비스 공급자가 애플리케이션, 데이터, 런타임, 미들웨어, 운영체제, 가상화, 서버, 스토리지, 네트워크까지 모두 제공한다는 특징이 있습니다.
https://ko.wix.com/blog/post/software-as-a-service-saas