Amazonがやってるレンタルサーバみたいなサービス。
だと思っていたが、サービス多くすぎてわけわからん。
ディズニーランドのフロアマップのようだ。
##特長
- 初期費用不要で従量課金(使った分だけ)だから柔軟
- スケール(大きく、小さく)が簡単にできる
- 様々なサービスがありすぎてわけがわからない
- でも主要なサービスは3つ限られている(個人的には)
##経緯
- ECやってたらインフラのノウハウが集まって事業として独立
- 2006年からサービス開始。意外と歴史がある。
##レンタルサーバとの違い ###メリット
- 思いつきでサーバの数を増やしたりハイスペックにしたりできる
- OSやミドルウェアを自分で触れるので自由度が高い
###デメリット
- 料金が固定じゃなく、増やした分だけ料金が請求される
- ミドルウェアもこっちで触るため障害時に対応が必要 (レンタルサーバではミドルウェアはサーバ会社の作業範囲)
##主なサービス ###EC2 (Elastic Compute Cloud) Elastic -> 弾力、柔軟
- 仮想サーバ・アプリケーションサーバ
- PHPを使う場合はこのサービスを使う。
- OSはAmazon Linux, CentOs, Debianなどは無料、RHELは有料。
- EC2だけでLAMPが構築できる。こっちでDBも作れる(当然だけど)。
- データの保存にはEC2の外付けHDD的なサービスを使う(EBS)
- 高速で安定したDBを使いたい場合はRDS(別のサービス)も合わせて使う。
- 台数やスペックが柔軟に変更可能。
- 初期費用不要で、必要なときに必要な台数を時間課金で利用可能
- APIで起動や停止スペック変更などができる。
- Linuxの知識必要
###S3 (Simple Storage Service)
- オンラインストレージ(大きなDropbox)
- PHP(DB)を使わない場合はこのサービスを使う。静的サイト。
- 1オブジェクトに5TBまでOK(WindowsのCドライブ的なオブジェクトというものを作成する。オブジェクト数は無制限)
- サーバサイドで処理しないなら便利
- 個人や業務のファイルバックアップ、ファイル共有、アクセス制御。
- 保存した分だけ課金
###RDS (Relational Database Service)
- DBサーバ
- MySQLやPostgreSQLなどに対応
- 冗長構成や容量増量、自動バックアップも利用できる
##使うサービスの選び方
- 静的サイトが作りたい → S3
- 動的サイトが作りたい → EC2
- リッチな動的サイトを作りたい → EC2 + RDS
- ペロッとつくりたい → AWS以外のレンタルサーバのほうが楽
##料金計算方法 EC2を例に適当に月額を算出
###サーバ利用料 サーバ単体料金 * 台数 * 時間
例. t2.micro (一番安いサーバ)の場合
0.02$ * 1 * 24 * 30 = 14.4$ ( 1700円 )
###データ保存料 (EBS利用料) 0.1$ * 容量(GB)
例. 20GB利用の場合
0.1$ * 20 = 2$ (240円)
###データ転送量 (サイトの閲覧などで発生する転送)
0.14$ * 転送量(GB)
例. 2GBの場合
0.14$ * 2 = 0.28$ (33円)
合計 2000円 / 月 ぐらい
公式の見積もりツール
簡易見積り。決して「簡単」ではない。
http://calculator.s3.amazonaws.com/index.html?lng=ja_JP
用語
VPC (Virtual Private Cloud)
AWSクラウド上で論理的に分離されたプライベートなネットワーク
リージョン
データセンター郡のこと。
どの地域のデータエンターをAWSを使うか。TOKYOで。
各リージョンには最低2つのAZ(データセンター)がある。
AZ (Availavility Zone)
データセンター。アベイラビリティゾーンとやらをふたつ以上にわけることで、DBのレプリケーション(複製* 同期) やアプリサーバの負荷分散が容易になる。
##設定手順(情報古いので注意)
- AWSアカウントを作成する(クレカ番号と電話認証が必要)
- AWSにサインアップ
- 右上からリージョンの設定。オレゴン→東京。
- インスタンスを作成
- クイックスタートからAMIを選ぶ。Amazon Linuxが無難。AWSに最適化されたCentOS。
- インスタンスの種類を選ぶ。要件がなければt2.microで。
- インスタンスの詳細設定から「削除保護の有効化」にチェックを入れる。必要であれば他の設定も。
- ストレージの追加もデフォルトでOK。
- インスタンスのタグ付けで名前をつける。
- キーペア(秘密鍵)をダウンロードして大切に保管する。
- 確認画面が見れるので、「インスタンス」から状態とステータスチェックがOKになるのを待つ。
- 接続ボタンを押して接続方法を確認。
- ペアキーのパーミッションをread onlyに変更
chmod 400 sample.pem - sshのコマンドをコピペして実行。
- とりあえずyumを最新にアップデート
sudo yum update - とりあえずLAMPをインストール
sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd - apacheの起動と自動起動の設定
sudo service httpd start
sudo chkconfig httpd on - テストファイル作って確認
cd /var/www/html
sudo vim index.html - 念の為にphpとmysqlのバージョンを確認
php -v
mysql --version - インスタンスを右クリック→イメージ→イメージの作成で現状のイメージ作成 シャットダウンしてボリュームのスナップショットを撮るので気をつける
- このままではシャットダウンごとにアドレスが変わるのでIPを割り当てる
- Elastic IP(静的IP)を割り当てる。