-AWSを使うに当たって基礎知識まとめ #ls2(AWS) #contents *無料枠について [#k9c60d59] 申し込み月の1年後の月末まで有効 **無料枠終了後も一定量は無料となるサービス [#y679d7a7] -DynamoDB -Lambda -SQS -SNS -CodeCommit *構成要素 [#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| |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/cli]] [#o596e2bf] コマンドラインでAWSを操作するためのもの。aws 操作名のような感じで行う。 |aws s3 ls s3://mybucket|s3とローカルフォルダの比較| |aws configure|CLIの設定。ID/KEY/REGION/formatを設定する。設定ファイルが~/.aws/configに作成される| *SWAPの作成 [#qa2c54c3] -swapが有効か否かを確認する swapon -s **ファイルで作成 [#g88b89ae] 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 -恒久的にswapファイルを設定するには/etc/fstabに追加 sudo echo "/swap swap swap default 0 0" >> /etc/fstab *ボリュームの拡張 [#qdbca2ec] 基本的にはAWS公式を参照せよ。AMIが作成できるのであれば、いったんAMIを作成しておき、起動時に容量を増やしておくのが良い。 +スナップショットの作成(時間かかる。6Gでも10分) +スナップショットからEBSの作成(一瞬) +インスタンス停止→EBSボリュームのデタッチ(2分) +新しく作成したEBSをアタッチ(ルートデバイスの指定は以前と同じにしておく。/dev/sda1なら/dev/sda)。 +起動(エラーが出る場合はルートデバイスの指定が間違っている) +resize2fs実施 resize2fs /dev/xvde1 *インスタンスタイプの変更 [#c41220bc] +停止 +インスタンスタイプの変更 +起動 *後からインスタンスストレージを追加 [#fc64e25a] +curl http://169.254.169.254/latest/meta-data/block-device-mapping/ 現状確認 +AMI作成 +起動時に指定 *AWSコンポーネント [#e1e750eb] **[[AWS CloudWatch>AWS/CloudWatch]] [#w1c6331e] **Amazon ElastiCache [#o5dc3f95] -MemcacheやRedisなどのオンメモリKVSが用意されている。 redis-cliをつかって操作してみる。 **インスタンスストレージ [#aedc07c8] 物理ディスク。再起動では大丈夫だが、停止で失われる。利用シーンがあまり思いつかないが、スワップならOKかと。t1.micro/m3では利用不可能。 **RDS [#ce3fd6e9] リレーショナルDB専用のインスタンス。起動・停止ができないので課金を節約したい場合は不向きだが、ワンクリックでDB構築ができるので便利。 **Route53 [#b38c16b2] AWS提供のDNSサーバー。稼働率100%保障でダウンしたらサービスクレジットがもらえる。ALIASレコードというものが独自仕様で外向けにはCNAMEと同様に映る **SES [#v8e3ee44] メールサーバー。自前で立てるよりも良い。APIを利用して送信 **Security Group [#zf5082c8] 仮想ファイヤーウォール。インスタンスに対して紐づける。デフォルトはノーガードだが、制限する場合は、プライベートだろうと設定しないとだめ。 **CloudFront [#qcbb08a9] CNDキャッシュサーバー。立ち上がりに時間がかかる! *IAMユーザーの作成 [#u4dc4551] rootアカウントは何でもできてしまうので、IAMユーザーの作成を推奨。 *自動構築 [#q0d53ca5] 下にいくほど自由度が高い=難易度も高い。 -Elastic Beanstalk デプロイとそれにまつわるリソース管理の自動化。開発、本番などの環境に合わせてデプロイ方式の設定ができたり、AutoScaleの設定をしてくれたりする。ELB,EC2,SGの設定などを個別にやるよりは楽なんじゃないだろうか! -OpsWorks Chefを利用した自動構築。 -CloudFormation JSON形式で構築作業を自動化できる。AWS-CLIよりはハードルが低そう。 *インフラ構築方法 [#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なども) *DNAT [#f088919a] # 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 *メンテナンス記録(とある現場) [#rb0cf561] +3/3 インスタンス障害で再起動 +5/5 再起動(5/16まで猶予あり)