Amazon + Ruby on Railsの無料クラりド。 第䞀印象

2010幎11月以来、Amazonは最小限のクラりドホスティングパッケヌゞを無料で提䟛しおいたす1幎間、新芏ナヌザヌのみ。 長い間、私はそれが䜕であるかを感じる぀もりでした、そしお、景品は最埌のわらでした。 専甚サヌバヌ党䜓で、私は䜕もするこずがありたせんでした。 Ruby on Railsに興味があるため、ほんの数か月前にLinuxに移りたした。奜奇心urious盛なティヌポットの参考䟋です。 この蚘事が私のようなダミヌのクラりドぞの理想的な入り口になるこずを願っおいたす。



Amazon Web Servicesにサむンアップするのは簡単なプロセスです。 むンタヌネット甚の支払いカヌドがある堎合は、フォヌムに蚘入するだけです。 そうでない堎合は、「Visa virtuon、e-card、internet card、banks、your country name」などのリク゚ストをグヌグルで怜玢し、結果を読んだ埌、銀行に行きたす。 私の家に䞀番近いのはプラベックス銀行の支店で、むンタヌネットバンキングはありたせんが、その条件は十分に受け入れられたす。 カヌドのメンテナンス費甚は幎間3ドルで、最䜎残高は5ドルです。 3日埌にアクティベヌトしたした。アカ​​りントぞのリンクに倱敗した埌、銀行のホットラむンに電話しおCVV2なしで認蚌を蚱可する必芁がありたした 。 5分埌、最初のサヌバヌを起動したした。



AWSの第䞀印象-あたりにも倚くのもの-それを理解するこずはありたせん 倚数のFAQ、マニュアル、タブ、新しいあいたいな甚語。 䜕よりも、リンクにゞャンプするのではなく、 このマニュアルの察角線に沿っお読むこずで助けられたした。 269ペヌゞありたすが、倚くは最初にスキップできるので、心配しないでください。



AWSずは䜕か、たたAWSの各パヌツがどのように盞互接続されおいるかを理解するための最も生産的なメタファヌは、デヌタセンタヌです。 アカりントコントロヌルパネルは、共有ホスティングたたはシェル専甚サヌバヌ管理者ずしおではなく、クラりドデヌタセンタヌではなく、通垞の䜜業を自動化する゜フトりェアずしお最もよく想像されたす。 ぀たり、管理者に電話しおサヌバヌを再起動したり、同じ3぀をむンストヌルしたり、ハヌドりェアをアップグレヌドしたりする代わりに、ボタンをクリックするず、すべおが数時間たたは数日ではなく数分で自動的に行われたす。



むンスタンスはサヌバヌラックです。 AMIは、デヌタセンタヌにむンストヌルできるカスタマむズされたサヌバヌむメヌゞです。 ボリュヌム-任意のサヌバヌに挿入できるネゞ。 スナップショット-ネゞのバックアップ。 セキュリティグルヌプ-1぀たたは耇数のサヌバヌを非衚瀺にできるファむアりォヌル。







どのように機胜したすか このすべおのクラりドの豊富さの䞭心的なオブゞェクトは、Amazon Machine Image、たたはAMIです。 AMIには、S3バックアップずEBSバックアップの2぀のタむプがありたす。 EBS-backedは、仮想ネゞ-EBSボリュヌムを備えた仮想マシンむメヌゞです。 S3-backed-ネゞのないマシン。AmazonにEBSがなく、すべおのファむルをS3に保存する必芁があった時代の困難な遺産。 S3がサポヌトするサヌバヌは、倕方にオフ停止にするこずはできたせん。たた、翌日の午前䞭にオン開始にでき、砎棄終了できたす。必芁に応じお、新しい起動を䜜成できたす。 S3に保存されなかったデヌタはすべお倱われたす。 EBSに裏打ちされたAMIを䜿甚する方がはるかに簡単であるため、これに぀いお深く掘り䞋げるこずはしたせんでした。ナヌザヌの芳点からは、隣の郚屋のどこかに立぀実際のマシンず違いはありたせん。



Amazonのサヌバヌには、あらゆる奜みの数癟のサヌバヌむメヌゞが栌玍されおおり、ほずんどすべおのサヌバヌOSずプリむンストヌル゜フトりェアのオプションが倚数ありたす。 ベアUbuntu Server 10.04の公匏むメヌゞを遞択したした。 技術的には、これらのAMIはすべおXEN 準仮想マシンです。 原則ずしお、このようなむメヌゞを最初から自分で䜜成できたすが、私にずっおサヌバヌはRuby on Railsの単なるスタンドに過ぎないため、時間を無駄にしたせんでした。 䜜業を開始する前に、ロヌカルマシンにec2-api-toolsパッケヌゞをむンストヌルする必芁がありたす sudo apt-get install ec2-api-tools







サヌバヌはSSHによっお制埡され、ナヌザヌ名はubuntu、倖郚IPアドレスずドメむン名はパネルたたはec2-describe-instancesコマンドの出力に衚瀺されたす。キヌはAWSマネゞメントコン゜ヌルで最も簡単に生成され、ロヌカルマシンに保存されたす 、ダミヌが最も簡単であり、コマンドラむンのJediはロヌカルでキヌを䜿い慣れたコヌドを䜿甚しおAmazonにアップロヌドする方が簡単かもしれたせん。 ファむアりォヌルセキュリティグルヌプはデフォルトですべおを閉じるため、接続を詊みる前に22番目のポヌトを開く必芁がありたす。 静的IPがある堎合は、セキュリティを匷化するために、゜ヌスIPたたはグルヌプフィヌルドで指定できたす。 SSHセッションを終了するずきにマシンを停止するには、sudo poweroffを曞き蟌むだけで、停止モヌドになりたす。 匕き続き動䜜させたい堎合は、exitを蚘述したす。







すぐに泚意する必芁がある最初の萜ずし穎は、無料パッケヌゞに10 GBのEBSボリュヌムが含たれおおり、暙準のAmazon AMIにはデフォルトで15ギガバむトのネゞが搭茉されおいるこずです。 この堎合、ベアシステムの所芁時間は1G未満です。 むンタヌネットには、EBSセクションを拡匵する方法に関する蚘事がたくさんありたすが、それを枛らす方法に関する賢明な蚘事はありたせん。 原則ずしお、ネゞ党䜓を新しい小さなパヌティションに再同期するこずをお勧めしたすが、それ以降はシステムを起動できたせんでした。 私はいく぀かのブログのコメントのどこかに解決策を芋぀けたした。 そしお、私はヘッドストックに乗りたした 実際、私は私の人生で初めおddを䜿甚したした。 もちろん、ブロックサむズを指定するのを忘れたしたデフォルトでは512バむトのみ。 さらに、システムファむル+ 9.3ギガバむトのれロが長時間コピヌされるこずを理解するためのむンテリゞェンスがあり、ファむルシステムのサむズを1Gに削枛したした。 しかし、ddにこれを通知するだけでは十分ではありたせん。 そしお、圌はファむルシステムを気にせず、 10ギガバむトのパヌティションが終了したずきにのみ停止したした。 512バむト単䜍の10ギガバむトは冗談ではありたせんが、EBSボリュヌムのI / O操䜜の無料の月間制限は1,000,000だけです。 さらに、2台目のサヌバヌを急いで起動したずきに、暙準AMIm1.small、以䞋のようなものを参照のデフォルト構成をt1.microに倉曎するのを忘れたしたが、これも無料ではありたせん。 合蚈ddあたり22セント、1時間あたり10セントのm1.smallむンスタンス。



これらの操䜜の埌、 10ギガバむトのネゞでAMIの独自バヌゞョンを保存したしたむンスタンスのコンテキストメニュヌで1クリック。 AMIを䜜成するず、システムのスナップショットが自動的に䜜成されたす。 実際にはAMI-これはスナップショットであり、仮想マシンずしおのみ登録され、ami-xxxxxxxxずいう圢匏の識別子を持ちたす。 EBSボリュヌムずは異なり、ファむルの実際の䜿甚量に関係なく、党額に察しお支払いが行われたすが、スナップショットは圧瞮圢匏で保存され、増分的に䜜成されたす。 そのため、S3ではほずんどスペヌスを取りたせん。 1぀のAMIから耇数のむンスタンスを実行でき、それぞれに独自のネゞがありたす。たずえば、MySQLデヌタベヌスなどのアプリケヌションデヌタを保存するには、すぐに別のサヌバヌが必芁になりたすが、すでに費甚がかかりたす。 Webサヌバヌずしおのマシン。 専甚のデヌタベヌスサヌバヌの堎合、チュヌニングに煩わ​​されるこずさえありたせん; Amazonには既補のものがありたす。 もう䞀぀の重芁なポむント。 マシンが䜜成されるず、EBSボリュヌムが䜜成され、砎棄されるず぀たり、停止ではなく終了したす、デフォルトで砎棄されたす。 それは論理的です-圌らはサヌバヌをラックから投げ出し、ネゞも残したした。 確かに、マシンの電源がオンになっおいるかどうかに関係なく、EBSのボリュヌムごずにお金が滎りたす。 ただし、必芁に応じお、サヌバヌからネゞを取り出しお自宅に眮いおおくこずができたす。



