본문 바로가기
반응형

분류 전체보기3262

Azure A900-1 2020. 12. 8.
docker-compose (도커컴포즈) ## docker-compose (도커컴포즈) 컨테이너를 실행하는 구문을 docker-compose.yml 이라는 파일에 모아놓고 실행 구문을 직접 커맨드 라인에 실행 시킬필요 없이 docker-compose 실행구문을 통해 실행 할 수 있도록 하는것. ## MySQL, SpringBoot 컨테이너를 docker-compose.yml 파일로 만들어 보자. version: '3.3' services: app1: image: springboot ports: - 8080:8080 container_name: app1 mysql: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=1234 - TZ=Asia/Seoul container_name: mysql ports: .. 2020. 12. 2.
리눅스 명령어 ## cp 명령어로 디렉토리 복사 가능 ## cp -r dir1 dir3 ## 소프트 링크 설정 ## ln -s 소스 타겟 ## cat 소스 >> 타겟 (이어 붙이기) ## cat a.c >> b.c ## head -20 파일명 (위에서 20줄까지 보임) ## tail -f 파일명 (내용 추가시 지속 모니터링) ## 파일내 문구내용 조회 ## grep test *.log ## grep -H test *.log ## grep -Hw test1 *.log ## less (vi 처럼 수정 못하지만, 대용량 로그 분석시 사용) ## tar 압푹하기 ## tar cvzf target.tar.gz * (현재 모든 폴더 및 파일) ## tar cvzf target.tar.gz ./dir3 ./file2 ./syste.. 2020. 12. 2.
Jenkins Jira 통합 www.youtube.com/watch?v=DfmOOB_mGwo&list=WL&index=1&t=19s ## 지라 플러그인 설치 ## 지라에서 웹훅 설정 작업 ## 젠킨스 JOB 생성 - YouTube-Jira-Trigger-Job -> Freestyle Project 선택 ## 지라에서 테스트 - 빌드 유발을 위해 코멘트 발생 - 젠킨스에서 빌드 수행여부 확인 ## 젠킨스에서 지라 이슈 업데이트시 빌드 유발 설정 - 지라에서 TES-1 이슈를 BackLog -> TO-DO 로 변경 - 젠킨스에서 빌드 3 유발 2020. 12. 1.
리눅스 make 란? Make 란? make는 파일 관리 유틸리티 반복적인 명령 자동화를 위한 것. Makefile이 있는 디렉토리에서 make 만 치면 컴파일된다. 파일 간의 종속관계를 파악하여 Makefile( 기술파일 )에 적힌 대로 컴파일러에 명령하여 SHELL 명령 순차적으로 실행 프로그램의 종속 구조를 빠르게 파악 Makefile 구조 목적파일(Target) : 명령어가 수행되어 나온 결과를 저장할 파일 의존성(Dependency) : 목적파일을 만들기 위해 필요한 재료 명령어(Command) : 실행 되어야 할 명령어들 매크로(macro) : 코드를 단순화 시키기 위한 방법 2020. 11. 25.
Jenkins를 활용한 CI/CD 4강 - 젠킨스 CI/CD 파이프라인 구성 실습(2) ## 현재까지 진행현황 - 젠킨스 설치 - Git 만들고, 플로그인 설치, Git레포지토리 Credential 생성 - AWS에 젠킨스 유저 생성 (Access키, Secret키 생성) 으로 AWS 리소스 접근가능 ## 젠킨스파일 내부구조 - 파이프라인 구조 (큰 Stage 단계) - Prepare - Only for production - Deploy Frontend - Lint Backend - Test Backend - Build Backend - Deploy Backend ## Prepare 단계 - Git 에서 소스코드 다운받기 (Pull 다 당겨받기) - 위에 CredentialsId 입력 필요 ## Post section - 스테이지가 끝난 이후의 결과에 따라서 후속 조치를 취할 수 있다. .. 2020. 11. 19.
Jenkins를 활용한 CI/CD 3강 - 젠킨스 CI/CD 파이프라인 구성 실습(1) ## 젠킨스 설치하기 yum update -y # 젠킨스 패키지 추가 # Install Java, Jenkins, Docker, git ## 8080, 80 포트 오픈 필요 ## 1. Git 연동 필요 - Jenkins 관리 -> Manage Credentials -> Global Credentials -> Add Credentials - Git으로 가서 CI/CD 용 레포지토리 생성 - 레포지토리 새로 생성해도 됨 - 레포지토리 생성후, 프로필 -> 셋팅 선택 -> Developer Settings -> Personal access tokens -> repo 선택 -> Generate token 발급 - 만들어진 Access tokens 복사해서 젠킨스에 Password 부분에 복사 - Username.. 2020. 11. 18.
Jenkins를 활용한 CI/CD 2강 - 젠킨스 개발환경 및 CI/CD 기본 동작 이해 ## 개발 환경의 종류 - DEV / QA / PROD ## 개발 프로세스 - 빌드 -> 코드 배포 -> 테스트 ## 여러 배포환경의 관리에서 핵심은 인프라를 모듈화하여 어떤것이 변수인지 잘 설정하고 이를 잘 설계하는것. - APP_ENV 처럼 현재 배포하고자 하는 것이 무슨환경인지 설정하고 앱내에서 사용하는 다양한 변수들을 APP_ENV에 맞게 잘 가져다 쓰는 것이 핵심 - 클라우드 리소스 내에서 인프라별 키관리가 매우 중요해서 AWS System Manager의 parameter store 와 같은 키 관리 서비스를 추천 ## S3 - Simple Storage Service - 정적 웹사이트 코드배포에 용이 - 정적 웹사이트 호스팅에 필요한 다양한 기능 제공 - AWS Cloudfront 와 함께 .. 2020. 11. 17.
Jenkins를 활용한 CI/CD 1강 - 젠킨스(Jenkins) 이해 자바 - 컴파일 빌드 필요 도커사용하면 이미지도 필요 - 빌드 : Webpack, Tsc, Javac - 테스트 : Jest, junit - 배포 : ecs update ## 기본 개념 - Java Runtime Environment 에서 동작 - 다양한 플러그인들을 활용해서 각종 자동화 작업을 처리할 수 있음 - 일련의 자동화 작업의 순서들의 집합인 Pipeline을 통해 CI/CD 파이프라인을 구축함 ## 젠킨스 Plugin - Credentials Plugin - Git Plugin - Pipeline ## 플러그인 살펴보기 - Credentials Plugin : 젠킨스는 그냥 단지 서버일뿐이기 때문에 배포에 필요한 각종 리소스에 접근하기 위해서는 여러가지 중요정보들을 저장하고 있어야한다. : 이.. 2020. 11. 17.
오픈소스 시각화 툴 Grafana 최근에 서버자원 및 서비스 모니터링을 위한 Zabbix를 설치해서 사용하고있던 도중에 좀더 예쁘고 가시성이 뚜렷한 오픈소스 시각화 툴 Grafana를 찾게되었다. 시각화 툴에는 kibana도 있지만 kibana의 경우 ELK스택에 최적화이기때문에 Zabbix와 호환성이 좋은 Grafana를 적용해보겠다. Grafana란?? Grafana를 사용하면 저장된 위치에 상관없이 메트릭 을 쿼리, 시각화, 경고 및 이해할 수 있습니다. 팀과 대시 보드를 생성, 탐색 및 공유하고 데이터 중심의 시각화를 제공합니다. Grafana 프로젝트는 2014 년 Torkel Ödegaard에 의해 시작되었으며 지난 2 년 동안 GitHub에서 가장 인기있는 오픈 소스 프로젝트 중 하나가되었습니다. 저장된 위치에 상관없이 메트.. 2020. 11. 11.
Ingress Controller kubernetes Installation on AWS EKS | Ingress kubernetes Service - 인그레스 컨트롤러 설정하기 github.com/stacksimplify/aws-eks-kubernetes-masterclass/tree/master/08-ELB-Application-LoadBalancers/08-01-ALB-Ingress-Install stacksimplify/aws-eks-kubernetes-masterclass AWS EKS Kubernetes - Masterclass | DevOps, Microservices - stacksimplify/aws-eks-kubernetes-masterclass github.com # Create ClusterRole, ClusterRoleBinding & ServiceAccount kubectl apply -f https://raw.githubusercontent.com/ku.. 2020. 11. 2.
How ALB Ingress Controller works? | AWS ALB Ingress Controller | kubernetes Ingress controller - ALB 인그레스 아키텍처 github.com/stacksimplify/aws-eks-kubernetes-masterclass stacksimplify/aws-eks-kubernetes-masterclass AWS EKS Kubernetes - Masterclass | DevOps, Microservices - stacksimplify/aws-eks-kubernetes-masterclass github.com 2020. 11. 2.
Fargate on EKS 구현 $ aws eks create-fargate-profile --cli-input-json file://demo-kube-system-profile.json --region ap-northeast-2 { "fargateProfileName": "demo-default", "clusterName": "eks-cluster", "podExecutionRoleArn": "arn:aws:iam::XXXXXXXXXXXX:role/eksctl-demo-cluster-FargatePodExe-OKY", "subnets":[ "subnet-07b6a641feec85XXX", "subnet-09c8f6e2d47194XXX" ], "selectors":[ { "namespace": "dafault" } ] } 2020. 10. 28.
AWS Fargate on EKS 실전 사용하기 www.youtube.com/watch?v=N0uLK5syctU&list=WL&index=1&t=1013s ## Fargate on EKS - Fargate (ECS) : 완전 관리형 컨테이너 서비스 : 범용 목적의 서버리스 컨테이너 - EKS : 관리형 쿠버네티스 서비스 : EC2 노드그룹을 Worker로 사용 - EKS + Fargate : Fargate에 EKS의 APP 배포 가능 : 오케스트레이터 (쿠버네티스) ## 관리해야하는 EC2 인스턴스가 존재하지 않음 - 하지만 Fargate on EKS가 모든 것을 해결해 주지는 않음. ## 관리의 복잡도가 줄어듭니다. - Cluster Autoscaler 를 사용할 필요가 없습니다. - 비용 청구의 단위가 Pod의 실행 시간이 됩니다. - Pod를 사.. 2020. 10. 27.
Open EDX 공개 소프트웨어 플랫폼 / opendex.org edX는 온라인 학습플랫폼 edx.org를 구축하고 자유롭게 이용할 수 있도록 2013년 6월 부터 오픈 소스 코드로 제공합니다. 이 누구나 edX 콘텐츠나 기술을 필요한 곳에 활용할 수 있습니다. Open edX의 주요 기능 Open edX는 웹 기반 플랫폼으로 온라인 교육 과정을 생성, 전달, 분석 가능하게 하는 도구와 사용 환경이다. 기술적 측면에서 Open edX는 Python으로 구현된 서버단과 Django로 구현된 웹 어플리케이션 프레임워크로 구성되며, Mako templates를 사용한다. 2020. 10. 16.
[헬름] Helm : The Kubernetes Package Manager ## helm은 kubernetes cluster에 어플리케이션을 배포하는 도구입니다. 그리고 TACO는 Openstack을 kubernetes위에 container 형태로 배포하기 위해서 openstack-helm 프로젝트를 사용하고 있는데 이 프로젝트가 Openstack의 배포를 위해서 사용하는 도구가 바로 helm입니다. Helm 이란? helm은 deis라는 회사에서 시작한 Helm Classic 프로젝트와 Google에서 진행되던 GCS Deployment Manager 프로젝트가 합해진 프로젝트입니다. Helm Classic은 kubernetes에 어플리케이션을 올리고 관리하는 도구이고 GCS Deployment Manager는 kubernetes의 어머니격인 Google Cloud에 어플리케.. 2020. 10. 15.
Helm (헬름) 설치하기 helm.sh/ko/docs/intro/install/ 헬름 설치하기 헬름 설치하고 작동하는 방법 배우기. helm.sh $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh 2020. 10. 14.
Helm 차트 란? | NGINX를 사용한 Helm Kubernetes 데모 www.youtube.com/watch?v=j-YBgTnV2v0&list=WL&index=6&t=316s helm install x stable/wordpress ## Helm 설치하기 $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh ## helm search repo wordpress ## helm search repo nginx ## helm search hub nginx ## helm repo add bitnami https://charts.bitnami.com/bitnami ## helm search .. 2020. 10. 14.
OWASP OWASP(Open Web Application Security Project)는 오픈소스 웹 애플리케이션 보안 프로젝트입니다. OWASP처럼 애플리케이션 보안에만 전념하는 여러 커뮤니티 그룹의 조직이 상당히 커지고 있습니다. OWASP는 가장 큰 오픈소스 웹 애플리케이션 보안 프로젝트로 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션의 취약점(OWASP TOP 10)을 발표합니다. OWASP TOP 10은 웹 애플리케이션 취약점 중에서 빈도가 많이 발생하고, 보안상 영향을 크게 줄 수 있는 것들 10가지를 선정한 문서입니다. 아래는 2017년 발표한 10대 웹 애플리케이션 취약점입니다. OWASP TOP 10 1. Injection(인젝션) SQL.. 2020. 10. 5.
도커와 쿠버네티스 소개 2020. 10. 1.
AWS CLI 설치 On CentOS7 AWS CLI 설치 On CentOS7 DevOps 2017. 7. 26. 19:38 Amazon Linux가 아닌 일반 머신에서는 반복적으로 AWS CLI를 설치하게되는데요, 그 과정을 단순히 정리해봅니다. RHEL계열은 아래과정과 대동소이하며, Debian계열의 Linux에서도 거의 비슷합니다. 우선 Python이 설치되어 있다고 가정합니다. 전체적인 과정 먼저 Python 패키지관리자인 PIP을 설치해줘야합니다. Python Packaging Authority에서 제공하는 스크립트를 사용하여 pip를 설치한 다음 AWS CLI를 설치합니다. wget이나 curl을 이용해서설치스크립을 다운로드. $> curl -O https://bootstrap.pypa.io/get-pip.py Python으로 다운.. 2020. 9. 28.
Kubernetes NodePort vs LoadBalancer vs Ingress? 무엇을 사용해야합니까? medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0 2020. 9. 27.
쿠버네티스 클러스터 엔드포인트 엑세스 2020. 9. 27.
쿠버네티스 서비스 (Service) - 2 2020. 9. 27.
파드와 노드스케줄 (Pod & Node Schedule) 파드를 특정 노드에 지정할 수 있음. 쿠버네티스가 알아서 적절히 노드를 선택 자원 사용량이 없는 노드2에 pod-4 가 생성됨 2020. 9. 27.
파드와 서비스 연동 (Pod & Service) 2020. 9. 27.
쿠버네티스 서비스 (Service) ## 서비스 (Service) 쿠버네티스에서의 서비스는 파드에 접근할 수 있도록 정책을 정의하는 것이다. 서비스는 파드끼리 통신할 수 있도록 엔드포인트를 만들어 주고, 파드가 외부에 노출될수 있도록 한다. 그럼 앞에서 디플로이먼트를 설명하면서 생성한 nodejs-app 파드를 서비스를 사용하여 노출해보자. 서비스에 사용할 수 있는 많은 옵션과 다른 패턴들도 있지만, 여기서 핵심은 중요한 오브젝트의 정의 및 기능을 알아본다. ClusterIP : 서비스가 클러스터-내부 IP에 노출되도록 한다. 이 값을 선택하면 클러스터 내에서만 서비스에 도달할 수 있다. 이것은 ServiceTypes 의 기본 값이다. NodePort : 고정포트로 각 노드의 IP 에 서비스가 노출되도록 한다. NodePort 서비스가 라.. 2020. 9. 23.
쿠버네티스 디플로이먼트 (Deployment) ## 디플로이먼트 (Deployment) 디플로이먼트는 파드와 레플리카셋에 대한 선언과 업데이트를 제공하는 상위개념의 컨트롤러. 이전에 파드를 설명할때 살짝 설명한 컨트롤러이다. 서비스를 파드만 운영하면 복제가 불가능하다. 트래픽이 몰리는 상황이나 배포상황에서 안정적인 서비스를 유지하기 위해서 복제의 조절은 필수적이다. 디플로이먼트는 이러한 파드의 복제뿐만 아니라 여러 부분을 조절하도록 해준다. ------- nodejs.yaml 생성 ---------- apiVersion: apps/v1 kind: Deployment metadata: name: nodejs-app labels: app: nodejs-app spec: replicas: 1 selector: matchLabels: app: nodejs-.. 2020. 9. 23.
쿠버네티스 파드 ## 파드 (Pod) 한 파드내의 컨테이너들은 포트를 중복해서 사용할 수 없다. (한 호스트라고 인식함) 파드는 쿠버네티스의 구성 요소중 가장 작은 단위의 객체이다. 파드는 해당 클러스터에서 러닝 프로세스를 나타낸다. 파드는 쿠버네티스에서 컨테이너와 같다고 보면 된다. 하지만 도커에서는 단일 컨테이너가 가장 작은 단위의 객체인 반면, 쿠버네티스에서는 파트 내에 여러 개의 컨테이너가 존재할 수 있다. 파드 안에 컨테이너들은 IP주소와 포트 공간을 공유하고, localhost를 통해 서로 찾을수 있다. ## 생명주기 다음 용어들은 파드의 상태를 나타낸다. Pending : 파드가 쿠버네티스 시스템에 의해 승인되었지만, 파드를 위한 하나 또는 하나 이상의 컨테이너 이미지 생성이 아직 완료되지 않은 상태이다. .. 2020. 9. 22.
쿠버네티스 네임스페이스 ##네임스페이스 (Namespace) 쿠버네티스에서 네임스페이스는 하나의 물리적인 공간에 있는 쿠버네티스를 다수의 팀이 사용할때 유용하다. 다수의 팀이 쿠버네티스를 운영한다면 각 팀이 사용하는 부분이 서로 영향을 미칠 수 있기 때문에 분리해서 작업을 할 수 있는 환경이 필요. 이럴때 네임스페이스가 작업되는 부분에 대해서 논리적으로 분리해 줄수 있다. 먼저 네임스페이즈 조회 ubuntu@ip-10-0-1-52:~/.kube$ kubectl get namespace : 만약에 네임스페이스에 대한 부분이 없다면 모든 작업은 default 네임스페이스에 할당된다. 다음과 같이 namespace.yaml 만든다. https://github.com/uphiller/dockerbook/blob/master/kuber.. 2020. 9. 22.
반응형