AmazonLinux

  • 投稿者:
  • 投稿カテゴリー:aws

Amazon Linuxはできるだけ軽量かつシンプルに設計されており
不必要なアプリケーションやサービスはまったくインストールされていない

設定確認

### AMIバージョン確認 ###
[root@ip-172-31-5-180 ~]# cat /etc/system-release
Amazon Linux AMI release 2014.09

### IPV6は無効となっている(netstatで確認可能) ###
[root@ip-172-31-5-180 ~]# lv /etc/sysconfig/network | grep "NETWORKING_IPV6"
NETWORKING_IPV6=no

### ファイルシステム(ext4) ###
[root@ip-172-31-5-180 ~]# df -T
Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/xvda1     ext4       8123812 1000580   7022984  13% /
devtmpfs       devtmpfs    502064      56    502008   1% /dev
tmpfs          tmpfs       510020       0    510020   0% /dev/shm

[root@ip-172-31-5-180 ~]# lv /etc/fstab | grep "LABEL=/"
LABEL=/     /           ext4    defaults,noatime  1   1


### チューニングしようとしたが、以下手法で測定したところ速度は変わらなかった(むしろ遅くなった)
### dd if=/dev/urandom oflag=direct
### fio -rw=randrw -bs=16k -size=100m -iodepth=32 -directory=/tmp -direct=1 -invalidate=1 -runtime=300 -numjobs=8 -name=iotest -ioengine=libaio -group_reporting
[root@ip-172-31-5-180 ~]# tune2fs -o journal_data_writeback /dev/sda1
[root@ip-172-31-5-180 ~]# vi /etc/fstab 
[root@ip-172-31-5-180 ~]# lv /etc/fstab | grep "LABEL=/"
LABEL=/     /           ext4    barrier=0,noatime,data=writeback,errors=remount-ro  0   1

### Linux I/Oスケジューラ ###
[root@ip-172-31-5-180 ec2-user]# cat /sys/block/xvda/queue/scheduler
[noop]

初期設定

### rootパスワード設定 ###
[root@ip-172-31-5-180 ~]# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

### FWの無効化 ###
[root@ip-172-31-5-180 ~]# chkconfig iptables off
[root@ip-172-31-5-180 ~]# chkconfig ip6tables off
[root@ip-172-31-5-180 ~]# chkconfig --list iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@ip-172-31-5-180 ~]# chkconfig --list ip6tables
ip6tables       0:off   1:off   2:off   3:off   4:off   5:off   6:off

### TimeZoneの変更 ###
[root@ip-172-31-5-180 ~]# date; cp /usr/share/zoneinfo/Japan /etc/localtime; date
Sat Sep 27 12:07:05 UTC 2014
cp: overwrite ‘/etc/localtime’? y
Sat Sep 27 21:07:10 JST 2014

### localeの変更 ###
[root@ip-172-31-5-180 ec2-user]# cat /etc/sysconfig/i18n
LANG=en_US.UTF-8
[root@ip-172-31-5-180 ec2-user]# locale -a | grep ja # 利用できるロケールを確認
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc
[root@ip-172-31-5-180 ec2-user]# vi /etc/sysconfig/i18n
[root@ip-172-31-5-180 ec2-user]# ll
total 1024004
-rw-r--r-- 1 root root 1048576000 Sep 27 23:48 file
# ログインし直すと日本語環境となる
[root@ip-172-31-5-180 ec2-user]# echo $LANG
ja_JP.UTF-8
[root@ip-172-31-5-180 ec2-user]# ll
合計 1024004
-rw-r--r-- 1 root root 1048576000  9月 27 23:48 file
[root@ip-172-31-5-180 ec2-user]# yum install man-pages-ja # 日本語版manのインストール

### ホスト名の変更 ###
[root@ip-10-10-10-10 ec2-user]# vi /etc/sysconfig/network
...
HOSTNAME=proxy.akat.info
...
[root@ip-10-10-10-10 ec2-user]# vi /etc/hosts
127.0.0.1   proxy.akat.info proxy localhost localhost.localdomain
[root@proxy ec2-user]# reboot
...
[root@proxy ec2-user]# hostname
proxy.akat.info

### スワップ追加 ###
[root@ip-172-31-5-180 ec2-user]# swapon -s
http://www.agilegroup.co.jp/technote/ec2-initial-settings.html

### sysctl.conf ###
[root@ip-172-31-5-180 ec2-user]# lv /etc/sysctl.conf
http://ora.geo.jp/?p=465
http://netbuffalo.doorblog.jp/archives/4048147.html
http://hiroki.jp/2009/11/11/604/
http://alpha-netzilla.blogspot.jp/2012/12/parameter-kernel.html
http://blog.isnext.net/issy/archives/190

# 送信した接続要求のうち、 まだ接続先から ACK を受け取っていないものを記憶しておく最大数
net.ipv4.tcp_max_syn_backlog = 4096
# パケット受信時にキューにつなぐことのできるパケットの最大数
net.core.netdev_max_backlog = 4096
net.core.somaxconn = 4096
# 接続を受付側としてオープンするとき、 カーネルは SYN に ACK を詰め込んで送り、先に受けとった SYN を確認します。 これは 3 方向ハンドシェークの 2 番目の部分です。 この設定は、カーネルが接続をあきらめるまでに送る、 SYN+ACK パ>ケットの再送数を指定する
net.ipv4.tcp_synack_retries = 3

物理メモリを使い切るまでスワップは利用しない
vm.swappiness = 0

ulimitをあげておく
ulimit -n オープン可能なファイルディスクリプタ数を確認
/etc/security/limits.conf
ファイルディスクリプタ数を引き上げる

cloud-init

EC2インスタンスを起動する時に設定を自動化できる
cloud-initの既定では、インスタンスの初回起動時に自動でセキュリティアップデートを実行するため、無効にしておく

[root@ip-172-31-5-180 ec2-user]# vi /etc/cloud/cloud.cfg
===
repo_upgrade: none
===
[root@ip-172-31-5-180 ec2-user]# tail -f /var/log/cloud-init.log

時間