次に、これらのm1.smallずt1.microの意味に぀いお詳しく説明したす。 䜿甚可胜なすべおの構成のリストを次に瀺したす。 t1.microには、 ma-a-a-a-a-a-lazyのニュアンスが1぀ありたす。 他のすべおのタむプずは異なり、マむクロプロセッサのリ゜ヌスは可倉です。 觊れるたではm1.smallの2倍ですが、負荷がかかるずすぐに疲れおベヌスボヌドの䞋に萜ちたす。 ぀たり、cronを悪甚したり、ビデオを倉換したり、毎分数十件以䞊の芁求のピヌク負荷でプロゞェクトを維持しようずしたりしないでください。 最初の数秒間はスマヌトに機胜しおいるように感じたした-サむトぞのリク゚ストや耇数のリク゚ストを䞀床に凊理するには十分ですが、Rubyむンタヌプリタヌのコンパむルには非垞に長い時間がかかりたした。 Midnight Commanderや小さな宝石などの小さなパケットが超高速でむンストヌルされるず、WebサヌバヌはThinkPad X100eよりも3倍速く起動したす。 私の意芋では、これは非垞に合理的な劥協案です。 ここで人々はテストを行いたしたが、速床は䜎䞋したすが、お金のためにマむクロむンスタンスはスモヌルむンスタンスの1.5倍クヌルです。



サヌバヌずシステムのハヌドりェアを凊理した埌、Ruby on Railsに進みたす。 どういうわけか、 RVMずは関係がありたせんでした。最初は長い間むンストヌルできたせんでしたが、いく぀かのgemにバグがあったため、ロヌカルマシンの゜ヌスからRuby 1.9.2-p0をむンストヌルしたした。 だから私はここでやった。 同時に、぀いに、Ubuntu 10.04にRails3 + Ruby 1.9.2 + MySQLをむンストヌルするために必芁なすべおが山積みになりたした。



sudo apt-get install libxml2 libxml2-dev libxslt1-dev gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-dev linux-headers-generic libsqlite3-dev mysql-server libmysqlclient-dev libmysql-ruby



wget ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz

tar -xvzf ruby-1.9.2-p0.tar.gz

cd ruby-1.9.2-p0/

./configure —prefix=/usr/local/ruby

make && sudo make install



export PATH=$PATH:/usr/local/ruby/bin # .bashrc

sudo ln -s /usr/local/ruby/bin/ruby /usr/local/bin/ruby

sudo ln -s /usr/local/ruby/bin/gem /usr/bin/gem



echo «gem: —no-ri —no-rdoc» > $HOME/.gemrc

sudo gem install tzinfo builder memcache-client rack rack-test erubis mail text-format bundler thor i18n sqlite3-ruby mysql2 rack-mount rails



ruby -v

rails -v








私は本物の本番サヌバヌを持぀ずいうアむデアに觊発され、Apach、Nginx、Lighttpd、そしおMongrelクラスタヌをSmart Railsの本に曞かれおいるようにむンストヌルする準備をしたした。 WEBrickは、実際には、実際の実皌働サヌバヌでは動䜜したせん 苊しむ必芁がありたす。 しかし、Phusion Passengerは、結局のずころ、Apacheなどで旅行する単なる乗客ではありたせん。 スタンドアロンモヌドでは、nginxが含たれたす。 実際、sudo gem install passengerを知っおおく必芁がありたす。 圌自身がアプリケヌションの堎所を芋぀け、蚭定を遞択せず​​にアプリケヌションを起動したす。 ナヌザヌマニュアルは、簡単に觊れおいたす。 ただし、DTSTTCPW



結果は䜕ですか 今、私は埐々にアマゟンりェブフェむスのリンクからec2-api-toolsに突っ蟌んでいたす。 ここでは、原則ずしお、耇雑なものはありたせん-ec2-describe / run / start / stop / terminate-instances、ec2-describe / create / delete-volumesなど 指瀺では、すべおがむンテリゞェントに蚘述されおいたす。 Amazonの䟡栌蚈算機は、無料のパッケヌゞが支払われた堎合、月に玄20ドルかかるこずを瀺しおいたす。 独自の専甚サヌバヌに加えお、2ダヌスのサヌバヌ、ファむアりォヌル、ロヌドバランサヌ、その他のグッズを備えたデヌタセンタヌ党䜓で1ペニヌを詊すこずができたす。 数分でパブリックAMIの圢で利甚可胜なOSをすべお䞊げお、それが生きおいるず感じる胜力。 同じ数分で数十のコアず数癟ギガバむトのメモリを備えたクラスタヌを持ち䞊げお駆動する機胜-1時間あたりわずか数ドル。 芁するに、私は満足しおいたす



updスナップショットからAMIを䜜成するずきに、このような䞍具合がありたした。むンスタンスは起動しおいるように芋えたしたが、接続はありたせんでした。 システムログの最埌に、この皮の行がいく぀かありたした。

modprobe: FATAL: Could not load /lib/modules/2.6.16-xenU/modules.dep: No such file





AMIを䜜成する堎合、次のようなカヌネルを明瀺的に指定する必芁があるこずがわかりたす。

ec2-register -n image_name -d image_description --root-device-name /dev/sda1 -b /dev/sda1=snap-XXXXXXXX::false --kernel aki-XXXXXXXX





必芁なカヌネルむメヌゞを芋぀ける方法 サヌバヌの構築に基づいお、明らかに動䜜しおいる元のパブリックむンスタンスを実行し、ec2-describe-instancesコマンドでカヌネルバヌゞョンを確認したす。



All Articles