2015/12/29 20:55:01

無料ではじめる AWS EC2

AWS(Amazon Web Services) EC2 はたまに(常に?)無料キャンペーンを行っているので、はじめてサーバを構築するときはその無料キャンペーンでお試しすることをお勧めする。t2.micro インスタンス(1vCPU/1GiBメモリ)が12ヶ月無料で借りられる。まあ、スペック的にはしょぼいけど、個人の趣味ブログをちまちまやる程度には足りるような気がする。

サインアップ

  1. サインアップ
    サインアップ時にクレカ登録が必要だが、無料枠の利用ではもちろん課金されない

AWS Web 上での設定

  1. リージョンの変更
    リージョンがデフォルト状態なので希望の場所に変更する(たとえば東京)
  2. OSの選択
    迷うことなく Amazon Linux(基本的になれたやつならどれでも良さそう)
  3. セキュリティグループの設定
    SSH する IP を絞っておく。CIDRで記述します
  4. 鍵(キーペア)の作成
    インスタンスへの接続に使用するキーペアを作成して必要なクライアントに設置します。既存キーからの生成も可能。

AWSにログインするクライアントでの設定

  1. インスタンスのデフォルトユーザは ec2-user
    必要に応じて .ssh/config を編集します

[.ssh/config]

Host amazonaws
    HostName        ec2-XX-XXX-XXX-X.ap-XXXX-X.compute.amazonaws.com
    User            ec2-user
    IdentityFile    ~/.ssh/aws_key.pem

AWS インスタンス

初期状態(2015/12/23)

t2.micro

$ uname -a
Linux ip-XXX 4.1.10-17.31.amzn1.x86_64 #1 SMP Sat Oct 24 01:31:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ cat /proc/cpuinfo
model name      : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.6G  15% /
devtmpfs        489M   56K  489M   1% /dev
tmpfs           498M     0  498M   0% /dev/shm
$ free -m
             total       used       free     shared    buffers     cached
Mem:           995        514        481          0         14        434
-/+ buffers/cache:         65        929
Swap:            0          0          0
$ perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
$ rpm -qa | grep perl
perl-HTTP-Tiny-0.033-3.6.amzn1.noarch
perl-Encode-2.51-7.5.amzn1.x86_64
perl-libs-5.16.3-283.37.amzn1.x86_64
perl-Storable-2.45-3.5.amzn1.x86_64
perl-Pod-Simple-3.28-4.6.amzn1.noarch
perl-File-Temp-0.23.01-3.5.amzn1.noarch
perl-5.16.3-283.37.amzn1.x86_64
perl-parent-0.225-244.5.amzn1.noarch
perl-podlators-2.5.1-3.8.amzn1.noarch
perl-Pod-Escapes-1.04-283.37.amzn1.noarch
perl-Text-ParseWords-3.29-4.5.amzn1.noarch
perl-macros-5.16.3-283.37.amzn1.x86_64
perl-constant-1.27-2.5.amzn1.noarch
perl-Filter-1.49-3.5.amzn1.x86_64
perl-PathTools-3.40-5.5.amzn1.x86_64
perl-Socket-2.010-3.5.amzn1.x86_64
perl-threads-shared-1.43-6.5.amzn1.x86_64
perl-Carp-1.26-244.5.amzn1.noarch
perl-File-Path-2.09-2.5.amzn1.noarch
perl-Getopt-Long-2.40-2.5.amzn1.noarch
perl-Digest-1.17-245.5.amzn1.noarch
perl-Digest-MD5-2.52-3.5.amzn1.x86_64
perl-Digest-HMAC-1.03-5.7.amzn1.noarch
perl-Pod-Perldoc-3.20-4.7.amzn1.noarch
perl-Pod-Usage-1.63-3.5.amzn1.noarch
perl-Exporter-5.68-3.5.amzn1.noarch
perl-Scalar-List-Utils-1.27-248.5.amzn1.x86_64
perl-threads-1.87-4.5.amzn1.x86_64
perl-Time-Local-1.2300-2.5.amzn1.noarch
perl-Digest-SHA-5.85-3.5.amzn1.x86_64

もろもろ設定

ユーザ追加

# useradd NAME
# usermod -G wheel NAME

鍵作成。pub を authorized_keys に追加

# /usr/sbin/visudo
%wheel  ALL=(ALL)       NOPASSWD: ALL
Defaults:NAME    !requiretty

ルートパスワード無効化

# passwd -l root

その他のサーバと問題なく行き来できることが確認できたらデフォルトユーザ削除

sudo userdel -r ec2-user

サーバの時刻設定

UTC なので JST に変える

# vi /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=false
# cp /etc/localtime /etc/localtime.org
# ln -sf  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

不要サービスの停止

$ sudo ntsysv

サーバの meta data

以下のように HTTP で取得できる

メタデータの項目一覧

$ curl http://169.254.169.254/latest/meta-data/

パブリックIP

$ curl -s http://169.254.169.254/latest/meta-data/public-ipv4

gitインスコ

$ sudo yum install curl-devel expat-devel openssl-devel zlib-devel gettext-devel

lv インスコ

$ sudo yum install gcc ncurses-devel
$ wget http://ftp.pbone.net/mirror/apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/lv-4.51-1.el6.rf.x86_64.rpm
$ sudo rpm -ivh lv-4.51-1.el6.rf.x86_64.rpm

nginx インスコ

# yum install pcre-devel
# wget http://nginx.org/download/nginx-1.8.0.tar.gz
# tar zxvf nginx-1.8.0.tar.gz
# cd nginx-1.8.0.tar.gz
# ./configure --with-http_ssl_module --with-http_realip_module --with-http_sub_module --without-http_autoindex_module --without-http_ssi_module --without-http_fastcgi_module
# make && make install

あとはよしなに!

サイト内検索