前回までのあらすじ

みなさん、こんにちは。若井さんが出来先輩の助けを借りながら、アマゾン ウェブ サービス(以下、AWS)上でOracle DBを作成しようと言うこの企画ですが、3回目となりました。前回までに、AWSにアカウントの作成、EC2を使ったAWS上での仮想サーバーの作成が完了しました。今回はこの仮想サーバーにログインし操作を行っていきます。

  • 若井 あらた (わかいあらた)
    新人エンジニアで、今回データベース課に配属となった。本物語の主人公。



  • 出来 益代 (でき ますよ)
    中堅エンジニアで、データベース課に所属する。年齢は不詳。仕事熱心で、比較的後輩の面倒見もよいお姉さまタイプ。



※ この物語はフィクションであり、登場する団体・人物などの名称はすべて架空のものです

EC2へログインしてみる。

若井 「出来さん、ようやく、仮想サーバーが完成しましたね!」
出来 「そうね。」
若井 「じゃあ、早速この仮想サーバーにログインしてみるのですね!」
出来 「そうね。」
若井 「じゃあ、ログインしてみましょう」
出来 「そうね。よろしくお願いするわ。」
若井 「???あれ、方法のレクチャーは。。。」
出来 「ごめんなさいね。実はこの後に急な打ち合わせが入ってしまったの。だから、少しだけ、自分一人で作業を進めてくれるかしら。」
若井 「え。僕一人でですか。。。」
出来 「そうね。接続の方法はSSHで、さっきダウンロードした『test_key.pem』を使って、接続するのよ。EC2では最初『ec2-user』で接続できるの。これで、CUIでのログインはできる様になるわ。でも、Oracleのインストールの時にGUIでインストールする予定だから、vncの設定もしておいて。」
若井 「ssh。。。vnc。。。」
出来 「じゃあ、後はよろしく。ごめんね。」

出来は足早に会議室へ向かっていった。

若井 「行ってしまった。。。一人で作業か。。。まぁ、やってみるか。」
若井 「そもそも、この企画、僕が出来さんの助けを借りながら、AWSでOracleを作るという企画なはずだけど、大丈夫かな。。。(ボソ)」

という事で、若井くん一人で作業を進めることになりました。

若井 「まずは、CUIでのログインからやってみるか!sshで『test_key.pem』を使って接続と言っていたなぁ。sshから調べてみるか!」

若井 がインターネットでsshを調べます。

(カタカタカタカタ・・・・・ターン。)

若井 「なるほど。こんなかんじかなぁ。」

ssh : Secure SHell
 ネットワークを介して、別のマシンへログインしたり、コマンド実行、ファイル転送などをする為のプログラム。ネットワーク上に流れるデータは、暗号化される。
 WindowsからLinuxなどに接続したい場合、sshクライアントなどを利用する。

若井 「sshクライアント。。。か、今僕の端末に『TeraTerm』が入っているから、これで、sshでの接続はできそうだな。やってみるか!」

TeraTermのアイコンをダブルクリックして、画面を開く。

若井 「・・・。そう言えば、自分で作ったマシンのIPアドレスって何番だろう。んー。一旦『AWS マネジメント コンソール』を開いてみよう。EC2を選んで、Instancesからさっき作った仮想マシンを選択して…おっ!『Description』タグの中に『Public IP』の記載がある!ここに接続すればいいのかな?」

若井 「もう一回『TeraTerm』を開いて。」

若井 「sshが選ばれているから、『OK』を押す。」

若井 「お、画面が次に動いたぞ!ユーザー名とパスワード。。。ユーザー名は出来さんが『ec2-user』と言っていたな。前に『key pair』の設定で秘密鍵をダウンロードしてきたから、『RSA/DSA鍵を使う』でダウンロードした鍵を設定してっと。」

若井 「『OK』を押す。」

若井 「お!ログインできた!これで一旦はCUIのログインは完了だな。」

若井 「次はGUIで操作ができるように設定するか。出来 さんはvncって言っていたな。また、少し調べてみるか。」

(カタカタカタカタ・・・・・ターン。)

若井 「なるほど、こんな感じなのか。」

vnc : Virtual Network Computing
 ネットワークを介して、コンピュータを遠隔操作するリモートデスクトップソフト。サーバーソフトとクライアントソフト(ビューア)が存在する。操作される側でサーバーソフトを起動し、遠隔操作する側でクライアントソフトを起動させて、接続する。

若井 「EC2側でサーバーソフトの設定が必要そうだなぁ。まずは『root』ユーザーで接続出来 るようにするか。『root』ユーザーのパスワードがわからないから、変更しちゃおう。確か、前のプロジェクトでLinuxを操作した時に、『sudo』ってコマンドで『root』ユーザーじゃなくても、『root』ユーザーの権限でコマンド実行ができたなぁ。『ec2-user』にも設定されていれば変更できるけど、試してみよう。」

[ec2-user@ip-172-31-18-156 ~]$ sudo -u root passwd
Changing password for user root.
New password : 
Retype new password : 
passwd :  all authentication tokens updated successfully.
[ec2-user@ip-172-31-18-156 ~]$

若井 「お!出来たぞ!これでよし!」
若井 「次は、vncのサーバーソフトがこのマシンにインストールされているか調べてみるか。どうやって調べるのかな。ちょっと調べてみよう。」

(カタカタカタカタ・・・・・ターン。)

