AWS EC2のUbuntuにWindowsからリモートデスクトップで接続し、Ganacheを起動する手順

やりたいことはこちら

  • AWS EC2のUbuntu 16.04に、ローカルのWindows 7からリモートデスクトップで接続する
  • Ganacheを起動する

参考: https://aws.amazon.com/jp/premiumsupport/knowledge-center/connect-to-ubuntu-1604-windows/

まずは、Ubuntuでリモートデスクトップが使えるように設定していきます

EC2インスタンスの設定

TeraTerm等のターミナルからインスタンスにSSH接続して設定をします

パスワードでログインできるように設定

$ sudo vi /etc/ssh/sshd_config 

---------
# 以下のように編集
PasswordAuthentication no
 ↓
PasswordAuthentication yes
---------

# ssh再起動
$ sudo /etc/init.d/ssh restart

# リモートデスクトップのログインに使うパスワードを設定します
# 推測されやすいものにしないように注意
$ sudo passwd ubuntu

デスクトップ表示に必要なパッケージをインストール

$ sudo apt install xrdp xfce4 xfce4-goodies tightvncserver

# いろいろ設定を変更
$ echo xfce4-session> /home/ubuntu/.xsession
$ sudo cp /home/ubuntu/.xsession /etc/skel

$ sudo vi /etc/xrdp/xrdp.ini

# 以下のように編集
---------
 [xrdp1]
port=-1
 ↓
 [xrdp1]
port=ask-1
---------

$ sudo vi /etc/xrdp/startwm.sh

# 以下のように編集
---------
. /etc/X11/Xsession
 ↓
startxfce4
#. /etc/X11/Xsession
---------

# xrdp再起動
$ sudo service xrdp restart

EC2コンソールでポートを開放

RDPポートを開放するために、AWSのEC2コンソールを表示してセキュリティグループの設定を変更します。
開放するポート番号は 3389 です。

インスタンスを選択し、セキュリティグループをクリックします。
「インバウンド」を以下のように編集し、3389ポートでアクセスできるようにします。
WS000299.JPG

ここまででインスタンスの設定は終わりになります。

リモートデスクトップで接続しましょう

ここからはWindows 7で操作していきます

リモートデスクトップでインスタンスに接続します
WS000298.JPG

usernameはubuntu、パスワードは先ほど設定したものを入力します
ポート番号は-1のままで、OKを押します
WS000293.JPG

デスクトップが表示されました!
WS000294.JPG

せっかくなのでアプリケーションを起動してみます

ここからは、リモートデスクトップで操作していきます
GanacheというEthereumのウォレットを起動してみることにします

ブラウザを起動し、Ganacheをダウンロードします
http://truffleframework.com/ganache/
WS000295.JPG

ターミナルを開き、実行権限を付与しておきます

chmod a+x ~/Downloads/ganache-1.0.2-x86_64.AppImage

ファイルマネージャで、ファイルをダブルクリックします
WS000296.JPG

Ganacheが起動しました
WS000297.JPG


ここまで、以下の手順についての説明でした。

  • AWS EC2のUbuntu 16.04に、ローカルのWindows 7からリモートデスクトップで接続する
  • Ganacheを起動する

続きを読む

AWS EC2でHyperledger Fabricを動かす(2.Fabric前提条件の準備)

AWSにUbuntuをセットアップし、FabricをDockerで起動してみたいと思います。

前回は、AWS EC2を用意するところまででした。
https://qiita.com/tmikada/items/a1f22fd5c61c2de71d19

今回は、Fabric導入のための前提条件を準備していきます。

必要なものはこちら

  • curl
  • docker 17.06.2-ce or greater
  • docker-compose 1.14.0 or greater
  • go 1.9.x
  • node.js 6.9.x or greater (7.xは現時点でサポート対象外)
  • npm
  • python 2.7

参照: http://hyperledger-fabric.readthedocs.io/en/latest/prereqs.html

順番に導入していきます。

curl

インストール済み

$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

docker

手順: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-using-the-repository

$ sudo apt-get update
$ sudo apt-get install 
     apt-transport-https 
     ca-certificates 
     curl 
     software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

$ sudo add-apt-repository 
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
    $(lsb_release -cs) 
    stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce
$ apt-cache madison docker-ce

$ docker --version
Docker version 17.12.0-ce, build c97c6d6

docker-compose

手順: https://docs.docker.com/compose/install/#install-compose

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
docker-compose version 1.18.0, build 8dd22a9

go

手順: https://github.com/golang/go/wiki/Ubuntu

$ sudo apt-get install golang-go
$ go version
go version go1.6.2 linux/amd64

# バージョン古いため、新しいのを入れる

$ sudo add-apt-repository ppa:gophers/archive
$ sudo apt update
$ sudo apt-get install golang-1.9-go
$ go version
go version go1.6.2 linux/amd64

