コンテンツにスキップ

AWS

AWSのLinuxにMongoDBをインストール

AWSで借りたサーバーにmongoDBが入っていなかったのでインストールした手順

YUMの設定

パッケージ管理システムであるYUMにmongoDB用の設定を追加する

$ sudo vim /etc/yum.repos.d/mongodb.repo

``` bash /etc/yum.repos.d/mongodb.repo [mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1

これでYUMにmongoDBのリポジトリが追加される

<!-- more -->

## mongoDBのインストール
今回は何も考えず最新のバージョンをインストールするので以下のコマンドで実行する
``` bash
$ sudo yum install mongodb-org
読み込んだプラグイン:priorities, update-motd, upgrade-helper
...
============================================================================================================================================================================================================
 Package                                                  アーキテクチャー                             バージョン                                       リポジトリー                                   容量
============================================================================================================================================================================================================
インストール中:
 mongodb-org                                              x86_64                                       2.6.6-1                                          mongodb                                       4.9 k
依存性関連でのインストールをします:
 mongodb-org-mongos                                       x86_64                                       2.6.6-1                                          mongodb                                       6.8 M
 mongodb-org-server                                       x86_64                                       2.6.6-1                                          mongodb                                       9.0 M
 mongodb-org-shell                                        x86_64                                       2.6.6-1                                          mongodb                                       4.3 M
 mongodb-org-tools                                        x86_64                                       2.6.6-1                                          mongodb                                        90 M

トランザクションの要約
============================================================================================================================================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 110 M
インストール容量: 277 M
Is this ok [y/d/N]: y
Downloading packages:
...
完了しました!

確認

$ mongo --version
MongoDB shell version: 2.6.6

インストール完了

参照

LinuxにRuby on Railsをインストールする

Ruby on Railsを使ってみたいと思い、AWSにインストールした手順。

Ruby version 2.0.0 を RVMを使ってインストール

Linuxに最新のRubyをインストールするを参照

gemsetの作成

