분류 전체보기 77

CI/CD - GitLab으로 AWS Cloud로의 지속적인 배포 (CD) - (1) / AWS Elastic Container Service (ECS) / Task & Task definition

GitLab pipeline 에서 make build, make push 까지 했었다. (make test 의 경우에는 그냥 스테이지만 넣었고 실질적인 test를 넣은 건 아니었다.)ECR까지 docker image가 등록이 된 상태다. 지속적인 통합 과정, CI 과정은 끝이 난 것. 이제 make deploy,그러니까 AWS Cloud로의 배포까지 추가해서 사용자들이 사용할 수 있도록 하면 된다.CI 까지 만들었으니까 CD 를 만든다는 것. 1. GitLab을 이용해서 프로젝트를 만들고2. Docker Image를 빌드해서 ECR에 Push 했고3. 이제 인터넷 사용자가 서비스를 사용할 수 있도록 Docker Image를 배포해야 한다.4. AWS ECS 를 이용해서 우리가 개발한 어플리케이션을 AWS..

CI/CD - CI/CD Pipeline 구성하기 / Makefile & make /

파이프라인을 작성을 해봤고 어떻게 작동하는지도 확인해봤다. 이제는 test-app을 직접 CI/CD Pipeline 배포하는 것을 해봐야 한다.실제 빌드를 할 수 있게 해야 한다. 현재 .gitlab-ci.yml 파일(pipeline)에는 stages가 만들어져있다.- build / test / deploy지금은 각각의 stages 에서 echo를 실행하고 있는데,직접 build를 할 수 있도록,docker image를 build 하고 push하고 test 하고 deploy 를 할 수 있도록 수정을 해야 한다. 여러가지 방법 중에 여기서 선택할 방법은, 소스 코드에 make build / make push / make test ... 스크립트를 함께 집어넣을 것이다. 그래서 make build 를 하게 ..

CI/CD - GitLab Pipeline 구성 / 파이프라인 문제 발생, 문제 해결 /

gitlab runner를 구축했었다.gitlab cicd pipeline을 구성을 해볼 것이다.pipeline 이라는 건, 컨베이어 벨트 같은것이다. 각각의 스테이지가 있는데그 스테이지는 컨베이어 벨트로 연결이 되어 있고,각각 스테이지에서 어떤 결과물들을 다음 스테이지로 컨베이어 벨트를 통해서 넘기는 것.최종적으로는 완성된 제품이 튀어나오는 것.GitLab Pipeline도 stages 를 이용해서 관리한다.stages:- build- test- deploy 빌드 스테이지에서는 도커 이미지를 만들고테스트 스테이지에서는 도커 이미지 기반으로 해서 여러 가지 테스트를 수행하고테스트가 끝나면 ECR에 push를 하고,최종적으로 Deploy.  스테이지는 하나 이상의 job 으로 구성된다.스테이지는 각각의 공..

CI/CD - Build push/pull (Docker Image 저장소 : AWS ECR) + (GitLab을 이용한 자동화 : GitLab Runner)

만들었고, 아직 아무런 image가 없다. No images.이 오른쪽 위에, View push commands 를 봐야 한다.이 저장소를 사용하기 위한 다양한 명령어들이 있다.당연히 이것도 마찬가지로, ECR에 대한 접근 권한이 있어야 한다.접근 권한을 생성해줘야 한다.이 명령어를 사용하기 전에 접근 권한을 먼저 설정하는 일을 해봐야 한다. Docker Image는 회사의 중요한 자산이다.Docker Image는 사실상 제품에 대한 정보를 가지고 있는 것이니까.그러니 그걸 저장하고 있는 ECR은 아무나 접근하게 두어선 안 된다.그래서 권한 관리를 해줘야 한다.AWS에서는 IAM 이라는 서비스를 이용해서 권한을 관리를 할 수 있다.IAM을 통해서 access key, secret key 를 가지고 key..

CI/CD - 프로젝트 코드 작업 (AWS ECR push 하기 전 Dockerfile, Docker Image, container까지)

우선, Group 을 만들고, 거기서 project (test-app) 을 생성하는데, 그 안에는 Dockerfile, Makefile 이 있을 것이다.Docker Image가 만들어지고 나면, push 를 해서 AWS ECR에 저장될 것이고 Docker Container를 실행할 수 있게 된다.일단 지금은, AWS ECR 에 push 하기 전까지의 단계까지만 진행해볼 것.GitLab 기반 Docker 이미지 생성 및 AWS ECR 푸시 워크플로--------------------------------------------------1. 그룹 생성: - GitLab에서 새로운 그룹(Group)을 생성. └── 그룹 이름: [그룹 이름]2. 프로젝트 생성: - 그룹 안에 새로운 프로젝트(Pr..

CI/CD - GitLab과 Docker Application 빌드 / GitLab 가입 후 Git 저장소 생성 /

1. GitLab 소개와 가입- Gitlab 은 기본적으로 AWS 클라우드처럼 인터넷 서비스다. 그래서 인터넷 서비스라서 가입을 해야 사용가능함.- GitLab 은 세계에서 가장 널리 사용하는 CI/CD 툴 중 하나. GitLab 프로젝트를 만들고 Git 기반으로 소스코드를 관리하고, 자동으로 Docker 어플리케이션을 빌드하게 된다. 2. Gitlab 프로젝트 설정3. Gitlab 을 이용한 Docker 어플리케이션 빌드- Docker 어플리케이션 빌드를 해서 나오는 결과로 Docker Image가 만들어짐. 4. Docker Image 를 ECR 저장소에 push- 만들어진 Docker Image를 사용하기 위해서는 저장소에 저장을 해야 하는데, ECR 이라고 하는 Docker 저장소에 push를 하..

CI/CD - Docker란? / Docker vs. VM / Docker 설치 후 사용 / Docker Hub / Docker 명령

Docker란 무엇인가?Docker는 애플리케이션을 실행할 때 필요한 모든 것(코드, 라이브러리, 설정)을 하나의 컨테이너라는 "상자"에 담아두는 기술이에요. 이 상자는 개발, 테스트, 배포 등 어디로 가든 동일하게 작동해요. 그러니까 개발 환경과 배포 환경이 달라서 "왜 여기선 작동 안 하지?" 하는 고민이 사라지는 마법 같은 도구예요.한마디로 Docker는?"내 컴퓨터에서 잘 돌아가는 걸, 어디서든 잘 돌아가게 해주는 도구!"왜 Docker를 써야 할까요?과거의 문제개발자들이 Docker 없이 개발하던 시절엔 이런 문제가 많았어요:"왜 개발 환경에선 되는데 서버에선 안 돼?"개발자는 Windows를 쓰고, 서버는 Linux라서 설정이나 의존성 충돌로 문제가 생김.배포는 너무 복잡했어요.운영팀이 직접 ..

CI/CD - Linux 핵심 명령어 / Linux 코드 작성 환경 준비 (vs code) / 간단한 Flask 어플을 만들어보는데, Flask가 뭐지? / EC2 인스턴스에 연결하기

Linux에서 자주 사용되는 핵심 명령어는 파일 관리, 시스템 상태 확인, 프로세스 제어 등 다양한 작업을 수행하는 데 유용합니다. 아래는 Linux 초보자부터 중급자가 알아두면 좋은 주요 명령어를 간단히 정리한 목록입니다.1. 파일 및 디렉토리 관리(1) 디렉토리 탐색 및 관리ls디렉토리 내용 확인.cd디렉토리 이동.pwd현재 작업 중인 디렉토리 경로 출력.(2) 파일 및 디렉토리 생성/삭제touch빈 파일 생성.mkdir새 디렉토리 생성.rm파일 또는 디렉토리 삭제.cp파일/디렉토리 복사.mv파일 이동 또는 이름 변경.2. 파일 내용 확인cat파일 내용 출력.less긴 파일을 페이지 단위로 읽기.head / tail파일의 시작 또는 끝 부분 출력.grep파일 내용에서 특정 문자열 검색.3. 권한 및 ..

[LG 유플러스 유레카 2기] 지원 전 생각 정리

공부를 하면서도 계속 과정에 대한 생각이 머릿속에서 맴돌아서, 빨리 정리를 좀 해보고 계속 공부를 해야겠다. 0. 백엔드, DevOps- 백엔드 교육 과정을 이수한 수강생에게는 백엔드와 DevOps 직무 채용에서 서류 전형 및 코딩 테스트 1회 면제 기회가 주어진다.그렇다면 가장 최근에 있었던 신입사원 채용에서 직무 설명을 확인해볼 필요가 있겠다.   올해 하반기 신입채용에서 확인 가능한 내용이다.그러면, 내가 지원하려는 교육 과정의 커리큘럼을 보자. 결국, 내가 하고 있는 공부는 백엔드와 DevOps 두쪽 모두에 발을 걸쳐놓고 있는 것이라는건가.그리고 교육 과정 커리큘럼에서는 클라우드 특강이 굉장히 짧다. 그러므로, 만약 DevOps 직무를 내가 원한다면, AWS 자격증을 따놓으면 좋겠다는 생각도 든..

생각 기록하자 2024.12.04

CI/CD - AWS EC2 / Linux 사용 - Linux 운영체제 - VirtualBox / Ubuntu Linux (iso) /

AWS EC2에 대해서 간단하게 설명해줄 수 있어?AWS EC2(Amazon Elastic Compute Cloud)는 Amazon Web Services에서 제공하는 **가상 서버(인스턴스)**를 생성하고 관리할 수 있는 서비스입니다. 간단히 말해, 인터넷 상에서 필요한 컴퓨팅 자원을 제공하는 클라우드 기반의 가상 서버 서비스라고 할 수 있습니다.주요 특징가상 서버 제공EC2를 통해 원하는 성능과 사양의 서버를 쉽게 생성할 수 있습니다. CPU, 메모리, 스토리지 등을 선택해 맞춤형 서버를 만들 수 있습니다.확장성과 유연성서버 자원을 필요에 따라 늘리거나 줄일 수 있어, 트래픽이 많은 시간대에는 서버를 확장하고, 사용량이 적을 때는 축소하여 비용을 절감할 수 있습니다.요금제사용한 만큼만 요금을 지불하는..