2012年8月26日日曜日

"CloudFormation"で"VPC"から"VPN Connection"まで作成

スズキです。

CDPネタです。今回の対象は「Stack Deployment パターン」です。


このパターンの「その他」に
またこのパターンは、単にシステムをコピーするだけでなく、
クラシックなEC2環境からユーザー企業と専用ネットワークでつながる
仮想プライベートクラウド「VPC(Virtual Private Cloud)」環境への 移行時にも適用できる。
と、VPCのCloudFormationでVPCも構築ができることが記載されています。

実際に"VPC"の構築から"VPN Connection"の作成までためしてみました。
といっても下記のテンプレートでスタックを作成するだけです。
{
  "AWSTemplateFormatVersion" : "2010-09-09",

  "Description" : "VPNConnection",

  "Mappings" : {

    "RegionMap" : {
      "ap-southeast-1" : {
        "AMI" : "ami-72621c20"
      }
    }

  },

  "Resources" : {

    "EC2VPC" : {
      "Type"       : "AWS::EC2::VPC",
      "Properties" : {
        "CidrBlock" : "10.0.0.0/16"
      }
    },

    "EC2VPNGateway" : {
      "Type" : "AWS::EC2::VPNGateway",
      "Properties" : {
        "Type" : "ipsec.1"
      }
    },

    "EC2VPCGatewayAttachment" : {
      "Type" : "AWS::EC2::VPCGatewayAttachment",
      "Properties" : {
        "VpcId"        : {"Ref" : "EC2VPC"},
        "VpnGatewayId" : {"Ref" : "EC2VPNGateway"}
      }
    },

    "EC2CustomerGateway" : {
      "Type" : "AWS::EC2::CustomerGateway",
      "Properties" : {
        "Type"      : "ipsec.1",
        "BgpAsn"    : "65000",  
        "IpAddress" : "xxx.xxx.xxx.xxx"
      }
    },

    "EC2VPNConnection" : {
      "Type" : "AWS::EC2::VPNConnection",
      "Properties" : {
        "Type"              : "ipsec.1",
        "CustomerGatewayId" : {"Ref" : "EC2CustomerGateway"},
        "VpnGatewayId"      : {"Ref" : "EC2VPNGateway"}
      }
    }

  },

  "Outputs" : {
  }

}

注意点は下記となります。
  • Mappingsには一つ以上のマッピングテーブルが必要
    (関係ないAMIのマッピングテーブルを定義)

  • VPCGatewayAttachmentのプロパティであるIpAddressが
    ドキュメントにはIPAddressと記載されている

  • CustomerGatewayのプロパティであるVpnGatewayIdが
    ドキュメントにはVPNGatewayIDと記載されている

  • VPNConnectionのプロパティであるCustomerGatewayIdと
    VpnGatewayIdがドキュメントにはCustomerGatewayIDと
    VPNGatewayIdと記載されている
(ドキュメントはそのうち訂正されると思います)

そして、AWSマネジメントコンソールにて上記のテンプレートでスタックを作成します。





すると下記のように、AWSリソースの作成が開始されます。


下記のようになったら、作成完了です。


作成ログはEventタブから確認できます。


今回は"VPN Connenction"作成までの最低限のリソースで試しましたが、
当然、サブネットやルーティングテーブルの設定も可能です。

テンプレート作るの、少し大変...
--------
http://www.suz-lab.com/

2012年8月20日月曜日

EIP付け替えたときのSSH接続のなりすまし警告対策

スズキです。

CDPネタです。今回の対象は「Floating IPパターン」です。


このパターンの「注意点」に
該当EIPにSSH接続している場合は同じIPでサーバが入れ替わることになるので、なりすましの可能性が警告されログインできないことがあります。
といった記載があります。

具体的にはEIPを別のEC2に付け替えるとSSH接続時に下記のように
サーバが今までのものと違うため警告が表示されログインできな状態になります。
$ ssh -i suz-lab_ap-northeast-1.pem -l root xxx.xxx.xxx.xxx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/suzuki/.ssh/known_hosts to get rid of this message.
Offending key in /Users/suzuki/.ssh/known_hosts:1
RSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.
この警告を出ないようにするには、".ssh/"ディレクトリにある"known_hosts"ファイルの
該当項目を削除する必要があるのですが、下記のように"ssh-keygen"で可能です。
$ ssh-keygen -R xxx.xxx.xxx.xxx
/Users/suzuki/.ssh/known_hosts updated.
Original contents retained as /Users/suzuki/.ssh/known_hosts.old
再度SSHでログインを試みると、今度は下記のように無事ログインできます。
$ ssh -i suz-lab_ap-northeast-1.pem -l root xxx.xxx.xxx.xxx
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.xxx.xxx.xxx' (RSA) to the list of known hosts.
#

CDPネタも久しぶりだ...
--------
http://www.suz-lab.com

2012年8月14日火曜日

CentOS(6)にTomcat(6)とOpenJDK(1.6)をインストール

スズキです。

CentOS6でOpenJDK(1.6)で起動するTomcat(6)のインストールです。

Tomcat(6)は下記のように簡単にインストールできます。
# yum -y install tomcat6

当然Javaも依存パッケージとしてインストールされるのですが、
インストールされるJavaは下記となります。
# java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.6 20120305 (Red Hat 4.4.6-4)

Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

これは、パッケージとしては"java-1.5.0-gcj"がインストールされているからです。

念のため下記のように管理アプリケーションをインストールして確認すると
# yum -y install tomcat6-admin-webapps
# /etc/init.d/tomcat6 start
次のようにやはり上記のJavaでTomcatが起動されていることがわかります。


※ログインするためには"tomcat-user.xml"の編集が必要です

次に、このJavaをOpenJDK(1.6)に変更します。といっても下記のみです。
# yum -y install java-1.6.0-openjdk

再度、下記のようにJavaコマンドを実行すると、
今度はOpenJDKのものにかわっているのがわかります。
# java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

さらにTomcatを再起動して管理アプリケーションで確認すると、
TomcatもOpenJDKのもので起動されていることがわかります。


つまり"yum -y install java-1.6.0-openjdk"のみで実現できることになります。

久しぶりにブログ書いた...
--------
http://www.suz-lab.com/