無料ではじめる AWS EC2
AWS(Amazon Web Services) EC2 はたまに(常に?)無料キャンペーンを行っているので、はじめてサーバを構築するときはその無料キャンペーンでお試しすることをお勧めする。t2.micro インスタンス(1vCPU/1GiBメモリ)が12ヶ月無料で借りられる。まあ、スペック的にはしょぼいけど、個人の趣味ブログをちまちまやる程度には足りるような気がする。
サインアップ
- サインアップ
サインアップ時にクレカ登録が必要だが、無料枠の利用ではもちろん課金されない
AWS Web 上での設定
- リージョンの変更
リージョンがデフォルト状態なので希望の場所に変更する(たとえば東京) - OSの選択
迷うことなく Amazon Linux(基本的になれたやつならどれでも良さそう) - セキュリティグループの設定
SSH する IP を絞っておく。CIDRで記述します - 鍵(キーペア)の作成
インスタンスへの接続に使用するキーペアを作成して必要なクライアントに設置します。既存キーからの生成も可能。
AWSにログインするクライアントでの設定
- インスタンスのデフォルトユーザは 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
あとはよしなに!