IT 이야기 77

GCP Instance Type vCPU와 DIsk IOPS의 관계

대부분의 서비스는 Instance로 구성되고 사용자가 직접 관리하는 Instance 중심의 서비스가 Serverless 서비스 보다 많아, Instance 선택시에 고려해야 하는 상황들을 설명합니다. Instance Type 선정 & Disk Type 용량에 따른 IOPS 요구 사항 선정시 고려 사항 테스트 환경 구성 $sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb $sudo mount -o discard,defaults /dev/sdb /disk-1 $sudo apt update $sudo apt install -y fio $sudo mkdir fiotest $sudo fio --name=write_iops ..

IT 이야기/GCP 2022.07.26

GCP Instance 선택시 고려사항(Type, 크기, IOPS)

대부분의 서비스는 Instance로 구성되고 사용자가 직접 관리하는 Instance 중심의 서비스가 Serverless 서비스 보다 많아, Instance 선택시에 고려해야 하는 상황들을 설명합니다. Instance Type 선정시 고려사항 Instance Type 항목 대표 Instacne 설명 범용 (*) N2 가격 대비 성능이 우수하며, 가성비 타입의 인스턴스 컴퓨팅 최적화 머신 C2 성능 집약적인 워크로드에 용이, NUMA와 같은 기능을 활용하는 아키텍처, CPU 최고 성능 메모리 최적화 머신 M2 SAP HANA와 같은 대규모 인메모리 데이터베이스와 인메모리 데이터 분석 워크로드에 적합 가속기 최적화 머신 A2 이 계열의 머신 유형은 머신러닝(ML) 및 고성능 컴퓨팅(HPC)과 같은 대규모 병렬..

IT 이야기/GCP 2022.07.19

GCP Shared VPC (GCP 공유 VPC 설정 및 고려사항)

Shared VPC 공유 VPC를 사용하는 조직은 여러 프로젝트의 리소스를 공통 Virtual Private Cloud(VPC) 네트워크에 연결할 수 있으므로 해당 네트워크의 내부 IP를 사용하여 서로 안전하고 효율적으로 통신할 수 있습니다. 공유 VPC를 사용할 때는 프로젝트 하나를 호스트 프로젝트로 지정하고 여기에 하나 이상의 다른 서비스 프로젝트를 연결합니다. 호스트 프로젝트의 VPC 네트워크를 공유 VPC 네트워크라고 합니다. 서비스 프로젝트의 운영 가능 리소스는 공유 VPC 네트워크의 서브넷을 사용할 수 있습니다. Shared VPC를 이용한 구글 클라우드 설정시 고려사항 설정에 필요한 사전체크리스트 항목 내용 권한 작업을 하기위한 Shared VPC Admin 계정에 다음과 같은 권한이 필요합..

IT 이야기/GCP 2022.07.06

GCP BeyondCorp Enterprise (GCP 콘솔 접근 통제)

BeyondCorp Enterprise BeyondCorp Enterprise는 조직 인력이 VPN 없이도 멀웨어, 피싱, 데이터 손실에 대한 염려 없이 어디서나 웹 애플리케이션에 안전하게 액세스할 수 있는 Google Cloud의 제로 트러스트 솔루션입니다. BeyondCorp Enterprise를 사용하면 Google Cloud, 기타 클라우드, 온프레미스의 앱에 대한 액세스를 관리하고 사용자, 기기, 기타 컨텍스트 요인에 따라 액세스 정책을 정의 및 시행할 수 있으며, 더욱 간편하게 앱에 액세스하고 Google의 글로벌 네트워크를 통해 반응합니다. BeyondCorp Enterprise를 이용한 구글 클라우드 접근 통제 구성에 필요한 사전체크리스트 항목 내용 권한 작업을 하기위한 사용자 계정에 다음..

IT 이야기/GCP 2022.06.19

GCP Cloud ID (Cloud Identity)

Cloud Identity Cloud ID는 중앙에서 사용자와 그룹을 관리하는 IDaaS(Identity as a Service) 솔루션입니다. Active Directory 및 Azure Active Directory와 같이 Google과 다른 ID 공급업체 간의 ID를 제휴하도록 Cloud ID를 구성할 수 있습니다. 또한 Cloud ID를 사용하면 조직에서 사용되는 계정을 보다 세부적으로 제어할 수 있습니다. 예를 들어 조직의 개발자가 Gmail 계정과 같은 개인 계정을 사용하면 이러한 계정은 관리자의 제어 범위를 벗어나게 됩니다. Cloud ID를 도입하면 도메인 내 모든 사용자의 액세스 및 규정 준수를 관리할 수 있습니다. Cloud ID를 도입하면 각 사용자 및 그룹마다 Cloud ID 계정을..

