분류 전체보기 216

EC2 인스턴스에 CodeDeploy-Agent 설치

배포할 서버에 접속하여 최초 한 번만 설치 1. apt 저장소 업데이트 sudo apt-get update 2. ruby 설치 CodeDeploy Agent는 ruby라는 프로그래밍 언어로 작성 -> ruby 설치해줘야 함 # ubuntu 16.04 이상 sudo apt-get install ruby 3. wget 설치 sudo apt-get install wget 4. Agent 설치 wget으로 Agent의 설치파일을 다운받는 과정에 bucket 이름과 region 식별자를 적절히 적어주면 됨, 한국 리전을 사용하려면 wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install을 사용 # install..

카나리 배포

카나리 배포란? > 전체 인프라에 새로운 소프트웨어 버전을 릴리스하여 모든 사용자가 사용할 수 있도록 하기 전에 변경 사항을 천천히 릴리스함으로써 프로덕션 환경에 새로운 소프트웨어 버전을 도입하는 위험을 줄이는 기술 > 이 기법의 이름은 광부들이 광산으로 들어갈 때 새장에 카나리아를 넣어 가져가는 것에서 유래 > 광산에서 유독가스가 누출되면 광부들이 중독되기 전에 카나리아가 먼저 죽게 됩니다. > Canary Release는 비슷한 개념으로 잠재적 문제를 초기에 발견하여 전체 운영환경이나 사용자에게 영향을 미치는 것을 방지 즉, 특정 서버에만 배포를 진행하여 오류 여부를 확인하고 문제가 없다면 모든 서버에 새로운 버전을 단계적으로 배포하는 방식 카나리 배포 장점 문제 발생 시 먼저 배포가 진행되었던 서버..

롤링 배포

롤링 배포란? 롤링 배포는 애플리케이션이 실행 중인 인프라를 완전히 교체하여 이전 버전의 애플리케이션을 새로운 버전의 애플리케이션으로 서서히 교체하는 배포 전략 롤링 배포는 가용 자원이 제한적일 경우에 사용 롤링 배포의 방식 [출처] codestates 사용 중인 인스턴스(v1) 내에서 새 버전(v2)을 점진적으로 교체. 롤링 배포의 장점 업그레이드 과정에서 문제가 발견되면 일반적으로 롤링 배포를 "reverse"로 이동하여 새 버전의 앱을 제거하고 이전 버전을 다시 시작할 수 있음 Downtime이 없음 롤링 배포의 단점 배포가 진행되는 동안 구버전과 신버전이 공존하기 때문에 호환성 문제가 발생할 수 있음 배포 중인 서버는 서비스가 중단된 상태이기 때문에 서버 부하량을 체크하며 배포를 진행해야 함

블루/그린 배포

블루 / 그린 배포란? 애플리케이션 또는 마이크로서비스의 이전 버전에 있던 사용자 트래픽을 이전 버전과 거의 동일한 새 버전으로 점진적으로 이전하는 애플리케이션 릴리스 모델 블루 / 그린 배포가 필요한 이유 배포를 자동화할 때 겪는 어려움 중 하나는 소프트웨어를 최종 테스트 단계에서 실제 프로덕션 단계로 전환하는 컷오버 자체 > 다운 타임을 최소화하려면 이 작업을 신속하게 수행해야 함 컷오버(cutover) : 기존에 운영되던 환경을 중단시키고, 새로 구축된 환경으로 오픈하는 것 다운타임(Downtime) : 시스템을 이용할 수 없는 시간 블루 / 그린 배포의 방식 [출처] codestates blue를 실제 운영 중인 환경으로 가정 새로운 버전을 릴리스 하고 싶은 경우 green 환경에서 테스트를 진행..

AWS Parameter Store 장점

보안: Parameter Store는 데이터를 안전하게 저장하기 위한 다양한 기능을 제공합니다. 예를 들어, AWS KMS를 사용하여 데이터를 암호화하고, IAM을 사용하여 액세스 권한을 관리할 수 있습니다. 중앙 집중화된 관리: Parameter Store를 사용하면 설정 데이터를 중앙 집중화하여 관리할 수 있습니다. 이를 통해 여러 시스템에서 사용되는 설정 데이터를 효율적으로 관리할 수 있습니다. 확장성: Parameter Store는 대규모 인프라스트럭처에서도 높은 확장성을 제공합니다. 필요에 따라 설정 데이터를 추가하거나 업데이트할 수 있습니다. 유연성: Parameter Store는 다양한 데이터 형식을 지원합니다. 예를 들어, 문자열, JSON, 암호화된 문자열 등을 저장할 수 있습니다. AW..

카테고리 없음 2023.04.25

서버 환경 변수 설정

1. 환경 변수를 AWS System Manager Parameter Store에서 설정할 것이기 때문에 AWS CLI를 먼저 EC2 instance에 설치해야 한다. 밑에 명령어를 차례대로 입력 > 이렇게 되면 aws CLI는 설치가 완료된 것이다 2. RDS 생성 검색 창에 RDS 입력 후 데이터베이스 생성을 클릭 엔진 옵션에 원하는 데이터베이스 소프트웨어를 선택 탬플릿은 사용 용도에 따라 선택하면 되는데, 비용이 제일 싼 걸 선택했다 스크롤을 내려 DB 인스턴스 식별자, 마스터 사용자 이름, 암호를 기입 컴퓨터 리소스는 기존 EC2에 연결하고 싶으면 오른쪽을 아니면 왼쪽을 클릭 VPC는 기존 EC2 VPC에 연결할 수 있음 DB 서브넷 그룹도 기존 존재하던 것에 연결할 수 있음 보안 그룹도 기존에 ..

클라이언트 환경 변수 설정

1. AWS 검색창에 CodeBuild를 검색하여 클릭 2. 원하는 빌드 프로젝트 선택 후 오른쪽 상단에 편집 -> 환경 클릭 3. 밑으로 스크롤을 쭉 내려 추가 구성을 클릭 4. 추가 구성을 클릭하면 새로 선택지가 나옴, 스크롤을 내려 환경 변수에 환경 변수 이름과 서버의 주소를 넣음 -> 환경 업데이트 클릭 5. 파이프라인에 변경사항 릴리스를 클릭 결과 > 이렇게 나온다면 클라이언트와 서버의 연결이 성공한 것이다

서버 배포 파이프라인

1. > 검색 창에 EC2를 검색하여 들어간 후 EC2를 생성 > 작업 -> 보안 -> IAM 역할 수정 클릭 IAM 역할 수정하는 이유: > 인스턴스가 다른 AWS 서비스와 통신할 때, 접근 권한을 주기 위함 2. 새 IAM 역할 생성 클릭 3. 역할 만들기 클릭 4. > AWS Deploy를 이용하여 EC2에 작업할 것이므로 AWS 서비스 선택 > EC2 선택 5. > CodeDeploy가 S3에 있는 코드를 사용할 것이므로 'AmazonS3 FullAcess' 선택 6. EC2에 Agent를 설치하기 위해 선택 7. AWSCodeDeployRole 사용하는 이유 > CodeDeploy에서 배포하는 애플리케이션을 관리하는 데 필요한 권한을 제공 > CodeDeploy 배포 그룹을 만들 때 사용됩니다...