MongoDB는 왜 태어났는가?기존의 RDB는 데이터들끼리 관계를 맺어 관리할수 있는 데이터베이스관계형 데이터베이스의 한계를 뛰어 넘고자 NoSQL이라는 발전이 생김그 전에 데이터베이스에 대한 개념을 확립하자.데이터베이스란 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다.여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합이다.논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 위함.몇 개의 자료 파일을 조직적으로 통일하여 자료 항목의 중복을 없애고 자료를 구조화해 기억시켜 놓은 자료의 집합체최근에는 빅데이터, 클라우드의 발전으로 SQL을 사용하지 않고 확장성을 가지면서 운영성도 가지는 데이터베이스로 가는..
DevOps Engineer
개요오늘은 Terraform 코드를 작성할 때 output for 반복문을 이용한 문제 해결을 작성해보려 한다. 문제문제는 아래와 같다.현재 서브넷은 environment 별로 다른 변수를 넣어주기 위해서 tfvars 파일을 이용해 cidr와 az를 지정해주고 있음이 과정에서 for_each를 이용하게 되는데 다른 모듈에서 생성된 subnet의 id를 참조해야 할 경우가 생김. 이를 output으로 전달하고자 했음output에서 for_each문을 사용할 수 없어서 혹시 해당 for_each로 생성된 리소스의 id를 동일하게 반복적으로 한 output으로 불러올 순 없는지 확인이 필요했음 처음 접근을 할 때는 output 리소스 블록에서 for_each 를 사용할 수 있는데 내가 코드를 잘못 작성해서 p..
개요테라폼 구조를 어떻게 잡았는지 또 문제들을 어떻게 해결했는지 정리해보면 좋을 것 같아 글을 작성한다. 테라폼에 대한 이해도가 굉장히 적어서 공부를 더 꼼꼼히 다시 하고, 코드를 즉시 변경 해야겠다고 느꼈던 순간이다. 현재 테라폼 구조현재 테라폼 구조는 아래와 같은 구조로 구성되어 있다.$ tree ..|-- README.md|-- environment| |-- dev| | |-- backend.tf| | |-- dev.tfvars| | |-- main.tf| | |-- terraform.tfstate| | `-- variables.tf| `-- prod| |-- backend.tf| |-- main.tf| |-- prod.t..
개요Terraform plan과 apply를 수행하기 위해서 GitHub Workflow를 작성하는 과정을 정리 해보았다. Terraform plan공식문서인 링크에서 예시로 제공해주는 yml 파일을 확인하면 Terraform Cloud를 사용하는 것을 알수 있었다. 나는 Terraform Cloud를 사용하지는 않기 때문에 다른 예시를 찾았다. 예시에서는 plan과 apply를 하나의 워크플로우로 관리하는데 나는 plan과 apply를 나눌것이기 때문에 별개의 yml 파일로 구성해주었다.[기존 버전]name: Terraform dev planon: # 수동 실행 포함 workflow_dispatch: push: # dev branch의 경우에만 push branches: - ..
개요테라폼을 사용할 때 자격 증명을 Access Key 방식을 사용하려고 했었는데, 여간 찜찜한 일이 아닐수 없었다. 그래서 검색 중 OIDC를 설정해서 AssumeRoleWithWebIdentity를 이용해 Role을 Assume 해주는 방식이 있다는 것을 알았다. 가이드는 Github 제공 가이드와 AWS 제공 가이드가 있다.OIDC(OpenID Connect)를 사용하면 클라우드 공급자에게 직접 수명이 짧은 액세스 토큰을 요청하도록 워크플로를 구성하여 다른 접근 방식을 취할 수 있습니다. 또한 클라우드 공급자는 OIDC를 지원해야 하며, 액세스 토큰을 요청할 수 있는 워크플로를 제어하는 트러스트 관계를 구성해야 합니다. 현재 OIDC를 지원하는 공급자로는 Amazon Web Services, Azu..
개요최근 개발자 친구들과 함께 토이 프로젝트를 시작했다.토이 프로젝트를 하는 목적은 아래와 같다.현업에서 사용해보지 않았던 기술들 (Terraform, GitHub Actions, ECS launch type ec2) 사용해보기Front-End 및 Back-End 키워드 얻기 일단 현재 다룰 수 있는 기술이 많지 않기 때문에 바운더리를 조금 늘리고 싶었다. 지난 분기 회고에도 동일한 생각을 갖고 있었다. 그래서 Terraform과 Github Actions 또 AWS SAP 자격증 공부를 하고자 했는데, SAP는 그리 급하지 않다고 느껴졌고 많은 회사에서 요구하는 IaC와 CI/CD에 할애하고자 했다. 그래서 개인 시간을 활용해 토이 프로젝트를 진행하며 개인적으로 부딪혀가며 공부해보는게 좋다고 생각했다...
개요쉘 스크립트 또는 명령어를 수행할 때 나오는 출력 결과를 변형해야할 일이 있다. 그런 경우 사용하면 좋은 명령어들을 정리해보고자 한다.명령어tr지정한 문자를 변환하거나 삭제하는 명령어이다.tr [OPTION]... SET1 [SET2]# 주요 옵션-d : SET1 에서 지정한 문자를 삭제합니다.-s : SET2 에서 반복되는 문자를 삭제합니다.-t : SET1을 SET2의 길이로 자릅니다.-c : SET1을 제외한 나머지를 SET2로 치환한다.# SET에 들어갈 수 있는 문자a-za 부터 z 까지의 문자를 변형하고 싶다면 이렇게 사용해도 된다.[:class:]특정 class를 이용해서 특수한 형태를 지정할 수 있음. class는 아래와 같음[:alnum:] : 알파벳 + 숫..
개요Github를 이용하려고 하던 찰나 Window 환경에서 gh 명령어를 사용해서 Pull Request를 날릴수 있게 github cli를 설치해보고자 한다. 자세한 과정은 공식 repository에 있다. 설치 과정윈도우의 경우 "gh is available via WinGet, scoop, Chocolatey, Conda, Webi, and as downloadable MSI." 이와 같다고 한다.그래서 이전에 설치 해보았던 chocolatey 패키지 매니저를 설치해 gh를 설치하는 방법 한가지와 msi 파일을 직접 받아와 실행 시키는 방법을 정리해보겠다. Chocolatey 이용한 설치 과정윈도우에 chocolatey는 기본적으로 설치되지 않는 것으로 알고 있다. Chocolatey 설치 과정은..