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