Skip to content

Instantly share code, notes, and snippets.

@nishinoshake
Last active May 29, 2016 03:55
Show Gist options
  • Save nishinoshake/27e3b5f19b86fbc460d4edd22fcf2f63 to your computer and use it in GitHub Desktop.
Save nishinoshake/27e3b5f19b86fbc460d4edd22fcf2f63 to your computer and use it in GitHub Desktop.
AWSがよくわからん

AWS ( Amazon Web Service)

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のレプリケーション(複製* 同期) やアプリサーバの負荷分散が容易になる。

##設定手順(情報古いので注意)

  1. AWSアカウントを作成する(クレカ番号と電話認証が必要)
  2. AWSにサインアップ
  3. 右上からリージョンの設定。オレゴン→東京。
  4. インスタンスを作成
  5. クイックスタートからAMIを選ぶ。Amazon Linuxが無難。AWSに最適化されたCentOS。
  6. インスタンスの種類を選ぶ。要件がなければt2.microで。
  7. インスタンスの詳細設定から「削除保護の有効化」にチェックを入れる。必要であれば他の設定も。
  8. ストレージの追加もデフォルトでOK。
  9. インスタンスのタグ付けで名前をつける。
  10. キーペア(秘密鍵)をダウンロードして大切に保管する。
  11. 確認画面が見れるので、「インスタンス」から状態とステータスチェックがOKになるのを待つ。
  12. 接続ボタンを押して接続方法を確認。
  13. ペアキーのパーミッションをread onlyに変更
    chmod 400 sample.pem
  14. sshのコマンドをコピペして実行。
  15. とりあえずyumを最新にアップデート
    sudo yum update
  16. とりあえずLAMPをインストール  sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd
  17. apacheの起動と自動起動の設定
    sudo service httpd start
    sudo chkconfig httpd on
  18. テストファイル作って確認
    cd /var/www/html
    sudo vim index.html
  19. 念の為にphpとmysqlのバージョンを確認
    php -v
    mysql --version
  20. インスタンスを右クリック→イメージ→イメージの作成で現状のイメージ作成 シャットダウンしてボリュームのスナップショットを撮るので気をつける
  21. このままではシャットダウンごとにアドレスが変わるのでIPを割り当てる
  22. Elastic IP(静的IP)を割り当てる。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment