전체 글 208

[CI/CD] 환경 구성 - EC2(K8S Master / Worker) 구성

참고 블로그: https://www.skyer9.pe.kr/wordpress/?p=8209k8s Master Node, Worker Node 생성 시스템 업데이트sudo apt updatesudo sed -i "/#\$nrconf{restart} = 'i';/s/.*/\$nrconf{restart} = 'a';/" /etc/needrestart/needrestart.confsudo apt -y upgrade Swap off AWS EC2 인스턴스는 default로 swap을 disable 하여 필요 없다. 선택사항!sudo swapoff -a && sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab방화벽 offsudo ufw disable커널 파라미터 수정sudo ..

AWS/Project 2024.06.22

[CI/CD] 환경 구성 - EC2(Jenkins, GitLab) 설치

참고 블로그: https://rainbound.tistory.com/entry/Ubuntu-jenkins-%EC%84%A4%EC%B9%98  이번 실습은 CI/CD 구축을 위해 실습 환경을 구성한다.EC2 2대에 Jenkins와 GitLab을 설치한다.OS는 ubuntu 24.04이다.1. Jenkins 설치 시스템 업데이트sudo apt updatesudo apt upgrade -y  java 11 설치sudo apt install openjdk-11-jdk -y  key 등록curl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee \    /usr/share/keyrings/jenkins-keyring.asc > /dev/null..

AWS/Project 2024.06.22

[CI/CD] CI/CD - Jenkins, GitLab 구성

참고 블로그: [Hands On] EC2 CI/CD – 교보DTS 기술 블로그 (kyobodts.co.kr)  회사에서 내부 과제 프로젝트로 IaC로 CI/CD 구성을 시켰는데.. CI/CD를 한번도 구성해본 적이 없어서 사전에 별도로 CI/CD 연습 및 이해를 해보기 위해 실습하도록 한다. 전체 아키텍처   흐름Developer가 Gitlab에 코드를 pushGitlab이 CI 진행 후 webhook을 통해 Jenkins에게 이를 알리고 코드를 넘김Jenkins는 Gitlab에게 코드를 받고 이미지 생성이미지를 docker hub와 같은 이미지 저장소에 푸시 (이미지 저장)이미지를 k8s 배포(deployment)에 업데이트하여 새 이미지를 사용하도록 함 (현 환경에 이미지 배포) 여기서 내가 해야할 ..

AWS/Project 2024.06.19

Route53 ACM 인증서 요청

Route53에서 도메인 구매 후 ACM 인증서 요청을 하려는데 갱신 자격 부적격이 뜨며, 상태가 계속 검증 대기중이 뜬다...ACM 요청 전 해주어야 할 프로세스가 있다는 것을 몰랐다.우선 ACM 인증서 요청 방법은 아래와 같다.인증서 요청*.[발급받은 도메인].com 을 입력한다. 호스팅 영역 생성[발급받은 도메인].com 의 이름을 가진 호스팅 영역을 생성한다.  호스팅 영역에 CNAME 레코드 추가아까 요청한 ACM 인증서 항목에 들어가면 도메인 항목에 Route53에서 레코드 생성 버튼이 있다.CNAME으로 요청했으므로 반드시 CNAME으로 레코드 추가해야 한다.수동으로 추가해도 되지만 저 버튼을 누르면 자동으로 추가된다. 발급 완료정상적으로 발급되었음을 확인했다.

AWS/Project 2024.06.13

[Terraform] 배포 및 플래그

Terraform 배포 시 사용되는 명령어 및 플래그를 정리해 둔 공간입니다.배포initTerraform 작업 디렉터리를 초기화planTerraform 구성 파일 기반 실행 계획 생성실제로 리소스를 변경하지 않고, 어떤 리소스가 추가, 변경, 삭제될지 미리 보여줌applyTerraform plan 명령어에서 생성된 실행 계획을 실제로 실행하여 인프라 변경 terraform initprovider가 정의되어 있는 위치에서 해당 명령어를 입력한다면 provider, module, state를 설정한다. (사용준비) .terraform 디렉터리 생성, .terraform.lock.hcl 파일 생성 terraform plan이전 state와 비교하여 변경될 내역을 보여준다.terraform apply현재 작성된..

