728x90 반응형 Skills/DevOps8 컨테이너와 VM의 차이, 그리고 컨테이너가 가진 장점 컨테이너와 VM의 차이, 그리고 컨테이너가 가진 장점은?개발자라면 한 번쯤은 들어봤을 VM(가상 머신)과 컨테이너(Container). 두 기술 모두 애플리케이션을 격리된 환경에서 실행할 수 있게 해주지만, 구조와 목적은 꽤 다릅니다. 이번 글에서는 이 둘의 차이를 알아보고, 왜 최근 개발과 배포 환경에서 컨테이너가 더 각광받고 있는지 정리해보았습니다.컨테이너와 VM의 구조 차이항목컨테이너가상 머신 (VM)가상화 방식OS 수준 가상화 (lightweight)하드웨어 수준 가상화 (heavyweight)실행 기반호스트 OS 위하이퍼바이저 위 (별도 게스트 OS 포함)구성앱 + 라이브러리앱 + 게스트 OS + 라이브러리이미지 크기작음 (수 MB~수백 MB)큼 (수 GB 이상)시작 속도매우 빠름 (거의 즉시).. 2025. 3. 21. #4(최종) AWS Elastic Beanstalk 기반 CI/CD 블루그린 배포 - 설정 파일 작동 원리 설정 파일 작동 원리 Elastic Beanstalk은 배포 파일을 전달 받으면, 각종 설정 파일들을 실행하고 나서, 애플리케이션 실행 단계를 거치게 된다. 이때, Elastic Beanstalk이 배포 애플리케이션을 실행한다는 것의 의미는, Procfile 파일을 실행하는 것이다. 그래서 Procfile 안에는 .ebextensions 파일에 /sbin/appstart 스크립트를 실행하는 코드만이 담겨져 있다. * Procfile springapp: appstart * .ebextensions/00-makeFiles.config files: "/sbin/appstart": mode: "000755" owner: webapp group: webapp content: | #!/usr/bin/env bash.. 2023. 5. 23. #3 AWS Elastic Beanstalk 기반 CI/CD 블루그린 배포 - deploy.yml Elastic Beanstalk에 접근하기 위해서는, * Elastic Beanstalk 콘솔 * AWS Command Line Interface(AWS CLI) * EB CLI 를 사용할 수 있다. 그러나 Github Actions 플러그인 Beanstalk Deploy를 사용할 경우, 배포 코드만 작성해 주면 사용할 수 있다는 장점이 있으므로, deploy,yml 파일을 작성해서 사용하도록 할 것이다. * Beanstalk Deploy 문서 https://github.com/marketplace/actions/beanstalk-deploy Beanstalk Deploy - GitHub Marketplace Deploy a zip file to AWS Elastic Beanstalk github.com.. 2023. 5. 23. #0 AWS Elastic Beanstalk 기반 CI/CD 블루그린 배포 - 배포 프로세스 Github Github Repository Main 브랜치에 Push. Github Actions Github Actions는 deploy.yml 파일을 읽고, 배포환경과 같은 환경을 가진 테스트 서버에서 Build한다. Build가 성공한다면, JAR 파일이 만들어질 것이다. AWS S3 CI툴을 이용하여 Build가 성공한다면, Github Actions는 미리 만들고 설정해준 IAM 권한을 통해, AWS CLI(Command Line Interface)를 사용하여 S3 버킷에 JAR파일을 업로드한다. S3 버킷의 객체 URL을 기반으로 Elastic Beastalk 배포가 수행될 것이다. AWS Elastic Beanstalk Elastic Beanstalk 환경 설정 Elastic Beansta.. 2023. 5. 22. #2 AWS Elastic Beanstalk 기반 CI/CD 블루그린 배포 - Procfile, .ebextensions Procfile 웹 애플리케이션을 실행하기 위한 명령어를 정의하는 파일. Procfile은 프로세스 형식으로 작성한다. : 실행하려는 프로세스의 유형. 해당 프로세스를 실행하기 위한 명령어. 장점: 애플리케이션의 각 프로세스를 독립적으로 관리, 실행이 가능하다. * Procfile은 애플리케이션의 루트 디렉토리에 위치해야 한다. Procfile 코드: springapp: appstart .ebextensions https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/ebextensions.html 구성 파일(.ebextensions)을 사용하여 고급 환경 사용자 지정 - AWS Elastic Beanstalk 새 구성 파일을 개발하거나 테스트할 때 기.. 2023. 5. 22. 가상화, 가상머신(Virtual Machine)과 컨테이너(Container) 비교 가상화가 나오게 된 배경 과거에는 하드웨어의 빠른 발전에 비해서 소프트웨어의 발전은 속도가 뎌딘 편이었다. 또한 과거의 프로그래밍에서는 하나의 애플리케이션은 하나의 서버에서 구동되는 방식이었는데, 하드웨어의 성능이 점점 좋아질수록 자원 사용률은 점점 낮아지게 된다. 하드웨어와 소프트웨어의 괴리 + 구조적인 문제로 인해 Single Server는 많은 단점이 존재하게 되었다. (1) 리소스 활용도 첫 번째로 서버의 전체 자원을 애플리케이션에 효율적으로 할당하기 어려웠다. 애플리케이션에 필요한 자원보다 서버의 자원이 많은 경우, 남는 자원이 낭비되고, 반대로 애플리케이션에 필요한 자원이 더 많은 경우, 성능이 저하된다. (2) 확장성 애플리케이션에 대한 요청이 증가하면 서버의 리소스가 더 많이 필요해진다. .. 2023. 5. 16. 이전 1 2 다음 728x90 반응형