Amazon EC2とPostgreSQL 9.0

2011年10月18日(火)
宮原 徹(みやはら とおる)

インスタンスへの接続

インスタンスが起動したら、SSHで接続する。

SSHクライアントの確認

使用するクライアント環境によって秘密鍵の取り扱いが異なるので、確認しておこう。

・OpenSSHが使える環境

EC2で作成した公開鍵・秘密鍵のペアはOpenSSH形式なので、LinuxやMac OS Xであればダウンロードした秘密鍵をそのまま使用できる。筆者のクライアント環境はMac OS Xなので、そのままEC2のインスタンスにアクセスすることができた。作業が行いやすいよう、Windowsで動作するTera Term ProをSSHに対応させたttsshもOpenSSHの秘密鍵を使用できるようだ。

・PuTTY

Windowsでよく使用されているPuTTYはOpenSSHの秘密鍵には対応していない。付属のputtygenを使ってOpenSSHの秘密鍵(拡張子.pem)を読み込み、PuTTYが使用できる秘密鍵の形式(拡張子.ppk)に変換して欲しい。

今回は以下の例のように、ダウンロードした秘密鍵を~/.sshディレクトリに格納している。必ずパーミッションを600に設定しておく。

秘密鍵の配置変更例

  $ mkdir ~/.ssh
  $ chmod 700 ~/.ssh
  $ mv ~/Downloads/kasouka.pem ~/.ssh/
  $ chmod 600 ~/.ssh/kasouka.pem
  $ ls -l ~/.ssh/kasouka.pem 
  -rw-------@ 1 tmiyahar  staff  1692 10 11 12:06 /Users/tmiyahar/.ssh/kasouka.pem

インスタンス情報の取得と接続

EC2のインスタンスは起動する毎に動的にグローバルIPアドレスが取得されるので、AWS Management Consoleでインスタンスの情報を取得する。

画面左のNavigationから「Instances」をクリックして、インスタンスのリストを表示する。

図13:インスタンス一覧(クリックで拡大)

My Instancesに作成したインスタンスが表示されたら選択し、右クリックするか、Instance Actionsから「Instance Management」→「Connect」を選択する。ダイアログが表示され、SSHで接続するためのコマンドライン例が表示されるので、コピー&ペーストで端末のコマンドライン部分に張り付けると簡単にインスタンスに接続できる。

図14:インスタンス接続情報(クリックで拡大)

sshコマンドの-iオプションで使用する秘密鍵を指定している。デフォルトではカレントディレクトリに置いていることになっているので、適宜変更を加えておく。

インスタンスへの接続例

  $ ssh -i ~/.ssh/kasouka.pem ec2-user@ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com
  The authenticity of host 'ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com (xx.xx.xx.xx)' can't be established.
  RSA key fingerprint is 6b:eb:af:3f:63:33:d8:2a:c4:1c:df:63:79:87:7e:29.
  Are you sure you want to continue connecting (yes/no)? yes
  Warning: Permanently added 'ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com,xx.xx.xx.xx' (RSA) to the list of known hosts.
  Last login: Tue Oct 11 05:21:11 2011 from xx.xx.xx.jp
 __|  __|_  )
  _|  (     /   Amazon Linux AMI
  ___|\___|___|
See /usr/share/doc/system-release/ for latest release notes.
  No packages needed for security; 10 packages available
  [ec2-user@ip-xx-xx-xx-xx ~]$ uname -a
  Linux ip-10-146-89-114 2.6.35.14-95.38.amzn1.i686 #1 SMP Thu Aug 25 17:11:35 UTC 2011 i686 i686 i386 GNU/Linux

root権限の取得

上記の接続方法では一般ユーザーec2-userでログインしている。管理を行うにはroot権限が必要だ。ユーザーec2-userはあらかじめsudoコマンドを使ってroot権限による管理作業が行えるように設定されている。

/etc/sudoersの記述

  $ sudo visudo
  (略)
  ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
  #includedir /etc/sudoers.d
  ec2-user ALL = NOPASSWD: ALL
  ---

sudoコマンドですべてのコマンドをroot権限で実行できるようになっていますが、もしユーザーrootに切り替えて作業を行いたい場合には-sオプションを付けてsudoコマンドを実行する。

sudo -sによるユーザーrootへの切り替え

  $ sudo -s
  # id
  uid=0(root) gid=0(root) 所属グループ=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

日本語環境の設定

作成したばかりのインスタンスはロケールの設定が英語設定になっているので、日本語環境に設定を変更しておく。設定の情報は/etc/sysconfig/i18nに記述されている。以下のようにLANG設定を変更する。

/etc/sysconfig/i18nの変更内容

  #LANG="en_US.UTF-8"
  LANG="ja_JP.UTF-8"

設定はログインし直すと適用される。

以上でAmazon EC2インスタンスの作成から接続までが完了した。次回は、インスタンスにPostgreSQL 9.0をインストールする。

著者
宮原 徹(みやはら とおる)
日本仮想化技術株式会社 代表取締役社長兼CEO

日本オラクルでLinux版Oracleのマーケティングに従事後、2001年に(株)びぎねっとを設立し、Linuxをはじめとするオープンソースの普及活動を積極的に行い、IPA「2008年度 OSS貢献者賞」を受賞。2006年に日本仮想化技術(株)を設立し、仮想化技術に関する情報発信とコンサルティングを行う。現在は主にエンタープライズ分野におけるプライベートクラウド構築や自動化、CI/CDなどの活用について調査・研究を行っている。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています