月曜日, 1月 04, 2010

VirtualBoxのゲストOSに割り当てたディスク容量を増やす

まずは年明け一発目なので、新年あけましておめでとうございます!
今年も厳しい1年になりそうですが、負けずにがんばりたいと思います。

さて、本題です。
脱Windowsをめざし、ほとんどのことはMacで行なっていますが、
やはり、Windowsでしか動かないソフトなど必要なケースもあり、
そんな時はMac上でVirtualBoxを使ってWindowsXPを使用しています。

VirtualBoxはもう結構、有名だと思いますがオープンソースの仮想化ソフトです。
窓の杜にも紹介されています。
無償でこれだけのものを使えるので、とってもナイスですね。。。

便利なのはいいのですが、いつの間にかゲストOSであるWindowsXPに割り合てたディスク、Cドライブの空容量がなくなってしまいました。

そこで、今回は、ディスク容量を増やす方法です。

環境は以下になります。

  • ホストOS : Mac OS X 10.6.2
  • ゲストOS : WindowsXP
  • 仮想化ソフト : VirtualBox 3.1.2 r56127
 あと、Windowsのパーティション変更用に以下を使用します。

まずは容量を増やした仮想化イメージを作成します。

  1. VirtualBoxを起動し「新規」を選択します。


  1. 新規仮想マシン作成が始まりますので「次へ」を選択。


  1. 名前を入力します。ここでは「NEWWINXP01」。OSは「Winddows XP」。


  1. 仮想マシンに割り当てるメモリを入力。これはあとでも変更可能です。


  1. 仮想ハードディスク情報の入力開始。「新規ハードディスクの作成」を選択。


  1. 「次へ」を選択。


  1. ハードディスクストレージタイプの入力。私はいつのまにか増加するのは嫌なので「固定サイズのストレージ」を選択。


  1. 次にハードディスクサイズを入力。増加後のサイズを入力します。今回は28G。「次へ」を選択。


  1. 「完了」を選択すると仮想ディスクの作成が始まります。少々時間がかかります。


次にディスク容量を増やす前の仮想化イメージを上記で作成した容量アップディスクイメージにコピーします。

  1. この操作はコマンドで実行します。少し時間がかかります。
    $cd /Users/XXX/Library/VirtualBox/HardDisks ・・・・・・・・・・(a)
    $VBoxManage clonehd WINXP.vdi NEWWINXP001.vdi --existing・・・・(b)
    
    • (a) 仮想ハードディスクイメージのある場所に移動します。
    • (b) コピーを実行します。書式は以下です。 
      「VBoxManage clonehd コピー元イメージ コピー先イメージ --existing」

これで新しい容量アップした仮想イメージの準備ができましたので、起動してみます。

  1. 「起動」を選択します。



  1. 初回起動ウィザードが始まります。「次へ」を選択。


  1. インストールの必要はないですが、インストールする為のデバイスを選択するよう促されます。デフォルトのまま「次へ」を選択。



  1. 「完了」を選択するとゲストOSであるWindowsXPが起動します。


ゲストOSであるWindowsXPが起動しますが、このままだとパーテションが旧イメージのままですのでパーテションを変更します。

  1. ゲストOSであるWindowsXPへパーテション変更ツールである「EASEUS Partition Master」をここからダウンロードしインストールします。
  1. インストールが完了したら「EASEUS Partition Master」を起動します。パーティションサイズは旧仮想イメージのままになっています。


  1. パーティションサイズの境界線をドラッグして、ディスクサイズMAXまで延ばします。


  1. 「Apply」を選択します。


  1. 完了ポップアップが表示されたら完了です。


これで、完了です。
簡単ですね。

Leia Mais…

月曜日, 11月 23, 2009

Eclipse 3.5 Galileo Mac版の日本語化

MacのEclipseを英語版のまま使っていましたが、打ち合わせで使いそうだったので、遅らせばながら日本語化してみました。
せっかくなんで、Eclipseをダウンロードするとこから始めます。

