-AWSを使うに当たって基礎知識まとめ *構成要素 [#n0f907a7] 以下を見れば一目瞭然だが、自分で噛み砕いて理解しておくこと http://aws.clouddesignpattern.org/index.php/CDP:%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88#.E4.BB.AE.E6.83.B3.E3.82.B5.E3.83.BC.E3.83.90_-_EC2_.28Amazon_Elastic_Compute_Cloud.29 *Tips [#scd8eeb3] |Terminate Protection|誤って削除されないように有効化をおすすめ| |日本時間に変える|sudo cp /usr/share/zoneinfo/Japan /etc/localtime| *AWS コマンドラインインターフェイス [#o596e2bf] コマンドラインでAWSを操作するためのもの。aws 操作名のような感じで行う。 |aws s3 ls s3://mybucket|s3とローカルフォルダの比較| |aws configure|CLIの設定。ID/KEY/REGION/formatを設定する。設定ファイルが~/.aws/configに作成される| **Amazon ElastiCache [#o5dc3f95] -MemcacheやRedisなどのオンメモリKVSが用意されている。 **Elastic IP [#j220cd0e] 静的なIPでインスタンスにひもづけることができる。起動していないインスタンスにEIPを確保しておくと課金対象。ここを見るとPrivate IPとの紐づけも見られる。 一応使わないでも再起動しなければ起動時に動的に割り当てられたpublic IPでアクセスできる **ELB [#s3dd8aa7] Elastic Load Balancing **オートスケール [#j212581c] 負荷状況に合わせて増やしたり、一定数以上の稼働を保証させることができる仕組み **インスタンスストレージ [#aedc07c8] 物理ディスク。再起動では大丈夫だが、停止で失われる。利用シーンがあまり思いつかないが、スワップならOKかと **S3 [#z7ee9cfc] OSから直接マウントするのがEBSに対し、S3はウェブから見ることができるなど共有用途向け。各種言語に対応したライブラリがあるので、プログラムから使うのもそれほど難しくはない。信頼性も高いし、ミラーリングもできるのでバックアップストレージとして使うのが良かろう。バケットという単位で管理するが、ドメインが割り当てられるので規則もドメインルールにのっとる必要がある。 **RDS [#ce3fd6e9] リレーショナルDB専用のインスタンス。起動・停止ができないので課金を節約したい場合は不向きだが、ワンクリックでDB構築ができるので便利。 **Route53 [#b38c16b2] AWS提供のDNSサーバー。稼働率100%保障でダウンしたらサービスクレジットがもらえる。ALIASレコードというものが独自仕様で外向けにはCNAMEと同様に映る **SES [#v8e3ee44] メールサーバー。自前で立てるよりも良い。APIを利用して送信 **VPC [#p09a0b6b] 仮想プライベートクラウドの略。サブネットを割り当てて、インターネット領域にするのか、プライベート領域にするのかは自由だ。 [VPC with a Single Public Subnet Only]を選ぶと、シンプルだけど全部外にさらされるぞ。Privateネットワークの場合は外に出るのにNATが必要。 「パブリックサブネットのインスタンスはインターネットから直接インバウンドトラフィックを受信できますが、プライベートサブネットのインスタンスはこれができません。また、パブリックサブネットのインスタンスはアウトバウンドトラフィックを直接インターネットに送信できますが、プライベートサブネットのインスタンスはできません。」 「デフォルトでは、インスタンスはインターネットにアクセスできません。インスタンスはデフォルトでパブリック IP アドレスを受け取りません。VPC は、作成方法によってはインターネットゲートウェイを持つ場合があります。」 VPC間で通信する場合はVPCピアリングの設定が必要。 ***プライベートsubnetからインターネットにアクセスするにはNATが必要。 [#vfbead79] http://dev.classmethod.jp/cloud/amazon-vpc-elb-nat/ ***ルートテーブル [#qbd626bf] VPCに対して割り当てるルーティング情報。一つのサブネットにつき1つまで。 **Security Group [#zf5082c8] 仮想ファイヤーウォール。インスタンスに対して紐づける **EC2 [#qd362611] サーバーインスタンス ***ライフサイクル [#j3d29ec5] 起動、停止、terminateは削除なので間違わないように ***EBS [#ye41fadf] Elastic Block Storeの略。スナップショット機能など多彩な機能がある。 ***AMI [#e386e448] マシンのOSイメージのこと。マイクロインスタンスであれば、RHELもWindowsも無料の枠内に収まるとのこと。「free tier eligible」とあればマイクロインスタンスとの組み合わせで無料。自分でAMIを作ることが可能で、実用上はベースのAMIをカスタマイズしてベースを作る。仮想マシンの方式がhvmとparavirtualがあるが、今後の主流はhvmであるのでhvmベースで作成すべし! **S3 [#w086b145] ストレージ。自由に増やせるしバージョン管理でもできるし。古くなったらGlaceirという保存領域に移動するルールも設定できる。 *自動構築 [#q0d53ca5] 下にいくほど自由度が高い=難易度も高い。chefというインフラ自動化の仕組みをベースにしている。 -Beanstalk -OpsWorks -CloudFormation JSON形式で構築作業を自動化できる。AWS-CLIよりはハードルが低そう。 *インスタンスの作成からログインまで [#c821f1f7] インスタンスはマイクロ、その他はデフォルトで進める。秘密鍵のペアはpemファイルとなるが、puttygenでインポートしてからputty形式のファイルにして、ec2-userでログイン成功 **インスタンスの作成手順詳細 [#nb48d03b] +AMIを選ぶ +6. Configure Security GroupでSGを指定する **インスタンスタイプ [#h1acbc5e] |名称|備考| |t1,t2|CPUがバースト可能。しかし低コストなので常時CPUが必要ならC1,C2を| |c1,c2|CPUに重点を置いたタイプ。| |r3|データベース向け| *インフラ構築方法 [#o0bdc7da] **AWS Elastic Beanstalk [#k81aa7f9] http://www.slideshare.net/shimy_net/aws-elastic-beanstalk-23314834 ** [#xf74ecb1] ** [#wd508472] *構成案 [#x62d12d5] Wordpressを分散するのはwp-contentディレクトリをNFSにするかrsyncしないとダメ。 *クラウドデザインパターン [#u01167dd] http://aws.clouddesignpattern.org/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 *アクセスライブラリ [#ac8f6750] +JCould(AWSに限らず、OpenStackなども) *メンテナンス記録(とある現場) [#rb0cf561] +3/3 インスタンス障害で再起動 +5/5 再起動(5/16まで猶予あり)