AWS EC2 の初期設定
AWS EC2 の初期設定で実施したことをまとめておこうと思います。
yum のアップデート
AWS に初めてログインすると、「Run "sudo yum update" to apply all updates.」と出力されるので、yum を
アップデートします。
# yum update -y
作業ディレクトリの作成
続いて、local で作業するためのディレクトリを作成します。
$ mkdir -p ~/usr/bin $ mkdir -p ~/usr/projects $ mkdir -p ~/usr/src $ mkdir -p ~/usr/tmp $ echo "export PATH=~/usr/bin:\${PATH}" >> ~/.bashrc
ssh のポート変更
WELL KNOWN PORT NUMBERS の 0 〜 1023 番以外の任意のポート番号に変更します。
# vim /etc/ssh/sshd_config #Port 22 ↓ Port 14022
上記のように変更したら、sshd を再起動して、設定を反映させます。
また、Security Groups に変更したポート番号を追加し、22(SSH)を削除して、『Apply Rule Changes』
ボタンをクリックします。
サーバ再起動時に EIP を自動でセットする
以下のサイトを参考にさせていただき、EC2インスタンス起動時にEIP(固定IP)が自動でセットされるように設定します。
- ラフなラボ: ec2-api-toolsをCentOSで使えるようにする。
- EC2 インスタンス起動時に自動で EIP をセットする (AWS Advent Calendar 2012 20日目) | dogmap.jp
EC2 API Tools のインストール
Amazon EC2 API Tools : Developer Tools : Amazon Web Services
上記URLから Amazon EC2API Tools(ec2-api-tools.zip)をダウンロードし、以下の手順でインストールします。
# yum install -y java-1.7.0-openjdk # unzip ec2-api-tools.zip # mv ec2-api-tools-1.6.7.2 /usr/local/bin/ # ln -s /usr/local/bin/ec2-api-tools-1.6.7.2 /usr/local/bin/ec2-api-tools
秘密鍵とX.509証明書の取得
以下のURLから取得します。
Amazon Webサービス – [アカウント/コンソール] – [セキュリティ証明書]
- 秘密鍵:pk-*****************************.pem
- 証明書:cert-******************************.pem
これらをEC2 インスタンスの適当なパスに置きます。
/home/ec2-user/ec2keys ├── cert-******************************.pem └── pk-*****************************.pem
環境変数の設定
.bashrc に以下を追加し、設定を反映させます。
$ vim ~/.bashrc export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19.x86_64/jre" export EC2_HOME="/usr/local/bin/ec2-api-tools" export EC2_PRIVATE_KEY="~/ec2keys/pk-********************************.pem" export EC2_CERT="~/ec2keys/cert-********************************.pem" export EC2_URL="https://ec2.us-west-2.amazonaws.com" export PATH="${EC2_HOME}/bin:${PATH}" $ source ~/.bashrc
EC2 API の確認
EC2 API が使用できるか確認します。
$ ec2-describe-regions REGION eu-west-1 ec2.eu-west-1.amazonaws.com REGION sa-east-1 ec2.sa-east-1.amazonaws.com REGION us-east-1 ec2.us-east-1.amazonaws.com REGION ap-northeast-1 ec2.ap-northeast-1.amazonaws.com REGION us-west-2 ec2.us-west-2.amazonaws.com REGION us-west-1 ec2.us-west-1.amazonaws.com REGION ap-southeast-1 ec2.ap-southeast-1.amazonaws.com REGION ap-southeast-2 ec2.ap-southeast-2.amazonaws.com
EIP を確保する
割り当てるEIPが確保されていない場合は、EC2 API を使用して、EIPを取得します。
$ ec2-allocate-address ADDRESS ***.***.***.*** standard
EIP を自動設定するためのシェルスクリプトを作成する
~/usr/bin ディレクトリ配下に、以下の内容のシェルスクリプトを作成します。
#!/bin/sh export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19.x86_64/jre" export EC2_HOME="/usr/local/bin/ec2-api-tools" export EC2_PRIVATE_KEY="~/ec2keys/pk-********************************.pem" export EC2_CERT="~/ec2keys/cert-********************************.pem" INSTANCE_ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id` EIP=***.***.***.*** REGION=us-west-2 ${EC2_HOME}/bin/ec2-associate-address -i ${INSTANCE_ID} ${EIP} --region ${REGION}
ファイル作成後、chmod で実行権限を与えて実行してみて、EIPが設定されるか確認します。
$ source ~/usr/bin/set-eip ADDRESS ***.***.***.*** i-********
サーバ再起動時に EIP を自動でセットする
サーバ再起動時に自動で実行させるために cronを使用します。
# crontab -e @reboot /bin/sh ~/usr/bin/set-eip
再起動時して、EIPが自動でセットされるか確認します。
設定したEIPでインスタンスにアクセスできれば完了です。