IaC/Terraform 2024.06.11

[Terraform] 디렉터리 구조

.terraform 의존되는 파일들이 다운로드(외부, 로컬까지도) 되어 저장되는 공간이다.내부적으로 .tfstate의 정보 포함 .teeraform.lock.hcl의존성 관련 잠금파일이다. 의존되는 파일들에 대해 명시되어 있다.git과 같은 버전관리 시스템에서 .terraform 디렉터리를 업로드하지 않고 이 파일만 업로드한다. 다른 PC/유저들은 init 명령어를 사용하여 이 파일에 명시되어 있는 의존 파일들을 다운로드한다. terraform.tfstateTerraform의 상태 파일이다. apply를 통해 실제 인프라에 적용한 결과를 기억하는 파일이다.인프라 설계 인원이 많아질 경우 이 파일을 원격으로 공유하며 사용해야한다.각 로컬에서 관리할 경우 모든 이들의 tfstate가 다르므로 인프라가 꼬일 ..

IaC/Terraform 2024.06.11

[K8S 환경에 Kafka 및 EFK 배포] EFK 구성

참고 블로그https://waspro.tistory.com/762https://medium.com/musinsa-tech/%EB%AC%B4%EC%8B%A0%EC%82%AC%EC%9D%98-%EC%97%98%EB%9D%BC%EC%8A%A4%ED%8B%B1%EC%84%9C%EC%B9%98-muse-musinsa-elasticsearch-e6355516186a https://www.elastic.co/guide/en/cloud-on-k8s/master/k8s-deploy-eck.html EFK 구성1.  ElasticSearch 구성namespace 생성 마스터 노드 생성# elasticsearch-master-configmap.yaml---apiVersion: v1kind: ConfigMapmetadata:..

AWS/Project 2024.04.24

EFK 스택(ElasticSearch+Fluentd+Kibana)

참고 블로그: https://waspro.tistory.com/762 EFKElasticSearch- 저장을 위한 모듈 - 실시간 검색/분석 기능 - 분산환경에 저장된 로그를 통합으로 수집하여 통합 저장소 역할 - 구성 요소: 마스터 노드, 데이터 노드 - NoSQL DB로 데이터의 백업/복구를 관리하는 저장소 Master 노드클러스터 관리 인덱스의 메타 데이터(생성, 삭제), 클러스터 상태 정보, 데이터 저장 Data 노드 실제로 데이터 저장 및 처리 Client 노드 클라이언트 요청을 받아들이고 처리요청을 Master 및 Data 노드로 라우팅하며, 결과를 수신하여 클라이언트에 반환검색 요청을 분산, 보안 및 인증을 관리 FluentD- 수집 및 정제를 위한 모듈 - K8S 환경에 DaemonSet으..

AWS/Service 2024.04.24

[K8S 환경에 Kafka 및 EFK 배포] TroubleShooting

Instances failed to join the kubernetes clusterInstances failed to join the kubernetes cluster새로 추가한 서브넷을 라우팅 테이블로 연결 안해둬서.. 안됐음Helm 버전 에러helm version 2 설치하니 에러 생겨서 helm version 3.14.4로 진행...참고 블로그: https://helm.sh/ko/docs/intro/install/$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3$ chmod 700 get_helm.sh$ ./get_helm.sh $ kubectl --namespace kube-..

AWS/Project 2024.04.19

[K8S 환경에 Kafka 및 EFK 배포] EKS 구성

1.  AWS CLI 설치로컬 환경에 AWS CLI 설치https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2.html AccessKey 생성$ aws configureAWS AccessKey ID [********HTZD]:AWS Secret Access Key [******RhfT]:Default region name [ap-northeast-2]:Default output format [json]: 2.  Kubectl 설치로컬에서 쿠버네티스 클러스터를 kubectl로 제어해야하므로 로컬 OS에 맞게 curl로 kubectl을 설치한다. kubectl 설치https://docs.aws.amazon.com/eks/latest/user..

AWS/Project 2024.04.18