Rubyをインストールしたら、Railsのアプリケーションを実行するために必要な他のソフトウェア向けにシステムを構成する必要があります。通常、これはgemのインストールに関連します。gemとは自己完結型のRubyコードのパッケージです。バージョン番号の異なるgem同士がコンフリクトすることがあるため、一連のgemを自己完結的にまとめたgemsetというものを作成してバージョンを使い分けるのが便利です。 (引用: Ruby on Rails チュートリアル

以下のコマンドでgemsetを作成する。

$ rvm use 2.0.0@railstutorial_rails_4_0 --create --default

上のコマンドを実行すると、Ruby 2.0.0に関連付けられたrailstutorial_rails_4_0というgemsetを作成し (--create)、その場でgemsetを有効にし (use)、gemsetをデフォルトに設定 (--default) します。これにより、ターミナルウィンドウを開いたときに2.0.0@railstutorial_rails_4_0というRubyとgemsetの組み合わせが常に選択されるようになります。 (引用: Ruby on Rails チュートリアル

RubyGemsのインストール

AWSには始めからgemがインストールされていて、PATHは以下。

$ which gem
/usr/bin/gem

RVMでRubyをインストールするとPATHが上書きされる。

$ which gem
~/.rvm/rubies/ruby-2.0.0-p594/bin/gem

今回はチュートリアルに合わせてgemのバージョンを更新する

$ gem update --system 2.0.3

gemの設定ファイルである .gemrc に自動生成されるドキュメントである rirdoc の自動生成を抑制する設定をする

$ vim .gemrc
$ cat .gemrc
install: --no-rdoc --no-ri
update:  --no-rdoc --no-ri

Railsをインストールする

いよいよRailsをインストールする

$ gem install rails --version 4.0.5

インストール完了。 以下のコマンドで確認する

$ rails -v
Rails 4.0.5

Railsがインストールされたことを確認できた

参照

Ruby on Rails チュートリアル

Linuxに最新のRubyをインストールする

Ruby on Railsを使ってみたいと思い、調べてみるとRails4ではRubyのバージョンは1.9以降が必須のようである。

自分がさくらで借りているサーバーではRubyのバージョンが1.8.7だったのでこれを新しくしてみた。

RVMのインストール

新しいRubyをインストールする前にRVM(Ruby Version Manager)をインストールする。これはRubyをバージョンごとに管理するツール

$ curl -L https://get.rvm.io | bash -s

このコマンドで自分のホームディレクトリ以下に .rvm/ が作られ、ここにRVMがインストールされる。

そして .profile .bashrc .zshrc にPATHを通す記述が追加される。

また、 .bash_profile .zlogin にRVMをロードする記述が追加される。

RVMのインストールが完了したらロードする。ここではbashを使っているので以下のようにする。

$ source .bash_profile

Rubyのインストール

さくらのレンタルサーバーでの失敗

まずはRubyのインストールに必要なパーツを調べ、無ければインストールする。 以下のコマンドで必要なものをピックアップしインストールまで行ってくれる。

$ rvm requirements
/your/home/directry/.rvm/scripts/functions/support: line 314: rvm_debug: command not found
Checking requirements for freebsd.
Installing requirements for freebsd.
Updating system.
Installing required packages: automake, bison, readline, libyaml...
Error running 'requirements_freebsd_libs_install automake bison readline libyaml',

ここでErrorが発生。内容は必要なパッケージがインストールできなかったということ。 そこでFreeBSDのパッケージ管理コマンドである pkg コマンドを使ってインストールを試みる。

が、サーバーの設定的に自分でパッケージを追加することができなかったのでさくらのサーバーを断念してAWSに移行した。

AWSに移行

AWSに移行して $ rvm requirements までを実行する。(AWSは始めからRubyのバージョンが2.0.0だったが構わず実行) ここでも $ rvm requirements が転ける。

そこで今度はCentOSだったので yum を使ってインストールを試みる。以下のコマンドは $ rvm requirements が教えてくれる。Errorの原因が sudo で実行していなかったことなので sudo 付きで実行する。

sudo yum install -y patch libyaml-devel libffi-devel glibc-headers autoconf gcc-c++ glibc-devel patch readline-devel zlib-devel openssl-devel automake libtool bison

これで成功。

$ rvm requirements
Checking requirements for amazon.
Requirements installation successful.

$ rvm requirementsも成功。

このサーバーではすでにバージョン2.0.0のRubyがインストールされていたが、RVMの配下に新たにバージョン2.0.0のRubyをインストールする。

$ rvm install 2.0.0 --with-openssl-dir=$HOME/.rvm/usr

インストール完了。

参考

Ruby on Rails チュートリアル

AWSに複数のユーザーを設定した手順

AWSでサーバーを借りて複数人で共同開発することになった。 それに伴い、借りたサーバーに各々がアクセスできるようユーザーの設定をした際の手順メモ。

AWSでWEBサーバーを借りる

AWSのWebサーバーレンタルサービスはEC2と呼ばれる。 サーバーをレンタルするには様々あるサービス群からEC2を選択し、Launch Instance ボタンを押してInstanceの立ち上げを開始する。

  • AMI(Amazon Machine Image)の選択
    • 借りるマシンの種類を選ぶ。用途によって様々な種類がある(WordPressが既に設定されているものなど)
  • Instance Typeの選択
    • マシンのスペックを選ぶ。メモリやストレージのサイズなど
  • Instanceの詳細設定
  • Storageの設定
  • Instanceへのtag付け
  • Security Groupの選択
    • アクセスを許可するプロトコルやIPなどを指定してその設定をグループとして扱う

上記のほとんどの設定は後から変更できる。AMIの選択がしっかりできれば問題なさそう。

最後まで完了すると秘密鍵(hogehoge.pem)が発行される。これは絶対になくしてはいけない。

立ち上げたInstanceに複数ユーザーを設定する

立ち上げたInstanceにアクセスする。 今回はWebサーバーとして立ち上げるのでSecurity GroupにはHTTPとSSHでのアクセスを許可するよう設定しておく。

秘密鍵でアクセスする

まずはInstance立ち上げ時に発行された秘密鍵でアクセスする

[sojiro@local ~]$ chmod 600 hogehoge.pem  # 秘密鍵の権限を設定(厳しすぎても甘過ぎても使えない)
[sojiro@local ~]$ ssh -i hogehoge.pem ec2-user@xx.xx.xx.xxx  # ec2-userでログイン
  • ダウンロード直後の秘密鍵は権限が適切ではない可能性がある。その場合は600に設定する。
  • ssh-iオプションを使って秘密鍵を指定してログイン(秘密鍵を指定しないと~/.ssh/id_rsaが使われる)
    • 最初は初期設定されているec2-userというユーザーでログインする
    • コマンドはEC2のメニューバーからInstancesページに行き、Instanceを選択してページ上部のConnectボタンを押すと表示される

ユーザーの作成

Instanceにログインできたら早速ユーザーを作成していく

[ec2-user@ip-hogehoge ~]$ sudo su -  # rootユーザーになる
[root@ip-hogehoge ~] adduser sojiro  # ユーザー(sojiro)を作成
[root@ip-hogehoge ~] passwd sojiro   # sojiroにパスワードを設定
[root@ip-hogehoge ~] vim /etc/sudoers  # sojiroに権限を設定

ユーザーを作り、ユーザーに権限を付与する。今回は大雑把にrootと同じことができる権限を付与。

[root@ip-hogehoge ~] cat /etc/sudors
...
root    ALL=(ALL)       ALL
sojiro  ALL=(ALL)       ALL
...

公開鍵の登録

作成したユーザーにlocalからアクセスするための公開鍵を設定する。 (鍵のペアはlocalで予めssh-keygen -t rsaで作成しておく)

[root@ip-hogehoge ~] su sojiro
[sojiro@ip-hogehoge root]$ cd  # sojiroのホームディレクトリに移動
[sojiro@ip-hogehoge ~]$ mkdir .ssh
[sojiro@ip-hogehoge ~]$ vim .ssh/authorized_keys  # 公開鍵を置く(今回はlocalのid_rsa.pubをコピペした)
[sojiro@ip-hogehoge ~]$ chmod 700 .ssh
[sojiro@ip-hogehoge ~]$ chmod 600 .ssh/authorized_keys
  • 公開鍵を置くファイルの名前は.sshディレクトリ配下のauthorized_keysと決まっている
  • .sshディレクトリとauthorized_keysの権限にも気をつける

作成したユーザーでInstanceにログインできることを確認

[sojiro@local ~]$ ssh sojiro@xx.xx.xx.xxx  # ログインできればOK

localのrsa鍵でログインできることを確認できれば完了。

この操作で必要なユーザーを適宜作成する。

参考

新規に作成した鍵でEC2インスタンスにSSH接続する