전체 글 138

[AWS] Landing Zone 개념

들어가며: Landing Zone 이란? 단일계정으로는 충분하지 않은 이유 (Multi Account 설계 시 고려사항) AWS 예시 들어가며: "Landing Zone"은 "비행기가 안전하게 착륙할 수 있는 공간"을 의미합니다. 즉, AWS Landing Zone을 설계한다는 것은 AWS 상에서 시스템을 안정적으로 구축하기 위한 기본 사항을 준비하고 설계, 구축하는 일련의 과정입니다. Landing Zone 이란? Multi Account 의 확장 가능하고 안전한 환경을 제공하는 AWS 솔루션 조직에서 보안 및 인프라 환경에 대한 확신을 가지고 워크로드와 애플리케이션을 시작하고 배포할 수 있는 출발점 랜딩존 구축에는 비즈니스 목표에 따라 계정 구조, 네트워킹, 보안 및 액세스 관리 전반에 걸쳐 기술 의..

AWS/VPC 2022.05.09

[테라폼] 테라폼 설치 & 환경 구성

개요: 사전 준비 테라폼 설치 MacOS Ubuntu 수동설치 테라폼 자동완성 awscli v2 설치 MacOS Ubuntu 개요: 사전 준비 windows 에서 테라폼을 설치할 수도 있지만 굉장히 낯설기 때문에 Mac 과 Ubuntu 기준으로 설명하겠습니다. windows에서 개발환경을 구축하신다면 이전포스팅을 참고하여 WSL을 사용한 작업환경 구성을 추천드립니다. 또한, 테라폼 공식문서 혹은 AWS 공식문서 확인하면 운영체제별 설치 방법이 상세히 나와있으니 참고하시기 바랍니다. 테라폼 설치 a. MacOS homebrew 가 설치되어 있지 않다면 해당 링크를 통해 설치하시거나 아래 명령어를 입력해주세요. /bin/bash -c "$(curl -fsSL https://raw.githubuserconte..

Terraform 2021.11.23

window에서 wsl2 를 사용해 ubuntu 작업환경 구성하기

개요: WSL 이란? wsl2 ,Ubuntu 설치 & 설정 zsh 설치 & 설정 vscode 설치 & 설정 해당 내용은 윈도우즈10 환경을 기반으로 작성되었습니다. 개요: WSL 이란? Linux용 Windows 하위 시스템 (윈도우 네이티브로 리눅스 실행을 위한 호환성 계층) 개발자가 기존 가상 머신의 오버헤드 또는 듀얼 부팅 설정 없이 대부분의 명령줄 도구, 유틸리티 및 애플리케이션을 비롯한 GNU/Linux 환경을 수정하지 않고 Windows 에서 직접 실행 가능 WSL2 란? Linux용 Windows 하위 시스템 아키텍처의 새로운 버전 Linux용 Windows 하위 시스템이 Windows에서 ELF64 Linux 이진 파일을 실행할 수 있게 해줌. WSL2 의 주 목표는 파일 시스템 성능을 높..

리눅스/기초 2021.11.23

IaC 코드형 인프라, terraform 소개

코드형 인프라(Infrastructure as Code, IaC) 란? 코드형 인프라의 범주 애드혹 스크립트 구성 관리 도구 서버 템플릿 도구 오케스트레이션 도구 프로비전 도구 테라폼이란? 테라폼의 주요 특징 코드형 인프라(Infrastructure as Code) 실행 계획(Exection Plans) 리소스 그래프(Resource Graph) 변경 자동화(Change Automation) 코드형 인프라(Infrastructure as Code, IaC) 란? 코드를 작성 및 실행하여 인프라를 생성, 배포, 수정, 정리하는 것을 의미 서버를 물리적으로 설치하는 등의 하드웨어 측면을 포함하여 운영의 모든 측면을 소프트웨어적으로 전환 코드형 인프라 도구에는 다섯 가지 범주가 있습니다. 코드형 인프라의 범주..

Terraform 2021.11.19

[Gitlab] dind 란?, 트러블 슈팅, error during connect: Post http://dind:2375/v1.40/auth: dial tcp: lookup dind on 172.31.0.2:53: no such host

dind 란? 젠킨스에서 보는 dind 깃랩에서의 dind Gitlab runner 에서 마주한 에러 해결방법 Docker in Docker (DinD) 란? 도커 안에 도커라는 의미이다. 도커 바이너리를 설정하고 컨테이너 내부의 격리된 Docker 데몬을 실행하는 작업 CI 측면에서 접근한다면 job(task)을 수행하는 Executor(Agent)가 Docker Client와 Docker Daemon 역할까지 하게 되어 도커 명령을 수행하는데 문제가 없어진다. 하지만, Docker 공식 입장은 DinD 사용하는 것을 권장하지 않는다. 단순하게 말하면, Host_container가 Host_machine에서 할 수 있는 거의 모든 작업을 할 수 있는 치명적인 결함이 있기 때문이다. 도커에서 사용하려면 ..

AWS/CICD 2021.10.30

