분류 전체보기

    [DevOps] 마이크로서비스 아키텍쳐란

    이 포스팅은 마이크로서비스 아키텍쳐를 공부하면서 도움이되었던 글로써 마이크로서비스 아키텍쳐를 공부하는데 도움이 되었으면하는 마음으로 번역을 해봤다 먼저 마이크로서비스 아키텍쳐를 알아보기이전 모놀리식 아키텍쳐부터 알아가보자 모놀리식 어플리케이션은 어플리케이션의 모든 소프트웨어 컴포넌트가 조립되어 촘촘히 패키지화된 큰 컨테이너이다. 레거시 애플리케이션의 경우 대부분의 레거시 애플리케이션이 주로 단일 아키텍처 로 구현된다고 말할 수 있다. 프로젝트의 모든 기능이 단일 코드베이스 에 존재하는 경우 해당 애플리케이션을 모놀리식 애플리케이션이라고 말한다. 모노리식 아키텍처에서는 사용자 인터페이스, 비즈니스 코드 및 데이터베이스 호출의 모든 것이 동일한 코드베이스에 포함된다.모든 애플리케이션 관련 사항은 단일 대규모..

    [Docker] docker-compose의 docker 네트워크

    이번 포스팅을 쓴 이유로는 docker compose를 사용하면서 생겼던 트러블 슈팅 때문에 이 글을 쓰게 됐다 필자는 docker compose로 was 이미지와 데이터베이스 mongodb 이미지를 사용해서 컨테이너를 띄웠는데 아무 이상 없이 둘이 통신이 가능했다 하지만 개발 환경에서 계속 was의 코드를 변경하고 이미지로 build 해서 또다시 docker compose로 띄운다면 엄청난 시간 낭비일 것이다 그래서 docker-compose.yaml에 was와 관련된 건 주석을 하고 mongodb만 환경변수를 세팅하고 컨테이너로 띄우고 was는 그냥 로컬에서 실행시켜도 사실 둘 사이에 문제없이 통신이 가능할 것이다 여기까지도 문제없었다 통신하는데 문제가 없어서 이제 was를 빌드하고 docker ru..

    [AWS] GitHub Actions로 AWS ECS 배포 자동화 하기

    이번 포스팅은 바로 저번 GitHub Actions를 이용한 ECR배포에서 이어지는 포스팅이므로 참고하면 되겠다 [AWS] GitHub Actions으로 private ECR에 이미지 push 자동화하기 이번 포스팅에서는 Docker Hub가 아닌 AWS의 ECR에 이미지를 push 하기 까지를 GitHub Actions로 자동화를 해보려한다 먼저 테스트를 하기위한 간단한 express를 만들고 시작해보겠다 Express 어플리케이션 생 john721.tistory.com fastify.js 애플리케이션 먼저 이번 코드와 다른 점은 express.js가 아닌 fastify.js로 만들어보겠다 $ npm i --global fastify-cli $ fastify generate my-ecs-test 위의 ..

    [AWS] GitHub Actions으로 private ECR에 이미지 push 자동화하기

    이번 포스팅에서는 Docker Hub가 아닌 AWS의 ECR에 이미지를 push 하기 까지를 GitHub Actions로 자동화를 해보려한다 먼저 테스트를 하기위한 간단한 express를 만들고 시작해보겠다 Express 어플리케이션 생성 간단한 Hellow World 어플리케이션이며 아래의 명령어로 초기화해주고 express를 설치해주자 $ npm init $ npm install express const express = require('express'); const app = express(); const port = 8080; app.get('/', (req, res) => { res.send('Hellow World'); }); app.listen(port, () => { console.log(..

    [JAVA] 프로그래머스 분수의 덧셈

    유클리드 호재법으로 최대공약수를 구한다 아래의 코드를 보면 GCD 라는 함수로 각 분모와 분자의 값을 파라미터로 전달한다. 전달 받은 파라미터를 재귀함수로 나머지가 0이 나올때까지 함수를 실행하게된다 쉽게 설명해보자면 1/2 + 3/4 = 5/4 일때 먼저 분자의 합은 10이고 분모의 합은 6이다. 이상태에서 GCD함수를 호출하고 num1에는 10, num2에는 6이들어가게된다 10 % 6 은 나머지가 4이기때문에 if문을 종료하고 return으로 다시 GCD 함수를 호출한다 이번에는 6, 4(10%6) 이며 다시 나누게되면 나머지가 2이기때문에 전과 같은 방법으로 반복을 하게된다. 이렇게 반복되다보면 최대공약수를 구할수 있게된다 class Solution { public int GCD(int num1,..

    [Docker] GitHub Actions으로 docker CI (도커캐시)

    분명 로컬에서 도커를 빌드하고 다시 빌드를 하게 되면 처음 빌드를 했을 때보다 빌드하는 시간이 빠르다... 근데 GitHub Actions을 이용하면서 도커를 빌드하고 몇 번을 빌드해도 도커 캐시가 동작하지 않는다는 걸 알았다... 이번 포스팅에서는 GitHub Actions으로 간단한 express앱을 빌드하고 docker hub push 해보겠다 Express 앱 먼저 아무 폴더에서 $ npm init $ npm install express { "name": "docker-ci-prac", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node app.js" }, "dependencies": { "ex..

    [AWS] AWS ECS 개념

    K8s를 공부하고나서 ECS를 공부하려고 aws korea 웨비나를 봤는데 K8s와 비슷하면서도 달라서 정확하게 구분 하고 공부해야겠다 생각이 들어서 이글을 포스팅한다 ECR(Elastic Container Registry) Amazon Elastic Container Registry(Amazon ECR)는 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스이다. Amazon ECR은 AWS IAM을 사용하여 리소스 기반 권한을 가진 프라이빗 리포지토리를 지원한다. 따라서 지정된 사용자 또는 Amazon EC2 인스턴스가 컨테이너 리포지토리 및 이미지에 액세스할 수 있다. 원하는 CLI를 사용하여 도커 이미지, Open Container Initiative(OCI) 이..

    [AWS] Route53에 외부 도메인(가비아) 연결, SSL 인증서

    aws로 실제 서비스를 배포했을때 사용했었던 가비아 도메인을 Route53에 등록해서 HTTPS적용을 해보겠다 먼저 Route53에서 호스팅 영역 구성에 들어가 연결할 도메인을 입력해주자 생성했다면 레코드 유형에 NS,SOA로 생성된걸 확인할 수있다 이제 가비아에 네임서버 설정에서 각 NS를 1,2,3,4차에 입력해준다 입력이 완료되었다면 AWS Certificate Manager에 들어간다 여기서 ACM의 기능으론 인증서를 중앙에서 관리 AWS Certificate Manager(ACM)를 사용하면 AWS Management Console, AWS CLI 또는 ACM API를 통해 중앙에서 SSL/TLS 인증서를 손쉽게 관리할 수 있다. 또한 AWS CloudTrail 로그를 검토하여 각 인증서의 사용..