09월 16일 공부일기

2021. 9. 16. 18:07공부일기

09월 16일 공부일기

회사에 입사하고 하루가 지났다. 첫날에는 이것저것 다 설정한다고 매우 힘들었지만 좋은분들을 만나서 좋은 회사생활이 될 수 있다고 앞으로를 예상해볼 수 있었다. 이제 남은건 나만 잘하면 된다는 것이었다.

 어제와 달리 오늘 우리팀은 재택 근무를 하는 날이지만 나는 온보딩이 있어서 출근을 했다. 그래서 아주 구체적인 일을 현재 받은 상황이 아니라 멘토분이 알려준 레퍼지토리 코드 리딩을 진행했다. 코드리딩을 진행하며 팀에서 사용하는 기술을

우선 오늘 새롭게 들어보고 공부해볼 내용은 다음과 같다. 물론 지금 현재 상황에서 aws 환경에서 사용해볼 수 있는 환경은 아니지만 간략하게 어떤 기술이고 왜 사용하는지 등에 대해서 정리해보겠다.

 

  • Terraform

     아래 참고 글을 읽어 보며 느꼈던 Terraform은 aws를 사용하면 하나하나 aws 사이트에 접속해 설정을 해주어야 하는데 Terraform을 이용하면 텍스트를 통해서 귀찮게 해주어야 했던 설정들을 편리하게 할 수 있었다. 

    물론 aws, gcp를 깊게 사용해보지 않았지만 각종 설정이나 옵션들을 명령어를 통해서 할 수 있다는 사실은 엄청나게 편리할 수 밖에 없다. 즉 이러한 귀찮은 부분들을 자동화 시켜주는 인프라 자동화 툴이라고 생각하면된다.

    코드를 작성해 인프라를 자동화 시켜주는 편리한 툴이기 때문에 IaC(코드형 인프라)라고도 한다. IaC는 개발자가 귀찮아 하는 부분들을 코드를 작성해 편리하게 만들어 주기 때문에 아래와 같은 장점들이 따라온다. 

    - 속도 향상: 새로운 자원 및 인스턴스(ex. ec2, compute engine sqs)을 연결해야 할 경우 수동 탐색보다 자동화가 더 빠르다.  

    - 안전성 증가: 직접 사용해보고 작성

    - 구성 드리프트 방지: 사용자 환경을 프로비저닝한 구성이 실제환경과 더 이상 일치하지 않는 경우 구성드리프트가 발생합니다. 

    *프로비저닝: 사용자 요구에 맞게 시스템 자원을 할당, 배치, 배포해두었다가 필요할 때 사용함.

    - 실험, 테스트 및 최적화 지원: 아래 영상을 보면 v1과 v2 모두 테스팅 후 v1을 삭제하는 등의 다양한 테스트 및 실험 환경을 제공해주는 것 같았다.

    IaC 설명


    Terraform 과 비슷한 역할을 하는 소프트웨어가 존재하는데 이는 Ansible이다. 책을 통해 쿠버네티스를 만들 때 사용했었는데 항상 하나의 서비스를 공부할 때 경쟁사도 비교해봐야 한다고 생각한다.

    Terraform vs Ansible 비교
    Terraform Ansible
    선언을 통해서만 사용한다. 절차적과 선언적 둘다 모두 사용한다. 원하는 상태로 Terraform에 비해 더 많은 기능을 제공하지만 절차가 복잡하다.
    오픈 소스(무료) Red Hat 개발 및 판매한다.(유료)

    참고 글
    - 우아한 형제들, 좌충우돌 Terraform 입문기, https://techblog.woowahan.com/2646/
    - IBM, TerrForm 이란?,  https://www.ibm.com/kr-ko/cloud/learn/terraform
  • argo Workflow

    현재 회사에서 argo라는 회사의 Workflow을 이용하고 있다. argo cd는 들어봤는데 workflow는 처음이라 workflow가 무엇이고 argo workflow가 어떤 특장점으로 사용되는지 정리해보겠습니다. 

    우선 argo Workflow을 알기전에 Workflow가 뭔지 알아봅시다. 

    Workflow란 job들을 구성하고 이를 자동으로 실행시킬 수 있는 flow를 만드는 툴인 것 같았다. 여기서 job들은 어떤 툴을 사용하냐에 따라서 컨테이너도 될 수 있고 프로세스도 될 수 있다. argo Workflow의 경우에는 container를 사용해 flow를 구성한다. 

    즉 스펙을 yaml 파일로 작성하면 실행할 때 마다 컨테이너를 생성해서, 작업을 수행하는 개념이다. 

    또 다른 workflow의 Airflow 경우에는 job의 단위가 프로세스이고 기존에 계속 vm 및 인스턴스가 작동되어야지 실행할 수 있는 단점이 있다. 

    특징을 정리하자면 다음과 같다 

    • job은 컨테이너 기준으로 실행

    • Web UI 제공 



    • DAG 알고리즘을 이용해 명시적으로 job들을 실행시킬 수 있다. 즉 종속성을 갖고 순서대로 실행시킬 수 있음을 의미한다.

    • 각각의 job들이 컨테이너로 완전히 구분되어 실행되기 때문에 독립적으로 실행할 수 있다. 

    • 위의 이유를 바탕으로 다양한 문제나 에러가 연쇄적으로 작동하지 않을 것이다. 

    • airflow와 다르게 파이썬이 아닌 어떠한 언어로도 yaml 파일을 만들어서 workflow를 실행할 수 있다.

    • argo 플랫폼 안에 있지 않고 어디서든 argo yaml 파일만을 생성해 argo에게 넘겨주면 만들 수 있다.
  • 참고글 

    조대협의 블로그, 컨테이너 기반 워클플로우 솔루션 argo, https://bcho.tistory.com/1299
    커피 웨일, 쿠버네티스 Argo workflow 소개, https://coffeewhale.com/kubernetes/workflow/argo/2020/02/14/argo-wf/

 

현재 직접 kubernetes 환경을 만들 수 있는 상황이 아니라서 이론적인 부분만 조금씩 저장했다. 다음에는 실질적인 환경에서 테스팅 해볼 수 있었으면 좋겠다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'공부일기' 카테고리의 다른 글

09/29 AWS 공부(ECR, Kinesis firehose, S3 buckets)  (0) 2021.09.29
Git Ops  (0) 2021.09.24
Terraform tutorial - 2. Build Infrastructure  (0) 2021.09.24
Terraform tutorial - 1 IaC, Terraform  (0) 2021.09.24
9월 17일 공부  (0) 2021.09.17