トップ  > メモ一覧  > カテゴリ「EC2」の絞り込み結果 : 3件

3件中 1 〜 3 表示  1 

No.5328【引用】【AWS】サービスを止めずにルートボリューム(EBS)が拡張できるようになった!!!



 

【AWS】サービスを止めずにルートボリューム(EBS)が拡張できるようになった!!!

システム部の山田です。
2/14にAmazon EBSのアップデートが発表されました。
Amazon EBSのアップデート – 新機能エラスティックボリュームが全てを変える
なんとEBSのボリュームタイプ、サイズ、Iopsをコンソールパネルから変更できるようになりました。
今までEBSの拡張はインスタンスの停止とデタッチ、別インスタンスへのアタッチが必要でとっても面倒だっただけに、これは便利!
これからはサー...

引用元

更新:2017/06/28 11:22 カテゴリ: サーバ管理  > EC2 ▲トップ

No.5302 EC2 に設置しているサイトを nagios で監視すると、Host Check Timed Out になる

EC2 に設置しているサイトを nagios で監視すると、Host Check Timed Out になる
セキュリティグループで ping を許可するようにすればよい

引用元

更新:2016/09/01 14:47 カテゴリ: サーバ管理  > EC2 ▲トップ

No.1822 AmazonEC2用に自分でCentOS5のイメージを用意する

Amazon EC2 用に自分で CentOS 5 のイメージを用意するAdd Stardannazurestonelapis25azurestoneazurestone

Amazon EC2 では、Amazon 公式で用意されたイメージの他にいろんなひとがイメージを登録して share してるんですが、やっぱり見ず知らずの人が用意したイメージはあまり使いたくないなぁということで、自分で用意してみたのでその手順です。

EC2 のマニュアルでは、"Using Amazon EC2" -> "Creating and Preparing AMIs" あたりです。(マニュアルは Fedora ベースです)

作業は CentOS5 上で行いました。

追記 (2009-11-05T21:50:56+09:00)

S3 上へのイメージのアップロードとかは、試行錯誤には時間かかります。
nokoya さんの EC2 上で新規 AMI を作るのは良い手段だと思いました。

AMI tools をインストールする

AMI tools は ruby が必要なので、install されていない場合は入れてください。

# yum install ruby

ec2-ami-tools.noarch.rpm をインストールします。

# rpm -i ec2-ami-tools.noarch.rpm

まず空のイメージを作る

# dd if=/dev/zero of=centos5.img bs=1M count=2024

マニュアルだと例示されてるのが 1GB なんですが、CentOS 5 入れてて足りなくなったので 2GB にしました。(やっぱりこころもとなかったので 3GB 作り中。後で CPAN とかインストールしたイメージ作りたいから。ちなみに /mnt に 残りの領域がマウントされるので、/home とかはそっち使えばいいと思う。)

ext3 ファイルシステムを作成する

# mke2fs -F -j centos5.img

マウントする

# mkdir /mnt/ec2-fs
# mount -o loop centos5.img /mnt/ec2-fs

イメージ上にディレクトリ作ったりしていろいろ準備

/dev を用意する。

# mkdir /mnt/ec2-fs/dev
# for i in console null zero ; do /sbin/MAKEDEV -d /mnt/ec2-fs/dev -x $i; done

/mnt/ec2-fs/etc/fstab を作る。

/dev/sda1  /         ext3    defaults        1 1
none       /dev/pts  devpts  gid=5,mode=620  0 0
none       /dev/shm  tmpfs   defaults        0 0
none       /proc     proc    defaults        0 0
none       /sys      sysfs   defaults        0 0

yum-xen.conf をつくる

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
exclude=*-debuginfo
gpgcheck=0
obsoletes=1
reposdir=/dev/null
 
[base]
name=CentOS-5.2 - Base
mirrorlist=http://mirrorlist.centos.org/?release=5.2&arch=i386&repo=os
enabled=1
 
[updates-released]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.2&arch=i386&repo=updates
enabled=1

proc ディレクトリ作って mount する

# mkdir /mnt/ec2-fs/proc
# mount -t proc none /mnt/ec2-fs/proc

yum で 作ったイメージに CentOS 5 をインストールする

yum -c yum-xen.conf --installroot=/mnt/ec2-fs -y groupinstall Core
yum -c yum-xen.conf --installroot=/mnt/ec2-fs -y groupinstall Base

/mnt/ec2-fs/etc/sysconfig/network-scripts/ifcfg-eth0 を作る

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no

/mnt/ec2-fs/etc/sysconfig/network を作る

NETWORKING=yes

/mnt/ec2-fs/etc/fstab に追記

EC2 のサービスでは /mnt 以下に今回作ったイメージ以外の領域がマウントされるので、それを追記しておきます。

/dev/sda2  /mnt      ext3    defaults        0 0
/dev/sda3  swap      swap    defaults        0 0

キー受け取り用のスクリプトを仕込んでおく

これをやっておかないと ec2-add-keypair で作った公開鍵が、起動時に受け取れません。このあたり意味がわからなくて少しハマった。

/mnt/ec2-fs/etc/rc.d/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
 
