전체 글 67

Shell 셸, 셸 스크립트

셸 셸(Shell)은 사용자가 커널의 기능을 사용하도록 하기 위한 사용자 인터페이스이다. 쉘을 통하여 사용자는 쉽게 파일 관리, 프로세스 관리, 배치 프로세싱, 성능 모니터링, 환경 설정 등의 커널 기능을 사용할 수 있다. sh, bash sh (bourne shell) 1977년 스티븐 본이 개발. 유닉스 최초의 셸인 톰프슨 셸을 대체. 유닉스 버전 7의 기본 셸. bash (bourne again shell) 1989년 브라이언 폭스가 개발. 리눅스에서 가장 많이 사용하는 셸. sh 명령어 문법과 호환된다. 명령 히스토리, 디렉토리 스택, 명령어 치환, 명령어 자동완성 기능 등을 제공한다. 셸 확인 현재 셸 확인 $ echo $SHELL /bin/bash 시스템이 지원하는 셸 목록 확인 $ chsh ..

DevOps 2021.01.30

AWS 자동 배포하기 (1) - EC2, Auto Scaling, Load Balancing

이 글에선 Auto Scaling을 통해 자동으로 EC2를 생성하고 로드밸런서에 등록하는 방법에 대하여 알아본다. 훑어보기 보통의 서비스 운영 환경은 단일 서버로 이루어지지 않는다. 한 서버가 장애로 사용 불가능해지면 다른 서버가 대신 요청을 받고, 트래픽에 따라 서버의 수를 조절하기도 한다. 위 그림의 아키텍처에서 클라이언트가 요청을 하면, 로드밸런서가 요청을 받아 Target 그룹 내 서버들에게 고르게 요청을 전달한다. 이 Target 그룹에는 어떤 특정한 EC2 인스턴스가 속할 수도 있고, Auto Scaling 그룹이 속할 수도 있다. 1. Auto Scaling 그룹 Auto Scaling 그룹이란, 같은 AMI(Amazon Machine Image)를 이용해 만들어진, 똑같은 환경의 EC2 인..

DevOps 2021.01.24

AWS RDS(Relational Database Service) 기본

AWS RDS에서는 다음 데이터베이스 엔진 중 하나를 선택하여 데이터베이스 인스턴스를 생성할 수 있다. MySQL, MariaDB, Oracle, PostgreSQL, Amazon Aurora, Microsoft SQL 데이터베이스 옵션 그룹 데이터베이스 엔진에 따라 데이터 및 데이터베이스 관리와 보안 강화를 위한 추가 기능이 있다. 옵션 그룹을 사용하여 그런 기능들을 구성하고 활성화 한다. MySQL은 사용자 로그인과 쿼리 활동을 기록하는 감사 플러그인과 Memcached 인터페이스 사용을 지원한다. 옵션을 실행하려면 추가 메모리가 필요하므로 충분한 메모리가 있는지 확인해야 한다. 데이터베이스 파라미터 그룹 파라미터 그룹에서는 데이터베이스 인스턴스와 데이터베이스 환경 설정을 위한 파라미터를 지정한다. ..

DevOps 2021.01.03

GitLab pipeline 빌드된 Jar를 AWS S3에 저장하기

아래와 같은 구조로 무중단배포를 구현하려고 한다. 이번 글에선 GitLab에서 빌드를 진행하여 생성된 Jar 파일을 AWS S3에 올려본다. S3에 올려놓고 이후 AWS CodeDeploy를 통해 배포 요청이 발생하면 S3에서 Jar 파일을 가져다가 프로그램을 실행한다. AWS S3 버킷 생성하기 먼저 Jar 파일을 저장할 S3의 버킷을 생성한다. AWS IAM S3 사용자 생성하기 GitLab이 S3 버킷에 파일을 업로드 할 수 있도록 AmazonS3FullAccess 정책을 가진 사용자를 생성한다. (물론 특정 버킷에 대한 권한만 가진 정책을 만드는 게 좋다.) 사용자 생성 후 Access key ID와 Secret access key를 .csv 파일로 다운받아 관리한다. 페이지를 벗어나면 다시 확인..

DevOps 2020.12.26

소득 수준을 좌우하는 가장 중요한 자질

소득 수준을 좌우하는 가장 중요한 자질브런치가 맺어준 인연인 동갑내기 작가이자 친구, 용진이(https://brunch.co.kr.linkedin.com  당연히 질문이 없을 수 밖에 없어요. 왜냐면 내 마음상태가 ‘나를 뽑아주면 무슨일이든 하겠습니다’라는 일을 시켜주길 기다리고 있는 ‘노동자’의 마인드셋이기 때문이에요. 그런데 우리들이 선망하는 회사들이 ‘인재’라고 생각하는 것은 노동자가 아니거든요.  사업을 잘하는 것의 핵심은 좋아하는 일을 잘하는게 아니고, 레버리지를 잘하는데에 있기 때문이에요. 커피를 좋아해서 카페를 만든 사람의 핵심은, 맛있는 커피를 내리는게 아니라, 카페를 운영하는게 되니까요.  다만 한가지 확실한 것은 마인드셋은 주변 환경에 영향을 받는다는 겁니다. 같이 다니는 사람들이 친구..

Memo 2020.11.30

도커란

도커란 리눅스 컨테이너에 여러 기능을 추가해 애플리케이션을 컨테이너로 더 쉽게 사용하도록 만든 오픈소스 프로젝트. 기존에는 하이퍼바이저를 이용해 하나의 호스트 운영체제(서버 부팅시 실행되는 운영체제)에서 여러개의 게스트 운영체제를 생성했다. 하나의 게스트 운영체제는 다른 게스트 운영체제와는 완전하게 독립된 시스템 자원을 사용한다. 즉, 하이퍼바이저를 통해 각종 시스템 자원을 가상화하고 독립된 공간을 생성하여 성능 손실이 발생했다. 반면 도커 컨테이너는 호스트 운영체제의 커널을 공유하고 프로세스 단위의 격리 환경을 만든다. 도커의 장점 독립된 애플리케이션 개발 환경 구성이 가능하다. 애플리케이션 개발 환경을 그대로 운영 환경으로 복제할 수 있다. 커널을 포함하지 않아 이미지 크기가 비교적 작다. 도커 이미..

DevOps 2020.11.24

책 <함께 자라기>

주제 문장 경력과 실력은 다르다 최소한도의 경력 수준만 넘겼으면 오히려 몇 년 일했는지 모르는 것이 더 낫다. 직원을 뽑는 데 구체적인 행동 예를 묻는 구조화된 인터뷰, 작업 샘플 테스트, 시험 외주를 사용한다. 의식적인 연습이 필요하다 평생 이를 닦아왔지만 이 닦기의 달인인 것은 아니다. 평생 걸었지만 걷는 게 점점 더 나아지고 있는 것은 아니다. 자기계발 팀이 상호 협력적으로 일을 해 시너지 효과를 일으킨다. 더하기가 아닌 곱하기. - 가진 지식을 얼마나 어떻게 활용하는지 반성하라. - 이미 가진 지식을 서로 연결하라. - 새로운 것과 이미 가진 것들을 충돌시켜라. - 주기적인 외부 자극을 받아라. - 나의 작업을 되돌아보는 회고/반성 활동을 주기적으로 하는 프로세스를 만들어라. - 피드백을 자주 받..

Memo 2020.11.24