본문 바로가기
반응형

개발/아키텍처30

MSA(Micro Service Architecture) 기본 개념 MSA 구조를 사용하는 회사들이 늘어나고 있는 것 같습니다. 이에 MSA의 기본 개념은 무엇인지 공부해보려 합니다. 마이크로서비스란 무엇인가? 먼저 전통적인 시스템 구조인 모노리스(Monolith) 구조부터 살펴보자. 모노리스는 하나의 단위로 개발되는 일체식 애플리케이션이다. 그림 1과 같이 보통 3티어라 불리는 사용자 인터페이스와 데이터베이스, 서버 쪽 애플리케이션 3개 부분으로 구성된다. 티어: 보통 티어(tier)는 서버와 같은 물리적인 분리를, 레이어(layer)는 논리적인 분리를 말한다. 하나의 티어 내부를 여러 개의 논리 레이어로 나눌 수 있다. 서버 측 애플리케이션이 일체, 즉 논리적인 단일체로서 아무리 작은 변화에도 새로운 버전으로 전체를 빌드해서 배포해야 한다. 그리고 일체식 애플리케이션.. 2022. 2. 26.
OAI를 사용하여 Cloudfront를 배포한 경우, aws cli s3는 어떻게 사용할까? Origin Access Identity(OAI)만 S3에 오브젝트를 조회할 수 있도록 Cloudfront를 배포했다. 젠킨스를 통해 S3에 Javascript SPA를 CI/CD 해야 하는데 aws s3 명령어가 "Access Denied" 되어 난감했다. 어떻게 해결해야 할까? AWS cli에는 --profile 옵션을 사용할 수 있으며, Credentials 파일에서 특정 profile을 사용하는 것이다. aws s3 ls s3://[버킷명] --profile [profile] .aws/credentials 파일에 profile을 추가할 수 있으며, default가 기본으로 잡혀있는 것 같다. "user1" 를 추가하는데, 아래와 같은 조건이 있다. - s3를 다룰 수 있는 권한을 가진 프로그래밍 .. 2021. 9. 25.
ECS 인스턴스 Docker에 컨테이너 안 올라갈 경우 (Feat. ECR, Jenkins, Gradle) - war 파일 ECS와 ECR를 사용 중이며 Jenkins로 배포를 한다. 프로젝트 빌드 툴: Gradle Specification Docker: 19.03.13-ce Gradle: 4.4 ECS 에이전트: 1.48.1 Jenkins는 파이프라인을 사용하며 아래 절차를 따른다. - Gradle로 프로젝트 빌드 -> war - Docker Image 생성 -> ECR latest push - ECS에 latest image를 사용하여 도커 컨테이너 생성 절차 중에 Docker Image Build 후 푸시가 안되는 상황이 발생했다. 어떻게 해결해야 할까? 문제는 Gradle 버전으로 인해 build 시 생성되는 war 파일명 때문이었다. build.gradle의 war.archiveName로 설정할 수 있다. war{ .. 2021. 9. 7.
[Linux] 디렉터리에 특정 단어를 포함하는 파일 찾기 여러 파일을 가진 하나의 디렉터리가 있다. 특정 단어를 포함한 파일을 찾으려면 어떻게 해야 할까? 간단한 bash 스크립트를 이용하여 찾을 수 있다. bash 스크립트의 실행 시, directory 경로와 찾을 단어를 파라미터로 입력한다. ./check.sh DIRECTORY_PATH SEARCH_WORD 아래는 check.sh 스크립트다. # !/bin/bash # The file name is check.sh, created by syubrofo. cd "$1" word="$2" for f in * do if [[ $(cat $f | grep -c "$word") -gt 0 ]] then echo "$f contains the word $word." fi done 해당 스크립트의 문법은 for-loo.. 2021. 8. 17.
반응형