Amazon Web Services入門 (全17回)

AWS 入門

http://dotinstall.com/lessons/basic_aws で入門します。

導入

  • AWS はクラウドサービス
  • http://aws.amazon.com/jp/
    • amazon.com のアカウントでログイン
    • AWS アカウント登録にクレジットカード、電話認証が必要(国コード +81 で)
    • 電話番号認証では PIN コードを入力するか、1ケタずつ音声入力するかする(せっかくだから音声入力すればよかった)
    • プランは Basic (free) を選んだ
  • 用語
    • EC2 (仮想サーバ)
    • RDS (DB に特化したサービス)
    • S3 (ストレージ)

仮想サーバを立ち上げてみよう

  • コンソールログイン
    • https://console.aws.amazon.com/console/home
    • EC2
      • https://console.aws.amazon.com/ec2/v2/home
      • リージョンをえらぶ Oregon → Asia Pacific (Tokyo)
      • launch instance (インスタンスをたちあげる) ボタン
        • Classic Wizard
          • Amazon Linux AMI
            • Instance Type: T1 Micro (無料お試しにぴったり)
            • Availability Zone: ap-northeast-1a
            • あとはとりあえずデフォルト
            • Termination Protection: サーバを落とすとき 削除かシャットダウンかのチェック
            • ssh できるように秘密鍵を作成、ダウンロード
            • HTTP 用に 80 ポートをあける
            • 死活監視の設定もできる(今はやらない)
        • EC2 コンソール
          • インスタンス追加したりとか
          • 情報みたりとか
          • ざっくりモニタリングしたりとか
          • 絞りこんで何かしたりとか
          • Status Checks: 2/2 checks passed とかなったら使える状態
          • インスタンスをたちあげると EBS (ストレージもいっしょについてくる)

仮想サーバで何かしてみよう

  • SSH 接続
    • EC2 コンソールでサーバ選んで右クリック → Connect with a standalone SSH Client
    • さっき作ってダウンロードしておいた秘密鍵を使って ssh (~/.ssh/aws/haruka.pem とかで置いて chmod 600 とかしておく)
    • Connect with a standalone SSH Client での ssh の接続例で -i オプションのパスだけかえて ssh
    • Run "sudo yum update" to apply all updates. はい
  • サーバで何かする
    1. sudo yum -y install httpd php mysql
    2. sudo service httpd start して sudo chkconfig httpd on して、/var/www/html/index.html に適当に何か置く
    3. EC2 コンソールでサーバリストで選択したとき下に出てきてた URL をブラウザでみる → 適当に何か置いたのが見える

イメージを作る、IP アドレスをふる

  • 今のサーバの状態からイメージを作る
    • EC2 コンソールのサーバリストからサーバ選んで右クリック → Create Image (EBS AMI)
    • イメージの名前をつけて、Yes, Create
      • シャットダウン → スナップショット → イメージの作成
  • シャットダウンするとホスト名がかわるので、IP アドレスをわりあてる
    • Elastic IPs
      • Allocate New Address
      • IP アドレスのリストで右クリック → Associate → インスタンス選んでそれに関連つける
      • Disassociate で関連はずす、Release Address で IP アドレスを開放

バックアップ、スペック変更

  • バックアップ
    • ELASTIC BLOCK STORE
      • Volumes
        • 名前つけて Yes, Create
      • Snapshots
        • 今名前つけたやつでスナップショットつくられてる(ちょっと時間かかる)
        • このスナップショットからインスタンス作るときは、ここからイメージつくってそれを立ち上げるなどする
  • スペック変更
    • EC2 サーバリストで右クリック、Instance Actions → Stop → stopping → stopped
    • 止まったら Change Instance Type などでスペックを変更
    • 変更したら、Instance Actions → Start で起動

RDS

  • AWS コンソール Services から RDS を選ぶ
  • Launch a DB instance
    • とりあえず MySQL
    • Do you plan to use this database for production purposes? と聞かれるが、とりあえず No にしておく
    • DB Instance Details
      • DB Instance Class: db.t1.micro
      • Multi-AZ Deployment: No
      • DB のユーザ名とパスワード適当に
    • 追加設定
      • Database Name: なんかあったら適当に(ここではそのまま例にならい dotinstall で)
      • Availability Zone: EC2 で選んだ region とあわせる
    • Management Options → とりあえずそのまま
  • スペックの変更 → DB Instance リストで右クリックして Modify
  • 今みたところ Security Group みたいなメニュー設定ないが、インスタンスの設定では変えられる模様なのでここで変える
    • 以前設定した、EC2 コンソールの Security Groups の quick-start みたいなやつで、MySQL の 3306 ポートあける(22 と 80 しか開けてないやつ)

