ラピッドスタディAWS 〜 2.AWS SDK for Ruby で EC2を作成
ラピッドスタディAWSの3稿目の記事です。
前回は、ラピッドスタディAWS 〜 1.AWS SDK for Rubyの導入 - toyamarinyon's diaryでした。
投稿が2週間も空いてしまい、ラピッド感がない。。お盆休みで頑張るぞー。
で、今回は前回導入したAWS SDK for Rubyを使ってElastic Compute Cloud(以下EC2)を作成します。
結論としては、『超カンタン』です。2行でできます。
SecurityGroupも秘密鍵も設定していないので、SSHでログインすることはできません。
それでもManagementConsoleからやるのがバカバカしくなるくらいカンタンでした。
それでは、早速はじめましょう。
(今回はAWS SDK for Ruby の導入は終わっている状態として話を進めます)
EC2について
まずAWSの公式ページの説明を引用します。
Amazon Elastic Compute Cloud(Amazon EC2)とは、クラウド内で規模の変更が可能なコンピュータ処理能力を提供するウェブサービスです。開発者がより簡単にウェブスケールでのコンピュータ作業をできるように設計されています。
うんうん、なるほど。実際に使用するには、以下の手順でいいらしい。
- 即座に稼働を開始するには、事前設定済みの、テンプレート化された Amazon マシンイメージ(AMI)を選択します。または、使用するアプリケーション、ライブラリ、データ、および関連する設定から成る AMI を作成します。
- Amazon EC2 インスタンス上でセキュリティやネットワークアクセスを設定します。
- 目的のインスタンスタイプを選択したら、AMI のインスタンスを必要な数だけ開始し、監視し、終了します。この作業には、ウェブサービス API や、提供されているさまざまな管理ツールを使用できます。
- インスタンスに対して、複数のロケーションで実行したいのか、固定 IP のエンドポイントを利用するのか、または堅牢なブロックストレージを追加するのか等を決定します。
- 利用料金は、インスタンス稼働時間またはデータ転送のような、お客様が実際に消費するリソースに対してのみ発生します。
いろいろと設定することもあるみたいですが、今回は、『事前設定済みのAMIから稼働』をやってみたいと思います。
AWS SDK for Ruby で EC2を作成!
まずは『事前設定済みのAMI』を見つけましょう。
今回はAmazon Linux の最新版を使おうと思うので、MarketPlaceで探します。
(AWS SDK for Rubyで検索できることもわかっているですが、実装が追いついていません。。)
AmazonLinux東京リージョンAMIのimage_id(AMIを一意にするキー)は"ami-173fbf16"でした。
AMIが決まればあと一息!
以下のスクリプトを作成して bundle exec ruby hello_ec2.rb すると、インスタンスが立ち上がります。
$ cat hello_aws.rb require 'aws-sdk' AWS.config( :access_key_id => 'YOUR_ACCESS_KEY_ID', :secret_access_key => 'YOUR_SECRET_ACCESS_KEY', :region => 'ap-northeast-1' ) ec2 = AWS::EC2.new ec2.instances.create(:image_id => "ami-173fbf16", :instance_type => "t1.micro")
instance_typeを指定しないと、デフォルトでm1.smallで立ち上がってしまい課金的に辛いです。
でも、これだけでインスタンスが立ち上がってしましました。。恐るべしAWS...
今回はここまでで、次回は、立ち上げたインスタンスにセキュリティグループとか秘密鍵の設定をしてSSHでログイン出来るようにしたいと思います。