IT 이야기/GCP 2022.06.19

GCP Organization 설계 및 개념

리소스 계층 구조 정의 조직의 클라우드 인프라 관리자가 GCP를 처음 접했을 경우 가장 먼저 고민을 하게되는 내용으로, 기본적인 구조 안내 및 조직 서비스 환경에 맞는 리소스 계층 구조에 대한 여러 내용을 소개합니다. 기업 조직을 위한 권장사항 | 문서 | GCP 클라우드 인프라 관리자 입장에서는 다음과 같은 생각을 하게됩니다. "우리 조직(회사)에 맞는 리소스 계층 구조는 무엇일까?" 우선 GCP 리소스 계층 구조는 정답이 없습니다, 정답을 GCP 에서 제시하지 않으며 각자의 조직환경에 맞는 구조를 인프라 관리자가 채택을 해야합니다, 하지만 그러한 과정에서 GCP를 처음 도입하게 되는 관리자 입장에서는 여러 고민을 하게됩니다, 그 고민들에 대한 여러 방향성을 제시해 드리기위해서 다음과 같이 리소스 계층..

IT 이야기/GCP 2022.06.19

GCP 유지보수 (Maintenance) 이벤트

유지보수 (Maintenance) 유지보수 이벤트는 Compute Engine에서 VM을 중지하여 하드웨어 또는 소프트웨어 업데이트를 수행하는 경우입니다. 라이브 마이그레이션 가용성 정책을 사용 설정하면 Compute Engine에서 VM을 새 호스트로 이동하며 애플리케이션이 중단되지 않습니다. Public Cloud 유지보수(Maintenance) 정보 Compute Engine 유지보수 이벤트에는 하드웨어 및 소프트웨어 업데이트가 수반됩니다. 이러한 유지보수 이벤트 중 일부에서는 Google이 유지보수할 호스트에서 VM을 이전해야 하며 Compute Engine은 이러한 인스턴스의 예약된 동작을 관리합니다. 재부팅이 필요한 유지보수 (Instance 중지 → 시작) CSP 작업자 재부팅이 필요한 유지..

IT 이야기/GCP 2022.04.22

GCP Quotas

Quotas (할당량) GCP의 할당량은 사용자의 사용량이 예기치 않게 급증하는 것을 방지하고, GCP IDC(Internet Data Center)의 물리 리소스를 사용자들의 사용량의 확장 추세에 따라 GCP IDC(Internet Data Center) 물리 리소스 증설 및 GCP IDC(Internet Data Center)의 확장을 고려하는 매우 중요한 GCP 관리도구 입니다. 프로젝트 생성 이후 기본 Quotas (2022.04.20(무료 체험판 계정)) Regions CPUs NVIDIA T4 GPUs Persistent Disk SSD (GB) VM Instances asia-northeast1 (도쿄) 24 1 500 GB 24 asia-northeast3 (서울) 24 1 500 GB 2..

IT 이야기/GCP 2022.04.20

Engineer Information Processing (TIL) - 데이터 통신

EIP (Engineer Information Processing) History 5장 데이터 통신 CSMA/CD 방식 CSMA 방식에서 출돌이 발생하는 문제점을 해소하기 위해 CSMA 방식에 충돌 검출기능과 충돌 발생 시 재송신하는 기능을 부가한 방식 통신 회선이 사용 중이면 일정 시간 동안 대기하고, 통신 회선상에 데이터가 없을때에만 데이터를 송신하며ㅡ 송신 중에도 전송로의 상태를 계속 감시 송신 도중 충돌이 발생하면 손신을 중지하고ㅡ 모든 노드에 충돌을 알린 후 일정 시간이 지난 다음 데이터를 재송신 한다 버스형 LAN에 가장 일반적으로 이용 된다. 전송량이 적을 때 매우 효율적이고 신뢰성이 높다 알고리즘이 간단하다. 노드 장애가 시스템 전체에 영향을 주지 않으며, 장애 처리가 간단하다. 일정 길이..

Engineer Information Processing (TIL) - 소프트웨어 공학

