prosource

추천하는 mongodbon 탄성콩나무 설치방법

probook 2023. 10. 10. 20:38
반응형

추천하는 mongodbon 탄성콩나무 설치방법

더 이상 작동하지 않는 2014년산 탄성콩나무에 mongodb를 설치하는 방법과 https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/ # deploy-manually-mongodb-on-ec2를 이미 살펴봤습니다.

1ec2 마이크로 인스턴스 '64bit Amazon Linux 2016.03 v2.1.0 running Node.js'로 node.js에서 실행되는 새로운 탄력 빈스톡 환경을 설정했습니다.

이미 ssh를 사용하여 인스턴스에 연결하고 yum 명령을 사용하여 mongodb 패키지를 설치하려고 했습니다.

$ sudo yum install -y mongodb-org-server mongodb-org-shell mongodb-org-tools

그리고 이 전화를 돌려 받았습니다.

Loaded plugins: priorities, update-motd, upgrade-helper
No package mongodb-org-server available.
No package mongodb-org-shell available.
No package mongodb-org-tools available.
Error: Nothing to do

처음에 인스턴스에 sshd를 넣었을 때 다음과 같은 오류 경고를 받았습니다.

This EC2 instance is managed by AWS Elastic Beanstalk. Changes made via SSH 
WILL BE LOST if the instance is replaced by auto-scaling. For more information 
on customizing your Elastic Beanstalk environment, see our documentation here: 
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

현재 환경은 비용 절감을 위해 단일 인스턴스 환경으로 설정되어 있습니다.하지만 앞으로는 자동 스케일링 환경으로 업그레이드 할 것입니다.

이 때문에 ec2에서 ssh를 통해 변경하는 것이 바람직한지, 아니면 EB CLI만 사용해야 하는지 여쭤봅니다.

저는 EC2와 EB CLI를 모두 로컬로 설치하고 있습니다만, EB CLI를 사용해 본 적은 없습니다.만약 제가 EB를 사용해야 한다면 mongodb를 설치할 수 있는 추천 방법이 있는 사람이 있습니까?

답을 찾으시는 분이 계실 경우, aws 비즈니스 지원부에서 받은 조언을 드립니다.

Elastic Beanstalk에 배포된 모든 코드는 "stateless" I.E.여야 합니다. SSH나 FTP를 사용하여 실행 중인 Beanstalk 인스턴스를 직접 변경하지 마십시오.이렇게 하면 불일치가 발생하거나 데이터가 손실됩니다. - Elastic Beanstalk는 상태 비저장 응용프로그램을 위해 설계되지 않았습니다.환경은 네트워크/CPU 로드에 따라 업/다운되고 기본 AMI에서 새 인스턴스를 구축하도록 설계되었습니다. 인스턴스에 문제가 있거나 기본 하드웨어가 있는 경우 Elastic Beanstalk은 실행 중인 인스턴스를 종료하고 새 인스턴스로 대체합니다.따라서 새로운 인스턴스는 이러한 직접적인 변경을 인식하지 못할 것이기 때문에 기존 인스턴스에 "직접" 코드 수정을 적용하거나 수행해야 하는 이유는 무엇입니까?모든 변경/코드를 Elastic Beanstalk 콘솔 또는 CLI 도구에 업로드하고 실행 중인 모든 인스턴스에 푸시해야 합니다.엘라스틱 빈스톡 디자인 컨셉에 대한 자세한 내용은 다음 링크 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts.design.html 에서 확인할 수 있습니다.

제안 솔루션:위의 사항을 고려하여, MongoDB를 사용하여 애플리케이션 데이터를 저장할 경우, Node.js 애플리케이션에서 MongoDB 환경을 디커플링하는 것이 좋습니다.I.E Elastic Beanstalk 외부에 MongoDB Server를 생성합니다. 예를 들어 EC2 인스턴스에서 직접 MongoDB를 시작하고 앱의 연결 설정을 사용하여 Elastic Beanstalk Node.js 응용 프로그램을 MongoDB Server에 연결합니다.