# 変わってない。。。
# 手順をよく見ると、1.9はこちらにあるらしい
$ /usr/lib/go-1.9/bin/go version
go version go1.9.2 linux/amd64

# パスを変更します
$ cd /usr/bin/
$ sudo rm go
$ sudo ln -s ../lib/go-1.9/bin/go
$ go version
go version go1.9.2 linux/amd64

GOPATHを設定します

$ mkdir ~/go
$ vi ~/.bashrc

# 以下の2行を追記
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

$ source ~/.bashrc
$ echo $GOPATH
/home/ubuntu/go

node.js, npm

nodeのバージョン管理は、nを使うことにしてみます
手順: https://qiita.com/seibe/items/36cef7df85fe2cefa3ea

バージョンの組み合わせは
https://nodejs.org/ja/download/releases/
を参照し、nodejs 6.9.5, npm 3.10.10 を選択

$ sudo apt-get install nodejs npm
$ nodejs --version
v4.2.6
$ npm --version
3.5.2

# nをインストールしてnodeの新しいバージョンを導入する
$ npm cache clean
$ sudo npm install -g n
$ n --version
2.1.7

$ sudo n 6.9.5
$ node --version
v6.9.5

# 古いnodejsはまぎらわしいため削除しておく
$ sudo apt-get purge nodejs

# バージョン指定してnpmをインストール
$ sudo npm install -g npm@3.10.10
$ npm --version
3.10.10

Python

2.7がインストールされていました

$ python --version
Python 2.7.12

ここまでで、やっと前提条件の準備が完了です。。。
次回はFabricを動かすところまで書くつもりです。

続きを読む

AWS EC2でHyperledger Fabricを動かす(AWS準備編)

AWSにUbuntuをセットアップし、FabricをDockerで起動してみたいと思います。
普段はVirtualBox内のUbuntuでFabricを動かしていて、AWSを触るのは初めて。
果たして最後までできるのかわかりませんが、とりあえず始めてみます。

今回はAWSでサーバを準備する手順をメモ。
大きく分けると以下の手順を実行します。

  1. EC2インスタンス作成〜起動
  2. SSH設定変更
  3. ターミナルからインスタンスへ接続する

1. EC2インスタンス作成〜起動

ログインしてコンソールを表示、仮想マシンの起動を選択します
Image 2018-01-05 18-06-33.jpg

EC2インスタンスを今すぐ始めます
Image 2018-01-05 18-01-53.jpg

適当な名前を入力してください
Image 2018-01-05 18-08-51.jpg

Ubuntu Server 16.04 LTSを選択して続行します
Image 2018-01-05 18-09-49.jpg

インスタンスタイプは無料枠のtc2.microのまま、続行します
Image 2018-01-07 16-31-54.jpg

キーペアに適当な名前を入力してファイルをダウンロードします
ダウンロードしたファイルは、~/.ssh ディレクトリに保管しましょう
Image 2018-01-05 18-12-55.jpg

インスタンスを作成します
Image 2018-01-05 18-13-42.jpg

作成には数分かかります
さきにEC2コンソールへ移動しましょう
Image 2018-01-05 18-14-20.jpg

ステータスがrunningになったら作成完了です
Image 2018-01-07 16-35-28.jpg

ここでSSHログイン試行するも、タイムアウトで接続できず。
軽く調べたところ、SSHの設定の変更が必要?とのこと。
次の手順でセキュリティグループの設定を変更します。

2. SSH設定変更

インスタンスを選択すると詳細が下の方に表示されます
この中から、セキュリティグループを選択します
Image 2018-01-07 16-33-49.jpg

SSHのインバウンドのソースが特定のネットワークに限定されているため解除します
編集を選択します
Image 2018-01-07 16-39-34.jpg

ソースを任意の場所に設定して保存します
Image 2018-01-07 15-56-24.jpg

3. ターミナルからインスタンスへ接続する

インスタンス作成時に保存したキーペアファイルが~/.sshディレクトリにコピーされている前提です。
権限を編集してからsshで繋ぎます。
AWSのUbuntuでは、ubuntuがデフォルトユーザになります。
アクセス先のIPアドレスは、インスタンスの「パブリックDNS(IPv4)」です。

$ chmod 400 .ssh/user1.pem 
$ ssh -i ".ssh/user1.pem" ubuntu@ec2-xx-xx-xx-xx.us-east-2.compute.amazonaws.com
The authenticity of host 'ec2-xx-xx-xx-xx.us-east-2.compute.amazonaws.com (xx-xx-xx-xx)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-xx-xx-xx-xx.us-east-2.compute.amazonaws.com,xx-xx-xx-xx' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-1043-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@ip-xx-xx-xx-xx:~$ pwd
/home/ubuntu

AWS EC2のUbuntu 16.04に、SSHでログインできました。

次は、Fabricを起動できればと思います。

続きを読む