前回までのあらすじ
みなさん、こんにちは。若井さんが出来先輩の助けを借りながら、アマゾン ウェブ サービス(以下、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サーバーソフトの設定だな。設定が複雑そうだから、ちょっと設定する内容をまとめてみよう。」
- vnc同様に画像などを送付できるように、『X Window System』、『Desktop』をインストールする。
- vncのサービスを起動させるユーザーで、vncでログインする時のパスワードの設定
- vncserverの起動
- vncserverの停止
- /etc/sysconfig/vncserversで設定を変更する
- ファイアーウォール(iptables)の設定を無効化する
- 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というプロダクトがあり、産学官連携でも活用している。