9

지난 주 동안 나는 고무 보석을 가지고 놀았으며 제대로 작동하지 않는 것처럼 보였습니다. EC2 인스턴스를 수동으로 설정하는 것이 더 쉬울 것이라고 판단했습니다. 문제는 어떻게해야할지 모르겠다는 것입니다. Google은 newb 중 하나도별로 도움이되지 못했습니다. 어떤 제안? 정말 고맙게 생각합니다.EC2에 레일 애플리케이션 배포

+0

작동하지 않는 기능은 무엇입니까? –

답변

27

확실히.

  1. AWS 계정을 만드십시오.

  2. 당신이 들어가기를 원하는 지역을 결정했습니다. 많은 결정이이 결정에 포함되지만 나중에 걱정할 필요가 없으며 오레곤이나 동부와 같은 값싼 것을하십시오.

  3. 왼쪽 상단의 올바른 영역에 있는지 확인하십시오.

  4. 그런 다음 시작 서버를 클릭하십시오.

  5. 이 시점에서 AMI를 선택해야합니다. AMI는 기본적으로 서버를 부팅 할 때 사용할 템플릿입니다. 아마존은 당신에게 약간을 주지만, 커뮤니티 섹션에 톤이 있습니다. 저는 CentOS 사람입니다. 그래서 저는 보통 CentOS AMI를 찾습니다. RightScale은 좋은 것들을 만들어 당신이 그 중 하나를 검색 할 수 있습니다. 원하는 서버의 크기에 따라 i386 또는 x64를 선택하십시오. AMI에는 두 가지 유형이 있으며, EBS 및 S3 백업이 있습니다. 정말로 더 많은 자유가 있기 때문에 EBS에 충실해야하지만,이 대답의 범위를 벗어나는 두 가지 이유를 사용해야합니다. EBS를 찾으십시오. 그러면 아마 좋을 것입니다. EBS는 블록 저장소입니다. 기본적으로 귀하의 인스턴스에 연결할 수있는 하드 드라이브입니다. 클라우드의 모든 것이 "가상의"것이고 물리적 인 의미에서 생각할 것이 없기 때문에 그렇게 생각해야합니다. 따라서 더 많은 저장소가 필요하면 나중에 일부 EBS 볼륨을 연결할 수 있습니다. 한 가지 있지만, S3 지원 인스턴스는 종료 할 때까지 기다리지 않아도됩니다. EBS의 경우에도 종료 플래그가 설정되어 있으면 삭제할 수 있지만 EBS의 경우에는 "중지"하고 "종료"할 수 있습니다.

  6. 크기 및 가용성 영역을 선택하십시오. 어떤 종류의 이중화를 설정하려는 경우 영역이 중요합니다. MySQL과 마스터 슬레이브 설정이있는 것처럼 아마존은 하나의 영역에 마스터를두고 다른 영역에는 슬레이브를 배치합니다. 아마존은 한 영역으로 격리 된 문제를 겪고 있습니다. 그러나이 일반적인 목적을 위해, 그것에 대해 걱정하지 마십시오.

  7. 고급 인스턴스 옵션. 이 모든 것을 홀로 남겨두면 가장 좋을 것입니다. 여기에있는 작은 것들 중 일부는 나중에 종단 보호와 같이 설정할 수 있습니다.

  8. 이름입니다. 도대체 무엇이.

  9. SSH 키를 만듭니다. 앞으로도. Amazon 서버에 로그인하는 유일한 방법은 할당 한 SSH 키를 사용하는 것입니다. 사용자 이름이나 암호가 없습니다.

  10. 보안 그룹. 여기서 당신이 잘 빠져 나올 수있는 곳입니다. # 5. 그러나 일반 보안 그룹 호출 foo를 작성하거나 시작하려는 포트를 추가하는 것으로 시작해야합니다. 그래서 당신이 그것을하고 싶다고 생각한다면, 당신이하는 것으로 가정하고, 22 번을 열면됩니다. 웹용으로 사용하고 싶다면 80과 8080을 열어주세요. 그러나 조심하십시오. 나는 보통 나중에 SSH 포트를 무작위로 바꾼다. 그리고 그것에 0.0.0.0/0을 두는 대신에, 나는 개인 IP를 넣는다. 그러나 당신이 신경 쓰지 않는다면 0.0.0.0/0을 넣고 그 나쁜 아이를 세상에 열어 놓으십시오.

그러면 부팅됩니다. 모든 것이 예정대로 진행되는 한.

이제 로그인 할 수 있습니다. 그냥 ssh -i thekey.pem thenwholehostname

도움이 되길 바랍니다.

사용할 수있는 전체 무료 티어가 있습니다. http://aws.amazon.com/free/

확인해보세요. 내가 그걸 가지고 노는 동안 나는 그것을 사용할 것이다.

나는 메모리에서 모든 것을했기 때문에 나는 벗어날 수있었습니다. ;)

1

chantheman이 수동으로 수행하려는 경우 위대한 튜토리얼을 제공했습니다. 대안을 찾고 있다면 클라우드 관리 플랫폼과 같은 타사 솔루션을 사용해 EC2 인스턴스를 설정하고 응용 프로그램을보다 쉽게 ​​배포 할 수 있습니다. Chantheman의 튜토리얼에서 AMI 공급자로 언급되었던 RightScale도 그 중 하나이지만 enStratus와 Scalr도 볼 수 있습니다 (면책 조항 : 내가 거기서 일함). 사용자를 대신하여 API 호출을 할 수 있도록 AWS 자격 증명을 제공해야합니다.

클라우드 관리 소프트웨어는 일부 미리 구성된 AMI (Scalr에서 우리는 역할이라고 부름)를 제공하고 응용 프로그램 배포 프레임 워크를 제공합니다 (이 블로그 게시물은 http://scalr.net/blog/announcements/deployments/에 대해 작성했습니다). 따라서 2-10 단계를 더 빨리 수행 할 것입니다.

예산이 부족한 경우 RightScale과 enStratus는 무료 계정이지만 Scalr은 오픈 소스이며 Apache 2 라이센스 하에서 사용 가능합니다.

0

또한 Ubuntu Juju 배포 옵션을 확인해야합니다.

0 레일 매력에 레일 응용 프로그램 루비의 https://juju.ubuntu.com/docs/howto-rails.html

기본 사용법

을 배포 주주를 사용하여 아마존 웹 서비스

https://juju.ubuntu.com/docs/getting-started.html

에 대한 구성

이제

juju deploy postgresql 
juju add-relation postgresql:db myapp 

: 데이터베이스를

juju deploy --config sample-app.yaml rails myapp 
juju deploy haproxy 
juju add-relation haproxy myapp 

배포와 관련 :

는 응용 프로그램의 이름을 YAML 설정 파일과 그 자식 위치

sample-app.yaml 

sample-app: 
    repo: https://github.com/pavelpachkovskij/sample-rails 

배포 응용 프로그램 및 프록시 만들기 마이그레이션을 실행할 수 있습니다.

juju ssh myapp/0 run rake db:migrate 
Seed database 

juju ssh myapp/0 run rake db:seed 

그리고 마지막으로 프록시 노출 : 수평 단위를 추가하고 제거하여

juju expose haproxy 
Find the instance's public URL from 

juju status haproxy 

규모 : 10 개 노드의 주주 추가 유닛

juju add-unit myapp 
juju remove-unit myapp 

또는 이동 더 큰이 -n10 MyApp를합니다.

관련 문제