[Amazon] EC2 リモートシェルを Cygwin で使う方法
Windows 環境で EC2 リモートシェルを使うにはPutty SSH を入れればイケるやん!という方法以外に普段からシェルを使いこなせることを必要以上にアピールしたい方向けです。
多分、そんなアピールは必要ない。
ですが、もうキャプチャやログを記録したので公開します。
■まず EC2 アカウントを取得してることが前提。
EC2 だけでなく AWS (amazon web service) 利用先 ⇒ http://aws.amazon.com/jp/
サインアップするにはクレジットカードと海外から着信を受けても問題がない電話番号(携帯でも OK です。ちゃんとかかってきます)が必要。
AWS コンソールログイン先 ⇒ https://console.aws.amazon.com/ec2/home
—
■おっと、Cygwin の準備を忘れていました。
$mkdir /cygdrive/c/EC2
ローカルドライブに EC2 ディレクトリを作成しておきましょう。
—
■EC2 タブでキーペアを作る。
My Resources の [Key Pair]をクリックすれば作成可能ですので、それをローカルドライブ C:EC2 へ保存します。
※黒で隠したところには実数が表示されます。Elastic IPs が 0 であっても、EBS Volumes が 0 でなければストレージで課金されたまんまかよ!と憤慨することがあるリソースペインです。
(*.pem ファイルをダウンロードするので予めダウンロード許可サイトなどの指定を必要に応じ行ってください)
—
■インスタンス環境を選びましょう。コストがかかるので安そうな環境で問題ありません。
ここではこのブログ用に
Amazon Linux AMI Base 1.0, EBS boot, 64-bit architecture with Amazon EC2 AMI Tools. Root Device Size: 10 GiB
を、選択しました。
—
■インスタンスタイプは一番安いので構いません。 Micro にします。
—
■アドバンスド・インスタンスオプションは選択しません。
—
■Name 設定は何も入力しません。
Name / DNS などタグ付ができますが、今回はスルーします。
—
■キーペアを指定します。
ここで作成も出来ますが実際の現場運用を考えれば、予め作成したものを用いるのが自然です。
キーペア無しにすることも出来ますが非推奨です。
—
■アプリケーション・ファイアウォールの設定します。IPtables よりも単純な定義しかできません。
—
■設定内容レビューで確認します。
—
■ インスタンス作成完了。
必要に応じて RDB、EBSボリューム、Elastic IPs 指定を行いますがここでは省略。
===
■お待ちかね!Cygwin の出番です。
カレントディレクトリ /cygdrive/c/EC2 にして、SSH 接続です。ここでは hoge1.pem を使うことを前提に。
$ ssh -i hoge1.pem ec2-user@ec2-175-41-176-243.ap-southeast-1.compute.amazonaws.com
※SSH では root ログインが認められていないので ec2-user で接続です。ホスト情報は、みなさんのインスタンス情報に合わせてください。
ログインに成功すると・・・
__| __|_ ) Amazon Linux AMI
_| ( / Beta
___|___|___|
See /etc/image-release-notes for latest release notes. 🙂
素敵なログインバナーが表示されますよ!
—
■まずはイケてないローカル時間を UTC から JST へ変更しましょう。
[ec2-user@ip-10-130-58-33 ~]$ sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime
—
■環境変数も使いやすいように修正しましょう。修正後の内容を set でお見せします。(参考まで)
[ec2-user@ip-10-130-58-33 ~]$ set
AWS_AUTO_SCALING_HOME=/opt/aws/apitools/as
AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon
AWS_ELB_HOME=/opt/aws/apitools/elb
AWS_IAM_HOME=/opt/aws/apitools/iam
AWS_PATH=/opt/aws
AWS_RDS_HOME=/opt/aws/apitools/rds
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]=”3″ [1]=”2″ [2]=”25″ [3]=”1″ [4]=”release” [5]=”i386-redhat-linux-gnu”)
BASH_VERSION=’3.2.25(1)-release’
COLORS=/etc/DIR_COLORS
COLUMNS=120
DIRSTACK=()
EC2_AMITOOL_HOME=/opt/aws/amitools/ec2
EC2_HOME=/opt/aws/apitools/ec2
EUID=222
GROUPS=()
G_BROKEN_FILENAMES=1
HISTFILE=/home/ec2-user/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/home/ec2-user
HOSTNAME=ip-10-130-58-33
HOSTTYPE=i386
IFS=$’ tn’
INPUTRC=/etc/inputrc
JAVA_HOME=/usr/lib/jvm/jre
LANG=ja_JP.UTF8
LESSOPEN=’|/usr/bin/lesspipe.sh %s’
LINES=41
LOGNAME=ec2-user
LS_COLORS=
MACHTYPE=i386-redhat-linux-gnu
MAIL=/var/spool/mail/ec2-user
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/home/ec2-user/bin
PIPESTATUS=([0]=”0″)
PPID=948
PS1='[u@h W]$ ‘
PS2=’> ‘
PS4=’+ ‘
PWD=/home/ec2-user
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_CLIENT=’114.22.22.84 51753 22′
SSH_CONNECTION=’114.22.22.84 51753 10.130.58.33 22’
SSH_TTY=/dev/pts/0
TERM=cygwin
UID=222
USER=ec2-user
_=LANG
aws_product=iam
consoletype=pty
tmpid=222
—
■課金の心配ありますよね?いま本当にMicroサイズなのかどうか?
特にディスク・・・。
[ec2-user@ip-10-130-58-33 ~]$ df -k
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/xvda1 10321208 876788 9339564 9% /
tmpfs 308832 0 308832 0% /dev/shm
大丈夫ですね!
—
■どんな環境なんだろう?
[ec2-user@ip-10-130-58-33 ~]$ uname -a
Linux ip-10-130-58-33 2.6.34.7-56.40.amzn1.i686 #1 SMP Fri Oct 22 18:48:33 UTC 2010 i686 i686 i386 GNU/Linux
—
この環境でアプリを組んでもいいし、XEN で動作するイメージを持ってきてもいいし。
一つ大事な事。
shutdown -h now は通用しません。
AWS コンソール上からインスタンス、IP、ボリューム、RDB、MAPの停止、ターミネイトが必要です。
ではでは素敵な Cygwin で AWS Life を!