AWS
AWSの各サービスについて

コンソール画面
AWSの使用開始ドキュメント

Contents

VPC


仕様


IPアドレス



ACL



ルーティング



リージョン



Availability Zone (AZ)




使用方法




VPCの作成


  1. Your VPCs画面へ
    1. Create VPC
    2. VPC全体で使用するネットワークアドレスを指定
  2. Subnets画面へ
    1. Create Subnet
    2. VPCに作成したVPCを指定
    3. VPCのネットワーク内で分割するサブネットを記載して作成
  3. Internet Gateways画面へ
    1. Create Internet Gatewayで作成
    2. 作成したGatewayを選択し、Attach to VPCで作成したVPCと紐付け
  4. Route Tables画面へ
    1. 作成したサブネットがインターネットと通信する場合はデフォルトルートの登録を行う

Public DNS名の取得


グローバルアドレスを持っているインスタンスにDNS名でアクセスしたい場合、
自動でドメイン名を取得できる。
ただし、名前にIPが含まれており、IPが勝手に変化することは無いと思われるため、
IPアドレスでアクセスしたほうが、名前解決のオーバーヘッドが無いため、
IPアドレスでアクセスするほうがよい。
なお、デフォルトVPCの場合は、デフォルトでこの機能が有効になっている。



EC2


EC2単独で使用することもできるが、現在はVPC内でEC2を使用することが主流である。

仕様




NATインスタンスについて


NAT専用のコンポーネントがAWSで用意されているわけではなく、NATを行うEC2インスタンスを立ち上げる。
NATインスタンスではデフォルトでNAPTを行うデーモンが起動しており、
プライベートアドレスしか持たないインスタンスのデフォルトルートとして登録することで、
そのインスタンスはインターネットへのOutgoing通信のみ行うことができるようになる。
デフォルトルートは次のようにして登録する。
route add default gw <NATインスタンスのプライベートIP>
デフォルトゲートウェイとしてAWS標準のルータへのルートが存在するのでデフォルトルートが2つになるが構わない。
パブリックネットワークとプライベートネットワークが完全に分離している環境では、
AWSのサブネットごとで設定できるルーティングで一括してデフォルトルートを登録できる。



使用方法



スナップショットの作成


稼働中・停止中のインスタンスのスナップショット(ディスクイメージ)を作成することができる。
作成したスナップショットは同一のAZからのみ利用できる。


カスタムAMIの作成


稼働中のインスタンスをAMI化し、それを基にしたインスタンスを作成できるようにする。
AMI作成時には対象となるインスタンスがデフォルトで再起動してしまう。
再起動させたくない場合は、実行時にオプションで再起動させないようにすること。ただしこの場合、書き込み途中のストレージの整合性が担保されなくなる。


カスタムAMIの削除


不要なAMIを削除する。当該AMIを利用して作成したインスタンスには影響はない。


AMIのアカウント間共有


あるアカウントで作成したAMIを別のアカウントからも利用できる設定ができる。




NATインスタンスの作成


マニュアル



TeratermからSSHログインする


EC2インスタンスにはSSHでログインするが、よくわるユーザ名+パスワードのログインではない。
AWSコンソールで作成したキーペアファイルを使用してログインを行う。
インスタンス作成時にこのキーペアを割り当てることで、そのキーを使用してログイン可能となる。
キーペアファイルを紛失した場合は再発行は不可で、新しく生成して既存のインスタンスに再割り当ても不可。



rootでログイン


rootではリモートログインできないようになっているので、
ec2-userでログインした後にsudo suコマンドでrootになる。

ユーザを追加


デフォルトではインスタンス作成時に指定したキーペアでec2-userでしかSSHログインできない。
他のユーザや、別のキーペアを使用してログインできるようにする。
公知のアカウントのec2-userは使用停止しておいた方が良い。
ただし、削除はaws使用に影響が出る可能性があるのでしない方が良い。




いずれのホストでも確認無しでSSHログイン


SSHで接続する際に接続したことがないホストだと確認のプロンプトが表示される。
また、IPアドレスが同じで、インスタンスが変更された場合はエラーメッセージが表示される。
IPアドレスが変動したり、自動でホストが生成されたりし得るEC2ではこれを省略した方が便利である。