-MongoDB 만들기 아래 링크는 MongoDB Server를 만들기 위한 시나리오에 사용될 수 있는 몇 가지 예시적인 링크입니다.EC2에 MongoDB 배포, https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/ MongoDB 노드 클라이언트 https://docs.mongodb.org/getting-started/node/client/ MongoDB를 AWS Cloud 빠른 시작 가이드 http://docs.aws.amazon.com/quickstart/latest/mongodb/architecture.html 에 배포합니다.

- 환경변수를 Elastic Beanstalk에 추가하여 MongoDB Server를 생성한 후 환경변수를 사용하여 필요한 연결 설정을 Elastic Beanstalk 환경에 전달할 수 있습니다.Mongo URL / ports / user 등을 추가할 수 있는 .ebextensions .config 사용 예제..

option_settings: - option_name: MONGO_DB_URL 값: "당신의 몽고DB EC2 내부 IP 주소"

환경 속성을 사용하고 응용프로그램 내에서 이를 읽는 방법에 대한 정보는 아래에서 확인할 수 있습니다.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop 그리고 .ebextensions.config를 사용하는 정보는 다음 링크 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html 에서 확인할 수 있습니다.

또는 아래 링크에 따라 AWS Console e-climet 환경 변수를 읽을 수 있으며, cli를 사용하여 환경 변수를 설정할 수도 있습니다.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html AWS 콘솔을 사용하여 시스템 속성(AWS Management Console)을 설정하려면 Elastic Beanstalk 콘솔을 엽니다.사용자 환경의 관리 콘솔로 이동합니다.Configuration(구성)을 선택합니다.소프트웨어 구성 섹션에서 편집을 선택합니다.환경 속성에서 이름/값을 만듭니다...

환경 구성 설정 액세스 AWS Elastic Beanstalk에서 실행되는 Node.js 환경 내에서 process.env를 사용하여 환경 변수에 액세스할 수 있습니다.다음 예제와 유사한 ENV_VARIVEL.process.env.몽고_DB_URL process.env.PARAM2

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop

요약:.요약하면 MongoDB와 Elastic Beanstalk 환경을 통합하기 위해 다음과 같은 단계를 추천합니다.1단계) Elastic Beanstalk 외부에 MongoDB Server 만들기 2단계) Elastic Beanstalk에서 MongoDB Server에 연결하는 Node.js 어플리케이션 만들기

3가지 옵션:

1) eb 인스턴스에 SSH를 설치하고 mongo CLI를 수동으로 설치합니다.

sudo yum-config-manager --add-repo https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/
sudo yum install --nogpgcheck -y mongodb-org-shell

단점은 EB가 인스턴스 수를 줄이고 현재 사용 중인 인스턴스가 종료되면 SSH 세션에서 쫓겨난다는 것입니다.

The system is going down for halt NOW!
Connection to 1.2.3.4 closed by remote host.
Connection to 1.2.3.4 closed.
ERROR: CommandError - An error occurred while running: ssh.

그런 다음 처음부터 다시 시작해야 합니다. 인스턴스에 연결, mongo CLI 설치...

2) 를 사용하여 인스턴스에 몽고 CLI를 미리 설치합니다..config파일:

container_commands:
  01-mongocli:
    command: "sudo yum-config-manager --add-repo https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/;sudo yum install --nogpgcheck -y mongodb-org-shell"
    ignoreErrors: true //use this the ensure instance deployment even if mongo CLI installation fails

다시 말하지만, 자동 스케일러에 의해 인스턴스가 종료되면 다시 연결해야 하지만 수동으로 mongo CLI를 설치할 필요는 없습니다.

3) @amyloula의 답변에 설명된 대로 몽고 CLI를 호스팅하는 별도의 인스턴스를 만듭니다.Mongodb가 VPC 내에 있는 경우에는 해당 VPC 내에서도 별도의 인스턴스를 만들어야 합니다.그런 다음 VPC의 인스턴스에 직접 연결할 수 없으므로 인스턴스에 공개적으로 액세스하기 위한 게이트웨이를 만들어야 합니다.

언급URL : https://stackoverflow.com/questions/36851887/recommended-way-to-install-mongodb-on-elastic-beanstalk

반응형