サーバ増設してみよう

  • Web サーバ (EC2 インスタンス) の AMI つくって、それをもとにインスタンスを作る
  • EC2 コンソールのサイドメニュー Images - AMIs で AMI のリストに遷移、今つくった AMI の Status が available になったら、その AMI を右クリックして Launch
    • INSTANCE DETAILS → 適当に
    • CREATE KEY PAIR → 前つくったやつつかう
    • CONFIGURE FIREWALL → Security Groups は合わせておく (quick-start 某)
  • ロードバランサ置く
    • EC2 サイドバーメニューから NETWORK & SECURITY の Load Balancers
    • Create LoadBalancers
      • DEFINE LOAD BALANCER
        • 適当に名前つける
        • HTTP (80 ポート) をバランシング
      • CONFIGURE HEALTH CHECK
        • 死活監視設定
        • たぶん HTTP で /index.html が 200 で返ってくることをもっていきてるとみなす
      • ADD EC2 INSTANCES
        • 既存の Security Group を選んで、そこからインスタンス選ぶ (動画のときとちょっとちがう様子)
    • ロードバランサのリストに来て、Instances の Status が Out of Service から In Service に入るまで待つ(ちょっとかかる)
      • 172.31.5.197 - - [29/Sep/2013:10:24:20 +0000] "GET /index.html HTTP/1.1" 200 22 "-" "ELB-HealthChecker/1.0" みたいのが /var/log/httpd/access_log にきてる
      • Description の DNS Name (A Record) にアクセスすると ロードバランサ経由で Web サーバ それぞれにリクエスト振るようになる
      • access_log には LB の IP アドレスで残るので必要に応じて X-FORWARDED-FOR つかう

S3

  • AWS のコンソールから S3 のコンソール選ぶ
    • Create Bucket
      • Bucket 名はグローバルにユニークである必要があるので何かドメインとかで
      • Create Folder して images とかディレクトリつくって、そこにファイルアップロード
      • 右ペインが Transfers になってるから Properties えらんで詳細みられるようにする
        • Link 踏んでもパーミッション設定されたないので見られないので、ファイルのリストの上で右クリック → Make Public
    • S3 でサイト運用する際は、そのサイトのドメイン名とかつけて bucket つくる

料金確認

  • Account Activity から
  • 料金のモニタリングできるらしい
  • 今回アカウント作ったばっかりということもあってか、お客様には AWS 無料使用範囲が適用されます。無料使用範囲の使用開始の詳細に関しては、AWS 無料使用範囲入門ガイドをご覧ください。 とのこと

HTML入門 #21 スタイル属性を使う

今日やったこと

やったこと・わかったこと

style 属性。

  • どんな要素にもつけることができいる
  • そのタグに対して CSS を適用する
  • 本来的には CSS ファイルに書く

わからなかったり気になったこと

  • とくにない

HTML入門 #20 汎用要素を作る

今日やったこと

やったこと・わかったこと

文章のある範囲を指定して、意味をつけたりする。

  • div
    • 汎用ブロック要素 (前後に改行がはいる)
  • span
    • 汎用インライン要素 (前後に改行がはいらない)
  • id 属性
    • 意味をつける (文章の中にその要素がひとつだけあるもの)
  • class 属性
    • 意味をつける (文章の中にその要素が複数あるもの)

わからなかったり気になったこと

div と span、class の説明がビジュアル的な観点から説明されているが(その善し悪しは判断しかねる)、ちょっと動画みただけだとわかりにくいかもしれない(手をうごかしたほうがいいし、そういうものだと思って次にすすむのがいいと思う)。

HTML入門 #19 送信ボタンを作る

今日やったこと

やったこと・わかったこと

  • form
    • input
      • type="submit" (送信ボタン)
        • フォームの値を送信するボタン
    • input
      • type="button"
        • 汎用的なボタン(JavaScript とかで使う)

わからなかったり気になったこと

  • とくにない

HTML入門 #18 ラベルをつける

今日やったこと

やったこと・わかったこと

フォームのつかいがってをよくする。フォームの部品に付属する文字列をクリックして、その部品をクリックした状態になる

  • form
    1. label タグでフォーム部品囲む
    2. label for 属性に フォーム部品の id を指定 (囲まなくていい)

わからなかったり気になったこと

  • とくにない。

HTML入門 #17 隠しデータを送信する

今日やったこと

やったこと・わかったこと

隠しデータ。ユーザに見せる必要はないが、プログラムとして必要な値を送る。

  • form
    • おやくそくとして、form タグの属性に enctype="multipart/form-data" をつける
    • input
      • type="hidden"
      • name でデータの名前
      • value でデータの値

わからなかったり気になったこと

  • とくにない。