タイムゾーンの変更


dateコマンドで表示される時刻がUTC等、JSTでない場合はJSTに変更する。

rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

sysstatによるパフォーマンスのロギング


sysstatパッケージをインストールすることで、各種パフォーマンスの値を記録することができる。
yum install sysstat -y

sysstatにより、記録されるログはそのホストの識別子が埋め込まれるので、オートスケールで立ち上がるホストの場合は
一度ログファイルを削除する必要がある。
vi /etc/rc.local
以下を追記する
sar -A || rm -f /var/log/sa/*


インスタンスストア(インスタンスストレージ・エフェメラルストレージ)の使用


EC2ではインスタンスストア(インスタンスストレージ・エフェメラルストレージとも呼ばれる)と言う、EC2のクラスに応じた容量を持つ揮発性のディスクを使用することが出来る。
これはデフォルトでは使用できないようになっており、インスタンス作成時、イメージ作成時に使用するよう設定すると、
そのインスタンス起動時にマウントされている状態となる。(2つ以上のインスタンスストアが使用できる場合、2つ目以降は自動でマウントされない)
インスタンスストアは無料で使用でき、クラスによっては高速なSSDが使用できる
なお、インスタンスストアに起動時にrsyncし、起動スクリプトで何らかのデーモンのrootをインスタンスストア上にすると、rc.localの実行が最後であるために起動に失敗する。
そのデーモンの起動もrc.localに記述することで回避できる。









起動スクリプト内でsudoを行う


telnetやsshなどのtty経由でないsudoは通常許可されない
これを許可する場合、以下を行う必要がある。

  1. rootになる
    sudo su
  2. 変更を許可する
    chmod 640 /etc/sudoers
  3. 変更する
    vi /etc/sudoers
    
    # 下記の行を#コメントアウトする
    # Defaults    requiretty
  4. パーミッションを戻す
    chmod 440 /etc/sudoers


インスタンスの移動


あるVPCで稼動しているインスタンスを別のVPCに移動させる。
EC2インスタンスのVPC間の移動はできないので、スナップショットを作成し、それを基にしたインスタンスを作成する。



ボリューム容量追加


EC2で使用するボリュームは後から容量を変更できない。
ディスク容量を追加する場合はスナップショットを取って新しく作成する必要がある。



インスタンス間でキーペアを使用してSSHする




認証用公開鍵は既にauthorized_keysに記述されているのでログイン先の設定は不要


プライベートインスタンスの動的NATゲートウェイ設定


・同一サブネットにインターネットと直接通信するインスタンスとしないインスタンスが混在する
・直接通信しないインスタンスはNATインスタンスを利用して通信する
・複数の同様のサブネットが混在する
・同じAMI・インスタンスのコピーを複数のサブネットで使用したい
上記の場合、サブネットが複数あるため、元となるインスタンスに固定のルーティング設定ができない。
また、パブリックインスタンスとプライベートインスタンスが混在するためにAWSのルーティング機能で、
デフォルトゲートウェイをNATインスタンスに設定することはできない。
そのため、NATを使用したいインスタンスの起動スクリプトで動的にルーティングの設定を行う。


AutoScale起動時のコンテンツの同期


AutoScaleでインスタンスが作成されるとき、事前に用意したAMIから行われるが、WEBサーバなどコンテンツファイルが頻繁に変わるものは
都度AMIを再作成し、AutoScale設定を修正するのは工数がかかる。
そのため、インスタンス起動時に指定したファイルを同期するようにする。







Auto Scaling



仕様


Auto Scalingはアカウント単位で設定される。
アカウントの認証はAuto Scalingを行ったインスタンスではなく、Security Credentialという認証情報を用いて行われる。
そのため、Auto Scalingを実施する前にはSecurity Credentialの設定を行う必要がある。

設定項目


Auto Scalingは以下の4つの設定を行うことで使用可能となる。


使用方法


「Auto Scaling Command Line Tool」という専用のツールが必要だが、AWSのAMIを使用している場合は標準でインストールされている。
※/opt/aws/bin/。ただし内部的に/opt/aws/apitools/asが呼び出される。
そうでない場合は別途ダウンロードする必要がある。
as-cmdコマンドで「Auto Scaling Command Line Tool」一覧が表示される。

事前準備










regionの設定


regionは東京など複数あるが、東京しか使用しない場合、環境変数として設定しておくことで、
ツールでリージョンの指定を省略できる。


Auto Scaling Command Line Toolのバージョン確認


as-versionコマンドを使用する

Auto Scaling Command Line Toolのバージョンアップ



launch-configの作成



launch-configの削除




auto-scaling-groupの作成


vpc-zone-identifierは複数指定でき、指定したサブネットの中から各サブネットのインスタンス数が均等になるようにスケールされる。
auto-scaling-groupを作成すると即座にAuto Scalingが開始され、インスタンス最低数までインスタンスが作成される。




auto-scaling-groupの修正


作成した既存のauto-scaling-groupの内、任意のパラメータを指定して変更できる



auto-scaling-groupの削除



auto-scaling-groupへインスタンスの追加



  1. インスタンスを追加するグループにそのインスタンスが存在しないことを確認する
    as-describe-auto-scaling-groups <グループ名>
  2. インスタンスをグループに追加する
    as-attach-instances <インスタンスID> --auto-scaling-group <グループ名>
  3. インスタンスを追加するグループにそのインスタンスが追加されたことを確認する
    as-describe-auto-scaling-groups <グループ名>

scaling-policyの作成・修正


指定したパラメータでscaling-policyの作成・修正を行う。




scaling-policyの削除






metric-alarmの作成・修正


指定したパラメータでscaling-policyの作成・修正を行う。
修正の場合も全てのパラメータを指定する必要があり、それで上書きされる。
scaling-policyは同名のポリシーで複数のグループ分作成できるが、metric-alarmは作成できない。




metric-alarmの削除





Security Group


ACL機能の1つで、アクセスコントロールリストを作成して、ホスト単位で適用できる。



仕様


ホワイトリスト方式で各インスタンスのInboud、Outbound通信に対する通信の許可を行うリストを作成できる。
作成したリストはEC2インスタンスやRDSインスタンス、ロードバランサなど、様々なものに適用することができる。

設定はICMP/TCP/UDPなどのプロトコルと、送信元ネットワークアドレス、ポート番号のみで、Denyは定義できない。

ネットワークやホストのセットに対してではなく、各ホストに対して個別に適用するので、
同一のセキュリティグループを適用したインスタンス間通信においても、アクセスコントロールが動作する。
適用対象は複数のセキュリティグループを適用することができる。

送信元ネットワークアドレスにグループ名を指定することで、グループ内通信に関してのみの特定の許可を定義することができる。
ただし、localhostへの通信についてはローカルIPやグローバルアドレスを指定するなど、
どのような宛先指定の方法であっても通信は可能である。

IPを使用した送信元の指定の他、特定のセキュリティグループを適用したホスト全てと言う指定もできる。
別アカウントのセキュリティグループを指定することもできるが、これはClassic-EC2用で、VPCを使用している場合は使用しても意味を成さない。
同一のアカウント内でもグローバルアドレス経由のアクセスの場合、セキュリティグループを使用した制御はできない。
直接IPアドレスを記載する必要がある。


使用方法



グループの新規作成


新しくセキュリティグループを作成する。
新しいグループではInboundは全て拒否、Outboundは全て許可のデフォルトのルールが存在する。

  1. “Create Security Group”ボタンをクリックする
  2. 名前、説明、使用できるVPCを選択して、作成する
  3. リストが作成されるが、初期状態ではリスト内にルールは無い状態である

ルールの追加・削除


セキュリティグループにルールを追加・削除する。
変更は保存時に即時反映される。


  1. 追加したいグループを選択する
  2. 画面下部の詳細情報部分で、追加・削除したい方向(Inbound、Outbound)を選択する
  3. 追加するルールがあれば、記述して、”Add Rule”ボタンをクリックする
  4. 不要なルールがあれば削除する
  5. “Apply Rule Change”ボタンをクリックして保存する


ネットワークACL


サブネット単位で指定できるアクセスコントロールリスト。
特定通信の許可と拒否とを定義できる。
Inboud通信において定義できるのはプロトコル、送信元ポート、送信元アドレス、ALLOW/DENYのみで、宛先は定義できない。
Outbound通信において定義できるのはプロトコル、宛先ポート、宛先アドレス、ALLOW/DENYのみで、送信元は定義できない。
ステートレスであるため、Outbound通信においてPermit Anyとしない場合は戻りの通信の許可を設定する必要がある。
ACLはエントリー番号の昇順にチェックされる。エントリー番号は32766以下で作成できる。

Security GroupとネットワークACLの違いについて。

設定方法


マニュアル









Load Balancer


仕様




使用方法




新規作成







ストレージ (S3)


S3という名前で提供される。



使用方法




新規作成


  1. Create Bucket
  2. バケット名(ストレージの識別子)、リージョンを入力する。バケットは既に存在するものは使用できない。
  3. Createボタンをクリック





パーミッション設定


AWSで複数ユーザによる管理を行っている場合、ユーザごとにS3で行える操作の設定が行える。
また、ファイルやフォルダを外部に公開したり、アップロードを許可したりする際もパーミッションの設定が必要となる














Relational DBMS (RDS)


RDSという名前で提供される。
公式ページ

仕様




MySQL





使用方法



MySQL DBの作成


  1. DB用のサブネットが未作成の場合、作成を行う
    1. 管理メニューからSubnet Groupsを選択する
    2. Create
    3. VPCを選択し、VPC内のサブネットを最低2つ指定する
    4. Yes, Createボタンをクリックする
  2. DBMSの種類を選択する
  3. 製品用途かどうか選択する。Noを選択した場合、後の選択肢が限定されるので簡単に進められるが、通常はYesでよい。
  4. インスタンスの詳細を入力する
    1. ライセンスが複数ある場合は選択する
    2. DBのバージョンを選択する
    3. インスタンスのスペックを選択する
    4. Multi-AZ構成にするかどうかを選択する
    5. ストレージ容量を入力する
    6. IOPSを指定するか、自動スケールアップするかどうかを選択する
    7. DBインスタンスの識別子を入力する
    8. 管理用のユーザ名、パスワードを入力する
  5. 追加の詳細設定を行う
    1. DB名を入力する
    2. ポート番号
    3. インターネットからアクセス可能かどうか(デフォルトがアクセス可能であるので注意)
  6. 管理設定を行う
    1. 自動バックアップを行うかどうか。行う場合、以下も設定する。
      1. バックアップの保存日数を選択する
      2. バックアップを行う時間を指定する場合、入力する
    2. AWS側からDBにメンテナンスを行っても良い時間指定があれば、入力する

スナップショットの作成


スナップショットを作成すると、DBのデータに加え、
AWS上での設定項目のいくつかを保存したデータを作成できる。
スナップショットからDBをリストアすることで、元の状態に復元できる。
ただし、DB IDは既存のものが存在する場合は、同じものを使用できない。


ログの確認(CUI)


RDSのログファイルを見る場合、サーバ自体にはアクセスできないので、専用のツールを使用する必要がある。
ただし、ログを閲覧など、標準ではインストールされていないコマンドがあるので、インストールする必要がある。


フェイルオーバーによるAZ変更


Multi AZを使用している場合、マスターのインスタンスは設定しているAZのいずれかで稼動する。
DBを利用するサーバがそのAZと異なるAZで稼動する場合、いくらかのAZ間通信のオーバーヘッドが発生してしまうため、DBとサーバのAZをそろえたい。
ただし、DBはAZを明示的に指定して起動できないため、フェイルオーバーを行うことで、AZの変更を行う。


タイムゾーン設定


RDBはrootユーザが使用できず、また、権限がないのでタイムゾーンの設定が行えない。
そのため、ストアドプロシージャを作成し、init_connectパラメータに設定して、
接続時に呼び出すことで、タイムゾーンの変更を行う。


VPC移動


RDBのインスタンスを別のVPCやAZに移動する。


databaseの文字コード変更


パラメータで、character_set_databaseをUTF8系に変更しても
インスタンス作成時に同時に作成したDBはlatin1になってしまっている。
DBサーバにログインして、別途修正が必要。







メッセージQueueサーバ (SQS)


公式ページ
サーバ間のメッセージを非同期で行いたい場合に使用できるキューサーバ。
メッセージの保存と取得を行える。


用語


Message ID


各メッセージに割り当てられる100文字以下のID。
クライアント側システムで使用するだけでメッセージをSQSに対して指定するときには使用できない。

Receipt Handles


SQS内部でメッセージを識別するための1024文字以下の文字列。
メッセージを削除するときなどで指定する。

使用方法



新規作成


  1. Create New Queue
  2. キューの情報を入力する
    1. キューの名前を入力する
    2. 各種パラメータを設定する
    3. createボタンをクリックする

パーミッションの設定


キューに対して特定のAWSユーザが行える、メッセージの追加や削除などに対してパーミッションを設定する。
  1. キューを選択する
  2. パーミッションの種類をAllow/Denyから選択する
  3. キューにアクセス可能/不可なAWSユーザを入力する
  4. キューに対するアクション(追加や削除など)を選択する


アプリケーションからの使用




PHP



Tips


パフォーマンスについて


PHPを使用して検証した。
保存に関して、mysqliを使用したRDSアクセスと比較したが、1000件の保存では
mysqli : 6~9秒
SQS : 16~25秒
とSQSが非常に遅い。(それぞれ10回試行。毎回データは消していない。)
SQSはグローバルアクセス+HTTPSがネックになっているのか、この性能差であれば、
非同期のSQSよりも同期のMySQLの方が良いようである。







DNS (Route53)







CDN (CloudFront)


CloudFrontという名前で提供される。
公式ページ

静的コンテンツを配信するキャッシュサーバである。
DNSサーバで問い合わせ元のIPから、そのIPから最も近いであろうサーバのIPを返す。
コンテンツのオリジンサーバとして別途S3やEC2などが必要となる。
配信に独自のドメイン名を使用できるが、別途設定が必要となる。
Route53で管理しているドメインのサブドメインも使用可能で、CloudFrontで設定したドメインをRoute53で別途登録する必要がある。


用語



仕様



使用方法



ディストリビューションの作成


  1. “Create Distribution”をクリックする
  2. コンテンツ配信のプロトコルを選択する。Web(HTTP(S))、RTMPが選択可能。
  3. 詳細情報を入力する
    1. オリジンについての情報を入力する
      1. オリジンサーバのドメイン名を入力する
      2. “Origin ID”として、任意の識別子を入力する
      3. オリジンに対する以下の追加情報を入力する
        • オリジンサーバにS3を指定しなかった場合
          HTTPのみを使用するかどうか、ポート番号を指定する
        • オリジンサーバにS3を指定した場合
          バケットへのアクセスを明示的にしてせずとも全てCloudFront経由にするかどうかを入力する
    2. キャッシュの動作についての設定を入力する
      1. HTTPのみにするか、HTTPSも許可するかを選択する
      2. 許可するプロトコロルを選択する
      3. コンテンツをキャッシュする時間を手動設定するかどうかを選択し、手動設定する場合はその時間を入力する
      4. クッキーを転送するかどうかを選択する
      5. クエリストリングを転送するかどうかを選択する
      6. 署名付きURLのみのアクセスを許可するかどうかを選択する
    3. コンテンツ配信についての設定を入力する
      1. 配信地域を選択する
      2. (オプション)配信に使用する(CNAMEで使用する)ドメイン名を入力する
        Route53で管理するドメインのサブドメインを使用する場合は別途Route53でも登録を行う
      3. (オプション)URLのRoot(http://XXX/)で配信されるコンテンツのパスを指定する
      4. アクセスログを取得するかどうかを選択する
      5. (オプション)コメントを入力する
      6. CloudFrontを使用開始するかどうかを選択する
    4. “Create Distribution”をクリックする


CloudWatch


公式ページ

CloudWatchはEC2やELBなどのリソースのモニタリング機能を提供する。
EC2やRDSでは標準で有効になっており、CPUやメモリ使用率を無料でモニタリングできる。
それらはEC2やRDSのそれぞれのコンソール画面から直接グラフを見ることができる。

用語





使用方法(CLI)


事前準備


APIを使用するので、こちらで鍵などの設定を行う

ツールのアップグレード


  1. 現在のバージョン・リリース日を確認する
    mon-version
  2. 最新版のリリース日をこちらで確認する
  3. バージョンアップの必要があればダウンロードする
    wget http://ec2-downloads.s3.amazonaws.com/CloudWatch-2010-08-01.zip
  4. 展開し、移動させる
    unzip CloudWatch-*.zip
    rm -f CloudWatch-*.zip
    sudo su
    mv CloudWatch-* $AWS_PATH/apitools/
  5. windows用のコマンドは削除する
    rm -f $AWS_PATH/apitools/mon-1.0.13.4/bin/*.cmd
  6. リンクを再作成する
    cd $AWS_PATH/apitools/
    rm -f mon
    ln -s mon-1.0.13.4 mon
  7. 実行パス内の古いファイルを置き換える
    cd $AWS_PATH/bin/
    # 正しく出力されることを確認する
    ls -l | grep mon-1.0.13.4
    ls -l | grep mon-1.0.13.4 | cut -d " " -f 11
    
    # 削除する
    ls -l | grep mon-1.0.13.4 | cut -d " " -f 11 | xargs rm -f
    
    # リンクを作成する
    ln -s $AWS_PATH/apitools/mon-1.0.13.4/bin/* .
  8. バージョン・リリース日が更新されていることを確認する
    mon-version

カスタムメトリックスの作成


カスタムメトリックスは自前で取得した値をCloudWatchへ送ることで実現することができる。
これはmon-put-dataにより実現することができる。
インスタンスIDが必要になるので、こちらを参考に、起動時にファイルに保存するようにしておく









値の確認


mon-get-stats <メトリック名> --namespace <ネームスペース> -s <統計方法> --dimensions "InstanceId=<インスタンスID>"

統計方法では次の値が取得できる。


VPN



公式ページ

用語







仕様



使用方法






Virtual Private Gatewayの作成


  1. “Create Virtual Private Gateway”ボタンをクリックする
  2. 作成されたVirtual Private Gatewayを選択し、VPCにAttachする

Customer Gatewayの作成


  1. “Create Customer Gateway”ボタンをクリックする
  2. ルーティング方法をStaticかDynamicか選択する
    • Staticの場合、Customer Gatewayとして使用するホストのグローバルIPアドレスを入力する
    • Dynamicの場合、Customer Gatewayとして使用するホストのグローバルIPアドレスとAS番号(プライベート可)を入力する

VPN Connectionの作成


  1. “Create VPN Connection”ボタンをクリックする
  2. 接続するVirtual Private GatewayとCustomer Gatewayを選択する
  3. Staticルーティングを行う場合、Customer Gateway側のローカルネットワークアドレスを入力し、Addをクリックする
  4. Createする
  5. 作成したVPN Connectionが使用可能となるまで待つ
  6. 作成したVPN Connectionを選択し、”Download Configuration”を行う
  7. 使用するCustomer Gatewayの情報を選択し、Configurationをダウンロードする
  8. ダウンロードしたConfigurationを機器に投入する。
    この時、通常そのまま投入すればよいが、Tunnelインタフェースの番号やIPsecのパラメータなど、
    グローバルコンフィギュレーションは既存設定と重複しないか確認する必要がある。
  9. Route Tableを開き、VPN Connectionで利用するネットワークアドレス宛のルーティングをVirtual Private Gatewayへ向ける








Hadoopクラスタ (Elastic MapReduce)





新規サービス構築フロー


標準的なWEBサービスの構築フローを記載する。
構成は以下のとおりである。

VPCの作成


  1. 使用するレンジを決める
  2. リージョンを選択し、VPCを作成する
  3. サブネットを作成する
  4. 使用するルーティングテーブルを選択し、不要なものは削除しておく
    ルーティング追加が必要な場合は併せて行う

Tips


固定Private IPの割り当て


インスタンス作成時にSubnetを指定すると、IPアドレスを指定するテキストフィールドが現れる。
そこに任意の値を入力することで、固定IPが使用可能となる。
ただし、先頭の4アドレス、最後の1アドレスはAmazon側で使用するため割り当て不可。

VPCネットワークの拡張


できない。
再度作成しなおす必要がある。

初期化





API


準備


APIを使用する場合、使用するサーバに認証用のファイルを設定する必要がある。


AWS コマンドラインインターフェイス (AWS CLI)


EC2やELBなど一部のコンポーネントは専用のツールが用意されているが、S3などは用意されていない。
そういった場合、AWS全コンポーネントに対してのCLIツール”AWS コマンドラインインターフェイス”を使用する。
ただし現在ではAWS CLIを使用してEC2等含む全サービスを操作するのが主流である。


準備



  1. pythonのインストール
    yum install python
  2. python pipのインストール
    yum install python-pip
  3. AWS CLIのインストール
    pip install awscli


  1. 現在のバージョンを確認する
    aws --version
  2. python pipのインストール
    yum list installed | grep python-pip
    # インストールされていなければインストールする
    yum install python-pip
  3. バージョンアップを行う
    pip install --upgrade awscli


共通オプション



出力形式




EC2




情報表示






ステータス表示





インスタンス起動



aws ec2 start-instances --instance-ids <インスタンスID>[ ...]

インスタンス停止



aws ec2 stop-instances --instance-ids <インスタンスID>[ ...]


S3









EC2 API Tools


EC2専用のコマンドラインツール。現在ではAWS CLIを使うのが主流で、こちらは使用しない。

アップグレード


  1. 現在のバージョン・リリース日を確認する
    ec2-version
  2. 最新版のリリース日をこちらで確認する
  3. バージョンアップの必要があればダウンロードする
    wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
  4. 展開し、移動させる
    unzip ec2-api-tools.zip
    rm -f ec2-api-tools.zip
    sudo su
    mv ec2-api-tools-* $AWS_PATH/apitools/
  5. windows用のコマンドは削除する
    rm -f $AWS_PATH/apitools/ec2-api-tools-1.6.12.0/bin/*.cmd
  6. リンクを再作成する
    cd $AWS_PATH/apitools/
    rm -f ec2
    ln -s ec2-api-tools-1.6.12.0 ec2
  7. 実行パス内の古いファイルを置き換える
    cd $AWS_PATH/bin/
    # 正しく出力されることを確認する
    ls -l | grep ec2-1.6.8.1
    ls -l | grep ec2-1.6.8.1 | cut -d " " -f 11
    
    # 削除する
    ls -l | grep ec2-1.6.8.1 | cut -d " " -f 11 | xargs rm -f
    
    # リンクを作成する
    ln -s $AWS_PATH/apitools/ec2-api-tools-1.6.12.0/bin/* .
  8. バージョン・リリース日が更新されていることを確認する
    ec2-version

インスタンス一覧の表示


ec2-describe-instances --region ap-northeast-1
必ずリージョンをつける必要がある。
vオプションをつけることでXML出力が付加される。
ec2-describe-instances --region ap-northeast-1 -v

aliasを設定し、リージョンを自動設定することも出来る。
alias ec2-describe-instances-ap-northeast-1='ec2-describe-instances --region ap-northeast-1'
再起動時も有効なようにbashrcファイルにも記述しておく。
vi /etc/bashrc


RDS Command Line Toolkit


RDS専用のコマンドラインツール。現在ではAWS CLIを使うのが主流で、こちらは使用しない。

インスタンス一覧の取得


rds-describe-db-instances

ログの確認



メタデータの取得


EC2ではリンクローカルアドレス宛にHTTPでインスタンスIDなど自身の情報を取得することができる。





AWS SDK for PHP


公式:http://docs.aws.amazon.com/aws-sdk-php/guide/latest/index.html
参考:http://docs.aws.amazon.com/aws-sdk-php/latest/

インストール


いくつかの方法が用意されている
http://docs.aws.amazon.com/aws-sdk-php/guide/latest/installation.html


Notice: Trying to get property 'queue' of non-object in /usr/local/wordpress/wp-includes/script-loader.php on line 2876

Warning: Invalid argument supplied for foreach() in /usr/local/wordpress/wp-includes/script-loader.php on line 2876