環境は以下になります。

  • Mac OS X 10.6.2
  • Eclipse 3.5Galileo Java EE版

まずはEclipseのダウンロード

  1. ダウンロードページに移動してJava EEの「Mac Cocoa 32bit」を選択します。

  1. ページ遷移後ダウンロードします。 


次に日本語化する為のEclipseプラグインである「Pleiades」をダウンロードします。

  1. ダウンロードページに移動して最新版を選択します。


  1. ページ遷移後ダウンロードします。 

次にEclipseにPleiadesをセットアップします。

  1.  PleiadesのプラグインファイルをEclipseコピーします。具体的には以下になります。
  •  (1)  Pleiadesのfeaturesの中身をEclipseのfeaturesへコピーします。
  •  (2)  Pleiadesのpluginsの中身をEclipseのpluginsへコピーします。
  1. Eclipseのiniファイルを設定します。
  •  (1)  まずはEclipse.appを右クリックし「パッケージの内容を表示」を選択します。

    • (2) iniファイルの場所へ移動します。Contents-MacOSの配下になります。

     
     
    • (3) iniファイルをテキストエディタで開きます。
     
    • (4) 最後の行に以下を追記します。
      「-javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar」
    もし、起動しない場合はiniファイルに -cleanオプションを指定して起動してみて下さい。
    起動したら、-cleanオプションは削除して下さい。
    これで終了です。

    ではEclipseを起動してみましょう。最初は少々時間がかかります。

     

    できました! 簡単ですね。

    Leia Mais…

    月曜日, 11月 02, 2009

    【Amazon RDS】DBインスタンスの作成(コマンド編)

    AmazonクラウドがAmazon Relational Database Serviceを開始しました。
    Amazonのスタートガイドを参考に試してみました。

    私の環境はMac OS X 10.6.1です。
    そこからAmazon Relational Database Serviceへコマンドを使用してインスタンスを作成します。
    その後、テーブルを作成してみます。

    まずはMac(ローカル)側のRDSコマンドの準備です。

    1. JAVAをインストールします。ダウンロードしてインストールして下さい。
      インストール済であれば、次へ進んでください。
    1. Amazon RDS Command Line ToolkitというRDSコマンドをセットアップします。
    • (1) ここからダウンロードし、適当なところへインストールします。
    • (2) ターミナルを起動してコマンドをインストールしたディレクトリへ移動後、lsコマンドでRDSコマンドフォルダであるRDSCli-1.0.001の中身を確認します。
      $ls 
      README.TXT THIRDPARTYLICENSE.TXT credential-file-path.template lib
      RELEASENOTES.TXT bin
    • (3) credential-file-path.templateをコピーしてcredential-file-path.txtを作成します。
      $ls 
      README.TXT THIRDPARTYLICENSE.TXT credential-file-path.template lib
      RELEASENOTES.TXT bin credential-file-path.txt
    • (4) credential-file-path.txtを編集します。
      (編集前)
      AWSAccessKeyId=<Write your AWS access ID> 
      AWSSecretKey=<Write your AWS secret key>
      (編集後)
      AWSAccessKeyId=xxxx 
      AWSSecretKey=yyyy
    • (5) credential-file-path.txtのパーミションを変更します。
      $chmod 600 credential-file-path.txt
      
    1. 次にJAVAとRDSコマンドが動作する為の環境変数を設定します。
      Macの場合、自分のアカウント直下のディレクトリ直下の.bash_profileを編集します。
      以下は編集後の状態です。
      $cat .bash_profile 
      # .bash_profile export AWS_RDS_HOME=~/EC2/RDSCli-1.0.001 ・・・・(a)
      export AWS_CREDENTIAL_FILE=$AWS_RDS_HOME/credential-file-path.txt・・・・(b)
      export PATH=$PATH:$AWS_RDS_HOME/bin・・・・(c)
      export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6./Home・(d)
      • (a) コマンドをインストールしたディレクトリを指定します。
      • (b) credential-fileを指定します。
      • (c) コマンドがどこのディレクトリからでも実行できるようにパスを通します。
      • (d) JAVAをインストールしたディレクトリを指定します。
    1. ターミナルを一旦クローズし再度オープン後、動作確認を行ないます。
    • (1) JAVAが動作するか確認します。
      $ java -version 
      java version "1.6.0_15" Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219) Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)
      インストールしたにもかかわらず、JAVAのバージョンが表示されない場合、「JAVAインストールディレクトリ¥bin」にもパスを通してださい。
    • (2) RDSコマンドが動作するか確認します。
      $ rds -version 
      Relational Database Service CLI version 1.0.001 (API 2009-10-16)
      表示されなければ、環境変数の設定を再度、確認して下さい。
    1. 次にAmazon Relational Database Service上のインスタンスへ接続する為のツールをダウンロードします。AmazonのスタートガイドではMySQLモニタを使用していますが、今回はOracle SQL Developerを使用してみます。(Oracle SQL DeveloperはJDBC経由でOracle、MySQL、SQLServer、Sybaseと接続可能ないろいろと便利なツールです。OTNへの登録が前提になります。)
    • (1) Oracle SQL Developer 1.5.5をここからダウンロードします。
    • (2) ツーループリファレンスー拡張機能でMySQLJDBC Driverを追加してください。

    以上でRDSコマンドの準備ができました。

    さぁRDSコマンドを使ってDBインスタンスの準備を行ないま〜す!

    1. DBインスタンスを作成します。
      次のコマンドを実行します。
      $ rds-create-db-instance --db-instance-identifier myinstance --allocated-storage 20 --db-instance-class db.m1.xlarge --engine MySQL5.1 --master-username mymasteruser --master-user-password mymasterpass --db-name MyDatabase --headers  
      DBINSTANCE DBInstanceId Class Engine Storage Master Username Status Backup Retention
      DBINSTANCE myinstance db.m1.xlarge mysql5.1 20 mymasteruser creating 1 SECGROUP Name Status SECGROUP default active PARAMGRP Group Name Apply Status PARAMGRP default.mysql5.1 in-sync
      パラメータの意味は以下です。
      •  myinstance:DBインスタンス名
      •  20:割当てるストレージサイズ(単位:GByte) 5〜1024GByteの範囲で指定。
      •  db.m1.xlarge:メモリレベル
        • db.m1.small または db.m1.large または db.m1.xlarge または db.m2.2xlargeまたはdb.m2.4xlarge
      •  MySQL5.1:データベースエンジン。現状、MySQL5.1のみです。
      •  mymasteruser:ユーザ名(1〜16文字)
      •  mymasterpass:パスワード(4〜16文字)
      •  MyDatabase:データベース名

      ここで一つ注意ですが「rds-create-db-instance」は、デフォルトで自動バックアップ期間を1日で作成します。
      自動でバックアップしてくれるので、もちろん便利ですが、費用( $0.15 per GB-month)はかかります。
      バックアップが不要の場合は--backup-retention-period 0」というコマンドパラメータを追加して下さい。
    1. インスタンス状況を確認します。StatusがavailableであればOKです。
      表示されているEndpoint Addressは接続時に使用しますのでメモしておいて下さい。
      $ rds-describe-db-instances --headers 
      DBINSTANCE DBInstanceId Created Class Engine Storage Master Username Status Endpoint Address Port AZ Backup Retention
      DBINSTANCE myinstance 2009-10-30T07:43:14.153Z db.m1.xlarge mysql5.1 20 mymasteruser available myinstance.cm43wa9866cy.us-east-1.rds.amazonaws.com 3306 us-east-1d 1 SECGROUP Name Status SECGROUP default active PARAMGRP Group Name Apply Status PARAMGRP default.mysql5.1 in-sync
    1. 次にインスタンスへアクセスを許可するIPアドレスを設定します。
      次のコマンドを実行します。
    2. $ rds-authorize-db-security-group-ingress default --cidr-ip AAA.BBB.CCC.DDD/32 --headers  
      SECGROUP Name Description SECGROUP default default IP-RANGE IP Range Status IP-RANGE AAA.BBB.CCC.DDD/32 authorizing
      パラメータの意味は以下です。
      •  AAA.BBB.CCC.DDD/32:自分のIPアドレスを指定します。自分のIPアドレスはここで確認してください。
      間違えた場合は以下で取り消しできます。
      $rds-revoke-db-security-group-ingress default --cidr-ip AAA.BBB.CCC.DDD/32
      
      以上で準備完了です。

    さぁ、いよいよ、作成したDBインスタンスへアクセスします。
    Oracle SQL Developerを使用します。

    1. 新規接続を作成します。

    1. 以下の接続パラメータを設定し保存します。

      •  接続名:何でもいいです。
      •  ユーザ名:DBインスタンス作成時に指定したユーザ名
      •  パスワード:DBインスタンス作成時に指定したパスワード
      •  ホスト名:インスタンス状況を確認したEndpoint Addressを指定します。
      •  ポート名:3306
    1. 接続します。

    1. 接続できました。インスタンス作成時に指定したデータベース「MyDatabase」が作成されています。

    1. MyDatabaseにbook2というテーブルを作成してみます。
      以下のSQL文を書いてください。
      create table MyDatabase.book2(bookname char(10), kakaku int(10), zaiko int(5));

    1. SQLを実行します。赤枠のスクリプト実行を選択して下さい。

    1. 左の接続ペインのMyDatabaseー表ーbook2を選択して内容を確認してください。

    1. テーブルが出来たのでデータをインサートしてみます。
      以下のSQL文を書いて下さい。
      INSERT MyDatabase.book2 (bookname,kakaku,zaiko) VALUES ('book1',1000,10);

    1. データがインサートされたか確認します。

      あとは、いろいろSQL文を書いて試してみてください。
      ただし、稼働中のままだと料金がかかりますので注意して下さい。
      料金はこちらのPricingを見て下さい。
    1. 料金をおさえる為、スナップショットを保存して終了しておきます。
      $ rds-delete-db-instance myinstance --final-db-snapshot-identifier myfinalsnapshot 
      Once you begin deleting this database, it will no longer be able to accept connections. Are you sure you want to delete this database? [Ny]y
      DBINSTANCE  myinstance  2009-10-30T07:43:14.153Z  db.m1.xlarge mysql5.1  20 mymasteruser  deleting  us-east-1d 1 SECGROUP  default active PARAMGRP  default.mysql5.1 in-sync
      後でスナップショットから新しいインスタンスが作成できます。

    今回、参考したマニュアルは以下です。
    • スタートガイドはここにあります。
    • コマンドマニュアルはここにあります。

    Leia Mais…

    月曜日, 10月 26, 2009

    【Amazon EC2】自前のAMIの作成と保存方法 (Linux系OS編)

    インスタンスに必要なソフトをインストールしカスタマイズした場合、インスタンス終了(Terminate)後、再起動する為には自前のAMIとして保存しておく必要があります。
    今回はその方法です。

    これまでの操作は全て「AWS Management Console」というUIで操作可能でしたが、今回ばかりは、インスタンス上で「Amazon EC2 AMI Tools」というコマンドを実行する必要があります。
    ですので、若干、いろいろと行ないます。

    まずは準備から

    1. インスタンスへのJAVAのセットアップ
      「Amazon EC2 AMI Tools」がJAVAを使用している為、JAVAをインスタンスへインストールします。(手順は『【Amazon EC2】インスタンスへのJAVAのインストール方法』を参照してください。)
    1. 「Amazon EC2 AMI Tools」がインストールされていることをwhichコマンドで確認します。インストールされているディレクトリが表示されればOKです。

      # which ec2-bundle-vol
      /usr/local/bin/ec2-bundle-vol
      私が試したいくつかのAMIでは全てインストール済でした。
      もしもインストールされていない場合、ここからダウンロードしてインストールしてください。そのあと、JAVAと同じようにPATHを通してください。

    1. X.509証明書のAMIバンドルの準備
      自前AMIを作成する際、以下が必要になりますので、/mntへ転送します。
      (転送手順は『【Amazon EC2】SSH経由でのファイル転送方法』を参照してください。)

      • X.509証明書(cert-XXXXXX.pem)
      •  秘密鍵(pk-XXXXXX.pem)

      以上でインスタンス側の準備は終了です。

    1. 自前AMIの保存するS3の準備
      自前AMIの保存先をS3に作成します。保存先はBucket(バケット)と呼ばれるフォルダを作成することになります。S3Foxを使用します。  
      (S3Foxの準備は『【Amazon S3】S3のツールS3Foxのセットアップ方法』を参照してください。)
    • (1) 赤枠の「Create Bucket/Directory」を選択して下さい。



    • (2) Bucketを入力して、OKを選択。名前はあとでどのインスタンスを保存したか、わかりやす名前の方がいいですね。



    • (3) Bucketが作成されました。



    1. 最後に、自分のユーザNOを調べておきます。
    • (1) Your Acount-Account Activityを選択して下さい。



    • (2) Account Numberをメモしておきます。


      以上で、全て準備完了です。


    いよいよ実行です。

    1. 自前AMIのインスタンスをバンドルします。インスタンスログイン後、以下のコマンドを実行して下さい。
      (ログイン手順は『【Amazon EC2】SSH経由でTelnet』を参照してください。)
      少し、時間がかかります。

      cd /mnt
      ec2-bundle-vol -d /mnt --privatekey pk-XXXXXX.pem --cert cert-XXXXXX.pem --user XXXX-YYYY-ZZZZ -r i386

      それぞれのパラメータの意味は以下になります。
      • pk-XXXXXX.pem:準備3で転送した秘密鍵名を指定します。
      • cert-XXXXXX.pem:準備3で転送したX.509証明書名を指定します。
      • XXXX-YYYY-ZZZZ:準備5で調べたユーザNOを指定します。
      • i386:32ビット時;i386、64ビット時: x86_64 と指定します。

      (実行状況)
      Copying / into the image file /mnt/image...
      Excluding:
      /sys
      /proc
      /sys/fs/fuse/connections
      /dev/pts
      /proc/sys/fs/binfmt_misc
      /dev
      /media
      /mnt
      /proc
      /sys
      /mnt/image
      /mnt/img-mnt
      1+0 records in
      1+0 records out
      1048576 bytes (1.0 MB) copied, 0.0018 s, 583 MB/s
      mke2fs 1.40.4 (31-Dec-2007)
      NOTE: rsync with preservation of extended file attributes failed. Retrying rsync
      without attempting to preserve extended file attributes...
      NOTE: rsync seemed successful but exited with error code 23. This probably means
      that your version of rsync was built against a kernel with HAVE_LUTIMES defined,
      although the current kernel was not built with this option enabled. The bundling
      process will thus ignore the error and continue bundling.  If bundling completes
      successfully, your image should be perfectly usable. We, however, recommend that
      you install a version of rsync that handles this situation more elegantly.
      Bundling image file...
      Splitting /mnt/image.tar.gz.enc...
      Created image.part.00
      Created image.part.01
      Created image.part.02
      Created image.part.03
      Created image.part.04
      Created image.part.05
      Created image.part.06
      Created image.part.07
      Created image.part.08
      Created image.part.09
      Created image.part.10
      Created image.part.11
      Created image.part.12
      Created image.part.13
      Created image.part.14
      Created image.part.15
      Created image.part.16
      Created image.part.17
      Created image.part.18
      Created image.part.19
      Created image.part.20
      Created image.part.21
      Created image.part.22
      Created image.part.23
      Created image.part.24
      Created image.part.25
      Created image.part.26
      Created image.part.27
      Created image.part.28
      Created image.part.29
      Created image.part.30
      Created image.part.31
      Created image.part.32
      Generating digests for each part...
      Digests generated.
      Unable to read instance meta-data for product-codes
      Creating bundle manifest...
      ec2-bundle-vol complete.
    1. 次に出来上がったAMIイメージをS3へ転送します。
      ec2-upload-bundle --bucket fedora0001 --manifest image.manifest.xml --access-key XXXXXXXX --secret-key YYYYYYYY
      

      それぞれのパラメータの意味は以下になります。
      ・fedora0001:S3にさきほど作成したBucket名を指定します。
      ・image.manifest.xml:S3上に作成されるマニュフェストファイル名を指定します。何でもいいです。
      ・XXXXXXXX:『S3のツールS3Foxのセットアップ方法』で調べたAccess Key ID。
      ・YYYYYYYY:『S3のツールS3Foxのセットアップ方法』で調べたSecret Access Key。

      (実行状況)
      Uploading bundled image parts to the S3 bucket fedora0001 ...
      Uploaded image.part.00
      Uploaded image.part.01
      Uploaded image.part.02
      Uploaded image.part.03
      Uploaded image.part.04
      Uploaded image.part.05
      Uploaded image.part.06
      Uploaded image.part.07
      Uploaded image.part.08
      Uploaded image.part.09
      Uploaded image.part.10
      Uploaded image.part.11
      Uploaded image.part.12
      Uploaded image.part.13
      Uploaded image.part.14
      Uploaded image.part.15
      Uploaded image.part.16
      Uploaded image.part.17
      Uploaded image.part.18
      Uploaded image.part.19
      Uploaded image.part.20
      Uploaded image.part.21
      Uploaded image.part.22
      Uploaded image.part.23
      Uploaded image.part.24
      Uploaded image.part.25
      Uploaded image.part.26
      Uploaded image.part.27
      Uploaded image.part.28
      Uploaded image.part.29
      Uploaded image.part.30
      Uploaded image.part.31
      Uploaded image.part.32
      Uploading manifest ...
      Uploaded manifest.
      Bundle upload completed.
    1. S3FoxでS3に転送されたか確認します。

    1. 今度はAWS Management ConsoleでS3に作成されたAMIイメージを登録します。
    • (1) 左メニューのAMIsを選択しRegister New AMIを選択します。


    • (2)先ほどS3に作成したBucket/マニュフェストファイル名を指定しRegisterを選択します。


    • (3)登録が完了された旨、表示されたらCloseを選択します。

    • (4)自前AMIが登録されました。



      ちなみ、De-registerで登録を削除できます。


    1. 登録されたAMIを選択しLaunchを選択することで起動できます。


    以上になります。ちょっと今回はたいへんでした。


    今回の手順はAmazonにもマニュアルがあります。以下を参考にしてください。

    ◯AMI関連の操作マニュアルはここにあります。
    メニューからたどる場合、以下になります。
    ResourcesーDocumentationーAmazon Elastic Compute CloudーGetting Started Guide

    次に左メニューを以下のようにたどると参照できます。
    Getting Started with the Command Line ToolsーRunning an InstanceーLinux and UNIXーBundling an AMI

    ◯「Amazon EC2 AMI Tools」のコマンドマニュアルはここにあります。
    メニューからたどる場合、以下になります。ResourcesーDocumentationーAmazon Elastic Compute CloudーCommand Line Reference

    次に左メニューを以下のようにたどると参照できます。
    AMI Tools Referenceーec2-bundle-vol
    AMI Tools Referenceーec2-upload-bundle

    Leia Mais…