以下を見れば一目瞭然だが、自分で噛み砕いて理解しておくこと
Terminate Protection | 誤って削除されないように有効化をおすすめ |
日本時間に変える | sudo cp /usr/share/zoneinfo/Japan /etc/localtime |
yum updateでも日本時間のままにする | /etc/sysconfig/clockを編集しZONE="Asia/Tokyo"UTC=False |
インスタンスメタデータの取得 instance_id | http://169.254.169.254/latest/meta-data/instance-id |
インスタンスメタデータの取得 ipv4 | http://169.254.169.254/latest/meta-data/public-ipv4 |
インスタンスメタデータを変数に格納 | instanceid=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` |
コマンドラインでAWSを操作するためのもの。aws 操作名のような感じで行う。
aws s3 ls s3://mybucket | s3とローカルフォルダの比較 |
aws configure | CLIの設定。ID/KEY/REGION/formatを設定する。設定ファイルが~/.aws/configに作成される |
swapon -s
sudo dd if=/dev/zero of=/swap bs=1M count=512 sudo mkswap /swap sudo chmod 0600 /swap sudo swapon /swap
http://qiita.com/na0AaooQ/items/278a11ed905995bd16af
sudo echo "/swap swap swap default 0 0" >> /etc/fstab
基本的にはAWS公式を参照せよ。
resize2fs /dev/xvde1
重要なので項目として独立させた。最低限セキュアにするにはVPCの下にPUBLIC/PRIVATEのサブネットを作成し、NATをPUBLICサブネットに立てて、PRIVATEはそこのNAT経由で外に出る。詳細は以下のページを参考にせよ。
http://qiita.com/ausuited/items/09b626fa5264f0c650fd
PublicとPrivateのサブネットをもつVPCを作成した場合はNATインスタンスを作成しないとPrivateサブネットからインターネット通信ができない。しかしこのNATインスタンスはm1.smallのため、無料枠で利用することができない。しかもparavirtualなのでt2.microに変更することもできない。というわけでhvm対応のNATを作成して、送信元のチェックをはずしてルーティングテーブルを変更すればもとのNATは削除してもよい。
仮想プライベートクラウドの略。サブネットを割り当てて、インターネット領域にするのか、プライベート領域にするのかは自由だ。 [VPC with a Single Public Subnet Only]を選ぶと、シンプルだけど全部外にさらされるぞ。Privateネットワークの場合は外に出るのにNATが必要。
「パブリックサブネットのインスタンスはインターネットから直接インバウンドトラフィックを受信できますが、プライベートサブネットのインスタンスはこれができません。また、パブリックサブネットのインスタンスはアウトバウンドトラフィックを直接インターネットに送信できますが、プライベートサブネットのインスタンスはできません。」
「デフォルトでは、インスタンスはインターネットにアクセスできません。インスタンスはデフォルトでパブリック IP アドレスを受け取りません。VPC は、作成方法によってはインターネットゲートウェイを持つ場合があります。」
二つのサブネットを用意。片方がインターネットゲートウェイをもつパブリックネット。そこにNATインスタンスを配置。プライベートのほうにはルーティングテーブルをNATに向けたものを設定し、プライベートゾーンにインスタンスはすれば成功。パブリックネットはPublicIPがないと外部通信できない。
VPC間で通信する場合はVPCピアリングの設定が必要。
VCP(172.31.0.0/16)の内部にサブネットを複数持てる。サブネット間で通信可能。デフォルトでは二つのAZにサブネットが用意されている。
AZ名 | IPレンジ | 備考 |
ap-northeast-1a | 172.31.16.1~172.31.31.254 | /20 |
ap-northeast-1c | 172.31.0.1~172.31.15.254 | /20 |
ネットマスクの計算に便利なサイト https://note.cman.jp/network/subnetmask.cgi
http://dev.classmethod.jp/cloud/amazon-vpc-elb-nat/
パブリックサブネットのルーティングはigwに直接つないでいるのでNATを経由しない。ゆえに外に出たいのならPublicIP/EIPの割り当てが必要。プライベートサブネットのルーティングをNAT(パブリックに配置したもの)経由にした場合のみプライベートサブネットから外に出られる。VPCデフォルトで作成されたNATがインスタンスタイプを変更したら、PublicIPが付与されてなくってはまった。当然NATでも外に出るにはPublicIPが必要。
VPCに対して割り当てるルーティング情報。一つのサブネットにつき1つまで。
redis-cliをつかって操作してみる。
静的なIPでインスタンスにひもづけることができる。起動していないインスタンスにEIPを確保しておくと課金対象。ここを見るとPrivate IPとの紐づけも見られる。 一応使わないでも再起動しなければ起動時に動的に割り当てられたpublic IPでアクセスできる。PublicIPの自動割り当て機能は起動時のみ利用出来る為、起動後に付与したくなった場合にはEIPを利用する必要がある。
Elastic Load Balancing。インスタンスを複数ぶら下げて振り分ける。異常からの復帰時はデフォルトだと最低300秒かかるので気長にまつか、設定を変更する。それぞれのAZで等しい台数とスペックをぶら下げるのが基本。
ELBのスケールアップ・スケールアウトはAWS側で勝手にやってくれる。配下でインスタンスが全滅していると勝手に一個なる。復帰すると2個になる。apache benchをやり続けるとそのIPだけタイムアウトになってしまう!なにか見ているのかも?
こちらで監視する項目はCloudWatchから取得できる処理数や処理待ちなどのデータ。
あまり好ましくはないが、スティッキーセッションの設定もできる。ELBの説明欄から維持設定をクリック
HTTP_X_FORWARDED_FOR HTTP_X_FORWARDED_PORT HTTP_X_FORWARDED_PROTO
負荷状況に合わせて増やしたり、一定数以上の稼働を保証させることができる仕組み。もととなるAMIを使って起動するので、そのAMIを作成しておく。起動設定でアプリのデプロイをしてELBに関連づけ(AutoScaleの設定画面から既存ELBを選択)しておくとよい。
物理ディスク。再起動では大丈夫だが、停止で失われる。利用シーンがあまり思いつかないが、スワップならOKかと。t1.micro/m3では利用不可能。
リレーショナルDB専用のインスタンス。起動・停止ができないので課金を節約したい場合は不向きだが、ワンクリックでDB構築ができるので便利。
AWS提供のDNSサーバー。稼働率100%保障でダウンしたらサービスクレジットがもらえる。ALIASレコードというものが独自仕様で外向けにはCNAMEと同様に映る
メールサーバー。自前で立てるよりも良い。APIを利用して送信
仮想ファイヤーウォール。インスタンスに対して紐づける。デフォルトはノーガードだが、制限する場合は、プライベートだろうと設定しないとだめ。
サーバーインスタンス
起動、停止、terminateは削除なので間違わないように
Elastic Block Storeの略。スナップショット機能など多彩な機能がある。
マシンのOSイメージのこと。マイクロインスタンスであれば、RHELもWindowsも無料の枠内に収まるとのこと。「free tier eligible」とあればマイクロインスタンスとの組み合わせで無料。自分でAMIを作ることが可能で、実用上はベースのAMIをカスタマイズしてベースを作る。仮想マシンの方式がhvmとparavirtualがあるが、今後の主流はhvmであるのでhvmベースで作成すべし!
ストレージ。自由に増やせるしバージョン管理でもできるし。古くなったらGlaceirという保存領域に移動するルールも設定できる。
CNDキャッシュサーバー。立ち上がりに時間がかかる!
rootアカウントは何でもできてしまうので、IAMユーザーの作成を推奨。
下にいくほど自由度が高い=難易度も高い。
デプロイとそれにまつわるリソース管理の自動化。開発、本番などの環境に合わせてデプロイ方式の設定ができたり、AutoScaleの設定をしてくれたりする。ELB,EC2,SGの設定などを個別にやるよりは楽なんじゃないだろうか!
Chefを利用した自動構築。
JSON形式で構築作業を自動化できる。AWS-CLIよりはハードルが低そう。
インスタンスはマイクロ、その他はデフォルトで進める。秘密鍵のペアはpemファイルとなるが、puttygenでインポートしてからputty形式のファイルにして、ec2-userでログイン成功
名称 | 備考 |
t1,t2 | CPUがバースト可能。しかし低コストなので常時CPUが必要ならC1,C2を |
c1,c2 | CPUに重点を置いたタイプ。 |
r3 | データベース向け |
http://www.slideshare.net/shimy_net/aws-elastic-beanstalk-23314834
Wordpressを分散するのはwp-contentディレクトリをNFSにするかrsyncしないとダメ。
http://aws.clouddesignpattern.org/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
# Generated by iptables-save v1.4.18 on Thu Sep 3 10:21:16 2015 *filter :INPUT ACCEPT [2107:162972] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [1547:336490] COMMIT # Completed on Thu Sep 3 10:21:16 2015 # Generated by iptables-save v1.4.18 on Thu Sep 3 10:21:16 2015 *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -p tcp -m tcp --dport 受け側ポート -j DNAT --to-destination NAT先PrivateIP:NAT先ポート -A POSTROUTING -j MASQUERADE COMMIT
# Completed on Thu Sep 3 10:21:16 2015