1. AWS CI/CD 배포의 개념2. AWS CI/CD 배포의 실전3. 실제 프로젝트 배포시 Github Actions 워크플로우 작성법(환경변수 관련)4. NLB와 DNS 도메인 설정 AWS 데브옵스 실무과정을 수강하면서 노션에 기록해두었던 자료를 총 정리하고 직접 프로젝트를 무중단 배포해보면서 있었던 어려운 점들을 4편에 걸쳐 기록해 보겠습니다.처음은 AWS CI/CD를 진행하기 위해 필요한 개념으로 구성했습니다. CI/CD 무중단 배포에는 아래의 구성으로 진행했습니다.ElasticBeanStalk + Github Actions(자동배포도구) + EC2 서버 2개 + RDS + ALB + NLB + IAMAWS 프리미터(1년 무료)사용 범위를 초과한다던지 무료가 아닌 것을 사용하면 비용이 청구됩니다..
Devops
docker dit 옵션과 attach저번 시간에 사용했던 docker run 명령어를 이용해서 우분투를 실행해보겠습니다.docker run -d --name myubuntu ubuntu 이후 docker ps 명령어를 이용해서 프로세스를 찾아보면 실행한 myubuntu 프로세스가 실행되지 않는 것을 알 수 있습니다. 왜그럴까요? 이전에 실행했던 httpd 서버의 경우에는 OS 안에 아파치 서버가 실행중이라 데몬프로세스로 실행이 되었지만 ubuntu의 경우에는 단순 OS로 데몬프로세스가 존재하지 않기 때문에 실행이 되자마자 종료가 된 것입니다. 이 경우에는 -d 대신 -dit 를 붙여줍니다.i는 인터렉션의 약자, t 는 터미널의 약자로 터미널모드로 상호작용 하겠다는 뜻입니다.docker run -dit ..
도커의 정의 및 작동원리- 하나의 컴퓨터에 설치된 리눅스 운영체제에서 완전히 분리된 별도의 리눅스 시스템을 운영할 수 있는 기술- CPU, 메모리, 네트워크를 분리하여 마치 별도의 시스템처럼 사용할 수 있는 기술 도커에서 프로그램이 실행이 될때 하드웨어 위에 OS(Mac, windows)와 컨테이너들이 작동하고 그 위에 리눅스가 하위 시스템 설치를 담당합니다.레이어로 구성을 나눈다고 볼때 카카오톡과 같이 우리가 사용하는 응용프로그램을 애플리케이션 레이어, 운영체제들이 있는 곳을 커널 레이어, 그 아래는 하드웨어 레이어로 분리할 수 있습니다.* HW로 직접 제어할 수도 있긴 하지만, 아두이노(8bit), 라즈베리파이(32bit) 이런 컴퓨터를 직접 포트를 제어하기엔 어려운 부분이 많습니다. 그래서 OS를 ..
도커의 개념도커의 아이콘을 자세히 보면 배 위에 컨테이너가 떠있는 모양을 볼 수 있습니다.예를들어 항구로 트럭들이 짐을 싣고 도달한다고 할때 항구에 있는 노동자들이 트럭 1대씩 짐을 배로 옮겨줍니다.다른 트럭들은 앞의 트럭들의 짐 옮기기가 완료될 때까지 기다리게 됩니다.(트래픽 증가) 하지만 짐을 옮길 때 컨테이너를 사용한다고 하면 노동자들이 짐을 옮길 필요없이 컨테이너를 바로 배로 옮겨주면 되기 때문에 트럭들은 기다릴 필요가 없어집니다. 이를 도커에 적용시켜서 생각을 해보면 배는 “인프라”고 컨테이너는 “OS” 입니다. 컨테이너 안에 있는 물건들은 다양한 프로그램들이라고 보면 됩니다. 만약 다른 컨테이너의 있는 라이터와 내 컨테이너에 있는 담배를 한 컨테이너에 결합시켜서 사용해야할 때 사용하는 것이 “..
서론 이전 글에서 APACHE JMeter관련해서 테스트 측정 방법들을 공유했습니다. https://jaymon0327.tistory.com/6 APACHE JMeter를 통한 부하테스트 및 보고서 작성 부하 테스트를 위한 도구들 구글링을 통해 찾아본 테스트 도구로는 nGrinder, JMeter, k6 등이 있었습니다. 처음엔 네이버에서 제공하는 오픈소스인 nGrinder를 사용하려 했지만 JDK 11 까지만 지원해서 J jaymon0327.tistory.com 해당 측정방법으로 기존 프로젝트와 개선된 프로젝트를 테스트했고, 이번 포스팅에선 그 결과에 초점을 맞추어 저의 경험을 공유하고자 합니다. * 측정 도중에 JMeter의 JVM 힙메모리 문제(OutOfMemory Exception)의 대한 해결 ..
부하 테스트를 위한 도구들구글링을 통해 찾아본 테스트 도구로는 nGrinder, JMeter, k6 등이 있었습니다.처음엔 네이버에서 제공하는 오픈소스인 nGrinder를 사용하려 했지만 JDK 11 까지만 지원해서 JMeter를 선택하게 되었습니다.또한, 기존에 만든 레거시 프로젝트와 현재의 프로젝트를 비교하는 것이 목적이었기 때문에 일관성 측면에서 릴리즈된지 가장 오래되었으면서도 최근까지 유지보수가 이어져 오고 있어 방대한 커뮤니티가 있다는 점이 부합했습니다. APACHE JMeter의 장점을 요약하자면설치, 사용하기 쉬움(brew 설치가능)커뮤니티, 레퍼런스가 방대하고 최근까지도 유지보수 됨HTML 형식의 보고서가 정보를 깔끔하게 제공해줌 JMeter의 설치와 실행https://jmeter.apa..
성능 테스트 (Performance Test) 성능 테스트는 시스템 구성 요소가 특정 상황에서 어떤 성능을 보이는지 확인하기 위해 수행되는 테스트이다. 제품의 리소스 사용, 확장성 및 안정성도 이 테스트를 통해 검증할 수 있다. 성능 테스트는 기본적으로 매우 광범위하다. 다음 그림은 성능 테스트가 부하 및 스트레스 테스트 모두에 대한 상위 집합임을 보여준다. 그 외에도 스파이크 테스트, 볼륨 테스트, 내구성 테스트 및 확장성 테스트가 하위 집합으로 존재한다. 성능 테스트 중에 충족되어야하는 벤치 마크가 업계별로 많이 존재하는 데 해당 시스템의 벤치 마크 수준으로 시스템을 동작시키는 것이 성능 테스트의 주요 목표이다. 성공적인 성능 테스트는 데이터베이스, 네트워크, 소프트웨어, 하드웨어 등과 관련 될 수있..
Docker를 이용한 Docker hub 경로를 사람마다 다르게 설명해서 제 기준대로 남기려고 합니다. M2 맥북을 사용하기 때문에 애플 실리콘 Mac 기준으로 설명합니다. 배포하기 까지의 순서는 아래와 같습니다. 1. Docker 설치 2. Dockerfile 만들기 3. Docker 이미지 생성하기 4. Docker Hub push 5. Docker EC2 배포 Docker를 사용하려면 Docker를 먼저 설치해야 합니다. Docker 설치 https://www.docker.com/products/docker-desktop/ Docker Desktop: The #1 Containerization Tool for Developers | Docker Docker Desktop is collaborativ..