EIP (Engineer Information Processing) History 4장 소프트웨어 공학 럼바우(Rumbaugh)의 OMT 모델링 객체 모델링(Object): 실세계 문제 영역으로 부터 시스템에 요구되는 객체를 찾아내어 객체들 간의 관계를 구정하여 각체 다이어그램(Object Diagram)으로 나태내는 것 동적 모델링(Dynamic): 시간의 흐름에 따라 변하는 객체들 사이의 제어 흐름, 상호 작용, 연산 순서 등의 동적인 행위를 상태 다이어그램(State Transaction Diagram)으로 나태내는 것 기능 모델링(Function): 다수 프로세스 간의 데이터 흐름을 중심으로 처리 과정을 자료 흐름도(DFD, Data Flow Diagram)로 나태내는 것 Prototype(프로토..

Linux 주요 키워드 설명

linux key lsblk 블록 스토리지 현황 (ex: lsblk) LVM PV 만들기 pvcreate 디스크 초기화나 LVM에 사용될 파티션을 만드는데 쓰입니다. 또한 완전한 물리디스크나 물리디스크 위의 파티션 초기화에도 쓸 수 있습니다. (ex: pvcreate /dev/xvdf) VG, LV 만들기 vgcreate [vg이름] [블록스토리지 경로] vgdisplay (정상적으로 만들어 졌는지 확인) lvcreate -n [LV이름] -L [LV용량] [VG이름] lvdisplay 매핑 확인 ls /dev/mapper (VG에 LV 2개가 매핑된것 확인) mkfs.[파일시스템] [LV의 경로] mount [option] [device] [directory] 재부팅 유지 /etc/fstab [devi..

IT 이야기/Linux 2021.10.26

Jenkins 작업등록

Code Example 별도의 github repo 생성 github tokens 생성 jnekins Credentials system global credentials username with password / global / git사용자명 / token 입력 jenkins 새 작업 등록 helloworld 응용프로그램 구현하기 (사전에 생성한 github repo) helloworld-github git clone https://github.com/Moon-Tae-Kwon/helloworld.git cd helloworld git checkout -b initial-baranch touch helloworld.js 테스트 기반 개발 방법 (TDD) 적용을 위한 아래의 작업 진행 PC에 nodejs ..

Engineer Information Processing (TIL) - 운영체제

EIP (Engineer Information Processing) History 3장 운영체제 기본 제곱 2^0 = 1, 2^1 = 2, 2^2 = 4, 2^3 = 8, 2^4 = 16, 2^5 = 32, 2^6 = 64, 2^7 = 128, 2^8 = 256, 2^9 = 512, 2^10 = 1024, 2^11 = 2048, 2^12 = 4096 프로세스의 정의 이해 자원 보호 기법 (e) 접근제어행렬(Access Control Matrix)기법 자원 보호의 일반적인 모델로, 객체에 대한 접근 권한을 행렬로써 표시한 기법 전역 테이블(Global Table) 기법 가장 단순한 구현 방법으로, 3개의 순서쌍인 영역, 객체, 접근 권한의 집합을 목록 형태로 구성한 기법 접근 제어 리스트(Access Co..

Engineer Information Processing (TIL) - 전자계산기 구조

EIP (Engineer Information Processing) History 2장. 전자계산기 구조 플린(Flynn)의 분류 SISD(Single Instruction stream Single Data stream) SIMD(Single Instruction stream Multi Data stream) MISD(Multi Instruction stream Single Data stream) MIMD(Multi Instruction stream Multi Data stream) 순서논리회로: 플립플롭, 카운터, 레지스터, RAM, CPU 등 조합논리회로: 반가산기, 전가산기, 병렬가산기, 반감산기, 전감산기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서, 다수결회로, 비교기 등 패리티 검사 코드 1b..

Engineer Information Processing (TIL) - 데이터베이스

EIP (Engineer Information Processing) History 1장. 데이터베이스 데이터베이스의 특성 실시간 접근성(Real-Time Accessibility) 리얼타임 엑세스보얼 계속적인 변화(Continuous Evolution) 컨티니워스 에볼루션 동시 공용(Concurrent Sharing) 컨커넌트 쉐어링 내용에 의한 참조(Content Reference) 컨텐트 레퍼런스 릴레이션 관련 용어 릴레이션 (relation) 같은 성격의 데이터들의 집합을 의미. 흔히 테이블이라고 말하는 용어와 같은 의미로 이론적인 용어. 릴레이션은 튜플과 에트리뷰트로 데이터를 정렬하여 관리한다. 튜플 (tuple) 릴레이션의 각 행을 의미. 흔히 일반적인 용어로 레코드(record)와 로우(row..

IT 이야기/DB 2021.10.22

AWS Today I Learned(TIL) - certificate

AWS Today I Learned(TIL) - certificate History EC2 elasticache 인 메모리 환경 관리. 요금 최소요금 없음. EC2 ElastiCache 데이터 전송 요금 없음.(단, 동일 AZ) 서로 다른 AZ의 경우 EC2 ElastiCache 데이터 전송 (리전 데이터 요금 적용)/사용자에게 EC2 송수신 데이터 요금 적용/ElastiCache 노드 자체에서 송수신 데이터는 요금 부과하지 않음. 보안 VPC사용 하지 않을 경우 캐시 보안 그룹을 통해 액세스 제어 (!) 클러스터에서 현재 IP 범위 기반 액세스 제어는 클러스터에 사용할 수 없습니다 DNS 엔드포인트 권장(기본) ElastiCache 클러스터 VPC 간의 이동은 지원 불가(서브넷 변경 부분은 배포된 클러..

IT 이야기/AWS 2021.10.19

AWS Managed Microsoft AD

AWS Managed Microsoft AD 완전 관리형 AD Windows Server 2012 R2 구동 도메인 컨트롤러는 VPC 내의 서로 다른 서브넷 (서브넷은 서로 다른 가용 영역에서 동작) TCP/UDP 53 - DNS (DNS 도메인 통신 프로토콜) TCP/UDP 88 - Kerberos authentication (커베로스는 "티켓"을 기반으로 동작하는 컴퓨터 네트워크 인증 암호화 프로토콜로) UDP 123 - NTP (네트워크 타임 프로토콜) TCP 135 - RPC (한 프로그램이 네트웍 상의 다른 컴퓨터에 위치하고 있는 프로그램에 서비스를 요청하는데 사용되는 프로토콜) UDP 137-138 - Netlogon (NetBios) TCP 139 - Netlogon (NetBios) TCP..

IT 이야기/AWS 2021.10.17

docker in docker (DinD)

docker in docker (DinD) docker container 이미지에서 docker를 설치하여 container 이미지를 생성하고 운영 테스트입니다. dind dind-github container 이미지 안에서 docker 설치 및 container 이미지를 생성하여 dockerhub 업로드까지의 과정을 수동으로 테스트해보았습니다. Dockerfile source docker build -t dind . docker run --privileged -t -i dind docker continer console docker -v & docker images & docker ps -a # docker 동작 유무 확인. docker pull ubuntu docker run -it --name=mo..

Docker outside of Docker (DooD)

Docker outside of Docker (DooD) DinD의 아래 문제점을 해결하기 위해 DooD를 확인해 보았습니다, DooD는 호스트의 Docker 소켓을 게스트로 마운트 하여 게스트 continer에서 호스트에서의 docker install 환경을 이용하는 것으로 DinD와는 다른 형태의 테스트입니다. docker in docker (dind)의 가장 큰 문제점은 보안 측면에서의 호스트의 권한의 많은 부분을 사용할 수 있는도록 하는 privileged 옵션을 부여해야 하는 부분에 입니다. -privileged 옵션 설명 Give extended privileges to this container 호스트의 docker 소켓을 마운트 하는 게스트 continer 생성 및 게스트 continer에..

AWS command(CLI) - EC2

AWS command Line (CLI) 본 문서는 hands-on에 가까운 문서이며 IaC(Infrastructure as code)에 따라서 테스트한 내용입니다. reference link AWS CLI install AWS CLI configure AWS CLI Command Reference AWS CLI install AWS CLi install (python3.7 설치 완료한 상태) 환경변수 등록은 아래에 내용 추가하였습니다. (mac 기준) get-pip.py curl -O https://bootstrap.pypa.io/get-pip.py python3 get-pip.py --user pip3 install awscli --upgrade --user aws --version bash 사용 시..

IT 이야기/AWS 2021.10.14

Kubernetes(K8S) Meetup

쿠버네티스 밋업은 여러 경로를 통해서 찾아서 들을 수 있습니다, 저는 여러 행사게 참석하다가 Meetup 정보를 얻어서 들을 수 있었습니다 발표 이야기 컨테이너 컨테이너 오케스트레이션 쿠버네티스 개념 및 아키텍처 실습 도카, 도커 컴포트를 이용한 웹 서비스 배포 쿠버네티스 기본 사용법 쿠버네티스가 리눅스 운영체제 같은 역할을 할 수 있게 될 수 있다. 맛보기 - 쿠버네티스 → desired state MSA 부분으로 해당 역할만 수행 POD 배포 과정 git - argoCD - ku → dns a.com / b.com 쿠버네티스 → 스팟인스턴스 타입 유형 ASG(테스트 목적인 pod가 위치할 예정) 스팟인스턴스 종료 5분 전 API 보내면 쿠버네티스 pod 교체 쿠버네티스 → 오토스케일 기능 지원(설치해..

Kubernetes 기본 개념

Kubernetes 컨테이너화 된 애플리케이션을 자동으로 배포 , 스케일링 및 관리해주는 오픈소스 시스템이며 구글에서 설계되었고 애플리케이션을 구성하는 컨테이너들의 쉬운 관리를 위해 논리적인 단위로 그룹화한다. Kubernetes 어원은 그리스어로 조타수, 키잡이라는 뜻이며 Kubernetes에서 ubernete가 8글자이므로 k8s라고 표현하기도 한다. 출시 배경 마이크로 서비스 아키텍처 발전 마이크로 서비스 아키텍처가 단순 개념에서부터 점점 발전하기 시작하였고 디자인 패턴과 이를 구현하기 위한 다양한 인프라 플랫폼들이 소개되기 시작했다. 또한 서비스가 점점 작아지면서 1~2 Core로도 운영할 수 있는 작은 서비스들이 등장하게 되었고 이런 작은 서비스는 VM 환경으로 운영하기에는 낭비가 심하다 설루션..

Monitoring With AWS & On-premise

지난 몇 년간 많은 Monitoring Tool을 사용해 오면서 그중 가장 간결하고, 빠르게 적용 할 수 있는 Monitoring Tool(Influxdb, Telegraf, CloudWatch, Grafana)을 소개하고 AWS와 On-premise의 통합 모니터링 사이트 구축 방법을 공유하기 위해서 작성하였습니다. Monitoring Tool Influxdb Go 언어로 작성되어 외부 의존성이 없습니다. 다양한 API, HTTP(S)를 제공한다. 시계열 데이터베이스로 시간 순서에 따라 저장하고 조회하는 기능으로 인해 실시간 비교가 필요한 모니터링에 적합합니다. Telegraf Go 언어로 작성되어 외부 의존성이 없습니다. (Influxdb와 동일한 업체에서 개발) 다양한 매트릭을 수집하여 데이터베이스..

정규 표현식

정규식 ‘app.e’는 ‘apple’, ‘appLe’, ‘app-e’, ‘app e’가 매칭된다. 정규식 ‘^app’는 ‘apple and orange’는 매칭되지만 ‘orange and apple’는 매칭되지 않는다. 정규식 ‘ple$’는 ‘orange and apple’는 매칭되지만 ‘apple and orange’는 매칭되지 않는다. 정규식 ‘appl[a-z]’은 ‘apple’, ‘applz’와 같이 가장 마지막에 소문자가 오는 경우는 매칭된다. 정규식 ‘appl[^a-z]’은 위와 반대로 마지막에 소문자가 오는 경우를 제외한 모든 경우에 매칭된다. 정규식 ‘ap*le’는 ‘ale’, ‘aple’, ‘apppple’와 같이 p가 0회 이상 반복되는 모든 경우와 매칭된다(*는 0회 이상 반복) 정규식..

문자열

>>> u = " spam and ham " >>> u.strip() 'spam and ham' (공백 제거) >>> u = ">" >>> u.strip(" ") 'spam and ham' (특정 문자 및 공백제거) >>> u.replace("spam","spam, egg") 'spam, egg and ham' (특정 문자 변경) >>> lst = u.split() >>> lst ['spam', 'and', 'ham'] (공백으로 나눠서 단어 처리되도록 설정) >>> ':)'.join(lst) 'spam:)and:)ham' (문자중간에 앞에 설정한 문장을 삽입) >>> "MBC3580".isalnum() True >>> "MBC.3580".isalnum() False (알바벳와 숫자로만 구성되어있는지 확..

문자열 처리함수

•>>> u = ' spam and ham ' •>>> u.strip() 좌우의 공백 제거 •'spam and ham' •>>> u.rstrip() 오른쪽 공백 제거 •' spam and ham' •>>> u.lstrip() 왼쪽 공백 제거 •'spam and ham ' •>>> u.replace('spam', 'spam, egg') •' spam, egg and ham ' •>>> u.split() 리스트로 리턴 •['spam', 'and', 'ham'] •>>> t = u.split() •>>> ':'.join(t) 문자열로 합쳐서 리턴 •'spam:and:ham' •>>> print '\n'.join(t)