若井 「yumコマンドかー。どうやら、『tigervnc-server』と言う、サーバーソフトを使うみたいだけど、こいつが、インストールされているか確認すればいいんだな。よし!『root』ユーザーで接続して…」

[ec2-user@ip-172-31-18-156 ~]$ su - root
Password : 
[root@ip-172-31-18-156 ~]# yum list installed | grep vnc
[root@ip-172-31-18-156 ~]#

若井 「何も表示されない。っと言うことは、インストールされてないのか。じゃあ、インストールするか。同じyumコマンドを使って。」

[root@ip-172-31-18-156 ~]# yum install tigervnc-server.x86_64
~~~~~~~~~~~標準出力割愛~~~~~~~~~~~
Is this ok [y/N] :  y
~~~~~~~~~~~標準出力割愛~~~~~~~~~~~
Complete!
[root@ip-172-31-18-156 ~]#

若井 「インストールが出来たぞ!次はvncサーバーソフトの設定だな。設定が複雑そうだから、ちょっと設定する内容をまとめてみよう。」

  1. vnc同様に画像などを送付できるように、『X Window System』、『Desktop』をインストールする。
  2. vncのサービスを起動させるユーザーで、vncでログインする時のパスワードの設定
  3. vncserverの起動
  4. vncserverの停止
  5. /etc/sysconfig/vncserversで設定を変更する
  6. ファイアーウォール(iptables)の設定を無効化する
  7. vncserverの起動

若井 「こんな感じかな。やってみるか。」

1. vnc同様に画像などを送付できるように、『X Window System』、『Desktop』をインストールする。

[root@ip-172-31-18-156 ~]# yum groupinstall "X Window System" "Desktop"
~~~~~~~~~~~標準出力割愛~~~~~~~~~~~
Is this ok [y/N] :  y
~~~~~~~~~~~標準出力割愛~~~~~~~~~~~
Complete!
[root@ip-172-31-18-156 ~]#

2. vncのサービスを起動させるユーザーで、vncでログインする時のパスワードの設定

[root@ip-172-31-18-156 ~]# vncpasswd
Password : 
Verify : 
[root@ip-172-31-18-156 ~]#

3. vncserverの起動

[root@ip-172-31-18-156 ~]# vncserver
xauth :   creating new authority file /root/.Xauthority

New ' ip-172-31-18-156 : 1 (root)' desktop is ip-172-31-18-156 : 1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ ip-172-31-18-156 : 1.log

[root@ip-172-31-18-156 ~]#

4. vncserverの停止

[root@ip-172-31-18-156 ~]# vncserver -kill  : 1
Killing Xvnc process ID 2337
[root@ip-172-31-18-156 ~]#

5. /etc/sysconfig/vncserversの設定を変更する(3行目、4行目を最後に追加)

[root@ip-172-31-18-156 .vnc]# vi /etc/sysconfig/vncservers
[root@ip-172-31-18-156 .vnc]# cat /etc/sysconfig/vncservers
VNCSERVERS="1 : root"
VNCSERVERARGS[1]="-geometry 800x600"
[root@ip-172-31-18-156 .vnc]#

6. ファイアーウォール(iptables)の設定を無効化する

[root@ip-172-31-18-156 ~]# service iptables stop
iptables :  Flushing firewall rules :                          [  OK  ]
iptables :  Setting chains to policy ACCEPT :  filter          [  OK  ]
iptables :  Unloading modules :                                [  OK  ]
[root@ip-172-31-18-156 ~]#

7. vncserverの起動

[root@ip-172-31-18-156 ~]# service vncserver start
Starting VNC server :  1 : root
New 'ip-172-31-18-156 : 1 (root)' desktop is ip-172-31-24-192 : 1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ip-172-31-18-156 : 1.log

                                                           [  OK  ]
[root@ip-172-31-18-156 ~]#

若井 「これで設定は完了したと思うけど。。。VNCクライアントから接続してみようかな。マシンの中には『RealVNC』と言うソフトが入っているから、これで接続してみるか。」

若井 「『サーバ:』の部分にさっき調べた『PublicIP』をいれて、VNCはデフォルトで5900番のポートから始まるから、デスクトップ番号が『1』だから、5901番で起動しているはずだから、記述はこんな感じだな。」

若井 「『OK』をクリック。」

若井 「!!!!!!」

若井 「あれ!エラーで接続出来ない!!なんでだろう?!設定失敗したのかな?」

設定を一心不乱に見直している若井。
(カタカタカタ・・・ターン)
若井 「繋がらない。。。なんでだ。」
(カタカタカタ・・・ターン)

出来 「ただいま。やっと打ち合わせ終わったわ。若井くん接続はバッチリできた?」

若井 「実は。。。VNCの接続ができないんです。。。」

今回はここら辺で一旦終了です。何故、若井はうまく接続できなかったのでしょうか。次回、出来先輩が解決しますのでお楽しみに!!

執筆者紹介

山口 正寛(YAMAGUCHI Masahiro)

株式会社システムサポート東京支社インフラソリューション事業部所属。

同社が得意とするOracleデータベースのエンジニアで、大規模DWHのDB管理者、DBコンサルタントなどを経験。また、同社の無料セミナーの企画にも携わる。

今回、機器がなくても気軽に環境を構築し検証したいというかた向けに AWS上でOracleデータベースを構築することをストーリー調で記載する。 尚、同社はAWSを用いたクラウド工房 powered by AWSというプロダクトがあり、産学官連携でも活用している。