[root@ip-172-32-0-221 ec2-user]# cp /usr/share/zoneinfo/Japan /etc/localtime
cp: `/etc/localtime' を上書きしますか? y
[root@ip-172-32-0-221 ec2-user]# date
2015年  1月 15日 木曜日 21:41:47 JST
### 以下を設定しないとyum updateなどでglibcパッケージが更新されるとJSTからUTCに戻る ###
[root@ip-172-32-0-221 ec2-user]# vi /etc/sysconfig/clock
====
ZONE="Asia/Tokyo"
UTC=False
====

パッケージ管理-yum-

login as: ec2-user
Authenticating with public key "imported-openssh-key"

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
No packages needed for security; 1 packages available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-172-31-5-180 ~]$ id
uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel)

### 設定ファイル ###
[root@ip-172-31-5-180 ~]# vi /etc/yum.conf

### リポジトリ ###
[root@ip-172-31-5-180 ~]# ls /etc/yum.repos.d/
amzn-main.repo  amzn-nosrc.repo  amzn-preview.repo  amzn-updates.repo  epel.repo  epel-testing.repo

### インストール済みパッケージ確認 ###
[root@ip-172-31-5-180 ec2-user]# yum list installed
…
upstart.x86_64                                                       0.6.5-13.3.13.amzn1                                  installed
util-linux.x86_64                                                    2.23.2-16.22.amzn1                                   installed
vim-common.x86_64                                                    2:7.4.027-2.28.amzn1                                 installed
vim-enhanced.x86_64                                                  2:7.4.027-2.28.amzn1                                 installed
vim-filesystem.x86_64                                                2:7.4.027-2.28.amzn1                                 installed
vim-minimal.x86_64                                                   2:7.4.027-2.28.amzn1                                 installed
wget.x86_64                                                          1.14-8.11.amzn1                                      installed

…

### パッケージの更新確認 ###
[root@ip-172-31-5-180 ec2-user]# yum check-update
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                                            | 2.1 kB     00:00
amzn-updates/latest                                                         | 2.3 kB     00:00

aws-cli.noarch                             1.4.4-1.0.amzn1                             amzn-updates
[root@ip-172-31-5-180 ec2-user]# yum update
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package aws-cli.noarch 0:1.4.3-1.1.amzn1 will be updated
---> Package aws-cli.noarch 0:1.4.4-1.0.amzn1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package                      Arch                        Version                              Repository                         Size
=======================================================================================================================================
Updating:
 aws-cli                      noarch                      1.4.4-1.0.amzn1                      amzn-updates                      489 k

Transaction Summary
=======================================================================================================================================
Upgrade  1 Package

Total download size: 489 k
Is this ok [y/d/N]: y
Downloading packages:
aws-cli-1.4.4-1.0.amzn1.noarch.rpm                                                                              | 489 kB     00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : aws-cli-1.4.4-1.0.amzn1.noarch                                                                                      1/2
  Cleanup    : aws-cli-1.4.3-1.1.amzn1.noarch                                                                                      2/2
  Verifying  : aws-cli-1.4.4-1.0.amzn1.noarch                                                                                      1/2
  Verifying  : aws-cli-1.4.3-1.1.amzn1.noarch                                                                                      2/2

Updated:
  aws-cli.noarch 0:1.4.4-1.0.amzn1

### パッケージの更新一覧 ###
[root@ip-172-31-5-180 ec2-user]# yum list updates
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                                                                                | 2.1 kB     00:00
amzn-updates/latest                                                                                             | 2.3 kB     00:00

### パッケージの検索 ###
[root@ip-172-31-5-180 ec2-user]# yum search mysql
Loaded plugins: priorities, update-motd, upgrade-helper
========================================================= N/S matched: mysql ==========================================================
MySQL-python.x86_64 : An interface to MySQL
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
collectd-mysql.x86_64 : MySQL plugin for collectd
dovecot-mysql.x86_64 : MySQL back end for dovecot
exim-mysql.x86_64 : MySQL lookup support for Exim
freeradius-mysql.x86_64 : MySQL support for freeradius
libdbi-dbd-mysql.x86_64 : MySQL plugin for libdbi
lighttpd-mod_mysql_vhost.x86_64 : Virtual host module for lighttpd that uses a MySQL database
mod_auth_mysql.x86_64 : Basic authentication for the Apache web server using a MySQL database
mysql.noarch : MySQL meta package
mysql-bench.noarch : MySQL benchmark scripts and data
mysql-common.noarch : Common files needed for the MySQL client or server
mysql-connector-java.noarch : Official JDBC driver for MySQL
mysql-connector-odbc.x86_64 : ODBC driver for MySQL
…

### パッケージのインストール ###
[root@ip-172-31-5-180 ec2-user]# yum install mysql55-common
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package mysql55-common.x86_64 0:5.5.39-1.2.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package                           Arch                      Version                                Repository                    Size
=======================================================================================================================================
Installing:
 mysql55-common                    x86_64                    5.5.39-1.2.amzn1                       amzn-main                     48 k

Transaction Summary
=======================================================================================================================================
Install  1 Package

Total download size: 48 k
Installed size: 480
Is this ok [y/d/N]: y
Downloading packages:
mysql55-common-5.5.39-1.2.amzn1.x86_64.rpm                                                                      |  48 kB     00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mysql55-common-5.5.39-1.2.amzn1.x86_64                                                                              1/1
  Verifying  : mysql55-common-5.5.39-1.2.amzn1.x86_64                                                                              1/1

Installed:
  mysql55-common.x86_64 0:5.5.39-1.2.amzn1

Complete!


### パッケージの削除 ###
[root@ip-172-31-5-180 ec2-user]# yum remove mysql55-common
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package mysql55-common.x86_64 0:5.5.39-1.2.amzn1 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package                           Arch                      Version                               Repository                     Size
=======================================================================================================================================
Removing:
 mysql55-common                    x86_64                    5.5.39-1.2.amzn1                      @amzn-main                    480

Transaction Summary
=======================================================================================================================================
Remove  1 Package

Installed size: 480
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : mysql55-common-5.5.39-1.2.amzn1.x86_64                                                                              1/1
  Verifying  : mysql55-common-5.5.39-1.2.amzn1.x86_64                                                                              1/1

Removed:
  mysql55-common.x86_64 0:5.5.39-1.2.amzn1

Complete!

### 全てのキャッシュを削除する-yumがエラーのときに利用すると解決するかも ###
[root@ip-172-31-5-180 ~]# yum clean all
Loaded plugins: priorities, update-motd, upgrade-helper
Cleaning repos: amzn-main amzn-updates
Cleaning up everything

### トランザクション処理-yumがエラーのときに利用すると解決するかも ###
[root@ip-172-31-5-180 ~]# yum-complete-transaction
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                                                                                | 2.1 kB     00:00
amzn-main/latest/group                                                                                          |  35 kB     00:00
amzn-main/latest/primary_db                                                                                     | 3.1 MB     00:00
amzn-updates/latest                                                                                             | 2.3 kB     00:00
amzn-updates/latest/group                                                                                       |  35 kB     00:00
amzn-updates/latest/updateinfo                                                                                  | 180 kB     00:00
amzn-updates/latest/primary_db                                                                                  | 4.9 kB     00:00
No unfinished transactions left.

### amzn-mainリポジトリからインストールしたパッケージを調べる ###
[root@ip-172-32-0-221 ec2-user]# yum list installed | grep yum-utils
yum-utils.noarch                      1.1.31-18.17.amzn1           installed    
[root@ip-172-32-0-221 ec2-user]# yumdb search from_repo amzn-main
読み込んだプラグイン:priorities, update-motd, upgrade-helper
GeoIP-1.4.8-1.5.amzn1.x86_64
     from_repo = amzn-main

apr-1.5.0-2.11.amzn1.x86_64
     from_repo = amzn-main

apr-util-1.4.1-4.14.amzn1.x86_64
     from_repo = amzn-main

apr-util-ldap-1.4.1-4.14.amzn1.x86_64
     from_repo = amzn-main
...

lvのインストール

[root@ip-172-31-5-180 src]# yum install ncurses-devel
[root@ip-172-31-5-180 src]# wget http://www.ff.iij4u.or.jp/~nrt/freeware/lv451.tar.gz
[root@ip-172-31-5-180 src]# tar xzvf lv451.tar.gz
[root@ip-172-31-5-180 src]# cd lv451/build
[root@ip-172-31-5-180 build]# ../src/configure
[root@ip-172-31-5-180 build]# make
[root@ip-172-31-5-180 build]# make install
[root@ip-172-31-5-180 build]# cp lv /usr/bin/

http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/lv-4.51-1.el6.rf.x86_64.rpm
からrpmファイルを取得し、
rpm -ivh lv-4.51-1.el6.rf.x86_64.rpm (-h:処理の進行状況を「#」記号で表示する -v:操作対象のパッケージ名を表示)
でインストールするという方法もあり

MariaDB

[root@ip-172-31-5-180 ec2-user]# vi /etc/yum.repos.d/MariaDB.repo
=====
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
=====
[root@ip-172-31-5-180 ec2-user]# yum search mariadb
読み込んだプラグイン:priorities, update-motd, upgrade-helper
amzn-main/latest                                         | 2.1 kB     00:00
amzn-updates/latest                                      | 2.3 kB     00:00
mariadb                                                  | 1.9 kB     00:00
mariadb/primary_db                                       |  18 kB     00:00
============================= N/S matched: mariadb =============================
MariaDB-Galera-server.x86_64 : MariaDB: a very fast and robust SQL database
                             : server
MariaDB-Galera-test.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-client.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-common.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-compat.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-devel.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-server.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-shared.x86_64 : MariaDB: a very fast and robust SQL database server
MariaDB-test.x86_64 : MariaDB: a very fast and robust SQL database server

  Name and summary matches only, use "search all" for everything.

[root@ip-172-31-5-180 ec2-user]# yum install MariaDB-server
…
[root@ip-172-31-5-180 ec2-user]# /etc/init.d/mysql start
Starting MySQL.. SUCCESS!

FTP

[root@ip-172-31-5-180 conf.d]# yum search vsftpd
…
[root@ip-172-31-5-180 conf.d]# vi pure-ftpd.conf
=====
PureDB                        /etc/pure-ftpd/pureftpd.pdb
PAMAuthentication             no
#UnixAuthentication            yes
=====
[root@ip-172-31-5-180 conf.d]# pure-pw useradd ftpuser -u www-data -g www-data -d /var/www/
[root@ip-172-31-5-180 conf.d]# pure-pw mkdb

http://www.server-world.info/query?os=CentOS_5&p=ftp&f=3
http://www.servermom.org/how-to-install-pure-ftpd-on-centos-6-4/789/
http://tejunsho.com/pure-ftpd/20110331000114.html

SMB

http://futurismo.biz/archives/1390

脆弱性対応

Amazon Linux AMI Security Center
Amazon Linuxには独自のセキュリティセンターがあり、こちらから脆弱性への対応方法などを確認可能

参考URL

インストールだけじゃない!yumの設定から便利な使い方まで徹底的に解説
http://oxynotes.com/?p=6777
AWS(EC2) Amazon Linux 初期環境設定
http://tanyaolinux.blogspot.jp/2013/01/amazon-linux-ec2.html
CentOS ext4ファイルシステム
http://www.unix-power.net/linux/ext4.html
yum でインストールした rpm がどの repository のものか調べる

Linux インスタンスのホスト名の変更
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-hostname.html
Amazon Linuxの特徴とCentOSとの違い まとめ
http://dev.classmethod.jp/cloud/aws/amazon-linux-centos-rhel-difference/