DevOps
[Docker] 도커에 대하여
[Docker] 도커에 대하여
2024.04.05들어가기 전 이번 포스팅에서는 도커의 이미지, 컨테이너, 컨테이너의 생명주기에 대해서 알아보겠습니다. 도커에 대해 알아보기 전에 도커에서 사용되는 컨테이너 가상화와 비교되는 하이퍼바이저 가상화 대해서 알아보겠습니다. 하이퍼바이저 가상화 VS 컨테이너 가상화 하이바이저 가상화 하이퍼바이저는 호스트 운영체제에 설치된 소프트웨어입니다. 하이퍼바이저는 호스트 운영체제에서 여러 개의 가상 머신 서버를 생성할 수 있습니다. 가상 머신은 각각 독립된 환경에서 실행되기 때문에 하나의 가상 머신에 문제가 생겨서 강제종료되더라도 다른 가상머신에는 영향을 주지 않습니다. 그리고 각각의 가상머신에는 운영체제가 있는데 이것을 게스트 운영체제라고 부릅니다. 컨테이너 가상화 컨테이너 가상화는 하이퍼바이저와 유사하게 호스트 운영체제..
[AWS] RDS(MySQL)와 EC2(Spring Boot) 연동하는 방법
[AWS] RDS(MySQL)와 EC2(Spring Boot) 연동하는 방법
2023.10.17들어가기 전 이번 포스팅에서 RDS로 구축한 MySQL과 EC2에 배포된 스프링 애플리케이션을 연동해 보겠습니다. 만약 RDS로 MySQL이 구축 안된 상태면 아래 포스팅을 참고하시길 바랍니다. https://hoestory.tistory.com/65 [AWS] RDS 데이터베이스 생성 및 MySQL Workbench 연동 들어가기 전 이번 포스팅에서는 AWS RDS 데이터베이스를 생성 후 MySQL Workbench와 연동하는 방법에 대해 알아보겠습니다. RDS 생성 1. 데이터베이스 생성을 클릭합니다. 2. 필자는 MySQL을 사용할 예정 hoestory.tistory.com 그리고 AWS EC2에 스프링이 배포가 안된 상태라면 아래 포스팅을 참고하고 이번 포스팅을 보시는 게 좋을 거 같습니다. h..
[AWS] RDS 데이터베이스 생성 및 MySQL Workbench 연동
[AWS] RDS 데이터베이스 생성 및 MySQL Workbench 연동
2023.10.17들어가기 전 이번 포스팅에서는 AWS RDS 데이터베이스를 생성 후 MySQL Workbench와 연동하는 방법에 대해 알아보겠습니다. RDS 생성 1. 데이터베이스 생성을 클릭합니다. 2. 필자는 MySQL을 사용할 예정이라 MySQL을 선택했습니다. 3. 원하는 MySQL엔진 선택을 하고 필자는 프리티어를 사용할 예정이라 프리티어를 선택했습니다. 4. DB 식별자, 사용자 이름, 암호를 작성을 합니다. 5. DB인스턴스 클래스에서 버스터블 클래스를 선택하고 db.t3.micro를 선택합니다. 6. 스토리지는 아래와 같이 구성을 하고 스토리지 자동 조정 활성화가 디폴트가 체크되어 있는데 과금이 발생할 수 있어 체크해제하는 것을 추천드립니다. 7. Virtual Prive Cloud와 DB 서브넷 그룹..
[Jenkins] EC2 Ubuntu 환경에서 GitHub 연동 및 CI 적용
[Jenkins] EC2 Ubuntu 환경에서 GitHub 연동 및 CI 적용
2023.10.01들어가기 전 EC2 프리티어를 사용하시는 분들 중 메모리로 인해 젠킨스가 실행 안 되는 문제를 겪고 계신 분들은 아래 포스팅을 읽고 해결한 뒤에 해당 포스팅을 읽으시는 걸 추천드립니다. 동작 방식에 대해서는 필자가 설정한 값 기반으로 설명하겠습니다. https://hoestory.tistory.com/63 [AWS] EC2 프리티어에서 발생하는 메모리 문제 해결방법 들어가기 전 EC2 프리티어에서는 메모리를 1GB만 지원을 해주고 있습니다. 필자 또한 프리티어를 사용해서 메모리 문제를 직면하여 EC2에 띄워놓았던 젠킨스의 실행 속도가 너무 느리거나 멈추는 hoestory.tistory.com 동작 방식 1. 개발자가 Pull Request 또는 Push를 합니다. 2. 깃허브는 개발자가 Pull Requ..
[AWS] EC2 프리티어에서 발생하는 메모리 문제 해결방법
[AWS] EC2 프리티어에서 발생하는 메모리 문제 해결방법
2023.09.25들어가기 전 EC2 프리티어에서는 메모리를 1GB만 지원을 해주고 있습니다. 필자 또한 프리티어를 사용해서 메모리 문제를 직면하여 EC2에 띄워놓았던 젠킨스의 실행 속도가 너무 느리거나 멈추는 현상을 겪었습니다. 해당 포스팅에서는 이 문제에 대해 해결하는 방법에 대해 설명하겠습니다. 문제를 해결하는 방법에 대해 알기 전에 스왑 메모리(Swap Memory)에 대해 먼저 알아보겠습니다. 스왑 메모리 스왑 메모리란 실제 메모리가 가득 찼지만 더 많은 메모리를 사용해야 될 때 디스크 공간을 빌려와 메모리를 사용할 수 있는 가상 메모리를 의미합니다. 리눅스 커널은 실제 메모리에 올라와 있는 메모리 블록들 중 당장 쓰이지 않는 것을 디스크에 저장함으로써 자동으로 사용 가능한 메모리 영역을 늘립니다. 하지만 스왑 ..
[Jenkins] EC2 Ubuntu 환경에서 젠킨스 설치 및 구축
[Jenkins] EC2 Ubuntu 환경에서 젠킨스 설치 및 구축
2023.09.22들어가기 전 AWS EC2 인스턴스 만드는 방법에 대해서는 아래 포스팅을 참고하시면 될 거 같습니다. 이번 포스팅에서는 Ubuntu환경에서 젠킨스를 설치하고 젠킨스 서버를 구축하는 방법에 대해 알아보겠습니다. 그리고 기본적으로 자바가 다운로드되어 있다는 전제하에 설명하겠습니다. https://hoestory.tistory.com/37 [AWS] AWS EC2 인스턴스 생성 들어가기 전 AWS EC2 인스턴스를 생성하는 과정에 대해 알아보겠습니다. ◎ 순서 1. 인스턴스 생성 2. 탄력적 IP 주소 할당 3. 보안 그룹 생성 EC2 인스턴스 생성 인스턴스를 클릭을 해줍니다. 인스턴 hoestory.tistory.com Jenkins 설치 방법 아래 명령어를 입력을 하여 젠킨스가 설치되었는지 안되었는지 확인..
[Jenkins] Docker를 이용한 Jenkins 초기설정
[Jenkins] Docker를 이용한 Jenkins 초기설정
2022.12.15들어가기 전 Jenkins 초기 설정에 들어가기 앞서 CI/CD에 대해 먼저 알아보겠습니다. 그리고 Docker 설치에 대한 설명은 생략하겠습니다. 필자가 작업하는 환경은 mac os 환경이라 mac os 기준으로 설명해 나가겠습니다. CI/CD란 CI(Continuous Integration) : CI는 지속적인 통합을 뜻합니다. 지속적인 통합은 개발을 진행하면서도 품질을 관리할 수 있도록 하는 것으로 여러 명이 하나의 코드에 대해 수정을 진행해도 지속적으로 통합하면서 관리할 수 있는 것을 말합니다. CI는 빌드 -> 테스트 -> 병합(merge)을 자동화해주는 것입니다. 자동화를 해주면 개발자 입장에서는 편할 수밖에 없습니다. 예를 들어보면 로컬에서 작업을 하고 빌드 -> 테스트 -> 병합(merge..
[AWS] EC2 Ubuntu환경에서 Spring Boot 배포
[AWS] EC2 Ubuntu환경에서 Spring Boot 배포
2022.07.16들어가기 전 EC2 Ubuntu환경에서 Spring Boot를 배포를 하려면 EC2 인스턴스를 생성해야 됩니다. EC2 인스턴스 생성에 대해 궁금하신 분은 아래에서 확인해주시기 바랍니다. [AWS] AWS EC2 인스턴스 생성 [AWS] AWS EC2 인스턴스 생성 들어가기 전 AWS EC2 인스턴스를 생성하는 과정에 대해 알아보겠습니다. ◎ 순서 1. 인스턴스 생성 2. 탄력적 IP 주소 할당 3. 보안 그룹 생성 EC2 인스턴스 생성 인스턴스를 클릭을 해줍니다. 인스 hoestory.tistory.com EC2 Ubuntu환경에서 Spring Boot 배포 1. EC2 인스턴스를 생성하는 과정에서 키 페어를 만들어 로컬에 키 페어가 다운로드되었을 겁니다. 터미널을 켜서 다운로드된 경로로 가서 키 페어..
[AWS] AWS EC2 인스턴스 생성
[AWS] AWS EC2 인스턴스 생성
2022.07.16들어가기 전 AWS EC2 인스턴스를 생성하는 과정에 대해 알아보겠습니다. ◎ 순서 1. 인스턴스 생성 2. 탄력적 IP 주소 할당 3. 보안 그룹 생성 EC2 인스턴스 생성 인스턴스를 클릭을 해줍니다. 인스턴스 클릭하면 아래와 같이 인스턴스 시작이 보입니다. 인스턴스 시작을 클릭해줍니다. 인스턴스 시작을 클릭하면 아래 사진과 같은 화면이 나옵니다. 이름에는 자신의 서버 이름을 적어주면 됩니다. 그리고 애플리케이션 및 OS 이미지는 필자 같은 경우는 Ubuntu를 선택했습니다 필자의 경우 위에서 말했듯이 Ubuntu를 선택하여 아래와 같은 사진처럼 나옵니다. 인스턴스 유형은 아래와 같습니다. 프리티어 사용 가능이라는 것은 무료로 사용이 가능하다는 뜻입니다. 무료는 평생 무료가 아니고 1년 무료인 것을 인..
[Git Action]Spring boot + GitHub Action 적용 시 빌드 실패와 관련된 에러 해결 방법
[Git Action]Spring boot + GitHub Action 적용 시 빌드 실패와 관련된 에러 해결 방법
2022.06.02들어가기 전 들어가기 전에 GitHub Action이 무엇인지에 대해 간략히 알아보겠습니다. GitHub Action을 자세히 대해서는 다루지 않고 개념만 간단히 설명하고 해결방법에 대해서 설명하겠습니다. GitHub Action이란? GitHub Action은 빌드, 테스트, 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼입니다. 단순한 DevOps를 넘어 repository에서 다른 이벤트가 발생할 때 workflow를 실행할 수 있도록 합니다. GitHub Action의 컴포넌트에는 workflows, events, jobs, steps, actions, runners가 있습니다. 빌드 실패 관련 에러 메시지 에러 메시지 1 ApplicationTests > contextLoads() FAIL..