모두야

01.DevOps의 기본개념 본문

Medical AI/AWS DevOps

01.DevOps의 기본개념

미미밍2 2022. 9. 25. 00:56
반응형

# DevOps 소개

DevOps란?

"개발(Dev) 와 운영(Ops)의 합성어" : 개발과 운영의 경계를 허물고 통합하고자 함.

 

- 왜 필요할까?

이전에는 개발만 하는 개발 팀, 운영을 위해 production을 올리고 배포하는 서버 팀이 따로 분리되어있었으며, 서비스 운영팀에서는 개발팀과의 소통이 필요하고 운영 중의 문제가 발생함.

개발자가 작성한 코드에 직접 수정하며 테스트하고 배포 및 운영을 하게 됨.

 

- 소프트웨어 개발 단계 : 많은 의사소통 필요 / 병목구간 발생

설계 - 개발 - 테스트 - 배포 - 운영 - 서포트

 

- Full-cycle Developer ; 소프트웨어 개발 생애주기의 전체에 직접 참여하는 개발자 (넷플릭스 제시)

 

"개발과 운영의 벽을 허물어 더 빨리 자주 배포하자!"

AWS 활용방안

  1. 지속적 통합 (Continuous Integration) : 개발자가 만든 변경사항에 대해서 빌드 및 테스트를 진행한 후, 중앙 코드저장소에 저장하여 빠르게 버그를 발견하고 제품의 품질을 보장할 수 있게 함. 
    - 데브옵스 운영 품질 보장
  2. 지속적 배포 (Continuous Delivery) : 개발 결과물의 산출물을 자동으로 개발환경이나 운영환경까지 배포하도록 만든 자동화된 파이프라인
  3. 마이크로서비스 (Micro-services) : 규모있는 서비스의 빌드 도움 - 시간 단축
  4. IaC (Infrastructure as Code) : 인프라 변경사항을 빠르게 적용할 수 있도록 도움
  5. 모니터링과 로깅 (Monitoring & Logging) : 개발자들에게 제품의 매트릭과 로그데이트를 중앙에서 확인할 수 있는 환경 만들어줌 - 제품 문제 발생 시 빠르게 문제 해결 가능
  6. 소통 및 협업 (Communication & Collaboration) : 조직 내 소통 및 협업 높임 (메신저)

# DevOps 엔지니어의 역할

 - 데브옵스 엔지니어는 개발과 운영을 모두 하는 사람일까???? No!

==> 조직에 데브옵스 문화를 정착시키는데 도움을 주는 역할이다. 개발자가 개발 뿐만 아니라 운영에도 참여할 수 있는 환경을 만들어준다.

- 하는일이 많음. 네트워크 셋업, 데이터베이스 관리, 배포, 보안 등등..

 

- 데브옵스 팀의 고객은 개발자이다. 구축하고 운영된 시스템의 사용자는 개발자이므로. 개발자의 생산성을 극대화 해준다.

- 구축, 설정, 운영, 사용, 교육, 문서화


# DevOps 엔지니어 성장 전략 (로드맵)

출처 : https://roadmap.sh/devops

- 언어 ; Go, Python, Node.js

- 운영체제의 이해 

- 서버 관리 (터미널 에디터)

- 프로토콜 SSL/TLS/SSH/Port Forwarding

- 쿠버네티스 

- 클라우드포메이션 (AWS 관리)

- 로그 매니지먼트

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


데브옵스 엔지니어 신입 가능할까?

- 쉽지는 않다..

(시스템 엔지니어+백엔스 엔지니어+데이터 플랫폼 엔지니어+주니어)

= 기능 동작만 하게 하는 것은 안된다. 메뉴얼 따라 하면 쉽긴 함.

(기능성>안정성>자동화>보안>최적화-성능 및 비용)

 

# 문제가 발생하였을 땐 근본 원인을 찾고 장애기록을 남기는 습관을 가지자.

# 혼자 학습하여 성장하는데는 한계가 있어 스터디 등등을 활용하자.

 



# 운영체제 환경 및  AWS 실습 환경 구성

MacOs (Homebrew)를 사용하지 않음...

- macos 사용 개발자들의 필수 도구

- 표준 패키지 관리자

- homebrew 공식홈페이지를 통해 명령어 실행

brew search jq

# WSL2 + Ubuntu 20.04 LTS 구성 (Windows)

WSL : 윈도우에서 우분투 사용할 수 있게 함.

 

 

 


# AWS 소개 및 실습 계정 생성

http://aws.amazon.com 

- 클라우드 업체 중 1위 

- 25개 리전, 81개 가용영역

- 제공 서비스가 많음

- 탄력적 종량 과금제 (사용한 만큼 요금 부과)

- 많은 오픈소스 프로젝트 사용 및 참고 가능

 


# AWS 가격 모델

- 탄력적 종량 과금제 (사용한 만큼 요금 부과)

- 첫 사용자를 위한 프리티어 소개 ; EC2, S3, VPC, IAM 


#  AWS SSH 키 등록 / EC2 접속 방법

- SSH 키 생성 : EC2 - 네트워크 및 보안 - 키 페어 - 생성 - 이름 - pem 파일 (개인키)   // (공개키는 EC2 머신에 저장됨)

- 기존 SSH 불러오기 : 작업 - 키페어 가져오기 - 이름 - 파일 불러오기 

- EC2 머신 만들기 : 인스턴스  - 만들기 - t2.micro - 퍼플릭IP 자동할당 - 이름 - 시작하기 - 기존 키페어 사용

- EC2 머신 접속하기 : SSH 이용 / 퍼플릭 IP 복사 필요

 

 

>> 개인 키 SSH 이용하여 EC2 접속 

- 개인 키 파일은 최소권한으로 만들어야함 (소유자만 읽기쓰기 가능)

 

 

 

 

 

 

 

 

 


# AWS CLI

- AWS 서비스 관리를 위한 CLI 명령형 도구

- MacOS에서 awscli 설치

$ brew install awscli

- Ubuntu에서 awscli 설치

 

- AWS 액세스 키 발급 : AWS 계정 혹은 IAM 사용자의 액세스 키 발급 필요

  • Access Key ID : 자격증명 주체를 가리킴 ; 인증 요청한 사람이 누구인가? (공개가능)
  • Secret Access Key : 자격증명 주체 본인임을 인증 ; 인증 요청한 사람이 정말 A가 맞는가? (비공개)

# AWS 계정 MFA 활성화

 MFA란 ? (Multi Factor Authentication)

- 다단계 인증 ; 계정에 대한 추가 보안

- 가상 MFA 디바이스 ; 스마트폰 또는 기타 디바이스에서 실행되며 물리적 디바이스를 에뮬레이션하는 소프트웨어 애플리케이션 (Authy)

 

- 적용방법 : 보안자격증명 - MFA - 가상MFA디바이스 - 휴대폰 어플을 통해 등록 (Authy)

 


# AWS 비용 이슈 대처법

- 결제알림 : 결제알림관리 -  CloudWatch 서비스 - 경보생성 - 지표/생성 (얼마마다?) - 이메일

- 비용 검토 : AWS 서비스 별 요금 페이지 (https://aws.amazon.com/ko/vpc/pricing)


 

출처 : Fastcampus (한 번에 끝내는 AWS 인프라 구축과 DevOps 운영 초격차 패키지 Online)

 

반응형