도커(Docker)란?
·
DevOps/Docker
1. 도커란?도커는 가상화의 한 종류인 '컨테이너' 기반의 오픈소스 프로젝트이다. 컨테이너는 그 자체로 독립적인 실행 환경이다.애플리케이션이 빠르고 안정적으로 실행할 수 있도록, 애플리케이션 파일과 실행에 필요한 모든 의존성을 하나의 패키지로 묶는다. 도커의 컨테이너 개념을 도입하여, 동일한 환경에서 실행되므로 '개발-테스트-프로덕션 환경' 간에도 일관성을 유지할 수 있다.   참고로 도커의 시작은 리눅스의 cgroups와 namespaces을 활용한 LXC 기반으로 시작했지만, 현재는 자체적인 컨테이너 기술을 개발하여 사용하고 있다.  2. 가상머신(Virtual Machine)과의 차이점은?1) 기존 가상화 방식도커는 컴퓨터 자원을 가상화 하는 방식 중 하나이다.그럼 도커 이전에는 어떻게 가상화를 했..
Linux에서의 swap 메모리 설정
·
DevOps/AWS
AWS 프리티어 계정으로 EC2 인스턴스를 사용 중, 프로젝트를 빌드하는 속도에 답답함을 느껴 관련 이슈를 찾아보게 되었다. 프리티어 EC2는 1GB RAM과 30GB 스토리지를 사용할 수 있다.위의 RAM 성능으로는 빌드하는 속도가 느리고, 더 큰 프로젝트를 빌드하는 경우 서버가 다운되는 현상이 발생한다.이를 스토리지의 일부를 RAM처럼 사용하는 RAM Swap을 통해 부족한 메모리 현상을 해결해보고자 한다.    1. 현재 swap 메모리 확인free   2. 현재 디스크 여유 공간, 사용량 확인   3. 2G SSD 메모리를 RAM처럼 쓸 수 있도록 swap 메모리를 할당합니다.# swap 메모리 할당$ sudo dd if=/dev/zero of=/swapfile bs=128M count=1632+..
AWS Secrets Manager 적용하기
·
DevOps/AWS
이전 프로젝트에서는 API 키를 private repo를 만들어, 메인 repo의 서브모듈로 두어 DB와 API 키 관리를 진행했었다.(관련 글은 작성하지 않았지만, 추후에 사이드 프로젝트에서 다시 사용하게 된다면 정리해 봐야겠다!) 인턴 업무 중 프로젝트 하나를 AWS Secrets Manager를 적용해달라는 테스크를 받았다.적용하는데 있어 크게 어려움이 없었지만, 개인적으로 Spring에서 의존하게 되는 라이브러리들에 대해서 공부하는 과정이 도움이 되어 간략히 정리할 겸 글을 작성하게 되었다.   1. AWS 설정* IAM 사용자 권한 설정에서 'SecreatsManagerReadWrite'를 반드시 넣어주어야 한다.  1) 'AWS Secrets Managersec > 보안 암호' 로 들어간다. ..
Github Actions CI/CD 프로젝트 적용기
·
DevOps/CI-CD
졸업 설계를 진행하면서 코드의 변경이 있을 때마다 aws 서버에서 변경된 코드에 대해 pull을 받고 배포해주는 과정이 반복되었다. 이러한 수고로움이 계속 되면서, 자동화 프로세스인 CI/CD에 관심이 갔고 공부하고 프로젝트에 적용하는 과정에서의 배움을 정리하였다.  1. CI/CD란?CI(Continuous Integration)지속적 통합, 자동으로 코드의 변경이 있을 때 메인 레포지토리에 통합하는 과정이다. 여기에서 중요한 점은 통합되기 전에자동화 된 build, test를 통해 문제가 없는 코드인지 확인하는 것이다.  CD(Continous Deployment)지속적 배포, 자동으로 CI가 완료된 코드를 서버에 배포하는 과정이다.   2. CI/CD를 지원하는 여러 tool들이 있는데 왜 Git..
SSH (Secure SHell) 이란?
·
DevOps/CI-CD
프로젝트에 CI/CD를 구축하는 과정에서 SSH와 관련된 개념이 부족하여, 며칠동안 꽤 애를 먹었다. 관련하여 여러 오류를 만나면서, 공부한 내용들을 정리하였다.- 비대칭키(공개키, 비밀키)를 이용한 SSH 통신의 동작 흐름- 클라이언트에서 신뢰할 수 있는 서버인지 확인하는 과정- Github Actions에서 원격 SSH 통신을 할 때 known_host를 등록하기 위한 코드 작성   1. 개념SSH(Secure SHell): 원격 호스트에 접속 및 원격 명령을 실행하기 위해 사용되는 보안 프로토콜 SSH를 사용하여 네트워크 상의 다른 컴퓨터에 원격 로그인하여 (ex. AWS EC2 원격 접속) 원격 시스템에서 명령을 실행하고,다른 시스템으로 파일을 복사 (ex. SCP 명령어) 할 수 있다.   2...