Gitlab runner 란?, AWS EC2 인스턴스 Gitlab Runner 등록하기

Gitlab Runner 란? Gitlab Runner 동작과정 AWS EC2 인스턴스를 생성해 Gitlab Specific Runner 등록하기 Gitlab Runner 란? Gitlab CI를 실행하기 위한 별도의 프로세스 Shared, Group, Specific 의 3가지 러너로 구성 가능 사용량에 따라 Runner의 Configration을 변경하여 사용 Gitlab이 구성되어 있는 Instance에는 Runner 구성 권장하지 않음 Shared runner 기본적으로 Gitlab에서 제공. 한 달에 2,000분 무료 사용 가능 Gitlab 인스턴스의 모든 그룹 및 프로젝트에서 사용 가능 Job 수가 가장 적은 프로젝트부터 Job을 처리 Group runner 그룹의 모든 프로젝트가 Runner..

AWS/CICD 2021.10.12

Gitlab 사용해서 Amazon ECR 로 도커 컨테이너 push 하기

위와 같은 파이프라인을 AWS 위에 구현하기 위한 포스팅 입니다. 해당 이미지 참고자료 해당 포스팅 참고자료 1. Amazon ECR 저장소 생성 AWS ECR 서비스로 이동한 뒤 리포지토리 생성 "시작하기" 리포지토리 이름: ecr_test 설정 후 생성 나중에 사용할 수 있도록 저장소 ecr_test URI 복사 2. IAM 생성 및 Amazon 컨테이너 레지스트리 액세스 권한 부여 IAM 대시보드로 이동 후 사용자 추가 사용자 이름: ecr-testuser AWS 자격 증명 유형 선택: 액세스 키 - 프로그래밍 방식 액세스 기존 정책 직접 연결 선택 후 ECR에서 컨테이너를 읽고 쓰고 수정하기 위한 기본 정책 AmazonEC2ContainerRegistryPowerUser 부여 사용자 계정 생성하면..

AWS/CICD 2021.10.08

최단경로 알고리즘 다익스트라 이해

들어가며: 최단경로 알고리즘, 다익스트라 란? 다익스트라 알고리즘 동작 과정 heapq 란? heapq 을 사용한 다익스트라 알고리즘 구현 관련 문제 들어가며: 최단경로 알고리즘, 다익스트라 이란? 최단 경로 알고리즘은 현재 위치에서 가고자 하는 위치까지 가장 짧은 경로를 찾는 알고리즘을 의미 다익스트라 알고리즘은 최단 경로 알고리즘 종류 중 1가지. (다익스트라, BFS, 벨만-포드, 플로이드, a* ...) 다익스트라 알고리즘은 음의 간선을 표현할 수 없음. (음의 간선 표현은 벨만포드 알고리즘을 활용) 다익스트라 알고리즘은 그리디 알고리즘으로 분류 매 상황에서 가장 비용이 적은 노드를 선택해 임의의 과정을 반복 해당 포스팅은 이것이 코딩 테스트다 를 참고하여 작성하였습니다. 다익스트라 알고리즘 동작..

로그 관리와 운영

들어가며: 어떤 애플리케이션이든 장애가 발생하면 추적하기 위한 정보로 다양한 로그를 사용 EKS에서 효율적으로 수집, 저장, 모니터링, 시각화하는 방법에 대해 설명하도록 하겠습니다. 수집: fluentd 컨테이너를 데몬셋으로 동작시키고 파드의 로그를 CloudWatch Logs에 전송합니다. 저장: CloudWatch Logs에 로그를 저장하도록 설정합니다. 모니터링: Metric 디렉토리를 설정하고 CloudWatch 사용자 Metric을 생성하여 그 메트릭의 경보를 생성합니다. 시각화: CloudWatch의 Logs Insights를 사용하여 대상 로그를 분석하고 CloudWatch의 대시보드로 시각화 합니다. 이 포스팅은 클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트를 참고하였습니다. 클라우드 ..

AWS/EKS 2021.08.26

[AWS] CloudWatch의 Container Insights 로 애플리케이션 상태 파악

들어가며: Container Insights를 이용한 CloudWatch 구성 실습 들어가며: EKS 쿠버네티스 클러스터의 전체 상태를 확인하려면 데이터플레인을 어디에(베어메탈, EC2, EKS..) 어떻게(오토스케일링 그룹, 관리형 노드 그룹...) 구성하고 있는지에 따라 다릅니다. EKS에 구성한 경우 오토스케일링 그룹을 사용한 경우 EC2 오토스케일링 설정에서 최소 서버 대수를 설정하면 AWS에서 자동으로 관리해줍니다. 관리형 노드 그룹을 사용할 경우 EKS 페이지에서 노드 대수를 설정할 수 있습니다. 또한, CloudWatch 를 사용하여 사용률에 대한 경보도 지정해놓을 수 있습니다. CloudWatch에 대한 기초 설명은 CloudWatch 포스팅을 참고하세요. 이처럼 클러스터 전체 상태를 확인..

AWS/EKS 2021.08.26