touch
/var/lock/subsys/local
/usr/local/sbin/get-credentials.sh

/usr/local/sbin/get-credentials.sh
このファイルは、実行権限付けておくのも忘れないように!

#!/bin/bash
 
# Retreive the credentials from relevant sources.
 
# Fetch any credentials presented at launch time and add them to
# root's public keys
 
PUB_KEY_URI
=http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
PUB_KEY_FROM_HTTP
=/tmp/openssh_id.pub
PUB_KEY_FROM_EPHEMERAL
=/mnt/openssh_id.pub
ROOT_AUTHORIZED_KEYS
=/root/.ssh/authorized_keys
 
 
 
# We need somewhere to put the keys.
if [ ! -d /root/.ssh ] ; then
        mkdir
-p /root/.ssh
        chmod
700 /root/.ssh
fi
 
# Fetch credentials...
 
# First try http
curl
--retry 3 --retry-delay 0 --silent --fail -o $PUB_KEY_FROM_HTTP $PUB_KEY_URI
if [ $? -eq 0 -a -e $PUB_KEY_FROM_HTTP ] ; then
   
if ! grep -q -f $PUB_KEY_FROM_HTTP $ROOT_AUTHORIZED_KEYS
   
then
            cat $PUB_KEY_FROM_HTTP
>> $ROOT_AUTHORIZED_KEYS
            echo
"New key added to authrozied keys file from parameters"|logger -t "ec2"
   
fi
    chmod
600 $ROOT_AUTHORIZED_KEYS
    rm
-f $PUB_KEY_FROM_HTTP
 
elif [ -e $PUB_KEY_FROM_EPHEMERAL ] ; then
   
# Try back to ephemeral store if http failed.
   
# NOTE: This usage is deprecated and will be removed in the future
   
if ! grep -q -f $PUB_KEY_FROM_EPHEMERAL $ROOT_AUTHORIZED_KEYS
   
then
            cat $PUB_KEY_FROM_EPHEMERAL
>> $ROOT_AUTHORIZED_KEYS
            echo
"New key added to authrozied keys file from ephemeral store"|logger -t "ec2"
 
   
fi
    chmod
600 $ROOT_AUTHORIZED_KEYS
    chmod
600 $PUB_KEY_FROM_EPHEMERAL
 
fi
 
if [ -e /mnt/openssh_id.pub ] ; then
       
if ! grep -q -f /mnt/openssh_id.pub /root/.ssh/authorized_keys
       
then
                cat
/mnt/openssh_id.pub >> /root/.ssh/authorized_keys
                echo
"New key added to authrozied keys file from ephemeral store"|logger -t "ec2"
 
       
fi
        chmod
600 /root/.ssh/authorized_keys
fi

unmount する

# umount /mnt/ec2-fs/proc
# umount -d /mnt/ec2-fs

登録用イメージ作成

aws user は、aws.amazon.com にログインしてアカウント情報見たときの右上に表示されてるやつ。ハイフンはいらない。

# ec2-bundle-image -i centos5.img -k <secret key file> -c <cert file> -u <aws user>

アップロード

S3 の backets は、無い名前を作ってくれます。S3 全体でユニークな名前にする必要があります。

# ec2-upload-bundle -b <s3 backets> -m /tmp/centos5.img.manifest.xml -a <access id>  -s <secret key>

登録

ここから先は ec2 コマンド群をインストール済みの mac で作業を行いました。

$ ec2-register <s3 backets>/centos5.img.manifest.xml

自分のイメージ確認

$ ec2-describe-images -o self 

秘密鍵生成

$ ec2-add-keypair vkgtest | sed -e "1d" > vkgtest.id
$ chmod 400 vkgtest.id

このコマンドで、公開鍵が AWS 側に登録される。
秘密鍵は他の ssh 秘密鍵と同様に保管します。

ec2-describe-keypair で登録した鍵の一覧が見られます。

インスタンス起動

$ ec2-run-instances <image id> -k vkgtest

image id は ami で始まる文字列です。
-k オプションには使用する鍵名を渡します。
すると起動時に指定された公開鍵をセットして起動してくれます。

Firewall の port 22 を開ける

$ ec2-authorize default -p 22

これで 22 番が開きます。
もう少し細かく接続もととか指定できるみたいだけどマニュアル参照で。

ちなみに ec2-describe-group で設定した内容が見えて、ec2-revoke で削除できます。
default ってのは iptables のチェーンみたいなものかなぁ。

インスタンス状態確認

$ ec2-describe-instances

正常に起動できていたら、ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com のようなサブドメインが割り当てられていると思います。
こんな感じでログインできます。

$ ssh -i .ssh/vkgtest.id root@ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com

起動できていてログイン出来なかったら、/usr/local/sbin/get-credentials.sh のセットアップに失敗しているかも。

インスタンスシャットダウン

$ ec2-terminate-instances <instance id>

参考にさせていただきました

引用元

更新:2009/12/05 21:53 カテゴリ: サーバ管理  > EC2 ▲トップ
3件中 1 〜 3 表示  1 

FuelPHP

Mac

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0