Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon Elastic Compute Cloud: Linux インスタンス用ユーザーガイド Copyright © 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon. Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Table of Contents Amazon EC2 とは ........................................................................................................................ 1 Amazon EC2 の機能 ............................................................................................................. 1 Amazon EC2 の使用を開始する方法 ........................................................................................ 2 関連サービス ........................................................................................................................ 2 Amazon EC2 へのアクセス .................................................................................................... 3 Amazon EC2 の料金表 .......................................................................................................... 4 PCI DSS への準拠 ................................................................................................................ 4 インスタンスと AMI .............................................................................................................. 4 インスタンス ................................................................................................................ 5 AMI ............................................................................................................................. 6 リージョンとアベイラビリティーゾーン ................................................................................... 8 リージョンとアベイラビリティーゾーンに関する概念 ........................................................ 8 利用できるリージョン ................................................................................................... 9 リージョンとエンドポイント ......................................................................................... 10 リージョンとアベイラビリティーゾーンの記述 ................................................................ 10 リソースのリージョンの指定 ......................................................................................... 13 アベイラビリティーゾーンでのインスタンスの起動 .......................................................... 14 別のアベイラビリティゾーンへのインスタンスの移行 ....................................................... 15 ルートデバイスボリューム .................................................................................................... 15 ルートデバイスストレージの概念 .................................................................................. 16 ルートデバイスタイプによる AMI の選択 ........................................................................ 17 インスタンスのルートデバイスタイプの判別 ................................................................... 18 永続的ルートデバイスボリュームへの変更 ...................................................................... 18 セットアップ .............................................................................................................................. 21 AWS にサインアップする ..................................................................................................... 21 IAM ユーザーを作成する ...................................................................................................... 22 キーペアを作成する ............................................................................................................. 23 Virtual Private Cloud (VPC) の作成 ........................................................................................ 26 セキュリティグループの作成 ................................................................................................. 26 はじめに .................................................................................................................................... 29 概要 .................................................................................................................................. 29 前提条件 ............................................................................................................................ 30 ステップ 1: インスタンスを起動する ...................................................................................... 30 ステップ 2: インスタンスに接続 ............................................................................................ 31 ステップ 3: インスタンスをクリーンアップする ...................................................................... 32 次のステップ ...................................................................................................................... 33 ベストプラクティス ..................................................................................................................... 34 チュートリアル ........................................................................................................................... 36 チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール ................................. 36 関連トピック .............................................................................................................. 46 チュートリアル: WordPress ブログのホスティング .................................................................. 46 前提条件 .................................................................................................................... 47 WordPress のインストール ........................................................................................... 47 次のステップ .............................................................................................................. 54 ヘルプ! パブリック DNS 名が変更されたため、ブログが壊れました ................................... 55 チュートリアル: Amazon Linux で SSL/TLS を使用できるように Apache ウェブサーバーを設定す る ..................................................................................................................................... 56 前提条件 .................................................................................................................... 57 ステップ 1: サーバーでの SSL/TLS の有効化 .................................................................. 57 ステップ 2: CA 署名証明書の取得 ................................................................................. 59 ステップ 3: セキュリティ設定のテストと強化 ................................................................. 63 トラブルシューティング ............................................................................................... 65 チュートリアル: アプリケーションの可用性の向上 ................................................................... 65 前提条件 .................................................................................................................... 66 アプリケーションのスケーリングと負荷分散 ................................................................... 67 iv Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ロードバランサーをテストする ..................................................................................... 68 チュートリアル: インスタンスをリモートで管理する ................................................................ 69 新しいインスタンスの起動 ............................................................................................ 69 ユーザーアカウントに SSM へのアクセス権を付与 .......................................................... 70 SSM エージェントのインストール ................................................................................. 70 EC2 コンソールを使用してコマンドを送信する ............................................................... 72 AWS CLI を使用してコマンドを送信する ........................................................................ 73 Amazon マシンイメージ ............................................................................................................... 75 AMI の使用 ......................................................................................................................... 75 独自の AMI の作成 .............................................................................................................. 76 AMI の購入、共有、販売 ...................................................................................................... 76 AMI の登録解除 .................................................................................................................. 76 Amazon Linux ..................................................................................................................... 76 AMI タイプ ......................................................................................................................... 77 起動許可 .................................................................................................................... 77 ルートデバイスのストレージ ......................................................................................... 77 仮想化タイプ ...................................................................................................................... 80 Linux AMI の検索 ................................................................................................................ 81 Amazon EC2 コンソールを使用した Linux AMI の検索 ..................................................... 81 AWS CLI を使用した AMI の検索 .................................................................................. 82 共有 AMI ............................................................................................................................ 82 共有 AMI を見つける ................................................................................................... 83 AMI を一般公開する .................................................................................................... 85 特定の AWS アカウントと AMI を共有する ..................................................................... 86 ブックマークの使用 ..................................................................................................... 87 共有 Linux AMI のガイドライン ..................................................................................... 88 有料 AMI ............................................................................................................................ 92 ご自分の AMI を販売する ............................................................................................. 93 有料 AMI を見つける ................................................................................................... 93 有料 AMI の購入 ......................................................................................................... 94 インスタンスの製品コードを取得する ............................................................................ 94 有料サポートの利用 ..................................................................................................... 95 有料およびサポート対象の AMI の請求書 ........................................................................ 95 AWS Marketplace サブスクリプションの管理 .................................................................. 95 Amazon EBS-Backed Linux AMI の作成 ................................................................................. 96 Amazon EBS-backed AMI の作成の概要 ......................................................................... 96 インスタンスからの Linux AMI の作成 ............................................................................ 97 スナップショットからの Linux AMI の作成 ..................................................................... 99 Instance Store-Backed Linux AMI の作成 .............................................................................. 100 Instance Store-Backed AMI の作成プロセスの概要 ......................................................... 100 前提条件 .................................................................................................................. 101 AMI ツールを設定する ................................................................................................ 101 Instance Store-Backed インスタンスから AMI を作成する ............................................... 127 Amazon EBS-Backed AMI への変換 ............................................................................. 137 暗号化されたスナップショットを持つ AMI ............................................................................ 140 暗号化された EBS スナップショットを含める AMI シナリオ ............................................ 141 AMI のコピー .................................................................................................................... 143 アクセス許可 ............................................................................................................ 144 リージョン間での AMI のコピー .................................................................................. 144 アカウント間での AMI のコピー .................................................................................. 145 暗号化と AMI のコピー .............................................................................................. 146 AMI のコピー ............................................................................................................ 147 保留中の AMI コピー操作を中止する ............................................................................ 148 AMI の登録解除 ................................................................................................................. 149 Amazon EBS-Backed AMI をクリーンアップする ........................................................... 149 Instance Store-Backed AMI をクリーンアップする ......................................................... 150 Amazon Linux ................................................................................................................... 151 Amazon Linux AMI の検索 .......................................................................................... 152 v Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon Linux インスタンスを起動し、それに接続する ................................................... 152 Amazon Linux AMI イメージの特定 .............................................................................. 152 組み込まれている AWS コマンドラインツール .............................................................. 153 cloud-init ............................................................................................................. 154 リポジトリの設定 ...................................................................................................... 155 パッケージの追加 ...................................................................................................... 156 参照のためのソースパッケージへのアクセス ................................................................. 157 アプリケーションの開発 ............................................................................................. 157 インスタンスストアアクセス ....................................................................................... 157 製品ライフサイクル ................................................................................................... 157 セキュリティの更新 ................................................................................................... 158 のサポート ............................................................................................................... 158 ユーザー提供カーネル ........................................................................................................ 159 HVM AMI (GRUB) ..................................................................................................... 159 AMI の準仮想化 (PV-GRUB) ........................................................................................ 160 インスタンス ............................................................................................................................ 166 インスタンスタイプ ........................................................................................................... 167 利用可能なインスタンスタイプ .................................................................................... 167 ハードウェア仕様 ...................................................................................................... 168 仮想化タイプ ............................................................................................................ 169 ネットワーキング機能とストレージ機能 ....................................................................... 169 インスタンスの制限 ................................................................................................... 170 T2 インスタンス ........................................................................................................ 171 コンピュート最適化インスタンス ................................................................................. 174 メモリ最適化インスタンス .......................................................................................... 177 ストレージ最適化インスタンス .................................................................................... 180 高速コンピューティングインスタンス ........................................................................... 184 T1 マイクロインスタンス ........................................................................................... 189 インスタンスのサイズ変更 .......................................................................................... 200 インスタンス購入オプション ............................................................................................... 204 インスタンスのライフサイクルの決定 ........................................................................... 204 リザーブドインスタンス ............................................................................................. 205 スケジュールされたインスタンス ................................................................................. 230 スポットインスタンス ................................................................................................ 234 Dedicated Hosts ........................................................................................................ 283 ハードウェア専有インスタンス .................................................................................... 294 インスタンスのライフサイクル ............................................................................................ 299 インスタンスの作成 ................................................................................................... 299 インスタンスの停止と起動 (Amazon EBS-Backed インスタンスのみ) ................................ 300 インスタンスの再起動 ................................................................................................ 300 インスタンスのリタイア ............................................................................................. 300 インスタンスの終了 ................................................................................................... 301 再起動、停止、終了の違い .......................................................................................... 301 作成する .................................................................................................................. 302 接続 ......................................................................................................................... 314 停止と起動 ............................................................................................................... 327 再起動 ..................................................................................................................... 330 リタイア .................................................................................................................. 331 削除 ......................................................................................................................... 333 復旧 ......................................................................................................................... 339 インスタンスの設定 ........................................................................................................... 339 一般的な設定シナリオ ................................................................................................ 340 ソフトウェアの管理 ................................................................................................... 340 ユーザーの管理 ......................................................................................................... 349 プロセッサのステート制御 .......................................................................................... 351 時刻の設定 ............................................................................................................... 356 ホスト名の変更 ......................................................................................................... 359 動的な DNS のセットアップ ....................................................................................... 362 vi Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 起動時のコマンドの実行 ............................................................................................. 363 インスタンスメタデータとユーザーデータ .................................................................... 367 混在コンピューティング環境での EC2 インスタンスの特定 ..................................................... 383 Amazon EC2 Systems Manager .................................................................................................. 385 ご利用開始にあたって ........................................................................................................ 386 前提条件 .......................................................................................................................... 387 SSM エージェントのインストール ....................................................................................... 389 起動時に EC2 インスタンスに SSM エージェントをインストールする ............................... 390 SSM エージェントの手動インストール (EC2 インスタンス上) .......................................... 391 SSM エージェントがプロキシを使用するように設定する ................................................. 396 SSM エージェントのアンインストール ......................................................................... 397 ハイブリッド環境での Systems Manager のセットアップ ........................................................ 398 IAM サービスロールの作成 ......................................................................................... 399 マネージドインスタンスのアクティベーションを作成する ............................................... 399 ハイブリッド環境のサーバーおよび VM への SSM エージェントのインストール ................. 400 アクセス設定 .................................................................................................................... 401 SSM 管理ポリシーを使用する ..................................................................................... 402 独自のロールとポリシーの設定 .................................................................................... 402 EC2 インスタンスロールを使用する EC2 インスタンスを作成する ................................... 407 共有コンポーネント ........................................................................................................... 408 cron スケジュール ..................................................................................................... 408 メンテナンスウィンドウ ............................................................................................. 411 パラメーターストア ................................................................................................... 430 リモート管理 .................................................................................................................... 440 コンポーネントおよび概念 .......................................................................................... 441 コマンドの実行 ......................................................................................................... 444 SSM ドキュメントの作成 ........................................................................................... 453 SSM ドキュメントの共有 ........................................................................................... 455 コマンドのステータスとモニタリング ........................................................................... 461 Run Command のトラブルシューティング .................................................................... 472 在庫管理 .......................................................................................................................... 475 Inventory の開始方法 .................................................................................................. 475 Systems Manager Inventory ........................................................................................ 475 インベントリ収集の設定 ............................................................................................. 477 インベントリ収集の照会 ............................................................................................. 478 Inventory Manager のチュートリアル ........................................................................... 478 状態マネージメント ........................................................................................................... 483 仕組み ..................................................................................................................... 483 State Manager の開始方法 .......................................................................................... 483 ドキュメントの作成 ................................................................................................... 483 State Manager の関連付け .......................................................................................... 486 State Manager のチュートリアル ................................................................................. 487 メンテナンスとデプロイの自動化 ......................................................................................... 490 アクセス設定 ............................................................................................................ 490 Automation のチュートリアル ...................................................................................... 493 Automation ドキュメントのアクションのリファレンス .................................................... 501 Automation システム変数 ............................................................................................ 510 モニタリング ............................................................................................................................ 521 自動モニタリングと手動モニタリング ................................................................................... 523 自動モニタリングツール ............................................................................................. 523 手動モニタリングツール ............................................................................................. 524 モニタリングのベストプラクティス ...................................................................................... 524 インスタンスのステータスのモニタリング ............................................................................ 525 インスタンスの状態チェック ....................................................................................... 525 予定されているイベント ............................................................................................. 530 CloudWatch を使用したインスタンスのモニタリング .............................................................. 534 詳細モニタリングを有効化 .......................................................................................... 534 利用可能なメトリクスのリスト表示 .............................................................................. 536 vii Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する ................................................................................. メトリクスをグラフ化 ................................................................................................ アラームの作成 ......................................................................................................... インスタンスを停止、終了、再起動、または復旧するアラームを作成する ......................... メモリとディスクのメトリクスのモニタリング ...................................................................... 前提条件 .................................................................................................................. ご利用開始にあたって ................................................................................................ mon-put-instance-data.pl ............................................................................................. mon-get-instance-stats.pl ............................................................................................ コンソールでのカスタムメトリクスの表示 .................................................................... ネットワークとセキュリティ ....................................................................................................... キーペア .......................................................................................................................... Amazon EC2 を使用してキーペアを作成する ................................................................ 独自のキーペアを Amazon EC2 にインポートする ......................................................... キーペアのパブリックキーを取得する (Linux) ................................................................ キーペアのパブリックキーを取得する (Windows) ........................................................... キーペアのフィンガープリントの確認 ........................................................................... キーペアの削除 ......................................................................................................... プライベートキーを紛失した場合の Linux インスタンスへの接続 ...................................... セキュリティグループ ........................................................................................................ EC2-Classic 用セキュリティグループ ........................................................................... EC2-VPC 用セキュリティグループ ............................................................................... セキュリティグループのルール .................................................................................... デフォルトのセキュリティグループ .............................................................................. カスタムのセキュリティグループ ................................................................................. セキュリティグループを操作する ................................................................................. セキュリティグループのルールのリファレンス .............................................................. アクセスの制御 ................................................................................................................. インスタンスへのネットワークアクセス ....................................................................... Amazon EC2 のアクセス許可属性 ................................................................................ IAM と Amazon EC2 ................................................................................................. IAM ポリシー ............................................................................................................ IAM ロール ............................................................................................................... ネットワークアクセス ................................................................................................ Amazon VPC .................................................................................................................... VPC を使用する利点 .................................................................................................. EC2-Classic と EC2-VPC の違い ................................................................................. EC2-Classic と EC2-VPC との間でのリソースの共有とアクセス ...................................... VPC でのみ利用可能なインスタンスタイプ ................................................................... Amazon VPC ドキュメント ........................................................................................ サポートされているプラットフォーム ........................................................................... ClassicLink ............................................................................................................... EC2-Classic から VPC への移行 .................................................................................. インスタンスの IP アドレッシング ....................................................................................... プライベート IPv4 アドレスと内部 DNS ホスト名 .......................................................... パブリック IPv4 アドレスと外部 DNS ホスト名 ............................................................. Elastic IP アドレス (IPv4) ........................................................................................... Amazon DNS サーバー .............................................................................................. IPv6 アドレス ........................................................................................................... EC2-Classic と EC2-VPC の IP アドレスの違い ............................................................. インスタンスの IP アドレスの使用 ............................................................................... 複数の IP アドレス .................................................................................................... Elastic IP アドレス ............................................................................................................ Elastic IP アドレスの基本 ........................................................................................... EC2-Classic と EC2-VPC の Elastic IP アドレスの相違点 ................................................ Elastic IP アドレスの操作 ........................................................................................... 電子メールアプリケーションでの逆引き DNS の使用 ...................................................... Elastic IP アドレスの制限 ........................................................................................... viii 542 550 550 551 560 561 562 563 567 568 569 570 571 572 573 574 574 575 576 579 580 580 580 582 583 583 587 594 594 594 595 596 634 640 642 643 643 646 648 649 649 650 661 672 672 673 674 675 675 675 677 681 689 690 690 692 696 696 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ネットワークインターフェイス ............................................................................................ 697 各インスタンスタイプのネットワークインターフェイスあたりの IP アドレス数 .................. 698 ネットワークインターフェイスのシナリオ .................................................................... 701 ネットワークインターフェイスの設定に関するベストプラクティス ................................... 703 ec2-net-utils を使用したネットワークインターフェイスの設定 .......................................... 704 ネットワークインターフェイスでの作業 ....................................................................... 705 プレイスメントグループ ..................................................................................................... 714 プレイスメントグループの制限 .................................................................................... 715 プレイスメントグループへのインスタンスの起動 ........................................................... 716 プレイスメントグループを削除する .............................................................................. 717 ネットワーク MTU ............................................................................................................ 717 ジャンボフレーム (9001 MTU) .................................................................................... 718 パス MTU 検出 ......................................................................................................... 718 2 つホスト間のパス MTU の確認 ................................................................................. 719 Amazon EC2 インスタンス上の MTU の確認および設定 .................................................. 719 トラブルシューティング ............................................................................................. 720 拡張ネットワーキング ........................................................................................................ 720 拡張ネットワーキングのタイプ .................................................................................... 721 インスタンスでの拡張ネットワーキングの有効化 ........................................................... 721 拡張ネットワーキングの有効化: Intel 82599 VF .............................................................. 721 拡張ネットワーキングの有効化: ENA ............................................................................ 732 ENA のトラブルシューティング .................................................................................. 742 ストレージ ............................................................................................................................... 749 Amazon EBS .................................................................................................................... 750 Amazon EBS の機能 .................................................................................................. 751 EBS ボリューム ........................................................................................................ 752 EBS スナップショット .............................................................................................. 805 EBS 最適化 .............................................................................................................. 813 EBS 暗号化 .............................................................................................................. 817 EBS パフォーマンス .................................................................................................. 821 EBS CloudWatch イベント ......................................................................................... 839 インスタンスストア ........................................................................................................... 846 インスタンスストアの存続期間 .................................................................................... 846 インスタンスストアボリューム .................................................................................... 847 インスタンスストアボリュームを追加する .................................................................... 849 SSD インスタンスストアボリューム ............................................................................ 852 インスタンスストアスワップボリューム ....................................................................... 855 ディスクパフォーマンスの最適化 ................................................................................. 857 Amazon EFS .................................................................................................................... 858 前提条件 .................................................................................................................. 859 ステップ 1: EFS ファイルシステムの作成 ..................................................................... 859 ステップ2: ファイルシステムをマウントします。 ........................................................... 860 ステップ3: ファイルシステムをテストする .................................................................... 861 手順 4: クリーンアップ .............................................................................................. 862 Amazon S3 ...................................................................................................................... 862 Amazon S3 と Amazon EC2 ....................................................................................... 863 インスタンスボリューム数の制限 ......................................................................................... 864 Linux 固有のボリュームの制限 .................................................................................... 864 Windows 固有のボリュームの制限 ............................................................................... 865 帯域幅と容量 ............................................................................................................ 865 デバイスの名前付け ........................................................................................................... 865 使用できるデバイス名 ................................................................................................ 866 デバイス名に関する考慮事項 ....................................................................................... 866 ブロックデバイスマッピング ............................................................................................... 867 ブロックデバイスマッピングの概念 .............................................................................. 867 AMI ブロックデバイスマッピング ................................................................................ 870 インスタンスブロックデバイスマッピング .................................................................... 872 パブリックデータセットの使用 ............................................................................................ 877 ix Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パブリックデータセットの概念 .................................................................................... 877 パブリックデータセットの検索 .................................................................................... 877 スナップショットからパブリックデータセットボリュームを作成する ................................ 878 パブリックデータセットボリュームをアタッチしてマウントする ...................................... 879 リソースとタグ ......................................................................................................................... 880 リソースの場所 ................................................................................................................. 880 リソース ID ...................................................................................................................... 881 長い ID の使用 .......................................................................................................... 882 長い ID 設定に対するアクセスの制御 ........................................................................... 885 リソースのリスト表示とフィルタリング ............................................................................... 885 高度な検索 ............................................................................................................... 886 コンソールを使用してリソースをリスト表示する ........................................................... 887 コンソールを使用してリソースをフィルタリングする ..................................................... 887 CLI および API を使用した一覧表示とフィルタリング ..................................................... 888 リソースにタグを付ける ..................................................................................................... 889 タグの基本 ............................................................................................................... 889 タグの制限 ............................................................................................................... 890 請求用のリソースにタグを付ける ................................................................................. 892 コンソールでのタグの処理 .......................................................................................... 892 CLI または API でのタグの操作 ................................................................................... 898 サービス制限 .................................................................................................................... 899 現在の制限との表示 ................................................................................................... 899 制限の引き上げのリクエスト ....................................................................................... 900 使用状況レポート .............................................................................................................. 901 使用可能なレポート ................................................................................................... 901 使用状況レポートをセットアップする ........................................................................... 901 IAM ユーザーに Amazon EC2 使用状況レポートへのアクセス権を付与する ........................ 902 インスタンスの使用 ................................................................................................... 903 リザーブドインスタンスの使用率 ................................................................................. 907 トラブルシューティング ............................................................................................................. 913 インスタンスの起動 ........................................................................................................... 913 インスタンスの終了理由の取得 .................................................................................... 914 インスタンスへの接続 ........................................................................................................ 914 インスタンスへの接続エラー: 接続タイムアウト ............................................................ 915 エラー: ユーザーキーがサーバーによって認識されない ................................................... 917 エラー: Host key not found、Permission denied (publickey)、または Authentication failed, permission denied (ホストキーが見つかりません、権限の拒否 (publickey)、または認証失 敗、権限の拒否) ........................................................................................................ 918 エラー: Unprotected Private Key File (保護されていないプライベートキーファイル) ............ 919 エラー: Server refused our key または No supported authentication methods available (サー バーはキーを拒否しましたまたは利用可能なサポートされる認証方法はありません) ............ 920 Safari ブラウザでの MindTerm 使用のエラー ................................................................. 920 Mac OS X RDP クライアント使用時のエラー ................................................................ 921 インスタンスに対して Ping を実行できない .................................................................. 921 インスタンスの停止 ........................................................................................................... 921 インスタンスの終了 ........................................................................................................... 922 インスタンスの終了の遅延 .......................................................................................... 923 表示されているインスタンスを終了する ....................................................................... 923 インスタンスを自動的に起動または終了する ................................................................. 923 インスタンスの復旧の失敗 .................................................................................................. 923 失敗したステータスチェック ............................................................................................... 924 最初の手順 ............................................................................................................... 924 システムログの取得 ................................................................................................... 925 Linux ベースのインスタンスに関するシステムログエラーのトラブルシューティング ........... 925 メモリ不足: プロセスの終了 ........................................................................................ 926 エラー: mmu_update failed (メモリ管理の更新に失敗しました) ......................................... 927 I/O エラー (ブロックデバイス障害) .............................................................................. 928 x Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド I/O エラー: ローカルでもリモートディスクでもありません (破損した分散ブロックデバイ ス) ........................................................................................................................... 929 request_module: runaway loop modprobe (古い Linux バージョンでレガシーカーネル modprobe がループしている) ...................................................................................... 930 「FATAL: kernel too old」および「fsck: No such file or directory while trying to open /dev」 (カーネルと AMI の不一致) ......................................................................................... 931 「FATAL: Could not load /lib/modules」または「BusyBox」 (カーネルモジュールの欠如) ..... 931 エラー: 無効のカーネル (EC2 と互換性のないカーネル) .................................................. 933 request_module: runaway loop modprobe (古い Linux バージョンでレガシーカーネル modprobe がループしている) ...................................................................................... 934 fsck: No such file or directory while trying to open... (ファイルシステムが見つからない) ........ 935 General error mounting filesystems (マウント失敗) ......................................................... 936 VFS: Unable to mount root fs on unknown-block (ルートファイルシステム不一致) ............... 938 エラー: Unable to determine major/minor number of root device... (ルートファイルシステム/ デバイス不一致) ........................................................................................................ 939 XENBUS: Device with no driver... ................................................................................ 940 ... days without being checked, check forced (ファイルシステムのチェックが必要です) ........ 941 fsck died with exit status... (デバイスが見つかりません) ................................................... 941 GRUB プロンプト (grubdom>) .................................................................................... 942 Bringing up interface eth0: Device eth0 has different MAC address than expected, ignoring. (ハードコードされた MAC アドレス) ............................................................................ 944 SELinux ポリシーを読み込めません。Machine is in enforcing mode. Halting now. (SELinux の誤設定) ................................................................................................................. 945 XENBUS: Timeout connecting to devices (Xenbus タイムアウト) ...................................... 946 インスタンスの容量 ........................................................................................................... 947 エラー: InsufficientInstanceCapacity ............................................................................. 947 エラー: InstanceLimitExceeded .................................................................................... 948 コンソール出力の取得とインスタンスの再起動 ...................................................................... 948 インスタンスの再起動 ................................................................................................ 948 インスタンスコンソール出力 ....................................................................................... 948 接続できないインスタンスのスクリーンショットの取得 .................................................. 949 ホストコンピュータに障害が発生した場合のインスタンスの復旧 ...................................... 949 インスタンスが間違ったボリュームで起動する ...................................................................... 950 ドキュメント履歴 ...................................................................................................................... 952 AWS の用語集 .......................................................................................................................... 969 xi Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 の機能 Amazon EC2 とは Amazon Elastic Compute Cloud (Amazon EC2) は、アマゾン ウェブ サービス (AWS) クラウドでサ イズが変更できるコンピューティングキャパシティを提供します。Amazon EC2 の使用により、ハー ドウェアに事前投資する必要がなくなり、アプリケーションをより速く開発およびデプロイできま す。Amazon EC2 を使用すると、必要な数 (またはそれ以下) の仮想サーバーを起動でき、セキュリ ティおよびネットワーキングを構成でき、ストレージを管理できます。Amazon EC2 により、要件変 更や需要増に対応して拡張または縮小できるため、トラフィック予測が不要になります。 クラウドコンピューティングの詳細については、「クラウドコンピューティングとは」を参照してく ださい。 Amazon EC2 の機能 Amazon EC2 には次の機能があります。 • インスタンスと呼ばれる仮想コンピューティング環境 • サーバーに必要なビットをパッケージ化した (オペレーティングシステムおよび追加のソフトウェ アを含む)、Amazon Machine Image (AMI) と呼ばれる、インスタンス用に事前に設定されたテンプ レート。 • インスタンスタイプと呼ばれる、インスタンス用の CPU、メモリ、ストレージ、ネットワーキング キャパシティのさまざまな構成 • キーペアを使用したインスタンス用の安全なログイン情報 (AWS はパブリックキーを保存し、ユー ザーはプライベートキーを安全な場所に保存します)。 • インスタンスストアボリュームと呼ばれる、インスタンスを停止または終了するときに削除される 一時データ用のストレージボリューム • Amazon EBS ボリュームと呼ばれる、Amazon Elastic Block Store (Amazon EBS) を使用したデー タ用の永続的ストレージボリューム • リージョンおよびアベイラビリティゾーンと呼ばれる、インスタンスや Amazon EBS ボリュームな どのリソース用の複数の物理的な場所 • セキュリティグループを使用してインスタンスに到達可能で、プロトコル、ポート、ソース IP 範囲 を指定できるファイアウォール • Elastic IP アドレスと呼ばれる、動的クラウドコンピューティング用の静的な IPv4 アドレス • タグと呼ばれ、作成して Amazon EC2 リソースに割り当てることができるメタデータ • 残りの AWS クラウドから論理的に分離され、ユーザー独自のネットワークにオプションで接続で きる、仮想プライベートクラウド (VPC) と呼ばれる仮想ネットワーク Amazon EC2 の機能詳細については、Amazon EC2 製品ページを参照してください。 1 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 の使用を開始する方法 AWS でのウェブサイトの実行の詳細については、「ウェブサイトとウェブサイトホスティング」を参 照してください。 Amazon EC2 の使用を開始する方法 最初に必要なことは、Amazon EC2 を使用するようにセットアップすることです。セットアップが終 了したら、Amazon EC2 の使用開始チュートリアルを完了する準備が整います。Amazon EC2 の機能 について詳細情報が必要なときは、技術ドキュメントを参照できます。 起動と実行 • Amazon EC2 でのセットアップ (p. 21) • Amazon EC2 Linux インスタンスの開始方法 (p. 29) 基礎 • インスタンスと AMI (p. 4) • リージョンとアベイラビリティーゾーン (p. 8) • インスタンスタイプ (p. 167) • Tags (p. 889) ネットワークとセキュリティ • Amazon EC2 のキーペア (p. 570) • 個のセキュリティグループ (p. 579) • Elastic IP アドレス (p. 689) • Amazon EC2 と Amazon VPC (p. 642) ストレージ • Amazon EBS (p. 750) • インスタンスストア (p. 846) Linux インスタンスの使用 • リモート管理 (p. 440) • チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール (p. 36) • チュートリアル: Amazon Linux で SSL/TLS を使用できるように Apache ウェブサーバーを設定す る (p. 56) • AWS の使用開始: Linux 向けウェブアプリケーションのホスティング AWS がお客様に最適かどうかご質問がある場合は、AWS セールスまでお問い合わせくださ い。Amazon EC2 について質問がある場合は、Amazon EC2 forum をご利用ください。 関連サービス インスタンスやボリュームなど、Amazon EC2 のリソースは Amazon EC2 を使用して直接プロビジョ ニングできます。また、AWS の他のサービスを使用して Amazon EC2 リソースをプロビジョニング することもできます。詳細については、次のドキュメントを参照してください。 2 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 へのアクセス • Auto Scaling ユーザーガイド • AWS CloudFormation ユーザーガイド • AWS Elastic Beanstalk 開発者ガイド • AWS OpsWorks ユーザーガイド 受信アプリケーショントラフィックを複数のインスタンスに自動的に分散するには、Elastic Load Balancing を使用します。詳細については、「Elastic Load Balancing ユーザーガイド」を参照してく ださい。 インスタンスと Amazon EBS ボリュームの基本的な統計情報をモニタリングするには、Amazon CloudWatch を使用します。詳細については、「Amazon CloudWatch ユーザーガイド」を参照してく ださい。 アカウントの Amazon EC2 API 宛ての呼び出し (AWS マネジメントコンソール、コマンドラインツー ル、その他のサービスによって行われる呼び出しを含む) をモニタリングするには、AWS CloudTrail を使用します。詳細については、AWS CloudTrail User Guide を参照してください。 クラウドで管理されたリレーショナルデータベースを取得するには、Amazon Relational Database Service (Amazon RDS) を使用してデータベースインスタンスを起動します。EC2 インスタンス上で データベースをセットアップできますが、Amazon RDS には、ソフトウェアのパッチ処理、バック アップ、バックアップの保存など、データベース管理タスクを処理できるという利点があります。詳 細については、「Amazon Relational Database Service 開発者ガイド」を参照してください。 仮想マシン (VM) イメージをローカル環境から AWS にインポートして、利用可能な状態の AMI また はインスタンスに変換するには、VM Import/Export を使用します。詳細については、「VM Import/ Export ユーザーガイド」を参照してください。 Amazon EC2 へのアクセス Amazon EC2 には、Amazon EC2 コンソールというウェブベースのユーザーインターフェイスがあ ります。AWS アカウントにサインアップ済みの場合は、AWS マネジメントコンソールにサインイン し、コンソールのホームページから [EC2] を選択することで、Amazon EC2 コンソールにアクセスで きます。 コマンドラインインターフェイスを使用する場合は、以下の選択肢があります。 AWS コマンドラインインターフェイス (CLI) 一連のさまざまな AWS 製品用のコマンドを提供し、Windows、Mac、および Linux でサポート されています。開始するには、AWS Command Line Interface ユーザーガイド を参照してくださ い。Amazon EC2 のコマンドの詳細については、「AWS Command Line Interface Reference」の 「ec2」を参照してください。 AWS Tools for Windows PowerShell PowerShell 環境でスクリプトを記述するユーザー向けに、さまざまな AWS 製品用のコマンドが 用意されています。開始するには、「AWS Tools for Windows PowerShell ユーザーガイド」を 参照してください。Amazon EC2 のコマンドレットに関する詳細は、「AWS Tools for Windows PowerShell Reference」を参照してください。 Amazon EC2 はクエリ API を提供します。このリクエストは、HTTP 動詞 (GET または POST) とク エリパラメーター Action で記述する HTTP または HTTPS リクエストです。Amazon EC2 用の API アクションの詳細については、「Amazon EC2 API Reference」の「Actions」を参照してください。 HTTP または HTTPS を介してリクエストを送信する代わりに、言語固有の API を使用してアプリ ケーションを構築することを希望する場合に備えて、AWS には、ソフトウェア開発者向けのライブラ リ、サンプルコード、チュートリアル、その他のリソースが用意されています。これらのライブラリ 3 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 の料金表 には、リクエストの暗号化署名、リクエストの再試行、エラーレスポンスの処理などのタスクを自動 化する基本機能が用意されているので、開発を簡単に始められます。詳細については、AWS の SDK およびツールを参照してください。 Amazon EC2 の料金表 AWS にサインアップすると、AWS 無料利用枠を利用して、Amazon EC2 を無料で使い始めることが できます。 Amazon EC2 では、インスタンス用に次の購入オプションが用意されています。 オンデマンドインスタンス 時間単位で使用するインスタンスに対して支払いを行い、長期的な確約や前払い金は不要です。 リザーブドインスタンス インスタンスに対して低額の一括前払いを行い、1 年または 3 年間それを予約することで、その インスタンスを実行する時間料金を大幅に削減できます。 スポットインスタンス 特定のインスタンスタイプを実行するためにお客様が支払いたい最大時間料金を指定することが できます。スポット価格は需要と供給に基づいて変動しますが、お客様が指定した上限価格を超 えた支払いが発生することはありません。スポット価格が上限価格を超えた場合、Amazon EC2 はスポットインスタンスをシャットダウンします。 Amazon EC2 の課金および特定の料金の詳細な一覧については、「Amazon EC2 料金表」を参照して ください。 プロビジョニングされたサンプル環境の費用を計算するには、「AWS エコノミクスセンター」を参照 してください。 請求書を確認するには、AWS アカウントアクティビティページを参照してください。請求書には、料 金の明細が記載された使用状況レポートへのリンクが記載されています。AWS アカウント請求の詳細 については、「AWS Account Billing」を参照してください。 AWS の請求、アカウント、イベントについてご質問がある場合は、AWS サポートにお問い合わせく ださい。 AWS 環境のコスト、セキュリティ、およびパフォーマンスを最適化できるサービスである Trusted Advisor の概要については、AWS Trusted Advisor を参照してください。 PCI DSS への準拠 Amazon EC2 は、マーチャントまたはサービスプロバイダーによるクレジットカードデータの処理、 ストレージ、および伝送をサポートしており、Payment Card Industry (PCI) Data Security Standard (DSS) に準拠していることが確認されています。PCI DSS の詳細 (AWS PCI Compliance Package の コピーをリクエストする方法など) については、「PCI DSS レベル 1」を参照してください。 インスタンスと AMI Amazon マシンイメージ (AMI) は、ソフトウェア構成 (オペレーティングシステム、アプリケーショ ンサーバー、アプリケーションなど) を記録したテンプレートです。AMI から、クラウドで仮想サー バーとして実行される AMI のコピーであるインスタンスを起動します。以下の図に示すように、1 つ の AMI の複数のインスタンスを起動することができます。 4 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンス インスタンスは、停止または終了させるか、エラーが発生するまで実行を続けます。インスタンスが エラーで終了した場合は、元の AMI から新しいインスタンスを起動できます。 インスタンス 1 つの AMI から、複数の異なるタイプのインスタンスを起動することもできます。インスタンスタ イプとは本質的に、インスタンスに使用されるホストコンピュータのハードウェアを決定するもので す。インスタンスタイプごとに異なる処理内容やメモリの機能が提供されます。インスタンスタイプ は、インスタンス上で実行するアプリケーションやソフトウェアに必要なメモリの量と処理能力に応 じて選択します。各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」を参照してください。 インスタンスの起動後は、通常のホストのように表示され、任意のコンピュータと同じように操作で きます。インスタンスは完全に制御でき、sudo を使用して、ルート権限を必要とするコマンドを実行 できます。 AWS アカウントでは、稼動できるインスタンスの数に制限があります。この制限の詳細、および増加 を要求する方法については、Amazon EC2 の全般的なよくある質問の「 Amazon EC2 ではいくつのイ ンスタンスを稼動できますか」を参照してください。 インスタンスのストレージ インスタンスのルートデバイスには、インスタンスの起動に使用されるイメージが含まれています。 詳細については、「Amazon EC2 ルートデバイスボリューム (p. 15)」を参照してください。 インスタンスには、インスタンスストアボリュームと呼ばれるローカルストレージボリュームを含め ることができます。これはブロックデバイスマッピングによって起動時に設定できます。詳細につい ては、「ブロックデバイスマッピング (p. 867)」を参照してください。これらのボリュームがインス タンスに追加およびマッピングされたら、マウントして使用することができます。インスタンスが失 敗、停止、または終了した場合、それらのボリュームのデータは失われます。したがって、これらの ボリュームは一時データとして使用するのが最適です。重要なデータの場合、データの安全を維持す るには、複数のインスタンスにわたるレプリケーション方法を使用する必要があります。あるいは、 永続的なデータを Amazon S3 または Amazon EBS ボリュームに格納してください。詳細について は、「ストレージ (p. 749)」を参照してください。 セキュリティのベストプラクティス • AWS Identity and Access Management (IAM) を使用して、ご利用のインスタンスを含め、AWS リソースへのアクセスを制御します。AWS アカウントで IAM ユーザーとグループを作成し、そ れぞれにセキュリティ認証情報を割り当て、それぞれが AWS のリソースとサービスに対して持 つアクセスを制御できます。詳細については、「Amazon EC2 のリソースに対するアクセスの制 御 (p. 594)」を参照してください。 5 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI • 信頼されたホストまたはネットワークのみがインスタンスのポートにアクセスできるように制限し ます。たとえば、ポート 22 の受信トラフィックを制限することで SSH アクセスを制限できます。 詳細については、「Linux インスタンスの Amazon EC2 セキュリティグループ (p. 579)」を参照 してください。 • セキュリティグループのルールを定期的に確認し、最小権限の原則を適用してください。つまり、 必要なアクセス許可のみを開きます。また、さまざまなセキュリティグループを作成して、異なる セキュリティ要件を持つ各インスタンスに対応することもできます。外部ログインが許可された基 本となるセキュリティグループの作成を検討し、外部ログインが許可されていないグループで残り のインスタンスを管理してください。 • AMI から起動されるインスタンスについてはパスワードベースのログインを無効にしてくださ い。パスワードは検知または解読される恐れがあり、セキュリティ上のリスクです。詳細について は、「ルートのパスワードベースのリモートログインを無効にする (p. 89)」を参照してくださ い。AMI の安全な共有の詳細については、「共有 AMI (p. 82)」を参照してください。 インスタンスの停止、開始、および終了 インスタンスの停止 インスタンスが停止されると、インスタンスは通常のシャットダウンを実行してから、stopped 状態 に移行します。そのすべての Amazon EBS ボリュームはアタッチされたままになり、後でインスタン スを再び開始することができます。 インスタンスが停止状態にあるとき、追加のインスタンス時間分が課金されることはありません。イ ンスタンスを停止状態から実行状態に移行するたびに 1 時間分のインスタンス時間が課金されます。 このような移行が 1 時間の間に何度も行われる場合であっても、その回数ごとに 1 時間分が課金され ます。インスタンスが停止状態にあるときにインスタンスタイプを変更した場合、インスタンスを起 動すると同時に新しいインスタンスタイプの料金が課金されます。ルートデバイスの使用を含め、イ ンスタンスに関連する Amazon EBS の使用はすべて、Amazon EBS 料金で課金されます。 インスタンスが停止状態の場合は、Amazon EBS ボリュームをアタッチおよびデタッチできます。イ ンスタンスから AMI を作成し、カーネル、RAM ディスク、インスタンスタイプを変更することもで きます。 インスタンスを終了した インスタンスを終了すると、そのインスタンスは標準のシャットダウンを実行します。その後、 ボリュームの deleteOnTermination 属性が false に設定されない限り、アタッチされている Amazon EBS ボリュームが削除されます。インスタンスそのものも削除され、後でインスタンスを再 度起動することはできません。 間違って終了しないようにするため、インスタンスの終了を無効にすることができます。この 場合、インスタンスの disableApiTermination 属性は必ず true にします。インスタンスの シャットダウン時の動作を制御するには (Linux の shutdown -h や Windows の shutdown な ど)、instanceInitiatedShutdownBehavior インスタンス属性を必要に応じて stop または terminate に設定します。Amazon EBS ボリュームをルートデバイスに持つインスタンスはデフォ ルトで stop に設定されます。インスタンスストアをルートデバイスに持つインスタンスはシャット ダウンの結果として常に終了されます。 詳細については、「インスタンスのライフサイクル (p. 299)」を参照してください。 AMI アマゾン ウェブ サービス (AWS) は、一般的な用途のための共通のソフトウェア設定を含む多くの Amazon マシンイメージ (AMI) を公開しています。加えて、AWS 開発者コミュニティのメンバーに よって作成された、独自のカスタム AMI もあります。お客様自身でカスタム AMI を作成することも できます。必要なものがすべて含まれた新しいインスタンスを、すばやく簡単に起動できるようにな ります。たとえば、ウェブサイトまたはウェブサービスに使用する場合は、AMI に含まれるものとし 6 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI て、ウェブサーバー、関連する静的コンテンツ、動的ページ用のコードが考えられます。この AMI か らインスタンスを起動すると、ウェブサーバーが起動し、アプリケーションはリクエストを受け付け 可能な状態になります。 すべての AMI は、Amazon EBS-backed (AMI からインスタンスを起動するときのルートデバイスは Amazon EBS ボリュームである) と Instance-store backed (AMI からインスタンスを起動するときの ルートデバイスは、Amazon S3 に格納されているテンプレートから作成されたインスタンスストアボ リュームである) のいずれかに分類されます。 AMI の説明に、ルートデバイスのタイプ (ebs または instance store) が明記されています。この ことが重要であるのは、AMI のタイプによって、実行できる機能が大きく異なるからです。違いにつ いての詳細は ルートデバイスのストレージ (p. 77) を参照してください。 7 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リージョンとアベイラビリティーゾーン リージョンとアベイラビリティーゾーン Amazon EC2 は、世界各地のロケーションでホスティングされています。これらのロケーションは、 リージョンとアベイラビリティーゾーンから構成されています。リージョンはそれぞれ、地理的に離 れた領域です。1 つのリージョンに複数のそれぞれ独立したロケーションがあり、このロケーション を「アベイラビリティーゾーン」といいます。Amazon EC2 では、お客様がインスタンスなどのリ ソースとデータを複数のロケーションに配置できます。複数のリージョンにまたがってリソースのレ プリケーションを行うには、お客様がそのように指定する必要があります。 Amazon は、アベイラビリティーの高い最新のデータセンターを運用しています。しかし、非常にま れですが、同じ場所にあるインスタンスすべての可用性に影響する障害が発生することもあります。 もし、すべてのインスタンスを 1 か所でホストしている場合、そのような障害が起きたとき、インス タンスがすべて利用できなくなります。 目次 • リージョンとアベイラビリティーゾーンに関する概念 (p. 8) • 利用できるリージョン (p. 9) • リージョンとエンドポイント (p. 10) • リージョンとアベイラビリティーゾーンの記述 (p. 10) • リソースのリージョンの指定 (p. 13) • アベイラビリティーゾーンでのインスタンスの起動 (p. 14) • 別のアベイラビリティゾーンへのインスタンスの移行 (p. 15) リージョンとアベイラビリティーゾーンに関する概 念 各リージョンは完全に独立しています。各アベイラビリティーゾーンは独立していますが、同じリー ジョン内のアベイラビリティーゾーンどうしは低レイテンシーのリンクで接続されています。次の図 に、リージョンとアベイラビリティーゾーンの関係を示します。 Amazon EC2 リソースには、グローバルなもの、リージョンに結び付けられているもの、アベ イラビリティーゾーンに結び付けられているものがあります。詳細については、「リソースの場 所 (p. 880)」を参照してください。 リージョン 各 Amazon EC2 リージョンは、他の Amazon EC2 リージョンと完全に分離されるように設計されて います。これにより、最大限の耐障害性と安定性が達成されます。 リソースを表示すると、指定したリージョンに結び付けられているリソースだけが表示されます。こ れは、リソースは相互に分離されており、リージョン間のリソースのレプリケーションは自動的に行 われないためです。 8 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 利用できるリージョン インスタンスを起動するときは、同じリージョン内にある AMI を選択する必要があります。AMI が 別のリージョンにある場合は、使用しているリージョンに AMI をコピーできます。詳細については、 「AMI のコピー (p. 143)」を参照してください。 リージョン間のすべての通信は、パブリックインターネットを通して行われます。したがって、適切 な暗号方式を使用してデータを保護する必要があります。リージョン間でデータを転送すると、送信 側と受信側の両方のインスタンスで、インターネットデータ転送速度に応じて料金が発生します。詳 細については、「Amazon EC2 Pricing - Data Transfer」を参照してください。 アベイラビリティーゾーン インスタンスを起動するときに、アベイラビリティーゾーンを自分で選択するか、自動的に選択され るようにできます。インスタンスを複数のアベイラビリティーゾーンに配布する場合は、1 つのイン スタンスで障害が発生したら別のアベイラビリティーゾーンのインスタンスが要求を処理するよう に、アプリケーションを設計できます。 また、伸縮自在な IP アドレスを使用すると、あるアベイラビリティーゾーンのインスタンスの障害 を、別のアベイラビリティーゾーンのインスタンスにアドレスをすばやく再マッピングすることに よってマスクできます。詳細については、「Elastic IP アドレス (p. 689)」を参照してください。 アベイラビリティーゾーンは、リージョンコードとそれに続く文字識別子によって表されます (useast-1a など)。リソースがリージョンの複数のアベイラビリティーゾーンに分散されるようにする ため、アベイラビリティーゾーンは各アカウントの識別子に個別にマップされます。たとえば、ある アカウントのアベイラビリティーゾーンは別のアカウントのus-east-1aアベイラビリティーゾーン と同じ場所にはない可能性がありますus-east-1a。ユーザーがアカウント間でアベイラビリティー ゾーンを調整する手段はありません。 アベイラビリティーゾーンが拡大すると、アベイラビリティーゾーンを拡張しにくくなる場合があり ます。その場合、ユーザーがアベイラビリティーゾーンに既にインスタンスを持っているのでない場 合は、制約のあるアベイラビリティーゾーンでのインスタンスの起動を制限する場合があります。最 終的に、制約のあるアベイラビリティーゾーンを新しいお客様に対するアベイラビリティーゾーンの リストから削除することもあります。したがって、アカウントによってリージョン内で使用できるア ベイラビリティーゾーンの数が異なる場合があります。 自分のアカウントで使用できるアベイラビリティーゾーンをリストできます。詳細については、 「リージョンとアベイラビリティーゾーンの記述 (p. 10)」を参照してください。 利用できるリージョン アカウントにより、利用できるリージョンが決まります。以下に例を示します。 • AWS アカウントでは複数のリージョンが提供されるため、それぞれの要件に合った場所で Amazon EC2 インスタンスを起動できます。たとえば、ヨーロッパの顧客に近づけるため、または法的要件 を満たすために、ヨーロッパでインスタンスを起動することができます。 • AWS GovCloud (米国) アカウントでは、AWS GovCloud (米国) リージョンにのみアクセスできま す。詳細については、「AWS GovCloud (米国) リージョン」を参照してください。 • Amazon AWS アカウント (中国) では、中国 (北京) リージョンにのみアクセスできます。 次の表に、AWS アカウントで提供されるリージョンのリストを示します。AWS アカウントから追加 のリージョン (AWS GovCloud (米国)、中国 (北京) など) を記述またはアクセスすることはできませ ん。 コード 名前 us-east-1 米国東部(バージニア北部) 9 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リージョンとエンドポイント コード 名前 us-east-2 米国東部 (オハイオ) us-west-1 米国西部 (北カリフォルニア) us-west-2 米国西部 (オレゴン) ca-central-1 カナダ (中部) eu-west-1 欧州 (アイルランド) eu-central-1 欧州 (フランクフルト) eu-west-2 欧州 (ロンドン) ap-northeast-1 アジアパシフィック (東京) ap-northeast-2 アジアパシフィック (ソウル) ap-southeast-1 アジアパシフィック (シンガポール) ap-southeast-2 アジアパシフィック (シドニー) ap-south-1 アジアパシフィック (ムンバイ) sa-east-1 南米 (サンパウロ) 詳細については、「AWS グローバルインフラストラクチャ」を参照してください。 リージョンごとのアベイラビリティーゾーンの数とマッピングは、AWS アカウント間で異なる場合 があります。アカウントで使用可能なアベイラビリティーゾーンのリストを取得するには、Amazon EC2 コンソールまたはコマンドラインインターフェイスを使用できます。詳細については、「リー ジョンとアベイラビリティーゾーンの記述 (p. 10)」を参照してください。 リージョンとエンドポイント コマンドラインインターフェイスまたは API アクションを使用してインスタンスを操作するときは、 そのリージョンエンドポイントを指定する必要があります。Amazon EC2 のリージョンおよびエン ドポイントの詳細については、「リージョンとエンドポイント」 (アマゾン ウェブ サービス全般のリ ファレンス) を参照してください。 AWS GovCloud (米国) のエンドポイントとプロトコルの詳細については、「AWS GovCloud (米国) エ ンドポイント」 (AWS GovCloud (US) User Guide) を参照してください。 リージョンとアベイラビリティーゾーンの記述 Amazon EC2 コンソールまたはコマンドラインインターフェイスを使用して、アカウントで使用で きるリージョンおよびアベイラビリティーゾーンを特定できます。これらのコマンドラインインター フェイスの詳細については、Amazon EC2 へのアクセス (p. 3) を参照してください。 Amazon EC2 コンソールを使用してリージョンとアベイラビリティーゾーンを検索するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションバーから、リージョンセレクターのオプションを表示します。 10 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リージョンとアベイラビリティーゾーンの記述 3. アベイラビリティーゾーンは、ダッシュボードの [Service Health] の [Availability Zone Status] に 一覧表示されます。 11 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リージョンとアベイラビリティーゾーンの記述 コマンドラインを使用してリージョンとアベイラビリティーゾーンを検索するには 1. 次のように describe-regions コマンドを使用してリージョンを記述します。 $ aws ec2 describe-regions { "Regions": [ { "Endpoint": "ec2.us-east-1.amazonaws.com", "RegionName": "us-east-1" }, { "Endpoint": "ec2.ap-southeast-1.amazonaws.com", "RegionName": "ap-southeast-1" }, { "Endpoint": "ec2.ap-southeast-2.amazonaws.com", "RegionName": "ap-southeast-2" }, ... ] } 2. 次のように describe-availability-zones コマンドを使用してリージョン内のアベイラビリティー ゾーンを記述します。us-east-1 $ aws ec2 describe-availability-zones --region us-east-1 { "AvailabilityZones": [ { "State": "available", "RegionName": "us-east-1", "Messages": [], "ZoneName": "us-east-1b" }, { "State": "available", "RegionName": "us-east-1", "Messages": [], "ZoneName": "us-east-1c" }, { "State": "available", "RegionName": "us-east-1", "Messages": [], "ZoneName": "us-east-1d" } ] } または、AWS Tools for Windows PowerShell コマンド Get-EC2Region と Get-EC2AvailabilityZone を 使用できます。 12 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リソースのリージョンの指定 リソースのリージョンの指定 Amazon EC2 リソースを作成するたびに、リソースのリージョンを指定できます。リソースのリー ジョンは AWS マネジメントコンソール またはコマンドラインを使用して指定できます。 Note 一部の AWS リソースは、リージョンおよびアベイラビリティーゾーンによっては利用できな い場合があります。特定のアベイラビリティーゾーンでインスタンスを起動する前に、目的 のリージョンまたはアベイラビリティーゾーンで必要なリソースを作成できることを確認し てください。 コンソールを使用してリソースのリージョンを指定するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションバーのリージョンセレクターを使用します。 コマンドラインを使用してデフォルトのリージョンを指定するには 環境変数の値を、目的のリージョンエンドポイント (例: https://ec2.uswest-1.amazonaws.com) に設定できます。 13 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド アベイラビリティーゾーンでのインスタンスの起動 • AWS_DEFAULT_REGION (AWS CLI) • Set-AWSDefaultRegion (AWS Tools for Windows PowerShell) または、各コマンドで --region (AWS CLI) または -Region (AWS Tools for Windows PowerShell) のコマンドラインオプションを使用することもできます。たとえば、--region us-west-1 と指定 します。 Amazon EC2 のエンドポイントの詳細については、「Amazon Elastic Compute Cloud Endpoints」を 参照してください。 アベイラビリティーゾーンでのインスタンスの起動 インスタンスを起動するときは、特定のお客様にインスタンスを近付けるリージョン、または法律や 他の要件を満たすリージョンを選択します。個別のアベイラビリティーゾーンでインスタンスを起動 することにより、1 つの場所で障害が発生しても、アプリケーションを保護することができます。 インスタンスを起動するときは、必要に応じて、使用するリージョン内のアベイラビリティーゾーン を指定できます。アベイラビリティーゾーンを指定しないと、自動的に選択されます。初期インス タンスを起動するときには、デフォルトのアベイラビリティーゾーンを受け入れることをお勧めしま す。これにより Amazon EC2 が、システムの状態と利用可能な機能に基づいて、最適なアベイラビ リティーゾーンを選択できます。追加インスタンスを起動する場合、新しいインスタンスが実行中の インスタンスに近いか、分かれている必要がある場合は、アベイラビリティーゾーンだけを指定しま す。 コンソールを使用してインスタンスのアベイラビリティーゾーンを指定するには 1. 2. 3. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ダッシュボードで、[Launch Instance] を選択します。 ウィザードの指示にしたがって操作します。[Configure Instance Details] ページで以下の操作を実 行します。 • [EC2-Classic] リストからアベイラビリティーゾーンのオプションを選択するか、[No Preference] を選択して最善のアベイラビリティーゾーンを自動的に選択します。 • [EC2-VPC] リストからサブネットオプションを選択するか、[No preference (default subnet in any Availability Zone)] を選択して最善のサブネットを自動的に選択します。 AWS CLI を使用してインスタンスのアベイラビリティーゾーンを指定するには run-instances コマンドと次のいずれかのオプションを使用できます。 • [EC2-Classic] --placement • [EC2-VPC] --subnet-id AWS Tools for Windows PowerShell を使用してインスタンスのアベイラビリティーゾーンを 指定するには New-EC2Instance コマンドと次のいずれかのオプションを使用できます。 • [EC2-Classic] -AvailabilityZone • [EC2-VPC] -SubnetId 14 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 別のアベイラビリティゾーンへのインスタンスの移行 別のアベイラビリティゾーンへのインスタンスの移 行 必要な場合は、1 つのアベイラビリティゾーンから別のアベイラビリティゾーンにインスタンスを移 行できます。たとえば、インスタンスのインスタンスタイプを変更しようとしたときに、現在のアベ イラビリティゾーンでは新しいタイプのインスタンスを起動できない場合は、そのタイプのインスタ ンスを起動できるアベイラビリティゾーンにインスタンスを移行することもできます。 移行プロセスでは、次の手順に示すように、元のインスタンスから AMI を作成し、新しいアベイラビ リティゾーンでインスタンスを起動して、新しいインスタンスの設定を更新します。 別のアベイラビリティゾーンにインスタンスを移行するには 1. インスタンスから AMI を作成します。手順は、オペレーティングシステムとインスタンスのルー トデバイスボリュームの種類によって異なります。詳細については、使用しているオペレーティ ングシステムとルートデバイスボリュームに対応するドキュメントを参照してください。 • Amazon EBS-Backed Linux AMI の作成 (p. 96) • Instance Store-Backed Linux AMI の作成 (p. 100) • Amazon EBS-backed Windows AMI の作成 • Instance Store-Backed Windows AMI の作成 2. [EC2-VPC] インスタンスのプライベート IP アドレスを維持する必要がある場合は、現在のアベ イラビリティゾーンのサブネットを削除してから、新しいアベイラビリティゾーンに元のサブ ネットと同じ IP アドレス範囲のサブネットを作成する必要があります。サブネットを削除する前 に、その中のすべてのインスタンスを終了する必要があります。したがって、現在のサブネット 内のすべてのインスタンスを新しいサブネットに移動しなければなりません。 3. 新しいアベイラビリティゾーンまたはサブネットを指定して、作成した AMI からインスタンスを 起動します。インスタンスタイプは、元のインスタンスと同じにすることも、新しいインスタン スタイプを選択することもできます。詳細については、「アベイラビリティーゾーンでのインス タンスの起動 (p. 14)」を参照してください。 4. 元のインスタンスに Elastic IP アドレスが関連付けられていた場合は、それを新しいインスタン スに関連付けます。詳細については、「Elastic IP アドレスの関連付け解除と別のインスタンスへ の再関連付け (p. 694)」を参照してください。 5. 元のインスタンスがリザーブドインスタンスの場合、予約のアベイラビリティゾーンを変更し ます。 (また、インスタンスタイプも変更する場合は、予約のインスタンスタイプも変更できま す)。詳細については、「変更リクエストの送信 (p. 227)」を参照してください。 6. (オプション) 元のインスタンスを終了します。詳細については、「インスタンスを終了す る (p. 334)」を参照してください。 Amazon EC2 ルートデバイスボリューム インスタンスを起動するときは、ルートデバイスボリュームに格納されているイメージを使用して インスタンスがブートされます。Amazon EC2 のサービス開始当初は、すべての AMI が「Amazon EC2 インスタンスストア backed」でした。つまり、AMI から起動されるインスタンスのルートデ バイスは、Amazon S3 に格納されたテンプレートから作成されるインスタンスストアボリュームで す。Amazon EBS の導入後は Amazon EBS を基にした AMI も導入されました。つまり、AMI から起 動されるインスタンスのルートデバイスが、Amazon EBS スナップショットから作成される Amazon EBS ボリュームであるということです。 お客様は、「Amazon EC2 インスタンスストア backed」の AMI と「Amazon EBS backed」の AMI から選択できます。推奨されるのは「Amazon EBS backed」です。この AMI は起動が高速であり、 永続的ストレージを使用しているからです。 15 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ルートデバイスストレージの概念 Amazon EC2 でルートボリュームに使用するデバイス名について詳しくは、「Linux インスタンスで のデバイスの名前付け (p. 865)」を参照してください。 トピック • ルートデバイスストレージの概念 (p. 16) • ルートデバイスタイプによる AMI の選択 (p. 17) • インスタンスのルートデバイスタイプの判別 (p. 18) • 永続的ルートデバイスボリュームへの変更 (p. 18) ルートデバイスストレージの概念 instance store-backed AMI または Amazon EBS-backed AMI のどちらからでもインスタンスを起動で きます。AMI の説明にはそのタイプが含まれており、場所によってルートデバイスが ebs (Amazon EBS-Backed の場合) または instance store (Instance store-Backed の場合) と表示されます。各タ イプの AMI を使用して実行できることには大きな違いがあるため、タイプを区別できることは重要で す。違いについての詳細は ルートデバイスのストレージ (p. 77) を参照してください。 instance store-backed のインスタンス インスタンスストアをルートデバイスに使用するインスタンスでは自動的に、インスタンスストアボ リュームを利用できるようになり、そのボリュームの 1 つがルートデバイスボリュームとなります。 インスタンスを起動すると、インスタンスのブートに使用されるイメージがルートボリュームにコ ピーされます。インスタンスタイプによっては、オプションで追加のインスタンスストアボリューム を使用できることに注意してください。 インスタンスストアボリュームのデータはインスタンスが実行している間は維持されますが、インス タンスが終了すると (Instance store-Backed インスタンスは [Stop] アクションをサポートしていませ ん)、またはインスタンスが失敗すると (基盤となるドライブに問題がある場合など)、削除されます。 障害が発生したり終了されたりした instance store-backed インスタンスは復元できません。Amazon EC2 instance store-backed インスタンスの使用を予定している場合は、インスタンスストアのデータ を複数のアベイラビリティーゾーンにまたがって分散させることを強くお勧めします。また、インス タンスストアボリュームの重要データを永続的ストレージに定期的にバックアップする必要がありま す。 詳細については、「Amazon EC2 インスタンスストア (p. 846)」を参照してください。 Amazon EBS-backed インスタンス Amazon EBS をルートデバイスに使用するインスタンスには自動的に、Amazon EBS ボリュームが アタッチされます。Amazon EBS Backed インスタンスを起動するときに、AMI で参照されている Amazon EBS スナップショットごとに 1 つの Amazon EBS ボリュームが作成されます。インスタン スタイプによっては、Amazon EBS ボリュームまたはインスタンスストアボリュームをオプションで 使用できます。 16 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ルートデバイスタイプによる AMI の選択 Amazon EBS-backed インスタンスは、停止後に再起動できます。アタッチされているボリュームに 格納されているデータに影響を及ぼすこともありません。Amazon EBS-backed インスタンスが停止 状態にあるときは、インスタンス関連およびボリューム関連の様々なタスクを実行できます。たとえ ば、インスタンスのプロパティの変更、インスタンスのサイズの変更、使用しているカーネルの更新 が可能です。また、デバッグなどの目的で別の実行中インスタンスにルートボリュームをアタッチす ることもできます。 Amazon EBS-backed インスタンスに障害が発生した場合は、以下のいずれかの方法によってセッ ションを復元できます。 • 停止して再起動します (最初にこの方法を試してください)。 • 関連するすべてのボリュームのスナップショットを自動的に作成し、新しい AMI を作成します。詳 細については、「Amazon EBS-Backed Linux AMI の作成 (p. 96)」を参照してください。 • 以下の手順に従って、ボリュームを新しいインスタンスにアタッチします。 1. ルートボリュームのスナップショットを作成します。 2. 作成したスナップショットを使用して新しい AMI を登録します。 3. 新しい AMI から新しいインスタンスを起動します。 4. 残りの Amazon EBS ボリュームを古いインスタンスからデタッチします。 5. Amazon EBS ボリュームを新しいインスタンスに再アタッチします。 詳細については、「Amazon EBS ボリューム (p. 752)」を参照してください。 ルートデバイスタイプによる AMI の選択 インスタンスの起動時に指定する AMI によって、インスタンスのルートデバイスボリュームのタイプ が決まります。 Amazon EBS-Backed AMI を選択するには コンソールを使用する 1. Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで [AMIs] を選択します。 フィルタの一覧から、イメージタイプ ([Public images] など) を選択します。検索バーで、 [Platform] を選択してオペレーティングシステム ([Amazon Linux] など) を選択し、[Root Device Type] をクリックして [EBS images] を選択します。 (オプション) 選択の参考になる追加情報を表示するには、[Show/Hide Columns] アイコンを選択 し、表示する列を更新して、[Close] を選択します。 4. 5. AMI を選択し、その AMI ID を記録します。 Instance store-Backed AMI を選択するには コンソールを使用する 1. Amazon EC2 コンソールを開きます。 17 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスのルートデバイスタイプの判別 2. ナビゲーションペインで [AMIs] を選択します。 3. フィルタの一覧から、イメージタイプ ([Public images] など) を選択します。検索バーで、 [<Platform] を選択してオペレーティングシステム ([Amazon Linux] など) を選択し、[Root Device Type] を選択して [Instance store] を選択します。 4. (オプション) 選択の参考になる追加情報を表示するには、[Show/Hide Columns] アイコンを選択 し、表示する列を更新して、[Close] を選択します。 5. AMI を選択し、その AMI ID を記録します。 コマンドラインを使用して AMI のルートデバイスボリュームの種類を確認するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-images (AWS CLI) • Get-EC2Image (AWS Tools for Windows PowerShell) インスタンスのルートデバイスタイプの判別 コンソールを使用してインスタンスのルートデバイスタイプを判別するには 1. Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。 3. 次のように、[Description] タブで [Root device type] の値を確認します。 • 値が ebs の場合、これは Amazon EBS-Backed インスタンスです。 • 値が instance store の場合、これは Instance store-Backed インスタンスです。 コマンドラインを使用してインスタンスのルートデバイスタイプを判別するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-instances (AWS CLI) • Get-EC2Instance (AWS Tools for Windows PowerShell) 永続的ルートデバイスボリュームへの変更 デフォルトでは、Amazon EBS-backed AMI のルートデバイスボリュームは、インスタンスを終了 すると削除されます。デフォルトの動作を変更するには、ブロックデバイスマッピングを使用し て、DeleteOnTermination 属性を false に設定します。 コンソールを使用したルートボリュームの永続的な変更 コンソールを使用して、インスタンスの起動時に DeleteOnTermination 属性を変更できます。実 行中のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。 コンソールを使用して、起動時にインスタンスのルートデバイスボリュームが存続するように 変更するには 1. Amazon EC2 コンソールを開きます。 2. Amazon EC2 コンソールダッシュボードで、[Launch Instance] を選択します。 18 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 永続的ルートデバイスボリュームへの変更 3. [Choose an Amazon Machine Image (AMI)] ページで、使用する AMI を選択し、[Select] を選択し ます。 4. ウィザードにしたがって [Choose an Instance Type] ページと [Configure Instance Details] ページ を設定します。 5. [Add Storage] ページで、ルートボリュームの [Delete On Termination] の選択を解除します。 6. ウィザードの残りのページを完了した後、[Launch ] を選択します。 インスタンスの詳細ペインでルートデバイスボリュームの詳細を表示することにより、設定を確認 できます。[Block devices] の隣にあるルートデバイスボリュームのエントリを選択します。デフォ ルトでは、[Delete on termination] は [True] です。デフォルトの動作を変更した場合は、[Delete on termination] が [False] になっています。 AWS CLI を使用して、インスタンスのルートボリュームが存 続するように変更するには AWS CLI を使用して、インスタンスの起動時またはインスタンスの実行中に DeleteOnTermination 属性を変更することができます。 Example 起動時 run-instances コマンドを使用して、DeleteOnTermination 属性を false に設定するブロックデバ イスマッピングを含めることにより、ルートボリュームを保持します。 aws ec2 run-instances --block-device-mappings file://mapping.json other parameters... mapping.json で以下を指定します。 [ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ] describe-instances コマンドを使用して、次に示すようにコマンド出力でデバイスの BlockDeviceMappings エントリを探すことで、DeleteOnTermination が false であることを確 認します。 ... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": false, "VolumeId": "vol-1234567890abcdef0", "AttachTime": "2013-07-19T02:42:39.000Z" } } ... 19 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 永続的ルートデバイスボリュームへの変更 Example インスタンスの実行中 modify-instance-attribute コマンドを使用して、DeleteOnTermination 属性を false に設定するブ ロックデバイスマッピングを含めることにより、ルートボリュームを保持します。 aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --blockdevice-mappings file://mapping.json mapping.json で以下を指定します。 [ { "DeviceName": "/dev/sda1", "Ebs" : { "DeleteOnTermination": false } } ] 20 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AWS にサインアップする Amazon EC2 でのセットアップ アマゾンウェブサービス (AWS) に既にサインアップしている場合は、Amazon EC2 をすぐに使用で きます。Amazon EC2 コンソールを開き、[Launch Instance] をクリックし、起動ウィザードの手順に 従って最初のインスタンスを起動します。 AWS にまだサインアップしていない場合、または最初のインスタンスの起動についてサポートが必要 な場合は、次のタスクを実行して、Amazon EC2 を使用するための設定を行ってください。 1. AWS にサインアップする (p. 21) 2. IAM ユーザーを作成する (p. 22) 3. キーペアを作成する (p. 23) 4. Virtual Private Cloud (VPC) の作成 (p. 26) 5. セキュリティグループの作成 (p. 26) AWS にサインアップする アマゾン ウェブ サービス (AWS) にサインアップすると、AWS アカウントが AWS 内のすべてのサー バー (Amazon EC2 など) に自動的にサインアップされます。料金が発生するのは、実際に使用した サービスの分のみです。 Amazon EC2 については、お客様が利用された分のみのお支払いとなります。AWS の新規のお客様 の場合、Amazon EC2 を無料で使い始めることができます。詳細については、「AWS Free Tier」を 参照してください。 既に AWS アカウントをお持ちの場合は次のタスクに進んでください。AWS アカウントをお持ちでな い場合は、次に説明する手順にしたがってアカウントを作成してください。 AWS アカウントを作成するには 1. https://aws.amazon.com/ を開き、[AWS アカウントの作成] を選択します。 2. オンラインの手順に従います。 サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入 力することが求められます。 次のタスクで AWS アカウント番号が必要となるので、メモしておいてください。 21 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ユーザーを作成する IAM ユーザーを作成する AWS のサービス (Amazon EC2 など) の場合は、サービスにアクセスする際に認証情報を提供する 必要があります。このため、サービスのリソースにアクセスする権限があるかどうかがサービスに よって判定されます。コンソールを使用するにはパスワードが必要です。AWS アカウントのアクセ スキーを作成して、コマンドラインインターフェイスまたは API にアクセスすることができます。た だし、AWS アカウントの認証情報を使って AWS にアクセスすることはお勧めしません。代わりに AWS Identity and Access Management (IAM) を使用することをお勧めします。IAM ユーザーを作成し て、管理権限を使ってこのユーザーを IAM グループに追加するか、管理権限を付与します。これで、 特殊な URL と IAM ユーザーの認証情報を使って、AWS にアクセスできます。 AWS にサインアップしても、ご自分の IAM ユーザーをまだ作成していない場合は、IAM コンソール を使用して作成できます。コンソールの使用に慣れていない場合は、「AWS マネジメントコンソール の使用」で概要を参照してください。 自分用の IAM ユーザーを作成し、そのユーザーを管理者グループに追加するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールにサ インインします。 2. ナビゲーションペインで [Users]、[Add user] の順に選択します。 3. [User name] で、ユーザー名 (Administrator など) を入力します。名前には、英数字のほか に、プラス記号 (+)、等号 (=)、カンマ (,)、ピリオド (.)、アットマーク (@)、下線 (_)、ハイフン (-) を使用できます。名前は、大文字と小文字が区別されず、最大 64 文字で構成できます。 4. [AWS マネジメントコンソール access] の横のチェックボックスをオンにし、[Custom password] を選択して、新しいユーザーのパスワードをテキストボックスに入力します。オプションとして [Require password reset] を選択し、ユーザーが次回サインインしたときに新しいパスワードを選 択することを強制できます。 5. [Next: Permissions] を選択します。 6. [Set permissions for user] ページで、[Add user to group] を選択します。 7. [Create group] を選択します。 8. [Create group] ダイアログボックスで、新しいグループの名前を入力します。名前には、英数字 のほかに、プラス記号 (+)、等号 (=)、カンマ (,)、ピリオド (.)、アットマーク (@)、下線 (_)、ハ イフン (-) を使用できます。名前は、大文字と小文字が区別されず、最大 128 文字で構成できま す。 9. [Filter] で、[Job function] を選択します。 10. ポリシーリストで、[AdministratorAccess] のチェックボックスをオンにします。次に、[Create group] を選択します。 11. グループのリストに戻り、新しいグループのチェックボックスをオンにします。必要に応じて [Refresh] を選択し、リスト内のグループを表示します。 12. [Next: Review] を選択して、新しいユーザーに追加するグループメンバーシップのリストを表示 します。続行する準備ができたら、[Create user] を選択します。 この同じプロセスを繰り返して新しいグループとユーザーを作成し、AWS アカウントのリソースへの アクセス権をユーザーに付与できます。ポリシーを使用して特定の AWS リソースに対するユーザー のアクセス権限を制限する方法については、「アクセス管理」と「AWS リソースの管理に関するポリ シーの例」を参照してください。 新規の IAM ユーザーとしてサインインするには、AWS コンソールからサインアウトし、次の URL を 使用します。このとき、your_aws_account_id はハイフンを除いた AWS アカウント番号です (たとえ ば AWS アカウント番号が 1234-5678-9012 であれば、AWS アカウント ID は 123456789012 とな ります)。 https://your_aws_account_id.signin.aws.amazon.com/console/ 22 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド キーペアを作成する 先ほど作成した IAM ユーザー名 (E メールアドレスではない) とパスワードを入力します。サインイン すると、ナビゲーションバーに「your_user_name @ your_aws_account_id」が表示されます。 サインページの URL に AWS アカウント ID を含めない場合は、アカウントのエイリアスを作成しま す。IAM コンソールのナビゲーションペインで [Dashboard] をクリックします。ダッシュボードから [Customize] をクリックし、エイリアス (会社名など) を入力します。アカウントエイリアスを作成し た後、サインインするには、次の URL を使用します。 https://your_account_alias.signin.aws.amazon.com/console/ アカウントの IAM ユーザーのサインインリンクを確認するには、IAM コンソールを開き、ダッシュ ボードの [IAM users sign-in link] の下を確認します。 IAM の詳細については、「IAM と Amazon EC2 (p. 595)」を参照してください。 キーペアを作成する AWS では公開キー暗号化を使用して、お客様のインスタンスのログイン情報の安全性を保護しま す。Linux インスタンスにはパスワードがありませんが、キーペアを使用することでインスタンスに 安全にログインできます。インスタンスを起動するときにキーペアの名前を指定し、プライベート キーを指定して、SSH を使ってログインします。 キーペアをまだ作成していない場合は、Amazon EC2 コンソールを使用して作成できます。複数の リージョンでインスタンスを起動する予定がある場合は、各リージョンでキーペアを作成する必要が あります。リージョンの詳細については、「リージョンとアベイラビリティーゾーン (p. 8)」を参照し てください。 キーペアを作成するには 1. 前のセクションで作成した URL を使用して AWS にサインインします。 2. AWS ダッシュボードから、[EC2] を選択して Amazon EC2 コンソールを開きます。 3. ナビゲーションバーで、キーペアを生成するリージョンを選択します。お客様は場所に関係な く、使用できるリージョンをどれでも選択できます。ただし、キーペアはリージョンに固有で す。たとえば、米国西部 (オレゴン) リージョン でインスタンスを起動する予定がある場合、米国 西部 (オレゴン) リージョン のインスタンス用にキーペアを作成する必要があります。 23 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド キーペアを作成する 4. ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] をクリックします。 Tip ナビゲーションペインはコンソールの左側にあります。ペインが表示されない場合、最 小化されている可能性があります。矢印をクリックしてペインを展開します。必要に応 じて、下へスクロールして [Key Pairs] リンクを表示します。 5. [Create Key Pair] をクリックします。 24 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド キーペアを作成する 6. [Create Key Pair] ダイアログボックスの [Key Pair Name] フィールドに新しいキーペアの名前を 入力し、[Create] をクリックします。覚えやすい名前 (IAM ユーザー名など) を選び、その後に key-pair を続け、さらにリージョン名を続けます。たとえば、me-key-pair-uswest2 などです。 7. ブラウザによって秘密キーファイルが自動的にダウンロードされます。ベースファイル名はキー ペアの名前として指定した名前となり、ファイル名の拡張子は .pem となります。プライベート キーファイルを安全な場所に保存します。 Important これは、プライベートキーを保存する唯一のチャンスです。インスタンスと対応するプ ライベートキーの起動時には、毎回インスタンスに接続するたびに、キーペアの名前を 入力する必要があります。 8. Mac または Linux コンピュータの SSH クライアントを使用して Linux インスタンスに接続する 場合は、次のコマンドを使用してプライベートキーファイルの権限を設定すると、お客様以外の ユーザーはそれを読み取ることができないようになります。 $ chmod 400 your_user_name-key-pair-region_name.pem 詳細については、「Amazon EC2 のキーペア (p. 570)」を参照してください。 キーペアを使用してインスタンスに接続するには Mac または Linux を実行しているコンピュータから Linux インスタンスに接続するには、-i オプショ ンとプライベートキーへのパスを指定して、SSH クライアントに対する .pem ファイルを指定しま す。Windows を実行しているコンピュータから Linux インスタンスに接続する場合は、MindTerm ま たは PuTTY のどちらかを使用できます。PuTTY を使用する予定がある場合は、それをインストール してから、次のプロシージャを使用して .pem ファイルを .ppk ファイルに変換します。 (オプション) PuTTY を使用して Windows から Linux インスタンスに接続するには 1. http://www.chiark.greenend.org.uk/~sgtatham/putty/ から PuTTY をダウンロードしてインストー ルします。必ずスイート全体をインストールします。 2. PuTTYgen を開始します (例:[スタート] メニューで [すべてのプログラム] > [PuTTY] > [PuTTYgen] をクリック)。 3. [Type of key to generate] の下で、[SSH-2 RSA] を選択します。 4. [Load] をクリックします。デフォルトでは、PuTTYgen には拡張子 .ppk を持つファイルだけが 表示されます。.pem ファイルの場所を特定するには、すべてのタイプのファイルを表示するオプ ションを選択します。 5. 前の手順で作成した作成した秘密キーファイルを選択し、[Open] をクリックします。[OK] をク リックして、確認ダイアログボックスを閉じます。 6. [Save private key] をクリックします。PuTTYgen に、パスフレーズなしでキーを保存することに 関する警告が表示されます。[Yes] をクリックします。 7. キーペアに使用した名前と同じ名前をキーに指定します。PuTTY は自動的にファイル拡張子 .ppk を加えます。 25 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Virtual Private Cloud (VPC) の作成 Virtual Private Cloud (VPC) の作成 Amazon VPC を使用すると、定義した仮想ネットワーク内で AWSリソースを起動できます。デフォ ルトの VPC がある場合は、このセクションをスキップして、次のタスク「セキュリティグループの作 成 (p. 26)」に移動できます。デフォルトの VPC があるかどうかを判断するには、「Amazon EC2 コンソールでサポートされるプラットフォーム (p. 649)」を参照してください。また、次の手順を使 用して、アカウントにデフォルト以外の VPC を作成することもできます。 Important アカウントがリージョン内で EC2-Classic をサポートしている場合、そのリージョンにはデ フォルトの VPC はありません。VPC で T2 インスタンスを起動する必要があります。 デフォルト以外の VPC を作成するには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. ナビゲーションバーで、VPC のリージョンを選択します。VPC はリージョンに固有であるた め、キーペアを作成したリージョンと同じリージョンを選択してください。 3. VPC ダッシュボードで、[Start VPC Wizard] をクリックします。 4. [Step 1: Select a VPC Configuration] ページで、[VPC with a Single Public Subnet] が選択されて いることを確認し、[Select] をクリックします。 5. [Step 2: VPC with a Single Public Subnet] ページで、[VPC name] フィールドに、わかりやすい VPC 名を入力します。他のデフォルトの設定はそのままにしておき、[Create VPC] をクリックし ます。確認ページで、[OK] をクリックします。 Amazon VPC の詳細については、「Amazon VPC とは」を参照してください (「Amazon VPC ユー ザーガイド」)。 セキュリティグループの作成 セキュリティグループは、関連付けられたインスタンスのファイアウォールとして動作し、インバウ ンドトラフィックとアウトバウンドトラフィックの両方をインスタンスレベルでコントロールしま す。SSH を使用して IP アドレスからインスタンスに接続できるようにするためのルールをセキュリ ティグループに追加します。さらに、任意の場所からのインバウンドおよびアウトバウンドの HTTP アクセスおよび HTTPS アクセスを可能にするルールを追加できます。 複数のリージョンでインスタンスを起動する予定がある場合は、各リージョンでセキュリティグルー プを作成する必要があります。リージョンの詳細については、「リージョンとアベイラビリティー ゾーン (p. 8)」を参照してください。 前提条件 ローカルコンピューターのパブリック IPv4 アドレスが必要です。Amazon EC2 コンソールのセキュ リティグループエディタは、パブリック IPv4 アドレスを自動的に検出できます。別の方法として、 インターネットブラウザで検索文字列として「私の IP アドレスは何ですか?」を使用するか、サービ ス http://checkip.amazonaws.com/ を使用することもできます。インターネットサービスプロバイダー (ISP) 経由で、またはファイアウォールの内側から静的な IP アドレスなしで接続する場合は、クライ アントコンピュータで使用されている IP アドレスの範囲を見つける必要があります。 最小限の権限でセキュリティグループを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 26 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループの作成 Tip または、Amazon VPC コンソールを使用してセキュリティグループを作成することもで きます。ただし、ここで説明する手順は、Amazon VPC コンソールと一致しません。 したがって、前のセクションで Amazon VPC コンソールに切り替えた場合は、Amazon EC2 コンソールに戻ってここで説明する手順に従うか、Amazon VPC 入門ガイド の 「VPC のセキュリティグループをセットアップする」の手順に従います。 2. ナビゲーションバーで、セキュリティグループのリージョンを選択します。セキュリティグルー プはリージョンに固有であるため、キーペアを作成したリージョンと同じリージョンを選択して ください。 3. ナビゲーションペインで [Security Groups] をクリックします。 4. [Create Security Group] をクリックします。 5. 新しいセキュリティグループの名前と説明を入力します。覚えやすい名前 (IAM ユーザー名など) を選び、その後に _SG_ を続け、さらにリージョン名を続けます。たとえば、me_SG_uswest2 などです。 6. [VPC] リストで、使用している VPC を選択します。デフォルト VPC がある場合、デフォルト VPC にはアスタリスク (*) が付いています。 Note アカウントが EC2-Classic をサポートしている場合は、前のタスクで作成した VPC を選 択します。 27 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループの作成 7. [Inbound] タブで、次のルールを作成し (新しいルールごとに [Add Rule] をクリック)、最後に [Create] をクリックします。 • [Type] リストから [HTTP] を選択し、[Source] が [Anywhere] (0.0.0.0/0) に設定されているこ とを確認します。 • [Type] リストから [HTTPS] を選択し、[Source] が [Anywhere] (0.0.0.0/0) に設定されている ことを確認します。 • [Type] リストから [SSH] を選択します。[Source] ボックスで [My IP] を選択すると、ローカル コンピューターのパブリック IPv4 アドレスが自動的にフィールドに入力されます。別の方法と して、[Custom] を選択してコンピューターまたはネットワークのパブリック IPv4 アドレスを CIDR 表記で指定することもできます。CIDR 表記で個々の IP アドレスを指定するには、ルー ティングサフィックス /32 を追加します (203.0.113.25/32 など)。会社が特定の範囲からア ドレスを割り当てている場合、範囲全体 (203.0.113.0/24など) を指定します。 Caution セキュリティ上の理由で、すべての IPv4 アドレス (0.0.0.0/0) からインスタンスへ の SSH アクセスを許可することはお勧めしません。ただし、それがテスト目的で短期 間の場合は例外です。 詳細については、「Linux インスタンスの Amazon EC2 セキュリティグループ (p. 579)」を参照し てください。 28 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 概要 Amazon EC2 Linux インスタンスの 開始方法 Linux インスタンスを起動、接続、使用して Amazon Elastic Compute Cloud (Amazon EC2) の使用を 開始しましょう。インスタンスとは、AWS クラウドにある仮想サーバーです。Amazon EC2 を使用 して、インスタンスで実行されるオペレーティングシステムとアプリケーションをセットアップし、 設定することができます。 AWS にサインアップすると、AWS 無料利用枠を使って、Amazon EC2 を無料で開始することができ ます。AWS アカウントを作成したのが過去 12 か月以内で、Amazon EC2 の無料利用枠を使い切って いない場合、無料利用枠内で利用できるオプションを選択することで、このチュートリアルでは一切 費用がかかりません。それ以外の場合、インスタンスを起動したときから、インスタンスを終了する まで (このチュートリアルの最終タスク)、アイドル状態のままでも標準の Amazon EC2 使用料が発生 します。 目次 • 概要 (p. 29) • 前提条件 (p. 30) • ステップ 1: インスタンスを起動する (p. 30) • ステップ 2: インスタンスに接続 (p. 31) • ステップ 3: インスタンスをクリーンアップする (p. 32) • 次のステップ (p. 33) 概要 インスタンスは Amazon EBS-backed インスタンスです (ルートボリュームが EBS ボリュームであ ることを意味します)。インスタンスが実行されるアベイラビリティゾーンは、指定するか、Amazon EC2 によって自動的に選択されます。インスタンスを起動するときは、キーペアとセキュリティグ ループを指定してインスタンスをセキュリティで保護しますインスタンスに接続するときは、インス タンスの起動時に指定したキーペアの秘密キーを指定する必要があります。 29 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 前提条件 タスク このチュートリアルを完了するには、次のタスクを実行します。 1. インスタンスを起動する (p. 30) 2. インスタンスへの接続 (p. 31) 3. インスタンスのクリーンアップ (p. 32) 関連チュートリアル • Windows インスタンスを起動する場合は、Windows インスタンスの Amazon EC2 ユーザーガイド のチュートリアル「 Amazon EC2 Windows インスタンスの使用開始」を参照してください。 • コマンドラインを使用する方法については、AWS Command Line Interface ユーザーガイド の チュートリアル「Using Amazon EC2 through the AWS CLI」を参照してください。 前提条件 開始する前に、必ず「Amazon EC2 でのセットアップ (p. 21) 」の手順を完了してください。 ステップ 1: インスタンスを起動する 以下の手順で説明しているように AWS マネジメントコンソール を使用して Linux インスタンスを起 動できます。このチュートリアルは、初めてのインスタンスをすばやく起動できるように設計されて います。そのため、可能なすべてのオプションを扱ってはいません。オプションの詳細については、 「Launching an Instance」を参照してください。 インスタンスを起動するには 1. 2. 3. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 コンソールダッシュボードで、[Launch Instance] を選択します。 [Choose an Amazon Machine Image (AMI)] ページに、Amazon マシンイメージ (AMI) と呼ば れる基本設定のリストが表示されます。これは、インスタンスのテンプレートとして機能しま す。Amazon Linux AMI の HVM エディションを選択します。 この AMI は "Free tier eligible" と表 示されていることに注意してください。 4. [Choose an Instance Type] ページで、インスタンスのハードウェア構成を選択できま す。t2.micro タイプを選択します。これはデフォルトで選択されています。このインスタンス タイプは無料利用枠であることに注意してください。 30 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 2: インスタンスに接続 Note t2.micro などの T2 インスタンスは、VPC で起動する必要があります。AWS アカウ ントで EC2-Classic がサポートされていて、選択されているリージョンに VPC がない 場合は、起動ウィザードによってお客様の VPC が作成されるので、次のステップに進 むことができます。その他の場合は、[Review and Launch] ボタンが無効になり、[Next: Configure Instance Details] を選択して、サブネットを選択する指示に従う必要がありま す。 5. [Review and Launch] を選択して、ウィザードが他の設定を完了できるようにします。 6. [Review Instance Launch] ページの [Security Groups] に、ウィザードで作成および選択したセ キュリティグループが表示されます。このセキュリティグループを使用するか、または次のス テップを使用して設定を行うときに作成したセキュリティグループを選択できます。 a. [Edit security groups] を選択します。 b. [Configure Security Group] ページで、[Select an existing security group] が選択されているこ とを確認します。 c. 既存のセキュリティグループのリストからセキュリティグループを選択してから、[Review and Launch] を選択します。 7. [Review Instance Launch] ページで、[Launch] を選択します。 8. キーペアの入力を求められたら、[Choose an existing key pair] を選択し、セットアップ中に作成 したキーペアを選択します。 新しいキーペアを作成することもできます。[Create a new key pair] を選択し、キーペアの名前 を入力してから、[Download Key Pair] を選択します。秘密キーファイルはこのときしか保存でき ないため、必ずダウンロードしてください。プライベートキーファイルを安全な場所に保存しま す。インスタンスと対応するプライベートキーの起動時には、毎回インスタンスに接続するたび に、キーペアの名前を入力する必要があります。 Caution [Proceed without a key pair] オプションは選択しないでください。キーペアを使用せずに インスタンスを起動すると、インスタンスに接続できません。 準備ができたら、確認チェックボックスをオンにし、[Launch Instances] を選択します。 9. インスタンスを起動することを知らせる確認ページが表示されます。[View Instances] を選択して 確認ページを閉じ、コンソールに戻ります。 10. [Instances] 画面に起動のステータスが表示されます。インスタンスはすぐに起動します。インス タンスを起動した直後のステータスは pending です。インスタンスが開始されると、ステータ スは running に変わり、インスタンスはパブリック DNS 名を取得します([Public DNS (IPv4)] 列 が非表示である場合、ページの右上隅にある [Show/Hide] アイコンを選択してから、[Public DNS (IPv4)] を選択します)。 11. インスタンスの準備ができて接続できるようになるまでには、数分かかる場合があります。イン スタンスのステータスチェックが正常に終了したことを確認してください。この情報は [Status Checks] 列で確認できます。 ステップ 2: インスタンスに接続 Linux インスタンスに接続するにはいくつかの方法があります。この手順では、ブラウザを使用して 接続します。また、PuTTY または SSH クライアントを使用して接続することもできます。さらに、 この手順では、前のステップに従っていること、特定のユーザー名を持つインスタンスを Amazon Linux AMI から起動していることを前提とします。Linux ディストリビューション別に使用されるユー ザー名は異なる場合があります。詳細については、「PuTTY を使用した Windows から Linux インス 31 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 3: インスタンスをクリーンアップする タンスへの接続 (p. 319)」または「SSH を使用した Linux インスタンスへの接続 (p. 314)」を参照 してください。 Important .pem ファイルがあるキーペアで起動し、SSH アクセスを許可するセキュリティグループで起 動していない限り、インスタンスに接続することはできません。インスタンスに接続できな い場合は、「インスタンスへの接続に関するトラブルシューティング (p. 914)」を参照して ください。 ウェブブラウザを使用して Linux インスタンスに接続するには 1. ブラウザに Java がインストールされて有効になっている必要があります。Java を持っていない 場合は、システム管理者に連絡してインストールしてもらうか、「Install Java」および「Enable Java in your web browser」の各ページに説明されているステップに従います。 2. Amazon EC2 コンソールのナビゲーションペインで、[Instances] を選択します。 3. 4. インスタンスを選択し、[Connect] を選択します。 [A Java SSH client directly from my browser (Java required)] を選択します。 5. Amazon EC2 は、インスタンスのパブリック DNS 名を自動的に検出して、[Public DNS] に自動 的に入力します。インスタンス起動時に指定したキーペアも自動的に検出します。次のように入 力し、[Launch SSH Client] を選択します。 a. b. 6. 7. 8. 9. [User name] に「ec2-user」と入力します。 [Private key path] に、プライベートキー (.pem) ファイルへの完全修飾パスを入力します (キーペア名を含む)。 c. (オプション) [Store in browser cache] を選択して、ブラウザキャッシュにプライベートキー の場所を保存します。これにより、Amazon EC2 はユーザーがブラウザのキャッシュをクリ アするまで、以降のブラウザセッションでプライベートキーの場所を検出します。 必要に応じて、[Yes] を選択して証明書を信頼し、[Run] を選択して MindTerm クライアントを実 行します。 初めて MindTerm を実行した場合、一連のダイアログボックスにより、ライセンス契約への同 意、ホームディレクトリの設定確認、既知のホストディレクトリの設定確認が求められます。こ れらの設定を確認します。 既知のホストセットにホストを追加するよう求めるダイアログが表示されます。ホストキー情報 をローカルコンピューターに保存しない場合は、[No] を選択します。 ウィンドウが開き、インスタンスに接続した状態になります。 Note 前のステップで [No] を選択した場合は、次のメッセージが表示されます (正常です)。 Verification of server key disabled in this session. ステップ 3: インスタンスをクリーンアップする このチュートリアル用に作成したインスタンスを使用した操作が終了したら、インスタンスを終了し てクリーンアップする必要があります。クリーンアップする前にこのインスタンスでやることがある 場合は、「次のステップ (p. 33)」を参照してください。 Important インスタンスを終了するということは、実質的には、そのインスタンスを削除するというこ とです。いったん終了したインスタンスに再接続することはできません。 32 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 次のステップ AWS 無料利用枠外でインスタンスを起動した場合は、インスタンスのステータスが shutting down または terminated に変わるとインスタンスの課金が停止します。後のためにインスタンスを維持し たいが料金を発生させたくない場合は、インスタンスを停止して後で再び開始できます。詳細につい ては、Stopping Instances をご覧ください。 インスタンスを終了するには 1. ナビゲーションペインで、[Instances] を選択します。インスタンスの一覧で、インスタンスを選 択します。 2. 3. [Actions]、[Instance State]、[Terminate] の順に選択します。 確認を求めるメッセージが表示されたら、[Yes, Terminate] を選択します。 Amazon EC2 によって、インスタンスがシャットダウンおよび終了します。インスタンスの終 了後、インスタンスはしばらくの間コンソールに表示されたままですが、エントリは削除されま す。 次のステップ インスタンスを起動した後で、次の演習の一部を行ってみるといいかもしれません。 • Run Command を使用してリモートに EC2 インスタンスを管理する方法を説明します。詳細につい ては、「チュートリアル: Amazon EC2 インスタンスをリモートで管理する (p. 69)」および「リ モート管理 (p. 440)」を参照してください。 • 使用量が無料利用枠を超えた場合に通知する CloudWatch アラームの設定。詳細については、AWS Billing and Cost Management ユーザーガイドの「請求アラームの作成」を参照してください。 • EBS ボリュームの追加。詳細については、「Amazon EBS ボリュームの作成 (p. 767)」および 「インスタンスへの Amazon EBS ボリュームのアタッチ (p. 772)」を参照してください。 • LAMP スタックのインストール。詳細については、「チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール (p. 36)」を参照してください。 33 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 のベストプラクティス このチェックリストは、Amazon EC2 のメリットと満足感を最大限に引き出せるようにするためのも のです。 セキュリティとネットワーク • ID フェデレーション、IAM ユーザー、IAM ロールを使用して、AWS リソースおよび API へのアク セスを管理します。AWS アクセス認証情報の作成、配布、ローテーション、および取り消しを行う ための認証情報管理のポリシーおよび手順を確立します。詳細については、IAM ユーザーガイド の 「IAM のベストプラクティス」を参照してください。 • セキュリティグループに対して、最も制限のないルールを適用します。詳細については、「セキュ リティグループのルール (p. 580)」を参照してください。 • 定期的にインスタンスのオペレーティングシステムやアプリケーションに対してパッチ処理、 更新、および保護を行います。Amazon Linux の更新の詳細については、「ソフトウェアの管理 (Linux インスタンスの場合) 」を参照してください。Windows インスタンスの更新の詳細について は、Windows インスタンスの Amazon EC2 ユーザーガイド の「Windows インスタンスの更新」を 参照してください。 • EC2-Classic ではなく VPC でインスタンスを起動します。2013 年 12 月 4 日以降に AWS アカウン トを作成した場合は、VPC でインスタンスが自動的に起動されることに注意してください。この動 作を行う利点については、「Amazon EC2 と Amazon Virtual Private Cloud (p. 642)」を参照して ください。 ストレージ • データの永続性、バックアップ、および復元に対するルートデバイスタイプの影響について理解し ます。詳細については、「ルートデバイスのストレージ (p. 77)」を参照してください。 • オペレーティングシステム用およびデータ用として個別に Amazon EBS ボリュームを使用します。 データのボリュームがインスタンス終了後も保持されることを確認します。詳細については、「イ ンスタンスの終了で Amazon EBS ボリュームを保持する (p. 337)」を参照してください。 • インスタンスで一時データの格納に使用できるインスタンスストアを使用します。インスタンスを 停止または終了すると、インスタンスストアに格納されたデータは削除されることに注意してくだ さい。データベースストレージにインスタンスストアを使用する場合は、耐障害性を確保するレプ リケーション係数が設定されたクラスターがあることを確認します。 リソース管理 • AWS リソースを追跡および識別するために、インスタンスメタデータおよびリソースのカスタムタ グを使用します。詳細については、「インスタンスメタデータとユーザーデータ (p. 367)」および 「Amazon EC2 リソースにタグを付ける (p. 889)」を参照してください。 34 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド • Amazon EC2 の現在の制限を表示します。制限の引き上げに対するリクエストは、制限の引 き上げが必要となる前に計画してください。詳細については、「Amazon EC2 サービスの制 限 (p. 899)」を参照してください。 バックアップ&リストア • Amazon EBS スナップショット (p. 805)またはバックアップツールを使用して、定期的にインス タンスをバックアップします。 • 複数のアベイラビリティゾーンにアプリケーションの重要なコンポーネントをデプロイし、データ を適切にレプリケートします。 • インスタンスが再開したときに、動的な IP アドレスを処理するアプリケーションを設計します。 詳細については、「Amazon EC2 インスタンスの IP アドレッシング (p. 672)」を参照してくださ い。 • イベントを管理し、対応します。詳細については、「Amazon EC2 のモニタリング (p. 521)」を 参照してください。 • フェイルオーバーを処理する準備が整っていることを確認します。基本的な解決策として、手動で ネットワークインターフェイスをアタッチすることも、代替インスタンスに Elastic IP アドレスを 関連付けることもできます。詳細については、「Elastic Network Interface (p. 697)」を参照してく ださい。自動化されたソリューションとして Auto Scaling を使用できます。詳細については、Auto Scaling ユーザーガイド を参照してください。 • 障害が発生した場合にインスタンスと Amazon EBS ボリュームを復元するプロセスを定期的にテス トします。 35 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール Linux を実行する Amazon EC2 イン スタンスのチュートリアル 次のチュートリアルでは、Linux を実行する EC2 インスタンスを使用して一般的なタスクを実行する 方法を示します。 チュートリアル • チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール (p. 36) • チュートリアル: Amazon Linux を使った WordPress ブログのホスティング (p. 46) • チュートリアル: Amazon Linux で SSL/TLS を使用できるように Apache ウェブサーバーを設定す る (p. 56) • チュートリアル: Amazon EC2 のアプリケーションの可用性の向上 (p. 65) • チュートリアル: Amazon EC2 インスタンスをリモートで管理する (p. 69) チュートリアル: Amazon Linux への LAMP ウェ ブサーバーのインストール 次の手順では、Apache ウェブサーバーを PHP と MySQL のサポートとともに Amazon Linux インス タンスにインストールします (LAMP ウェブサーバーまたは LAMP スタックとも呼ばれます)。この サーバーを使用して静的ウェブサイトをホストしたり、データベースとの情報の読み取りと書き込み を行う動的な PHP アプリケーションをデプロイしたりできます。 前提条件 このチュートリアルでは、インターネットからアクセス可能なパブリック DNS 名を持つインスタン スを既に起動したことを前提にしています。詳細については、「ステップ 1: インスタンスを起動す る (p. 30)」を参照してください。また、セキュリティグループを設定して、SSH (ポート 22)、HTTP (ポート 80)、HTTPS (ポート 443) 接続を有効にしている必要もあります。前提条件の詳細について は、Amazon EC2 でのセットアップ (p. 21) を参照してください。 Important Ubuntu インスタンスでの LAMP ウェブサーバーのセットアップは、このチュートリアルの範 囲外です。これらの手順は Amazon Linux で使用するためのものです。その他のディストリ 36 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール ビューションの詳細については、各ドキュメントを参照してください。Ubuntu の LAMP ウェ ブサーバーについては、Ubuntu コミュニティのドキュメントの ApacheMySQLPHP トピック を参照してください。 Amazon Linux に LAMP ウェブサーバーをインストールして起動するには 1. インスタンスに接続します (p. 31)。 2. すべてのソフトウェアパッケージが最新の状態であることを確認するため、インスタンスでソフ トウェアの更新を実行します。この処理には数分かかりますが、最新の更新とバグ修正を確実に 適用することが重要です。 Note -y オプションを指定すると、確認メッセージを表示せずに更新をインストールできま す。インストール前に更新を検査する場合は、このオプションを省略できます。 [ec2-user ~]$ sudo yum update -y 3. これでインスタンスが最新状態になったので、Apache ウェブサーバー、MySQL、PHP ソフト ウェアパッケージをインストールできます。yum install コマンドを使用すると、複数のソフト ウェアパッケージと関連するすべての依存関係を同時にインストールできます。 [ec2-user ~]$ sudo yum install -y httpd24 php56 mysql55-server php56mysqlnd 4. Apache ウェブサーバーを起動します。 [ec2-user ~]$ sudo service httpd start Starting httpd: 5. [ OK ] chkconfig コマンドを使用して、システムがブートするたびに Apache ウェブサーバーが起動する ように設定します。 [ec2-user ~]$ sudo chkconfig httpd on Tip chkconfig コマンドでは、サービスを正常に有効にしたときに確認メッセージは一切表示 されません。httpd が有効であることは、次のコマンドを実行して確認できます。 [ec2-user ~]$ chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ここで、httpd は実行レベル 2、3、4、および 5 で on です (これらの値である必要があります)。 6. ウェブサーバーをテストします。ウェブブラウザで、インスタンスのパブリック DNS アドレス (またはパブリック IP アドレス) を入力すると、Apache テストページが表示されます。Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます ([Public DNS] 列を チェックします。列が非表示の場合は、[Show/Hide] を選択して、[Public DNS] を選択します)。 Tip Apache テストページが表示されない場合、使用しているセキュリティグループ に、HTTP (ポート 80) トラフィックを許可するルールが含まれていることを確認しま 37 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール す。HTTP ルールをセキュリティグループに追加する方法については、セキュリティグ ループへのルールの追加 (p. 585) を参照してください。 Important Amazon Linux を使用していない場合は、それらの接続を許可するようにインスタンスの ファイアウォールを設定する必要があるかもしれません。ファイアウォールの設定方法 の詳細については、ディストリビューション用のドキュメントを参照してください。 Note このテストページが表示されるのは、/var/www/html にコンテンツがない場合のみで す。ドキュメントルートにコンテンツを追加すると、コンテンツはこのテストページで はなく、インスタンスのパブリック DNS アドレスに表示されます。 Apache httpd は、Apache ドキュメントルートと呼ばれるディレクトリに維持されるファイルを提 供します。Amazon Linux Apache ドキュメントルートは /var/www/html であり、デフォルトでは root によって所有されます。 38 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール [ec2-user ~]$ ls -l /var/www total 16 drwxr-xr-x 2 root root 4096 Jul 12 01:00 cgi-bin drwxr-xr-x 3 root root 4096 Aug 7 00:02 error drwxr-xr-x 2 root root 4096 Jan 6 2012 html drwxr-xr-x 3 root root 4096 Aug 7 00:02 icons ec2-user がこのディレクトリで複数のファイルを操作できるようにするには、ディレクトリの所有 権と許可を変更する必要があります。このタスクを完了するには多くの方法があります。このチュー トリアルでは、www グループをインスタンスに追加し、そのグループに /var/www ディレクトリの所 有権を与え、グループの書き込み許可を追加します。そのグループの任意のメンバーは、ウェブサー バーに対してファイルの追加、削除、および変更ができるようになります。 ファイルの許可を設定するには 1. www グループをインスタンスに追加します。 [ec2-user ~]$ sudo groupadd www 2. ユーザー (この場合は ec2-user) を www グループに追加します。 [ec2-user ~]$ sudo usermod -a -G www ec2-user Important 新しいグループを取得するには、ログアウトしてから再度ログインする必要がありま す。exit コマンドを使用するか、ターミナルウィンドウを閉じることができます。 3. ログアウトし、再度ログインして www グループでメンバーシップを確認します。 a. ログアウトします。 [ec2-user ~]$ exit b. インスタンスに再接続し、次のコマンドを実行して www グループのメンバーシップを検証し ます。 [ec2-user ~]$ groups ec2-user wheel www 4. /var/ とそのコンテンツのグループ所有権を wwwwww グループに変更します。 [ec2-user ~]$ sudo chown -R root:www /var/www 5. /var/www およびそのサブディレクトリのディレクトリ許可を変更してグループの書き込み許可 を設定し、将来のサブディレクトリにグループ ID を設定します。 [ec2-user ~]$ sudo chmod 2775 /var/www [ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \; 6. /var/www およびそのサブディレクトリのファイル許可を繰り返し変更してグループの書き込み 許可を追加します。 [ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \; 39 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール ここで、ec2-user (および www グループの将来のメンバー) は、Apache ドキュメントルートでファ イルを追加、削除、編集できるようになります。これで、静的なウェブサイトや PHP アプリケーショ ンなどのコンテンツを追加できます。 (オプション) ウェブサーバーの保護 HTTP プロトコルを実行するウェブサーバーは、送受信したデータのトランスポートセキュリティを 提供しません。ウェブブラウザを使用して HTTP サーバーに接続すると、入力した URL、受信した ウェブページの内容、送信した HTML フォームの内容 (パスワードなど) はすべて、ネットワーク経路 上のだれでも傍受できるようになります。ウェブサーバーを保護するためのベストプラクティスとし て、SSL/TLS 暗号化でデータを保護する HTTPS (HTTP Secure) のサポートをインストールしてくだ さい。 サーバーで HTTPS を有効にする方法の詳細については、「チュートリアル: Amazon Linux で SSL/ TLS を使用できるように Apache ウェブサーバーを設定する」を参照してください。 LAMP ウェブサーバーをテストするには サーバーがインストールおよび実行されており、ファイルの許可が正しく設定されている場合、ec2user アカウントはインターネットから使用できる /var/www/html ディレクトリにシンプルな PHP ファイルを作成できます。 1. Apache ドキュメントルートでシンプルな PHP ファイルを作成します。 [ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php Tip このコマンドを実行しようとしたときに「Permission denied」というエラーが表 示された場合は、ログアウトし、再度ログインして、ファイルの許可を設定するに は (p. 39) で設定した正しいグループ許可を取得します。 2. ウェブブラウザで、作成したファイルの URL を入力します。この URL は、インスタンスのパブ リック DNS アドレスにスラッシュとファイル名を追加したものです。例: http://my.public.dns.amazonaws.com/phpinfo.php PHP 情報ページが表示されます。 40 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール Note このページが表示されない場合は、前のステップで /var/www/html/phpinfo.php ファイルが正しく作成されたことを確認します。必要なすべてのパッケージが、次のコ マンドでインストールされたことも確認できます (2 番目の列のパッケージのバージョン が、この出力例に一致する必要はありません)。 [ec2-user ~]$ sudo yum list installed httpd24 php56 mysql55-server php56-mysqlnd Loaded plugins: priorities, update-motd, upgrade-helper 959 packages excluded due to repository priority protections Installed Packages httpd24.x86_64 2.4.16-1.62.amzn1 @amzn-main mysql55-server.x86_64 5.5.45-1.9.amzn1 @amzn-main php56.x86_64 5.6.13-1.118.amzn1 @amzn-main php56-mysqlnd.x86_64 5.6.13-1.118.amzn1 @amzn-main 必要なパッケージのいずれかが出力に表示されていない場合は、sudo yum install package コマンドを使ってインストールします。 3. phpinfo.php ファイルを削除します。これは有用な情報である可能性がありますが、セキュリ ティ上の理由から、インターネットにブロードキャストしないようにしてください。 [ec2-user ~]$ rm /var/www/html/phpinfo.php 41 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール MySQL サーバーをセキュリティで保護するには MySQL サーバーのデフォルトのインストールには、テストおよび開発に役立ついくつかの機能があり ますが、実稼働サーバーでは無効にするか削除する必要があります。mysql_secure_installation コマン ドを使用すると、ルートパスワードを設定し、安全でない機能をインストールから削除する手順が案 内されます。MySQL サーバーを使用する予定がない場合でも、この手順を実行することをお勧めしま す。 1. MySQL サーバーを起動します。 [ec2-user ~]$ sudo service mysqld start Initializing MySQL database: Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! ... Starting mysqld: 2. [ OK ] mysql_secure_installation を実行します。 [ec2-user ~]$ sudo mysql_secure_installation a. プロンプトが表示されたら、root アカウントのパスワードを入力します。 i. 現在の root パスワードを入力します。デフォルトでは、root アカウントにはパスワー ドが設定されていないので、Enter を押します。 ii. 「Y」と入力してパスワードを設定し、安全なパスワードを 2 回入力します。安全なパ スワード作成の詳細については、http://www.pctools.com/guides/password/ を参照してく ださい。このパスワードは必ず安全な場所に保管します。 Note MySQL のルートパスワードの設定は、データベースを保護するための最も基本 的な手段にすぎません。データベース駆動型アプリケーションを構築またはイ ンストールする必要がある場合、通常はそのアプリケーションのデータベース サービスユーザーを作成します。ルートアカウントは、データベース管理以外 には使用しないでください。 3. b. 「Y」と入力して匿名ユーザーアカウントを削除します。 c. 「Y」と入力して root ログインを無効にします。 d. 「Y」と入力してテストデータベースを削除します。 e. 「Y」と入力して権限テーブルを再ロードし、変更を保存します。 (オプション) すぐに使用する予定がない場合は、MySQL サーバーを停止します。再び必要になっ たときに、サーバーを再起動できます。 [ec2-user ~]$ sudo service mysqld stop Stopping mysqld: 4. [ OK ] (オプション) ブート時に必ず MySQL サーバーを起動させる場合は、次のコマンドを入力しま す。 42 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール [ec2-user ~]$ sudo chkconfig mysqld on これで、完全に機能する LAMP ウェブサーバーを設定しました。/var/www/html の Apache ドキュ メントルートにコンテンツを追加する場合、そのコンテンツはインスタンスのパブリック DNS アド レスで表示できます。 (オプション) phpMyAdmin のインストール phpMyAdmin は、EC2 インスタンスで MySQL データベースを表示して編集するために使用できる、 ウェブベースのデータベース管理ツールです。Amazon Linux インスタンスで phpMyAdmin をインス トールして設定には、以下の手順に従ってください。 Important Apache で SSL/TLS を有効にしていない場合、LAMP サーバーへのアクセスに phpMyAdmin を使用することは推奨されません。そのようにすると、データベース管理者のパスワードや 他のデータは、インターネット上を安全ではない状態で送信されます。EC2 インスタンスで の安全なウェブサーバーの設定については、「チュートリアル: Amazon Linux で SSL/TLS を 使用できるように Apache ウェブサーバーを設定する」を参照してください。 1. インスタンスで Fedora プロジェクトの Extra Packages for Enterprise Linux (EPEL) リポジトリ を有効にします。 [ec2-user ~]$ sudo yum-config-manager --enable epel 2. phpMyAdmin パッケージをインストールします。 [ec2-user ~]$ sudo yum install -y phpMyAdmin Note プロンプトが表示されたら、y と答えて EPEL リポジトリの GPG キーをインポートしま す。 3. ローカルマシンからのアクセスを許可するように phpMyAdmin インストールを設定します。デ フォルトでは、phpMyAdmin は実行中のサーバーからのアクセスのみを許可しますが、Amazon Linux にはウェブブラウザが含まれないため、これはあまり有益ではありません。 a. whatismyip.com のようなサービスを参照して、ローカル IP アドレスを見つけます。 b. /etc/httpd/conf.d/phpMyAdmin.conf ファイルを編集して、サーバーの IP アドレス (127.0.0.1) を前述のコマンドでローカル IP アドレスに置き換え、your_ip_address を、 前のステップで識別したローカル IP アドレスと置き換えます。 [ec2-user ~]$ sudo sed -i -e 's/127.0.0.1/your_ip_address/g' /etc/ httpd/conf.d/phpMyAdmin.conf 4. Apache ウェブサーバーを再起動して、新しい設定を有効にします。 [ec2-user ~]$ sudo service httpd restart Stopping httpd: Starting httpd: 5. MySQL サーバーを再起動して、新しい設定を有効にします。 43 [ [ OK OK ] ] Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール [ec2-user ~]$ sudo service mysqld restart Stopping mysqld: Starting mysqld: 6. [ [ OK OK ] ] ウェブブラウザで、phpMyAdmin インストールの URL を入力します。この URL は、インスタン スのパブリック DNS アドレスにスラッシュと phpmyadmin を追加したものです。例: http://my.public.dns.amazonaws.com/phpmyadmin phpMyAdmin ログインページが表示されます。 44 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール Note 403 Forbidden エラーが発生した場合は、/etc/httpd/conf.d/phpMyAdmin.conf ファイルで正しい IP アドレスを設定したことを確認します。次のコマンドを使って Apache アクセスログを表示し、Apache サーバーが実際にリクエストを取得している IP アドレスを確認できます。 45 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 関連トピック [ec2-user ~]$ sudo tail -n 1 /var/log/httpd/access_log | awk '{ print $1 }' 205.251.233.48 以前に入力した間違ったアドレスをここで返された IP アドレスに置き換えて Step 3.b (p. 43) を繰り返します。例: [ec2-user ~]$ sudo sed -i -e 's/previous_ip_address/205.251.233.48/ g' /etc/httpd/conf.d/phpMyAdmin.conf IP アドレスを置き換えたら、Step 4 (p. 43) を使用して httpd サービスを再起動しま す。 7. 前に作成した root ユーザー名と MySQL のルートパスワードを使って、phpMyAdmin インス トールにログインします。phpMyAdmin の使用の詳細については、phpMyAdmin ユーザーガイド を参照してください。 関連トピック インスタンスへのファイルの転送、またはウェブサーバーへの WordPress ブログのインストールの詳 細については、次のトピックを参照してください。 • WinSCP を使用した Linux インスタンスへのファイルの転送 (p. 324) • SCP を使用した Linux から Linux インスタンスへのファイルの転送 (p. 316) • チュートリアル: Amazon Linux を使った WordPress ブログのホスティング (p. 46) このトピックで使用されているコマンドおよびソフトウェアの詳細については、次のウェブページを 参照してください。 • Apache ウェブサーバー: http://httpd.apache.org/ • MySQL データベースサーバー: http://www.mysql.com/ • PHP プログラミング言語: http://php.net/ • chmod コマンド: https://en.wikipedia.org/wiki/Chmod • chown コマンド: https://en.wikipedia.org/wiki/Chown ウェブサーバーのドメイン名の登録、または、既存のドメイン名をこのホストに移す方法について は、Amazon Route 53 開発者ガイド の「Amazon Route 53 のドメインとサブドメインの作成と移 行」を参照してください。 チュートリアル: Amazon Linux を使った WordPress ブログのホスティング 次の手順では、お客様の Amazon Linux インスタンスで、WordPress ブログのインストール、構成を 実行し、安全性を確立します。 Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。このチュートリアルの多くの手順 46 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 前提条件 は、Ubuntu インスタンスには使用できません。Ubuntu インスタンスでの WordPress のイン ストールについては、Ubuntu のドキュメントで「WordPress」を参照してください。 前提条件 このチュートリアルでは、「チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストー ル (p. 36)」のすべての手順に従って、PHP と MySQL をサポートする機能的なウェブサーバーを 含む Amazon Linux インスタンスを起動したことを前提としています。このチュートリアルでは、セ キュリティグループで HTTP および HTTPS トラフィックを許可するように設定する手順や、ウェブ サーバー用にファイルアクセス許可が正しく設定されていることを確認する手順も示します。まだ そうしていない場合は、「チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストー ル (p. 36)」を参照してこれらの前提条件を満たした後、このチュートリアルに戻って WordPress をインストールします。セキュリティグループへのルール追加の詳細については、セキュリティグ ループへのルールの追加 (p. 585) を参照してください。 Elastic IP アドレス (EIP) は、WordPress ブログのホストに使用しているインスタンスに関連付けるこ とを強くお勧めします。これにより、インスタンスのパブリック DNS アドレスが変更されて、イン ストールが破損することを防止できます。ドメイン名を所有していてそのドメインをブログに使用す る場合、EIP アドレスをポイントするようにドメイン名の DNS レコードを更新できます (これを行う には、ドメイン名レジストラに問い合わせてください)。実行中のインスタンスに関連付けられた EIP アドレスを無料で 1 つ取得できます。詳細については、「Elastic IP アドレス (p. 689)」を参照して ください。 ブログのドメイン名がまだない場合は、Amazon Route 53 にドメイン名を登録し、インスタンスの EIP アドレスをドメイン名に関連付けることができます。詳細については、Amazon Route 53 開発者 ガイドの「Amazon Route 53 を使用したドメイン名の登録」を参照してください。 WordPress のインストール このチュートリアルは、WordPress ブログをホストするウェブサーバーを完全に制御する (これは 従来のホスティングサービスでは一般的なことではありません) という点で、Amazon EC2 を使用 するための優れた手引きになります。もちろんこれは、サーバーに対するソフトウェアパッケージ の更新と、セキュリティパッチの維持は、お客様の責任であることも意味します。ウェブサーバー 構成との直接的な対話操作を必要としない、より自動化された WordPress をインストールする場 合、AWS CloudFormation サービスは、迅速に始められる WordPress テンプレートを提供します。 詳細については、AWS CloudFormation ユーザーガイド の「ご利用開始にあたって」を参照してく ださい。Windows インスタンスで WordPress ブログをホスティングする場合は、Windows インスタ ンスの Amazon EC2 ユーザーガイド の Deploying a WordPress Blog on Your Amazon EC2 Windows Instance を参照してください。 WordPress インストールパッケージをダウンロードして解凍するには 1. wget コマンドを使って、最新の WordPress インストールパッケージをダウンロードします。次 のコマンドを実行すると、最新リリースが必ずダウンロードされます。 [ec2-user ~]$ wget https://wordpress.org/latest.tar.gz --2013-08-09 17:19:01-- https://wordpress.org/latest.tar.gz Resolving wordpress.org (wordpress.org)... 66.155.40.249, 66.155.40.250 Connecting to wordpress.org (wordpress.org)|66.155.40.249|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 4028740 (3.8M) [application/x-gzip] Saving to: latest.tar.gz 100%[======================================>] 4,028,740 0.2s 47 20.1MB/s in Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド WordPress のインストール 2013-08-09 17:19:02 (20.1 MB/s) - latest.tar.gz saved [4028740/4028740] 2. インストールパッケージを解凍します。インストールフォルダは、wordpress という名前のフォ ルダに解凍されます。 [ec2-user ~]$ tar -xzf latest.tar.gz [ec2-user ~]$ ls latest.tar.gz wordpress WordPress インストール用に MySQL ユーザーとデータベースを作成するには WordPress インストールは、ブログの投稿エントリ、ユーザーコメントなどの情報をデータベースに 格納する必要があります。この手順を実行すると、ブログ用にデータベースを作成するのに役立ち、 このデータベースに対して情報の読み取りや保存を許可されたユーザーにも有用です。 1. MySQL サーバーを起動します。 [ec2-user ~]$ sudo service mysqld start 2. MySQL サーバーに root ユーザーとしてログインします。メッセージが表示されたら、MySQL root パスワードを入力します。これは通常の root システムパスワードと異なることもあれ ば、MySQL サーバーのセキュリティ確保を実行していない場合は、空のときもあります。 Important MySQL サーバーのセキュリティを確保していない場合、セキュリティ確保を行うこと は非常に重要です。詳細については、「MySQL サーバーをセキュリティで保護するに は (p. 42)」を参照してください。 [ec2-user ~]$ mysql -u root -p Enter password: 3. MySQL データベースのユーザーとパスワードを作成します。WordPress インストールは、これ らの値を使って、MySQL データベースと通信を行います。一意のユーザー名とパスワードを入力 して、次のコマンドを入力します。 mysql> CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password'; Query OK, 0 rows affected (0.00 sec) ユーザー用に強力なパスワードを作成してください。パスワードに一重引用符 (') を使用しないで ください。この文字は前述のコマンドを中断させるためです。安全なパスワードの作成の詳細に ついては、http://www.pctools.com/guides/password/ を参照してください。既存のパスワードを再 利用しないでください。また、このパスワードは必ず安全な場所に保管してください。 4. データベースを作成します。wordpress-db など、データベースにはわかりやすい名前を使用し ます。 Note 次のコマンドのデータベース名を囲む区切り記号は、「バックティック」と呼ばれてい ます。バックティック (`) キーは通常、標準キーボードの Tab キーの上に配置されていま す。バックティックは必ずしも必要ではありませんが、データベース名では使用できな い文字 (ハイフンなど) の代わりに使用できます。 48 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド WordPress のインストール mysql> CREATE DATABASE `wordpress-db`; Query OK, 1 row affected (0.01 sec) 5. データベースに対して、以前作成した WordPress ユーザーに対する完全な権限を付与します。 mysql> GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpressuser"@"localhost"; Query OK, 0 rows affected (0.00 sec) 6. すべての変更を有効にするため、MySQL 権限をフラッシュします。 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) 7. mysql クライアントを終了します。 mysql> exit Bye wp-config.php ファイルの作成と編集を行うには WordPress インストールフォルダには、wp-config-sample.php という名前の構成ファイル例が格 納されています。この手順では、このファイルをコピーして、特定の構成に合うように編集します。 1. wp-config-sample.php ファイルを wp-config.php という名前でコピーします。この操作を 実行すると、新しい構成ファイルが作成され、元のファイルがバックアップとしてそのまま保持 されます。 [ec2-user ~]$ cd wordpress/ [ec2-user wordpress]$ cp wp-config-sample.php wp-config.php 2. お好みのテキストエディタ (nano、vim など) を使って wp-config.php ファイルを編集し、イン ストール用の値を入力します。お好みのテキストエディタがない場合は、nano が非常に使いやす くてお勧めです。 [ec2-user wordpress]$ nano wp-config.php a. DB_NAME を定義する行を探して、database_name_here を WordPress インストール用に MySQL ユーザーとデータベースを作成するには (p. 48) の Step 4 (p. 48) で作成した データベース名に変更します。 define('DB_NAME', 'wordpress-db'); b. DB_USER を定義する行を探して、username_here を WordPress インストール用に MySQL ユーザーとデータベースを作成するには (p. 48) の Step 3 (p. 48) で作成したデータ ベースユーザーに変更します。 define('DB_USER', 'wordpress-user'); c. DB_PASSWORD を定義する行を探して、password_here を WordPress インストール用に MySQL ユーザーとデータベースを作成するには (p. 48) の Step 3 (p. 48) で作成した強 力なパスワードに変更します。 49 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド WordPress のインストール define('DB_PASSWORD', 'your_strong_password'); d. Authentication Unique Keys and Salts というセクションを見つけます。これらの KEY と SALT の値は、WordPress ユーザーがローカルマシンに保存したブラウザクッキーに 対する暗号化レイヤーを提供します。基本的に、ここで長くてランダムな値を指定すると、 サイトのセキュリティが向上します。https://api.wordpress.org/secret-key/1.1/salt/ にアクセ スして、ランダムに生成されるキーセット値を取得し、wp-config.php ファイルにコピー して貼り付けることができます。PuTTY 端末にテキストを貼り付けるには、テキストを貼り 付ける場所にカーソルを置き、PuTTY 端末内でマウスを右クリックします。 セキュリティキーの詳細については、http://codex.wordpress.org/Editing_wpconfig.php#Security_Keys にアクセスしてください。 Note 次の値はサンプル専用です。これらの値を実際のインストールには使わないでくだ さい。 define('AUTH_KEY', ' #U$$+[RXN8:b^-L 0(WU_+ c+WFkI~c]o]-bHw+)/ Aj[wTwSiZ<Qb[mghEXcRh-'); define('SECURE_AUTH_KEY', 'Zsz._P=l/| y.Lq)XjlkwS1y5NJ76E6EJ.AV0pCKZZB,*~*r ?6OP$eJT@;+(ndLg'); define('LOGGED_IN_KEY', 'ju}qwre3V*+8f_zOWf?{LlGsQ]Ye@2Jh^,8x>)Y |; (^[Iw]Pi+LG#A4R?7N`YB3'); define('NONCE_KEY', 'P(g62HeZxEes|LnI^i=H,[XwK9I&[2s|:?0N}VJM %?;v2v]v+;+^9eXUahg@::Cj'); define('AUTH_SALT', 'C$DpB4Hj[JK:?{ql`sRVa:{:7yShy(9A@5wg +`JJVb1fk%_-Bx*M4(qc[Qg%JT!h'); define('SECURE_AUTH_SALT', 'd!uRu#}+q#{f$Z?Z9uFPG.${+S{n~1M& %@~gL>U>NV<zpD-@2-Es7Q1O-bp28EKv'); define('LOGGED_IN_SALT', ';j{00P*owZf)kVD+FVLn-~ >.|Y %Ug4#I^*LVd9QeZ^&XmK|e(76miC+&W&+^0P/'); define('NONCE_SALT', '-97r*V/cgxLmp?Zy4zUU4r99QQ_rGs2LTd%P;| _e1tS)8_B/,.6[=UK<J_y9?JWG'); e. ファイルを保存し、テキストエディタを終了します。 WordPress インストールを Apache ドキュメントルートに移動するには インストールフォルダの解凍、MySQL データベースとユーザーの作成、WordPress 構成ファイル のカスタマイズが終了したため、インストールファイルをウェブサーバーのドキュメントルートに 移動し、インストールスクリプトを実行して、インストールを終了する準備ができました。これら のファイルの場所は、ウェブサーバーのルートで WordPress ブログを使用できるようにするかど うか (my.public.dns.amazonaws.com など)、またはサブディレクトリやフォルダに格納するか (my.public.dns.amazonaws.com/blog など) によって異なります。 • ブログが使用できる場所を選択し、その場所に関係する mv だけを実行します。 Important 以下の両方のコマンドセットを実行する場合、2 番目の mv コマンドでエラーメッセージ が表示されます。これは、移動しようとしたファイルが存在していないことを意味しま す。 50 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド WordPress のインストール • my.public.dns.amazonaws.com でブログを使用できるようにするには、wordpress フォルダ内のファイル (フォルダ自体ではありません) を Apache ドキュメントルート (Amazon Linux インスタンスの /var/www/html) に移動します。 [ec2-user wordpress]$ mv * /var/www/html/ • または、その代わりにブログを my.public.dns.amazonaws.com/blog で使用できるよ うにするには、Apache ドキュメントルート内に blog という名前の新規フォルダを作成 し、wordpress フォルダ内のファイル (フォルダ自体ではありません) を新しい blog フォ ルダに移動します。 [ec2-user wordpress]$ mkdir /var/www/html/blog [ec2-user wordpress]$ mv * /var/www/html/blog Important セキュリティ上の理由から、次の手順にすぐに進まない場合は、Apache ウェブサーバー (httpd) を直ちに停止してください。インストールを Apache ドキュメントルートに移動する と、WordPress インストールスクリプトは保護されなくなり、Apache ウェブサーバーが実行 している場合、攻撃者はブログへのアクセス権を取得する可能性があります。Apache ウェブ サーバーを停止するには、sudo service httpd stop コマンドを入力します。次の手順に移動す る場合、Apache ウェブサーバーを停止する必要はありません。 WordPress がパーマリンクを使用できるようにするには WordPress のパーマリンクが正しく機能するには Apache の .htaccess ファイルを使用する必要が ありますが、Amazon Linux ではデフォルトで有効になっていません。Apache ドキュメントルートで すべての上書きできるようにするには、次の手順を使用します。 1. お好みのテキストエディタ (nano や vim など) で、httpd.conf ファイルを開きます。お好みの テキストエディタがない場合は、nano が非常に使いやすくてお勧めです。 [ec2-user wordpress]$ sudo vim /etc/httpd/conf/httpd.conf 2. <Directory "/var/www/html"> で始まるセクションを見つけます。 <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # 51 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド WordPress のインストール # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Require all granted </Directory> 3. 上のセクションの AllowOverride None 行を AllowOverride All に変更します。 Note このファイルには複数の AllowOverride 行があります。必ず <Directory "/var/ www/html"> セクションの行を変更してください。 AllowOverride All 4. ファイルを保存し、テキストエディタを終了します。 Apache ウェブサーバーのファイル許可を修正するには WordPress で使用できる機能の中には、Apache ドキュメントルートへの書き込み権限が必要なもの があります (管理画面を使った、メディアのアップロードなど)。ウェブサーバーは apache ユーザー として実行されるため、そのユーザーを LAMP ウェブサーバーチュートリアル (p. 36)で作成した www グループに追加する必要があります。 1. apache ユーザーを www グループに追加します。 [ec2-user wordpress]$ sudo usermod -a -G www apache 2. /var/www とそのコンテンツのファイル所有権を apache ユーザーに変更します。 [ec2-user wordpress]$ sudo chown -R apache /var/www 3. /var/ とそのコンテンツのグループ所有権を wwwwww グループに変更します。 [ec2-user wordpress]$ sudo chgrp -R www /var/www 4. /var/www およびそのサブディレクトリのディレクトリ許可を変更してグループの書き込み許可 を設定し、将来のサブディレクトリにグループ ID を設定します。 [ec2-user wordpress]$ sudo chmod 2775 /var/www [ec2-user wordpress]$ find /var/www -type d -exec sudo chmod 2775 {} \; 5. /var/www およびそのサブディレクトリのファイル許可を繰り返し変更してグループの書き込み 許可を追加します。 [ec2-user wordpress]$ find /var/www -type f -exec sudo chmod 0664 {} \; 6. Apache ウェブサーバーを再起動して、新しいグループと許可を有効にします。 52 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド WordPress のインストール [ec2-user wordpress]$ sudo service httpd restart Stopping httpd: Starting httpd: [ [ OK OK ] ] WordPress インストールスクリプトを実行するには 1. chkconfig コマンドを使って、httpd サービスと mysqld サービスがシステムブート時に起動す ることを確認します。 [ec2-user wordpress]$ sudo chkconfig httpd on [ec2-user wordpress]$ sudo chkconfig mysqld on 2. MySQL サーバー (mysqld) が実行中であることを確認します。 [ec2-user wordpress]$ sudo service mysqld status mysqld (pid 4746) is running... mysqld サービスが実行されていない場合は、起動します。 [ec2-user wordpress]$ sudo service mysqld start Starting mysqld: 3. [ OK ] [ OK ] Apache ウェブサーバー (httpd) が実行中であることを確認します。 [ec2-user wordpress]$ sudo service httpd status httpd (pid 502) is running... httpd サービスが実行されていない場合は、起動します。 [ec2-user wordpress]$ sudo service httpd start Starting httpd: 4. ウェブブラウザで WordPress ブログの URL を入力します (インスタンスのパブリック DNS アド レス、または blog フォルダに続くアドレス)。WordPress インストール画面が表示されるはずで す。 http://my.public.dns.amazonaws.com 53 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 次のステップ 5. 6. 残りのインストール情報を WordPress インストールウィザードに入力します。 フィールド 値 [Site Title] WordPress サイトの名前を入力します。 [Username] WordPress 管理者の名前を入力します。セ キュリティ上の理由から、このユーザーに は一意の名前を選択します。これにより、デ フォルトのユーザー名である admin よりも悪 用される可能性が低くなるためです。 パスワード 強力なパスワードを入力し、確認のために再 入力します。既存のパスワードを再利用しな いでください。また、このパスワードは必ず 安全な場所に保管してください。 [Your E-mail] 通知に使用する E メールアドレスを入力しま す。 [Install WordPress] をクリックして、インストールを完了します。 これで、WordPress ブログにログインして、エントリの投稿を開始することができます。 次のステップ 最初の WordPress ブログをテストした後、構成を更新するかどうかを検討します。 カスタムドメイン名を使用する EC2 インスタンスの EIP アドレスに関連付けられたドメイン名がある場合、EC2 パブリック DNS アドレスの代わりにその名前を使用するようにブログを設定できます。詳細については、http:// codex.wordpress.org/Changing_The_Site_URL を参照してください。 54 ブログの構成 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ヘルプ! パブリック DNS 名が変更 されたため、ブログが壊れました 読者にパーソナライズされた体験を提供するため、さまざまなテーマやプラグインを使用するように ブログを設定できます。ただし、インストールプロセスで問題が発生してブログ全体が失われること があります。インストール中に問題が発生した場合もブログを復元できるように、テーマやプラグイ ンを員ストーする前にインスタンスのバックアップ Amazon マシンイメージ (AMI) を作成しておくこ とを強くお勧めします。詳細については、「独自の AMI の作成 (p. 76)」を参照してください。 容量の拡大 WordPress ブログが人気になり処理能力やストレージを増やす必要がある場合は、次のステップを検 討してください。 • インスタンスのストレージ領域を拡張する。詳細については、「Linux で EBS ボリュームのスト レージ領域を拡張する (p. 790)」を参照してください。 • MySQL データベースを Amazon RDS に移動して、サービスが持つ自動的にスケールする機能を活 用する。 • より大きなインスタンスタイプに移行する。詳細については、「インスタンスのサイズ変 更 (p. 200)」を参照してください。 • 追加インスタンスを追加する。詳細については、「チュートリアル: Amazon EC2 のアプリケー ションの可用性の向上 (p. 65)」を参照してください。 WordPress の詳細 WordPress の詳細については、http://codex.wordpress.org/ にある WordPress Codex ヘルプ文書を参 照してください。 インストールのトラブルシューティングについては、http://codex.wordpress.org/ Installing_WordPress#Common_Installation_Problems にアクセスしてください。WordPress ブ ログのセキュリティ向上の詳細については、http://codex.wordpress.org/Hardening_WordPress に アクセスしてください。WordPress ブログを最新状態に維持する方法についての詳細は、http:// codex.wordpress.org/Updating_WordPress にアクセスしてください。 ヘルプ! パブリック DNS 名が変更されたため、ブロ グが壊れました WordPress のインストールは、EC2 インスタンスのパブリック DNS アドレスを使用して自動的に設 定されます。インスタンスを停止および再開した場合、パブリック DNS アドレスが変更され (Elastic IP アドレスに関連付けられている場合を除く)、ブログが存在しなくなった (または別の EC2 イン スタンスに割り当てられた) アドレスにあるリソースを参照することになるため、ブログは機能し なくなります。問題と考えられるいくつかの解決策の詳細については、http://codex.wordpress.org/ Changing_The_Site_URL で説明されています。 WordPress のインストール時にこの状況が発生した場合、WordPress の wp-cli コマンドラインイン ターフェイスを使用する以下の手順でブログを復元できる可能性があります。 wp-cli を使用して WordPress のサイト URL を変更するには 1. 2. SSH を使って EC2 インスタンスに接続します。 インスタンスの古いサイト URL と新しいサイト URL を書き留めます。古いサイト URL は、WordPress をインストールした時点での EC2 インスタンスのパブリック DNS 名と考えられ ます。新しいサイト URL は、EC2 インスタンスの現在のパブリック DNS 名です。古いサイト URL が不明な場合、次のコマンドで curl を使用して調べることができます。 [ec2-user ~]$ curl localhost | grep wp-content 古いパブリック DNS 名への参照が出力に表示されます。次に例を示します (古いサイト URL は 赤色になっています)。 55 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: Amazon Linux で SSL/TLS を使 用できるように Apache ウェブサーバーを設定する <script type='text/javascript' src='http://ec2-52-8-139-223.uswest-1.compute.amazonaws.com/wp-content/themes/twentyfifteen/js/ functions.js?ver=20150330'></script> 3. 次のコマンドを使って wp-cli をダウンロードします。 [ec2-user ~]$ curl -O https://raw.githubusercontent.com/wp-cli/builds/ghpages/phar/wp-cli.phar 4. 次のコマンドを使って、WordPress インストールの古いサイト URL を検索し、置き換えま す。EC2 インスタンスの古いサイト URL と新しいサイト URL、および WordPress のインストー ルパス (通常は /var/www/html または /var/www/html/blog) を置き換えます。 [ec2-user ~]$ php wp-cli.phar search-replace 'old_site_url' 'new_site_url' --path=/path/to/wordpress/installation --skip-columns=guid 5. ウェブブラウザで、WordPress ブログの新しいサイト URL を入力し、サイトが再び 正しく動作していることを確認します。正しく動作していない場合は、詳細につい て http://codex.wordpress.org/Changing_The_Site_URL と http://codex.wordpress.org/ Installing_WordPress#Common_Installation_Problems を参照してください。 チュートリアル: Amazon Linux で SSL/TLS を使 用できるように Apache ウェブサーバーを設定す る Secure Sockets Layer/Transport Layer Security (SSL/TLS) は、ウェブサーバーとウェブクライアン トの間に、転送中のデータが傍受されないように保護する、暗号化されたチャネルを確立します。こ のチュートリアルでは、Apache ウェブサーバーを実行している単一の Amazon Linux インスタンス に、SSL/TLS のサポートを手動で追加する方法を説明します。ここでは説明しませんが、特に複数の ドメインを管理する必要がある場合や、商業グレードのサービスを提供する場合は、AWS Certificate Manager も適したオプションです。 Note 歴史的経緯から、ウェブの暗号化は、単純に SSL と呼ばれることが少なくありません。ウェ ブブラウザでは今でも SSL がサポートされていますが、後継プロトコルである TLS プロトコ ルの方が攻撃を受けにくいと考えられています。Amazon Linux ではデフォルトで SSL バー ジョン 2 が無効になり、このチュートリアルでは次に示すように SSL バージョン 3 も無効に することをお勧めします。推奨されている最新の暗号化標準については、RFC7568 を参照し てください。 Important これらの手順は Amazon Linux で使用するためのものです。他のディストリビューション のインスタンスでの LAMP ウェブサーバーのセットアップは、このチュートリアルの範囲 外です。 Ubuntu の LAMP ウェブサーバーについては、Ubuntu コミュニティのドキュメン トの ApacheMySQLPHP トピックを参照してください。Red Hat Enterprise Linux について は、Customer Portal でウェブサーバーに関するトピックを参照してください。 トピック • 前提条件 (p. 57) 56 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 前提条件 • ステップ 1: サーバーでの SSL/TLS の有効化 (p. 57) • ステップ 2: CA 署名証明書の取得 (p. 59) • ステップ 3: セキュリティ設定のテストと強化 (p. 63) • トラブルシューティング (p. 65) 前提条件 このチュートリアルを開始する前に、次のステップを完了してください。 • Amazon Linux インスタンスを起動します。詳細については、「ステップ 1: インスタンスを起動す る (p. 30)」を参照してください。 • SSH (ポート 22)、HTTP (ポート 80)、HTTPS (ポート 443) の接続を許可するように、セキュリティ グループを設定します。詳細については、「Amazon EC2 でのセットアップ (p. 21)」を参照してく ださい。 • Apache ウェブサーバーをインストールします。手順については、チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール (p. 36)」を参照してください。必要なのは http24 パッケージおよび対応する従属コンポーネントのみです。PHP および MySQL に関連する手順は無 視してかまいません。 • SSL/TLS の公開鍵基盤 (PKI) では、ドメインネームシステム (DNS) に基づいてウェブサイトの識別 と認証が行われます。EC2 インスタンスを使用してパブリックウェブサイトをホストする計画があ る場合は、ウェブサーバーのドメイン名を登録するか、既存のドメイン名を Amazon EC2 ホスト に移す必要があります。これについては、ドメイン登録および DNS ホスティングに関するサード パーティのサービスが多数存在します。Amazon Route 53 を使用することもできます。 ステップ 1: サーバーでの SSL/TLS の有効化 この手順では、自己署名のデジタル認証を使用して、Amazon Linux で SSL/TLS をセットアップしま す。 サーバーで SSL/TLS を有効にするには 1. インスタンスに接続 (p. 31)し、Apache が実行されていることを確認します。 [ec2-user ~]$ sudo service httpd status 必要であれば、Apache を起動します。 [ec2-user ~]$ sudo service httpd start 2. すべてのソフトウェアパッケージが最新の状態であることを確認するため、インスタンスでソフ トウェアの更新を実行します。この処理には数分かかりますが、最新の更新とバグ修正を確実に 適用することが重要です。 Note -y オプションを指定すると、確認メッセージを表示せずに更新をインストールできま す。インストール前に更新を検査する場合は、このオプションを省略できます。 [ec2-user ~]$ sudo yum update -y 3. インスタンスが最新状態になったため、Apache のモジュールである mod_ssl をインストールす ることで SSL/TLS サポートを追加します。 57 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 1: サーバーでの SSL/TLS の有効化 [ec2-user ~]$ sudo yum install -y mod24_ssl このチュートリアルでは、次に示す 3 つのインストール済みファイルを使用します。 • /etc/httpd/conf.d/ssl.conf mod_ssl の設定ファイル。このファイルには、暗号化キーと証明書の場所、許可する SSL/TLS プロトコル、使用する暗号化アルゴリズムを Apache に指示する "ディレクティブ" が含まれて います。 • /etc/pki/tls/private/localhost.key Amazon EC2 ホスト用に自動生成された 2048 ビットの RSA プライベートキー。インストー ル時には、自己署名ホスト証明書を生成するために OpenSSL によってこのキーが使用されま す。後でこのキーを使用して、認証局 (CA) に送信する証明書署名リクエスト (CSR) を生成す ることもできます。 • /etc/pki/tls/certs/localhost.crt サーバーホスト用に自動生成された、自己署名の X.509 証明書。この証明書は、SSL/TLS を使 用するように Apache が正しくセットアップされているかどうかをテストする場合に役立ちま す。 .key ファイルと .crt はどちらも PEM 形式であり、この短縮化された証明書の例のように、 「BEGIN」行と「END」行で囲まれ Base64 でエンコードされた ASCII 文字で構成されます。 -----BEGIN CERTIFICATE----MIIEazCCA1OgAwIBAgICWxQwDQYJKoZIhvcNAQELBQAwgbExCzAJBgNVBAYTAi0t MRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK DBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV bml0MRkwFwYDVQQDDBBpcC0xNzItMzEtMjAtMjM2MSQwIgYJKoZIhvcNAQkBFhVy ... z5rRUE/XzxRLBZOoWZpNWTXJkQ3uFYH6s/ sBwtHpKKZMzOvDedREjNKAvk4ws6F0 WanXWehT6FiSZvB4sTEXXJN2jdw8g +sHGnZ8zCOsclknYhHrCVD2vnBlZJKSZvak 3ZazhBxtQSukFMOnWPP2a0DMMFGYUHOd0BQE8sBJxg== -----END CERTIFICATE----- ファイル名および拡張子は利便性のためであり、関数には影響しません。証明書は、ssl.conf ファイルの関連ディレクティブが同じ名前を使用している限り、cert.crt または cert.pem ま たは certificate.pem で呼び出すことができます。 Note デフォルトの SSL ファイルを独自にカスタマイズしたファイルに置き換える場合 は、PEM 形式であることを確認してください。 4. Apache を再起動します。 [ec2-user ~]$ sudo service httpd restart 58 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 2: CA 署名証明書の取得 5. Apache ウェブサーバーではポート 443 経由で HTTPS (セキュア HTTP) がサポートされるように なっています。これをテストするには、ブラウザの URL バーに、https:// というプレフィック スを指定して、EC2 インスタンスの IP アドレスまたは完全修飾ドメイン名を入力します。信頼 されていない自己署名証明書を使用してサイトに接続しようとしているため、ブラウザには一連 の警告が表示されることがあります。 これらをオーバーライドし、サイトに進みます。サーバーで SSL/TLS を正しく設定できていれ ば、Apache のデフォルトのウェルカムページが開きます。これで、ブラウザとサーバーの間で 行き来するデータはすべて、安全に暗号化されるようになりました。このことは、ブラウザの URL バーのロックアイコンで示されます。 サイト訪問者に対して警告画面が表示されないようにするには、暗号化だけではなく、サイト所 有者のパブリック認証を行うための証明書を取得する必要があります。 ステップ 2: CA 署名証明書の取得 このセクションでは、プライベートキーから証明書署名リクエスト (CSR) を生成して認証機関 (CA) に送信し、署名付き証明書を取得して、これを使用できるように Apache を設定するプロセスについ て説明します。 自己署名 SSL/TLS X.509 証明書は、暗号化技術上は CA 署名証明書と同じです。これらの相違は数学 的なものではなく、社会的なものです。CA では、最低でもドメイン所有権を検証してから申請者に 証明書を発行することを保証しています。そのため、各ウェブブラウザには、ブラウザベンダーが信 頼する CA のリストが含まれています。X.509 証明書は主に、プライベートサーバーキーに対応する パブリックキーと、このパブリックキーに暗号で関連付けられている CA による署名で構成されてい ます。HTTPS 経由でブラウザがウェブサーバーに接続すると、サーバーは、信頼された CA のリスト をブラウザが確認できるように、証明書を提示します。署名者がリストに含まれている場合や、他の 信頼された署名者のチェーンを通じてアクセス可能である場合、ブラウザはサーバーと、高速暗号化 データチャネルのネゴシエーションを行い、ページをロードします。 証明書には、リクエストの確認作業が必要であり、一般的に費用がかかるため、各社を比較すること をお勧めします。よく知られている CA のリストについては、dmoz.org のサイトを参照してくださ い。StartCom など、少数の CA では、基本レベル ("クラス 1") の証明書が無料で発行されています。 証明書の基盤にはキーがあります。2013 年の時点では、米国政府の機関および業界グループに より、RSA キーには最小キー (モジュラス) サイズとして 2048 ビットの使用が推奨されていま す。Amazon Linux で OpenSSL によって生成されるデフォルトのモジュラスサイズは 2048 ビットで す。つまり、自動生成された既存のキーは、CA 署名証明書に適しています。モジュラスサイズを大 きくする、別の暗号化アルゴリズムを使用するなど、キーのカスタマイズが必要な場合は、次に示す 代替手順に従ってください。 CA 署名証明書を取得するには 1. 2. インスタンスに接続 (p. 31)して、/etc/pki/tls/private/ に移動します。これは、サーバーの SSL/ TLS 用プライベートキーが格納されているディレクトリです。既存のホストキーを使用して CSR を生成する場合は、ステップ 3 に進んでください。 (オプション) 新しいプライベートキーを生成します。いくつかのサンプル設定を次に示します。 生成されたキーのどれもウェブサーバーで機能しますが、セキュリティの実装方法 (および強度) はそれぞれ異なります。 1. 開始点として、インスタンスでデフォルトのホストキーに似た RSA キーを作成するコマンド は次のとおりです。 [ec2-user ~]$ sudo openssl genrsa -out custom.key 2048 結果として生成されるファイル custom.key が、2048 ビットの RSA プライベートキーで す。 59 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 2: CA 署名証明書の取得 2. これより大きなモジュラスサイズを使用して、より強力な RSA キーを作成するには、次のコ マンドを使用します。 [ec2-user ~]$ sudo openssl genrsa -out custom.key 4096 結果として生成されるファイル custom.key が、4096 ビットの RSA プライベートキーで す。 3. パスワードで保護された 4096 ビット暗号化 RSA キーを作成するには、次のコマンドを使用し ます。 [ec2-user ~]$ sudo openssl genrsa -aes128 -passout pass:abcde12345 -out custom.key 4096 結果として、AES 128 ビット暗号化方式で暗号化された 4096 ビットの RSA プライベート キーが生成されます。 Important 暗号化を使用するとセキュリティを強化できますが、暗号化キーにはパスワードが必 要であるため、暗号化に依存するサービスを自動的に開始することはできません。こ のキーを使用するたびに、SSH 接続で "abcde12345" というパスワードを指定する必 要があります。 4. RSA 暗号化は、桁数が大きい 2 つの素数の積を因数分解する困難さを安全性の根拠としている ため、比較的低速になる場合があります。ただし、非 RSA 暗号化方式を使用する SSL/TLS 用 のキーを作成することも可能です。同等レベルのセキュリティを提供する場合は、楕円曲線の 計算に基づいたキーの方が小さく高速です。例を示します。 [ec2-user ~]$ sudo openssl ecparam -name prime256v1 -out custom.key genkey この場合の出力は、prime256v1 (OpenSSL でサポートされる "名前付き曲線") を使用した 256 ビットの楕円曲線プライベートキーです。暗号化強度は (NIST によると) 2048 ビットの RSA キーよりやや優れています。 Note すべての CA で、楕円曲線ベースのキーに対して RSA キーと同じレベルのサポートが 提供されているわけではありません。 新しいプライベートキーには、制限の厳しいアクセス権を設定します (所有者ルート、グループ ルート、所有者のみの読み取り/書き込み)。コマンドは次のようになります。 [ec2-user ~]$ sudo chown root.root custom.key [ec2-user ~]$ sudo chmod 600 custom.key [ec2-user ~]$ ls -al custom.key 上のコマンドを実行すると、次のような結果になります。 -rw------- root root custom.key 適切なキーを作成し、設定できたら、CSR を作成できます。 3. 好みのキーを使用して CSR を作成します。次の例では、private.key を使用しています。 60 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 2: CA 署名証明書の取得 [ec2-user ~]$ sudo openssl req -new -key private.key -out csr.pem OpenSSL によりダイアログが開かれ、次の表に示されている情報の入力が求められます。基本的 なドメイン検証済み証明書については、[Common Name] 以外のフィールドはすべてオプション です。 名前 説明 例 国名 2 文字の ISO 略称 (国名コード)。 US (= 米国) 州名 あなたが所属する組織の所在地の州または 県。省略不可です。 ワシントン 市区町村 市など、組織の場所。 シアトル 組織名 組織の正式名称。組織名は、省略不可です。 Example Corp 部門名 組織に関する追加情報 (存在する場合)。 Example Dept 共通名 この値は、ユーザーがブラウザに入力する 必要のあるウェブアドレスと正確に一致し ます。通常、これはプレフィックス付きの ホスト名またはエイリアスによるドメイン 名 (www.example.com の形式) を意味しま す。自己署名証明書を使用し、DNS 解決な しでテストを行う場合、共通名の構成要素は ホスト名のみになる場合があります。CA で は、*.example.com などのワイルドカード 名を許容する、よりコストの高い証明書も用 意されています。 www.example.com E メールアド レス サーバー管理者の E メールアドレス. [email protected] 最後に、OpenSSL により、オプションのチャレンジパスワードが求められます。このパスワー ドは CSR と、ユーザーと CA の間のトランザクションのみに適用されるため、このフィールド と、もう 1 つのオプションフィールドである、オプションの会社名については、CA の推奨事項 に従ってください。CSR のチャレンジパスワードは、サーバー操作には影響しません。 結果として生成されるファイル csr.pem には、パブリックキー、パブリックキーのデジタル署 名、入札したメタデータが含まれています。 4. CA に CSR を送信します。この作業は通常、テキストエディタで CSR ファイルを開く動作と、 内容をウェブフォームにコピーする動作で構成されています。このとき、証明書に適用する 1 つ以上のサブジェクト代替名 (SAN) を指定するように求められることがあります。共通名が www.example.com の場合、有効な SAN は example.com になります (逆も同様です)。ユーザー が、リストにあるいずれかの名前を入力すると、エラーなしの接続が提示されます。CA のウェ ブフォームで許可される場合は、SAN のリストに共通名を含めます (一部の CA では自動的に含 められます)。 リクエストが承認されると、CA によって署名された新しいホスト証明書が届きます。CA の信 頼チェーンを完成するために必要な、追加の証明書が含まれている中間証明書ファイルをダウン ロードするよう指示されることもあります。 5. 元の自己署名ホスト証明書 (localhost.crt) を /etc/pki/tls/certs ディレクトリから削除し、新し い CA 署名証明書を (すべての中間証明書と共に) そのディレクトリに置きます。 61 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 2: CA 署名証明書の取得 Note EC2 インスタンスに新しい証明書をアップロードする方法は複数ありますが、最も簡 単でわかりやすい方法は、テキストエディタ (vi、nano、メモ帳など) をローカルコン ピューターとインスタンスの両方で開いて、両者の間でファイルの内容をコピーして貼 り付けることです。こうすることで、許可やパスに問題があるかどうかをすぐに確認で きます。ただし、内容をコピーする際に行を追加したり、内容を変更したりしないでく ださい。 /etc/pki/tls/certs ディレクトリの中から、ファイルの所有権、グループ、アクセス権の設定が制限 の厳しい Amazon Linux のデフォルト (所有者ルート、グループルート、所有者のみの読み込み/ 書き出し) と一致することを確認します。コマンドは次のようになります。 [ec2-user certs]$ sudo chown root.root custom.crt [ec2-user certs]$ sudo chmod 600 custom.crt [ec2-user certs]$ ls -al custom.crt 上のコマンドを実行すると、次のような結果になります。 -rw------- root root custom.crt 中間証明書ファイルのアクセス権は、比較的厳しくありません (所有者ルート、グループルート、 所有者による書き込み可能、パブリックによる読み取り可能)。コマンドは次のようになります。 [ec2-user certs]$ sudo chown root.root intermediate.crt [ec2-user certs]$ sudo chmod 644 intermediate.crt [ec2-user certs]$ ls -al intermediate.crt 上のコマンドを実行すると、次のような結果になります。 -rw-r--r-- root root intermediate.crt 6. 新しい CA 署名証明書のファイル名 (この例では custom.crt) は、元の証明書と異なる場合があ ります。/etc/httpd/conf.d/ssl.conf を編集し、Apache の SSLCertificateFile ディレクティブを使用 して、正しいパスとファイル名を指定します。 SSLCertificateFile /etc/pki/tls/certs/custom.crt 中間証明書ファイル (この例では intermediate.crt) を受け取ったら、Apache の SSLCACertificateFile ディレクティブを使用して、このファイルのパスとファイル名を指定しま す。 SSLCACertificateFile /etc/pki/tls/certs/intermediate.crt 7. /etc/httpd/conf.d/ssl.conf を保存して、Apache を再起動します。 [ec2-user ~]$ sudo service httpd restart 62 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 3: セキュリティ設定のテストと強化 ステップ 3: セキュリティ設定のテストと強化 SSL/TLS が運用可能になりパブリックに公開されたら、実際の安全性をテストする必要があります。 セキュリティセットアップの詳細な分析を無料で行うことのできる Qualys SSL Labs などのオンラ インサービスを使用すると簡単です。その結果に基づき、受け入れるプロトコル、優先する暗号化方 式、除外する暗号化方式を制御することによって、デフォルトのセキュリティ設定を強化するかどう かを決定できます。詳細については、Qualys のスコアの計算方法を参照してください。 Important サーバーのセキュリティを確保するには、実際のテストが非常に重要です。小さな設定エ ラーによって、深刻なセキュリティ侵害やデータの損失が生じる可能性があります。調査 や新たな脅威に応じて、推奨されるセキュリティ管理方法は常に変化するため、適切なサー バー管理を行うには、定期的なセキュリティ監査が不可欠です。 Qualys SSL Labs のサイトで、サーバーの完全修飾ドメイン名を www.example.com という形式で入 力します。約 2 分後に、サイトに関するグレード (A から F) と、結果の詳細な内訳が届きます。以下 の表は、Amazon Linux でのデフォルトの Apache 設定と同じ設定を使用しているドメインのレポート をまとめたものです。 総合評価 C 証明書 100% プロトコルサポート 90% キー交換 90% 暗号強度 90% このレポートは、設定がほとんど正常であり、証明書、プロトコルサポート、キー交換、暗号強度に 関して許容範囲の評価であることを示しています。ただし、レポートでは、全体的なグレードが低下 する原因となる 3 つの脆弱性も示されており、これらには対処する必要があります。 • POODLE 脆弱性: 2014 年に発見された POODLE 攻撃とは、攻撃者が SSL バージョン 3 の脆弱性 を悪用して、なりすましによってウェブサイトとの通信を行うというものです。この問題を解決 するには、単純に、サーバーで SSL バージョン 3 のサポートを無効にします。設定ファイル /etc/ httpd/conf.d/ssl.conf で、次の行の先頭に "#" を入力してコメントアウトします。 SSLProtocol all -SSLv2 次に、次のディレクティブを追加します。 SSLProtocol -SSLv2 -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 SSL バージョン 2 の明示的な無効化に加えて、このコマンドを実行すると SSL バージョン 3 (セ キュリティ監査で示されたもの) も無効化され、現在存在するすべてのバージョンの TLS が明示的 に許可されます。これによりサーバーでは、TLS 以外を使用した、クライアントとの暗号化された 接続の受け入れが拒否されます。ディレクティブに含める指定が多くなるほど、サーバーの動作に 対する設定内容が明確にわかりやすくなります。 • RC4 暗号化方式のサポート: 暗号化方式は、暗号化アルゴリズムの計算の中核です。SSL/TLS デー タストリームの暗号化に使用される高速の暗号化方式である RC4 は、いくつかの重大な脆弱性を 持つことで知られています。対処方法は、ssl.conf で RC4 のサポートを無効にすることです。これ は、次回の修正に含められます。 63 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ステップ 3: セキュリティ設定のテストと強化 • 前方秘匿性のサポートの欠落: 前方秘匿性とは、プライベートキーから派生した一時 (エフェメラ ル) セッションキーを使用して暗号化を行う、プロトコルの機能です。これは、攻撃者がウェブサー バーの長期的なプライベートキーを所有していても、HTTPS データを復号できないことを意味しま す。Qualys の "リファレンスブラウザ" リストにあるウェブブラウザはすべて、前方秘匿性をサポー トしています。 RC4 と前方秘匿性の両方の問題に対処するには、Apache で許可および禁止されている暗号化方式 のリストをカスタマイズし、弱い暗号化方式に対する強力な暗号化方式の優先を適用することで す。これは 2 つの設定の変更が必要です。 設定ファイル /etc/httpd/conf.d/ssl.conf で、SSLCipherSuite の設定に関してコメントアウトされ た例のあるセクションを見つけ、現在のリストを (削除はせずに) コメントアウトし、次のディレク ティブを追加します。 Note ここでは読みやすくするために数行に示していますが、ディレクティブは全体を 1 行にす る必要があります。暗号化方式名はスペースで区切りません。 SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCMSHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSAAES128-SHA256:ECDHE-ECDSA-AES128-SHA256: AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES:! aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH: !EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA これらの暗号化方式は、OpenSSL でサポートされている暗号化方式の長いリストのうち、一部で す。これらは、以下の条件に応じて選択され、順序付けられています。 1. 前方秘匿性のサポート 2. 強さ 3. スピード 4. 特定の暗号化方式、その後に暗号化方式のファミリー 5. 許可されている暗号化方式、その後に拒否されている暗号化方式 ランクの高い暗号化方式の名前には、ECDHE が含まれています (Elliptic Curve Diffie-Hellman Ephemeral など)。ephemeral は前方秘匿性を示します。また、RC4 は現在、リストの最後に近い 位置にあり、禁止された暗号化方式に含まれています。 デフォルトや、内容が見えない簡単なディレクティブに依存するのではなく、暗号化方式の明示的 なリストを使用することをお勧めします。 Important ここに示されている暗号化方式リストは、多数考えられるリストの 1 つに過ぎません。た とえば、前方秘匿性よりスピードを重視したリストが必要になることもあります。 古いクライアントをサポートする必要性が予測される場合は、DES-CBC3-SHA 暗号化ス イートを許可することができます。 最後に、OpenSSL の更新ごとに、新しい暗号化方式が導入され古い暗号化方式が廃止され ます。EC2 の Amazon Linux インスタンスを最新の状態に維持し、セキュリティに関する OpenSSL からの告知に注意して、技術分野の報道でセキュリティ面の新しい脆弱性に関す るレポートを警戒してください。詳細については、Elastic Load Balancing ユーザーガイド の「Elastic Load Balancing での事前定義された SSL のセキュリティポリシー」を参照して ください。 64 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド トラブルシューティング 次の行について、"#" を削除してコメント解除します。 #SSLHonorCipherOrder on このコマンドは、(この場合) 前方秘匿性をサポートするものも含めて、ランクの高い暗号化方式を 優先するようサーバーに強制します。このディレクティブが有効になると、サーバーは、セキュリ ティの弱い暗号化方式に戻る前に、セキュリティが強力な接続を確立しようとします。 編集した設定ファイルを保存した後、Apache を再起動します。 Qualys SSL Labs でドメインをもう一度テストすると、脆弱性が解決し次のようなレポートが出力さ れます。 総合評価 A 証明書 100% プロトコルサポート 95% キー交換 90% 暗号強度 90% トラブルシューティング • パスワードを指定しないと Apache ウェブサーバーが起動しません。 これは、パスワードで保護された暗号化プライベート サーバー キーをインストールした場合は正常 な動作です。 その暗号化のキーとパスワードを削除できます。デフォルトディレクトリに custom.key という暗 号化プライベート RSA キーがあり、そのパスフレーズが abcde12345 であるとすると、EC2 イン スタンスで次のコマンドを実行し、このキーの非暗号化バージョンを生成してください。 [ec2-user ~]$ cd /etc/pki/tls/private/ [ec2-user private]$ sudo cp custom.key custom.key.bak [ec2-user private]$ sudo openssl rsa -in custom.key -passin pass:abcde12345 -out custom.key.nocrypt [ec2-user private]$ sudo mv custom.key.nocrypt custom.key [ec2-user private]$ sudo chown root.root custom.key [ec2-user private]$ sudo chmod 600 custom.key [ec2-user private]$ sudo service httpd restart パスワードが求められずに Apache が起動するようになります。 チュートリアル: Amazon EC2 のアプリケーショ ンの可用性の向上 単一の EC2 インスタンスで開始したアプリやウェブサイトが、時間が立つにつれてトラフィックが増 加し、需要を満たすために複数のインスタンスが必要な時点まで来ているとします。AMI から複数の EC2 インスタンスを起動し、Elastic Load Balancing を使用してアプリケーションの受信トラフィッ 65 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 前提条件 クをこれらの EC2 インスタンスに分配できます。これにより、アプリケーションの可用性が向上しま す。複数のアベイラビリティーゾーンにインスタンスを置くことで、アプリケーションの耐障害性も 向上します。片方のアベイラビリティーゾーンが停止すると、トラフィックがもう片方のアベイラビ リティーゾーンにルーティングされます。 Auto Scaling を使用して、アプリケーション用に実行するインスタンスを常に最小数に維持できま す。Auto Scaling はインスタンスやアプリケーションの不具合を検出し、自動的に置き換えて、アプ リケーションの可用性を維持します。また、Auto Scaling を使用して、必要に応じて指定した条件に 従って Amazon EC2 の容量を自動的にスケールできます。 このチュートリアルでは、Auto Scaling で Elastic Load Balancing を使用して、ロードバランサーの 背後の正常な EC2 インスタンスの指定数を確実に維持します。トラフィックはロードバランサーにア クセスし、その後インスタンスにルーティングされるので、これらのインスタンスにパブリック IP ア ドレスが必要ないことに注目してください。詳細については、「Auto Scaling」および「Elastic Load Balancing」を参照してください。 目次 • 前提条件 (p. 66) • アプリケーションのスケーリングと負荷分散 (p. 67) • ロードバランサーをテストする (p. 68) 前提条件 このチュートリアルでは、以下を実行済みであることを前提としています。 1. デフォルトの仮想プライベートクラウド (VPC) がない場合は、複数のアベイラビリティーゾー ンに 1 つのパブリックサブネットを持つ VPC を作成します。詳細については、「Virtual Private Cloud (VPC) の作成 (p. 26)」を参照してください。 2. VPC でインスタンスを起動します。 3. インスタンスに接続し、それをカスタマイズします。たとえば、ソフトウェアとアプリケーショ ンをインストールしたり、データをコピーしたり、追加の EBS ボリュームをアタッチしたりでき ます。インスタンスでのウェブサーバーの設定については、「チュートリアル: Amazon Linux へ の LAMP ウェブサーバーのインストール (p. 36)」を参照してください。 4. インスタンスが正しく設定されたことを確認するために、インスタンスでアプリケーションをテ ストします。 5. インスタンスからカスタム Amazon Machine Image (AMI) を作成します。詳細については 「Amazon EBS-Backed Linux AMI の作成 (p. 96)」または「Instance Store-Backed Linux AMI の作成 (p. 100)」を参照してください。 66 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド アプリケーションのスケーリングと負荷分散 6. (オプション) 必要がなくなった場合、インスタンスを終了します。 7. アプリケーションに必要な AWS へのアクセスを付与する IAM ロールを作成します。詳細につい ては、「コンソールを使用して IAM ロールを作成する (p. 636)」を参照してください。 アプリケーションのスケーリングと負荷分散 以下の手順を使用して、ロードバランサーの作成、インスタンスの起動設定の作成、複数のインスタ ンスを持つ Auto Scaling グループの作成、Auto Scaling グループへのロードバランサーの関連付けを 行います。 アプリケーションのスケーリングと負荷分散を行うには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。 3. [Create Load Balancer] を選択します。 4. [Application Load Balancer] を選択し、[Continue] を選択します。 5. [Configure Load Balancer] ページで、以下を実行します。 a. [Name] に、ロードバランサーの名前を入力します。たとえば「my-lb」です。 b. [Scheme] で、デフォルト値 [internet-facing] を保持します。 c. [Listeners] では、デフォルトを保持します。これは、ポート 80 で HTTP トラフィックを受 け付けるリスナーです。 d. VPC 用に、 インスタンスで使用したのと同じ VPC を選択します。 e. [Available subnets] で、追加アイコンを使用してパブリックサブネットを少なくとも 2 つ選 択します。サブネットが [Selected subnets] に移動します。アベイラビリティーゾーンに つき、1 つのサブネットしか選択できないことに注意してください。既に選択されたサブ ネットがあるアベイラビリティーゾーンからサブネットを選択する場合、現在アベイラビリ ティーゾーン用に選択されたサブネットがこのサブネットに置き換えられます。 f. [Next: Configure Security Settings] を選択します。 6. このチュートリアルでは、セキュアリスナーを使用しません。[Next: Configure Security Groups] を選択します。 7. [Configure Security Groups] ページで、次の手順を完了します。 8. 9. a. [Create a new security group] を選択します。 b. セキュリティグループの名前と説明を入力するか、デフォルトの名前と説明を維持します。 この新しいセキュリティグループには、リスナーに設定されたポートへのトラフィックを許 可するルールが含まれます。 c. [Next: Configure Routing] を選択します。 [Configure Routing] ページで、以下を実行します。 a. [Target group] で、デフォルトの [New target group] を保持します。 b. [Name] に、ターゲットグループの名前を入力します。 c. [Protocol] は HTTP、[Port] は 80 を保持します。 d. [Health checks] は、デフォルトプロトコルと パスを保持します。 e. [Next: Register Targets] を選択します。 Auto Scaling を使用して EC2 インスタンスをターゲットグループに追加するため、[Register Targets] ページで [Next: Review] を選択して次のページに進みます。 10. [Review] ページで、[Create ] を選択します。ロードバランサーが作成されたら、[Close] を選択し ます。 11. ナビゲーションペインの [AUTO SCALING] で、[Launch Configurations] を選択します。 67 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ロードバランサーをテストする • Auto Scaling を初めて使用する場合は、ウェルカムページを参照してください。[Create Auto Scaling group] を選択して Create Auto Scaling Group ウィザードを起動してから、[Create launch configuration] を選択します。 • その他の場合は、[Create launch configuration] を選択します。 12. [Choose AMI] ページで、[My AMIs] タブを選択し、「前提条件 (p. 66)」で作成した AMI を選 択します。 13. [Choose Type] ページでインスタンスタイプを選択してから、[Next: Configure details] を選択し ます。 14. [Configure details] ページで、以下を実行します。 a. [Name] に起動設定の名前を入力します (例: my-launch-config)。 b. [IAM role] で、「前提条件 (p. 66)」で作成した IAM ロールを選択します。 c. (オプション) 起動スクリプトを実行する必要がある場合は、[Advanced Details] を展開して [User data] にスクリプトを入力します。 d. [Skip to review] を選択します。 15. [Review] ページで、[Edit security groups] を選択します。既存のセキュリティグループを選択す ることも、新しいセキュリティグループを作成することもできます。このセキュリティグループ は、ロードバランサーからの HTTP トラフィックおよびヘルスチェックを許可する必要がありま す。インスタンスにパブリック IP アドレスがある場合は、インスタンスに接続する必要がある場 合はオプションで SSH トラフィックを許可できます。完了したら、[Review] を選択します。 16. [Review] ページで、[Create launch configuration] を選択します。 17. プロンプトが表示されたら、既存のキーペアを選択するか、新しいキーペアを作成するか、また はキーペアなしで先に進みます。確認チェックボックスをオンにし、[Create launch configuration (起動設定の作成) ] を選択します。 18. 起動設定を作成した後、Auto Scaling グループを作成する必要があります。 • Auto Scaling の使用が初めてで Create Auto Scaling group ウィザードを使用している場合 は、自動的に次のステップに移動します。 • その他の場合は、[Create an Auto Scaling group using this launch configuration] を選択しま す。 19. [Configure Auto Scaling group details] ページで、以下を実行します。 a. [Group name] に、Auto Scaling グループの名前を入力します。たとえば「my-asg」です。 b. [Group size] で、インスタンスの値を入力します (2 など)。各アベイラビリティーゾーンのイ ンスタンスをおよそ同数にすることが推奨されていることに注意してください。 c. [Network] から使用する VPC を選択し、[Subnet] から 2 つのパブリックサブネットを選択し ます。 d. [Advanced Details] で、[Receive traffic from one or more load balancers] を選択します。 [Target Groups] からターゲットグループを選択します。 e. [Next: Configure scaling policies] を選択します。 20. Auto Scaling にグループを指定したサイズに維持させるので、[Configure scaling policies] ページ で、[Review] を選択します。後からこの Auto Scaling グループを手動でスケールしたり、グルー プをスケジュールでスケールするように構成したり、オンデマンドでグループをスケールするよ うに構成したりできることに注目してください。 21. [Review] ページで、[Create Auto Scaling group] を選択します。 22. グループが作成されたら、[Close] を選択します。 ロードバランサーをテストする クライアントがロードバランサーにリクエストを送信すると、ロードバランサーは、登録されたいず れかのインスタンスにリクエストをルーティングします。 68 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド チュートリアル: インスタンスをリモートで管理する ロードバランサーをテストするには 1. 2. 3. 4. インスタンスの準備が完了していることを確認します。[Auto Scaling Groups] ページから Auto Scaling グループを選択して、[Instances] タブを選択します。当初、インスタンスの状態は Pending です。状態が InService になると、使用する準備が整っています。 インスタンスがロードバランサーに登録されていることを確認します。[Target Groups] ページか らターゲットグループを選択して、[Targets] タブを選択します。インスタンスの状態が initial である場合は、まだ登録中の可能性があります。インスタンスの状態が healthy になると、使 用できる状態です。インスタンスの準備が整ったら、次のようにしてロードバランサーをテスト できます。 [Load Balancers] ページからロードバランサーを選択します。 [Description] タブで、DNS 名を見つけます。この名前は次の形式です。 my-lb-xxxxxxxxxx.us-west-2.elb.amazonaws.com 5. ウェブブラウザで、ロードバランサーの DNS 名をアドレスバーに貼り付けて、Enter キーを押し ます。ウェブサイトが表示されることを確認します。 チュートリアル: Amazon EC2 インスタンスをリ モートで管理する このチュートリアルでは、ローカルマシンから Amazon Elastic Compute Cloud (Amazon EC2) Run Command を使用して Amazon EC2 インスタンスをリモートで管理する方法を示します。 このチュー トリアルでは、以下のタスクを実行する方法について学びます。 • Run Command 用に設定されている新しいインスタンスを起動します。 • Run Command 用のユーザーアカウントを設定します。 • Run Command を使用してローカルマシンからコマンドを送信し、インスタンスで実行されるサー ビスのリストを取得します。 このチュートリアルは、Amazon EC2 コンソール、または AWS Command Line Interface を使用して コマンドを実行するための手順を含みます。 Note オンプレミス環境または他のクラウドプロバイダーによって提供された環境で、Run Command を使用して、サービスまたは仮想マシン (VM) を管理することもできます。 詳細に ついては、「ハイブリッド環境での Systems Manager のセットアップ (p. 398)」を参照し てください。 新しいインスタンスの起動 インスタンスには、インスタンスと Amazon EC2 Systems Manager (SSM) との通信を有効にする AWS Identity and Access Management (IAM) ロールが必要です。 IAM ロールは、新しいインスタン スの作成時に割り当てる必要があります。 すでに実行されているインスタンスにロールを割り当てる ことはできません。既存のインスタンスの場合、インスタンスのイメージを作成し、そのイメージか らインスタンスを起動して、インスタンスの起動時に IAM ロールを割り当てる必要があります。 詳細 については、「Amazon EBS-Backed Linux AMI の作成」を参照してください。 SSM-supported ロールを使用するインスタンスを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 69 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ユーザーアカウントに SSM へのアクセス権を付与 2. サポートされているリージョンを選択します。 3. [Launch Instance] を選択し、[Linux] Amazon マシンイメージ (AMI) を選択します。 4. インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 5. [Auto-assign Public IP] で、[Enable] を選択します。 6. [IAM role] の横の [Create new IAM role] を選択します。 新しいタブに IAM コンソールが開きま す。 a. [Create New Role] を選択します。 b. [Step 1: Set Role Name] で、このロールを Run Command ロールとして識別する名前を入力 します。 c. [Step 2: Select Role Type] で、[Amazon EC2 Role for Simple Systems Manager] を選択しま す。 これは管理ポリシーであるため、システムは [Step 3: Establish Trust] をスキップしま す。 d. [Step 4: Attach Policy] で [AmazonEC2RoleforSSM] を選択します。 e. [Next Step] を選択し、さらに [Create Role] を選択します。 f. IAM コンソールを使用してタブを閉じます。 7. Amazon EC2 コンソールで、[Create New IAM role] の横の [Refresh] ボタンを選択します。 8. [IAM role] から、作成したロールを選択します。 9. ウィザードを終了して新しいインスタンスを起動します。 インスタンス ID を書き留めます。 後 で、このチュートリアルでこの ID を指定する必要があります。 Important 作成したインスタンスで SSM エージェントをインストールする必要があります。詳細につい ては、「SSM エージェントのインストール (p. 389)」を参照してください。 ユーザーアカウントに SSM へのアクセス権を付与 ユーザーアカウントは、SSM API. と通信するように設定する必要があります。 SSM API アクション へのフルアクセスを付与するユーザーアカウントに IAM 管理ポリシーをアタッチするには、次の手順 を使用します。 ユーザーアカウントの IAM ポリシーを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで、[Policies] を選択します (IAM の初回使用時は、[Get Started]、[Create Policy] の順に選択します)。 3. [Filter] フィールドで、「AmazonSSMFullAccess」と入力して、[Enter] を押します。 4. [AmazonSSMFullAccess] の横にあるチェックボックスをオンにして、[Policy Actions]、[Attach] の順に選択します。 5. [Attach Policy] ページで、ユーザーアカウントを選択してから、[Attach Policy] を選択します。 SSM エージェントのインストール SSM エージェントは Run Command 要求を処理し、要求に指定されたインスタンスを設定します。 Linux のバージョンに応じた手順を使用して、手動でエージェントをインストールする必要がありま す。 次の手順では、Red Hat Enterprise Linux (RHEL) でエージェントをインストールする方法を説明 します。 Ubuntu、Amazon Linux、または CentOS でエージェントをインストールする方法について は、「SSM エージェントのインストール (p. 389)」を参照してください。 70 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントのインストール Red Hat Enterprise Linux に SSM エージェントをインストールするには 1. RHEL インスタンスに接続して、インスタンスに一時ディレクトリを作成します。 mkdir /tmp/ssm 2. 以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードし ます。region は、SSM を使用できる AWS リージョンのいずれかに置き換えます。ダウンロー ドに伴うリージョン間のデータ転送のコストを回避するには、EC2 インスタンスのリージョンを 指定します。 64 ビット curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_amd64/amazonssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm 32 ビット curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_386/amazonssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm 3. SSM インストーラを実行します。 sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm 4. 以下のコマンドのいずれかを実行し、SSM エージェントが実行中であるかどうかを判断します。 このコマンドによって "amazon-ssm-agent is running" と返されるはずです。 RHEL 7.x sudo systemctl status amazon-ssm-agent RHEL 6.x sudo status amazon-ssm-agent 5. 前のコマンドで "amazon-ssm-agent is stopped" と返された場合は、以下のコマンドを実行しま す。 a. サービスの開始. RHEL 7.x sudo systemctl start amazon-ssm-agent RHEL 6.x sudo start amazon-ssm-agent b. エージェントのステータスを確認します。 RHEL 7.x sudo systemctl status amazon-ssm-agent 71 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2 コンソールを使用してコマンドを送信する RHEL 6.x sudo status amazon-ssm-agent EC2 コンソールを使用してコマンドを送信する Amazon EC2 コンソールからの Run Command を使用して、インスタンスで実行されるすべてのサー ビスをリスト表示するには、次の手順を使用します。 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Run Command] を選択します。 3. [Run a command] を選択します。 4. [Command document] で、AWS-RunShellScript を選択します。 5. [Select instances] を選択し、作成したインスタンスを選択します。 インスタンスが表示されない 場合、現在のリージョンがインスタンスを作成したリージョンと同じかどうかを確認します。 ま た、IAM ロールおよび信頼ポリシーが、このトピックですでに説明されたとおりに正しく設定さ れているかどうかを確認します。 6. [Commands] で、「service --status-all」と入力します。必要に応じて、[Working Directory] と [Execution Timeout] を指定できます。[Execution Timeout] は、コマンドが失敗した と見なされるまでに SSM エージェントで実行を試行する秒数です。[Comments] フィールドにコ メントを入力することをお勧めします。コメントを入力しておくと、保留中のコマンドリストで コマンドを識別する際に役立ち、出力が確認しやすくなります。 7. [Timeout (seconds)] フィールドに、Run Command でインスタンスが到達不可能であると見なし てコマンド実行を失敗とするまでにインスタンスへの到達を試行する秒数を入力します。 8. 選択した複数のインスタンスで同時にコマンドを実行するには、[Run] を選択します。Run Command により、ステータス画面が表示されます。 9. [View result] を選択します。 10. 実行したコマンドのコマンド呼び出しを選択します。 11. [Output] タブを選択して、[View Output] を選択します。 72 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AWS CLI を使用してコマンドを送信する 12. システムにより、出力がブラウザに表示されます。出力が 2500 文字を超える場合、先頭から 2500 文字のみが表示され、残りは切り捨てられます。Amazon S3 バケットを指定して、コマン ドを実行する前に完全な出力を表示できます。 AWS CLI を使用してコマンドを送信する AWS CLI で Run Command を使用して、インスタンスで実行されるすべてのサービスをリスト表示 するには、次の手順を使用します。 コマンドを実行する 1. ローカルコンピュータに AWS Command Line Interface (AWS CLI) の最新バージョンをダウン ロードします。 2. ローカルコンピュータの AWS CLI を開き、次のコマンドを実行して認証情報とリージョンを指 定します。 aws configure 3. 以下を指定するよう求められます。 AWS Access Key ID [None]: key AWS Secret Access Key [None]: key Default region name [None]: region, for example us-east-1 Default output format [None]: ENTER 4. インスタンスで実行されるすべてのサービスを取得するには、次のコマンドを実行します。 aws ssm send-command --document-name "AWS-RunShellScript" --comment "listing services" --instance-ids "Instance-ID" --parameters commands="service --status-all" --region us-west-2 --output text 73 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AWS CLI を使用してコマンドを送信する コマンドは、結果を表示するのに使用するコマンド ID を返します。 5. 次のコマンドは、元の Send-SSMCommand の出力を返します。 出力は 2500 文字を超える と切り捨てられます。 サービスの詳細なリストを表示するには、--output-s3-bucket-name bucket_name パラメーターを使用して、コマンドで Amazon S3 バケットを指定します。 aws ssm list-command-invocations --command-id "command ID" --details AWS CLI および AWS マネジメントコンソール で Run Command を使用してコマンドを実行する方 法のその他の例については、「Amazon EC2 Run Command を使用したコマンドの実行 (p. 444)」 を参照してください。 Run Command の詳細については、「リモート管理 (p. 440)」を参照してく ださい。 動画については、AWS Instructional Videos and Labs を参照してください。 74 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI の使用 Amazon マシンイメージ (AMI) Amazon マシンイメージ (AMI) は、クラウドの仮想サーバーであるインスタンスの起動に必要な情報 を提供します。インスタンスを起動するときに AMI を指定します。AMI からは、必要な数のインス タンスを起動できます。必要に応じて、異なる種類の AMI からインスタンスを起動することもできま す。 AMI には次が含まれています。 • インスタンスのルートボリュームのテンプレート (オペレーティングシステム、アプリケーション サーバー、アプリケーションなど) • 起動許可 (AMI を使用してインスタンスを起動する権限を特定の AWS アカウントに与える) • インスタンスの起動時にインスタンスにアタッチするボリュームを指定するブロックデバイスマッ ピング AMI の使用 次の図は AMI のライフサイクルをまとめたものです。AMI を作成し、登録したら、それを使用して新 しいインスタンスを起動できます (AMI 所有者から起動許可を与えられた場合、AMI からインスタン スを起動することもできます)。AMI は同じリージョンにコピーすることも、異なるリージョンにコ ピーすることもできます。AMI からインスタンスを起動したら、AMI の登録を解除できます。 ご自分のインスタンスの基準に一致する AMI を検索できます。AWS が提供する AMI またはコミュニ ティが提供する AMI を検索できます。詳細については、「AMI タイプ (p. 77)」および「Linux AMI の検索 (p. 81)」を参照してください。 インスタンスに接続したら、そのインスタンスを他のサーバーとまったく同じように使用できます。 インスタンスの起動、接続、使用に関する詳細については、Amazon EC2 インスタンス (p. 166) を 参照してください。 75 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 独自の AMI の作成 独自の AMI の作成 パブリック AMI から起動するインスタンスをカスタマイズし、その設定をお客様が使用するためのカ スタム AMI として保存できます。ご自分の AMI から起動するインスタンスでは、お客様が行ったす べてのカスタマイズを使用します。 AMI の作成プロセスは、インスタンスのルートストレージデバイスにより決まります。インスタンス のルートボリュームは、Amazon EBS ボリュームまたはインスタンスストアボリュームのどちらかで す。詳細については、「Amazon EC2 ルートデバイスボリューム (p. 15)」を参照してください。 Amazon EBS-Backed AMI を作成するには、「Amazon EBS-Backed Linux AMI の作成 (p. 96)」を 参照してください。Instance Store-Backed AMI を作成するには、「Instance Store-Backed Linux AMI の作成 (p. 100)」を参照してください。 AMI には分類や管理のために任意のタグを付けられます。詳細については、「Amazon EC2 リソース にタグを付ける (p. 889)」を参照してください。 AMI の購入、共有、販売 AMI を作成したら、自分だけがそれを使用できるようにプライベートとして保存したり、あるい は、AWS アカウントの指定リストと共有したりできます。コミュニティで利用できるように、カスタ ム AMI を公開することもできます。安全で信頼性が高く、便利な AMI を作成して、一般公開する手 順はきわめて単純で、いくつかのシンプルなガイドラインにしたがうだけです。共有 AMI の作成およ び使用方法の詳細については、共有 AMI (p. 82) を参照してください。 Red Hat のような組織のサービス契約に付属する AMI など、サードパーティから AMI を購入できま す。また、AMI を作成し、他の Amazon EC2 ユーザーに販売することもできます。AMI の購入と販売 に関する詳細については、有料 AMI (p. 92) を参照してください。 AMI の登録解除 AMI の利用が終わったら、その登録を解除できます。AMI の登録を解除すると、それを使用して新し いインスタンスを起動できなくなります。詳細については、「AMI の登録解除 (p. 149)」を参照して ください。 Amazon Linux Amazon Linux AMI は、AWS がサポートおよび保守管理している Linux イメージの 1 つです。次に示 すのは Amazon Linux の特徴の一部です。 • Amazon EC2 で実行されるアプリケーションのため、安定性があり、安全で高性能な実行環境。 • Amazon EC2 ユーザーには追加料金なしで提供。 • MySQL、PostgreSQL、Python、Ruby、Tomcat など多くの一般的なパッケージの複数バージョン へのリポジトリアクセスが可能。 • 定期的な更新で最新のコンポーネントが追加される。更新は、インスタンスを実行するインストー ルの yum リポジトリでも利用可能。 • AWS CLI Amazon EC2 API および AMI ツール、Python 用の Boto ライブラリ、Elastic Load Balancing ツールなど、AWS サービスとの統合を簡単にするパッケージが含まれる。 詳細については、「Amazon Linux (p. 151)」を参照してください。 76 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI タイプ AMI タイプ 次の特性に基づき、使用する AMI を選択できます。 • リージョン (「リージョンとアベイラビリティーゾーン (p. 8)」を参照) • オペレーティングシステム • アーキテクチャ (32 ビットまたは 64 ビット) • 起動許可 (p. 77) • ルートデバイスのストレージ (p. 77) 起動許可 AMI の所有者は、起動許可を指定することで可用性を決定します。起動許可は次のように分類されま す。 起動許可 説明 パブリック 所有者はすべての AWS アカウントに起動許可を与えます。 明示的 所有者は特定の AWS アカウントに起動許可を与えます。 暗示的 所有者には AMI の暗示的起動許可があります。 Amazon と Amazon EC2 コミュニティはさまざまなパブリック AMI を提供しています。詳細につい ては、「共有 AMI (p. 82)」を参照してください。開発者は自分の AMI に料金を請求できます。詳 細については、「有料 AMI (p. 92)」を参照してください。 ルートデバイスのストレージ すべての AMI が Amazon EBS-Backed と Instance Store-Backed のいずれかに分類されます。前者 は、AMI から起動されるインスタンスのルートデバイスが、Amazon EBS スナップショットから作 成される Amazon EBS ボリュームであるということです。後者は、AMI から起動されるインスタ ンスのルートデバイスが、Amazon S3 に格納されたテンプレートから作成されるインスタンスス トアボリュームであるということです。詳細については、「Amazon EC2 ルートデバイスボリュー ム (p. 15)」を参照してください。 このセクションでは、2 種類の AMI の重要な相違点をまとめています。以下の表はこれらの相違点に ついてまとめたものです。 特徴 Amazon EBS-Backed Amazon Instance Store-Backed 作成時刻 通常 1 分以内 通常 5 分以内 サイズ制限 16 TiB 10 GiB ルートデバイスボ リューム Amazon EBS ボリューム インスタンスストアボリューム データの永続性 デフォルトでは、インスタンス を終了するとルートボリューム は削除されます。* 他のすべての Amazon EBS ボリュームにある データは、デフォルトでは、イ ンスタンスの終了後も保持されま インスタンスストアボリューム上の データは、インスタンスの存続中の み使用できます。すべての Amazon EBS ボリュームにあるデータは、デ フォルトでは、インスタンスの終了 後も保持されます。 77 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ルートデバイスのストレージ 特徴 Amazon EBS-Backed Amazon Instance Store-Backed す。インスタンスストアボリュー ム上のデータは、インスタンスの 存続中のみ使用できます。 アップグレード インスタンスの停止中に、インス タンスタイプ、カーネル、RAM ディスク、およびユーザーデータ が変更可能 インスタンスの属性は、インスタン スを終了するまで固定。 料金 インスタンスの使用量、Amazon EBS ボリューム、また、Amazon EBS スナップショットとして保存 した AMI に対して料金が発生しま す。 インスタンスの使用量や Amazon S3 に保存した AMI に対して料金が 発生します。 AMI の作成/バンドル 単一のコマンドまたは呼び出しを 使用 AMI ツールをインストールして使用 する必要があります 停止状態 インスタンスが実行されていない 停止状態にできます。ただし、 ルートボリュームは Amazon EBS に保持されます。 インスタンスが実行中も終了後も、 停止状態にすることができない * デフォルトでは、Amazon EBS-Backed インスタンスのルートボリューム で、DeleteOnTermination フラグがtrue に設定されます。このフラグを変更し、終了後もボ リュームを保持する方法については、「永続的ルートデバイスボリュームへの変更 (p. 18)」を参照し てください。 AMI のルートデバイスタイプの判別 コンソールを使用して AMI のルートデバイスタイプを判別するには 1. Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[AMIs] をクリックし、AMI を選択します。 3. 次のように、[Details] タブで [Root Device Type] の値を確認します。 • 値が ebs の場合、これは Amazon EBS-Backed AMI です。 • 値が instance store の場合、これは Instance store-Backed インスタンスです。 コマンドラインを使用して AMI のルートデバイスタイプを判別するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-images (AWS CLI) • Get-EC2Image (AWS Tools for Windows PowerShell) 停止状態 Amazon EBS-backed インスタンスは停止できますが、Amazon EC2 instance store-backed インスタ ンスは停止できません。停止すると、インスタンスの実行が停止します (ステータスが running から stopping を経て stopped に進む)。stopped インスタンスは Amazon EBS に存続するため、再起動 できます。stopping (停止) は terminating (終了) と異なります。terminated インスタンスは再起動でき 78 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ルートデバイスのストレージ ません。Amazon EC2 Instance store-Backed AMI は停止できないため、実行中か終了のいずれかにな ります。インスタンスが停止している場合に何が行われ、何を実行できるかの詳細については、イン スタンスの停止と起動 (p. 327)を参照してください。 デフォルトのデータストレージと永続性 ルートデバイスにインスタンスストアボリュームを使用するインスタンスでは、自動的にインスタン スストアが利用できます (ルートボリュームにルートパーティションが含まれ、追加のデータを保存で きます)。インスタンスが失敗するか終了すると、インスタンスストアボリューム上のすべてのデータ が削除されます (ルートデバイス上のデータを除く)。1 つまたは複数の Amazon EBS ボリュームをア タッチすることで、永続的ストレージをインスタンスに追加できます。 Amazon EBS をルートデバイスに使用するインスタンスには自動的に、Amazon EBS ボリュームが アタッチされます。ボリュームは、他のボリュームと同様に、ボリュームのリストに表示されます。 デフォルトでは、インスタンスは利用可能なインスタンスストアボリュームを一切使用しません。ブ ロックデバイスマッピングを使用して、インスタンスストレージまたは追加の Amazon EBS ボリュー ムを追加できます。詳細については、「ブロックデバイスマッピング (p. 867)」を参照してくださ い。インスタンスを停止すると、インスタンスストアボリュームに何が発生するかについては、「イ ンスタンスの停止と起動 (p. 327)」を参照してください。 作成時刻 Amazon EBS-Backed AMI は、Amazon EC2 Instance store-Backed AMI よりも速く起動しま す。Amazon EC2 Instance store-Backed AMI を起動するときには、Amazon S3 からすべての部分を 取得しないとインスタンスを利用できません。Amazon EBS-Backed AMI の場合、インスタンスの起 動に必要な部分だけをスナップショットから取得するとインスタンスを利用できます。ただし、ルー トデバイスに Amazon EBS ボリュームを使用するインスタンスのパフォーマンスは、残りの部分が スナップショットから取得され、ボリュームにロードされる少しの時間、遅くなります。インスタン スを停止し、再起動する場合は、状態が Amazon EBS ボリュームに保存されているため早く起動しま す。 AMI の作成 Instance Store-Backed Linux AMI を作成するには、Amazon EC2 AMI ツールを使用して、当該のイン スタンス上でインスタンスから AMI を作成する必要があります。 AMI の作成は、Amazon EBS Backed の AMI の方がはるかに簡単です。CreateImage API アクショ ンは、Amazon EBS-Backed AMI を作成して登録します。AWS マネジメントコンソール にも、実 行中のインスタンスから AMI を作成できるボタンがあります。詳細については、「Amazon EBSBacked Linux AMI の作成 (p. 96)」を参照してください。 課金方法 Instance Store-Backed の AMI の場合、AMI ストレージとインスタンスの使用量に対して課金されま す。Amazon EBS-Backed の AMI の場合、AMI とインスタンスの使用料に加えて、ボリュームスト レージおよび使用量に対して課金されます。 Amazon EC2 Instance Store-Backed の AMI の場合、AMI をカスタマイズしたり、新しい AMI を作成 したりするたびに、各 AMI のすべての部分が Amazon S3 に保存されます。そのため、カスタマイズ した各 AMI のストレージフットプリントは、AMI の完全なサイズになります。Amazon EBS-Backed の AMI の場合、AMI をカスタマイズしたり、新しい AMI を作成したりするたびに、変更のみが保存 されます。そのため、最初の AMI の後にカスタマイズする後続の AMI のストレージフットプリント ははるかに小さくなり、AMI ストレージ料金が少なくなります。 Amazon EBS-backed instance が停止した場合、インスタンスの使用については課金されませんが、 ボリュームストレージについては引き続き課金されます。stopped (停止) 状態から running (実行中) 状 態へのすべての移行に対して、1時間内に複数回インスタンスを移行した場合でも、完全インスタンス 時間が課金されます。たとえば、インスタンスの時間当たりのインスタンス料金が 0.10 USD である 79 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 仮想化タイプ とします。そのインスタンスを停止せずに実行した場合、0.10 USD 課金されます。その時間中に、そ のインスタンスを 2 回停止し、再起動した場合、その使用時間に対して 0.30 USD 課金されます (最初 の 0.10 USD に再起動ごとの 2 x 0.10 USD をたす)。 Linux AMI 仮想化タイプ Linux Amazon マシンイメージ では、2 つの仮想化タイプ (準仮想化 (PV) およびハードウェア仮想マ シン (HVM) ) のどちらかを使用します。PV AMI と HVM AMI の主な違いは、起動の方法と、パフォー マンス向上のための特別なハードウェア拡張機能 (CPU、ネットワーク、ストレージ) を利用できるか どうかという点です。 最適なパフォーマンスを得るために、インスタンスを起動するときには、現行世代のインスタンス タイプと HVM AMI を使用することをお勧めします。現行世代のインスタンスタイプの詳細について は、「Amazon EC2 Instances」の詳細ページを参照してください。旧世代のインスタンスタイプを使 用中で、アップグレードする場合は、「アップグレードパス」を参照してください。 各インスタンスタイプで推奨される Amazon Linux AMI のタイプについては、「Amazon Linux AMI イ ンスタンスタイプ」の詳細ページを参照してください。 HVM AMI HVM AMI は、完全に仮想化された一連のハードウェアを備えており、イメージのルートブロックデバ イスのマスターブートレコードを実行することによって起動します。この仮想化タイプでは、ベアメ タルハードウェア上でオペレーティングシステムが動作するのと同様に、修正を行わなくても仮想マ シン上でオペレーティングシステムを直接実行することができます。Amazon EC2 ホストシステムで は、ゲストに提供されている基盤となるハードウェアの一部またはすべてがエミュレートされます。 PV のゲストとは異なり、HVM のゲストは、ホストシステム上の基盤となるハードウェアへの高速な アクセスを可能にするハードウェア拡張を利用できます。Amazon EC2 で使用できる CPU 仮想化拡 張機能の詳細については、Intel のウェブサイトの「Intel Virtualization Technology」を参照してくださ い。HVM AMI は、拡張ネットワーキングと GPU 処理を利用する場合に必要です。専用のネットワー クや GPU デバイスに命令を伝達するには、OS がネイティブハードウェアプラットフォームにアクセ スできる必要があります。HVM 仮想化ではこのアクセスが可能です。詳細については、「拡張ネット ワーキング (p. 720)」および「Linux 高速コンピューティングインスタンス (p. 184)」を参照して ください。 すべての現行世代のインスタンスタイプは HVM AMI をサポートします。CC2、CR1、HI1、および HS1 の旧世代のインスタンスタイプは、HVM AMI をサポートします。 HVM AMI を見つけるには、コンソールまたは describe-images コマンドを使用して、AMI の仮想化タ イプが hvm に設定されていることを確認します。 PV AMI PV AMI は、PV-GRUB と呼ばれる特別なブートローダーを使用して起動します。このブートロー ダーによって起動サイクルが開始され、イメージの menu.lst ファイルで指定されているカーネル がチェーンロードされます。準仮想化のゲストは仮想化を明示的にサポートしていないホストのハー ドウェア上で実行されますが、これらのゲストは特別なハードウェア拡張 (拡張ネットワーキング や GPU 処理など) を利用できません。従来、PV のゲストは HVM のゲストよりも多くの場合にパ フォーマンスが向上しました。ただし、HVM 仮想化の機能強化や HVM AMI で PV ドライバが利用 可能になったことにより、このようなパフォーマンスの向上はなくなりました。PV-GRUB の詳細や Amazon EC2 での使用方法については、「ユーザー提供カーネル (p. 159)」を参照してください。 C3 および M3 の現行世代のインスタンスタイプは PV AMI をサポートしま す。C1、HI1、HS1、M1、M2、および T1 の旧世代のインスタンスタイプは、PV AMI をサポートし ます。 PV AMI を見つけるには、コンソールまたは describe-images コマンドを使用して、AMI の仮想化タイ プが paravirtual に設定されていることを確認します。 80 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Linux AMI の検索 PV on HVM 従来、準仮想化のゲストはストレージやネットワークの操作については、HVM のゲストよりも高い パフォーマンスを実現していました。これは、準仮想化のゲストでは I/O 用の特別なドライバ (ネット ワークとディスクのハードウェアをエミュレートする際のオーバーヘッドが回避されます) を活用す ることができたためです。これに対して、HVM のゲストでは、エミュレートされたハードウェアに対 する命令を変換する必要がありました。現在では、このような PV ドライバを HVM のゲストで利用 できるようになりました。このため、準仮想化された環境で実行するための移植ができないオペレー ティングシステム (Windows など) でも、これらのドライバを使用することで、ストレージやネット ワークの I/O でパフォーマンスの向上を確認することができます。このような PV on HVM ドライバ を使用すると、HVM のゲストで、準仮想化のゲストと同じまたはより優れたパフォーマンスを実現で きます。 Linux AMI の検索 インスタンスを起動する前に、使用する AMI を選択する必要があります。AMI を選択するときに、起 動するインスタンスに関して、次の要件を検討します。 • リージョン • オペレーティングシステム • アーキテクチャ: 32 ビット (i386) または 64 ビット (x86_64) • ルートデバイスタイプ: Amazon EBS またはインスタンスストア • プロバイダ: Amazon Web Services、Oracle、IBM、Microsoft、またはコミュニティ Windows AMI の検索方法については、Windows インスタンスの Amazon EC2 ユーザーガイド の 「Windows AMI を見つける」を参照してください。 目次 • Amazon EC2 コンソールを使用した Linux AMI の検索 (p. 81) • AWS CLI を使用した AMI の検索 (p. 82) Amazon EC2 コンソールを使用した Linux AMI の検 索 Amazon EC2 コンソールを使用して Linux AMI を検索できます。[Images] ページを使用してすべて の利用可能な AMI を検索できます。また、コンソールを使用してインスタンスを起動する場合は、 [Quick Launch] タブでよく使用されている AMI を選択できます。 [Images] ページを使用して Linux AMI を検索するには 1. 2. 3. 4. 5. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションバーから、リージョンを選択します。お客様は場所に関係なく、使用できるリー ジョンをどれでも選択できます。これは、お客様がインスタンスを起動するリージョンです。 ナビゲーションペインで [AMIs] を選択します。 (オプション) [Filter] オプションを使用して、一覧表示された AMI を興味のある AMI に限定しま す。たとえば、AWS で指定されたすべての Linux AMI を表示するには、[Public images] を選択 します。検索バーを選択し、メニューから [Owner]、[Amazon images] の順に選択します。 検索 バーをもう一度選択し、[Platform] を選択します。次に、表示されたリストからオペレーティング システムを選択します。 (オプション) [Show/Hide Columns] アイコンを選択して、ルートデバイスタイプなど、表示する イメージ属性を選択します。 あるいは、一覧から AMI を選択し、[Details] タブにそのプロパティ を表示できます。 81 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AWS CLI を使用した AMI の検索 6. AMI を選択する前に、その AMI が Instance Store-Backed と Amazon EBS-Backed のどちらであ るかを確認し、その違いを認識しておくことが重要です。詳細については、「ルートデバイスの ストレージ (p. 77)」を参照してください。 7. この AMI からインスタンスを起動するには、インスタンスを選択し、[Launch] を選択します。 コンソールを使用したインスタンスの起動の詳細については、「AMI からのインスタンスの起 動 (p. 305)」を参照してください。まだインスタンスを起動する準備が整っていない場合は、後 で使用するために AMI ID (ami-xxxxxxxx) を書き留めておきます。 インスタンスを起動するときに Linux AMI を検索するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. コンソールダッシュボードで、[Launch Instance] を選択します。 3. [Choose an Amazon Machine Image (AMI)] ページの [Quick Start]タブで、よく使用されている AMI の 1 つを一覧から選択します。必要な AMI が表示されていない場合は、[AWS Marketplace] または [Community AMIs] タブを選択して他の AMI を検索します。 AWS CLI を使用した AMI の検索 コマンドラインパラメーターを使用して、関心のある AMI のタイプのみを表示できます。たとえば、 次のように describe-images コマンドを使用して、お客様または Amazon が所有しているパブリック な AMI を検索できます。 $ aws ec2 describe-images --owners self amazon Amazon EBS-Backed AMI のみを表示するには、前のコマンドに次のフィルタを追加します。 --filters "Name=root-device-type,Values=ebs" ニーズに合った AMI を見つけたら、その ID を書き留めます。ID の形式は ami-xxxxxxxx です。こ の AMI を使用して、インスタンスを起動できます。詳細については、AWS Command Line Interface ユーザーガイド の「AWS CLI を使用したインスタンスの起動」を参照してください。 共有 AMI 共有 AMI は、開発者が作成し、他の開発者が利用できるようにした AMI です。Amazon EC2 を始め る最も簡単な方法は、必要なコンポーネントが含まれている共有 AMI を使用して、カスタムコンテン ツを追加することです。独自の AMI を作成し、他のユーザーと共有することもできます。 共有 AMI は、ご自分の判断で使用してください。Amazon は、他の Amazon EC2 ユーザーとの間で 共有される AMI の統合性や安全性を保証できません。そのため、共有 AMI を取り扱う際は、ご自分 のデータセンターに外部のコードをデプロイすることを検討するのと同じように、充分な注意を払う 必要があります。信頼できる開発元の AMI を入手することをお勧めします。共有 AMI に関してご質 問やお気付きになったことがあれば、AWS フォーラムをご利用ください。 Amazon のパブリックイメージにはエイリアスの所有者が設定されており、アカウントフィールドに amazon として表示されます。これを利用すれば、Amazon から AMI を簡単に見つけられます。他の ユーザーは、AMI にエイリアスを設定できません。 AMI の作成の詳細については、Instance Store-Backed Linux AMI の作成、またはAmazon EBSBacked Linux AMI の作成を参照してください。 AWS Marketplace でのアプリケーションの構築、配 信、保守の詳細については、AWS Marketplace User Guide および AWS Marketplace Seller Guide を ご覧ください。 82 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 共有 AMI を見つける 目次 • • • • • 共有 AMI を見つける (p. 83) AMI を一般公開する (p. 85) 特定の AWS アカウントと AMI を共有する (p. 86) ブックマークの使用 (p. 87) 共有 Linux AMI のガイドライン (p. 88) 共有 AMI を見つける Amazon EC2 コンソールまたはコマンドラインを使用して、共有 AMI を検索できます。 共有 AMI を見つける (コンソール) コンソールを使用して、共有しているプライベート AMI を見つけるには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで [AMIs] を選択します。 3. 最初のフィルタで、[Private images] を選択します。お客様が共有しているすべての AMI が一覧 表示されます。詳細な検索を行うには、検索バーを選択し、メニューに用意されたフィルタオプ ションを使用します。 コンソールを使用して、共有しているパブリック AMI を見つけるには 1. 2. 3. 4. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで [AMIs] を選択します。 最初のフィルタで、[Public images] を選択します。 詳細な検索を行うには、検索バーを選択し、 メニューに用意されたフィルタオプションを使用します。 興味のある種類の AMI のみを一覧表示するには、フィルタを使用します。たとえば、[Owner :] を選択して、[Amazon images] を選択すると、Amazon のパブリックイメージのみが表示されま す。 共有 AMI の検索 (コマンドライン) [To find a shared public AMI using the command line tools] AMI を一覧表示するには、-describe-images コマンド (AWS CLI) を使用します。次の例のように、興 味のある種類の AMI に絞って一覧表示できます。 次のコマンドを使用すると、--executable-users オプションを使用するすべてのパブリック AMI が一覧表示されます。このリストには、お客様が所有するパブリック AMI が含まれます。 $ aws ec2 describe-images --executable-users all 次のコマンドを使用すると、お客様が明示的な起動許可を持つ AMI が一覧表示されます。このリスト では、お客様が所有するパブリック AMI が除外されています。 $ aws ec2 describe-images --executable-users self 次のコマンドを使用すると、Amazon が所有する AMI が一覧表示されます。Amazon のパブリックイ メージにはエイリアスの所有者が設定されており、アカウントフィールドに amazon として表示され ます。これを利用すれば、Amazon から AMI を簡単に見つけられます。他のユーザーは、AMI にエイ リアスを設定できません。 83 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 共有 AMI を見つける $ aws ec2 describe-images --owners amazon 次のコマンドを使用すると、指定した AWS アカウントが所有する AMI が一覧表示されます。 $ aws ec2 describe-images --owners 123456789012 表示される AMI の数を減らすには、フィルタを使用して、興味のある種類の AMI に限定して表示し ます。たとえば、次のフィルタを使用すると、EBS-backed AMI のみが表示されます。 --filters "Name=root-device-type,Values=ebs" または、AWS Tools for Windows PowerShell コマンド Get-EC2Image を使用することもできます。 共有 AMI を使用する 共有 AMI を使用する前に、次の手順を実行して、インスタンスへの好ましくないアクセスを許可する 認証情報が第三者により事前にインストールされていないことと、機密データを第三者に送信する可 能性があるリモートロギングが事前設定されていないことを確認します。システムセキュリティ改善 についての詳細は、AMI で使用される Linux ディストリビューションの文書を確認してください。 インスタンスへのアクセスを誤って失わないように、SSH セッションを 2 つ開始して、見覚えのな い認証情報を削除し、その後も SSH を使用してインスタンスにログインできることが確認されるま で、2 つ目のセッションを開いておくことをお勧めします。 1. 未許可のパブリック SSH キーを特定し、無効にします。ファイル内の唯一のキーは、AMI の起動 に使用したキーである必要があります。次のコマンドを使用すると、authorized_keys ファイル が見つかります。 $ sudo find / -name "authorized_keys" -print -exec cat {} \; 2. ルートユーザーにはパスワードベースの認証を無効にします。ssh_config ファイルを開き、次の ように PermitRootLogin 行を編集します。 PermitRootLogin without-password あるいは、ルートとしてインスタンスにログインする機能を無効にできます。 PermitRootLogin No sshd サービスを再起動します。 3. インスタンスにログインできるユーザーアカウントが他にないか確認します。スーパーユーザー権 限を持つアカウントが特に危険です。不明のアカウントがあれば、そのパスワードを削除するか、 ロックします。 4. 開いていても使用していないポートと、着信接続をリスニングしている実行中のネットワークサー ビスをチェックします。 5. 事前設定されているリモートロギングを防ぐには、既存の設定ファイルを削除し、rsyslog サービス を再起動してください。以下に例を示します。 $ sudo rm /etc/ rsyslog.config $ sudo service rsyslog restart 6. すべての cron ジョブが正当であることを確認します。 84 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI を一般公開する セキュリティ上のリスクとして考えられるパブリック AMI を発見した場合、AWS セキュリティチー ムにご連絡ください。詳細については、AWS セキュリティセンターを参照してください。 AMI を一般公開する Amazon EC2 では、自分の AMI を他の AWS アカウントと共有できます。すべての AWS アカウント に AMI の起動を許可する (AMI を一般公開する) ことも、特定の少数のアカウントだけに AMI の起動 を許可することもできます (「特定の AWS アカウントと AMI を共有する (p. 86)」を参照してくだ さい)。お客様の AMI が他の AWS アカウントによって起動されても、お客様に料金は請求されませ ん。AMI を起動するアカウントのみに料金が請求されます。 AMI はリージョンのリソースです。そのため、AMI を共有すると、そのリージョンで利用できるよ うになります。AMI を他のリージョンで利用できるようにするには、AMI をそのリージョンにコピー し、共有します。詳細については、「AMI のコピー (p. 143)」を参照してください。 AMI を共有するときに重要なデータが公開されないようにするには、「共有 Linux AMI のガイドライ ン (p. 88)」のセキュリティ考慮事項を読み、推奨アクションに従います。 Note AMI に製品コードがある場合、それを一般公開することはできません。AMI は、特定の AWS アカウントとのみ共有する必要があります。 すべての AWS アカウントで AMIを共有する (コンソール) AMI を公開した後、コンソールを使用して同じリージョン内でインスタンスを起動すると、その AMI が [Community AMIs] に表示されます。AMI は、公開してから [Community AMIs] に表示されるまで に、しばらく時間がかかることもあります。また、AMI を非公開にした場合も、[Community AMIs] か ら削除されるまでにしばらく時間がかかることがあります。 コンソールを使用してパブリック AMI を共有するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで [AMIs] を選択します。 リストから AMI を選択し、[Actions] から [Modify Image Permissions] を選択します。 4. [Public] を選択し、[Save] を選択します。 すべての AWS アカウントで AMIを共有する (コマンドライン) 各 AMI には、所有者以外でその AMI を使用してインスタンスを起動できる AWS アカウントを制御す る launchPermission プロパティがあります。AMI の launchPermission プロパティを変更する ことで、AMI を一般公開したり (この場合、すべての AWS アカウントに起動許可が与えられます)、 あるいは指定した AWS アカウントとのみ AMI を共有したりできます。 AMI の起動許可を持つアカウントのリストにアカウント ID を追加したり、削除したりできます。AMI を一般公開するには、all グループを指定します。パブリック起動許可と明示的起動許可の両方を指 定できます。 [To make an AMI public] -modify-image-attribute コマンド (AWS CLI) を次のように使用して、指定した AMI の launchPermission リストに all グループを追加します。 $ aws ec2 modify-image-attribute --image-id ami-12345678 --launch-permission "{\"Add\":[{\"Group\":\"all\"}]}" 85 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 特定の AWS アカウントと AMI を共有する AMI の起動許可を確認するには、次の describe-image-attribute コマンドを使用します。 $ aws ec2 describe-image-attribute --image-id ami-12345678 --attribute launchPermission (オプション) AMI をプライベートに戻すには、その起動許可から all グループを削除します。AMI の 所有者には常に起動許可が与えられるため、このコマンドの影響を受けないことにご注意ください。 $ aws ec2 modify-image-attribute --image-id ami-12345678 --launch-permission "{\"Remove\":[{\"Group\":\"all\"}]}" または、AWS Tools for Windows PowerShell コマンド Edit-EC2ImageAttribute および GetEC2ImageAttribute を使用することもできます。 特定の AWS アカウントと AMI を共有する AMI を一般公開せず、特定の AWS アカウントとだけ共有することもできます。必要なものは AWS アカウント ID のみです。 AMI はリージョンのリソースです。そのため、AMI を共有すると、そのリージョンで利用できるよ うになります。AMI を他のリージョンで利用できるようにするには、AMI をそのリージョンにコピー し、共有します。詳細については、「AMI のコピー (p. 143)」を参照してください。 AMI を共有する (コンソール) コンソールを使用して明示的な起動許可を与えるには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで [AMIs] を選択します。 3. 4. リストで AMI を選択し、[Actions] から [Modify Image Permissions] を選択します。 [AWS Account Number] フィールドに AMI を共有するユーザーの AWS アカウント番号を指定 し、[Add Permission] を選択します。 この AMI を複数のユーザーと共有するには、上記の手順を繰り返して、必要なすべてのユーザー を追加します。 5. スナップショットのボリューム作成権限を与えるには、[Add "create volume" permissions to the following associated snapshots when creating permissions] を選択します。 Note 6. AMI を共有するために、AMI の参照先の Amazon EBS スナップショットを共有する必 要はありません。共有する必要があるのは AMI 自体だけです。起動の際に、参照先の Amazon EBS スナップショットへのインスタンスアクセスが自動的に提供されます。 完了したら、[Save] を選択します。 AMI の共有 (コマンドライン) AMI を共有するには、次の例のように modify-image-attribute コマンド (AWS CLI) を使用します。 明示的な起動許可を与えるには 次のコマンドを使用すると、指定した AWS アカウントに指定した AMI の起動許可が与えられます。 $ aws ec2 modify-image-attribute --image-id ami-12345678 --launch-permission "{\"Add\":[{\"UserId\":\"123456789012\"}]}" 86 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ブックマークの使用 次のコマンドは、スナップショットのボリューム作成権限を付与します。 $ aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 -attribute createVolumePermission --operation-type add --user-ids 123456789012 アカウントに与えた起動許可を取り消すには 次のコマンドを使用すると、指定した AWS アカウントから指定した AMI の起動許可が削除されま す。 $ aws ec2 modify-image-attribute --image-id ami-12345678 --launch-permission "{\"Remove\":[{\"UserId\":\"123456789012\"}]}" 次のコマンドは、スナップショットのボリューム作成権限を削除します。 $ aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission --operation-type remove --userids 123456789012 すべての起動許可を取り消すには 次のコマンドを使用すると、指定した AMI からパブリック起動許可と明示的起動許可がすべて削除さ れます。AMI の所有者には常に起動許可が与えられるため、このコマンドの影響を受けないことにご 注意ください。 $ aws ec2 reset-image-attribute --image-id ami-12345678 --attribute launchPermission または、AWS Tools for Windows PowerShell コマンド Edit-EC2ImageAttribute を使用することもでき ます。 ブックマークの使用 パブリック AMI を作成した場合、あるいは AMI を別の AWS ユーザーと共有した場合は、ブックマー クを作成できます。ブックマークを作成すると、ユーザーは自分のアカウントですばやく AMI にアク セスし、インスタンスを起動できます。これにより AMI リファレンスを簡単に共有できるため、時間 をかけず、使用する AMI を見つけることができます。 AMI はパブリックであるか、ブックマークの送信先ユーザーと共有している必要があります。 AMI のブックマークを作成するには 1. 次の情報が含まれる URL を入力します。<region> には AMI のリージョン、<ami_id> には AMI の ID を指定します。 https://console.aws.amazon.com/ec2/v2/home? region=<region>#LaunchInstanceWizard:ami=<ami_id> たとえば、この URL は、us-east-1 リージョンの ami-12345678 AMI からインスタンスを起動し ます。 https://console.aws.amazon.com/ec2/v2/home?region=useast-1#LaunchInstanceWizard:ami=ami-12345678 87 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 共有 Linux AMI のガイドライン 2. AMI を使用するユーザーにリンクを配信します。 3. ブックマークを使用するには、リンクを選択するか、そのリンクをコピーしてブラウザに貼り付 けます。起動ウィザードが開きます。AMI が既に選択されています。 共有 Linux AMI のガイドライン 攻撃対象領域を縮小し、作成する AMI の信頼性を向上させるためには、次のガイドラインを使用しま す。 Note セキュリティのガイドラインのリストは、いずれも完全ではありません。共有 AMI を注意深 く作成し、機密データが漏洩される可能性について十分考慮してください。 トピック • 起動時に AMI ツールを更新する (p. 88) • ルートのパスワードベースのリモートログインを無効にする (p. 89) • ローカルルートアクセスを無効にする (p. 89) • SSH ホストキーペアの削除 (p. 89) • パブリックキー認証情報のインストール (p. 90) • sshd DNS チェックの無効化 (オプション) (p. 91) • 公開元を明らかにする (p. 91) • 自身の保護 (p. 91) AWS Marketplace 向けの AMI を作成する場合、Building AMIs for AWS Marketplace のガイドライ ン、ポリシー、ベストプラクティスを参照してください。 AMI の安全な共有についての詳細は、次の記事を参照してください。 • パブリック AMI を安全に共有し使用する方法 • パブリック AMI の公開: セキュリティ強化とクリーンアップの要件 起動時に AMI ツールを更新する Instance Store-Backed の AMI の場合、起動時に、AMI で Amazon EC2 AMI 作成ツールをダウンロー ドして、アップグレードすることをお勧めします。これにより、共有 AMI に基づく新しい AMI に最 新の AMI ツールが与えられます。 Amazon Linux の場合は、次を /etc/rc.local に追加します。 # Update the Amazon EC2 AMI tools echo " + Updating EC2 AMI tools" yum update -y aws-amitools-ec2 echo " + Updated EC2 AMI tools" この方法では、イメージ上の他のソフトウェアが自動的に更新されます。 Note 自動更新するソフトウェアを決定するときは、更新によって発生する WAN トラフィックの量 (お客様のユーザーはそれに対して課金されます) と、更新により AMI 上の他のソフトウェア が中断されるというリスクについて考慮してください。 88 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 共有 Linux AMI のガイドライン 他のディストリビューションの場合は、AMI ツールが最新版であることを確認してください。 ルートのパスワードベースのリモートログインを無効にする パブリック AMI に固定のルートパスワードを使用することは、セキュリティの面で危険であり、すぐ に知られるおそれがあります。初回ログイン後にパスワードを変更するようにユーザーに依存してい ますが、変更されるまでの一瞬の間にパスワードが悪用される危険性があります。 この問題を解決するには、ルートユーザーのパスワードベースのリモートログインを無効にします。 ルートのパスワードベースのリモートログインを無効にするには 1. テキストエディタで /etc/ssh/sshd_config ファイルを開き、次の行を見つけ出します: #PermitRootLogin yes 2. 行を次のように変更します: PermitRootLogin without-password この構成ファイルの場所は、ディストリビューションに応じて、または OpenSSH を実行してい ない場合は、異なることがあります。このような場合は、関連資料を参照してください。 ローカルルートアクセスを無効にする 共有 AMI を使用する際のベストプラクティスは、直接ルートログインを無効にすることです。これを 行うには、実行中のインスタンスにログインし、次のコマンドを発行します。 [ec2-user ~]$ sudo passwd -l root Note このコマンドが sudo の使用に影響を及ぼすことはありません。 SSH ホストキーペアの削除 パブリック AMI から派生した AMI を共有する場合は、/etc/ssh にある既存の SSH ホストキーペア を削除します。これにより、他のユーザーがお客様の AMI を使用してインスタンスを起動したとき に、SSH は、新しい固有の SSH キーペアを生成するように強制されるため、セキュリティが強化さ れ、「中間者」攻撃の可能性を減らします。 システムにある次のすべてのキーファイルを削除します。 • ssh_host_dsa_key • ssh_host_dsa_key.pub • ssh_host_key • ssh_host_key.pub • ssh_host_rsa_key • ssh_host_rsa_key.pub • ssh_host_ecdsa_key • ssh_host_ecdsa_key.pub • ssh_host_ed25519_key 89 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 共有 Linux AMI のガイドライン • ssh_host_ed25519_key.pub 次のコマンドを使用して、これらのファイルをすべて確実に削除できます。 [ec2-user ~]$ sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub Warning shred などの安全な削除ユーティリティでは、ストレージメディアからファイルのすべ てのコピーを削除できない可能性があります。ファイルの非表示のコピーは、ジャーナル ファイルシステム (Amazon Linux のデフォルト ext4 を含む)、スナップショット、バック アップ、RAID、および一時キャッシュによって作成することができます。詳細について は、shred のドキュメントを参照してください。 Important パブリック AMI から既存の SSH ホストキーペアを削除することを忘れた場合、ルーチン監査 プロセスから、AMI のインスタンスを実行するすべての顧客に向けて、セキュリティ上のリ スクがある可能性について通知されます。短い猶予期間の後に、AMI にプライベートのマー クが付けられます。 パブリックキー認証情報のインストール パスワードを使用したログインを防ぐように AMI を構成したら、ユーザーが別のメカニズムを使用し てログインできるようにしておく必要があります。 ユーザーは、Amazon EC2 を使用すると、インスタンスの起動時にパブリックプライベートキーペア 名を指定できます。RunInstances API 呼び出し (またはコマンドライン API ツール) で有効なキー ペア名を指定すると、パブリックキー (CreateKeyPair または ImportKeyPair の呼び出し後に Amazon EC2 がサーバー上に保持するキーペアの一部) を、インスタンスメタデータに対する HTTP Query を介してインスタンスで使用できるようになります。 SSH を使用してログインするには、AMI が起動時にキー値を取得し、それを /root/.ssh/ authorized_keys (または AMI 上のその他のユーザーアカウントの同等項目) に付加する必要があり ます。ユーザーはキーペアを使用して AMI のインスタンスを起動し、ルートパスワードを入力せずに ログインできます。 Amazon Linux や Ubuntu を初めとする多くのディストリビューションでは、cloud-init パッケージ を使用して、設定されたユーザーのパブリックキー認証情報を挿入します。cloud-init をサポート していないディストリビューションの場合は、システムスタートアップスクリプト (たとえば、/etc/ rc.local) に次のコードを追加して、起動時に root ユーザーに対して指定したパブリックキーを取 り込みます。 if [ ! -d /root/.ssh ] ; then mkdir -p /root/.ssh chmod 700 /root/.ssh fi # Fetch public key using HTTP curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > / tmp/my-key if [ $? -eq 0 ] ; then cat /tmp/my-key >> /root/.ssh/authorized_keys chmod 700 /root/.ssh/authorized_keys rm /tmp/my-key fi 90 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 共有 Linux AMI のガイドライン この設定は、あらゆるユーザーアカウントに適用できます。root に限定する必要はありません。 Note この AMI に基づいたインスタンスを再バンドルすると、起動時に使用されたキーが組み込ま れます。キーへの組み込みを阻止するには、authorized_keys ファイルの内容を空にする (ファイルを削除する) か、またはこのファイルを再バンドルから除外します。 sshd DNS チェックの無効化 (オプション) sshd DNS チェックを無効にすると、sshd セキュリティが若干低下します。ただし、DNS の解決 策が失敗した場合は、SSH ログインが引き続き機能します。sshd チェックを無効にしなかった場 合、DNS の解決策が失敗すると、すべてのログインが阻止されます。 sshd DNS チェックを無効にするには 1. テキストエディタで /etc/ssh/sshd_config ファイルを開き、次の行を見つけ出します: #UseDNS yes 2. 行を次のように変更します: UseDNS no Note この構成ファイルの場所は、ディストリビューションに応じて、または OpenSSH を実行 していない場合は、異なることがあります。このような場合は、関連資料を参照してくださ い。 公開元を明らかにする 現在のところ、AMI はそれぞれアカウント ID で表されるため、共有 AMI を提供したのが誰かを簡単 に特定する方法はありません。 お客様の AMI の説明と AMI ID を Amazon EC2 forum に投稿することをお勧めします。これによ り、新しい共有 AMI の使用に関心があるユーザーに便利な中心となる場所が提供されます。AMI を Amazon Machine Image (AMI) ページに投稿することもできます。 自身の保護 前のセクションでは、共有 AMI を起動するユーザーに対して、共有 AMI をセキュアで安全にし、ま た、便利にする方法について説明しました。このセクションでは、お客様の AMI を利用するユーザー から、お客様ご自身を保護するためのガイドラインを説明します。 共有する AMI に、機密性のあるデータやソフトウェアは保管しないことをお勧めします。共有 AMI を起動するユーザーは、それを再バンドルしたり、自分のものとして登録したりできる可能性があり ます。以下のガイドラインに従って、見落としやすいセキュリティ上のリスクを回避してください: • ec2-bundle-vol で --exclude directory オプションを使用して、バンドル操作に含めたく ない機密情報が入っているディレクトリおよびサブディレクトリをスキップすることをお勧めし ます。特に、イメージをバンドルするときに、すべてのユーザー所有の SSH パブリックキー/プ ライベートキーペアおよび SSH authorized_keys ファイルを除外します。Amazon パブリック AMI で、これらのファイルは、root アカウントの場合は /root/.ssh、通常のユーザーアカウ 91 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 有料 AMI ントの場合は /home/user_name/.ssh/ に配置されています。詳細については、「ec2-bundlevol (p. 107)」を参照してください。 • バンドルの前に必ずシェル履歴を削除してください。同じ AMI で複数のバンドルのアップロードを 試行すると、シェル履歴にシークレットアクセスキーが含まれます。次の例は、インスタンス内か らのバンドルの前に実行される最後のコマンドとなる必要があります。 [ec2-user ~]$ shred -u ~/.*history Warning 上記の警告で示した shred の制限は、ここにも適用されます。 bash は、終了時に現在のセッション履歴をディスクに書き込むことに注意してくださ い。~/.bash_history を削除後にインスタンスをログアウトし、再度ログインする と、~/.bash_history が再作成され、前のセッション中に実行されたすべてのコマンド が含まれています。 bash 以外の他のプログラムもディスクに履歴を書き込むため、注意して不要な dot ファイ ルと dot ディレクトリを削除または除外します。 • 実行中のインスタンスをバンドルするには、プライベートキーと X.509 証明書が必要です。これら の証明書およびその他の証明書を、バンドルされていない場所 (インスタンスストアなど) に書き込 みます。 有料 AMI Amazon Kernel Image は、開発者から購入できる 有料 AMI です。 Amazon EC2 は AWS Marketplace と統合されており、開発者は自身が開発した AMI を他の Amazon EC2 ユーザーに有償で提供したり、インスタンスにサポートを提供したりできます。 AWS Marketplace は、EC2 インスタンスの起動に使用できる AMI など、AWS で実行されるソフト ウェアを購入できるオンラインストアです。AWS Marketplace AMI は開発者ツールなどカテゴリ別に 整理されており、ユーザーは要件に適合する製品を見つけることができます。AWS Marketplace の詳 細については、AWS Marketplace のサイトを参照してください。 有料 AMI からのインスタンスの起動は、他の AMI からのインスタンスの起動と同じです。追加パラ メーターは必要ありません。インスタンスは、AMI の所有者が設定した料金と、Amazon EC2 でス モールインスタンスタイプを実行する場合の 1 時間あたりの料金など、関連ウェブサービスの標準使 用料に基づいて課金されます。税金が加算されることもあります。有料 AMI の所有者は、特定のイン スタンスがその有料 AMI から起動されたかどうかを確認できます。 Important Amazon DevPay は新しい販売者または製品の受付を停止しました。いまでは、AWS Marketplace が、ソフトウェアとサービスを AWS で販売する唯一の統一された e コマース プラットフォームです。AWS Marketplace でソフトウェアをデプロイし販売する方法につい ては、「Selling on AWS Marketplace」を参照してください。AWS Marketplace は Amazon EBS-Backed AMI をサポートします。 トピック • ご自分の AMI を販売する (p. 93) • 有料 AMI を見つける (p. 93) • 有料 AMI の購入 (p. 94) • インスタンスの製品コードを取得する (p. 94) 92 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ご自分の AMI を販売する • 有料サポートの利用 (p. 95) • 有料およびサポート対象の AMI の請求書 (p. 95) • AWS Marketplace サブスクリプションの管理 (p. 95) ご自分の AMI を販売する AWS Marketplace を使用して AMI を販売できます。AWS Marketplace では体系的に買い物をするこ とができます。また、 AWS Marketplace は、Amazon EBS-Backed AMI、リザーブドインスタンス、 スポットインスタンスなどの AWS 機能もサポートします。 AWS Marketplace でご自分の AMI を販売する詳細については、Selling on AWS Marketplace を参照し てください。 有料 AMI を見つける 購入できる AMI を検索する方法はいくつかあります。たとえば、AWS Marketplace、Amazon EC2 コ ンソール、コマンドラインを使用できます。あるいは、開発者が有料 AMI に関する情報をお客様にお 知らせすることがあります。 コンソールを使用して有料 AMI を見つける コンソールを使用して有料 AMI を見つけるには 1. 2. Amazon EC2 コンソールを開きます。 ナビゲーションペインの [AMIs] をクリックします。 3. 最初の [Filter] リストから [Public Snapshots] を選択します。検索バーをクリックし、[Product Code] を選択します。次に [Marketplace] を選択します。検索バーをもう一度クリックし、 [Platform] を選択します。次に、リストからオペレーティングシステムを選択します。 AWS Marketplace を使用して有料 AMI を見つける AWS Marketplace を使用して有料 AMI を見つけるには 1. 2. 3. AWS Marketplace を開きます。 検索ボックスにオペレーティングシステムの名前を入力して、[Go] をクリックします。 検索結果をさらに絞るには、カテゴリまたはフィルタを利用します。 4. 各製品には、製品タイプ (AMI または Software as a Service) のラベルが付けられていま す。 コマンドラインを使用した有料 AMI の検索 次のように describe-images コマンド (AWS CLI) を使用して、有料 AMI を見つけることができます。 $ aws ec2 describe-images --owners aws-marketplace このコマンドは、有料 AMI の製品コードなど、各 AMI を説明するさまざまな詳細を返しま す。describe-images からの出力には、次のような製品コードのエントリがあります: "ProductCodes": [ { 93 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 有料 AMI の購入 "ProductCodeId": "product_code", "ProductCodeType": "marketplace" } ], または、AWS Tools for Windows PowerShell コマンド Get-EC2Image を使用することもできます。 有料 AMI の購入 AMI を使用してインスタンスを起動するには、有料 AMI にサインアップする (購入する) 必要がありま す。 通常、有料 AMI の販売者は、価格や購入サイトへのリンクなど、AMI に関する情報を提供します。リ ンクをクリックすると、最初に AWS へのログインが求められます。ログイン後、AMI を購入できま す。 コンソールを使用して有料 AMI を購入する Amazon EC2 起動ウィザードを使用して有料 AMI を購入できます。詳細については、「AWS Marketplace インスタンスの起動 (p. 312)」を参照してください。 AWS Marketplace を使用した製品のサブスクライブ AWS Marketplace を使用するには、AWS アカウントが必要です。AWS Marketplace 製品からインス タンスを起動するには、Amazon EC2 サービスの利用にサインアップして、インスタンスの起動元か ら製品の受信登録をする必要があります。AWS Marketplace の製品を受信登録するには、2 つの方法 があります。 • AWS Marketplace ウェブサイト: 1-Click デプロイメント機能で、事前に設定したソフトウェアをす ばやく起動できます。 • Amazon EC2 起動ウィザード: AMI を検索し、ウィザードからインスタンスを直接起動できます。 詳細については、「AWS Marketplace インスタンスの起動 (p. 312)」を参照してください。 開発者から有料 AMI を購入する 有料 AMI の開発者は、AWS Marketplace のリストにない有料 AMI をユーザーが購入できるように手 配できます。開発者は、Amazon から製品を購入できるように、お客様にリンクを送ります。お客様 がご自分の Amazon.com 認証情報でサインインして、Amazon.com アカウントに保存しているクレ ジットカードを選択すると、AMI の購入時に使用できます。 インスタンスの製品コードを取得する インスタンスの AWS Marketplace 製品コードは、インスタンスメタデータを使用して取得できます。 メタデータの取得については、インスタンスメタデータとユーザーデータ (p. 367) を参照してくだ さい。 製品コードを取得するには、次のクエリを使用します。 $ GET http://169.254.169.254/latest/meta-data/product-codes インスタンスに製品コードが含まれる場合、Amazon EC2 はそれを返します。以下に例を示します。 774F4FF8 94 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 有料サポートの利用 有料サポートの利用 Amazon EC2 は、開発者がソフトウェア (またはそれに由来する AMI) のサポートを提供できるよう に手配します。開発者は、お客様がサインアップして使用できるサポート製品を提供することができ ます。サポート製品にサインアップすると、開発者はお客様に製品コードを渡します。お客様はその コードをご自分の AMI に関連付ける必要があります。これにより、開発者は、ユーザーのインスタン スがサポート対象であることを確認できます。また、お客様が製品からインスタンスを実行すると、 開発者が定めた製品の利用規約にしたがい、お客様に課金されます。 Important リザーブドインスタンスとともにサポート製品を使用することはできません。お客様は常 に、サポート製品の販売者が指定した価格を支払います。 製品コードと自分の AMI を関連付けるには、次のコマンドの 1 つを使用します。ami_id は AMI の ID で、product_code は製品コードです。 • modify-image-attribute (AWS CLI) $ aws ec2 modify-image-attribute --image-id ami_id --product-codes "product_code" • Edit-EC2ImageAttribute (AWS Tools for Windows PowerShell) C:\> Edit-EC2ImageAttribute -ImageId ami_id -ProductCode product_code 一度設定した製品コード属性を変更したり削除したりすることはできません。 有料およびサポート対象の AMI の請求書 有料またはサポートされた AMI の使用料金がお客様のクレジットカードに請求され、その金額を記載 した E メールが毎月末に届きます。これは通常の Amazon EC2 使用料金とは別に請求されます。詳 細については、Paying For AWS Marketplace Products を参照してください。 AWS Marketplace サブスクリプションの管理 AWS Marketplace ウェブサイトでは、サブスクリプションの詳細の確認、使用に関するベンダー指示 の表示、サブスクリプションの管理などを行うことができます。 サブスクリプションの詳細を確認するには 1. 2. AWS Marketplace にログインします。 [Your Account] をクリックします。 3. 4. [Manage Your Software Subscriptions] をクリックします。 現在のすべてのサブスクリプションが表示されます。実行中のインスタンスに接続するための ユーザー名など、製品の使用に関する特定の取扱説明を表示するには、[ Usage Instructions] をク リックします。 AWS Marketplace のサブスクリプションを取り消すには 1. サブスクリプションによって実行されていたすべてのインスタンスを終了したことを確認しま す。 a. Amazon EC2 コンソールを開きます。 95 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EBS-Backed Linux AMI の作成 b. ナビゲーションペインの [Instances] をクリックします。 c. インスタンスを選択し、[Actions] をクリックして [Instance State] を選択した後、 [Terminate] をクリックします。プロンプトが表示されたら、[Yes, Terminate] をクリックし ます。 2. AWS Marketplace にログインし、[Your Account]、[Manage Your Software Subscriptions] の順に クリックします。 3. [Cancel subscription] をクリックします。取り消しの確認を求めるプロンプトが表示されます。 Note 受信登録をキャンセルすると、その AMI からインスタンスを起動できなくなります。そ の AMI を再度使用するには、AWS Marketplace ウェブサイトまたは Amazon EC2 コン ソールの起動ウィザードを使用して、その AMI を再度サブスクライブする必要がありま す。 Amazon EBS-Backed Linux AMI の作成 Amazon EBS-backed Linux AMI を作成するには、既存の Amazon EBS-backed Linux AMI から起動し たインスタンスから開始します。これは、AWS Marketplace から取得した AMI、AWS サーバー移行 サービスを使用して作成した AMI、またはアクセス可能な他の AMI の可能性があります。ニーズに 合わせてインスタンスをカスタマイズしたら、新しい AMI を作成し、登録します。新しい AMI を使 用して、カスタマイズした新しいインスタンスを起動できます。Amazon EBS-backed Windows AMI の作成の詳細については、Windows インスタンスの Amazon EC2 ユーザーガイドの「Amazon EBSbacked Windows AMI の作成」を参照してください。 いかに説明された手順は、暗号化された Amazon EBS ボリューム (ルートボリュームを含む) でバッ クアップされた Amazon EC2 インスタンスにも、暗号化されていないボリューム同様に機能します。 AMI の作成プロセスは、instance store-backed AMI の場合とは異なります。Amazon EBS-backed インスタンスと instance store-backed インスタンスの違いの詳細と、インスタンスのルートデバイ スタイプを判別する方法については、「ルートデバイスのストレージ (p. 77)」を参照してくださ い。instance store-backed Linux AMI の作成に関する詳細については、「Instance Store-Backed Linux AMI の作成 (p. 100)」を参照してください。 Amazon EBS-backed AMI の作成の概要 最初に、作成する AMI に似ている AMI からインスタンスを起動します。インスタンスに接続し、そ れをカスタマイズできます。インスタンスを正しく設定したら、インスタンスを停止してデータ整合 性を確認してから、AMI を作成し、次にイメージを作成します。作成した Amazon EBS-backed AMI は自動的に登録されます。 Amazon EC2 がインスタンスをシャットダウンしてから AMI を作成するのは、インスタンス上のすべ ての動作を停止し、作成プロセス中に一貫した状態が保たれるようにするためです。インスタンスが 一貫した状態にあり、適切に AMI を作成できる場合、インスタンスの電源を落として再起動しないよ うに、Amazon EC2 に指定できます。XFS などの一部のファイルシステムでは、アクティビティのフ リーズおよびフリーズ解除が可能なため、インスタンスを再起動しなくてもイメージを安全に作成で きます。 AMI 作成プロセスの間、Amazon EC2 はインスタンスのルートボリュームとインスタンスにアタッチ されているその他の EBS ボリュームのスナップショットを作成します。インスタンスにアタッチされ るいずれかのボリュームが暗号化されている場合、新しい AMI は、Amazon EBS 暗号化 をサポート するインスタンスでのみ正常に起動します。詳細については、「Amazon EBS Encryption (p. 817)」 を参照してください。 ボリュームサイズによっては、AMI 作成プロセスが完了するまでに数分 (時には最大 24 時間) かかる 場合があります。AMI を作成する前にボリュームのスナップショットを作成することで、より効率 96 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスからの Linux AMI の作成 的になる場合があります。この方法では、AMI を作成する際に作成する必要があるのは小さい差分ス ナップショットのみになるため、プロセスがよりすばやく完了します (スナップショット作成の合計時 間は同じです)。詳細については、「Amazon EBS スナップショットの作成 (p. 806)」を参照してく ださい。 プロセスが完了すると、新しい AMI と、インスタンスのルートボリュームから作成されたスナップ ショットが与えられます。ユーザーが新しい AMI を使用してインスタンスを起動すると、Amazon はスナップショットを使用して、そのルートボリュームのために新しい EBS ボリュームを作成しま す。AMI とスナップショットはどちらも削除されるまで、ユーザーのアカウントに料金を発生させま す。詳細については、「AMI の登録解除 (p. 149)」を参照してください。 ルートデバイスボリュームに加えて、インスタンスストアボリュームまたは EBS ボリュームをイン スタンスに追加した場合、新しい AMI のブロックデバイスマッピングにこれらのボリュームの情報が 含まれ、新しい AMI から起動するインスタンスのブロックデバイスマッピングに自動的にこれらのボ リュームの情報が含まれます。新しいインスタンスのブロックデバイスマッピングに指定されている インスタンスストアボリュームは新しく、AMI の作成に使用したインスタンスのインスタンスストア ボリュームからのデータは含まれていません。EBS ボリュームのデータは永続的です。詳細について は、「ブロックデバイスマッピング (p. 867)」を参照してください。 インスタンスからの Linux AMI の作成 AWS マネジメントコンソールまたはコマンドラインを利用して AMI を作成できます。次の図は、実 行中の EC2 インスタンスから Amazon EBS-backed AMI を作成するプロセスをまとめたものです。 既存の AMI から開始して、インスタンスを起動してカスタマイズし、そこから新しい AMI を作成し て、最後に新しい AMI のインスタンスを起動します。以下の図のステップは次の手順のステップに一 致しています。 コンソールを使用してインスタンスから AMI を作成するには 1. 新しい AMI の開始点として機能する適切な EBS-backed AMI を選択し、起動に先立って必要に応 じて設定します。詳細については、「インスタンスの作成 (p. 303)」を参照してください。 2. [Launch] を選択して、選択した EBS-backed AMI のインスタンスを起動します。デフォルト値を そのまま使ってウィザードを完了します。詳細については、「インスタンスの作成 (p. 303)」を 参照してください。 3. インスタンスの実行中に、それに接続します。 必要に応じてインスタンスで次のアクションを実行してインスタンスをカスタマイズできます。 • ソフトウェアやアプリケーションをインストールする • データをコピーする • 起動時間を短縮するために一時ファイルの消去、ハードディスクのデフラグ、占有領域の開放 処理を行う。 • 追加の Amazon EBS ボリュームをアタッチする。 (オプション) インスタンスにアタッチされているすべてのボリュームのスナップショットを 作成する。スナップショット作成についての詳細は、Amazon EBS スナップショットの作 成 (p. 806) を参照してください。 97 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスからの Linux AMI の作成 ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。[Actions]、[Image]、 [Create Image] の順に選択します。 Tip このオプションが無効になっている場合、そのインスタンスは Amazon EBS-Backed イ ンスタンスではありません。 4. [Create Image] ダイアログボックスで次のフィールドに値を指定し、[Create Image] を選択しま す。 名前 イメージの一意な名前。 説明 (オプション) イメージの説明 (最大 255 文字)。 デフォルトでは、Amazon EC2 はインスタンスをシャットダウンし、アタッチされていたすべて のボリュームのスナップショットを作成し、AMI を作成して登録し、インスタンスを再起動しま す。インスタンスをシャットダウンしない場合、[No reboot] を選択します。 Warning [No reboot] を選択した場合、Amazon では作成されたイメージのファイルシステムの整 合性を保証できません。 次のように、ルートボリューム、Amazon EBS ボリューム、およびインスタンスストアボリュー ムを変更できます。 • ルートボリュームのサイズを変更するには、[Type] 列で [Root] ボリュームを見つけ、[Size] フィールドに入力します。 • インスタンスの起動に使用された AMI のブロックデバイスマッピングで指定された Amazon EBS ボリュームを非表示にするには、リストから EBS ボリュームを見つけ、[Delete] を選択し ます。 • Amazon EBS ボリュームを追加するには、[Add New Volume]、[Type]、[EBS] の順に選択し、 フィールドに入力します。その後新しい AMI からインスタンスを起動すると、追加されたボ リュームは自動的にインスタンスにアタッチされます。空のボリュームはフォーマットしてマ ウントする必要があります。スナップショットベースのボリュームはマウントする必要があり ます。 • インスタンスの起動に使用された AMI のブロックデバイスマッピングで指定されたインスタン スストアボリュームを非表示にするには、リストからボリュームを見つけ、[Delete] を選択し ます。 • インスタンスストアボリュームを追加するには、[Add New Volume]、[Type]、[Instance Store] の順に選択し、[Device] リストからデバイス名を選択します。その後新しい AMI からインス タンスを起動すると、追加されたボリュームは自動的に初期化されてマウントされます。これ らのボリュームには、AMI の作成に使用された実行中のインスタンスのインスタンスストアボ リュームのデータは含まれません。 5. AMI の作成中に、ナビゲーションペインで [AMIs] を選択してステータスを表示できます。最初 は、pending です。数分後、ステータスは available に変わるはずです。 (オプション) ナビゲーションペインの [Snapshots] を選択して、新しい AMI に作成されたスナッ プショットを表示します。ユーザーがこの AMI からインスタンスを起動すると、Amazon はこの スナップショットを使用して、ルートデバイスボリュームを作成します。 6. 新しい AMI からインスタンスを起動します。詳細については、「インスタンスの作 成 (p. 303)」を参照してください。 7. 新しい実行中インスタンスには、前のステップで適用したカスタム設定がすべて含まれます。 98 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スナップショットからの Linux AMI の作成 コマンドラインを使用してインスタンスから AMI を作成する には 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスについての詳細 は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • create-image (AWS CLI) • New-EC2Image (AWS Tools for Windows PowerShell) スナップショットからの Linux AMI の作成 インスタンスのルートデバイスボリュームのスナップショットがある場合、AWS マネジメントコン ソールまたはコマンドラインを使用して、そのスナップショットから AMI を作成できます。 Important Red Hat Enterprise Linux (RHEL) や SUSE Linux Enterprise Server (SLES) などの一部の Linux ディストリビューションは、AMI に関連付けられた Amazon EC2 の billingProduct コードを使用して、パッケージの更新に関するサブスクリプションのステータスを確認しま す。EBS スナップショットから AMI を作成すると、この請求コードが保持されないため、こ のような AMI から起動したそれ以降のインスタンスはパッケージ更新インフラストラクチャ に接続できません。 同様に、スナップショットから Windows AMI を作成することはできますが、AMI からインス タンスを正常に起動することができません。 一般的には、AWS はスナップショットから手動で AMI を作成することを勧めていません。 Windows AMI の作成、または正常に機能する AMI 請求コードを保持する必要がある Linux オペレーティングシステム用の AMI の作成についての詳細は、「インスタンスからの Linux AMI の作成 (p. 97)」を参照してください。 コンソールを使用してスナップショットから AMI を作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Elastic Block Store] の [Snapshots] を選択します。 3. スナップショットを選択し、[Actions]、[Create Image] を選択します。 4. [Create Image from EBS Snapshot] ダイアログボックスで、AMI を作成するためのフィールドに 入力し、[Create] を選択します。親インスタンスを再作成する場合は、親インスタンスと同じオ プションを選択します。 • Architecture: 32 ビットの場合は [i386] を、64 ビットの場合は [x86_64] を選択します。 • Root device name: ルートボリュームの適切な名前を入力します。詳細については、「Linux イ ンスタンスでのデバイスの名前付け (p. 865)」を参照してください。 • [Virtualization type]: この AMI から起動されるインスタンスで準仮想化 (PV) またはハードウェ ア仮想マシン (HVM) のいずれの仮想化を使用するかを選択します。詳細については、「Linux AMI 仮想化タイプ (p. 80)」を参照してください。 • (PV 仮想化タイプのみ) Kernel ID および RAM disk ID: リストから AKI と ARI を選択します。 デフォルトの AKI を選択するか、AKI を選択しない場合、この AMI を使用してインスタンスを 起動するたびに AKI を指定するように要求されます。また、デフォルトの AKI にインスタンス との互換性がない場合、インスタンスのヘルスチェックが失敗する可能性があります。 • (オプション) [Block Device Mappings]: ボリュームを追加するか、AMI のルートボリュームのデ フォルト容量を増やします。ボリュームの容量を増やした場合のインスタンスのファイルシス 99 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed Linux AMI の作成 テムのサイズ変更の詳細については、「Linux ファイルシステムを拡張する (p. 793)」を参照 してください。 コマンドラインを使用してスナップショットから AMI を作成 するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • register-image (AWS CLI) • Register-EC2Image (AWS Tools for Windows PowerShell) Instance Store-Backed Linux AMI の作成 Instance Store-Backed Linux AMI を作成するには、既存の Instance Store-Backed Linux AMI から起動 したインスタンスから始めます。ニーズに合わせてインスタンスをカスタマイズしたら、ボリューム をバンドルし、新しい AMI を登録します。新しい AMI を使用して、カスタマイズした新しいインス タンスを起動できます。 instance store-backed Windows AMI を作成する場合、Windows インスタンスの Amazon EC2 ユー ザーガイド の「Instance Store-Backed Windows AMI の作成」を参照してください。 AMI の作成プロセスは、Instance Store-Backed AMI の場合とは異なります。Amazon EBS-Backed インスタンスと Instance store-Backed インスタンスの違いの詳細と、インスタンスのルートデバイ スタイプを判別する方法については、「ルートデバイスのストレージ (p. 77)」を参照してくださ い。Amazon EBS-backed Linux AMI を作成する必要がある場合は、「Amazon EBS-Backed Linux AMI の作成 (p. 96)」を参照してください。 Instance Store-Backed AMI の作成プロセスの概要 次の図は、Instance Store-Backed インスタンスから AMI を作成するプロセスをまとめたものです。 最初に、作成する AMI に似ている AMI からインスタンスを起動します。インスタンスに接続し、そ れをカスタマイズできます。インスタンスのカスタマイズが終わったら、それをバンドルできます。 バンドルプロセスが完了するには数分間かかります。プロセスが完了すると、バンドルが与えられ ます。バンドルは、イメージマニフェスト (image.manifest.xml) と、ルートボリュームのテンプ レートを含むファイル (image.part.xx) から構成されます。次に、バンドルを Amazon S3 バケット にアップロードし、AMI を登録します。 お客様が新しい AMI を使用してインスタンスを起動すると、Amazon はユーザーが Amazon S3 に アップロードしたバンドルを使用してインスタンスのルートボリュームを作成します。Amazon S3 の バンドルで使用されるストレージ領域については、お客様がその領域を削除するまでアカウントに料 金が発生します。詳細については、「AMI の登録解除 (p. 149)」を参照してください。 100 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 前提条件 ルートデバイスボリュームに加えて、インスタンスストアボリュームをインスタンスに追加した場 合、新しい AMI のブロックデバイスマッピングにこれらのボリュームの情報が含まれ、新しい AMI から起動するインスタンスのブロックデバイスマッピングに自動的にこれらのボリュームの情報が含 まれます。詳細については、「ブロックデバイスマッピング (p. 867)」を参照してください。 前提条件 AMI を作成するには、最初に次のタスクを完了する必要があります。 • AMI ツールをインストールします。詳細については、「AMI ツールを設定する (p. 101)」を参照 してください。 • AWS CLI をインストールします。詳細については、「AWS Command Line Interface のセットアッ プ」を参照してください。 • バンドルに Amazon S3 バケットがあることを確認します。Amazon S3 バケットを作成するに は、Amazon S3 コンソールを開き、[Create Bucket] をクリックします。 Note AWS CLI mb コマンドを使用して、バケットを作成することもできます。 • 次の認証情報があることを確認します。 • AWS アカウント ID。AWS マネジメントコンソール で AWS アカウント ID 番号を確認するに は、ナビゲーションバーの右上にある [Support] をクリックし、[Support Center] をクリックしま す。現在サインインしているアカウント ID が [Support] メニューの下に表示されます。 • X.509 証明書と対応するプライベートキー。X.509 証明書を作成する必要がある場合は、「デ ジタル署名用証明書の管理 (p. 122)」を参照してください。X.509 証明書とプライベートキー は、AMI の暗号化/復号に使用されます。 • AWS アカウントアクセスキー ID とシークレットアクセスキーです。詳細については、IAM ユー ザーガイド の「アクセスキーの作成、修正、および表示」を参照してください。 • インスタンスに接続し、カスタマイズします。たとえば、ソフトウェアとアプリケーションをイン ストールしたり、データをコピーしたり、一時ファイルを削除したり、Linux 設定を変更したりで きます。 トピック • AMI ツールを設定する (p. 101) • Instance Store-Backed Amazon Linux インスタンスから AMI を作成する (p. 127) • Instance Store-Backed Ubuntu インスタンスから AMI を作成する (p. 131) • Instance Store-Backed AMI を Amazon EBS-Backed AMI に変換する (p. 137) AMI ツールを設定する AMI ツールを使用して、instance store-backed Linux AMI を作成し、管理できます。このツールを使 用するには、Linux インスタンスにツールをインストールする必要があります。AMI ツールは RPM と して使用できるとともに、RPM をサポートしていない Linux ディストリビューションでは .zip ファイ ルとして使用できます。詳細については、「Amazon EC2 AMI ツール」を参照してください。 Note AMI ツールは instance store-backed Linux インスタンスでのみサポートされます。Amazon EBS-backed AMI を作成するには、代わりに create-image AWS CLI コマンドを使用しま す。instance store-backed Windows AMI を作成するには、「Instance Store-Backed Windows AMI の作成」を参照してください。 101 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する RPM を使用して AMI ツールを設定するには 1. yum などの Linux ディストリビューション用のパッケージマネージャを使用して Ruby をインス トールします。以下に例を示します。 $ sudo yum install -y ruby 2. wget や curl などのツールを使用して RPM ファイルをダウンロードします。以下に例を示しま す。 $ sudo wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm 3. 次のコマンドを使用して RPM をインストールします。 $ sudo yum install ec2-ami-tools.noarch.rpm 4. 次のコマンドを使用して、AMI ツールのインストールを確認します。 $ ec2-ami-tools-version Note cannot load such file -- ec2/amitools/version (LoadError) などのロード エラーが発生した場合は、次のステップを完了して、AMI ツールをインストールした場 所を RUBYLIB パスに追加します。 5. (オプション) 前のステップでエラーが発生した場合、AMI ツールをインストールした場所を RUBYLIB パスに追加します。 a. 追加するパスを調べるには、次のコマンドを実行します。 $ rpm -qil ec2-ami-tools | grep ec2/amitools/version /usr/lib/ruby/site_ruby/ec2/amitools/version.rb /usr/lib64/ruby/site_ruby/ec2/amitools/version.rb 上記の例で、前のロードエラーで欠落しているファイルは /usr/lib/ruby/site_ruby お よび /usr/lib64/ruby/site_ruby にあります。 b. 前のステップの場所を RUBYLIB パスに追加します。 $ export RUBYLIB=$RUBYLIB:/usr/lib/ruby/site_ruby:/usr/lib64/ruby/ site_ruby c. 次のコマンドを使用して、AMI ツールのインストールを確認します。 $ ec2-ami-tools-version zip ファイルを使用して AMI ツールを設定するには 1. Ruby をインストールし、apt-get など、Linux ディストリビューション用のパッケージマネー ジャを使用して解凍します。以下に例を示します。 $ sudo apt-get update -y && sudo apt-get install -y ruby unzip 102 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する 2. wget や curl などのツールを使用して .zip ファイルをダウンロードします。以下に例を示しま す。 $ wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip 3. /usr/local/ec2 など、適切なインストールディレクトリにファイルを解凍します。 $ sudo mkdir -p /usr/local/ec2 $ sudo unzip ec2-ami-tools.zip -d /usr/local/ec2 .zip ファイルには、ec2-ami-tools-x.x.x フォルダーが含まれていて、x.x.x はツールのバージョン 番号 (たとえば、ec2-ami-tools-1.5.7) です。 4. EC2_AMITOOL_HOME 環境変数を、ツールのインストールディレクトリに設定します。以下に例 を示します。 $ export EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-x.x.x 5. ツールを PATH 環境変数に追加します。以下に例を示します。 $ export PATH=$EC2_AMITOOL_HOME/bin:$PATH 6. 次のコマンドを使用して、AMI ツールのインストールを確認できます。 $ ec2-ami-tools-version AMI ツールのコマンド AMI ツールで次のコマンドを使用して、instance store-backed Linux AMI を作成および管理できま す。ツールをセットアップするには、「AMI ツールを設定する (p. 101)」を参照してください。 トピック • ec2-ami-tools-version (p. 103) • ec2-bundle-image (p. 104) • ec2-bundle-vol (p. 107) • ec2-delete-bundle (p. 111) • ec2-download-bundle (p. 113) • ec2-migrate-manifest (p. 116) • ec2-unbundle (p. 118) • ec2-upload-bundle (p. 119) • AMI ツール用の一般的なオプション (p. 122) ec2-ami-tools-version 説明 AMI ツールのバージョンについて説明します。 構文 ec2-ami-tools-version 103 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション このコマンドにパラメーターはありません。 出力 バージョン情報。 例 このコマンド例では、使用中の AMI ツールのバージョン情報を表示します。 $ ec2-ami-tools-version 1.5.2 20071010 ec2-bundle-image 説明 ループバックファイル内に作成されるオペレーティングシステムイメージから instance store-backed Linux AMI を作成します。 構文 ec2-bundle-image -c path -k path -u account -i path [-d path] [--ec2cert path] [-r architecture] [--productcodes code1,code2,...] [-B mapping] [-p prefix] オプション オプション 説明 -c, --cert path ユーザーの PEM エンコード RSA パブリックキー証明書 ファイル。 必須: はい 例: -c certHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -k, --privatekey path PEM エンコードされる RSA キーファイルへのパス。この バンドルをバンドル解除するには、このキーを指定する必 要があるため、安全な場所に保管してください。このキー は AWS アカウントに登録されている必要はありません。 必須: はい 例: -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u, --user account ダッシュのない、ユーザーの AWS アカウント ID。 必須: はい 例: -u 111122223333 -i, --image path バンドルするイメージへのパス。 必須: はい 例: -i /var/spool/my-image/version-2/ debian.img -d, --destination path バンドルを作成するディレクトリ。 デフォルト: /tmp 必須: いいえ 例: -d /media/ephemeral0 104 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 --ec2cert path イメージマニフェストの暗号化に使用される Amazon EC2 X.509 パブリックキー証明書へのパス。 us-gov-west-1 および cn-north-1 リージョンではデ フォルト以外のパブリックキー証明書を使用し、その証 明書へのパスは、このオプションで指定する必要がありま す。証明書へのパスは、AMI ツールのインストール方法 によって異なります。Amazon Linux の場合、証明書の場 所は /opt/aws/amitools/ec2/etc/ec2/amitools/ です。「AMI ツールを設定する (p. 101)」で RPM また は ZIP ファイルから AMI ツールをインストールした場 合、証明書の場所は $EC2_AMITOOL_HOME/etc/ec2/ amitools/ です。 デフォルト: ツールによって異なる 必須: us-gov-west-1 および cn-north-1 リージョンの 場合のみ。 例: --ec2cert $EC2_AMITOOL_HOME/etc/ec2/ amitools/cert-ec2.pem -r, --arch architecture イメージアーキテクチャ。コマンドラインでアーキテク チャを指定しない場合、バンドルの開始時に入力を求めら れます。 有効な値: i386 | x86_64 必須: いいえ 例: -r x86_64 --productcodes code1,code2,... 登録時にイメージにアタッチする、カンマ区切りの製品 コード。 必須: いいえ 例: --productcodes 1234abcd -B, --block-device-mapping mapping インスタンスタイプが指定されたデバイスをサポートする 場合に、この AMI のインスタンスにブロックデバイスを公 開する方法を定義します。 キーと値のペアのカンマ区切りのペアを指定します。名 キーは仮想名であり、各値は対応するデバイス名です。仮 想名には以下が含まれています。 • ami – インスタンスによって判断されるルートファイル システムデバイス • root – カーネルによって判断されるルートファイルシス テムデバイス • swap – インスタンスによって判断されるスワップデバイ ス • ephemeralN – N 番目のインスタンスストアボリューム 必須: いいえ 例: --block-device-mapping ami=sda1,root=/dev/ sda1,ephemeral0=sda2,swap=sda3 例: --block-device-mapping ami=0,root=/dev/ dsk/c0d0s0,ephemeral0=1 105 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 -p, --prefix prefix バンドル済み AMI ファイルのファイル名プレフィックス。 デフォルト: イメージファイルの名前。たとえば、イ メージパスが /var/spool/my-image/version-2/ debian.img である場合、デフォルトのプレフィックスは debian.img です。 必須: いいえ 例: -p my-image-is-special --kernel kernel_id 廃止. カーネルを設定するには、register-image を使用しま す。 必須: いいえ 例: --kernel aki-ba3adfd3 --ramdisk ramdisk_id 廃止. 必要に応じて、register-image を使用して RAM ディ スクを設定します。 必須: いいえ 例: --ramdisk ari-badbad00 一般的なオプション ほとんどの AMI ツールに共通のオプションについては、 「AMI ツール用の一般的なオプション (p. 122)」を参照 してください。 出力 バンドルプロセスのステージとステータスを記述するステータスメッセージ。 例 この例は、ループバックファイルで作成されたオペレーティングシステムイメージから、バンドルさ れた AMI を作成します。 $ ec2-bundle-image -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c certHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 111122223333 -i image.img -d bundled/ -r x86_64 Please specify a value for arch [i386]: Bundling image file... Splitting bundled/image.gz.crypt... Created image.part.00 Created image.part.01 Created image.part.02 Created image.part.03 Created image.part.04 Created image.part.05 Created image.part.06 Created image.part.07 Created image.part.08 Created image.part.09 Created image.part.10 Created image.part.11 Created image.part.12 Created image.part.13 Created image.part.14 Generating digests for each part... Digests generated. Creating bundle manifest... 106 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する ec2-bundle-image complete. ec2-bundle-vol 説明 インスタンスのルートデバイスボリュームを圧縮、暗号化、署名することで、instance store-backed Linux AMI を作成します。 Amazon EC2 はインスタンスから製品コード、カーネル設定、RAM ディスク設定、およびブロック デバイスマッピングを継承しようとします。 デフォルトでは、バンドルプロセスで機密情報を含んでいる 可能性があるファイルを除外します。そのようなファイルに は、*.sw、*.swo、*.swp、*.pem、*.priv、*id_rsa*、*id_dsa*、*.gpg、*.jks、*/.ssh/ authorized_keys、*/.bash_history があります。これらのファイルをすべて含めるには、-no-filter オプションを使用します。これらのファイルの一部を含めるには、--include オプショ ンを使用します。 詳細については、「Instance Store-Backed Linux AMI の作成」を参照してください。 構文 ec2-bundle-vol -c path -k path -u account [-d path] [--ec2cert path] [r architecture] [--productcodes code1,code2,...] [-B mapping] [--all] [-e directory1,directory2,...] [-i file1,file2,...] [--no-filter] [-p prefix] [s size] [--[no-]inherit] [-v volume] [-P type] [-S script] [--fstab path] [-generate-fstab] [--grub-config path] オプション オプション 説明 -c, --cert path ユーザーの PEM エンコード RSA パブリックキー証明書 ファイル。 必須: はい 例: -c certHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -k, --privatekey path ユーザーの PEM エンコード RSA キーファイルへのパス。 必須: はい 例: -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u, --user account ダッシュのない、ユーザーの AWS アカウント ID。 必須: はい 例: -u 111122223333 -d, --destination destination バンドルを作成するディレクトリ。 デフォルト: /tmp 必須: いいえ 例: -d /var/run/my-bundle --ec2cert path イメージマニフェストの暗号化に使用される Amazon EC2 X.509 パブリックキー証明書へのパス。 us-gov-west-1 および cn-north-1 リージョンではデ フォルト以外のパブリックキー証明書を使用し、その証 明書へのパスは、このオプションで指定する必要がありま す。証明書へのパスは、AMI ツールのインストール方法 107 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 によって異なります。Amazon Linux の場合、証明書の場 所は /opt/aws/amitools/ec2/etc/ec2/amitools/ です。「AMI ツールを設定する (p. 101)」で RPM また は ZIP ファイルから AMI ツールをインストールした場 合、証明書の場所は $EC2_AMITOOL_HOME/etc/ec2/ amitools/ です。 デフォルト: ツールによって異なる 必須: us-gov-west-1 および cn-north-1 リージョンの 場合のみ。 例: --ec2cert $EC2_AMITOOL_HOME/etc/ec2/ amitools/cert-ec2.pem -r, --arch architecture イメージアーキテクチャ。コマンドラインでこれを指定し ない場合、バンドルの開始時に入力を求められます。 有効な値: i386 | x86_64 必須: いいえ 例: -r x86_64 --productcodes code1,code2,... 登録時にイメージにアタッチする、カンマ区切りの製品 コード。 必須: いいえ 例: --productcodes 1234abcd -B, --block-device-mapping mapping インスタンスタイプが指定されたデバイスをサポートする 場合に、この AMI のインスタンスにブロックデバイスを公 開する方法を定義します。 キーと値のペアのカンマ区切りのペアを指定します。名 キーは仮想名であり、各値は対応するデバイス名です。仮 想名には以下が含まれています。 • ami – インスタンスによって判断されるルートファイル システムデバイス • root – カーネルによって判断されるルートファイルシス テムデバイス • swap – インスタンスによって判断されるスワップデバイ ス • ephemeralN – N 番目のインスタンスストアボリューム 必須: いいえ 例: --block-device-mapping ami=sda1,root=/dev/ sda1,ephemeral0=sda2,swap=sda3 例: --block-device-mapping ami=0,root=/dev/ dsk/c0d0s0,ephemeral0=1 -a, --all リモートでマウントされたファイルシステムのディレクト リを含めて、すべてのディレクトリをバンドルします。 必須: いいえ 例: -a 108 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 -e, --exclude directory1,directory2,... バンドルオペレーションから除外する絶対ディレクトリパ スとファイルのリスト。このパラメーターは --all オプ ションを上書きします。除外を指定すると、パラメーター とともにリストされたディレクトリとサブディレクトリ は、ボリュームにバンドルされません。 必須: いいえ 例: ボリュームのマウントポイントが -v /foo であり、 ディレクトリ /foo/bar および /foo/baz を除外する場合 は、-e /bar,/baz を指定します。 -i, --include file1,file2,... バンドルオペレーションに含めるファイルのリスト。指定 されたファイルは、それ以外の場合は AMI から除外されま す。これは、機密情報が含まれる可能性があるためです。 必須: いいえ 例: ボリュームマウントポイントが /mnt/myvol/ で、 ファイル /mnt/myvol/foo/bar.pem を含める場合は、i /foo/bar.pem を指定します。 --no-filter 指定した場合、AMI からファイルは除外されません。これ は、機密情報が含まれる可能性があるためです。 必須: いいえ 例: --no-filter -p, --prefix prefix バンドル済み AMI ファイルのファイル名プレフィックス。 デフォルト: image 必須: いいえ 例: -p my-image-is-special -s, --size size 作成するイメージファイルの MB (1024 * 1024 バイト) 単 位のサイズ。最大サイズは 10240 MB です。 デフォルト: 10240 必須: いいえ 例: -s 2048 --[no-]inherit イメージがインスタンスのメタデータを継承するかどうか を示します (デフォルトでは継承します)。--inherit を 有効にし、インスタンスメタデータにアクセスできない場 合、バンドルは失敗します。 必須: いいえ 例: --inherit -v, --volume volume バンドルを作成する、マウントされたボリュームへの絶対 パス。 デフォルト: ルートディレクトリ (/) 必須: いいえ 例: -v /mnt/my-customized-ami 109 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 -P, --partition type ディスクイメージでパーティションテーブルを使用するか どうかを示します。パーティションテーブルタイプを指定 しない場合、デフォルトでは、該当する場合はボリューム の親ブロックデバイスで使用されるタイプになります。そ れ以外の場合、デフォルトは gpt です。 有効な値: mbr | gpt | none 必須: いいえ 例: --partition gpt -S, --script script バンドルの直前に実行するカスタマイズスクリプト。スク リプトでは単一の引数である、ボリュームのマウントポイ ントが予期されます。 必須: いいえ --fstab path イメージにバンドルする fstab へのパス。これを指定しな い場合、Amazon EC2 は /etc/fstab をバンドルします。 必須: いいえ 例: --fstab /etc/fstab --generate-fstab Amazon EC2 で提供される fstab を使用してボリュームを バンドルします。 必須: いいえ 例: --generate-fstab --grub-config イメージにバンドルする別の grub 設定ファイルへのパ ス。デフォルトでは、ec2-bundle-vol は /boot/grub/ menu.lst または /boot/grub/grub.conf が、クローン されたイメージ上に存在することを想定します。このオプ ションにより、別の grub 設定ファイルへのパスを指定す ることができ、このファイルはデフォルトに上書きしてコ ピーされます (存在する場合)。 必須: いいえ 例: --grub-config /path/to/grub.conf --kernel kernel_id 廃止. カーネルを設定するには、register-image を使用しま す。 必須: いいえ 例: --kernel aki-ba3adfd3 --ramdisk ramdisk_id 廃止. 必要に応じて、register-image を使用して RAM ディ スクを設定します。 必須: いいえ 例: --ramdisk ari-badbad00 一般的なオプション ほとんどの AMI ツールに共通のオプションについては、 「AMI ツール用の一般的なオプション (p. 122)」を参照 してください。 出力 バンドルのステージとステータスを説明するステータスメッセージ。 110 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する 例 この例では、ローカルマシンのルートファイルシステムのスナップショットを圧縮、暗号化、署名す ることで、バンドルされた AMI を作成します。 $ ec2-bundle-vol -d /mnt -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c certHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 111122223333 -r x86_64 Copying / into the image file /mnt/image... Excluding: sys dev/shm proc dev/pts proc/sys/fs/binfmt_misc dev media mnt proc sys tmp/image mnt/img-mnt 1+0 records in 1+0 records out mke2fs 1.38 (30-Jun-2005) warning: 256 blocks unused. Splitting /mnt/image.gz.crypt... Created image.part.00 Created image.part.01 Created image.part.02 Created image.part.03 ... Created image.part.22 Created image.part.23 Generating digests for each part... Digests generated. Creating bundle manifest... Bundle Volume complete. ec2-delete-bundle 説明 Amazon S3 ストレージから、指定されたバンドルを削除します。バンドルを削除した後で、対応する AMI からインスタンスを起動することはできません。 構文 ec2-delete-bundle -b bucket -a access_key_id -s secret_access_key [-t token] [--url url] [--region region] [--sigv version] [-m path] [-p prefix] [-clear] [--retry] [-y] オプション オプション 説明 -b, --bucket bucket バンドルされた AMI に続いてオプションの '/' 区切りパス プレフィックスを含む Amazon S3 バケットの名前 必須: はい 111 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 例: -b myawsbucket/ami-001 -a, --access-key access_key_id AWS アクセスキー ID。このオプションの値を指定する前 に、「AWS アクセスキーを管理するためのベストプラク ティス」のガイダンスを確認し、それに従ってください。 必須: はい 例: -a AKIAIOSFODNN7EXAMPLE -s, --secret-key secret_access_key AWS シークレットアクセスキー。このオプションの値を 指定する前に、「AWS アクセスキーを管理するためのベ ストプラクティス」のガイダンスを確認し、それに従って ください。 必須: はい 例: -s wJalrXUtnFEMI/K7MDENG/ bPxRfiCYEXAMPLEKEY -t, --delegation-token token AWS リクエストに渡す委任トークン。詳細について は、一時的なセキュリティ認証情報の使用 を参照してくだ さい。 必須: 一時的なセキュリティ認証情報を使用している場合 のみ。 デフォルト: AWS_DELEGATION_TOKEN 環境変数の値 (設定 されている場合)。 例: -t AQoDYXdzEJr...<remainder of security token> --region region リクエスト署名で使用するリージョン。 デフォルト: us-east-1 必須: 条件付き 条件: 署名バージョン 4 を使用する場合は必須 例; --region eu-west-1 --sigv version リクエストに署名するときに使用する署名バージョン。 有効な値: 2 | 4 デフォルト: 4 必須: いいえ 例: --sigv 2 -m, --manifest path マニフェストファイルへのパス。 必須: 条件付き 条件: --prefix または --manifest を指定する必要が あります。 例: -m /var/spool/my-first-bundle/ image.manifest.xml -p, --prefix prefix バンドルされた AMI ファイル名プレフィックス。プレ フィックス全体を指定します。たとえば、プレフィック スが image.img である場合は、-p image ではなく -p image.img を使用します。 必須: 条件付き 条件: --prefix または --manifest を指定する必要があ ります。 例: -p image.img 112 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 --clear 指定されたバンドルを削除した後で空の場合は、Amazon S3 バケットを削除します。 必須: いいえ 例: --clear --retry すべての Amazon S3 エラーで、オペレーションあたり最 大 5 回まで自動的に再試行します。 必須: いいえ 例: --retry -y, --yes すべてのプロンプトへの答えは yes であると自動的に想定 します。 必須: いいえ 例: -y 一般的なオプション ほとんどの AMI ツールに共通のオプションについては、 「AMI ツール用の一般的なオプション (p. 122)」を参照 してください。 出力 Amazon EC2 は、削除プロセスのステージとステータスを示すステータスメッセージを表示します。 例 この例では、Amazon S3 からバンドルを削除します。 $ ec2-delete-bundle -b myawsbucket -a your_access_key_id s your_secret_access_key Deleting files: myawsbucket/image.manifest.xml myawsbucket/image.part.00 myawsbucket/image.part.01 myawsbucket/image.part.02 myawsbucket/image.part.03 myawsbucket/image.part.04 myawsbucket/image.part.05 myawsbucket/image.part.06 Continue? [y/n] y Deleted myawsbucket/image.manifest.xml Deleted myawsbucket/image.part.00 Deleted myawsbucket/image.part.01 Deleted myawsbucket/image.part.02 Deleted myawsbucket/image.part.03 Deleted myawsbucket/image.part.04 Deleted myawsbucket/image.part.05 Deleted myawsbucket/image.part.06 ec2-delete-bundle complete. ec2-download-bundle 説明 指定された instance store-backed Linux AMI を Amazon S3 ストレージからダウンロードします。 113 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する 構文 ec2-download-bundle -b bucket -a access_key_id -s secret_access_key -k path [--url url] [--region region] [--sigv version] [-m file] [-p prefix] [-d directory] [--retry] オプション オプション 説明 -b, --bucket bucket バンドルが存在する Amazon S3 バケットの名前。この後 に、オプションで '/' 区切りのパスプレフィックスが続きま す。 必須: はい 例: -b myawsbucket/ami-001 -a, --access-key access_key_id AWS アクセスキー ID。このオプションの値を指定する前 に、「AWS アクセスキーを管理するためのベストプラク ティス」のガイダンスを確認し、それに従ってください。 必須: はい 例: -a AKIAIOSFODNN7EXAMPLE -s, --secret-key secret_access_key AWS シークレットアクセスキー。このオプションの値を 指定する前に、「AWS アクセスキーを管理するためのベ ストプラクティス」のガイダンスを確認し、それに従って ください。 必須: はい 例: -s wJalrXUtnFEMI/K7MDENG/ bPxRfiCYEXAMPLEKEY -k, --privatekey path マニフェストの復号に使用されるプライベートキー。 必須: はい 例: -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem --url url Amazon S3 サービスの URL。 デフォルト: https://s3.amazonaws.com 必須: いいえ 例: --url https://s3.example.com --region region リクエスト署名で使用するリージョン。 デフォルト: us-east-1 必須: 条件付き 条件: 署名バージョン 4 を使用する場合は必須 例; --region eu-west-1 --sigv version リクエストに署名するときに使用する署名バージョン。 有効な値: 2 | 4 デフォルト: 4 必須: いいえ 例: --sigv 2 -m, --manifest file マニフェストファイル名 (パスなし)。マニフェスト (-m) ま たはプレフィックス (-p) を指定することをお勧めします。 必須: いいえ 例: -m my-image.manifest.xml 114 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 -p, --prefix prefix バンドル済み AMI ファイルのファイル名プレフィックス。 デフォルト: image 必須: いいえ 例: -p my-image -d, --directory directory ダウンロードしたバンドルが保存されているディレクト リ。ディレクトリが存在している必要があります。 デフォルト: 現在の作業ディレクトリ。 必須: いいえ 例: -d /tmp/my-downloaded-bundle --retry すべての Amazon S3 エラーで、オペレーションあたり最 大 5 回まで自動的に再試行します。 必須: いいえ 例: --retry 一般的なオプション ほとんどの AMI ツールに共通のオプションについては、 「AMI ツール用の一般的なオプション (p. 122)」を参照 してください。 出力 ダウンロードプロセスの多様な段階ステータスを示すメッセージが表示されます。 例 この例では、bundled ディレクトリを作成 (Linux mkdir コマンドを使用) し、myawsbucket Amazon S3 バケットからバンドルをダウンロードします。 $ mkdir bundled $ ec2-download-bundle -b myawsbucket/bundles/bundle_name -m image.manifest.xml -a your_access_key_id -s your_secret_access_key -k pkHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d mybundle Downloading manifest image.manifest.xml from myawsbucket to mybundle/ image.manifest.xml ... Downloading part image.part.00 from myawsbucket/bundles/bundle_name to mybundle/image.part.00 ... Downloaded image.part.00 from myawsbucket Downloading part image.part.01 from myawsbucket/bundles/bundle_name to mybundle/image.part.01 ... Downloaded image.part.01 from myawsbucket Downloading part image.part.02 from myawsbucket/bundles/bundle_name to mybundle/image.part.02 ... Downloaded image.part.02 from myawsbucket Downloading part image.part.03 from myawsbucket/bundles/bundle_name to mybundle/image.part.03 ... Downloaded image.part.03 from myawsbucket Downloading part image.part.04 from myawsbucket/bundles/bundle_name to mybundle/image.part.04 ... Downloaded image.part.04 from myawsbucket Downloading part image.part.05 from myawsbucket/bundles/bundle_name to mybundle/image.part.05 ... Downloaded image.part.05 from myawsbucket Downloading part image.part.06 from myawsbucket/bundles/bundle_name to mybundle/image.part.06 ... 115 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する Downloaded image.part.06 from myawsbucket ec2-migrate-manifest 説明 別のリージョンをサポートするよう instance store-backed Linux AMI (たとえば、証明書、カーネ ル、RAM ディスク) を変更します。 構文 ec2-migrate-manifest -c path -k path -m path {(-a access_key_id s secret_access_key --region region) | (--no-mapping)} [--ec2cert ec2_cert_path] [--kernel kernel-id] [--ramdisk ramdisk_id] オプション オプション 説明 -c, --cert path ユーザーの PEM エンコード RSA パブリックキー証明書 ファイル。 必須: はい 例: -c certHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -k, --privatekey path ユーザーの PEM エンコード RSA キーファイルへのパス。 必須: はい 例: -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem --manifest path マニフェストファイルへのパス。 必須: はい 例: --manifest my-ami.manifest.xml -a, --access-key access_key_id AWS アクセスキー ID。このオプションの値を指定する前 に、「AWS アクセスキーを管理するためのベストプラク ティス」のガイダンスを確認し、それに従ってください。 必須: 条件付き 条件: 自動マッピングを使用する場合は必須です。 例: -a AKIAIOSFODNN7EXAMPLE -s, --secret-key secret_access_key AWS シークレットアクセスキー。このオプションの値を 指定する前に、「AWS アクセスキーを管理するためのベ ストプラクティス」のガイダンスを確認し、それに従って ください。 必須: 条件付き 条件: 自動マッピングを使用する場合は必須です。 例: -s wJalrXUtnFEMI/K7MDENG/ bPxRfiCYEXAMPLEKEY --region region マッピングファイル内で検索するリージョン。 条件: 自動マッピングを使用する場合は必須です。 必須: 条件付き 例: --region eu-west-1 --no-mapping カーネルと RAM ディスクの自動マッピングを無効にしま す。 116 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 移行中、Amazon EC2 は、コピー先リージョン用に設計 されたカーネルと RAM ディスクで、マニフェストファ イルのカーネルと RAM ディスクを置き換えます。--nomapping パラメーターを指定しない場合、ec2-migratebundle は DescribeRegions および DescribeImages オペレーションを使用して、自動化されたマッピングを実 行します。 必須: 条件付き 条件: -a、-s、および --region オプション (自動マッピ ングに使用されます) を指定しない場合は必須です。 --ec2cert path イメージマニフェストの暗号化に使用される Amazon EC2 X.509 パブリックキー証明書へのパス。 us-gov-west-1 および cn-north-1 リージョンではデ フォルト以外のパブリックキー証明書を使用し、その証 明書へのパスは、このオプションで指定する必要がありま す。証明書へのパスは、AMI ツールのインストール方法 によって異なります。Amazon Linux の場合、証明書の場 所は /opt/aws/amitools/ec2/etc/ec2/amitools/ です。「AMI ツールを設定する (p. 101)」で ZIP ファ イルから AMI をインストールした場合、証明書の場所は EC2$EC2_AMITOOL_HOME/etc/ec2/amitools/ です。 デフォルト: ツールによって異なる 必須: us-gov-west-1 および cn-north-1 リージョンの 場合のみ。 例: --ec2cert $EC2_AMITOOL_HOME/etc/ec2/ amitools/cert-ec2.pem --kernel kernel_id 選択するカーネルの ID。 Important カーネルと RAM ディスクではなく PV-GRUB を 使用することをお勧めします。詳細については、 「PV-GRUB」を参照してください。 必須: いいえ 例: --kernel aki-ba3adfd3 --ramdisk ramdisk_id 選択する RAM ディスクの ID。 Important カーネルと RAM ディスクではなく PV-GRUB を 使用することをお勧めします。詳細については、 「PV-GRUB」を参照してください。 必須: いいえ 例: --ramdisk ari-badbad00 一般的なオプション ほとんどの AMI ツールに共通のオプションについては、 「AMI ツール用の一般的なオプション (p. 122)」を参照 してください。 117 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する 出力 バンドルプロセスのステージとステータスを記述するステータスメッセージ。 例 この例では、my-ami.manifest.xml マニフェストで指定された AMI を米国から欧州にコピーしま す。 $ ec2-migrate-manifest --manifest my-ami.manifest.xml --cert cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem --privatekey pkHKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem --region eu-west-1 Backing up manifest... Successfully migrated my-ami.manifest.xml It is now suitable for use in euwest-1. ec2-unbundle 説明 instance store-backed Linux AMI からバンドルを再作成します。 構文 ec2-unbundle -k path -m path [-s source_directory] [-d destination_directory] オプション オプション 説明 -k, --privatekey path PEM エンコードされる RSA キーファイルへのパス。 必須: はい 例: -k $HOME/pk-234242example.pem -m, --manifest path マニフェストファイルへのパス。 必須: はい 例: -m /var/spool/my-first-bundle/Manifest -s, --source source_directory バンドル含むディレクトリ。 デフォルト: 現在のディレクトリ。 必須: いいえ 例: -s /tmp/my-bundled-image -d, --destination destination_directory AMI をバンドル解除するディレクトリ。宛先ディレクトリ が存在している必要があります。 デフォルト: 現在のディレクトリ。 必須: いいえ 例: -d /tmp/my-image 一般的なオプション ほとんどの AMI ツールに共通のオプションについては、 「AMI ツール用の一般的なオプション (p. 122)」を参照 してください。 例 この Linux および UNIX の例では、image.manifest.xml ファイルに指定された AMI をバンドル解 除します。 118 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する $ mkdir unbundled $ ec2-unbundle -m mybundle/image.manifest.xml -k pkHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -s mybundle -d unbundled $ ls -l unbundled total 1025008 -rw-r--r-- 1 root root 1048578048 Aug 25 23:46 image.img 出力 バンドル解除プロセスの多様な段階ステータスを示すメッセージが表示されます。 ec2-upload-bundle 説明 instance store-backed Linux AMI のバンドルを Amazon S3 にアップロードし、アップロードされたオ ブジェクトで適切な ACL を設定します。詳細については、「Instance Store-Backed Linux AMI の作 成」を参照してください。 構文 ec2-upload-bundle -b bucket -a access_key_id -s secret_access_key [-t token] -m path [--url url] [--region region] [--sigv version] [--acl acl] [-d directory] [--part part] [--retry] [--skipmanifest] オプション オプション 説明 -b, --bucket bucket バンドルを保存する Amazon S3 バケットの名前。その後 にオプションで '/' 区切りのパスプレフィックスが続きま す。バケットが存在しない場合、バケット名を使用できる 場合はバケットが作成されます。 必須: はい 例: -b myawsbucket/bundles/ami-001 -a, --access-key access_key_id AWS アクセスキー ID。このオプションの値を指定する前 に、「AWS アクセスキーを管理するためのベストプラク ティス」のガイダンスを確認し、それに従ってください。 必須: はい 例: -a AKIAIOSFODNN7EXAMPLE -s, --secret-key secret_access_key お客様の AWS シークレットアクセスキー。このオプショ ンの値を指定する前に、「AWS アクセスキーを管理する ためのベストプラクティス」のガイダンスを確認し、それ に従ってください。 必須: はい 例: -s wJalrXUtnFEMI/K7MDENG/ bPxRfiCYEXAMPLEKEY -t, --delegation-token token AWS リクエストに渡す委任トークン。詳細について は、一時的なセキュリティ認証情報の使用 を参照してくだ さい。 必須: 一時的なセキュリティ認証情報を使用している場合 のみ。 デフォルト: AWS_DELEGATION_TOKEN 環境変数の値 (設定 されている場合)。 119 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 例: -t AQoDYXdzEJr...<remainder of security token> -m, --manifest path マニフェストファイルへのパス。マニフェストファイルは バンドルプロセス中に作成され、バンドルを含むディレク トリにあります。 必須: はい 例: -m image.manifest.xml --url url 廃止. バケットの場所が (eu-west-1 ではなく) EU に制約 されない限り、代わりに --region オプションを使用しま す。--location フラグは、その特定の場所の制限を対象 にする唯一の方法です。 Amazon S3 エンドポイントサービスの URL。 デフォルト: https://s3.amazonaws.com 必須: いいえ 例: --url https://s3.example.com --region region 宛先の Amazon S3 バケットに対してリクエスト署名を使 用するリージョン。 • バケットが存在せず、リージョンを指定しない場合、 ツールは (us-east-1 で) 場所の制約のないバケットを 作成します。 • バケットが存在しない場合にリージョンを指定すると、 ツールは、指定したリージョンでバケットを作成しま す。 • バケットが存在し、リージョンを指定しない場合、ツー ルはバケットの場所を使用します。 • バケットが存在し、リージョンとして us-east-1 を指 定すると、ツールはエラーメッセージなしでバケットの 実際の場所を使用し、一致する既存のファイルは上書き されます。 • バケットが存在し、バケットの実際の場所に一致しない (us-east-1 以外の) リージョンを指定すると、ツール はエラーで終了します。 バケットが (eu-west-1 ではなく) EU の場所に制約され ている場合は、代わりに --location フラグを使用しま す。--location フラグは、その特定の場所の制限を対象 にする唯一の方法です。 デフォルト: us-east-1 必須: 条件付き 条件: 署名バージョン 4 を使用する場合は必須 例; --region eu-west-1 --sigv version リクエストに署名するときに使用する署名バージョン。 有効な値: 2 | 4 デフォルト: 4 必須: いいえ 例: --sigv 2 120 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する オプション 説明 --acl acl バンドルされたイメージのアクセスコントロールリストの ポリシー。 有効な値: public-read | aws-exec-read デフォルト: aws-exec-read 必須: いいえ 例: --acl public-read -d, --directory directory バンドルされた AMI 部分を含むディレクトリ。 デフォルト: マニフェストファイルを含むディレクトリ (-m オプションを参照)。 必須: いいえ 例: -d /var/run/my-bundle --part part 指定された部分とそれ以降のすべての部分のアップロード を開始します。 必須: いいえ 例: --part 04 --retry すべての Amazon S3 エラーで、オペレーションあたり最 大 5 回まで自動的に再試行します。 必須: いいえ 例: --retry --skipmanifest マニフェストをアップロードしません。 必須: いいえ 例: --skipmanifest --location location 廃止. バケットの場所が (eu-west-1 ではなく) EU に制約 されない限り、代わりに --region オプションを使用しま す。--location フラグは、その特定の場所の制限を対象 にする唯一の方法です。 宛先 Amazon S3 バケットの場所の制約。バケットが存在 し、バケットの実際の場所に一致しない場所を指定する場 合、ツールはエラーで終了します。バケットが存在し、場 所を指定しない場合、ツールはバケットの場所を使用しま す。バケットが存在しない場合に場所を指定すると、ツー ルは、指定した場所でバケットを作成します。バケットが 存在せず、場所を指定しない場合、ツールは (us-east-1 で) 場所の制約のないバケットを作成します。 デフォルト: --region が指定された場合、場所はその指 定したリージョンに設定されます。--region を指定しな い場合、場所はデフォルトで us-east-1 になります。 必須: いいえ 例: --location eu-west-1 一般的なオプション ほとんどの AMI ツールに共通のオプションについては、 「AMI ツール用の一般的なオプション (p. 122)」を参照 してください。 121 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する 出力 Amazon EC2 は、アップロードプロセスのステージとステータスを示すステータスメッセージを表示 します。 例 この例では、image.manifest.xml マニフェストで指定されたバンドルをアップロードします。 $ ec2-upload-bundle -b myawsbucket/bundles/bundle_name -m image.manifest.xml -a your_access_key_id -s your_secret_access_key Creating bucket... Uploading bundled image parts to the S3 bucket myawsbucket ... Uploaded image.part.00 Uploaded image.part.01 Uploaded image.part.02 Uploaded image.part.03 Uploaded image.part.04 Uploaded image.part.05 Uploaded image.part.06 Uploaded image.part.07 Uploaded image.part.08 Uploaded image.part.09 Uploaded image.part.10 Uploaded image.part.11 Uploaded image.part.12 Uploaded image.part.13 Uploaded image.part.14 Uploading manifest ... Uploaded manifest. Bundle upload completed. AMI ツール用の一般的なオプション このセクションで説明するほとんどのコマンドでは、次の表に示すオプションのパラメーターを使用 できます。 オプション 説明 --help, -h ヘルプメッセージを表示します。 --version バージョンと著作権表記を表示します。 --manual 手動のエントリを表示します。 --batch インタラクティブなプロンプトを制約するバッチモードで 実行します。 --debug 問題のトラブルシューティング時に役立つ可能性があるデ バッグ情報を表示します。 デジタル署名用証明書の管理 このセクションでは、署名証明書 (X.509 証明書としても知られる) の作成および管理方法を説明しま す。これらの証明書は、特定の AMI ツールコマンドで必須です。 122 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する Important Amazon EC2 は本来、サービス呼び出しのための SOAP プロトコルをサポートしていまし た。SOAP ベースの呼び出しでは、署名証明書を使用してリクエストにデジタル署名しま す。しかし、Amazon EC2 での SOAP のサポートは廃止されることになったため (「SOAP リクエスト」を参照)、代わりに HTTP クエリリクエストを使用してください。詳細について は、「API リクエストを行う」を参照してください。 認証情報の更新を目的として、各ユーザーに 2 つの証明書を持たせることができます。 Note ユーザー所有の証明書を表示し管理するアクセス権限を与えることができます。詳細につい ては、IAM ユーザーガイド の「Allow Users to Manage Their Own Passwords, Access Keys, and Signing Certificate」を参照してください。 トピック • ユーザー署名証明書の作成 (p. 123) • ユーザー署名証明書の管理 (p. 126) ユーザー署名証明書の作成 署名証明書に署名する必要がある場合は、最初に証明書を取得してから、AWS にアップロードしま す。Amazon EC2 の署名証明書作成の API アクションはないため、ユーザー署名証明書の作成には OpenSSL などのサードパーティーツールを使用しなければなりません。 Note AWS マネジメントコンソール 内の認証情報のページを使用することで X.509 証明書を作成 することができますが、これは AWS アカウントのルート認証情報のみに有効な方法となり ます。個別の Amazon EC2 ユーザー用のコンソールを使用して生成された証明書をアップ ロードすることはできません。代わりに、次のセクションで説明しているプロセスを使用し ます。 署名証明書を作成するには、以下を実行する必要があります。 • OpenSSL をインストールおよび設定します。 • プライベートキーを作成します。 • プライベートキーを使用して、証明書を作成します。 • 証明書を AWS にアップロードします。 OpenSSL のインストールと設定 証明書の作成およびアップロードには、SSL および TLS プロトコル対応のツールが必要で す。OpenSSL はオープンソースのツールで、RSA トークンの作成やそのトークンにプライベート キーを署名するための基本的な暗号関数を提供します。OpenSSL がまだインストールされていない場 合、以下の方法に従ってください。 Linux および UNIX への OpenSSL のインストール 1. OpenSSL: Source, Tarballs (http://www.openssl.org/source/) を開きます。 2. 最新のソースと直近にビルドされたパッケージをダウンロードします。 123 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する Windows へ OpenSSL をインストールするには 1. バイナリ (https://wiki.openssl.org/index.php/Binaries) を参照します。 2. 適切な [OpenSSL for Windows] オプションを選択します。 Windows 用のダウンロードページが表示されます。 3. Microsoft Visual C++ 2008 Redistributables をまだインストールしていない場合には、お客様の環 境に適した [Microsoft Visual C++ 2008 Redistributables] リンクを選択して [Download] をクリッ クします。[Microsoft Visual C++ 2008 Redistributable Setup Wizard] に従って操作を進めます。 Note システムに Microsoft Visual C++ 2008 Redistributable パッケージがすでにインストール されているか不明な場合は、まず OpenSSL をインストールしてみます。Microsoft Visual C++ 2008 Redistributable パッケージがまだインストールされていない場合は、OpenSSL インストーラでエラーが表示されます。インストールする OpenSSL のバージョンと一致 したアーキテクチャ (32 ビットまたは 64 ビット) をインストールする必要があります。 4. Microsoft Visual C++ 2008 Redistributable パッケージをインストールしたら、ご利用の環境に適 したバージョンの OpenSSL バイナリを選択し、ローカルにファイルを保存します。[OpenSSL Setup Wizard] を起動します。 5. [OpenSSL Setup Wizard] の手順の従って操作します。 OpenSSL コマンドを使う前に、OS の設定で OpenSSL をインストールした場所を指定する必要があ ります。 Linux または Unix で OpenSSL を設定するには 1. コマンドラインから OpenSSL_HOME 変数の値を設定して、OpenSSL をインストールした場所を 以下のように指定します。 export OpenSSL_HOME=path_to_your_OpenSSL_installation 2. パスに OpenSSL インストールの情報を含めて設定します。 export PATH=$PATH:$OpenSSL_HOME/bin Note export コマンドを使用した環境変数に対する変更は、現在のコマンドラインセッション でのみ有効です。シェル設定ファイルを使用して設定することで、環境変数を永続的に 変更することもできます。詳細については、オペレーティングシステムのドキュメント を参照してください。 Windows で OpenSSL を設定するには 1. 2. [コマンドプロント] ウィンドウを開きます。 OpenSSL_HOME 変数の値を設定して、OpenSSL をインストールした場所を指定します。 set OpenSSL_HOME=path_to_your_OpenSSL_installation 3. OpenSSL_CONF 変数の値を設定して、OpenSSL インストールのコンフィギュレーションファイ ルの場所を指定します。 set OpenSSL_CONF=path_to_your_OpenSSL_installation\bin\openssl.cfg 124 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する 4. パスに OpenSSL インストールの情報を含めて設定します。 set Path=%Path%;%OpenSSL_HOME%\bin Note [Command Prompt] ウィンドウで Windows 環境変数を変更した場合、その変更は現在 のコマンドラインセッションにおいてのみ有効になります。環境変数を永続的に変更 するには、環境変数をシステムプロパティとして設定する必要があります。お使いの Windows のバージョンにより手順が異なりますが、詳細については、Windows のドキュ メントを参照してください。 プライベートキーの作成 ユーザー署名証明書作成の際、一意のプライベートキーが必要となります。 プライベートキーを作成するには 1. コマンドラインで、以下の構文と共にコマンド openssl genrsa を使用します。 openssl genrsa 2048 > private-key.pem private-key.pem にはファイル名を特定してください。例では、2048 は 2048 ビットの暗号化 を表しています。AWS では 1024 ビットおよび 4096 ビットの暗号化についてもサポートしてい ます。2048 ビットまたは 4096 ビット RSA キーの作成を推奨しています。 2. Auto Scaling、CloudWatch、または Elastic Load Balancing 用の CLI コマンドの認証のために証 明書を使用する場合は、次のコマンドを使用して PKCS8 形式で証明書を生成してください。 openssl pkcs8 -topk8 -nocrypt -inform PEM -in private-key.pem out private-key-in-PKCS8-format.pem ユーザー署名証明書の作成 ユーザー署名証明書の作成が可能です。 ユーザー署名証明書を作成するには • openssl req コマンドを次のパラメーターと共に使用します。 openssl req -new -x509 -nodes -sha256 -days 365 -key private-key.pem outform PEM -out certificate.pem private-key.pem には、前述の手順で作成された .pem ファイルを使用しま す。certificate.pem には、証明書作成を希望するファイル名を使用します。証明書は .pem フォーマットでなければなりません。セキュリティのため、この例のように SHA-256 または SHA-512 をハッシュアルゴリズムとして使用することをお勧めします。 例では、-days 365 スイッチにより 365 日有効な証明書が特定されています。その他のスイッ チの詳細については、コマンドラインで openssl req -h を入力してください。 OpenSSL では、以下のようなメッセージが表示されます。 You are about to be asked to enter information that will be incorporated into your certificate request. 125 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI ツールを設定する What you are about to DN. There are quite a few For some fields there If you enter '.', the enter is what is called a Distinguished Name or a fields but you can leave some blank. will be a default value. field will be left blank. ユーザー署名証明書を作成しているため (サーバー証明書ではない)、入力を指示された場合で も、すべての値を空白のまま残すことができます。これらの値は、サーバー証明書の真偽確認用 として認証局 (CA) に使用されるものです。ただし、ユーザー署名証明書が認証セッションにアッ プロードされるため、AWS には、さらに検証するための証明書の情報は必要でなく、パブリック キーとプライベートキーのキーペアのみが要求されます。 .pem ファイルには証明書の値が含まれており、続くアップロード手順中のコピー & ペーストが可能 です。 ユーザー署名証明書のアップロード upload-signing-certificate AWS CLI コマンドを使用して、署名証明書をアップロードできます。証明 書をアップロードするユーザーの名前と、証明書の値が含まれる .pem ファイルへのパスを指定しま す。 aws iam upload-signing-certificate --user-name user-name --certificate-body file://path/to/certificate.pem または、UploadSigningCertificate IAM API アクションを使用します。 Note 証明書のサイズによって署名証明書をアップロードする場合、POST リクエストを使用しま す。 ユーザーは 2 つ以上の署名証明書を持つことはできません。 ユーザー署名証明書の管理 AWS CLI を使用して署名証明書を管理できます。 アクセスキーと同様に、各証明書は、Active または Inactive のどちらかのステータスとなりま す。デフォルト設定では、証明書をアップロードする際のステータスは Active となっています。証 明書をアップロードする際、記録用に保存可能な証明書 ID が返されます。ユーザーの証明書の ID を リストできます。証明書の削除はいつでも行うことができます。 ユーザーの証明書を表示するには、list-signing-certificates AWS CLI コマンドを使用します。 aws iam list-signing-certificates --user-name user-name ユーザーの署名証明書を無効化または再有効化するには、update-signing-certificate AWS CLI コマン ドを使用します。次のコマンドは証明書を無効にします。 aws iam update-signing-certificate --certificateid OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE --status Inactive --user-name user-name 証明書を削除するには、delete-signing-certificate AWS CLI コマンドを使用します。 aws iam delete-signing-certificate --user-name user-name --certificateid OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE 126 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する または、以下の IAM API アクションを使用できます。 • ListSigningCertificates • UpdateSigningCertificate • DeleteSigningCertificate Instance Store-Backed インスタンスから AMI を作 成する 次の手順では、instance store-backed インスタンスから instance store-backed AMI を作成します。開 始する前に、必ず「前提条件 (p. 101)」を参照してください。 トピック • Instance Store-Backed Amazon Linux インスタンスから AMI を作成する (p. 127) • Instance Store-Backed Ubuntu インスタンスから AMI を作成する (p. 131) Instance Store-Backed Amazon Linux インスタンスから AMI を作成する このセクションでは、Amazon Linux インスタンスからの AMI の作成について説明します。以下の手 順は、他の Linux ディストリビューションを実行するインスタンスでは機能しない可能性がありま す。Ubuntu 固有の手順については、「Instance Store-Backed Ubuntu インスタンスから AMI を作成 する (p. 131)」を参照してください。 Amazon EC2 AMI ツールの使用準備を整えるには (HVM インスタンスのみ) 1. Amazon EC2 AMI ツールでは、GRUB のレガシーが正常に起動する必要があります。次のコマン ドを使用して GRUB をインストールします。 [ec2-user ~]$ sudo yum install -y grub 2. 次のコマンドを使用して、パーティション管理パッケージをインストールします。 [ec2-user ~]$ sudo yum install -y gdisk kpartx parted Instance Store-Backed Linux インスタンスから AMI を作成するには この手順では、「前提条件 (p. 101)」に記載された前提条件が満たされていることを前提としていま す。 1. インスタンスに認証情報をアップロードします。Amazon ではこれらの認証情報を使用して、お 客様と Amazon EC2 だけがお客様の AMI にアクセスできるようにします。 a. 次のように、認証情報のための一時ディレクトリをインスタンスに作成します。 [ec2-user ~]$ mkdir /tmp/cert それにより、作成したイメージから認証情報を除外できます。 b. scp (p. 316) などの安全なコピーツールを使用して、コンピュータからインスタンスの / tmp/cert ディレクトリに X.509 証明書と対応するプライベートキーをコピーします。次の 127 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する scp コマンドの -i my-private-key.pem オプションは、X.509 プライベートキーではな く、SSH でインスタンスに接続するために使用するプライベートキーです。以下に例を示し ます。 you@your_computer:~ $ scp -i my-private-key.pem / path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem / path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem [email protected]:/tmp/cert/ pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00 cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 685 0.7KB/s 00:00 または、これらがプレーンテキストファイルの場合、証明書とキーをテキストエディタで開き、 コンテンツを /tmp/cert の新しいファイルにコピーできます。 2. インスタンス内から ec2-bundle-vol (p. 107) コマンドを実行して、Amazon S3 にアップロードするバンドルを準備します。-e オプションを指定して、認証情報 を保存するディレクトリを除外します。デフォルトでは、バンドルプロセスで機 密情報を含んでいる可能性があるファイルを除外します。そのようなファイルに は、*.sw、*.swo、*.swp、*.pem、*.priv、*id_rsa*、*id_dsa*、*.gpg、*.jks、*/.ssh/ authorized_keys、*/.bash_history があります。これらのファイルをすべて含めるに は、--no-filter オプションを使用します。これらのファイルの一部を含めるには、-include オプションを使用します。 Important AMI バンドルプロセスは、デフォルトで、ルートボリュームを表す /tmp ディレクト リに、圧縮され暗号化された一連のファイルを作成します。バンドルを格納するのに 十分な空きディスク領域が /tmp にない場合、-d /path/to/bundle/storage オプ ションを使用して、バンドルを格納する別の場所を指定する必要があります。インス タンスによっては、エフェメラルストレージが /mnt または /media/ephemeral0 に マウントされて使用可能になっている場合があります。あるいは、バンドルを格納する 新しい Amazon EBS ボリュームを作成 (p. 767)、アタッチ (p. 772)、およびマウン ト (p. 773)することもできます。 a. ec2-bundle-vol コマンドは、root として実行する必要があります。ほとんどのコマンド で、sudo を使用することでアクセス許可を昇格させることができますが、この場合は、環境 変数を維持するために sudo -E su を実行する必要があります。 [ec2-user ~]$ sudo -E su これで、bash プロンプトにより root ユーザーとして識別されるようになったことと、root シェルにいることを示すハッシュタグにドル記号が置き換えられたことに注意してくださ い。 [root ec2-user]# b. AMI バンドルを作成するには、次のパラメーターを使用して ec2-bundle-vol (p. 107) コマ ンドを実行します。 -c -k RSA 証明書のパスとファイル名 RSA 証明書のプライベートキーのパスとファイル名 128 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する --パーティション パーティションの種類: mbr、gpt、または none。HVM インスタンスの AMI は、これが ないと起動しません。 -r -u -e -d CPU アーキテクチャ: i386 または x86_64。これを確認には、arch コマンドを実行し ます。 AWS ユーザーアカウント ID 作成されるイメージから除外するディレクトリのカンマ区切りのリスト。 デフォルトディレクトリ /tmp にバンドルを収容する十分な領域がない場合、十分な領 域のあるディレクトリへのパスが示されます。 このコマンドと使用可能なオプションの詳細については、「ec2-bundle-vol (p. 107)」を参 照してください。 サンプルコマンドを以下に示します。 [root ec2-user]# $EC2_AMITOOL_HOME/bin/ec2-bundle-vol -k /tmp/ cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c /tmp/cert/certHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u your_aws_account_id -r x86_64 -e /tmp/cert --partition gpt イメージの作成には数分かかります。このコマンドが完了すると、/tmp (またはデフォルト 以外) ディレクトリにバンドル (image.manifest.xml と複数の image.part.xx ファイル) が含まれます。 c. root シェルを終了します。 [root ec2-user]# exit 3. (オプション) AMI 用の image.manifest.xml ファイルで、ブロックデバイスマッピングを編集 します。instance store-backed AMI は、AMI の作成時にブロックデバイスマッピングでインスタ ンスストアボリュームのみを指定でき、これらのマッピングは image.manifest.xml ファイル で指定されます。詳細については、「ブロックデバイスマッピング (p. 867)」を参照してくださ い。 Note このステップは、AMI に 1 つ以上のインスタンスストアボリュームを追加する場合にの み必要です。 a. image.manifest.xml ファイルのバックアップを作成します。 [ec2-user ~]$ sudo cp /tmp/image.manifest.xml /tmp/ image.manifest.xml.bak b. image.manifest.xml ファイルの形式を変更し、読み取りと編集が簡単になるようにしま す。 [ec2-user ~]$ sudo xmllint --format /tmp/image.manifest.xml.bak > sudo /tmp/image.manifest.xml 129 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する c. テキストエディタで image.manifest.xml のブロックデバイスマッピングを編集します。 次の例は、ephemeral1 インスタンスストアボリュームの新しいエントリを示しています。 <block_device_mapping> <mapping> <virtual>ami</virtual> <device>sda</device> </mapping> <mapping> <virtual>ephemeral0</virtual> <device>sdb</device> </mapping> <mapping> <virtual>ephemeral1</virtual> <device>sdc</device> </mapping> <mapping> <virtual>root</virtual> <device>/dev/sda1</device> </mapping> </block_device_mapping> d. 4. image.manifest.xml ファイルを保存し、テキストエディタを終了します。 バンドルを Amazon S3 にアップロードするには、次のパラメーターを使用して ec2-uploadbundle (p. 119) コマンドを実行します。 -b -m -自 -s S3 バケットの場所: my-s3-bucket/bundle_folder/bundle_name。バケットとフォル ダーのパスがない場合、コマンドによって作成されます。 image.manifest.xml へのパス。Step 2 (p. 128) で -d /path/to/bundle/storage を 使用してパスを指定した場合は、このパラメーターで同じパスを使用します。 AWS アカウントアクセスキー ID お客様の AWS アカウントシークレットアクセスキー --リージョン 米国東部(バージニア北部) 以外のリージョンで AMI を登録する予定の場合、--region オ プションと、すでにターゲットリージョンに存在するバケットパス、またはターゲットリー ジョンで作成できる一意のバケットパスの両方でターゲットリージョンを指定する必要があ ります。 このコマンドと使用可能なオプションの詳細については、「ec2-upload-bundle (p. 119)」を参 照してください。 サンプルコマンドを以下に示します。 [ec2-user ~]$ ec2-upload-bundle -b my-s3-bucket/bundle_folder/bundle_name -m /tmp/image.manifest.xml -a your_access_key_id s your_secret_access_key 5. (オプション) バンドルを Amazon S3 にアップロードしたら、次の rm コマンドを使用して、イン スタンスの /tmp ディレクトリからバンドルを削除できます。 130 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する Note Step 2 (p. 128) で -d /path/to/bundle/storage オプションを使用してパスを指定 した場合は、次のコマンドで /tmp ではなく同じパスを使用します。 [ec2-user ~]$ sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image 6. AMI を登録するには、次のパラメーターを使用して register-image AWS CLI コマンドを実行しま す。 --image-location my-s3-bucket/bundle_folder/bundle_name/image.manifest.xml --name AMI の名前 --virtualization-type 指定できる値は hvm および paravirtual です。 --リージョン ec2-upload-bundle (p. 119) コマンドでリージョンを以前に指定した場合は、このコマンド でもう一度そのリージョンを指定します。 このコマンドと使用可能なオプションの詳細については、AWS Command Line Interface Referenceの「register-image」を参照してください。 サンプルコマンドを以下に示します。 [ec2-user ~]$ aws ec2 register-image --image-location my-s3bucket/bundle_folder/bundle_name/image.manifest.xml --name AMI_name -virtualization-type hvm Instance Store-Backed Ubuntu インスタンスから AMI を作成 する このセクションでは、Ubuntu Linux インスタンスからの AMI の作成について説明します。以下の手 順は、他の Linux ディストリビューションを実行するインスタンスでは機能しない可能性がありま す。Amazon Linux 固有の手順については、「Instance Store-Backed Amazon Linux インスタンスから AMI を作成する (p. 127)」を参照してください。 Amazon EC2 AMI ツールの使用準備を整えるには (HVM インスタンスのみ) Amazon EC2 AMI ツールでは、GRUB のレガシーが正常に起動する必要があります。ただし、Ubuntu は GRUB 2 を使用するように設定されています。インスタンスで GRUB のレガシーを使用している かどうか確認し、使用していない場合はインストールして設定する必要があります。 AMI ツールが正常に機能するためには、HVM インスタンスにパーティションツールがインストールさ れている必要もあります。 1. GRUB Legacy (バージョン 0.9x 未満) をインスタンスにインストールする必要がありま す。GRUB Legacy が存在していることを確認し、必要な場合はインストールしてください。 a. GRUB インストールのバージョンを確認します。 ubuntu:~$ grub-install --version 131 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する grub-install (GRUB) 1.99-21ubuntu3.10 この例では、GRUB バージョンが 0.9x よりも大きいため、GRUB のレガシーをインストー ルする必要があります。Step 1.b (p. 132) に進みます。GRUB Legacy が既にある場合、 「Step 2 (p. 132)」までスキップできます。 b. 次のコマンドを使用して grub パッケージをインストールします。 ubuntu:~$ sudo apt-get install -y grub インスタンスで GRUB Legacy が使用されていることを確認します。 ubuntu:~$ grub --version grub (GNU GRUB 0.97) 2. お使いのディストリビューションのパッケージマネージャを使用して、次のパーティション管理 パッケージをインストールします。 • gdisk (ディストリビューションによっては代わりにパッケージ gptfdisk が呼び出される場 合があります)。 • kpartx • parted 次の コマンドを使用します。 ubuntu:~$ sudo apt-get install -y gdisk kpartx parted 3. インスタンスのカーネルパラメーターを確認します。 ubuntu:~$ cat /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-3.2.0-54-virtual root=UUID=4f392932-ed93-4f8faee7-72bc5bb6ca9d ro console=ttyS0 xen_emul_unplug=unnecessary カーネルおよびルートデバイスのパラメーター ro、console=ttyS0、および xen_emul_unplug=unnecessary を書き留めます。オプションは異なる場合があります。 4. /boot/grub/menu.lst のカーネル エントリを確認します。 ubuntu:~$ grep ^kernel /boot/grub/menu.lst kernel /boot/vmlinuz-3.2.0-54-virtual root=LABEL=cloudimg-rootfs ro console=hvc0 kernel /boot/vmlinuz-3.2.0-54-virtual root=LABEL=cloudimg-rootfs ro single kernel /boot/memtest86+.bin console パラメーターが hvc0 をポイントしている (ttyS0 ではない) こと、および xen_emul_unplug=unnecessary パラメーターが未指定であることに注意してください。ここ でも、オプションは異なる場合があります。 5. /boot/grub/menu.lst ファイルを任意のテキストエディタで (vim や nanoなど) で編集して、 コンソールを変更し、先ほど確認したパラメーターをブートエントリに追加します。 title root Ubuntu 12.04.3 LTS, kernel 3.2.0-54-virtual (hd0) 132 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する kernel /boot/vmlinuz-3.2.0-54-virtual root=LABEL=cloudimg-rootfs ro console=ttyS0 xen_emul_unplug=unnecessary initrd /boot/initrd.img-3.2.0-54-virtual title Ubuntu 12.04.3 LTS, kernel 3.2.0-54-virtual (recovery mode) root (hd0) kernel /boot/vmlinuz-3.2.0-54-virtual root=LABEL=cloudimg-rootfs ro single console=ttyS0 xen_emul_unplug=unnecessary initrd /boot/initrd.img-3.2.0-54-virtual title root kernel 6. Ubuntu 12.04.3 LTS, memtest86+ (hd0) /boot/memtest86+.bin カーネルエントリに適切なパラメーターが含まれていることを確認します。 ubuntu:~$ grep ^kernel /boot/grub/menu.lst kernel /boot/vmlinuz-3.2.0-54-virtual root=LABEL=cloudimg-rootfs ro console=ttyS0 xen_emul_unplug=unnecessary kernel /boot/vmlinuz-3.2.0-54-virtual root=LABEL=cloudimg-rootfs ro single console=ttyS0 xen_emul_unplug=unnecessary kernel /boot/memtest86+.bin 7. (Ubuntu 14.04 以降のみ) Ubuntu 14.04 で起動する instance store backed Ubuntu AMI は GPT の パーティションテーブルおよび /boot/efi にマウントされた別の EFT のパーティションを使用 します。ec2-bundle-vol コマンドはこの起動パーティションをバンドルしません。そのため、次 の例に示すように EFI のパーティションの /etc/fstab エントリをコメントアウトする必要があ ります。 LABEL=cloudimg-rootfs / #LABEL=UEFI /boot/efi /dev/xvdb /mnt auto 2 ext4 defaults 0 0 vfat defaults 0 0 defaults,nobootwait,comment=cloudconfig 0 Instance Store-Backed Linux インスタンスから AMI を作成するには この手順では、「前提条件 (p. 101)」に記載された前提条件が満たされていることを前提としていま す。 1. インスタンスに認証情報をアップロードします。Amazon ではこれらの認証情報を使用して、お 客様と Amazon EC2 だけがお客様の AMI にアクセスできるようにします。 a. 次のように、認証情報のための一時ディレクトリをインスタンスに作成します。 ubuntu:~$ mkdir /tmp/cert それにより、作成したイメージから認証情報を除外できます。 b. scp (p. 316) などの安全なコピーツールを使用して、コンピュータからインスタンスの / tmp/cert ディレクトリに X.509 証明書とプライベートキーをコピーします。次の scp コマ ンドの -i my-private-key.pem オプションは、X.509 プライベートキーではなく、SSH でインスタンスに接続するために使用するプライベートキーです。以下に例を示します。 you@your_computer:~ $ scp -i my-private-key.pem / path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem / 133 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem [email protected]:/tmp/cert/ pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00 cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 685 0.7KB/s 00:00 または、これらがプレーンテキストファイルの場合、証明書とキーをテキストエディタで開き、 コンテンツを /tmp/cert の新しいファイルにコピーできます。 2. インスタンス内から ec2-bundle-vol (p. 107) コマンドを実行して、Amazon S3 にアップロードするバンドルを準備します。-e オプションを指定して、認証情報 を保存するディレクトリを除外します。デフォルトでは、バンドルプロセスで機 密情報を含んでいる可能性があるファイルを除外します。そのようなファイルに は、*.sw、*.swo、*.swp、*.pem、*.priv、*id_rsa*、*id_dsa*、*.gpg、*.jks、*/.ssh/ authorized_keys、*/.bash_history があります。これらのファイルをすべて含めるに は、--no-filter オプションを使用します。これらのファイルの一部を含めるには、-include オプションを使用します。 Important AMI バンドルプロセスは、デフォルトで、ルートボリュームを表す /tmp ディレクト リに、圧縮され暗号化された一連のファイルを作成します。バンドルを格納するのに 十分な空きディスク領域が /tmp にない場合、-d /path/to/bundle/storage オプ ションを使用して、バンドルを格納する別の場所を指定する必要があります。インス タンスによっては、エフェメラルストレージが /mnt または /media/ephemeral0 に マウントされて使用可能になっている場合があります。あるいは、バンドルを格納する 新しい Amazon EBS ボリュームを作成 (p. 767)、アタッチ (p. 772)、およびマウン ト (p. 773)することもできます。 a. ec2-bundle-vol コマンドは、root として実行する必要があります。ほとんどのコマンド で、sudo を使用することでアクセス許可を昇格させることができますが、この場合は、環境 変数を維持するために sudo -E su を実行する必要があります。 ubuntu:~$ sudo -E su これで、bash プロンプトにより root ユーザーとして識別されるようになったことと、root シェルにいることを示すハッシュタグにドル記号が置き換えられたことに注意してくださ い。 root@ubuntu:# b. AMI バンドルを作成するには、次のパラメーターを使用して ec2-bundle-vol (p. 107) コマ ンドを実行します。 -c -k RSA 証明書のパスとファイル名 RSA 証明書のプライベートキーのパスとファイル名 --パーティション パーティションの種類: mbr、gpt、または none。Ubuntu 14.04 以降の HVM インスタ ンスの場合、--partition mbr フラグを追加して起動手順を正しくバンドルします。 それ以外の場合は、新しく作成された AMI は起動しません。 -r CPU アーキテクチャ: i386 または x86_64。これを確認には、arch コマンドを実行し ます。 134 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する -u -e -d AWS ユーザーアカウント ID 作成されるイメージから除外するディレクトリのカンマ区切りのリスト。 デフォルトディレクトリ /tmp にバンドルを収容する十分な領域がない場合、十分な領 域のあるディレクトリへのパスが示されます。 このコマンドと使用可能なオプションの詳細については、「ec2-bundle-vol (p. 107)」を参 照してください。 サンプルコマンドを以下に示します。 root@ubuntu:# $EC2_AMITOOL_HOME/bin/ec2-bundle-vol -k /tmp/ cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c /tmp/cert/certHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u your_aws_account_id -r x86_64 -e /tmp/cert --partition gpt イメージの作成には数分かかります。このコマンドが完了すると、tmp ディレクトリにバン ドル (image.manifest.xmlと複数の image.part.xx ファイル) が含まれます。 c. root シェルを終了します。 root@ubuntu:# exit 3. (オプション) AMI 用の image.manifest.xml ファイルで、ブロックデバイスマッピングを編集 します。instance store-backed AMI は、AMI の作成時にブロックデバイスマッピングでインスタ ンスストアボリュームのみを指定でき、これらのマッピングは image.manifest.xml ファイル で指定されます。詳細については、「ブロックデバイスマッピング (p. 867)」を参照してくださ い。 Note このステップは、AMI に 1 つ以上のインスタンスストアボリュームを追加する場合にの み必要です。 a. image.manifest.xml ファイルのバックアップを作成します。 ubuntu:~$ sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak b. image.manifest.xml ファイルの形式を変更し、読み取りと編集が簡単になるようにしま す。 ubuntu:~$ sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/ image.manifest.xml c. テキストエディタで image.manifest.xml のブロックデバイスマッピングを編集します。 次の例は、ephemeral1 インスタンスストアボリュームの新しいエントリを示しています。 <block_device_mapping> <mapping> <virtual>ami</virtual> <device>sda</device> </mapping> <mapping> 135 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed インスタンスから AMI を作成する <virtual>ephemeral0</virtual> <device>sdb</device> </mapping> <mapping> <virtual>ephemeral1</virtual> <device>sdc</device> </mapping> <mapping> <virtual>root</virtual> <device>/dev/sda1</device> </mapping> </block_device_mapping> d. 4. image.manifest.xml ファイルを保存し、テキストエディタを終了します。 バンドルを Amazon S3 にアップロードするには、次のパラメーターを使用して ec2-uploadbundle (p. 119) コマンドを実行します。 -b -m -自 -s S3 バケットの場所: my-s3-bucket/bundle_folder/bundle_name。バケットとフォル ダーのパスがない場合、コマンドによって作成されます。 image.manifest.xml へのパス。Step 2 (p. 134) で -d /path/to/bundle/storage を 使用してパスを指定した場合は、このパラメーターで同じパスを使用します。 AWS アカウントアクセスキー ID お客様の AWS アカウントシークレットアクセスキー --リージョン 米国東部(バージニア北部) 以外のリージョンで AMI を登録する予定の場合、--region オ プションと、すでにターゲットリージョンに存在するバケットパス、またはターゲットリー ジョンで作成できる一意のバケットパスの両方でターゲットリージョンを指定する必要があ ります。 このコマンドと使用可能なオプションの詳細については、「ec2-upload-bundle (p. 119)」を参 照してください。 サンプルコマンドを以下に示します。 ubuntu:~$ ec2-upload-bundle -b my-s3-bucket/bundle_folder/bundle_name -m / tmp/image.manifest.xml -a your_access_key_id -s your_secret_access_key 5. (オプション) バンドルを Amazon S3 にアップロードしたら、次の rm コマンドを使用して、イン スタンスの /tmp ディレクトリからバンドルを削除できます。 Note Step 2 (p. 134) で -d /path/to/bundle/storage オプションを使用してパスを指定 した場合は、次のコマンドで /tmp ではなく同じパスを使用します。 ubuntu:~$ sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image 6. AMI を登録するには、次のパラメーターを使用して register-image AWS CLI コマンドを実行しま す。 136 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EBS-Backed AMI への変換 マニフェストへのパス my-s3-bucket/bundle_folder/bundle_name/image.manifest.xml -n AMI の名前 --virtualization-type 指定できる値は hvm および paravirtual です。 --リージョン ec2-upload-bundle (p. 119) コマンドでリージョンを以前に指定した場合は、このコマンド でもう一度そのリージョンを指定します。 このコマンドと使用可能なオプションの詳細については、AWS Command Line Interface Referenceの「register-image」を参照してください。 サンプルコマンドを以下に示します。 ubuntu:~$ aws ec2 register-image my-s3-bucket/bundle_folder/bundle_name/ image.manifest.xml --name AMI_name --virtualization-type hvm 7. (Ubuntu 14.04 以降のみ) /etc/fstabの EFI エントリをコメント解除します。それ以外の場合、 実行中のインスタンスは再起動できません。 Instance Store-Backed AMI を Amazon EBS-Backed AMI に変換する Instance Store-Backed Linux AMI は、Amazon EBS-Backed Linux AMI に変換できます。 Important Instance Store-Backed Windows AMI から Amazon EBS-Backed Windows AMI への変換、お よび所有していない AMI の変換はできません。 Instance Store-Backed AMI を Amazon EBS-Backed AMI に変換するには 1. Amazon EBS-Backed AMI から Amazon Linux インスタンスを起動します。詳細については、 「インスタンスの作成 (p. 303)」を参照してください。Amazon Linux インスタンスには、AWS CLI と AMI ツールがプリインストールされています。 2. Instance Store-Backed AMI をバンドルするのに使用した X.509 プライベートキーをインスタンス にアップロードします。Amazon はこのキーを使用して、お客様と Amazon EC2 だけがお客様の AMI にアクセスできるようにします。 a. 次のように、X.509 プライベートキーのインスタンスに一時ディレクトリを作成します。 [ec2-user ~]$ mkdir /tmp/cert b. scp などの安全なコピーツールを使用して、コンピュータから /tmp/cert (p. 316) ディレ クトリに X.509 プライベートキーをコピーします。次のコマンドの my-private-key パラ メーターは、SSH でインスタンスに接続するために使用するプライベートキーです。以下に 例を示します。 you@your_computer:~ $ scp -i my-private-key.pem / path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem [email protected]:/tmp/cert/ 137 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EBS-Backed AMI への変換 pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 3. 100% 717 0.7KB/s 00:00 AWS アクセスキーおよび秘密キーの環境変数を設定します。 [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key 4. 新しい AMI の Amazon EBS ボリュームを準備します。 a. create-volume コマンドを使用して、インスタンスと同じアベイラビリティーゾーンに空の Amazon EBS ボリュームを作成します。コマンド出力のボリューム ID を書き留めてくださ い。 Important この Amazon EBS ボリュームは、元のインスタンスストアのルートボリュームと同 じサイズ以上である必要があります。 [ec2-user ~]$ aws ec2 create-volume --size 10 --region us-west-2 -availability-zone us-west-2b b. attach-volume コマンドを使用して、Amazon EBS-Backed インスタンスにボリュームをア タッチします。 [ec2-user ~]$ aws ec2 attach-volume --volume-id volume_id --instanceid instance_id --device /dev/sdb --region us-west-2 5. バンドルのフォルダを作成します。 [ec2-user ~]$ mkdir /tmp/bundle 6. ##########Instance Store-Backe AMI ###### /tmp/bundleec2-downloadbundle (p. 113) にダウンロードします。 [ec2-user ~]$ ec2-download-bundle -b my-s3bucket/bundle_folder/bundle_name -m image.manifest.xml -a $AWS_ACCESS_KEY -s $AWS_SECRET_KEY --privatekey /path/to/pkHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle 7. ec2-unbundle (p. 118) コマンドを使用して、バンドルからイメージファイルを再作成します。 a. バンドルフォルダにディレクトリを変更します。 [ec2-user ~]$ cd /tmp/bundle/ b. ec2-unbundle (p. 118) コマンドを実行します。 [ec2-user bundle]$ ec2-unbundle -m image.manifest.xml --privatekey / path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 8. バンドルを解除したイメージから新しい Amazon EBS ボリュームにファイルをコピーします。 [ec2-user bundle]$ sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M 9. バンドルを解除した新しいパーティションのボリュームを調査します。 138 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EBS-Backed AMI への変換 [ec2-user bundle]$ sudo partprobe /dev/sdb1 10. ブロックデバイスの一覧を表示してマウントするデバイス名を選択します。 [ec2-user bundle]$ lsblk NAME MAJ:MIN RM SIZE /dev/sda 202:0 0 8G ##/dev/sda1 202:1 0 8G /dev/sdb 202:80 0 10G ##/dev/sdb1 202:81 0 10G RO TYPE MOUNTPOINT 0 disk 0 part / 0 disk 0 part この例では、マウントするパーティションは /dev/sdb1ですが、デバイス名はおそらく異なり ます。ボリュームが仕切られていない場合は、マウントするデバイスは /dev/sdb に似ています (デバイスパーティションの末尾に数値なし)。 11. 新しい Amazon EBS ボリュームのマウントポイントを作成し、ボリュームをマウントします。 [ec2-user bundle]$ sudo mkdir /mnt/ebs [ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs 12. EBS ボリュームの /etc/fstab ファイルを任意のテキストエディタ (vim や nano など) で開き、 インスタンスストア (エフェメラル) ボリュームのエントリがあれば削除します。Amazon EBS ボ リュームは /mnt/ebs にマウントされているため、fstab ファイルは /mnt/ebs/etc/fstab に 配置されています。 [ec2-user bundle]$ sudo nano /mnt/ebs/etc/fstab # LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sdb /media/ephemeral0 auto defaults,comment=cloudconfig 0 2 この例では、最後の行を削除する必要があります。 13. ボリュームをアンマウントし、インスタンスからデタッチします。 [ec2-user bundle]$ sudo umount /mnt/ebs [ec2-user bundle]$ aws ec2 detach-volume --volume-id volume_id -region us-west-2 14. 次のように、新しい Amazon EBS ボリュームから AMI を作成します。 a. 新しい Amazon EBS ボリュームのスナップショットを作成します。 [ec2-user bundle]$ aws ec2 create-snapshot --region us-west-2 -description "your_snapshot_description" --volume-id volume_id b. スナップショットが完了していることを確認します。 [ec2-user bundle]$ aws ec2 describe-snapshots --region us-west-2 -snapshot-id snapshot_id 139 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 暗号化されたスナップショットを持つ AMI c. 元の AMI で使用されたプロセッサーアーキテクチャ、仮想化タイプ、カーネルイメー ジ (aki) を、describe-images コマンドを使用して特定します。このステップでは、元の Instance Store-Backed AMI の AMI ID が必要です。 [ec2-user bundle]$ aws ec2 describe-images --region us-west-2 --imageid ami-id --output text IMAGES x86_64 amazon/amzn-ami-pv-2013.09.2.x86_64-s3 ami-8ef297be amazon available public machine aki-fc8f11cc instance-store paravirtual xen この例では、アーキテクチャは x86_64 で、カーネルイメージ ID は aki-fc8f11cc です。 次のステップでこれらの値を使用します。前述のコマンドの出力では ari ID もリストされま すので、これも書き留めます。 d. 新しい Amazon EBS ボリュームのスナップショット ID と前のステップで書き留めた値を使 用して、新しい AMI を登録します。前述のコマンド出力に ari ID がリストされていた場合 は、その ID を次のコマンドで --ramdisk-id ari_id. を使用して指定します。 [ec2-user bundle]$ aws ec2 register-image --region uswest-2 --name your_new_ami_name --block-device-mappings Ebs={SnapshotId=snapshot_id} --virtualization-type hvm --architecture x86_64 --kernel-id aki-fc8f11cc 15. (オプション) 新しい AMI からインスタンスを起動できることをテストした後で、この手順で作成 した Amazon EBS ボリュームを削除できます。 $ aws ec2 delete-volume --volume-id volume_id 暗号化されたスナップショットを持つ AMI Amazon EBS スナップショットを使用した AMI は Amazon EBS 暗号化の利点を活かすことができま す。データおよびルートボリュームの両方のスナップショットを暗号化して AMI にアタッチできま す。 暗号化されたボリュームを持つ EC2 インスタンスは、他のインスタンスと同様に AMI から起動でき ます。 CopyImage アクションを使用して、暗号化されていないスナップショットを持つ AMI から、暗号化 されたスナップショットを持つ AMI を作成できます。デフォルトでは、CopyImage は宛先にコピー を作成するときに元のスナップショットの暗号化ステータスを保持します。ただし、コピー処理のパ ラメーターを設定して宛先のスナップショットも暗号化できます。 スナップショットは、デフォルトの AWS Key Management Service カスタマーマスターキー(CMK)、 または指定したカスタムキーで暗号化できます。いずれの場合も、選択したキーを使用するアクセ ス許可が必要です。暗号化されたスナップショットを持つ AMI が存在する場合は、CopyImage アク ションの一部として異なる暗号化キーでそれを再暗号化することもできます。CopyImage は一度に 1 つのキーのみを使用できます。そのキーにイメージのすべてのスナップショット (ルートでもデータで も) を暗号化します。ただし、手動で複数のキーに暗号化されるスナップショットを持つ AMI を構築 することもできます。 暗号化されたスナップショットを持つ AMI の作成についてのサポートは、Amazon EC2 コンソー ル、Amazon EC2 API、または AWS CLI を使用してアクセス可能です。 CopyImage の暗号化パラメーターは、AWS KMS が使用可能な全リージョンで利用できます。 140 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 暗号化された EBS スナップ ショットを含める AMI シナリオ 暗号化された EBS スナップショットを含める AMI シナリオ AWS マネジメントコンソールまたはコマンドラインを使用して、AMI をコピーすると同時に関連する EBS スナップショットを暗号化できます。 暗号化されたデータスナップショットをともなう AMI のコ ピー このシナリオでは、ステップ 1 に示されるように、EBS-backed AMI に、暗号化されていないルート スナップショットおよび暗号化されたデータスナップショットがあります。ステップ 2 で暗号化パラ メーターを指定しない CopyImage アクションが呼びだされます。その結果、各スナップショットの 暗号化ステータスが保持され、ステップ 3 の宛先 AMI も暗号化されていないルートスナップショット と暗号化されたデータスナップショットにバックアップされます。スナップショットには同じデータ が含まれますが互いに区別され、いずれかの AMI で起動するインスタンスに対する料金と同様に、両 方の AMI のスナップショットに対するストレージコストが発生します。 このように、Amazon EC2 コンソールまたはコマンドラインのいずれかを使用して、単純なコピーを 実行できます。詳細については、「AMI のコピー (p. 143)」を参照してください。 暗号化されたルートスナップショットにバックアップされた AMI のコピー このシナリオでは、ステップ 1 に示すように、Amazon EBS-backed AMI に暗号化されたルートス ナップショットがあります。ステップ 2 で暗号化パラメーターを指定しない CopyImage アクション が呼びだされます。その結果、スナップショットの暗号化ステータスは保持され、ステップ 3 の宛先 AMI も暗号化されたルートスナップショットでバックアップされます。ルートスナップショットには 同一のシステムデータが含まれますが互いに区別され、いずれかの AMI で起動するインスタンスに対 する料金と同様に、両方の AMI のスナップショットに対するストレージコストが発生します。 このように、Amazon EC2 コンソールまたはコマンドラインのいずれかを使用して、単純なコピーを 実行できます。詳細については、「AMI のコピー (p. 143)」を参照してください。 暗号化されていない AMI からの暗号化されたルートスナップ ショットを持つ AMI の作成 このシナリオでは、ステップ 1 に示すように Amazon EBS-backed AMI に暗号化されていないルー トスナップショットがあり、ステップ 3 に示すように暗号化されたルートスナップショットを持 つ AMI が作成されます。ステップ 2 で、CMK の選択を含む 2 つの暗号化パラメーターを指定した 141 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 暗号化された EBS スナップ ショットを含める AMI シナリオ CopyImage アクションが呼び出されます。その結果、ルートスナップショットの暗号化ステータスが 変更され、ターゲット AMI は、元のスナップショットと同じデータを含むが指定されたキーを使用し て暗号化されたルートスナップショットにバックアップされます。いずれかの AMI で起動するインス タンスに対する料金と同様に、両方の AMI でスナップショットのストレージコストが発生します。 Amazon EC2 コンソールまたはコマンドラインを使用して、このようなコピーおよび暗号化オペレー ションを実行できます。詳細については、「AMI のコピー (p. 143)」を参照してください。 実行中のインスタンスからの暗号化されたルートスナップ ショットを持つ AMI の作成 このシナリオでは、実行中の EC2 インスタンスから AMI を作成します。ステップ 1 の実行中インス タンスには暗号化されたルートボリュームがあり、ステップ 3 の作成された AMI には元のボリューム と同じキーに暗号化されたルートスナップショットがあります。CreateImage アクションは暗号化 の有無にかかわらずまったく同じ動作をします。 Amazon EC2 コンソールまたはコマンドラインのいずれかを使用して、実行中の Amazon EC2 イン スタンス (暗号化されたボリュームがあってもなくても) から AMI を作成できます。詳細については、 「Amazon EBS-Backed Linux AMI の作成 (p. 96)」を参照してください。 暗号化されたスナップショットそれぞれに一意の CMK を持つ AMI の作成 このシナリオは、ルートボリュームスナップショット (キー #1 に暗号化) にバックアップされた AMI から始まり、2 つの追加データボリュームスナップショット (キー #2 およびキー #3) がアタッチされ た AMI で終わります。CopyImage アクションは、1 回のオペレーションで 1 つの暗号化キーしか適 用できません。ただし、異なるキーに暗号化された複数のボリュームがアタッチされたインスタンス から AMI を作成することはできます。結果として、AMI にはこれらのキーに暗号化されたスナップ ショットがあり、この新しい AMI から起動されるインスタンスにもまた、これらのキーに暗号化され たボリュームがあります。 この処理の例のステップは、次の図に対応します。 1. キー #1 を使って暗号化されている vol. #1 (ルート) スナップショットにバックアップされたソース AMI から開始します。 2. ソース AMI から EC2 インスタンスを起動します。 3. EBS ボリューム vol. #2 (データ) および vol. #3 (データ) (それぞれキー #2 およびキー #3 に暗号化 された) を作成します。 142 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI のコピー 4. EC2 インスタンスに暗号化されたデータボリュームをアタッチします。 5. これで、EC2 インスタンスには暗号化されたルートボリュームと、2 つの暗号化されたデータボ リュームがあり、すべて異なるキーを使用しています。 6. EC2 インスタンスで CreateImage アクションを使用します。 7. 結果としてターゲット AMI には 3 つの EBS ボリュームである暗号化されたスナップショットがあ り、すべて異なるキーを使用しています。 Amazon EC2 コンソールまたはコマンドラインのいずれかを使用してこの処理を実行できます。詳細 については、次のトピックを参照してください。 • インスタンスの作成 (p. 302) • Amazon EBS-Backed Linux AMI の作成 (p. 96)。 • Amazon EBS ボリューム (p. 752) • AWS Key Management Service Developer Guideの「AWS Key Management」 AMI のコピー CopyImage アクションをサポートする AWS マネジメントコンソール、AWS コマンドラインツー ル、または Amazon EC2 API を使用して、AWS リージョン内または AWS リージョン間で Amazon マシンイメージ (AMI) をコピーできます。Amazon EBS-backed AMI と instance store-backed AMI の 両方をコピーできます。スナップショット暗号化済み AMI と暗号化済み AMI がコピー対象です。 ソース AMI をコピーすると、同一ではあるが独自の識別子を使用するターゲット AMI となりま す。Amazon EBS-backed AMI の場合は、それぞれのバックアップするスナップショットは、デフォ ルトでは、同一だが区別されるターゲットスナップショットにコピーされます (唯一の例外は、スナッ プショットの暗号化を選択した場合です)。ソース AMI は、ターゲット AMI に影響を及ぼさずに変更 または登録解除できます。逆の場合も同様です。 AMI のコピーには課金されません。ただし、標準のストレージ料金とデータ転送料金が適用されま す。 143 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド アクセス許可 AWS は元の AMI から新しい AMI に起動許可、ユーザー定義のタグ、Amazon S3 バケット許可をコ ピーしません。コピー操作が完了すると、起動許可、ユーザー定義のタグ、Amazon S3 バケット許可 を新しい AMI に適用できます。 アクセス許可 IAM ユーザーを使用して instance-store-backed AMI をコ ピーする場合、ユーザーは Amazon S3 のアクセス許可とし て、s3:CreateBucket、s3:GetBucketAcl、s3:ListAllMyBuckets、s3:GetObject、s3:PutObject、および s3:PutObjectAcl を使用する必要があります。 次のポリシー例では、指定されたバケットの AMI ソースを、指定されたリージョンにコピーできま す。 { "Version": "2016-12-09", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": [ "arn:aws:s3:::*" ] }, { "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ami-source-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketAcl", "s3:PutObjectAcl", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amis-for-123456789012-in-us-east-1*" ] } ] } リージョン間での AMI のコピー 地理的に分散したリージョンに AMI をコピーすると、次のような利点があります。 • 一貫性のあるグローバルなデプロイメント: 1 つのリージョンから別のリージョンに AMI をコピー することで、同じ AMI を基にして一貫性のあるインスタンスを別のリージョンに起動できます。 • スケーラビリティ: ユーザーの場所にかかわらず、ユーザーのニーズに合った世界規模のアプリケー ションをより簡単に設計できます。 • パフォーマンス: アプリケーションを配布したり、アプリケーションの重要なコンポーネントをユー ザーの近くに配置したりすることでパフォーマンスを向上できます。また、インスタンスの種類や その他の AWS サービスなど、リージョン固有の機能を活用することもできます。 144 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド アカウント間での AMI のコピー • 高可用性: アプリケーションを設計し、AWS リージョン全体にわたってデプロイして可用性を高め ることができます。 次の図は、ソース AMI と異なるリージョンにある 2 つのコピーされた AMI、およびそこから起動され る EC2 インスタンスの関係を示します。AMI からインスタンスを起動すると、AMI が存在する同じ リージョンに存在します。ソース AMI を変更し、それらの変更をターゲットリージョンの AMI に反 映させる場合、ソース AMI をターゲットリージョンに再度コピーする必要があります。 instance store-backed AMI を最初にリージョンにコピーするときに、そのリージョンにコピーされ た AMI に Amazon S3 バケットを作成します。そのリージョンにコピーするすべての instance storebacked AMI が、このバケットに保存されます。バケット名の形式は次のとおりです: amis-for-#####in-#####-#### (例: amis-for-123456789012-in-us-west-2-yhjmxvp6)。 前提条件 AMI をコピーする前に、ソース AMI のすべてのコンテンツが、異なるリージョンでの実行をサポート するように更新されていることを確認する必要があります。たとえば、データベース接続文字列や同 様のアプリケーション設定データが、適切なリソースを指すように更新する必要があります。それ以 外の場合、対象のリージョンの新しい AMI から起動したインスタンスは元のリージョンのリソースを まだ使用している可能性があり、それによりパフォーマンスとコストに影響が及ぶことがあります。 制限 コピー先のリージョンには、AMI の同時コピーが 50 個までという制限があり、1 つのコピー元リー ジョンからは 25 個までです。この制限の増加をリクエストする方法については、Amazon EC2 サー ビスの制限 (p. 899) を参照してください。 アカウント間での AMI のコピー AWS アカウント間で AMI を共有できます。AMI の共有は AMI の所有権には影響しません。所有して いるアカウントには、リージョンのストレージ料金が適用されます。詳細については、「特定の AWS アカウントと AMI を共有する (p. 86)」を参照してください。 自分のアカウントで共有した AMI をコピーした場合、アカウントのコピー先の AMI の所有者は自分 になります。コピー元の AMI の所有者には、Amazon EBS または Amazon S3 標準転送料金が課金さ れ、コピー先の AMI の所有者には、コピー先リージョンのストレージ料金が課金されます。 リソースのアクセス権限 AMI を別のアカウントから共有した場合、この AMI をコピーするには、関連 EBS スナップショット (Amazon EBS-backed AM; の場合) であっても関連 S3 バケット (instance-store-backed AMI の場合) であっても、コピー元の AMI の所有者から AMI をバックアップするストレージの読み取り権限を付 与してもらう必要があります。 145 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 暗号化と AMI のコピー 制限 • 暗号化された AMI を別のアカウントから共有した場合、これをコピーすることはできません。代わ りに、基になるスナップショットと暗号化キーを共有した場合は、スナップショットを独自のキー で再暗号化してコピーできます。コピーしたスナップショットを自分で所有し、それを新しい AMI として登録できます。 • billingProduct コードと関連付けられた AMI を別のアカウントから共有した場合、これをコ ピーすることはできません。これには Windows AMI、AWS Marketplace の AMI などが含まれま す。billingProduct コードを持つ共有 AMI をコピーするには、その共有 AMI を使用してアカウ ントの EC2 インスタンスを起動し、そのインスタンスから AMI を作成します。詳細については、 「Amazon EBS-Backed Linux AMI の作成 (p. 96)」を参照してください。 暗号化と AMI のコピー AMI のコピー時の暗号化は、Amazon EBS-backed AMI にのみ適用されます。instance store-backed AMI はスナップショットに依存しないため、AMI のコピーを使用して暗号化ステータスを変更するこ とはできません。 AMI のコピーを使用して、暗号化された Amazon EBS スナップショットによってバックアップされ た新しい AMI を作成できます。AMI のコピー時に暗号化を呼び出すと、ルートボリュームを含む関連 Amazon EBS ボリュームの各スナップショットが指定したキーを使用して暗号化されます。暗号化さ れたスナップショットを持つ AMI の使用の詳細については、「暗号化されたスナップショットを持つ AMI (p. 140)」を参照してください。 デフォルトでは、AMI をバックアップするスナップショットは元の暗号化ステータスとともにコピー されます。暗号化されていないスナップショットにバックアップされた AMI をコピーすると、やは り暗号化されていない同一のターゲットスナップショットになります。ソース AMI が暗号化された スナップショットにバックアップされている場合は、コピーすると指定されたキーに暗号化された ターゲットスナップショットになります。複数のスナップショットにバックアップされた AMI をコ ピーした場合は、元の暗号化ステータスが各ターゲットスナップショットで維持されます。複数の スナップショットを持つ AMI のコピーの詳細については、「暗号化されたスナップショットを持つ AMI (p. 140)」を参照してください。 次の表は、各種シナリオにおける暗号化サポートを示します。暗号化されたスナップショットを生成 するために暗号化されていないスナップショットをコピーすることはできますが、暗号化されていな いスナップショットを生成するために暗号化されたスナップショットをコピーすることはできないこ とに注意してください。 シナリオ 説明 サポート対象 1 非暗号化から非暗号化 はい 2 暗号化から暗号化 はい 3 非暗号化から暗号化 はい 4 暗号化から非暗号化 いいえ 暗号化されていないソース AMI の暗号化されていないターゲット AMI へのコピー このシナリオでは、暗号化されていない単一のバックアップスナップショットを持つ AMI のコピー を、指定された地理的リージョン (非表示) に作成します。この図は単一のバックアップスナップ ショットを持つ AMI を示していますが、複数のスナップショットを持つ AMI をコピーすることもで きます。各スナップショットの暗号化ステータスは維持されます。したがって、ソース AMI の暗号化 されていないスナップショットは、ターゲット AMI の暗号化されていないスナップショットになり、 ソース AMI の暗号化されたスナップショットは、ターゲット AMI の暗号化されたスナップショット になります。 146 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI のコピー 暗号化されたソース AMI の暗号化されたターゲット AMI へのコピー このシナリオには暗号化されたスナップショットが含まれますが、機能としては前のシナリオと同じ です。 複数のスナップショット AMI のコピー中に暗号化を適用すると、すべてのターゲットスナップ ショットは、指定されたキーまたは指定がない場合はデフォルトキーを使用して暗号化されます。 暗号化されていないソース AMI の暗号化されたターゲット AMI へのコピー このシナリオでは、AMI のコピーにより、コピー先のイメージの暗号化ステータスが変更されます。 たとえば、暗号化されていないスナップショットが暗号化されます。または、暗号化されたスナップ ショットが別のキーを使用して再暗号化されます。コピー時に暗号化を適用するには、暗号化フラグ とキーを指定する必要があります。ターゲットスナップショットから作成されたボリュームには、こ のキーを使用してのみアクセスできます。 AMI のコピー AMI は次の手順でコピーできます。 前提条件 Amazon EBS スナップショットによってバックアップされた AMI を作成、または取得しま す。Amazon EC2 コンソールを使用して AWS が提供するさまざまな AMI を検索できます。詳細につ いては、「Amazon EBS-Backed Linux AMI の作成 (p. 96)」と「Linux AMI の検索 (p. 81)」を参 照してください。 147 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 保留中の AMI コピー操作を中止する コンソールを使用して AMI をコピーするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. コンソールのナビゲーションバーから、AMI を含むリージョンを選択します。ナビゲーションペ インで、[Images]、[AMIs] の順に選択し、リージョンで利用できる AMI のリストを表示します。 3. コピーする AMI を選択して、[Actions]、[Copy AMI] の順に選択します。 4. [AMI Copy] ページで、下記の情報を指定して、[Copy AMI] を選択します。 • [Destination region]: AMI をコピーするリージョン。 • [Name]: 新しい AMI の名前。この名前にはオペレーティングシステム情報を含めることができ ます (この情報は AMI の詳細としては表示されません)。 • [Description]: デフォルトでは、オリジナルからコピーを見分けられるように、ソース AMI に関 する情報が説明に含まれています。この説明は必要に応じて変更できます。 • [Encryption]: ターゲットスナップショットを暗号化するか、別のキーを使用して再暗号化する 場合は、このフィールドを選択します。 • [Master Key]: ターゲットスナップショットを暗号化するための KMS キー。 5. コピーオペレーションが開始したことを知らせる確認ページが表示され、新しい AMI の ID が提 供されます。 コピーオペレーションの進捗状況をすぐに確認するには、提供されたリンクをクリックしてくだ さい。後で進行状況を確認するには [Done] を選択し、自分の準備ができたときに、ナビゲーショ ンバーを使用してターゲットリージョン (ある場合) を切り替え、AMI のリストから AMI を見つけ ます。 ターゲット AMI の初期ステータスは pending です。ステータスが available になると、オペ レーションは完了します。 コマンドラインを使用して AMI をコピーするには コマンドラインを使用して AMI をコピーする場合は、コピー元のリージョンとコピー先のリージョン の両方を指定する必要があります。コピー元のリージョンは、--source-region パラメーターを使 用して指定します。コピー先のリージョンを指定するには、次の 2 つの方法があります。 • --region パラメーターを使用する。 • 環境変数を設定する。詳細については、「AWS コマンドラインインターフェイスの設定」を参照し てください。 コピー時にターゲットスナップショットを暗号化する場合は、以下の追加のパラメーターを指定する 必要があります。 • ブール、--encrypted • 文字列、--kms-key-id、マスター暗号化キー ID を指定 次のコマンドのいずれかを使用して AMI をコピーできます。これらのコマンドラインインターフェイ スの詳細については、「Amazon EC2 へのアクセス (p. 3)」を参照してください。 • copy-image (AWS CLI) • Copy-EC2Image (AWS Tools for Windows PowerShell) 保留中の AMI コピー操作を中止する 保留中の AMI のコピーは、次の手順で停止できます。 148 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI の登録解除 コンソールを使用して AMI のコピー操作を中止するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションバーのリージョンセレクターから対象のリージョンを選択します。 3. ナビゲーションペインで [AMIs] を選択します。 4. コピーを中止する AMI を選択し、[Actions] および [Deregister] を選択します。 5. 確認を求められたら、[Continue] を選択します。 コマンドラインを使用して AMI コピー操作を中止するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • deregister-image (AWS CLI) • Unregister-EC2Image (AWS Tools for Windows PowerShell) AMI の登録解除 AMI の利用が終わったら、その登録を解除できます。AMI の登録を解除すると、それを使用して新し いインスタンスを起動できなくなります。 AMI の登録を解除しても、AMI から既に起動したインスタンスに影響を与えることはありません。そ のようなインスタンスの使用に対しては引き続き課金されます。そのため、使用が終わったら、イン スタンスを終了することをお勧めします。 AMI のクリーンアップに使用する手順は、Amazon EBS-Backed と Instance Store-Backed で異なりま す。 (インスタンスストアによるサポートが可能な Windows AMI は、Windows Server 2003 用の AMI のみです。) 目次 • Amazon EBS-Backed AMI をクリーンアップする (p. 149) • Instance Store-Backed AMI をクリーンアップする (p. 150) Amazon EBS-Backed AMI をクリーンアップする Amazon EBS でサポートされる AMI の登録を解除しても、AMI 作成プロセス中にインスタンスのルー トボリュームに対して作成されたスナップショットには影響しません。このスナップショットのスト レージは引き続き課金されます。そのため、使用が終わったら、スナップショットは削除することを お勧めします。 次の図は、Amazon EBS-Backed AMI のクリーンアッププロセスについてまとめたものです。 149 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Instance Store-Backed AMI をクリーンアップする Amazon EBS-Backed AMI をクリーンアップするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [AMIs] を選択します。AMI を選択し、その ID を書き留めます。これ は、次のステップで正しいスナップショットを見つけるのに役立ちます。[Actions] を選択し、 [Deregister] を選択します。確認を求められたら、[Continue] を選択します。 AMI の現在のステータスは unavailable です。 Note コンソールでステータスが available から unavailable に変わるまで、または AMI がリストから削除されるまで、数分ほどかかります。ステータスを更新するには、 [Refresh] を選択します。 3. ナビゲーションペインで、[Snapshots] を選択し、スナップショットを選択します ([Description] 列で AMI ID を探します)。[Actions] を選択してから、[Delete Snapshot] を選択します。確認を求 めるメッセージが表示されたら、[Yes, Delete] を選択します。 4. (オプション) AMI から起動したインスタンスの使用が終わったら、それを終了します。ナビゲー ションペインで、[Instances] を選択します。インスタンスを選び、[Actions] を選択し、[Instance State] を選択した後、[Terminate] を選択します。確認を求めるメッセージが表示されたら、[Yes, Terminate] を選択します。 Instance Store-Backed AMI をクリーンアップする Instance Store-Backed AMI の登録を解除しても、AMI の作成時に Amazon S3 にアップロードした ファイルに影響を与えることはありません。Amazon S3 のそれらのファイルの使用に対しては引き続 き課金されます。そのため、使用が終わったら、それらのファイルは削除することをお勧めします。 次の図は、Instance Store-Backed AMI のクリーンアッププロセスをまとめたものです。 150 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon Linux Instance Store-Backed AMI をクリーンアップするには 1. 次のように、deregister-image コマンドを使用して AMI の登録を解除します。 aws ec2 deregister-image --image-id ami_id AMI の現在のステータスは unavailable です。 2. 次のように ec2-delete-bundle (p. 111) (AMI ツール) コマンドを使用して、Amazon S3 のバンド ルを削除します。 ec2-delete-bundle -b myawsbucket/myami -a your_access_key_id s your_secret_access_key -p image 3. (オプション) AMI から起動したインスタンスの使用が終わったら、次のように、terminateinstances コマンドを使用してそれを終了します。 aws ec2 terminate-instances --instance-ids instance_id 4. (オプション) バンドルをアップロードした Amazon S3 バケットの使用が終わったら、バケット を削除できます。Amazon S3 バケットを削除するには、Amazon S3 コンソールを開き、バケッ トを選んで、[Actions] を選択してから、[Delete] を選択します。 Amazon Linux Amazon Linux はアマゾン ウェブ サービス (AWS) が提供します。これは Amazon EC2 上で実行する アプリケーションのために安定した安全で高性能な実行環境を提供できるよう設計されています。ま たこれには、起動設定ツールおよび多くの AWS 人気ライブラリやツールなど、AWS の統合を容易に するいくつかのパッケージも含まれています。AWS は Amazon Linux を実行しているすべてのインス タンスに、現行のセキュリティとメンテナンスの更新を提供します。 Note この Amazon Linux AMI リポジトリ構造は、Amazon Linux AMI のあるバージョンから次の バージョンへのローリング更新を可能にするように、連続的な更新が配信されるように設定 されています。既存のインスタンスを現在のバージョンにロックする方法については、「リ ポジトリの設定 (p. 155)」を参照してください。 Amazon Linux インスタンスを起動するには、Amazon Linux AMI を使用します。AWS は、Amazon Linux AMI を Amazon EC2 ユーザーに追加料金なしで提供しています。 151 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon Linux AMI の検索 トピック • Amazon Linux AMI の検索 (p. 152) • Amazon Linux インスタンスを起動し、それに接続する (p. 152) • Amazon Linux AMI イメージの特定 (p. 152) • 組み込まれている AWS コマンドラインツール (p. 153) • cloud-init (p. 154) • リポジトリの設定 (p. 155) • パッケージの追加 (p. 156) • 参照のためのソースパッケージへのアクセス (p. 157) • アプリケーションの開発 (p. 157) • インスタンスストアアクセス (p. 157) • 製品ライフサイクル (p. 157) • セキュリティの更新 (p. 158) • のサポート (p. 158) Amazon Linux AMI の検索 最新の Amazon Linux AMI のリストについては、「Amazon Linux AMI」を参照してください。 Amazon Linux インスタンスを起動し、それに接続 する 希望する AMI が見つかったら、AMI ID を控えておきます。AMI ID を使ってインスタンスを起動し、 そのインスタンスに接続することができます。 デフォルトでは、Amazon Linux はリモートルート SSH を許可しません。また、パスワード認証は、 パスワードのブルートフォース攻撃を防ぐために無効になっています。Amazon Linux インスタンス への SSH ログインを有効にするには、起動時にキーペアをインスタンスに提供する必要があります。 インスタンスを起動するときに使用するセキュリティグループで、SSH アクセスを許可するよう設定 する必要もあります。デフォルトでは、SSH を使用してリモートログインできる唯一のアカウントは ec2-user です。このアカウントには sudo 特権もあります。リモートルートログインを有効にする 場合は、このログインが、キーペアおよびセカンダリユーザーを使用する場合よりも安全性が低いこ とに注意してください。 Amazon Linux インスタンスの起動と使用についての詳細は、インスタンスの作成 (p. 302) を参照 してください。Amazon Linux インスタンスへの接続についての詳細は、Linux インスタンスへの接 続 (p. 315) を参照してください。 Amazon Linux AMI イメージの特定 各イメージには AMI を特定する一意の /etc/image-id が含まれています。このファイルには、イ メージに関する情報が含まれています。 次は、/etc/image-id ファイルの例です。 [ec2-user ~]$ cat /etc/image-id image_name="amzn-ami-hvm" image_version="2016.09" image_arch="x86_64" image_file="amzn-ami-hvm-2016.09.0.20160923-x86_64.ext4.gpt" image_stamp="43c4-0c27" 152 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 組み込まれている AWS コマンドラインツール image_date="20160923100227" recipe_name="amzn ami" recipe_id="e6502326-ea51-97ff-eeef-0750-1887-836c-cf751774" image_name、image_version、および image_arch 項目は、イメージを作成するときに Amazon が使用したビルドレシピに基づいています。image_stamp は、イメージの作成中に生成されたラン ダムな一意の16進値にすぎません。image_date 項目の形式は YYYYMMDDhhmmss で、イメージを 作成した UTC 時間です。recipe_name と recipe_id は、イメージを作成するときに Amazon が使 用したビルドレシピの名前と ID を参照し、これにより、現在実行中の Amazon Linux バージョンが特 定されます。このファイルは、yum リポジトリから更新をインストールしても変更されません。 Amazon Linux には、インストールされている現在のリリースを示す /etc/system-release ファ イルが含まれています。このファイルは、yum によって更新され、system-release RPM の一部で す。 次は、/etc/system-release ファイルの例です。 [ec2-user ~]$ cat /etc/system-release Amazon Linux AMI release 2016.09 Amazon Linux には、/etc/system-release-cpe 内の機械による読み取りが可能なバー ジョン の /etc/system-release ファイルも含まれます。また、MITRE の CPE 仕様に準拠しています (CPE)。 組み込まれている AWS コマンドラインツール Amazon Linux またはデフォルトリポジトリには、AWS の統合および使用量によく使用される次のコ マンドラインツールが含まれています。 • aws-amitools-ec2 • aws-apitools-as • aws-apitools-cfn • aws-apitools-ec2 • aws-apitools-elb • aws-apitools-iam • aws-apitools-mon • aws-apitools-rds • aws-cfn-bootstrap • aws-cli • aws-scripts-ses Note Amazon Linux (amzn-ami-minimal-*) の最小バージョンには、上記のパッケージが含まれ ていません。これらのパッケージはデフォルトの yum リポジトリから入手でき、次のコマン ドでインストールできます: [ec2-user ~]$ sudo yum install -y package_name aws-apitools-*コマンドラインツールはあらゆる Amazon Linux バージョンに付属しています が、aws-cli コマンドラインツールはすべての Amazon Web Services において共通の操作で利用で き、最終的にサービス特有のツールセットに置き換わる予定です。 153 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド cloud-init IAM ロールを使用して起動したインスタンスの場合、これらのツールの設定を簡素化するために、認 証情報ファイルのインストール後、AWS_CREDENTIAL_FILE、JAVA_HOME、AWS_PATH、PATH、およ び製品固有の環境変数を準備するためのシンプルなスクリプトが組み込まれます。 また、次に説明するように、複数のバージョンの API と AMI ツールをインストールできるように、 これらのツールの希望するバージョンにアクセスするシンボリックリンクを /opt/aws に配置しまし た。 /opt/aws/bin インストールされている各ツールディレクトリにある、/bin ディレクトリへのシンボリックリン ク。 /opt/aws/{apitools|amitools} インストールされた最新バージョンにアタッチされている name-version フォームと name シン ボリックリンクのディレクトリに製品がインストールされます。 /opt/aws/{apitools|amitools}/name/environment.sh /etc/profile.d/aws-apitools-common.sh により使用され、EC2_HOME などの製品固有の 環境変数を設定します。 cloud-init cloud-init パッケージは、Canonical によって構築されたオープンソースアプリケーションであ り、Amazon EC2 などのクラウドコンピューティング環境で Linux イメージをブートストラップする ときに使用されます。Amazon Linux にはカスタマイズされたバージョンの cloud-init が含まれて います。これにより、起動時のインスタンスに対するアクションを指定することができます。インス タンスの起動時に、ユーザーデータフィールドを使用して必要なアクションを cloud-init に渡す ことができます。つまり、さまざまなユースケースに対して共通の AMI を使用し、起動時にその AMI を動的に設定できます。また、Amazon Linux は cloud-init を使用して、ec2-user アカウントの 初期設定を実行します。 cloud-init の詳細については、http://cloudinit.readthedocs.org/en/latest/ を参照してください。 Amazon Linux は次の cloud-init アクションを使用します (/etc/sysconfig/cloudinit で設定 できます)。 • action: INIT (常に実行) • デフォルトロケールの設定 • ホスト名の設定 • ユーザーデータの解析と処理を行う • アクション: CONFIG_SSH • ホスト プライベート SSH キーを生成する • 容易にログインおよび管理できるように、ユーザーのパブリック SSH キーを .ssh/ authorized_keys に追加する • アクション: PACKAGE_SETUP • yum repo を準備する • ユーザーデータで定義されたパッケージアクションの処理 • アクション: RUNCMD • シェルコマンドの実行 • アクション: RUN_USER_SCRIPTS • ユーザーデータにあるユーザースクリプトの実行 • アクション: CONFIG_MOUNTS • エフェメラルドライブのマウント • アクション: CONFIG_LOCALE 154 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リポジトリの設定 • ユーザーデータに基づく、ロケール設定ファイルのロケールを設定する サポートされているユーザーデータ形式 cloud-init パッケージでは、さまざまな形式のユーザーデータを処理できます。 • Gzip • ユーザーデータが gzip で圧縮されている場合、cloud-init はデータを解凍し、適切に処理しま す。 • MIME マルチパート • MIME マルチパートファイルを使用して、複数のデータタイプを指定できます。たとえば、ユー ザーデータスクリプトとクラウド設定タイプの両方を指定できます。マルチパートファイルの パートの形式がサポートされている形式のいずれかの場合、そのパートは cloud-init で処理で きます。 • Base64 デコード • ユーザーデータが base64 でエンコードされている場合、cloud-init は、デコードされたデー タをサポートされているタイプのいずれかとして認識できるか確認します。デコードされたデー タを認識できる場合、データをデコードし、適切に処理します。認識できない場合、base64 デー タは変更されません。 • ユーザーデータスクリプト • 「#!」または「Content-Type: text/x-shellscript」で始まります。 • このスクリプトは、初回の起動サイクル時に /etc/init.d/cloud-init-user-scripts に よって実行されます。これは起動プロセスの後半 (初期設定アクションが実行された後) に実行さ れます。 • インクルードファイル • 「#include」または「Content-Type: text/x-include-url」で始まります。 • このコンテンツはインクルードファイルです。ファイルには URL の一覧 (1行に1つの URL) が 含まれます。各 URL が読み取られ、そのコンテンツが同じルールセットを使用して渡されま す。URL から読み取られたコンテンツは gzip、MIME マルチパート、またはプレーンテキスト形 式になります。 • クラウド設定データ • 「#cloud-config」または「Content-Type: text/cloud-config」で始まります。 • このコンテンツはクラウド設定データです。サポートされている設定形式のコメント付きサンプ ルについては、例を参照してください。 • クラウドブートフック • 「#cloud-boothook」または「Content-Type: text/cloud-boothook」で始まります。 • このコンテンツはブートフックデータです。このデータは /var/lib/cloud にあるファイルに 保存され、すぐに実行されます。 • これは最初に使用可能な「フック」です。1 回だけ実行するためのメカニズムはありません。 ブートフックは自身でこの点に対処する必要があります。環境変数 INSTANCE_ID でインスタン ス ID が指定されています。この変数を使用して、インスタンスあたり1つのブートフックデータ のセットを提供します。 リポジトリの設定 2011 年 9 月リリースの Amazon Linux より、Amazon Linux AMI はスナップショットとして扱われる ようになり、yum update -y の実行時には、最新のパッケージを常に提供するリポジトリおよび更 新構造を備えるようになりました。 このリポジトリ構造は、Amazon Linux のあるバージョンから次のバージョンへのローリング更新を 可能にするように、連続的な更新が配信されるように設定されています。たとえば、前のバージョ 155 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パッケージの追加 ンの Amazon Linux AMI (2016.03 やそれより前のバージョンなど) からインスタンスを起動し、yum update -y を実行する場合でも、最新のパッケージが利用できます。 Amazon Linux のローリング更新を無効にするには、lock-on-launch 機能を有効にします。Lock-onlaunch 機能は、新たに起動したインスタンスが、指定したリリースの AMI からのみ更新を受け取れる ようにロックします。たとえば、2016.09 AMI に移行する準備ができるまでは、2016.03 AMI を起動 したときに、2016.09 AMI より前にリリースされた更新のみを受け取るよう指定できます。新しいイ ンスタンスで lock-on-launch を有効にするには、Amazon EC2 コンソールまたは -f フラグが設定さ れた ec2-run-instances コマンドを使用して、次のユーザーデータを cloud-init に渡してイン スタンスを起動します。 Important AMI を「latest」ではないリポジトリのバージョンに固定すると、それ以上の更新を受け取 ることができなくなります。Amazon Linux AMI の更新を継続的に受け取るには、最新の AMI を使用するか、必ず「latest」とされているリポジトリで古い AMI を更新する必要がありま す。 #cloud-config repo_releasever: 2016.03 既存のインスタンスを現在の AMI リリースバージョンにロックするには 1. /etc/yum.conf を編集します。 2. releasever=latest をコメントアウトします。 3. yum clean all を実行し、キャッシュを消去します。 パッケージの追加 Amazon Linux は、各 Amazon EC2 のリージョンでホストされているオンラインパッケージリポジト リと一緒に使用するように設計されています。これらのリポジトリは、Amazon Linux AMI パッケー ジの継続的な更新だけでなく、何百もの一般的なオープンソースのサーバーアプリケーションへのア クセスを提供します。リポジトリはすべてのリージョンに存在し、yum 更新ツールを使用してアクセ スできるほか、Amazon Linux AMI パッケージのサイトでもアクセスできます。各リージョンでリポ ジトリをホストしているため、データ転送料金なしで、更新を迅速にデプロイできます。パッケージ をインストールするには、次の yum コマンドを発行します。 [ec2-user ~]$ sudo yum install httpd Enterprise Linux (EPEL) リポジトリの追加パッケージへのアクセスが設定されていますが、デフォル トでは有効になっていません。EPEL は、Amazon Linux リポジトリのパッケージのほか、サードパー ティ製のパッケージを提供します。AWS はサードパーティ製のパッケージをサポートしていません。 必要なアプリケーションが Amazon Linux に含まれていない場合は、そのアプリケーションを直接 Amazon Linux インスタンスにインストールできます。Amazon Linux は、RPM および yum を使用し てパッケージを管理します。これが最も簡単に新しいアプリケーションをインストールする方法にな るでしょう。Amazon Linux セントラルリポジトリで利用可能なアプリケーションは多数あるので、ア プリケーションがそのリポジトリで利用できるかどうかを最初に必ず確認する必要があります。これ らのアプリケーションは、Amazon Linux インスタンスに簡単に追加できます。 実行中の Amazon Linux インスタンスにアプリケーションをアップロードするには、scp または sftp を使用し、インスタンスにログオンしてアプリケーションを設定します。組み込みの cloud-init パッケージから PACKAGE_SETUP アクションを使用して、インスタンスの起動時にアプリケーション をアップロードすることもできます。詳細については、「cloud-init (p. 154)」を参照してくださ い。 156 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 参照のためのソースパッケージへのアクセス Important VPC (Virtual Private Cloud) でインスタンスを実行している場合、yum リポジトリにアクセス するために、インターネットゲートウェイを VPC にアタッチする必要があります。詳細につ いては、Amazon VPC ユーザーガイド のインターネットゲートウェイを参照してください。 参照のためのソースパッケージへのアクセス Amazon Linux で提供されているツールを使用して、インスタンスにインストールしたパッケージソー スを参照するために表示できます。ソースパッケージは、Amazon Linux およびオンラインパッケー ジリポジトリに含まれるすべてのパッケージで利用できます。インストールするソースパッケージの パッケージ名を確認し、get_reference_source コマンドを使用して実行中のインスタンス内に ソースを表示します。以下に例を示します。 [ec2-user ~]$ get_reference_source -p bash レスポンスの例を次に示します。 #############: #### RPM ######## bash ###############: ############# RPM ##### bash-4.2.46-20.36.amzn1.x86_64: bash-4.2.46-20.36.amzn1.src.rpm #########################yes########yes ### RPM # /usr/src/srpm/debug/ bash-4.2.46-20.36.amzn1.src.rpm ########### ソース RPM は、インスタンスの /usr/src/srpm/debug ディレクトリにあります。ソース RPM は この場所から解凍されます。そして、標準の RPM ツールを使用して、参照するためにソースツリー を表示できます。デバッグが完了したら、パッケージを利用できます。 Important VPC (Virtual Private Cloud) でインスタンスを実行している場合、yum リポジトリにアクセス するために、インターネットゲートウェイを VPC にアタッチする必要があります。詳細につ いては、Amazon VPC ユーザーガイド のインターネットゲートウェイを参照してください。 アプリケーションの開発 Amazon Linux の yum リポジトリには、Linux 開発ツールのフルセットが用意されています。Amazon Linux でアプリケーションを開発するには、yum で必要な開発ツールを選択します。あるい は、CentOS および他の同様のディストリビューションで開発された多くのアプリケーション は、Amazon Linux で実行できるはずです。 インスタンスストアアクセス インスタンスストアドライブ ephemeral0 は、Amazon Instance Store-Backed AMI でのみ、/ media/ephemeral0 にマウントされます。これは、インスタンスストアドライブを /mnt にマウント する他の多くのイメージとは異なります。 製品ライフサイクル Amazon Linux AMI のセキュリティと機能強化は定期的に更新されます。Amazon Linux インスタンス でデータまたはカスタム設定を保存する必要がない場合は、最新の Amazon Linux AMI で新しいイン スタンスを再作成できます。Amazon Linux インスタンスでデータまたはカスタム設定を保存する必要 157 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティの更新 がある場合は、Amazon Linux yum リポジトリを介してこれらのインスタンスを維持できます。yum リポジトリには、更新されたすべてのパッケージが含まれます。実行中のインスタンスにこれらの更 新を適用するよう選択できます。 新しいバージョンの AMI がリリースされても、古いバージョンの AMI と更新パッケージは引き続 き利用できます。AWS サポートを介して古いバージョンの Amazon Linux; サポートをお求めの場 合、Amazon では、サポートプロセスの一環として、新しいバージョンに移行するようお客様にお願 いすることがあります。 セキュリティの更新 セキュリティの更新は、Amazon Linux AMI yum リポジトリと更新された Amazon Linux AMI を介 して提供されます。セキュリティアラートは、Amazon Linux AMI セキュリティセンターで公開さ れます。AWS セキュリティポリシーの詳細については、またはセキュリティの問題を報告するに は、AWS セキュリティセンターにアクセスしてください。 Amazon Linux AMI は、起動時にセキュリティ更新をダウンロードおよびインストールするよう設定 されています。これは repo_upgrade と呼ばれる cloud-init 設定を介して制御されます。次の cloud-init 設定のスニペットは、インスタンス初期化に渡すユーザーデータテキストで設定を変更 する方法を示しています。 #cloud-config repo_upgrade: security repo_upgrade 設定に使用できる値は次のようになります。 security Amazon によってセキュリティ更新としてマークされた保留中の更新を適用します。 bugfix Amazon によってバグフィックスとしてマークされた更新を適用します。バグフィックスは大き なサイズの更新セットで、セキュリティ更新および他のさまざまな小さなバグに対する修正が含 まれます。 all 分類に関係なく、使用できる適切な更新すべてを適用します。 none 起動時に更新をインスタンスに適用しません。 repo_upgrade のデフォルトの設定は security です。つまり、ユーザーデータで別の値を指定しない 場合、Amazon Linux AMI は、デフォルトにより、インストールされているすべてのパッケージに対 して、起動時にセキュリティを更新します。Amazon Linux AMI はまた、/etc/motd ファイルを利用 して、ログイン時に利用できる更新の数を表示し、インストールされているパッケージすべての更新 をお知らせします。これらの更新をインストールするには、インスタンスで sudo yum upgrade を実 行する必要があります。 Important VPC (Virtual Private Cloud) でインスタンスを実行している場合、yum リポジトリにアクセス するために、インターネットゲートウェイを VPC にアタッチする必要があります。詳細につ いては、Amazon VPC ユーザーガイド のインターネットゲートウェイを参照してください。 のサポート 基本的な Amazon Linux AMI のインストールと使用に関するサポートは、AWS サポートの加入者向け サービスとなっています。詳細については、「AWS サポート」を参照してください。 158 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ユーザー提供カーネル Amazon Linux についてご質問がありましたら、Amazon EC2 forum に投稿することをお勧めします。 ユーザー提供カーネル Amazon EC2 インスタンスでカスタムカーネルが必要な場合は、必要としているものに近い AMI でイ ンスタンスを起動し、カスタムカーネルをインスタンス上でコンパイルして、新しいカーネルを参照 するように menu.lst ファイルを変更します。このプロセスは AMI が使用する仮想化タイプによって 異なります。詳細については、「Linux AMI 仮想化タイプ (p. 80)」を参照してください。 目次 • HVM AMI (GRUB) (p. 159) • AMI の準仮想化 (PV-GRUB) (p. 160) HVM AMI (GRUB) HVM インスタンスボリュームは実際の物理ディスクのように扱われます。起動プロセスは、パーティ ション分割ディスクとブートローダーを備えるベアメタルオペレーティングシステムの起動プロセス に似ています。ブートローダーは現在サポートされているすべての Linux ディストリビューションで 使用できます。もっとも一般的なブートローダーは GRUB です。以下のセクションでは、カスタム カーネルを使用するための GRUB の設定について説明します。 HVM AMI 向けの GRUB の設定 次の例は、HVM AMI 向けの menu.lst 設定ファイルです。この例では、Amazon Linux 2016.09 (この AMI の元々のカーネル) と Vanilla Linux 4.7.4 (https://www.kernel.org/ の新しいバージョ ンの Vanilla Linux カーネル) の 2 つのカーネルエントリを選択できます。Vanilla エントリは、こ の AMI の元々のエントリからコピーされました。kernel と initrd パスは新しい場所に更新され ました。[default 0] パラメーターは、ブートローダーをそれが検出した最初のエントリ (この場 合、Vanilla エントリ) にポイントします。fallback 1 パラメーターは、最初のエントリの起動に問 題が発生した場合、次のエントリにブートローダーをポイントします。 起動が遅くなるため、デフォルトでは GRUB はインスタンスのコンソールに出力を送信しません。詳 細については、「インスタンスコンソール出力 (p. 948)」を参照してください。カスタムカーネルを インストールする場合は、例に示すように、hiddenmenu 行を削除して serial 行および terminal 行を /boot/grub/menu.lst に追加し、GRUB 出力を有効にすることを検討してください。 Important 起動処理中に大量のデバッグ情報を表示することは避けてください。シリアルコンソールは 高速データ転送をサポートしていません。 default=0 fallback=1 timeout=5 serial --unit=0 --speed=9600 terminal --dumb --timeout=5 serial console title Vanilla Linux 4.7.4 root (hd0) kernel /boot/vmlinuz-4.7.4 root=LABEL=/ console=tty1 console=ttyS0 initrd /boot/initrd.img-4.7.4 159 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI の準仮想化 (PV-GRUB) title Amazon Linux 2016.09 (4.4.19-29.55.amzn1.x86_64) root (hd0,0) kernel /boot/vmlinuz-4.4.19-29.55.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 initrd /boot/initramfs-4.4.19-29.55.amzn1.x86_64.img menu.lst ファイルにフォールバックカーネルを指定する必要はありません。ただし、新しいカーネ ルをテストするときは、フォールバックを設定することをお勧めします。GRUB では、新しいカーネ ルにエラーがあった場合に別のカーネルにフォールバックできます。フォールバックカーネルを設定 すると、新しいカーネルが見つからない場合でもインスタンスを起動できます。 新しい Vanilla Linux カーネルが失敗した場合、出力は次の例のようになります。 ^M Entry 0 will be booted automatically in 3 seconds. ^M Entry 0 will be booted automatically in 2 seconds. ^M Entry 0 will be booted automatically in 1 seconds. Error 13: Invalid or unsupported executable format [ 0.000000] Initializing cgroup subsys cpuset AMI の準仮想化 (PV-GRUB) 準仮想化 (PV) を使用する Amazon マシンイメージ では、起動プロセスで PV-GRUB と呼ばれるシ ステムが利用されます。PV-GRUB は、パッチが適用されたバージョンの GNU GRUB 0.97 を実行す る準仮想化ブートローダーです。インスタンスを起動すると、PV-GRUB では起動プロセスが開始さ れ、お客様のイメージの menu.lst ファイルが指定するカーネルがチェーンロードされます。 PV-GRUB は標準の grub.conf または menu.lst コマンドを認識しますこれにより、現在サ ポートされているすべての Linux ディストリビューションとともに利用できます。Ubuntu 10.04 LTS、Oracle Enterprise Linux、CentOS 5.x など、古いディストリビューションでは特別な「ec2」や 「xen」カーネルパッケージが必要です。新しいディストリビューションでは、デフォルトのカーネル パッケージに必要なドライバが含まれています。 最新の準仮想 AMI では、デフォルトで PV-GRUB AKI を使用します (Amazon EC2 Launch Wizard Quick Start メニューで利用できるすべての準仮想 Linux AMI が含まれています)。そのため、使用する カーネルにディストリビューションとの互換性がある場合、インスタンスで別のカーネルを使用する ために必要な追加の手順はありません。インスタンスでカスタムカーネルを実行するには、必要とし ているものに近い AMI でインスタンスを起動する方法が最適です。この方法では、カスタムカーネル をインスタンス上でコンパイルして、「準仮想化 AMI 向けの GRUB の設定 (p. 161)」で説明されて いるように、そのカーネルで起動するように menu.lst ファイルを変更します。 AMI のカーネルイメージが PV-GRUB AKI であることを Amazon EC2 コマンドラインツール (チェッ クするカーネルイメージ ID を代用します) で次の describe-images コマンドを実行して検証できま す。 $ aws ec2 describe-images --filters Name=image-id,Values=aki-880531cd Name フィールドが pv-grub で始まるかどうかを確認します。 トピック • PV-GRUB の制約事項 (p. 161) • 準仮想化 AMI 向けの GRUB の設定 (p. 161) • Amazon PV-GRUB カーネルイメージ ID (p. 162) • PV-GRUB の更新 (p. 164) 160 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI の準仮想化 (PV-GRUB) PV-GRUB の制約事項 PV-GRUB には次の制約事項があります。 • PV-GRUB の 64 ビットバージョンを使用して 32 ビットカーネルを起動したり、PV-GRUB の 32 ビットバージョンを使用して 64 ビットカーネルを起動したりすることはできません。 • PV-GRUB AKI の使用時には、Amazon ラムディスクイメージ (ARI) を指定できません。 • AWS は、PV-GRUB が EXT2、EXT3、EXT4、JFS、XFS、ReiserFS のファイルシステム形式で動 作することをテストし、確認しています。その他のファイルシステム形式では動作しない場合があ ります。 • PV-GRUB は、gzip、bzip2、lzo、xz 圧縮形式を利用して圧縮されたカーネルを起動できます。 • Cluster AMI は PV-GRUB をサポートせず、また、必要としません。完全ハードウェア仮想化 (HVM) が使用されるためです。準仮想インスタンスは PV-GRUB を使用して起動します。一 方、HVM インスタンスボリュームは実際のディスクのように扱われ、その起動プロセスはパーティ ション分割ディスクとブートローダーを備えるベアメタルオペレーティングシステムの起動プロセ スに似ています。 • PV-GRUB バージョン 1.03 以前では、GPT パーティショニングをサポートしません。MBR パー ティショニングがサポートされています。 • Amazon EBS で Logical Volume Manager (LVM) を使用する場合、LVM の外側に別の起動パーティ ションが必要です。その場合、LVM で論理ボリュームを作成できます。 準仮想化 AMI 向けの GRUB の設定 PV-GRUB を起動するには、GRUB menu.lst ファイルがイメージに含まれている必要があります。 このファイルの最も一般的な場所は /boot/grub/menu.lst です。 次の例は、PV-GRUB AKI を使用して AMI を起動する menu.lst 設定ファイルです。この例で は、Amazon Linux2016.09 (この AMI の元々のカーネル) と Vanilla Linux4.7.4 (https:// www.kernel.org/ の新しいバージョンの Vanilla Linux カーネル) の 2 つのカーネルエントリを選択でき ます。Vanilla エントリは、この AMI の元々のエントリからコピーされました。kernel と initrd パ スは新しい場所に更新されました。default 0 パラメーターは、ブートローダーをそれが検出した最 初のエントリ (この場合、Vanilla エントリ) にポイントします。fallback 1 パラメーターは、最初の エントリの起動に問題が発生した場合、次のエントリにブートローダーをポイントします。 default 0 fallback 1 timeout 0 hiddenmenu title Vanilla Linux 4.7.4 root (hd0) kernel /boot/vmlinuz-4.7.4 root=LABEL=/ console=hvc0 initrd /boot/initrd.img-4.7.4 title Amazon Linux 2016.09 (4.4.19-29.55.amzn1.x86_64) root (hd0) kernel /boot/vmlinuz-4.4.19-29.55.amzn1.x86_64 root=LABEL=/ console=hvc0 initrd /boot/initramfs-4.4.19-29.55.amzn1.x86_64.img menu.lst ファイルにフォールバックカーネルを指定する必要はありません。ただし、新しいカー ネルをテストするときは、フォールバックを設定することをお勧めします。PV-GRUB では、新しい カーネルにエラーがあった場合に別のカーネルにフォールバックできます。フォールバックカーネル を設定すると、新しいカーネルが見つからない場合でもインスタンスを起動できます。 161 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI の準仮想化 (PV-GRUB) PV-GRUB は、次の場所で menu.lst をチェックします。その際、それが検出した最初の場所が利用 されます。 • (hd0)/boot/grub • (hd0,0)/boot/grub • (hd0,0)/grub • (hd0,1)/boot/grub • (hd0,1)/grub • (hd0,2)/boot/grub • (hd0,2)/grub • (hd0,3)/boot/grub • (hd0,3)/grub PV-GRUB 1.03 以前では、このリストの最初の 2 つの場所うちの 1 つのみがチェックされることに注 意してください。 Amazon PV-GRUB カーネルイメージ ID PV-GRUB AKI はすべての Amazon EC2 リージョンで利用できます。32 ビットと 64 ビットの両方の アーキテクチャタイプに AKI があります。最新の AMI では、デフォルトで PV-GRUB AKI が使用され ます。 すべてのバージョンの PV-GRUB AKI がすべてのインスタンスタイプと互換性があるとは限らないた め、常に最新バージョンの PV-GRUB AKI を使用することをお勧めします。次の describe-images コ マンドを使用し、現在のリージョンの PV-GRUB AKI のリストを取得します。 $ aws ec2 describe-images --owners amazon --filters Name=name,Values=pv-grub*.gz PV-GRUB は、ap-southeast-2 リージョンで利用できる唯一の AKI であることにご注意ください。 このリージョンにコピーする AMI が、このリージョンで利用できる PV-GRUB のバージョンを使用し ていることを確認してください。 各リージョンの現在の AKI ID は次のとおりです。新しい AMI は、hd0 AKI を使用して登録します。 Note 以前 hd00 AKI が利用可能であった地域では、後方互換性のために引き続き提供されます。 ap-northeast-1、アジアパシフィック (東京) イメージ ID イメージ名 aki-f975a998 pv-grub-hd0_1.05-i386.gz aki-7077ab11 pv-grub-hd0_1.05-x86_64.gz ap-southeast-1、アジアパシフィック (シンガポール) リージョン イメージ ID イメージ名 aki-17a40074 pv-grub-hd0_1.05-i386.gz aki-73a50110 pv-grub-hd0_1.05-x86_64.gz 162 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI の準仮想化 (PV-GRUB) ap-southeast-2、アジアパシフィック (シドニー) イメージ ID イメージ名 aki-ba5665d9 pv-grub-hd0_1.05-i386.gz aki-66506305 pv-grub-hd0_1.05-x86_64.gz eu-central-1、欧州 (フランクフルト) イメージ ID イメージ名 aki-1419e57b pv-grub-hd0_1.05-i386.gz aki-931fe3fc pv-grub-hd0_1.05-x86_64.gz eu-west-1、欧州 (アイルランド) イメージ ID イメージ名 aki-1c9fd86f pv-grub-hd0_1.05-i386.gz aki-dc9ed9af pv-grub-hd0_1.05-x86_64.gz sa-east-1、南米 (サンパウロ) イメージ ID イメージ名 aki-7cd34110 pv-grub-hd0_1.05-i386.gz aki-912fbcfd pv-grub-hd0_1.05-x86_64.gz us-east-1、米国東部(バージニア北部) イメージ ID イメージ名 aki-04206613 pv-grub-hd0_1.05-i386.gz aki-5c21674b pv-grub-hd0_1.05-x86_64.gz us-gov-west-1, AWS GovCloud (US) イメージ ID イメージ名 aki-5ee9573f pv-grub-hd0_1.05-i386.gz aki-9ee55bff pv-grub-hd0_1.05-x86_64.gz us-west-1、米国西部 (北カリフォルニア) イメージ ID イメージ名 aki-43cf8123 pv-grub-hd0_1.05-i386.gz aki-59cc8239 pv-grub-hd0_1.05-x86_64.gz 163 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI の準仮想化 (PV-GRUB) us-west-2、米国西部 (オレゴン) イメージ ID イメージ名 aki-7a69931a pv-grub-hd0_1.05-i386.gz aki-70cb0e10 pv-grub-hd0_1.05-x86_64.gz PV-GRUB の更新 すべてのバージョンの PV-GRUB AKI がすべてのインスタンスタイプと互換性があるとは限らないた め、常に最新バージョンの PV-GRUB AKI を使用することをお勧めします。また、古いバージョンの PV-GRUB はすべてのリージョンで使用できるわけではないため、旧バージョンを使用する AMI を、 そのバージョンをサポートしないリージョンにコピーした場合、カーネルのイメージを更新するま で、その AMI から起動されたインスタンスを起動できなくなります。次の手順を使用してインスタン スの PV-GRUB のバージョンを確認し、必要に応じて更新します。 PV-GRUB のバージョンを確認するには 1. インスタンスのカーネル ID を見つけます。 $ aws ec2 describe-instance-attribute --instance-id instance_id -attribute kernel --region region { "InstanceId": "instance_id", "KernelId": "aki-70cb0e10" } このインスタンスのカーネル ID は、aki-70cb0e10 です。 2. このカーネル ID のバージョン情報を表示します。 $ aws ec2 describe-images --image-ids aki-70cb0e10 --region region { "Images": [ { "VirtualizationType": "paravirtual", "Name": "pv-grub-hd0_1.05-x86_64.gz", ... "Description": "PV-GRUB release 1.05, 64-bit" } ] } このカーネルイメージは PV-GRUB 1.05 です。PV-GRUB のバージョンが最新バージョン (Amazon PV-GRUB カーネルイメージ ID (p. 162) を参照) でない場合、次の手順を使用して更 新する必要があります。 PV-GRUB のバージョンを更新するには インスタンスが古いバージョンの PV-GRUB を使用している場合は、最新バージョンに更新する必要 があります。 164 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド AMI の準仮想化 (PV-GRUB) 1. Amazon PV-GRUB カーネルイメージ ID (p. 162) で、使用するリージョンとプロセッサアーキ テクチャーの最新の PV-GRUB AKI を特定します。 2. インスタンスを停止します。使用されるカーネルイメージを変更するには、インスタンスを停止 する必要があります。 $ aws ec2 stop-instances --instance-ids instance_id --region region 3. インスタンスに使用するカーネルイメージを変更します。 $ aws ec2 modify-instance-attribute --instance-id instance_id -kernel kernel_id --region region 4. インスタンスを再起動します。 $ aws ec2 start-instances --instance-ids instance_id --region region 165 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 インスタンス Amazon EC2 を初めて使用する場合は、次のトピックを参照して使用を開始してください。 • Amazon EC2 とは (p. 1) • Amazon EC2 でのセットアップ (p. 21) • Amazon EC2 Linux インスタンスの開始方法 (p. 29) • インスタンスのライフサイクル (p. 299) 実稼働環境を起動する前に、以下の質問に答える必要があります。 Q: ニーズに最も合っているインスタンスタイプはどれですか。 Amazon EC2 には、アプリケーションを実行するために必要な CPU、メモリ、ストレージ、ネッ トワークキャパシティを選択できるようにするため、さまざまなインスタンスタイプが用意され ています。詳細については、「インスタンスタイプ (p. 167)」を参照してください。 Q: ニーズに最も合っている購入オプションはどれですか。 Amazon EC2 は、オンデマンドインスタンス (デフォルト)、スポットインスタンス、および リザーブドインスタンスをサポートします。 詳細については、「インスタンス購入オプショ ン (p. 204)」を参照してください。 Q: ニーズに合っているルートボリュームのタイプはどれですか。 各インスタンスは Amazon EBS またはインスタンスストアによってサポートされています。必要 なルートボリュームのタイプに基づいて AMI を選択します。詳細については、「ルートデバイス のストレージ (p. 77)」を参照してください。 Q. 仮想プライベートクラウドを使用するとメリットがありますか。 EC2-Classic または EC2-VPC でインスタンスを起動できる場合は、どちらのプラットフォーム がニーズに合っているかを判断する必要があります。詳細については、「サポートされているプ ラットフォーム (p. 649)」および「Amazon EC2 と Amazon Virtual Private Cloud (p. 642)」を 参照してください。 Q. EC2 インスタンス群およびハイブリッド環境のマシンを管理できますか。 Amazon Elastic Compute Cloud (Amazon EC2) Run Command を使用して、Amazon EC2 インス タンス、ハイブリッド環境の仮想マシン (VM) およびサーバー、他のクラウドプロバイダーの VM の設定をセキュアにリモートで管理できます。詳細については、「リモート管理 (p. 440)」を参 照してください。 166 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスタイプ インスタンスタイプ インスタンスを起動するときは、指定したインスタンスタイプによって、インスタンスに使用するホ ストコンピュータのハードウェアが決まります。インスタンスタイプごとに、コンピューティング、 メモリ、およびストレージの機能は異なり、これらの機能に基づいてインスタンスファミリーにグ ループ分けされます。インスタンスタイプは、インスタンス上で実行するアプリケーションやソフト ウェアの要件に基づいて選択します。 Amazon EC2 は、基になっているハードウェアに関係なく、各インスタンスに、一貫した予測可能な CPU 能力を提供します。 Amazon EC2 は、CPU、メモリ、インスタンスストレージなどのホストコンピュータの一部のリソー スを、特定のインスタンス専用に割り当てます。ネットワークやディスクサブシステムなどの他のホ ストコンピュータリソースは、インスタンス間で共有されます。ホストコンピュータの各インスタン スが、これらの共有リソースの 1 つを可能な限り利用しようとする場合、それぞれのインスタンス は、そのリソースの共有分を等しく受け取ります。ただし、リソースの使用率が低い場合は、1 つの インスタンスがそのリソースを多く使用できます。 各インスタンスタイプは、共有リソースからからより高い、またはより低い最小性能を提供します。 たとえば、高速の I/O パフォーマンスを実行するインスタンスタイプは、共有リソースに対してより 大きな割り当てを取得します。共有リソースをより大きく配分することによって、I/O 性能のばらつき を抑えることもできます。ほとんどのアプリケーションでは、中程度の I/O 性能があれば十分です。 ただし、より高い、またはより一貫した I/O パフォーマンスを必要とするアプリケーションの場合 は、より I/O パフォーマンスの高いインスタンスタイプを使用することを検討してください。 目次 • 利用可能なインスタンスタイプ (p. 167) • ハードウェア仕様 (p. 168) • 仮想化タイプ (p. 169) • ネットワーキング機能とストレージ機能 (p. 169) • インスタンスの制限 (p. 170) 利用可能なインスタンスタイプ Amazon EC2 では、次の表で示すインスタンスタイプが提供されます。 現行世代のインスタンス 最適なパフォーマンスを得るために、新しいインスタンスを起動するときには、現行世代のインス タンスタイプを使用することをお勧めします。現行世代のインスタンスタイプの詳細については、 「Amazon EC2 インスタンス」を参照してください。 インスタンスファミリー 現行世代のインスタンスタイプ 汎用 t2.nano | t2.micro | t2.small | t2.medium | t2.large | t2.xlarge | t2.2xlarge | m4.large | m4.xlarge | m4.2xlarge | m4.4xlarge | m4.10xlarge | m4.16xlarge | m3.medium | m3.large | m3.xlarge | m3.2xlarge コンピューティングの最適化 c4.large | c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge メモリ最適化 r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r4.large | r4.xlarge | r4.2xlarge | 167 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ハードウェア仕様 インスタンスファミリー 現行世代のインスタンスタイプ r4.4xlarge | r4.8xlarge | r4.16xlarge | x1.16xlarge | x1.32xlarge ストレージの最適化 i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge 高速コンピューティング p2.xlarge | p2.8xlarge | p2.16xlarge | g2.2xlarge | g2.8xlarge 旧世代のインスタンス お客様のアプリケーションが旧世代のインスタンス用に最適化されており、アップグレードはまだこ れからという場合でも、Amazon Web Services では、それらの旧世代のインスタンスを提供してい ます。最高のパフォーマンスを得るために最新世代のインスタンスのご利用をお勧めしていますが、 これらの旧世代のインスタンスのサポートは継続します。現在、旧世代のインスタンスを使用してい る場合は、適切なアップグレードとなる最新世代のインスタンスを確認できます。詳細については、 「旧世代のインスタンス」を参照してください。 インスタンスファミリー 旧世代のインスタンスタイプ 汎用 m1.small | m1.medium | m1.large | m1.xlarge コンピューティングの最適化 c1.medium | c1.xlarge | cc2.8xlarge メモリ最適化 m2.xlarge | m2.2xlarge | m2.4xlarge | cr1.8xlarge ストレージの最適化 hi1.4xlarge | hs1.8xlarge 高速コンピューティング cg1.4xlarge マイクロインスタンス t1.micro ハードウェア仕様 各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」 を参照してください。 お客様のニーズに最適なインスタンスタイプを決定するには、インスタンスを起動し、独自のベンチ マークアプリケーションを使用することをお勧めします。支払いはインスタンス時間単位なので、 決定する前に複数のインスタンスタイプをテストすると、便利なうえ、コストを抑えることができま す。 決定を行った後でも、ニーズが変化したときは、インスタンスのサイズを変更できます。詳細につい ては、「インスタンスのサイズ変更 (p. 200)」を参照してください。 Note Amazon EC2 インスタンスは、インスタンスタイプ製品ページで指定されているとおり、64 ビット仮想 Intel プロセッサで実行されます。各 Amazon EC2 インスタンスタイプのハード ウェア仕様については、「Amazon EC2 インスタンス」を参照してください。 ただし、64 ビット CPU に関する業界の命名規則が原因でわかりにくくなっています。チップ製造元の Advanced Micro Devices (AMD) は、Intel x86 命令セットをベースとして商業的に初めて成功 した 64 ビットアーキテクチャを導入しました。その結果、このアーキテクチャーはチップ製 造元にかかわらず AMD64 と幅広く呼ばれています。Windows および複数の Linux ディスト リビューションがこの慣習に従っています。インスタンスが Intel ハードウェアで実行されて 168 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 仮想化タイプ いるにもかかわらず、Ubuntu または Windows EC2 インスタンスの内部システム情報に CPU アーキテクチャが AMD64 と表示されるのはこのためです。 仮想化タイプ 各インスタンスタイプは、準仮想化 (PV) またはハードウェア仮想マシン (HVM) のいずれかの仮想化 タイプをサポートします。インスタンスの仮想化タイプは、インスタンスの起動に使用する AMI に よって決まります。 最適なパフォーマンスを得るために、HVM AMI を使用することをお勧めします。さらに、拡張ネット ワーキングのメリットを活用するには、HVM AMI が必要です。HVM 仮想化は、AWS プラットフォー ムによって提供されるハードウェアアシストテクノロジーを使用します。HVM 仮想化を使用すると、 ゲスト VM はネイティブハードウェアプラットフォーム上で動作しているかのように動作します。た だし、パフォーマンスの向上のために PV ネットワークとストレージドライバは使用します。詳細に ついては、「Linux AMI 仮想化タイプ (p. 80)」を参照してください。 ネットワーキング機能とストレージ機能 インスタンスタイプを選択すると、使用できるネットワーキング機能とストレージ機能が決まりま す。 ネットワーキング機能 • インスタンスタイプの中には、EC2-Classic で使用できないものがあるので、VPC で起動する必 要があります。VPC でインスタンスを起動することにより、拡張ネットワーキング、複数のプラ イベート IPv4 アドレスのインスタンスへの割り当て、IPv6 アドレスのインスタンスへの割り当 て、インスタンスに割り当てられたセキュリティグループの変更など、EC2-Classic で使用できな い機能を活用することができます。詳細については、「VPC でのみ利用可能なインスタンスタイ プ (p. 648)」を参照してください。 • インスタンスタイプのネットワーキングと帯域幅のパフォーマンスを最大化するには、次のことを 実行できます。 • サポートされるインスタンスタイプをプレイスメントグループで起動し、高パフォーマンスコン ピューティング (HPC) アプリケーション用にインスタンスを最適化します。共通のプレイスメ ントグループのインスタンスは、高帯域幅 (10 Gbps)、低レイテンシーのネットワーキングから 利点を得られます。詳細については、「プレイスメントグループ (p. 714)」を参照してくださ い。10 Gbps ネットワーク速度をサポートするインスタンスタイプは、プレイスメントグループ 内で起動するネットワーク速度のみを利用できます。 • サポートされる現行世代のインスタンスタイプ用の拡張ネットワーキングを有効にして、パケッ ト毎秒 (PPS) のパフォーマンスを大幅に高め、ネットワークのストレスとレイテンシーを低減す ることができます。詳細については、「Linux の拡張ネットワーキング (p. 720)」を参照してく ださい。 • サポートされている最大 MTU は、インスタンスタイプによって異なります。すべての Amazon EC2 インスタンスタイプは、標準イーサネット V2 1500 MTU フレームをサポートします。すべて の現行世代のインスタンスは 9001 MTU、またはジャンボ フレームをサポートし、一部の旧世代の インスタンスも同様にそれらをサポートします。詳細については、「EC2 インスタンスの最大ネッ トワーク送信単位 (MTU) (p. 717)」を参照してください。 ストレージ機能 • インスタンスタイプの中には、EBS ボリュームとインスタンスストアボリュームをサポートする ものや、EBS ボリュームのみをサポートするものがあります。インスタンスストアボリュームをサ ポートする一部のインスタンスは、ソリッドステートドライブ (SSD) を使用して非常に高いランダ ム I/O パフォーマンスを提供します。詳細については、「ストレージ (p. 749)」を参照してくださ い。 169 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの制限 • Amazon EBS I/O 専用の容量をさらに多く取得するには、一部のインスタンスタイプを EBS 最適化 インスタンスとして起動してください。インスタンスタイプの中には、デフォルトで EBS 最適化さ れるものがあります。詳細については、「Amazon EBS 最適化インスタンス (p. 813)」を参照し てください。 次の表に、現行世代のインスタンスタイプでサポートされるネットワーキング機能とストレージ機能 をまとめています。 VPC のみ EBS のみ C3 C4 はい SSD ボ リューム 配置グルー プ はい はい はい D2 HVM のみ Intel 82599 VF はい はい Intel 82599 VF はい はい はい Intel 82599 VF はい はい はい はい I2 はい はい はい M3 はい はい IPv6 サ ポー ト (VPC のみ) はい G2 M4 拡張ネット ワーキング Intel 82599 VF はい はい はい はい m4.16xlargeはい : ENA 他のすべて のサイズ: インテル 82599 VF P2 はい はい R3 R4 はい はい T2 はい はい X1 はい はい はい ENA はい はい はい はい Intel 82599 VF はい はい はい ENA はい はい はい はい はい はい ENA はい インスタンスの制限 リージョンで起動できるインスタンスの合計数には制限があります。また、一部のインスタンスタイ プにはその他の制限もあります。 デフォルトの制限の詳細については、「Amazon EC2 で実行できるインスタンスの数はいくつです か?」を参照してください。 170 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T2 インスタンス 現在の制限の表示、または現在の制限の引き上げリクエストについての詳細については、「Amazon EC2 サービスの制限 (p. 899)」を参照してください。 T2 インスタンス T2 インスタンスは、適度なベースラインパフォーマンスを実現したり、ワークロードの必要に応じて 非常に高いパフォーマンスまでバーストする機能を実現できるように設計されています。常時または 一貫して CPU をフルに使用するわけではないが、バーストが必要なことがあるワークロード向けに 用意されています。T2 インスタンスは、ウェブサーバー、開発者環境、小規模データベースなどの 汎用ワークロードに最適です。T2 インスタンスの料金体系と追加ハードウェアの詳細については、 「Amazon EC2 インスタンス」を参照してください。 アカウントを作成してから 12 か月未満の場合は、特定の使用制限内でt2.micro インスタンスを使用 できます。詳細については、「AWS Free Tier」を参照してください。 目次 • ハードウェア仕様 (p. 171) • T2 インスタンスの要件 (p. 171) • CPU クレジット (p. 172) • CPU クレジットの監視 (p. 173) ハードウェア仕様 各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」 を参照してください。 T2 インスタンスの要件 T2 インスタンスを作成するための要件を以下に示します。 • T2 インスタンスは仮想プライベートクラウド (VPC) で起動する必要があります。EC2-Classic プ ラットフォームではサポートされません。Amazon VPC を使用すると、定義した仮想ネットワーク 内で AWSリソースを起動できます。EC2-Classic の既存のインスタンスのインスタンスタイプを T2 インスタンスタイプに変更することはできません。EC2-Classic および EC2-VPC の詳細につい ては、「サポートされているプラットフォーム (p. 649)」を参照してください。VPC 専用インス タンスの起動の詳細については、「VPC でのみ利用可能なインスタンスタイプ (p. 648)」を参照 してください。 • T2 インスタンスは、HVM AMI を使用して起動する必要があります。詳細については、「Linux AMI 仮想化タイプ (p. 80)」を参照してください。 • T2 インスタンスの起動には、EBS ボリュームをルートデバイスとして使用する必要があります。 詳細については、「Amazon EC2 ルートデバイスボリューム (p. 15)」を参照してください。 • T2 インスタンスは、オンデマンドインスタンスおよびリザーブドインスタンスとしては使用できま すが、スポットインスタンス、スケジュールされたインスタンス、または専用インスタンスとして は使用できません。また、T2 インスタンスは Dedicated Host ではサポートされていません。これ らのパラメーターの詳細については、インスタンス購入オプション (p. 204)を参照してください。 • リージョンで起動できるインスタンスの合計数には制限があります。また、一部のインスタンスタ イプにはその他の制限もあります。デフォルトでは、最大 20 個の T2 インスタンスを同時に実行 できます。さらに多くの T2 インスタンスが必要な場合は、Amazon EC2 インスタンス申請フォー ムを使用して、インスタンスの追加を申請できます。 • 選択する T2 インスタンスのサイズが、オペレーティングシステムおよびアプリケーションの最小 メモリー要件を満たしていることを確認します。多くのメモリーおよび CPU リソースを消費する グラフィカルユーザーインターフェースを使用するオペレーティングシステム (Windows など) は、 171 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T2 インスタンス 多くのユースケースで t2.micro 以上のインスタンスサイズを必要とする場合があります。メモ リーおよび CPU の要件が時間が経つにつれて増大したときは、より大きな T2 インスタンスサイズ またはその他の EC2 インスタンスタイプにススケールすることができます。 CPU クレジット 1 CPU クレジットは、1 CPU コア全体の 1 分間のパフォーマンスを表します。従来の Amazon EC2 インスタンスタイプはパフォーマンスが一定ですが、T2 インスタンスはベースラインレベルの CPU パフォーマンスを提供しながら、そのベースラインレベルを超えてバーストする機能を備えていま す。ベースラインパフォーマンスとバースト機能は、CPU クレジットにより管理されます。 CPU クレジットとは何ですか。 1 個の CPU クレジットは、1 台の vCPU を使用率 100% で 1 分間実行することに相当します。たと えば、1 台の vCPU を使用率 50% で 2 分間実行したり、2 台の vCPU を使用率 25% で 2 分間実行し たりなど、他の vCPU、使用率、時間の組み合わせでも、1 個の CPU クレジットに相当します。 CPU クレジットはどのように獲得されますか。 各 T2 インスタンスは、健全な初期 CPU クレジットバランスから開始し、インスタンスサイズに応じ て一定割合の 1 時間当たりの CPU クレジットを絶えず (ミリ秒レベルの細かさで) 受け取ります。ク レジットを蓄積または消費する会計処理もミリ秒レベルの細かさで実施されるため、CPU クレジット の浪費について心配する必要はありません。CPU の短期バーストでは CPU クレジットのごく一部し か消費されません。 T2 インスタンスで使用する CPU リソースが基本パフォーマンスレベルより少ない場合 (アイドル時 など)、未使用の CPU クレジット (つまり獲得したクレジットと消費したクレジットとの差) は最大 24 時間、クレジットバランスに保存され、バースト用の CPU クレジットを構成します。T2 インスタン スにベースパフォーマンスレベルを上回る CPU リソースが必要になると、CPU クレジットバランス のクレジットを使用して、使用率が最大 100% になるまでバーストします。T2 インスタンスが CPU リソースに対して保持しているクレジットが多いほど、より高いパフォーマンスが必要な場合にベー スパフォーマンスレベルを超えてバーストできる時間が増えます。 以下の表に、起動時に受け取る初期 CPU クレジット割り当て、CPU クレジットを受け取るレート、 フルコアパフォーマンスに対するパーセントで表したベースラインパフォーマンスレベル、インスタ ンスが累積できる最大獲得 CPU クレジットバランスを示します。 インスタンス タイプ 初期 CPU クレジッ ト* 1 時間あたりに受け 取る CPU クレジッ ト ベースラインパフォー 最大獲得 CPU クレ マンス (CPU 使用率) ジットバランス*** t2.nano 30 3 5% 72 t2.micro 30 6 10% 144 t2.small 30 12 20% 288 t2.medium 60 24 40%** 576 t2.large 60 36 60%** 864 t2.xlarge 120 54 90%** 1296 t2.2xlarge 240 81 135%** 1944 * 初期 CPU クレジットで起動または開始できる T2 インスタンスの数には制限があります。デフォ ルトでは、リージョンごとに 24 時間あたり各アカウントで 100 回の T2 インスタンスの起動または 開始と設定されています。この制限を大きくする場合は、Amazon EC2 クレジットベースのインス タンス起動クレジットフォームを使用して、制限上昇リクエストをカスタマーサポートに提出でき 172 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T2 インスタンス ます。アカウントが 24 時間以内に 100 個を超える T2 インスタンスを起動または開始していなけれ ば、この制限の影響を受けません。 ** t2.medium およびそれより大きいインスタンスは、複数の vCPU を持ちます。ベースラインパ フォーマンスは、利用可能な vCPU の合計です。たとえば、t2.large が vCPU を 100% 使用し、 もう 1 つを少しだけ使用した場合、CloudWatch メトリクスは 50% を超える使用率を示します。 *** 最大獲得 CPU クレジットバランスには初期 CPU クレジット (最初に使用される有効期限切れに ない CPU クレジット) は含まれません。たとえば、t2.micro インスタンスが起動されてから 24 時間以上アイドルのままだったとすると、最大 174 クレジットバランス (30 初期 CPU クレジット + 144 獲得クレジット) に達している可能性があります。しかし、インスタンスが 30 初期 CPU ク レジットを使用した後で、クレジットバランスは 144 を超えることはありません。ただし、インス タンスを停止して起動することで、新しい初期 CPU クレジットバランスが発行される場合は除きま す。 初期クレジットバランスは、最適な起動エクスペリエンスとなるように設計されています。インスタ ンスの最大獲得 CPU クレジットバランスは、1 時間あたりに受け取る CPU クレジットに 24 時間を 乗算した数になります。たとえば、t2.micro インスタンスは 1 時間あたり 6 CPU クレジットを獲得 するため、最大獲得 CPU クレジットバランスの 144 CPU クレジットまで蓄積できます。 CPU クレジットに有効期限はありますか。 初期 CPU クレジットは有効期限切れにはなりませんが、インスタンスが CPU クレジットを使用する ときに最初に使用されます。所定の 5 分間隔内に使用されなかった獲得クレジットは、獲得されてか ら 24 時間後に期限切れになり、期限切れになったクレジットは、その時点の CPU クレジットバラン スから削除されます。その後、新しく獲得したクレジットが追加されます。加えて、インスタンスの CPU クレジットバランスは、インスタンスが停止して起動すると引き継がれません。インスタンスを 停止するとクレジットバランスはすべて失われますが、再起動すると初期クレジットバランスが再び 割り当てられます。 たとえば、t2.small インスタンスの 1 時間の CPU 使用率が 5% である場合、3 CPU クレジット (60 分の 5%) を使用したことになりますが、その 1 時間に 12 CPU クレジットを獲得できるため、差 の 9 CPU クレジットが CPU クレジットバランスに加算されます。その時間内に 24 時間の有効期限 が到来したバランス内の CPU クレジット (インスタンスが 24 時間前に完全にアイドル状態になった 場合は、12 クレジットになる可能性があります) も、バランスから削除されます。有効期限が切れた クレジットの量が獲得したクレジットより多い場合、クレジットバランスは減少します。反対に、有 効期限が切れたクレジットの量が獲得したクレジットより少ない場合、クレジットバランスは増加し ます。 すべてのクレジットを使用した場合はどうなりますか。 インスタンスが CPU クレジットバランスをすべて使用した場合、パフォーマンスはベースラインパ フォーマンスレベルにとどまります。インスタンスのクレジットが足りなくなりそうな場合、インス タンスの CPU クレジット使用量 (ひいては CPU パフォーマンス) は 15 分間隔で徐々にベースライン パフォーマンスまで下げられるため、CPU クレジットを使い切った場合でもパフォーマンスが急激 に低下することはありません。インスタンスが常時、CPU クレジットバランスをすべて使用する場合 は、T2 のサイズを大きくするか、固定パフォーマンスのインスタンスタイプ (M3 や C3 など) を使用 することをお勧めします。 CPU クレジットの監視 CloudWatch コンソールの Amazon EC2 インスタンス別メトリクスに表示された各 T2 インス タンスのクレジットバランスを確認できます。T2 インスタンスには、CPUCreditBalance と CPUCreditUsage という 2 つのメトリクスがあります。CPUCreditUsage メトリクスは、測定期間 に使用された CPU クレジットの数を示しています。CPUCreditBalance メトリクスは、T2 インス タンスが獲得した未使用の CPU クレジットの数を示しています。このバランスは、バースト時に使 い切られます。使用される CPU クレジットが獲得数より多くなるためです。 173 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コンピュート最適化インスタンス 次の表は新しく利用可能になった CloudWatch メトリクスを説明しています。CloudWatch でのこれ らのメトリクスの使用の詳細については、「インスタンスの利用可能な CloudWatch メトリクスのリ スト表示 (p. 536)」を参照してください。 メトリクス 説明 CPUCreditUsage (T2 インスタンスにのみ有効) 指定した期間内に消費される CPU クレジット数です。 このメトリクスは、インスタンスに割り当てられた仮想 CPU に よる命令を処理するために使用される、物理 CPU の時間を識別 します。 Note CPU クレジットメトリクスは、5 分間隔で利用可能で す。 単位: Count CPUCreditBalance (T2 インスタンスにのみ有効) インスタンスが累積される CPU ク レジット数です。 このメトリクスは、どのくらいの期間のインスタンスが指定され たレートのベースラインパフォーマンスレベルを超えてバースト できるかを判断するために使用されます。 Note CPU クレジットメトリクスは、5 分間隔で利用可能で す。 単位: Count コンピュート最適化インスタンス コンピュート最適化インスタンスは、高パフォーマンスプロセッサから恩恵を受けるコンピューティ ング関連の用途に最適です。このインスタンスは、以下の用途に最適です。 • 作業負荷のバッチ処理 • メディアの変換 • 高トラフィックのウェブサーバー、大規模マルチプレイヤーオンライン (MMO) ゲームサーバー、 広告エンジン • 高パフォーマンスコンピューティング (HPC) アプリケーションやその他の大量の演算を行うアプリ ケーション 目次 • ハードウェア仕様 (p. 175) • コンピューティングインスタンスのパフォーマンス (p. 175) • コンピューティングインスタンスの機能 (p. 175) • 36 個の vCPU のサポート (p. 175) • インスタンスの制限 (p. 177) 174 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コンピュート最適化インスタンス ハードウェア仕様 各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」 を参照してください。 コンピューティングインスタンスのパフォーマンス EBS 最適化インスタンスは、 インスタンスからの Amazon EBS I/O とその他のネットワークトラ フィックとの競合を排除することによって、EBS ボリュームの安定した高パフォーマンスを実現でき ます。C4 インスタンスは、追加料金なしでデフォルトで EBS 最適化されます。C3 インスタンスの EBS 最適化は、安価な時間単位の追加料金で利用できます。詳細については、「Amazon EBS 最適化 インスタンス (p. 813)」を参照してください。 拡張ネットワーキング機能を有効にすることができます。拡張ネットワーキングでは、パケット毎秒 (PPS) が非常に大きく、ネットワークのストレスが少なく、レイテンシーが低くなります。詳細につ いては、「Linux の拡張ネットワーキング (p. 720)」を参照してください。 c4.8xlarge インスタンスタイプにより、Linux のプロセッサの C ステートと P ステートを制御でき ます。C ステートは非アクティブ時のコアのスリープレベルを制御し、P ステートは希望するコアか らのパフォーマンス (CPU 周波数) を制御します。詳細については、「EC2 インスタンスタイプのプ ロセッサのステート制御 (p. 351)」を参照してください。 コンピューティングインスタンスの機能 コンピュート最適化インスタンスの機能の概要を以下に示します。 VPC のみ EBS のみ C3 C4 はい SSD ボ リューム 配置グループ はい はい はい はい HVM のみ 拡張ネット ワーキング Intel 82599 VF はい Intel 82599 VF 詳細については、以下を参照してください。 • VPC でのみ利用可能なインスタンスタイプ (p. 648) • Amazon EBS 最適化インスタンス (p. 813) • Amazon EC2 インスタンスストア (p. 846) • プレイスメントグループ (p. 714) • Linux の拡張ネットワーキング (p. 720) 36 個の vCPU のサポート c4.8xlarge インスタンスでは 36 個の vCPU が提供されますが、これにより vCPU を 32 個に制限 している一部の Linux オペレーティング システムで問題が生じる可能性があります。c4.8xlarge イ ンスタンスを起動する場合は、最新の AMI を使用することをお勧めします。 次の AMI は、36 個の vCPU を使用した c4.8xlarge インスタンスの起動をサポートしています。 • Amazon Linux AMI 2016.09 (HVM) • Ubuntu Server 14.04 LTS (HVM) • Red Hat Enterprise Linux 7.1 (HVM) 175 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コンピュート最適化インスタンス • SUSE Linux Enterprise Server 12 (HVM) アプリケーションに別の AMI を使用する必要がある場合に、c4.8xlarge インスタンスの起動が正常 に完了しないとき (Client.InstanceInitiatedShutdown 状態遷移に伴って起動中にインスタン スのステータスが stopped に変更されるときなど) は、以下の手順に従って 32 個を超える vCPU を サポートするようにインスタンスを変更し、c4.8xlarge インスタンスタイプを使用できるようにし ます。 32 個の以上の vCPU をサポートするようにインスタンスを更新する 1. AMI を使用して C4 インスタンスを起動し、c4.8xlarge 以外の C4 インスタンスタイプを選択 します。 2. 使用するオペレーティングシステム固有の手順に従って、カーネルを最新バージョンに更新しま す。たとえば、RHEL 6 の場合は、次のコマンドを使用します。 sudo yum update -y kernel 3. インスタンスを停止します。 4. (オプション) 将来的に必要な追加の c4.8xlarge インスタンスを起動するために使用できるイン スタンスから AMI を作成します。 5. 停止したインスタンスのインスタンスタイプを c4.8xlarge に変更します ([Actions]、[Instance Settings]、[Change Instance Type] の順に選択し、指示に従います)。 6. インスタンスを起動します。インスタンスが正常に起動すれば、完了です。 これでもインスタン スが正しく実施されない場合、以下のステップに進みます。 7. (オプショナル) インスタンスがまだ正しく実施されない場合、インスタンスのカーネルが 32 個の vCPU をサポートしていない可能性があります。 ただし、vCPU を制限すると、インスタンスを 起動できる場合があります。 a. 停止したインスタンスのインスタンスタイプを c4.8xlarge 以外の C4 インスタンスタイプ のいずれかに変更します ([Actions]、[Instance Settings]、[Change Instance Type] の順に選択 し、指示に従います)。 b. 使用するオペレーティングシステム固有の手順に従って、カーネル起動パラメーターに maxcpus=32 オプションを追加します。たとえば、RHEL 6 の場合は、/boot/grub/ menu.lst ファイルを編集し、最新のアクティブな kernel エントリに次のオプションを追 加します。 default=0 timeout=1 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.32-504.3.3.el6.x86_64) root (hd0,0) kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 maxcpus=32 console=ttyS0 ro root=UUID=9996863e-b964-47d3-a33b-3920974fdbd9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 xen_blkfront.sda_is_xvda=1 console=ttyS0,115200n8 console=tty0 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img c. インスタンスを停止します。 d. (オプション) 将来的に必要な追加の c4.8xlarge インスタンスを起動するために使用できる インスタンスから AMI を作成します。 e. 停止したインスタンスのインスタンスタイプを c4.8xlarge に変更します ([Actions]、 [Instance Settings]、[Change Instance Type] の順に選択し、指示に従います)。 176 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メモリ最適化インスタンス f. インスタンスを起動します。 インスタンスの制限 • C4 インスタンスには 64 ビット HVM AMI が必要です。ハイメモリ (最大 60 GiB の RAM) があり、 その処理能力を活用するためには 64 ビットのオペレーティングシステムが必要です。HVM AMI は、ハイメモリインスタンスタイプの準仮想化 (PV) AMI よりも優れたパフォーマンスを提供しま す。さらに、拡張ネットワーキングを利用するには、HVM AMI を使用する必要があります。 • リージョンで起動できるインスタンスの合計数には制限があります。また、一部のインスタンスタ イプにはその他の制限もあります。詳細については、「Amazon EC2 で実行できるインスタンスの 数はいくつですか?」を参照してください。。制限の引き上げをリクエストするには、Amazon EC2 インスタンス申請フォームを使用します。 メモリ最適化インスタンス メモリ最適化インスタンスは、メモリ内の大きいデータセットを処理するワークロードに対して高速 なパフォーマンスを実現するように設計されています。 R4 インスタンス R4 インスタンスは、次の用途に適しています。 • ハイパフォーマンスリレーショナル (MySQL) および NoSQL (MongoDB、Cassandra) データベー ス。 • キー値タイプのデータ (Memcached および Redis) のインメモリキャッシュを提供する分散型ウェ ブスケールキャッシュストア。 • ビジネスインテリジェンス用に最適化されたデータストレージ形式と分析機能 (SAP HANA など) を 使用するインメモリデータベース。 • 巨大な非構造化データ (金融サービス、Hadoop/Spark クラスター) のリアルタイム処理を実行する アプリケーション。 • ハイパフォーマンスコンピューティング (HPC) および電子設計自動化 (EDA) アプリケーション。 X1 インスタンス X1 インスタンスは、次の用途に適しています。 • SAP HANA などのメモリ内データベース (Business Suite S/4HANA の SAP 認定サポー ト、Business Suite on HANA (SoH)、Business Warehouse on HANA (BW)、および Data Mart Solutions on HANA を含む)。詳細については、「AWS クラウドの SAP HANA」を参照してくださ い。 • Apache Spark や Presto などのビッグデータ処理エンジン。 • ハイパフォーマンスコンピューティング (HPC) アプリケーション。 R3 インスタンス R3 インスタンスは、次の用途に適しています。 • ハイパフォーマンスリレーショナル (MySQL) および NoSQL (MongoDB、Cassandra) データベー ス。 • インメモリ分析. • ゲノムアセンブリおよびゲノム分析。 177 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メモリ最適化インスタンス • エンタープライズアプリケーション (Microsoft SharePoint など)。 ハードウェア仕様 各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」 を参照してください。 メモリ性能 R4 インスタンスでは最大 488 GiB の RAM を使用できます。 X1 インスタンスには、300 GiB/秒の持続可能なメモリ読み取り帯域幅と、140 GiB/秒の持続可能なメ モリ書き込み帯域幅を提供する、Intel Scalable Memory Buffer が含まれます。 R3 インスタンスでは最大 244 GiB の RAM を使用できます。 メモリ最適化インスタンスにはハイメモリがあり、その処理能力を活用するためには 64 ビットの HVM AMI が必要です。HVM AMI は、ハイメモリインスタンスタイプの準仮想化 (PV) AMI よりも優 れたパフォーマンスを提供します。詳細については、「」を参照してください。Linux AMI 仮想化タ イプ (p. 80) コンピューティングパフォーマンス R4 インスタンスは、最大 64 個の vCPU に対応し、E5-2686v4 ベースの 2 個の AWS-customized Intel XEON プロセッサを使用します。このプロセッサはハイメモリ帯域幅と、より大きい L3 キャッ シュにより、インメモリアプリケーションのパフォーマンスを向上させます。 X1 インスタンスは、最大 128 個の vCPU に対応し、4 個の Intel Xeon E7-8880 v3 プロセッサを使 用します。このプロセッサは高メモリ帯域幅と、より大きい L3 キャッシュにより、メモリ内アプリ ケーションのパフォーマンスを向上させます。 メモリ最適化インスタンスは、最新の Intel AES-NI 機能を通じてより高い暗号化のパフォーマンスを 実現し、Intel Transactional Synchronization Extensions (TSX) のサポートによりインメモリトランザ クションデータ処理のパフォーマンスを高めます。また、Advanced Vector Extensions 2 (Intel AVX2) プロセッサ命令のサポートにより、ほとんどの整数コマンドを 256 ビットに拡大します。 一部のメモリ最適化インスタンスでは、Linux のプロセッサの C ステートと P ステートを制御できま す。C ステートは非アクティブ時のコアのスリープレベルを制御し、P ステートは希望するコアから のパフォーマンス (CPU 周波数で測定) を制御します。詳細については、「EC2 インスタンスタイプ のプロセッサのステート制御 (p. 351)」を参照してください。 ネットワークパフォーマンス メモリ最適化インスタンスのネットワークパフォーマンスを向上させるには、拡張ネットワーキング を有効にします。詳細については、「Linux の拡張ネットワーキング (p. 720)」を参照してくださ い。 R4 インスタンスでは、Elastic Network Adapter (ENA) を使用して、高いパケット/秒パフォーマンス と一貫して低いレイテンシーを同時に実現します。ほとんどのアプリケーションでは、高いレベルの ネットワークパフォーマンスが一貫して必要なわけではありませんが、データの送受信時にアクセス する帯域幅を増やすことでメリットを得られます。R4 インスタンスサイズをより小さくすると、最 大スループットは 10 Gbps になります。これらのインスタンスでは、ネットワーク I/O クレジットメ カニズムを使用して、平均帯域幅使用率に基づいてインスタンスにネットワーク帯域幅を割り当てま す。これらのインスタンスでは、ネットワークスループットがベースライン制限を下回るとクレジッ トを獲得し、ネットワークデータ転送を実行するときにこれらのクレジットを使用できます。継続 178 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メモリ最適化インスタンス 的に 10 Gbps 以上の帯域幅にアクセスする必要があるロークロードの場合は、r4.8xlarge および r4.16xlarge インスタンスを使用することをお勧めします。これらのインスタンスはそれぞれ、最 大 10 Gbps および 20 Gbps のネットワーク帯域幅を使用できます。 インスタンスの機能 メモリ最適化インスタンスの機能の概要を以下に示します。 VPC のみ EBS のみ SSD ボリュー ム 配置グループ 拡張ネットワー キング R3 はい はい Intel 82599 VF R4 はい はい はい ENA X1 はい はい はい ENA 詳細については、以下を参照してください。 • VPC でのみ利用可能なインスタンスタイプ (p. 648) • Amazon EBS 最適化インスタンス (p. 813) • Amazon EC2 インスタンスストア (p. 846) • プレイスメントグループ (p. 714) • Linux の拡張ネットワーキング (p. 720) 個の vCPU のサポート メモリ最適化インスタンスは多数の vCPU を提供するため、vCPU の制限が低いオペレーティングシ ステムで起動の問題が発生することがあります。メモリ最適化インスタンスを起動する場合は、最新 の AMI を使用することをお勧めします。 以下の AMI では、メモリ最適化インスタンスの起動がサポートされています。 • Amazon Linux AMI 2016.03 (HVM) 以降 • Ubuntu Server 14.04 LTS (HVM) • Red Hat Enterprise Linux 7.1 (HVM) • SUSE Linux Enterprise Server 12 SP1 (HVM) • Windows Server 2016 • Windows Server 2012 R2 • Windows Server 2012 • Windows Server 2008 R2 64 ビット • Windows Server 2008 SP2 64 ビット • Windows Server 2003 R2 64 ビット インスタンスの制限 • R4 インスタンスをスポットインスタンスまたはハードウェア専有インスタンスとして起動すること はできません。 • Windows Server 2008 R2 64 ビット AMI を使用して、r4.large および r4.4xlarge インスタン スを起動することはできません。 179 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ストレージ最適化インスタンス • Windows Server 2008 SP2 64 ビット AMI または Windows Server 2003 R2 64 ビット AMI を使用し て、X1 インスタンス (x1.16xlarge インスタンスは除く) を起動することはできません。 • リージョンで起動できるインスタンスの合計数には制限があります。また、一部のインスタンスタ イプにはその他の制限もあります。詳細については、「Amazon EC2 で実行できるインスタンスの 数はいくつですか?」を参照してください。。制限の引き上げをリクエストするには、Amazon EC2 インスタンス申請フォームを使用します。 ストレージ最適化インスタンス ストレージ最適化インスタンスは、ローカルストレージの大規模データセットに対する高いシーケン シャル読み取りおよび書き込みアクセスを必要とするワークロード用に設計されています。ストレー ジ最適化インスタンスは、数万回の低レイテンシーとランダム I/O オペレーション/秒 (IOPS) をアプ リケーションに提供するように最適化されています。 D2 インスタンス D2 インスタンスは、次の用途に適しています。 • 超並列処理 (MPP) データウェアハウス • MapReduce および Hadoop 分散コンピューティング • ログまたはデータ処理アプリケーション I2 インスタンス I2 インスタンスは、次の用途に適しています。 • NoSQL データベース (Cassandra や MongoDB など) • クラスター化データベース • オンライントランザクション処理 (OLTP) システム 目次 • ハードウェア仕様 (p. 180) • ストレージパフォーマンス (p. 181) • SSD I/O パフォーマンス (p. 181) • ストレージインスタンスの機能 (p. 182) • 個の vCPU のサポート (p. 182) • インスタンスの制限 (p. 183) ハードウェア仕様 D2 インスタンスのプライマリデータストレージは、HDD ベースのインスタンスストアボリュームで す。I2 インスタンスのプライマリデータストレージは、SSD ベースのインスタンスストアボリューム です。インスタンスストアボリュームは、インスタンスの存続中のみ使用できます。インスタンスを 停止または終了すると、アプリケーションとそのインスタンスストアボリュームのデータは消去され ます。インスタンスストアボリュームの重要なデータは、定期的にバックアップまたはレプリケート することをお勧めします。詳細については、「Amazon EC2 インスタンスストア (p. 846)」および 「SSD インスタンスストアボリューム (p. 852)」を参照してください。 各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」 を参照してください。 180 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ストレージ最適化インスタンス ストレージパフォーマンス Linux でインスタンスから最高のディスクスループット性能を得るには、最新バージョンの Amazon Linux AMI、またはカーネルバージョン 3.8 以降の別の Linux AMI を使用することをお勧めします。 カーネルバージョン 3.8 以降の Linux AMI を使用しない場合、このインスタンスで可能な最高の IOPS パフォーマンスは実現されません。 D2 インスタンスは、永続許可 (ディスクスループットと拡張性を大幅に向上させる Xen ブロックリン グプロトコルの拡張機能) をサポートする Linux カーネルを使用するときに、最大のディスクパフォー マンスを提供します。永続許可の詳細については、Xen プロジェクトのブログのこちらの記事を参照 してください。 EBS 最適化インスタンスは、 インスタンスからの Amazon EBS I/O とその他のネットワークトラ フィックとの競合を排除することによって、EBS ボリュームの安定した高パフォーマンスを実現で きます。D2 インスタンスは、追加料金なしでデフォルトで EBS 最適化されます。I2 インスタンスの EBS 最適化は、安価な時間単位の追加料金で利用できます。詳細については、「Amazon EBS 最適化 インスタンス (p. 813)」を参照してください。 拡張ネットワーキング機能を有効にすることができます。拡張ネットワーキングでは、パケット毎秒 (PPS) が非常に大きく、ネットワークのストレスが少なく、レイテンシーが低くなります。詳細につ いては、「Linux の拡張ネットワーキング (p. 720)」を参照してください。 d2.8xlarge インスタンスタイプにより、Linux のプロセッサの C ステートと P ステートを制御でき ます。C ステートは非アクティブ時のコアのスリープレベルを制御し、P ステートは希望するコアか らのパフォーマンス (CPU 周波数) を制御します。詳細については、「EC2 インスタンスタイプのプ ロセッサのステート制御 (p. 351)」を参照してください。 SSD I/O パフォーマンス カーネルバージョン 3.8 以降の Linux AMI を使用して、I2 インスタンスで利用できるすべての SSD ベースのインスタンスストアボリュームを利用すると、少なくとも次の表に一覧表示されている最小 のランダム IOPS (4,096 バイトブロックサイズ) を取得できます。それ以外の場合は、IOPS 性能は表 に示されているよりも低くなります。 インスタンスサイズ 読み取り IOPS 最初の書き込み IOPS i2.xlarge 35,000 35,000 i2.2xlarge 75,000 75,000 i2.4xlarge 175,000 155,000 i2.8xlarge 365,000 315,000 インスタンスに SSD ベースのインスタンスストアボリュームを使用するほど、アーカイブできる書 き込み IOPS の数は減少します。これは、SSD コントローラーが実行する必要がある追加の作業が原 因です。SSD コントローラーは、利用可能な領域を見つけ、既存のデータを再書き込みし、未使用の 領域を消去して、再書き込みができるようにします。このガベージコレクションというプロセスによ り、SSD への内部的な書き込み増幅が発生し、ユーザーの書き込み操作に対する SSD 書き込み操作 の割合として表示されます。書き込み操作が 4,096 バイトの倍数でないか、4,096 バイトの境界に整 合していない場合、パフォーマンスの低下はさらに大きくなります。少量のバイト数または整合して いないバイト数で書き込む場合、SSD コントローラーは周辺のデータを読み取り、その結果を新しい 場所に保存する必要があります。このパターンにより、書き込み増幅が大幅に増え、レイテンシーが 増加し、I/O パフォーマンスが大きく低下します。 SSD コントローラーは、複数の方法を利用すると、書き込み増幅の影響を減らすことができます。こ のような方法の 1 つには、SSD インスタンスストレージに領域を予約し、コントローラーが書き込み 操作に利用できる領域をより効率的に管理できるようにすることです。これをオーバープロビジョニ 181 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ストレージ最適化インスタンス ングと呼びます。I2 インスタンスに提供された SSD ベースのインスタンスストアボリュームには、 オーバープロビジョニングに対して予約された領域がありません。書き込み増幅を減らすには、ボ リュームの 10% を未使用の状態のままにし、SSD コントローラーがこれをオーバープロビジョニン グに使用できるようにします。これにより、使用できるストレージが減りますが、パフォーマンスは 向上します。 I2 インスタンスストアボリュームは TRIM をサポートしています。TRIM コマンドを使用して、書き 込んだデータが不要になるたびに SSD コントローラーに通知することもできます。これにより、より 多くの空き領域がコントローラーに与えられ、その結果書き込み増幅が減り、パフォーマンスが向上 します。詳細については、「インスタンスストアボリュームの TRIM のサポート (p. 853)」を参照し てください。 ストレージインスタンスの機能 ストレージ最適化インスタンスの機能の概要を以下に示します。 VPC のみ EBS のみ SSD ボリュー ム D2 I2 はい 配置グループ 拡張ネットワー キング はい Intel 82599 VF はい Intel 82599 VF 詳細については、以下を参照してください。 • VPC でのみ利用可能なインスタンスタイプ (p. 648) • Amazon EBS 最適化インスタンス (p. 813) • Amazon EC2 インスタンスストア (p. 846) • プレイスメントグループ (p. 714) • Linux の拡張ネットワーキング (p. 720) 個の vCPU のサポート d2.8xlarge インスタンスでは 36 個の vCPU が提供されますが、これにより vCPU を 32 個に制限 している一部の Linux オペレーティング システムで問題が生じる可能性があります。d2.8xlarge イ ンスタンスを起動する場合は、最新の AMI を使用することをお勧めします。 次の Linux AMI は、36 個の vCPU を使用した d2.8xlarge インスタンスの起動をサポートしていま す。 • Amazon Linux AMI 2016.09 (HVM) • Ubuntu Server 14.04 LTS (HVM) • Red Hat Enterprise Linux 7.1 (HVM) • SUSE Linux Enterprise Server 12 (HVM) アプリケーションに別の AMI を使用する必要がある場合に、d2.8xlarge インスタンスの起動が正常 に完了しないとき (Client.InstanceInitiatedShutdown 状態遷移に伴って起動中にインスタン スのステータスが stopped に変更されるときなど) は、以下の手順に従って 32 個を超える vCPU を サポートするようにインスタンスを変更し、d2.8xlarge インスタンスタイプを使用できるようにし ます。 32 個を超える vCPU をサポートするようにインスタンスを更新するには 1. AMI を使用して D2 インスタンスを起動し、d2.8xlarge 以外の D2 インスタンスタイプを選択 します。 182 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ストレージ最適化インスタンス 2. 使用するオペレーティングシステム固有の手順に従って、カーネルを最新バージョンに更新しま す。たとえば、RHEL 6 の場合は、次のコマンドを使用します。 sudo yum update -y kernel 3. インスタンスを停止します。 4. (オプション) 将来的に必要な追加の d2.8xlarge インスタンスを起動するために使用できるイン スタンスから AMI を作成します。 5. 停止したインスタンスのインスタンスタイプを d2.8xlarge に変更します ([Actions]、[Instance Settings]、[Change Instance Type] の順に選択し、指示に従います)。 6. インスタンスを起動します。インスタンスが正常に起動すれば、完了です。 これでもインスタン スが正しく実施されない場合、以下のステップに進みます。 7. (オプショナル) インスタンスがまだ正しく実施されない場合、インスタンスのカーネルが 32 個の vCPU をサポートしていない可能性があります。 ただし、vCPU を制限すると、インスタンスを 起動できる場合があります。 a. 停止したインスタンスのインスタンスタイプを d2.8xlarge 以外の D2 インスタンスタイプ のいずれかに変更します ([Actions]、[Instance Settings]、[Change Instance Type] の順に選択 し、指示に従います)。 b. 使用するオペレーティングシステム固有の手順に従って、カーネル起動パラメーターに maxcpus=32 オプションを追加します。たとえば、RHEL 6 の場合は、/boot/grub/ menu.lst ファイルを編集し、最新のアクティブな kernel エントリに次のオプションを追 加します。 default=0 timeout=1 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.32-504.3.3.el6.x86_64) root (hd0,0) kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 maxcpus=32 console=ttyS0 ro root=UUID=9996863e-b964-47d3-a33b-3920974fdbd9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 xen_blkfront.sda_is_xvda=1 console=ttyS0,115200n8 console=tty0 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img c. インスタンスを停止します。 d. (オプション) 将来的に必要な追加の d2.8xlarge インスタンスを起動するために使用できる インスタンスから AMI を作成します。 e. 停止したインスタンスのインスタンスタイプを d2.8xlarge に変更します ([Actions]、 [Instance Settings]、[Change Instance Type] の順に選択し、指示に従います)。 f. インスタンスを起動します。 インスタンスの制限 • ストレージ最適化インスタンスは、HVM AMI を使用して起動する必要があります。詳細について は、「」を参照してください。Linux AMI 仮想化タイプ (p. 80) • d2.8xlarge インスタンスには 36 個の vCPU がありますが、これにより vCPU を 32 個に制限し ている一部の Linux オペレーティング システムで問題が生じる可能性があります。詳細について は、「 個の vCPU のサポート (p. 182)」を参照してください。 • リージョンで起動できるインスタンスの合計数には制限があります。また、一部のインスタンスタ イプにはその他の制限もあります。詳細については、「Amazon EC2 で実行できるインスタンスの 183 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 高速コンピューティングインスタンス 数はいくつですか?」を参照してください。。制限の引き上げをリクエストするには、Amazon EC2 インスタンス申請フォームを使用します。 Linux 高速コンピューティングインスタンス 高い並列処理機能が必要な場合は、NVIDIA GPU にアクセスできる高速コンピューティングインスタ ンスを使用するメリットがあります。高速コンピューティングインスタンスを使用すると、CUDA ま たは Open Computing Language (OpenCL) パラレルコンピューティングフレームワークを活用するこ とにより、多数のサイエンス、エンジニアリング、およびレンダリングアプリケーションを高速化で きます。また、ゲームストリーミング、3D アプリケーションストリーミング、およびその他のグラ フィックスワークロードを含む、グラフィックアプリケーションにも使用できます。 高速コンピューティングインスタンスは HVM ベースのインスタンスとして実行されます。ハード ウェア仮想マシン (HVM) 仮想化は、AWS プラットフォームによって提供されるハードウェアアシス トテクノロジーを使用します。HVM 仮想化によって、VM がネイティブハードウェアプラットフォー ム上にあるかのように実行され、Amazon EC2 で各高速コンピューティングインスタンスのディスク リート GPU に占有的にアクセスできます。 高速コンピューティングインスタンスをプレイスメントグループにクラスター化できます。プレイス メントグループは、1 つのアベイラビリティーゾーン内で、インスタンス間の低レイテンシーで高帯 域幅の接続を実現します。詳細については、「プレイスメントグループ (p. 714)」を参照してくださ い。 目次 • 高速コンピューティングインスタンスファミリー (p. 184) • ハードウェア仕様 (p. 185) • 高速コンピューティングインスタンスの制限 (p. 185) • 高速コンピューティングインスタンス用の AMI (p. 185) • Amazon Linux での NVIDIA ドライバのインストール (p. 186) • GPU 設定の最適化 (P2 インスタンスのみ) (p. 188) Windows 高速コンピューティングインスタンスについては、「Windows 高速コンピューティングイ ンスタンス」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を参照してください。 高速コンピューティングインスタンスファミリー 高速コンピューティングインスタンスファミリーは、ハードウェアアクセラレーターやコプロセッ サーを使用して、浮動小数点数計算やグラフィック処理のような機能を CPU で実行されるソフト ウェア以上に効率的に実行します。次の高速コンピューティングインスタンスファミリーを Amazon EC2 で起動できます。 P2 インスタンス P2 インスタンスは NVIDIA Tesla K80 GPU を使用し、CUDA または OpenCL プログラミングモデル を使用する汎用 GPU コンピューティング用に設計されています。P2 インスタンスは高帯域幅ネッ トワーキング、強力な単精度および倍精度浮動小数点機能、および GPU ごとに 12 GiB メモリを提 供し、ディープラーニング、グラフデータベース、高パフォーマンスデータベース、数値流体力学、 金融工学、耐震解析、分子モデリング、ゲノム解析、レンダリング、その他サーバー側 GPU コン ピューティングワークロードに最適です。 • P2 インスタンスでは、Elastic Network Adapter を使用した拡張ネットワーキングがサポートされて います。詳細については、「VPC 内の Linux インスタンスにおける Elastic Network Adapter (ENA) を使用した拡張ネットワーキングの有効化 (p. 732)」を参照してください。 184 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 高速コンピューティングインスタンス • P2 インスタンスはデフォルトで EBS に最適化されています。詳細については、「Amazon EBS 最 適化インスタンス (p. 813)」を参照してください。 • P2 インスタンスは NVIDIA GPUDirect のピアツーピア転送をサポートします。詳細について は、NVIDIA GPUDirect を参照してください。 • P2 インスタンスで最大のパフォーマンスを実現するための GPU 設定の最適化には、さまざまなも のがあります。詳細については、「GPU 設定の最適化 (P2 インスタンスのみ) (p. 188)」を参照 してください。 • p2.16xlarge インスタンスタイプにより、オペレーティングシステムがプロセッサの C ステート と P ステートを制御できるようになります。詳細については、「EC2 インスタンスタイプのプロ セッサのステート制御 (p. 351)」を参照してください。 G2 インスタンス G2 インスタンスは NVIDIA GRID K520 GPU を使用し、DirectX または OpenGL を使用してグラ フィックアプリケーション向けに費用対効果の高パフォーマンスのプラットフォームを提供しま す。NVIDIA GRID GPU は、NVIDIA の高速キャプチャおよびエンコード API オペレーションもサポー トします。アプリケーションのサンプルには、動画作成サービス、3D 仮想化、グラフィックを多用 したストリーミングアプリケーションなどのサーバー側のグラフィックワークロードが含まれていま す。 CG1 インスタンス CG1 インスタンスは NVIDIA Tesla M2050 GPU を使用し、CUDA または OpenCL プログラミングモ デルを使用する汎用 GPU コンピューティング用に設計されています。CG1 インスタンスは、高帯域 幅ネットワーキング、倍精度浮動小数点機能、および ECC (error-correcting code) メモリを提供し、 高パフォーマンスコンピューティング (HPC) アプリケーションに最適です。 ハードウェア仕様 各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」 を参照してください。 高速コンピューティングインスタンスの制限 高速コンピューティングインスタンスには以下の制限があります。 • インスタンスは、HVM AMI を使用して起動する必要があります。 • NVIDIA ドライバがインストールされていない限り、インスタンスは GPU にアクセスできません。 • 実行できるインスタンス数は制限されています。詳細については、Amazon EC2 のよくある質問の 「Amazon EC2 で実行できるインスタンス数の上限は?」を参照してください。これらの制限の拡 大を申請するには、Request to Increase Amazon EC2 Instance Limit というフォームを使用してく ださい。 高速コンピューティングインスタンス用の AMI すぐに作業を開始できるように、NVIDIA から高速コンピューティングインスタンス用の AMI が提供 されています。これらのリファレンス AMI には、NVIDIA GPU の完全な機能とパフォーマンスを有効 にする NVIDIA ドライバが含まれています。 NVIDIA ドライバがある AMI の一覧については、AWS Marketplace (NVIDIA GRID) を参照してくださ い。 HVM AMI を使用して高速コンピューティングインスタンスを起動できます。 185 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 高速コンピューティングインスタンス Amazon Linux での NVIDIA ドライバのインストール 高速コンピューティングインスタンスには適切な NVIDIA ドライバが必要です。インストールする NVIDIA ドライバは、インスタンスで実行するカーネルに対してコンパイルされる必要があります。 Amazon は、AWS Marketplace での公式の各カーネル更新のために、NVIDIA カーネルドライバの互 換性のある更新済みビルドを AMI に提供しています。Amazon が提供するバージョン以外の NVIDIA ドライババージョンを使用する場合、あるいは公式の Amazon ビルド以外のカーネルを使用する場合 は、インストールするドライバのバージョンとの競合を回避するために、Amazon が提供する NVIDIA パッケージをシステムからアンインストールする必要があります。 このコマンドを使用して、Amazon が提供する NVIDIA パッケージをアンインストールします。 [ec2-user ~]$ sudo yum erase nvidia cuda Amazon が提供する CUDA ツールキットパッケージは、NVIDIA ドライブに依存します。NVIDIA パッ ケージをアンインストールすると、CUDA ツールキットが消去されます。NVIDIA ドライバをインス トールした後に、CUDA ツールキットを再インストールする必要があります。 NVIDIA ドライバは、 http://www.nvidia.com/Download/Find.aspx からダウンロードできます。インス タンスの適切なドライブを選択します。 P2 インスタンス 製品タイプ Tesla 製品シリーズ K シリーズ 製品 K-80 オペレーティングシステム Linux 64 ビット 推奨/ベータ版 推奨/認定 G2 インスタンス 製品タイプ GRID 製品シリーズ GRID シリーズ 商品 GRID K520 オペレーティングシステム Linux 64 ビット 推奨/ベータ版 推奨/認定 CG1 インスタンス 製品タイプ Tesla 製品シリーズ M-Class 商品 M2050 オペレーティングシステム Linux 64 ビット 推奨/ベータ版 推奨/認定 186 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 高速コンピューティングインスタンス ドライバのインストールと設定の詳細については、NVIDIA ウェブサイトのドライバのダウンロード ページで [ADDITIONAL INFORMATION] タブを選択し、[README] リンクを選択します。 NVIDIA ドライバの手動インストール Amazon Linux AMI 用のドライバをインストールするには 1. yum update コマンドを実行して、インスタンスのパッケージの最新バージョンを取得します。 [ec2-user ~]$ sudo yum update -y 2. インスタンスを再起動して、最新のカーネルバージョンを読み込みます。 [ec2-user ~]$ sudo reboot 3. 再起動後にインスタンスに再接続します。 4. 現在実行しているカーネルのバージョン用の gcc コンパイラおよび kernel-devel パッケージ をインストールします。 [ec2-user ~]$ sudo yum install -y gcc kernel-devel-`uname -r` 5. 前の手順で特定したドライバパッケージをダウンロードします。たとえば、次のコマンドで は、P2 インスタンスの NVIDIA ドライバの 352.99 バージョンがダウンロードされます。 [ec2-user ~]$ wget http://us.download.nvidia.com/XFree86/Linuxx86_64/352.99/NVIDIA-Linux-x86_64-352.99.run 6. NVIDIA ドライバをインストールするための自己インストールスクリプトを実行します。以下に例 を示します。 [ec2-user ~]$ sudo /bin/bash ./NVIDIA-Linux-x86_64-352.99.run 7. インスタンスを再起動します。 [ec2-user ~]$ sudo reboot 8. ドライバが機能していることを確認します。次のコマンドのレスポンスに、インストールされた NVIDIA ドライババージョンおよび GPU に関する詳細が表示されます。 Note このコマンドの実行には数分かかることがあります。 [ec2-user ~]$ nvidia-smi -q | head ==============NVSMI LOG============== Timestamp Driver Version : Thu Aug 25 04:59:03 2016 : 352.99 Attached GPUs GPU 0000:00:04.0 Product Name Product Brand : 8 : Tesla K80 : Tesla 187 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 高速コンピューティングインスタンス 9. (P2 インスタンスのみ) P2 インスタンスを使用している場合は、次のセクションの最適化手順を 実行して GPU のベストパフォーマンスを達成します。 GPU 設定の最適化 (P2 インスタンスのみ) P2 インスタンスで最大のパフォーマンスを実現するための GPU 設定の最適化には、さまざまなもの があります。デフォルトでは、NVIDIA ドライバは自動ブースト機能を使用しますが、これは GPU ク ロック速度に左右されます。自動ブースト機能を無効にし、GPU クロック速度を最大周波数に設定す ることで、安定して P2 インスタンスで最大パフォーマンスを実現できます。次の手順では、GPU 設 定を永続的に設定し、自動ブースト機能を無効化して、GPU クロック速度を最大周波数に設定しま す。 P2 GPU 設定を最適化するには 1. GPU 設定を永続的になるように設定します。 Note このコマンドの実行には数分かかることがあります。 [ec2-user ~]$ sudo nvidia-smi -pm 1 Enabled persistence mode for GPU 0000:00:0F.0. Enabled persistence mode for GPU 0000:00:10.0. Enabled persistence mode for GPU 0000:00:11.0. Enabled persistence mode for GPU 0000:00:12.0. Enabled persistence mode for GPU 0000:00:13.0. Enabled persistence mode for GPU 0000:00:14.0. Enabled persistence mode for GPU 0000:00:15.0. Enabled persistence mode for GPU 0000:00:16.0. Enabled persistence mode for GPU 0000:00:17.0. Enabled persistence mode for GPU 0000:00:18.0. Enabled persistence mode for GPU 0000:00:19.0. Enabled persistence mode for GPU 0000:00:1A.0. Enabled persistence mode for GPU 0000:00:1B.0. Enabled persistence mode for GPU 0000:00:1C.0. Enabled persistence mode for GPU 0000:00:1D.0. Enabled persistence mode for GPU 0000:00:1E.0. All done. 2. インスタンスのすべての GPU で自動ブースト機能を無効にします。 [ec2-user ~]$ sudo nvidia-smi --auto-boost-default=0 All done. 3. すべての GPU クロック速度を最大周波数に設定します。 [ec2-user ~]$ sudo nvidia-smi -ac 2505,875 Applications clocks set to "(MEM 2505, SM 875)" Applications clocks set to "(MEM 2505, SM 875)" Applications clocks set to "(MEM 2505, SM 875)" Applications clocks set to "(MEM 2505, SM 875)" Applications clocks set to "(MEM 2505, SM 875)" Applications clocks set to "(MEM 2505, SM 875)" Applications clocks set to "(MEM 2505, SM 875)" Applications clocks set to "(MEM 2505, SM 875)" Applications clocks set to "(MEM 2505, SM 875)" 188 for for for for for for for for for GPU GPU GPU GPU GPU GPU GPU GPU GPU 0000:00:0F.0 0000:00:10.0 0000:00:11.0 0000:00:12.0 0000:00:13.0 0000:00:14.0 0000:00:15.0 0000:00:16.0 0000:00:17.0 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス Applications Applications Applications Applications Applications Applications Applications All done. clocks clocks clocks clocks clocks clocks clocks set set set set set set set to to to to to to to "(MEM "(MEM "(MEM "(MEM "(MEM "(MEM "(MEM 2505, 2505, 2505, 2505, 2505, 2505, 2505, SM SM SM SM SM SM SM 875)" 875)" 875)" 875)" 875)" 875)" 875)" for for for for for for for GPU GPU GPU GPU GPU GPU GPU 0000:00:18.0 0000:00:19.0 0000:00:1A.0 0000:00:1B.0 0000:00:1C.0 0000:00:1D.0 0000:00:1E.0 T1 マイクロインスタンス T1 マイクロインスタンス (t1.micro) は、少量かつ一定量の CPU リソースを提供し、追加サイクル が利用可能であるときは、CPU 処理能力を短期バーストとして増大させることができます。このタイ プが適しているのは、低スループットのアプリケーションやウェブサイトが定期的に追加計算サイク ルを必要とする場合です。 Note t1.micro は前世代のインスタンスであり、パフォーマンスプロファイルがはるかに優れた t2.micro に置き換えられました。t1.micro の代わりに t2.micro インスタンスタイプを 使用することをお勧めします。詳細については、「T2 インスタンス (p. 171)」を参照して ください。 t1.micro インスタンスは、Amazon EBS-Backed インスタンスとしてのみ利用できます。 このドキュメントでは、t1.micro インスタンスの動作とその適用方法について説明します。厳密な 動作を示すことを目的とはしていません。インスタンスの動作を明らかにして。パフォーマンスを把 握できるようにすることが目的です。 トピック • ハードウェア仕様 (p. 189) • T1 マイクロインスタンスの最適な用途 (p. 189) • スパイク中に利用可能な CPU リソース (p. 193) • インスタンスが割り当てられたリソースを使用する場合 (p. 193) • m1.small インスタンスタイプとの比較 (p. 196) • マイクロインスタンスの AMI 最適化 (p. 199) ハードウェア仕様 各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」 を参照してください。 T1 マイクロインスタンスの最適な用途 t1.micro インスタンスは、ワークロードの CPU 使用率のスパイク期間 (次の図を参照) に対応する ための CPU リソースを提供します。 189 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス インスタンスは、2 つの基本レベルの CPU 使用率のみで機能するように設計されています。1 つは通 常の低バックグラウンドレベルで、もう 1 つはバックグラウンドレベルよりはるかに高い短期スパイ クレベルです。インスタンスは、最大 2 つの EC2 コンピューティングユニット (ECU) で動作するこ とが許可されています (1 つの ECU が 1.0~1.2 GHz 2007 Opteron、または 2007 Xeon プロセッサと 同等の CPU 能力を提供)。最大レベルとバックグラウンドレベルとの比率は大きくなるように設計さ れています。t1.micro インスタンスは、アプリケーションで 1 分あたり数十のリクエストをサポー トするように設計されています。ただし実際のパフォーマンスは、アプリケーションで出された各リ クエストに必要な CPU リソースの量に応じて大幅に変わる可能性があります。 アプリケーションの CPU 使用率プロファイルは、前のセクションで説明したプロファイルと異なる 場合があります。次の図は、t1.micro インスタンスに適していないアプリケーションのプロファイ ルを表示しています。アプリケーションには、リクエストごとに連続したデータ処理 CPU リソース が必要であるため、CPU 使用率が長時間にわたって高レベルを維持する結果となり、t1.micro イン スタンスでは対処できません。 190 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス 次の図は、t1.micro インスタンスに不適切なもう 1 つのプロファイルを示しています。ここでは CPU 利用率のスパイクが簡易ですが、マイクロインスタンスでサービスできないほど頻発していま す。 191 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス 次の図は、t1.micro インスタンスに不適切なもう 1 つのプロファイルを示しています。ここではス パイクは頻発していませんが、スパイク間のバックグラウンドレベルが t1.micro インスタンスで対 処できないほど高くなっています。 192 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス t1.micro インスタンスに適切ではない前記の各ワークロードのケースでは、異なるインスタンスタ イプの使用をご検討いただくことをお勧めします。インスタンスタイプの詳細については、「インス タンスタイプ (p. 167)」を参照してください。 スパイク中に利用可能な CPU リソース 計算リソースの要求のスパイクに対応するためにインスタンスがバーストすると、ホスト上の未使用 のリソースが使用されます。利用可能な量は、スパイク発生時の競合の程度に応じて異なります。ホ スト上の他のインスタンスがスパイク中であるかどうかに関係なく、インスタンスには必ず CPU リ ソースが適用されます。 インスタンスが割り当てられたリソースを使用する場合 ある期間内にはアプリケーションは CPU リソースの一部のみを使用するものと想定しています。 アプリケーションが、インスタンスに割り当てられた CPU リソースを超える量を使用する場合 は、CPU の使用レベルが低レベルになるように、一時的にインスタンスを制限します。インスタンス が割り当てられたすべてのリソースを使用し続けると、パフォーマンスが低下します。CPU の使用レ ベルを制限する時間を延長することで、インスタンスの再バーストが許可されるまでの時間を長くし ます。 t1.micro インスタンスの CloudWatch モニタリングを有効にすると、AWS マネジメントコンソー ル で「CPU 平均利用率」グラフを使用して、インスタンスが割り当てられているすべての CPU リ ソースを定期的に使用しているかどうかを判別できます。各期間の最大値を確認することをお勧めし ます。最大値が 100% である場合は、Auto Scaling を使用してスケールアウトする (t1.micro インス タンスを追加し、ロードバランサーを使用する) か、またはより大きいサイズのインスタンスタイプに 移行することをお勧めします。詳細については、Auto Scaling ユーザーガイド を参照してください。 193 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス 次の図は、前のセクションで使用した十分最適化されていない3つのプロファイルを示しており、イン スタンスが割り当てられたリソースをすべて使用するため、その CPU レベルを制限しなければなら ない例です。インスタンスが割り当てられたリソースをすべて使用する場合は、そのレベルを低バッ クグラウンドレベルに制限します。 次の図は、データ処理 CPU 使用率のプラトーが長い場合を示しています。CPU は許可される最大レ ベルに達し、その期間にインスタンスに割り当てられているリソースがすべて使用されるまで、その レベルを維持しています。その時点で、低バックグラウンドレベルで機能するようにインスタンスを 制限します。そのレベルより高いレベルまでバーストすることを許可するまで、低レベルが維持され ます。インスタンスは、割り当てられているリソースをすべて使用し、制限されるまで、そのレベル を維持します (グラフには示されていません)。 次の図では、要求が頻繁すぎる状況を示します。インスタンスは、ほんのいくつかのリクエストが出 された後に割り当てられているリソースを使用するため、それを制限します。制限を解除すると、イ ンスタンスはリクエストの処理に追いつくように CPU 使用率を最大限にするため、再度インスタン スを制限します。 194 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス 次の図では、バックグラウンドレベルが高すぎる状況を示します。インスタンスは、制限されること を目的として、最大 CPU レベルで機能し続けなければならないわけではありません。インスタンス を制限するのは、通常のバックグラウンドレベルを上回るレベルで機能し続け、割り当てられている リソースが一定期間にすべて使用される場合です。このような場合も (前の例を参照)、インスタンス の作業に遅れが出るため、インスタンスを制限します。 195 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス m1.small インスタンスタイプとの比較 t1.micro インスタンスは、時間によって異なるレベルの CPU リソースを提供します (最大 2 ECU)。比較すると、m1.small インスタンスタイプは常時 1 つの ECU を提供します。次の図は、相 違点を示しています。 196 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス 次の図では、t1.micro インスタンスの CPU 使用率を、これまでのセクションで説明したさまざまな シナリオの m1.small インスタンスと比較しています。 最初の図は、t1.micro インスタンスの最適なシナリオ (左側のグラフ) と、m1.small インスタン スの場合の状態 (右側のグラフ) を示しています。この場合は、t1.micro インスタンスを制限する 必要はありません。m1.small インスタンスでの処理時間は、t1.micro インスタンスと比較する と、CPU 要求のスパイクごとに長くなっています。 197 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス 次の図は、t1.micro インスタンスに割り当てられたリソースがすべて使い切られたためにデータ処 理リクエストが出されたというシナリオと、m1.small インスタンスの場合の状態を示しています。 次の図は、データ処理リクエストが頻繁に出されたため t1.micro インスタンスの割り当てリソース がすべて使い果たされたというシナリオと、m1.small インスタンスの場合の状態を示しています。 198 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド T1 マイクロインスタンス 次の図は、バックグラウンドレベルで t1.micro インスタンスに割り当てられたリソースがすべて使 い切られた状況と、m1.small インスタンスの場合の状態を示しています。 マイクロインスタンスの AMI 最適化 t1.micro インスタンスタイプに合わせて AMI を最適化するときは、以下のベストプラクティスにし たがうことをお勧めします。 • 600 MB の RAM で実行されるように AMI を設計する • CPU 時間を使用する定期プロセス (例: cron ジョブ、デーモン) の数を制限する スワップ領域と仮想メモリを使用してパフォーマンスを最適化できます (たとえば、ルートファイルシ ステムとは別のパーティションにスワップ領域をセットアップできます)。 199 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスのサイズ変更 インスタンスのサイズ変更 ニーズが変わるにつれて、インスタンスの利用率が高すぎたり (インスタンスタイプが小さすぎる)、 低すぎたりする (インスタンスタイプが大きすぎる) ことに気付く場合があります。このような場合 は、インスタンスのサイズを変更できます。たとえば、t2.micro インスタンスがワークロードに対 して小さすぎる場合は、m3.medium インスタンスに変更できます。 インスタンスのルートデバイスが EBS ボリュームの場合は、インスタンスタイプを変更するだけでイ ンスタンスのサイズを変更できます。この処理はサイズ変更と呼ばれます。インスタンスのルートデ バイスがインスタンスストアボリュームの場合、使用するインスタンスタイプで新しいインスタンス にアプリケーションを移行する必要があります。ルートデバイスボリュームの詳細については、ルー トデバイスのストレージ (p. 77) を参照してください。 インスタンスのサイズを変更すると、インスタンスの設定と互換性のあるインスタンスタイプを選択 する必要があります。使用するインスタンスタイプに既存のインスタンス設定との互換性がない場 合、使用するインスタンスタイプで新しいインスタンスにアプリケーションを移行する必要がありま す。 Important インスタンスのサイズを変更すると、サイズ変更したインスタンスには通常、元のインスタ ンスの起動時に指定したのと同じ数のインスタンスストアボリュームが設定されます。イ ンスタンスストアボリュームを追加する場合、使用するインスタンスタイプとインスタンス ストアボリュームで新しいインスタンスにアプリケーションを完全に移行する必要がありま す。このルールの例外は、デフォルトで大量のボリュームを含む、ストレージを大量に消費 するインスタンスタイプをサイズ変更する場合です。インスタンスストアボリュームの詳細 については、Amazon EC2 インスタンスストア (p. 846) を参照してください。 目次 • インスタンスのサイズ変更の互換性 (p. 200) • Amazon EBS-Backed インスタンスのサイズ変更 (p. 201) • Instance Store-Backed インスタンスの移行 (p. 202) • 新しいインスタンス設定への移行 (p. 203) インスタンスのサイズ変更の互換性 現在のインスタンスタイプおよび使用する新しいインスタンスタイプが次のように互換性がある場合 にのみ、インスタンスのサイズを変更することができます。 • 仮想化タイプ. Linux AMI では、2 つの仮想化タイプ (準仮想化 (PV) およびハードウェア仮想マシン (HVM) ) のどちらかを使用します。PV AMI から起動されたインスタンスのサイズを、HVM のみで あるインスタンスタイプに変更することはできません。詳細については、「Linux AMI 仮想化タイ プ (p. 80)」を参照してください。 • ネットワーク. 一部のインスタンスタイプは、EC2-Classic でサポートされていないため、VPC で 起動する必要があります。そのため、EC2-Classic では、デフォルト以外の VPC がない場合にイン スタンスのサイズを VPC でのみ利用可能なインスタンスタイプに変更することはできません。詳細 については、「VPC でのみ利用可能なインスタンスタイプ (p. 648)」を参照してください。 • プラットフォーム. すべての Amazon EC2 インスタンスタイプは 64 ビット AMI をサポー トしますが、32 ビット AMI をサポートするのは以下のインスタンスタイプのみです: t2.nano、t2.micro、t2.small、t2.medium、c3.large、t1.micro、m1.small、m1.medium、c1.medium。3 ビットインスタンスのサイズを変更する場合は、これらのインスタンスタイプに制限されます。 たとえば、T2 のインスタンスは、EC2-Classic ではサポートされず、HVM のみです。したがっ て、T1 インスタンスは HVM をサポートしていないために T1 インスタンスのサイズを T2 インスタ 200 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスのサイズ変更 ンスに変更することはできず、PV AMI から起動する必要があります。T2 インスタンスのサイズを もっと大きなインスタンスタイプに変更する場合は、現行世代のすべてのインスタンスタイプが HVM AMI をサポートするため、M3 のような現行世代の任意のインスタンスタイプを選択できます。詳細 については、「利用可能なインスタンスタイプ (p. 167)」を参照してください。 Amazon EBS-Backed インスタンスのサイズ変更 Amazon EBS-Backed インスタンスタイプを変更するには、そのインスタンスを停止する必要があり ます。インスタンスを停止して再度起動するときは、以下に注意してください: • インスタンスは新しいハードウェアに移動されますが、インスタンス ID は変更されません。 • インスタンスが VPC で実行されていてパブリック IPv4 アドレスがある場合には、このアドレスは 解放されて、新しいパブリック IPv4 アドレスになります。インスタンスは、プライベート IPv4 ア ドレス、Elastic IP アドレス、および IPv6 アドレスを保持します。 • インスタンスを EC2-Classic で実行している場合、新しいパブリック IP アドレスとプライベート IP アドレスが与えられ、インスタンスに関連付けられている Elastic IP アドレスの関連付けが解除 されます。 したがって、インスタンスでホストしているアプリケーションをユーザーが中断なく継 続して使用できるようにするには、インスタンスの再起動後、Elastic IP アドレスを再度関連付ける 必要があります。 • インスタンスが Auto Scaling グループにある場合、Auto Scaling サービスはインスタンスを異常と 判断して停止し、代わりのインスタンスを起動することがあります。 これを防ぐためには、Auto Scaling プロセスを中断してインスタンスのサイズを変更することができます。 詳細について は、Auto Scaling ユーザーガイド の「自動スケーリングプロセスの停止と再開」を参照してくださ い。 詳細については、「インスタンスの停止と起動 (p. 327)」を参照してください。 AWS マネジメントコンソール を使って Amazon EBS-Backed インスタンスのサイズを変更するに は、次の手順を行います。 Amazon EBS-Backed インスタンスのサイズを変更するには 1. Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。 3. [EC2-Classic] インスタンスに関連付けられた Elastic IP アドレスがある場合は、詳細ペインに表 示された Elastic IP アドレスとインスタンス ID を書き留めます。 4. [Actions] を選択して [Instance State] を選択し、[Stop] を選択します。 5. 確認ダイアログボックスで [Yes, Stop] を選択します。インスタンスが停止するまで、数分かかる 場合があります。 [&EC2Classic;] インスタンスの状態が stopped になると、詳細ペインの [Elastic IP]、[Public DNS (IPv4)]、[Private DNS]、および [Private IPs] の各フィールドは空白になり、古い値がインス タンスと関連付けられなくなったことを示します。 6. インスタンスが選択されたままの状態で [Actions] を選択し、[Instance Settings] を選択して [Change Instance Type] を選択します。インスタンスの状態が stopped ではない場合、このアク ションは無効になるので注意してください。 7. [Change Instance Type] ダイアログボックスで、次の操作を行います。 a. [インスタンスタイプ] から、使用するインスタンスタイプを選択します。使用するインスタ ンスタイプがリストに表示されない場合は、インスタンスの設定と互換性がありません (仮想 化タイプが原因の場合など)。 b. (オプション) 選択したインスタンスタイプが EBS 最適化をサポートしている場合は、[EBSoptimized] を選択して EBS 最適化を有効にするか、[EBS-optimized] を選択解除して EBS 最 適化を無効にします。選択したインスタンスタイプがデフォルトで EBS 最適化される場合、 [EBS-optimized] が選択されており、選択解除できないことに注意してください。 201 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスのサイズ変更 c. [Apply] を選択して、新しい設定を受け入れます。 8. 停止されているインスタンスを再起動するには、インスタンスを選択し、[Actions] を選択して [Instance State] を選択した後、[Start] を選択します。 9. 確認ダイアログボックスで [Yes, Start] を選択します。インスタンスが running 状態になるま で、数分かかる場合があります。 10. [&EC2Classic;] インスタンスの状態が running になると、詳細ペインの [Public DNS (IPv4)]、 [Private DNS]、および [Private IPs] の各フィールドには、インスタンスに割り当てられた新しい 値が入ります。インスタンスに関連する Elastic IP アドレスがある場合は、次のようにして再び 関連付ける必要があります。 a. b. ナビゲーションペインで [Elastic IPs] を選択します。 インスタンスを停止する前に書き留めた Elastic IP アドレスを選択します。 c. [Actions] を選択し、次に [Associate address] を選択します。 d. [Instance] から、インスタンスを停止する前に書き留めたインスタンス ID を選択し、 [Associate] を選択します。 Instance Store-Backed インスタンスの移行 1 つの instance store-backed インスタンスから別のインスタンスタイプの instance store-backed イン スタンスにアプリケーションを移動する場合は、インスタンスからイメージを作成し、このイメージ から必要なインスタンスタイプで新しいインスタンスを起動することにより、移行する必要がありま す。インスタンスでホストしているアプリケーションをユーザーが中断なく継続して使用できるよう にするには、元のインスタンスに関連付けられた Elastic IP アドレスを新しいインスタンスに関連付 ける必要があります。その後、元のインスタンスを終了できます。 Instance Store-Backed インスタンスを移行するには 1. [EC2-Classic] 移行するインスタンスに Elastic IP アドレスが関連付けられている場合は、後で新 しいインスタンスに関連付けることができるように Elastic IP アドレスを書き留めます。 2. 永続的ストレージに保持する必要がある、インスタンスストアボリュームのデータをバックアッ プします。保持する必要がある EBS ボリュームのデータを移行するには、ボリュームのスナップ ショットを作成するか (「Amazon EBS スナップショットの作成 (p. 806)」を参照)、またはイ ンスタンスからボリュームをデタッチして後で新しいインスタンスにアタッチできるようにしま す (「インスタンスからの Amazon EBS ボリュームのデタッチ (p. 788)」を参照)。 Instance Store-Backed インスタンスから AMI を作成するには、「Instance Store-Backed Linux AMI の作成 (p. 100)」に記載された前提条件と手順に従います。インスタンスから AMI を作成し たら、この手順に戻ります。 3. 4. ナビゲーションペインで Amazon EC2 コンソールを開き、[AMIs] を選択します。フィルタリスト で [Owned by me] を選択し、前のステップで作成したイメージを選択します。[AMI Name] は、 イメージを登録したときに指定した名前であり、[Source] は Amazon S3 バケットです。 Note 5. 前のステップで作成した AMI が表示されない場合は、AMI を作成したリージョンを選択 していることを確認します。 [Launch] を選択します。インスタンスに対してオプションを指定する場合は、使用する新しいイ ンスタンスタイプを選択してください。使用するインスタンスタイプを選択できない場合は、作 成した AMI の構成と互換性がありません (仮想化タイプが原因の場合など)。元のインスタンスか らデタッチした EBS ボリュームを指定することもできます。 インスタンスが running 状態になるまで、数分かかる場合があるので注意してください。 6. [EC2-Classic] 起動したインスタンスに関連する Elastic IP アドレスがある場合は、次のようにし て新しいインスタンスと関連付ける必要があります。 a. ナビゲーションペインで [Elastic IPs] を選択します。 202 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスのサイズ変更 7. b. この手順の最初に書き留めた Elastic IP アドレスを選択します。 c. [Actions] を選択し、次に [Associate Address] を選択します。 d. [Instance] から新しいインスタンスを選択し、[Associate] を選択します。 (オプション) 不要になった場合は、起動したインスタンスを終了できます。インスタンスを選 択し、終了しようとしているのが新しいインスタンスではなく元のインスタンスであることを 確認します (名前や起動時間を確認するなど)。[Actions] を選択して [Instance State] を選択し、 [Terminate] を選択します。 新しいインスタンス設定への移行 インスタンスの現在の設定に使用する新しいインスタンスタイプとの互換性がない場合、そのインス タンスタイプにインスタンスのサイズを変更することはできません。代わりに、使用する新しいイン スタンスタイプと互換性がある設定で新しいインスタンスにアプリケーションを移行できます。 PV AMI から起動されたインスタンスから HVM のみのインスタンスタイプに移動する場合、一般的な 手順は次のとおりです。 1. 永続的ストレージに保持する必要がある、インスタンスストアボリュームのデータをバックアッ プします。保持する必要がある EBS ボリュームのデータを移行するには、ボリュームのスナップ ショットを作成するか (「Amazon EBS スナップショットの作成 (p. 806)」を参照)、またはイ ンスタンスからボリュームをデタッチして後で新しいインスタンスにアタッチできるようにしま す (「インスタンスからの Amazon EBS ボリュームのデタッチ (p. 788)」を参照)。 2. 新しいインスタンスを起動して、以下のものを選択します。 • HVM AMI • HVM のみのインスタンスタイプ。 • [EC2-VPC] Elastic IP アドレスを使用している場合は、元のインスタンスを現在実行している VPC を選択します。 • 元のインスタンスからデタッチして新しいインスタンスにアタッチする EBS ボリューム、また は作成したスナップショットに基づいた新しい EBS ボリューム。 • 同じトラフィックが新しいインスタンスに到達できるようにする場合は、元のインスタンスと 関連付けられるセキュリティグループを選択します。 3. アプリケーションと必要なソフトウェアをインスタンスにインストールします。 4. 元のインスタンスのインスタンスストアボリュームからバックアップしたデータを復元します。 5. Elastic IP アドレスを使用している場合、以下のように新しく起動したインスタンスにそのアドレ スを割り当てます。 6. a. ナビゲーションペインで [Elastic IPs] を選択します。 b. 元のインスタンスに関連付ける Elastic IP アドレスを選択して、[Actions]、[Disassociate address] の順に選択します。確認を求めるメッセージが表示されたら、[Disassociate address] を選択します。 c. Elastic IP アドレスがまだ選択された状態で、[Actions]、[Associate address] の順に選択しま す。 d. [Instance] から新しいインスタンスを選択し、[Associate] を選択します。 (オプション) 不要になった場合は、元のインスタンスを終了できます。インスタンスを選択し、 終了しようとしているのが新しいインスタンスではなく元のインスタンスであることを確認しま す (名前や起動時間を確認するなど)。[Actions] を選択して [Instance State] を選択し、[Terminate] を選択します。 EC2-Classic 内のインスタンスから VPC 内のインスタンスにアプリケーションを移行する方法 の詳細については、「EC2-Classic の Linux インスタンスから VPC の Linux インスタンスへの移 行 (p. 661)」を参照してください。 203 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンス購入オプション インスタンス購入オプション Amazon EC2 には、ニーズに基づいてコストを最適化するための以下の購入オプションがあります。 • オンデマンドインスタンス — 起動するインスタンスに対して時間単位でお支払いいただきます。 • リザーブドインスタンス — 1~3 年の期間で、常に使用できるインスタンスを大幅な割引で購入し ます。 • スケジュールされたインスタンス — 1 年の期間、指定された定期的なスケジュールで常に使用でき るインスタンスを購入します。 • スポットインスタンス — 未使用のインスタンスに入札します。それらのインスタンスは、使用可能 で、入札金額がスポット料金よりも高い限り、大幅な割引で実行できます。 • 専用ホスト — 完全にインスタンスの実行専用の物理ホストに対してお支払いいただき、既存のソ ケット単位、コア単位、または VM 単位のソフトウェアライセンスを持ち込んでコストを削減でき ます。 • ハードウェア専有インスタンス — シングルテナントハードウェアで実行されるインスタンスに対し て、時間単位でお支払いいただきます。 キャパシティーの予約が必要な場合は、リザーブドインスタンスまたはスケジュールされたインスタ ンスを検討してください。スポットインスタンスは、アプリケーションを実行する時間に柔軟性があ る場合や、それらを中断できる場合に、費用効率の高い選択肢です。専有ホストは、既存のサーバー 範囲内のソフトウェアライセンスを使用することにより、コンプライアンス要件を満たし、コストを 削減するのに役立ちます。詳細については、「Amazon EC2 インスタンス購入オプション」を参照し てください。 目次 • インスタンスのライフサイクルの決定 (p. 204) • リザーブドインスタンス (p. 205) • スケジュールされたリザーブドインスタンス (p. 230) • スポットインスタンス (p. 234) • Dedicated Hosts (p. 283) • ハードウェア専有インスタンス (p. 294) インスタンスのライフサイクルの決定 インスタンスのライフサイクルは起動時に開始され、終了時に終了されます。選択する購入オプショ ンにより、インスタンスのライフサイクルに影響があります。たとえば、起動時にオンデマンドイ ンスタンスが実行され、終了時に実行が終了されます。スポットインスタンスは、キャパシティーが 利用可能で、入札価格がスポット料金より高い限り実行されます。スケジュールされたインスタンス は、スケジュールされた期間中に起動できます。Amazon EC2 はインスタンスを起動し、期間終了の 3 分前に終了します。 次の手順を使用して、インスタンスのライフサイクルを決定します。 コンソールを使用してインスタンスのライフサイクルを決定するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択します。 4. [Description] タブで [Tenancy] を見つけます。値が host の場合、インスタンスは Dedicated Host で実行されています。値が dedicated の場合、インスタンスはハードウェア専有インスタ ンスです。 204 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス 5. [Description] タブで [Lifecycle] を見つけます。値が spot の場合、インスタンスはスポットイン スタンスです。値が scheduled の場合、インスタンスはスケジュールされたインスタンスで す。値が normal の場合、インスタンスはオンデマンドインスタンスまたはリザーブドインスタ ンスです。 6. (オプション) リザーブドインスタンスを購入し、適用されていることを確認するには、Amazon EC2 の使用状況レポートを確認できます。詳細については、「リザーブドインスタンスの使用率 レポート (p. 907)」を参照してください。 AWS CLIを使用してインスタンスのライフサイクルを決定するには 次の describe-instances コマンドを使用します。 aws ec2 describe-instances --instance-ids i-1234567890abcdef0 インスタンスが Dedicated Host で実行されている場合、出力には次の情報が含まれます。 "Tenancy": "host" インスタンスがハードウェア専有インスタンスの場合、出力には次の情報が含まれます。 "Tenancy": "dedicated" インスタンスがスポットインスタンスの場合、出力には次の情報が含まれます。 "InstanceLifecycle": "spot" インスタンスがスケジュールされたインスタンスの場合、出力には次の情報が含まれます。 "InstanceLifecycle": "scheduled" それ以外の場合、出力には次の情報が含まれます。 "InstanceLifecycle": "normal" リザーブドインスタンス リザーブドインスタンスでは、オンデマンドインスタンスの料金と比べて大幅な割引を受けられま す。加えて、リザーブドインスタンスは特定のアベイラビリティーゾーンに割り当てられ、キャパシ ティーの予約が行われます。詳細については、「リザーブドインスタンスの支払いオプションの選 択 (p. 209)」を参照してください。 リザーブドインスタンスは、リザーブドインスタンスの属性に一致する実行中の EC2 インスタンスに 自動的に適用されます。そのため、米国東部(バージニア北部) 用に 2 つの c4.xlarge default テ ナンシー Linux リザーブドインスタンスを購入した場合は、米国東部(バージニア北部) リージョン で実行中の最大 2 つの c4.xlarge default テナンシー Linux インスタンスで、リザーブドインスタ ンスの割引を受けることができます。特定のアベイラビリティーゾーン用にリザーブドインスタンス を購入した場合も、同じロジックが適用されます。ただし、アベイラビリティーゾーンに固有の各リ ザーブドインスタンスでも、キャパシティーの予約は行われます。 リザーブドインスタンスを購入するときは、ニーズに適した支払いオプション、契約条件、イン スタンスクラスを選択します。一般的には、前払い額がより高いリザーブドインスタンスを選択 205 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス するほど、より多くの費用を節約できます。3 つの支払いオプション (前払いなし、一部前払い、 全額前払い) と 2 つの契約期間 (1 年または 3 年) があります。サードパーティーの販売者によっ て提供される、より短期間で安価なリザーブドインスタンスもあります。インスタンスクラス は、Convertible リザーブドインスタンスと Standard リザーブドインスタンスを区別するために使用 されます。Convertible リザーブドインスタンスは、契約期間中、インスタンスタイプなどの属性を変 更した別の Convertible リザーブドインスタンスに交換できます。Standard リザーブドインスタンス は、契約期間中、変更できますがインスタンスタイプは固定されます。 リザーブドインスタンスを購入すると、予約は指定したパラメーターに一致する実行中のインスタン スに自動的に適用されます。あるいは、予約と同じ設定でオンデマンド EC2 インスタンスを起動し、 料金上の利点が自動的に適用されるようにすることもできます。前払いまたは一部前払いリザーブド インスタンスは、使用されているかどうかに関わらず、時間単位で使用料金が請求されます。全前払 いのリザーブドインスタンスには追加の時間単位料金はありません。 リザーブドインスタンスは自動的に更新されません。中断なく EC2 インスタンスを使い続けることが できますが、オンデマンド料金が課金されます。新しいリザーブドインスタンスに失効したものと同 じパラメーターを持たせることも、異なるパラメーターのリザーブドインスタンスを購入することも できます。 Auto Scaling または他の AWS サービスを使用して、リザーブドインスタンスのメリットを利用する オンデマンドインスタンスを起動できます。 インスタンスを起動する方法については、「オンデマン ドインスタンスの起動」を参照してください。Auto Scaling を使用したインスタンスの起動について は、Auto Scaling ユーザーガイドを参照してください。 製品の料金については、次のページを参照してください。 • AWS サービス料金の概要 • Amazon EC2 On-Demand Instances Pricing • Amazon EC2 Reserved Instance Pricing • リザーブドインスタンスの料金範囲の詳細については、「リザーブドインスタンス割引料金範囲に ついて (p. 211)」を参照してください。 Note 軽度使用、中度使用、重度使用リザーブドインスタンスは、今後購入できません。リザーブ ドインスタンスの料金モデルに対する変更が、これらのオプションに及ぼす影響の詳細につ いては、「リザーブドインスタンスについてのよくある質問」を参照してください。 トピック • リザーブドインスタンスのタイプ (p. 206) • リザーブドインスタンスとは何ですか? (p. 207) • 請求メリットおよびお支払い方法 (p. 209) • リザーブドインスタンスを購入する (p. 213) • リザーブドインスタンスマーケットプレイス で販売する (p. 217) • Standard リザーブドインスタンスの変更 (p. 224) • Convertible リザーブドインスタンスの交換 (p. 229) • 変更リクエストのトラブルシューティング (p. 230) リザーブドインスタンスのタイプ Standard リザーブドインスタンスは、1 年または 3 年の契約期間で購入でき、その期間中、1 つのイ ンスタンスファミリー、プラットフォーム、スコープ、テナンシーに適用されます。 206 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス Convertible リザーブドインスタンスは、3 年の契約期間で購入でき、その期間中、インスタンスファ ミリー、プラットフォーム、テナンシー、またはスコープを変更した別の Convertible リザーブドイン スタンスに交換できます。 Standard と Convertible のいずれのリザーブドインスタンスも、特定のアベイラビリティーゾーン内 のインスタンスに、またはリージョン内のインスタンスに適用するために購入できます。特定のアベ イラビリティーゾーン用に購入したリザーブドインスタンスは、リージョンに適用されるように変更 できますが、そうすることで、関連付けられるキャパシティーの予約は行われなくなります。 Convertible リザーブドインスタンスは、インスタンスタイプ、プラットフォーム、範囲、テナン シーなどの設定を変更した別の Convertible リザーブドインスタンスに交換できます。この方法で Standard リザーブドインスタンスを交換することはできません。リザーブドインスタンスの範囲 は購入後に変更することはできません。詳細については、「Standard リザーブドインスタンスの変 更 (p. 224)」および「Convertible リザーブドインスタンスの交換 (p. 229)」を参照してください。 リザーブドインスタンスとは何ですか? Amazon EC2 リザーブドインスタンスと リザーブドインスタンスマーケットプレイス は、お客様が ビジネスを運営する上で強力かつ低コストの戦略として利用できます。しかし、リザーブドインスタ ンスや リザーブドインスタンスマーケットプレイス を使用する前に、お客様が購入および販売の要件 を満たしていることをご確認ください。また、リザーブドインスタンスおよび リザーブドインスタン スマーケットプレイス の一定の要素について、詳細と制限を理解する必要があります。販売者として の登録、銀行、AWS 無料利用枠、キャンセルしたインスタンスの扱いなどです。このトピックは、リ ザーブドインスタンスを購入および販売するとき、および リザーブドインスタンスマーケットプレイ ス で売買を行うときのチェックリストとして使用してください。 Note リザーブドインスタンスを購入および変更するには、アベイラビリティーゾーンの表示な ど、IAM ユーザーアカウントに適切なアクセス許可があることを確認します。詳細について は、「AWS CLI または AWS SDK で使用するサンプルポリシー」および「Amazon EC2 コン ソールで使用するサンプルポリシー」を参照してください。 ご利用開始にあたって • AWS アカウント – リザーブドインスタンスを購入するには、AWS アカウントが必要です。AWS アカウントをお持ちでない場合は、「Amazon EC2 でのセットアップ (p. 21)」を参照し、Amazon EC2 アカウントの登録と認証に関する情報を読み、指示に従ってください。 • AWS の無料利用枠 – AWS の無料利用枠は、新しい AWS アカウントで使用できます。AWS の無料 利用枠を使用して Amazon EC2 インスタンスを実行している場合、リザーブドインスタンスを購入 すると、そのリザーブドインスタンスは標準の料金ガイドラインに基づいて課金されます。適用さ れるサービスと使用料については、「AWS 無料利用枠」を参照してください。 リザーブドインスタンスを購入する • 使用量 – リザーブドインスタンスでは、インスタンスを使用するかどうかに関係なく、全期間の料 金をお支払いいただきます。 • 購入に対する範囲による割引 – リザーブドインスタンスの価格範囲割引は、AWS からの購入にのみ 適用されます。この種の割引は、サードパーティのリザーブドインスタンスの購入には適用されま せん。詳細については、リザーブドインスタンス割引料金範囲について (p. 211) を参照してくだ さい。 • 購入のキャンセル – 購入を承認する前に、購入しようとしているリザーブドインスタンスの詳細を 見て、すべてのパラメーターが正しいことを確認してください。リザーブドインスタンスを購入し た後では (リザーブドインスタンスマーケットプレイス でサードパーティーの販売者から、または AWS のいずれの場合も)、購入をキャンセルすることはできません。ただし、ニーズが変化したと 207 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス きにリザーブドインスタンスを売却できる場合はあります。詳細については、リザーブドインスタ ンスの出品 (p. 220) を参照してください。 リザーブドインスタンスの販売と リザーブドインスタンスマーケットプレイ ス • Convertible リザーブドインスタンス - リザーブドインスタンスマーケットプレイス で販売できるの は、Amazon EC2 Standard リザーブドインスタンスのみです。Convertible リザーブドインスタン スを販売することはできません。 • リザーブドインスタンスの範囲—容量予約のある標準スタンダードリザーブドインスタンスのみが リザーブドインスタンスマーケットプレイス で販売可能です。リージョン特典のあるリザーブドイ ンスタンスは販売できません。 • 販売者の要件 – リザーブドインスタンスマーケットプレイス で販売者になるには、販売者として登 録する必要があります。詳細については、リザーブドインスタンスの出品 (p. 220) を参照してく ださい。 • 銀行の要件 - AWS では、予約の販売時に集金された金額をお支払いするために、お客様の銀行情報 が必要です。住所が米国内の銀行でなければなりません。詳細については、「銀行口座 (p. 218)」 を参照してください。 • 税金の要件 - Standard リザーブドインスタンスの取引数が 50 件以上ある販売者や 20,000 USD 以 上の出品を予定している販売者は、税務上の理由から、ビジネスに関する追加情報を提供する必要 があります。詳細については、税金情報 (p. 219) を参照してください。 • 最低販売価格 – リザーブドインスタンスマーケットプレイス で許容される最低販売価格は、0.00 USD です。 • Standard リザーブドインスタンスを販売できる時期 - Standard リザーブドインスタンスを販売でき るのは、AWS が前払い料金を受け取り、予約がアクティブになってから (所有してから) 少なくと も 30 日が経過してからです。さらに、出品する Standard リザーブドインスタンスの残りの有効期 間が 1 か月以上あることが必要です。 • 出品の変更 – リザーブドインスタンスマーケットプレイス で出品を直接変更することはできませ ん。ただし、最初に出品をキャンセルしてから、新しいパラメーターで別の出品を作成することは できます。詳細については、リザーブドインスタンスの価格決定 (p. 220) を参照してください。 出品する前にリザーブドインスタンスを変更することもできます。詳細については、Standard リ ザーブドインスタンスの変更 (p. 224) を参照してください。 • 割引された Standard リザーブドインスタンスの販売 - 料金範囲割引が適用された価格で購入し た Amazon EC2 Standard リザーブドインスタンスは、リザーブドインスタンスマーケットプレイ ス で販売することはできません。詳細については、「リザーブドインスタンスマーケットプレイ ス (p. 209)」を参照してください。 • サービス料 - AWS リザーブドインスタンスマーケットプレイス で販売する各 Standard リザーブド インスタンスに対しては、前払い価格の総額の 12% がサービス料として課金されます (前払い価格 は、販売者が販売する Standard リザーブドインスタンスに課金する価格です)。 • その他の AWS リザーブドインスタンス - リザーブドインスタンスマーケットプレイス で販売で きるのは、Amazon EC2 Standard リザーブドインスタンスのみです。Amazon RDS や Amazon ElastiCache リザーブドインスタンスなどの他の AWS リザーブドインスタンスは、リザーブドイン スタンスマーケットプレイス では販売できません。 VPC でのリザーブドインスタンスの使用 VPC にインスタンスを起動し、Standard および Convertible リザーブドインスタンスを活用できま す。詳細については、「What is Amazon VPC.」を参照してください (「Amazon VPC ユーザーガイ ド」)。 EC2 Classic アカウントを持っている場合、リザーブドインスタンスを購入し、名前に Amazon VPC が含まれるプラットフォームを選択して、デフォルト以外の VPC に起動されたインスタンスに適用す 208 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス ることができます。詳細については、「Detecting Your Supported Platforms and Whether You Have a Default VPC」を参照してください。 EC2-VPC のみのアカウントを持っている場合、使用可能なプラットフォームの一覧には、Amazon VPC を名前に含むものは表示されません。これは、すべてのプラットフォームがデフォルトのサブ ネットを持っているためです。予約した処理能力と同じ構成のインスタンスを起動し、そのインスタ ンスがデフォルトまたはデフォルト以外の VPC 内で起動する場合、処理能力の予約と請求のメリッ トが自動的にインスタンスに適用されます。詳細については、「デフォルトの VPC とサブネット」 (Amazon VPC ユーザーガイド) を参照してください。 また、専用インスタンステナンシーを指定すると、ホストハードウェアレベルで物理的に切り離され たリザーブドインスタンスを購入することもできます。詳細については、「ハードウェア専有インス タンス (p. 294)」を参照してください。 リザーブドインスタンスマーケットプレイス リザーブドインスタンスマーケットプレイス は、サードパーティーや AWS のお客様が購入した、さ まざまな期間と料金オプションの未使用 Standard リザーブドインスタンスの販売をサポートするプ ラットフォームです。たとえば、インスタンスを新しい AWS リージョンに移動した後や新しいイン スタンスタイプに変更した後のキャパシティーや、期限が切れる前に終了するプロジェクトのキャパ シティーを AWS のお客様が売却する場合などです。 リザーブドインスタンスマーケットプレイス により、お客様に固有のビジネスに合わせて、必要なイ ンスタンスタイプ、リージョン、期間の組み合わせに最も一致するリザーブドインスタンスを検索で きることで選択肢が増え、柔軟な選択が可能になります。Amazon EC2 インスタンスを リザーブドイ ンスタンスマーケットプレイス で購入した場合も、キャパシティーの予約については、AWS で直接 購入した Standard リザーブドインスタンスと同様です。 Note リザーブドインスタンスマーケットプレイス で販売できるのは、Amazon EC2 Standard リ ザーブドインスタンスのみになります。Amazon RDS や Amazon ElastiCache リザーブドイ ンスタンスなど他のタイプは、リザーブドインスタンスマーケットプレイス で販売すること はできません。 請求メリットおよびお支払い方法 リザーブドインスタンスの購入時、アベイラビリティーゾーンを指定して、料金上とキャパシティー 上の利点を得るか、リージョン用のリザーブドインスタンスを購入して、リージョン単位の料金上の 利点を得ることができます。 リザーブドインスタンスの料金上の利点は、アベイラビリティーゾーンまたはリージョンで仕様の一 致する実行中のインスタンスに自動的に適用されます。さらに、リザーブドインスタンスを購入して から、仕様の一致するオンデマンドインスタンスを起動することもできます。料金上の利点はこれら のインスタンスに自動的に適用されます。 特定のアベイラビリティーゾーン用にリザーブドインスタンスを購入すると、デフォルトでは EC2 に より、リザーブドインスタンスの設定に一致するそのアベイラビリティーゾーンでキャパシティーの 予約が行われます。キャパシティーの予約は、設定の一致するリザーブドインスタンスを所有するア カウントから起動する最初のインスタンスによって使用されます。 リザーブドインスタンスの支払いオプションの選択 リザーブドインスタンスには 3 種類の支払いオプションがあります。 • 前払いなし – 使用量にかかわらず、期間内のすべての時間は割引された時間料金で請求され、前払 い料金は必要ありません。このオプションは、1 年契約の Standard リザーブドインスタンスと 3 年 契約の Convertible リザーブドインスタンスでのみ選択できます。 209 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス Note 前払いなしのリザーブドインスタンスは、予約の全期間について毎月支払いを行う契約義 務に基づいています。そのため、前払いなしのリザーブドインスタンスを購入するアカウ ントには、問題のない請求履歴が必須となります。 • 一部前払い – 料金の一部を前払いする必要があり、期間内の残りの時間は、使用量にかかわらず、 割引された時間料金で請求されます。 • すべて前払い – 期間の開始時に全額が支払われ、使用時間数に関係なく、残りの期間にその他のコ ストは生じません。 時間単位請求について リザーブドインスタンスは、選択した期間内の 1 時間ごとに請求されます。インスタンスが実行中で あるかどうかは関係しません。インスタンス状態ごとの違いと、その違いが請求時間に与える影響に ついて理解しておくことは重要です。詳細については、「インスタンスのライフサイクル (p. 299)」 を参照してください。 リザーブドインスタンス請求のメリットは、1 時間あたり 1 つのインスタンス時間にのみ適用されま す。インスタンス時間は、インスタンスが起動されてから 60 分間継続したときか、インスタンスが 停止または終了されたときのいずれか早い方に開始します。1 時間は、深夜 0 時から深夜 0 時まで動 作する標準的な 24 時間時計と定義され、24 時間に分割されます (たとえば、1:00:00 ~ 1:59:59 が 1 時間です)。 新しいインスタンス時間は、インスタンスが連続する 60 分間実行された後、またはインスタンスが 停止して起動された場合に開始します。インスタンスを再起動しても、実行中のインスタンス時間は リセットされません。 たとえば、1 時間の間にインスタンスが停止されて起動され、さらに 2 時間実行を継続した場合、最 初の 1 時間 (再起動の前まで) が割引リザーブドインスタンス料金で課金されます。次のインスタンス 時間 (再起動の後) は、オンデマンド料金で課金され、次に 2 インスタンス時間は割引リザーブドイン スタンス料金で課金されます。 リザーブドインスタンスの使用率レポート (p. 907) セクションには、オンデマンドインスタンスを 実行した場合と比較したコスト削減を図解するサンプルレポートがあります。リザーブドインスタン スについてのよくある質問には、表示価格計算のサンプルがあります。 リザーブドインスタンスの適用方法 リザーブドインスタンスは、使用するリザーブドインスタンスのタイプ (Standard または Convertible) にかかわらず、同じ方法で適用されます。 実行中のインスタンスにリザーブドインスタンスを適用するには、実行中のインスタンスの設定に合 わせて、既存のリザーブドインスタンスを変更するか、アベイラビリティーゾーン (us-east-1b など) / リージョン、インスタンスタイプ (m3.large など)、プラットフォーム (Amazon Linux VPC など)、 テナンシー (default など) を選択してリザーブドインスタンスを購入することができます。 以下に示している例では、顧客がアカウント A で次のオンデマンドインスタンスを実行しているとし ます。 • us-east-1a アベイラビリティーゾーン内の 4 つの m3.large Linux default テナンシーインスタンス • us-east-1b アベイラビリティーゾーン内の 2 つの c4.xlarge Linux default テナンシーインスタン ス • us-east-1c アベイラビリティーゾーン内の 2 つの c4.xlarge Linux default テナンシーインスタン ス 顧客がアカウント A で次のリザーブドインスタンスを購入するとします。 210 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス • us-east-1a アベイラビリティーゾーン内の 4 つの m3.large Linux default リザーブドインスタンス (キャパシティーの予約あり) • us-east-1 アベイラビリティーゾーン内の 4 つの c4.xlarge Linux default テナンシーリザーブドイ ンスタンス • us-east-1c アベイラビリティーゾーン内の 1 つの d2.xlarge Linux default テナンシーリザーブド インスタンス リザーブドインスタンスの利点は以下のように適用されます。 • 4 つの m3.large リザーブドインスタンスの割引とキャパシティーの予約は、属性 (インスタンス サイズ、リージョン、プラットフォーム、テナンシー) の一致する m3.large インスタンスによっ て使用されます。 • 4 つの c4.xlarge リザーブドインスタンスの割引は、2 つの異なるアベイラビリティーゾーン (useast-1b と us-east-1c) が使用中でも、属性 (インスタンスサイズ、リージョン、プラットフォー ム、テナンシー) の一致する c4.xlarge インスタンスによって使用されます。 • d2.xlarge リザーブドインスタンスの設定と一致する d2.xlarge インスタンスが存在しないた め、キャパシティーの予約は今後の使用に対して行われず、割引はその使用に対して適用されませ ん。 リザーブドインスタンス割引料金範囲について 割引料金範囲が適用されると、そのアカウントは、以降、その範囲レベル内で行われるすべてのリ ザーブドインスタンス購入の前払い料金および時間単位使用料に対して、自動的に割引を受けます。 割引を受けるためには、リージョンのリザーブドインスタンスの表示価格が 500,000 USD 以上である 必要があります。 Note 料金範囲割引は現在、Convertible リザーブドインスタンスの購入には適用されません。 トピック • リザーブドインスタンスの料金割引の計算 (p. 211) • 料金範囲の一括請求 (p. 212) • 割引範囲での購入 (p. 212) • 現在の料金範囲の制限 (p. 212) • 購入料金範囲 (p. 213) リザーブドインスタンスの料金割引の計算 リージョンのすべてのリザーブドインスタンスの合計表示価格を計算することによって、アカウント の料金範囲を決定できます。各予約の時間当たりの定期料金を各期間内の残り時間に掛けて、購入時 に AWS マーケティングウェブサイトに表示される割引されていない前払い料金 (固定料金) を加算し ます。表示価格は割引前料金 (一般料金) に基づいているため、従量制割引の適用を受けた場合または リザーブドインスタンスを購入した後の値下げ分は反映されません。 List value = fixed price + (undiscounted recurring hourly price * hours in term) AWS マネジメントコンソールを使用してリザーブドインスタンスの固定料金を表示するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 右上の [Show/Hide] を選択して、[Fixed Price] 列の表示をオンにします。 211 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス リザーブドインスタンスの固定料金をコマンドラインを使用して表示するには • AWS CLI の使用方法は、「describe-reserved-instances」を参照してください。 • AWS Tools for Windows PowerShell の使用については、「Get-EC2ReservedInstance」を参照して ください。 • Amazon EC2 API の使用方法は、「DescribeReservedInstances」を参照してください。 料金範囲の一括請求 一括請求アカウントはリージョン内のメンバーアカウントの表示価格を集計します。一括請求アカウ ントのすべてのアクティブなリザーブドインスタンスの表示価格が割引料金範囲に達すると、以降 (そ の一括請求アカウントの表示価格が割引価格範囲のしきい値を超えている限り)、一括請求アカウン ト内のアカウントで購入されたリザーブドインスタンスには割引が適用されます。詳細については、 「リザーブドインスタンスと一括請求 (コンソリデーティッドビリング) (p. 213)」を参照してくだ さい。 割引範囲での購入 リザーブドインスタンスを購入すると、割引料金範囲に該当する部分のリザーブドインスタンスに対 応する割引があれば、Amazon EC2 によって自動的に適用されます。特に何かを行う必要はなく、ど の Amazon EC2 ツールを使用しても購入できます。詳細については、「リザーブドインスタンスマー ケットプレイスを利用した購入 (p. 217)」を参照してください。 Note リザーブドインスタンスの購入は、割引料金範囲を判断できる唯一の購入方法です。割引は Amazon EC2 のリザーブドインスタンスの購入にのみ適用されます。 リージョンでのアクティブなリザーブドインスタンスの表示価格が割引料金範囲に該当した場合、そ のリージョンでのリザーブドインスタンスは、以降、すべての購入が割引料金で課金されます。リー ジョンのリザーブドインスタンスの 1 回の購入でしきい値を超える場合は、そのご購入分のうち、割 引範囲のしきい値を超える部分が割引になります。購入プロセス中に作成された一時的なリザーブド インスタンス ID の詳細については「購入料金範囲 (p. 213)」を参照してください。 表示価格が割引範囲の金額を下回った場合は (一部のリザーブドインスタンスの有効期限が切れた場合 など)、以降、そのリージョンで購入されるリザーブドインスタンスには割引が適用されません。ただ し、もともと割引料金範囲で購入されたリザーブドインスタンスに対しては、引き続き割引が適用さ れます。 リザーブドインスタンスを購入すると、次の 4 つのいずれかの状況になります。 • 割引なし – 1 つのリージョンでのリザーブドインスタンスの購入が、まだ割引しきい値より下であ る。 • 一部割引 – 1 つのリージョンでのリザーブドインスタンスの購入により、最初の割引範囲のしきい 値を超える。割引なしが 1 つ以上の予約に適用され、割引料金が残りの予約に適用されます。 • 完全割引 – リージョン内の購入全体が 1 つの割引範囲に完全に含まれ、適切に割引されます。 • 2 つの割引料金 – 1 つのリージョンでのリザーブドインスタンスの購入が、下の割引範囲から上の 割引範囲まで及ぶ。2 つの異なる料金が課金されます。1 つ以上の予約により低い割引率が適用さ れ、残りの予約により高い割引率が適用されます。 現在の料金範囲の制限 現在、リザーブドインスタンスの料金範囲には以下の制限が適用されます。 • リザーブドインスタンスの料金範囲およびそれに関連する割引は、Amazon EC2 リザーブドインス タンスの購入にのみ適用されます。 212 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス • リザーブドインスタンス料金範囲は、SQL Server Standard または SQL Server Web を使用する Windows 用のリザーブドインスタンスには適用されません。 • 料金範囲に基づく割引の一部として購入されたリザーブドインスタンスは、リザーブドインスタン スマーケットプレイス で販売することはできません。詳細については、リザーブドインスタンス マーケットプレイス (p. 209) ページを参照してください。 購入料金範囲 割引料金範囲に到達した場合、その購入に対して複数のエントリが表示されます。通常の料金が課金 される部分と、割引料金が適用されて課金される部分です。 リザーブドインスタンスサービスによって複数のリザーブドインスタンス ID が生成されます。これ は、割引が適用されない範囲と割引範囲、または複数の割引範囲に購入がまたがるためです。範囲内 の予約のセットにはそれぞれ ID があります。この結果、購入 CLI コマンドまたは API アクションに よって返される ID は、新しいリザーブドインスタンスの実際の ID とは異なるものになります。 リザーブドインスタンスと一括請求 (コンソリデーティッドビリング) 購入アカウントが、1 つの一括請求の支払いアカウントに請求される一連のアカウントの一部である 場合、リザーブドインスタンスの料金面でのメリットを広範囲に利用できます。すべてのサブアカウ ントの時間単位の使用量が月次で支払いアカウントに集約されます。さまざまな役割を持つチームや グループがある企業にとっては特に便利です。したがって、請求書の計算には通常のリザーブドイン スタンスのロジックが適用されます。詳しくは、AWS Billing and Cost Management ユーザーガイド の「一括請求 (コンソリデーティッドビリング)」を参照してください。 一括請求アカウントに適用されるリザーブドインスタンス料金範囲の割引の詳細については、 「Amazon EC2 リザーブドインスタンス」を参照してください。 明細書 (請求書) を読む AWS マネジメントコンソール の [Billing & Cost Management] ページを参照して、アカウントへの請 求および料金を知ることができます。このページにアクセスするには、アカウント名の横の矢印を選 択します。 • [Dashboard] ページには、アカウントに課された料金が表示されます。これには、前払い料金、1 回 払い料金、および繰り返し課金が含まれます。料金の要約と詳細なリストの両方を取得できます。 • リザーブドインスタンスマーケットプレイスのサードパーティのリザーブドインスタンスの前払い 料金は、[AWS Marketplace Charges] セクションに表示され、その横に販売者名が表示されます。 これらのリザーブドインスタンスのすべての定期料金または使用量は、[AWS Service Charges] セ クションに表示されます。 • [Detail] セクションには、アベイラビリティーゾーン、インスタンスタイプ、コスト、インスタンス 数などのリザーブドインスタンスに関する情報が含まれています。 料金をオンラインで表示できるほか、料金情報を示す PDF をダウンロードすることもできます。 リザーブドインスタンスを購入する 特定のタイプのリザーブドインスタンスを、購入を目的に検索し、パラメーターを調整して目的に完 全に一致するものを見つけることができます。 リザーブドインスタンスの購入に関して、以下に注意する必要があります。 • 使用料 – リザーブドインスタンスでは、実際の使用に関係なく、全期間の料金をお支払いいただき ます。 • 購入に対する料金範囲割引 - 料金範囲割引は AWS Standard リザーブドインスタンスの購入にのみ 適用されます。この種の割引は、サードパーティーのリザーブドインスタンスまたは Convertible リ 213 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス ザーブドインスタンスの購入には適用されません。詳細については、「リザーブドインスタンス割 引料金範囲について (p. 211)」を参照してください。 • 購入のキャンセル – 購入を承認すると、取り消すことはできません。承認する前に、購入を検討し ているリザーブドインスタンスの詳細を点検して、すべてのパラメーターが正しいことを確認して ください。ただし、お客様のニーズが変わり、要件を満たせば、リザーブドインスタンスを売却で きる場合もあります。詳細については、「リザーブドインスタンスマーケットプレイス で販売す る (p. 217)」を参照してください。 購入するリザーブドインスタンスを選択すると、選択内容にかかる全費用の見積もりが出されます。 購入を進める場合は、AWS により自動的に購入価格に限度価格が設けられるため、リザーブドインス タンスの全費用が提示された見積もり額を超えることはありません。 何らかの理由で価格が上がったり変更された場合は、前の画面に戻り、購入は完了されません。購入 時に、選択した内容と同じような内容で価格が安い製品があった場合、AWS はその製品をその安い価 格で販売します。 AWS マネジメントコンソール を使用した Standard リザーブドインスタンス の購入 Standard リザーブドインスタンスはキャパシティーの予約ありまたはなしで購入できます。デフォ ルトのビューには、リージョン単位の利点のあるリザーブドインスタンスが表示されます。キャパシ ティーの予約を購入するには、購入画面の右上で [Only show offerings that reserve capacity] を選択し ます。 AWS マネジメントコンソール を使用してキャパシティーの予約なしで Standard リザーブド インスタンスを購入するには 1. 2. 3. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 [Navigation] ペインで [Reserved Instances] を選択します。 [Reserved Instances] ページで、[Purchase Reserved Instances] を選択します。 4. 5. [Offering Class ]、[Standard] の順に選択して、Standard リザーブドインスタンスを表示します。 必要に応じて他の設定を選択してから、[Search] を選択します。 Note 6. 7. 検索結果の [Seller] 列には、販売者がサードパーティーであるかどうかが表示されます。 その場合、[Term] 列には標準以外の期間が表示されます。 購入するリザーブドインスタンスを選択し、数量を入力して、[Add to Cart] を選択します。 選択したリザーブドインスタンスの要約を確認するには、[View Cart] を選択します。 8. 注文を確定するには、[Purchase] を選択します。 Note 購入時に、選択したインスタンスと同等でより安価なインスタンスがある場合、AWS はより 安価なインスタンスを販売します。 予約を適用するには、リザーブドインスタンスに指定したものと同じ条件に一致していることを確認 して、オンデマンドインスタンスを起動します。AWS では自動的に低い時間料金が課金されます。イ ンスタンスを再起動する必要はありません。 AWS マネジメントコンソールを使用してトランザクションのステータスを表示するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 [Reserved Instances] ページを選択します。購入のステータスは [State] 列に表示されます。注文 が確定されると、[State] の値が [payment-pending] から [active] に変わります。 214 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス AWS マネジメントコンソール を使用した Convertible リザーブドインスタン スの購入 Convertible リザーブドインスタンスはキャパシティーの予約ありまたはなしで購入できます。デフォ ルトのビューには、リージョン単位の利点のあるリザーブドインスタンスが表示されます。キャパシ ティーの予約を購入するには、購入画面の右上で [Only show offerings that reserve capacity] を選択し ます。 AWS マネジメントコンソール を使用してキャパシティーの予約なしで Convertible リザーブ ドインスタンスを購入するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Navigation] ペインで [Reserved Instances] を選択します。 3. 4. [Reserved Instances] ページで、[Purchase Reserved Instances] を選択します。 [Offering Class]、[Convertible] の順に選択して、Convertible リザーブドインスタンスを表示しま す。 5. 6. 必要に応じて他の設定を選択してから、[Search] を選択します。 購入する Convertible リザーブドインスタンスを選択し、数量を入力して、[Add to Cart] を選択し ます。 7. 8. 選択したリザーブドインスタンスの要約を確認するには、[View Cart] を選択します。 注文を確定するには、[Purchase] を選択します。 Note 購入時に、選択したインスタンスと同等でより安価なインスタンスがある場合、AWS はより 安価なインスタンスを販売します。 料金上の利点は、指定したリージョンで仕様の一致するオンデマンドインスタンスに自動的に適用さ れます。AWS では自動的に低い時間料金が課金されます。インスタンスを再起動する必要はありませ ん。 AWS マネジメントコンソールを使用してトランザクションのステータスを表示するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 [Reserved Instances] ページを選択します。購入のステータスは [State] 列に表示されます。注文 が確定されると、[State] の値が [payment-pending] から [active] に変わります。 コマンドラインインターフェイスまたは API を使用したリザーブドインスタンスの購入 コマンドラインまたは API を使用してリザーブドインスタンスを購入するには 1. AWS CLI の使用方法は、「purchase-reserved-instances-offering」を参照してください。 2. AWS Tools for Windows PowerShell の使用については、「New-EC2ReservedInstance」を参照し てください。 3. Amazon EC2 API の使用方法は、「PurchaseReservedInstancesOffering」を参照してください。 コマンドラインまたは API を使用してトランザクションのステータスを表示するには 1. AWS CLI の使用方法は、「describe-reserved-instances」を参照してください。 2. AWS Tools for Windows PowerShell の使用については、「Get-EC2ReservedInstance」を参照して ください。 3. Amazon EC2 API の使用方法は、「DescribeReservedInstances」を参照してください。 215 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス リザーブドインスタンスの適用 リザーブドインスタンスは、仕様の一致する実行中のオンデマンドインスタンスに自動的に適用され ます。AWS マネジメントコンソール、コマンドラインツール、または Amazon EC2 API を使用する と、これらのどのタスクでも実行できます。 Note リザーブドインスタンスを購入および変更するには、アベイラビリティーゾーンの表示な ど、IAM ユーザーアカウントに適切なアクセス許可があることを確認します。詳細について は、「AWS CLI または AWS SDK で使用するサンプルポリシー」および「Amazon EC2 コン ソールで使用するサンプルポリシー」を参照してください。 購入 – 予約する処理能力を決定します。以下の条件を指定します。 • プラットフォーム (例: Linux)。 Note 特定のプラットフォーム (Windows、Linux/Unix など) でリザーブドインスタンスを使用 するには、キャパシティーの予約を購入するときに、そのプラットフォームを指定する必 要があります。その後、購入したキャパシティーを使用してインスタンスを起動するとき に、そのプラットフォームを実行する Amazon Machine Image (AMI) と、購入時に指定し たその他すべての仕様を選択する必要があります。 • インスタンスタイプ (例: m1.small)。 • 予約のスコープ ([Region] または [Availability Zone])。 • キャパシティーの予約を行う期間。 • テナンシー. シングルテナントハードウェア (shared でなく dedicated テナンシー) で実行するイ ンスタンスのためにキャパシティーを予約できます。選択したテナンシーは、リザーブドインスタ ンスを適用するオンデマンドインスタンスのテナンシーと一致している必要があります。詳細につ いては、「ハードウェア専有インスタンス (p. 294)」を参照してください。 • インスタンスクラス ([Standard] または [Convertible])。 • 提供内容 (前払いなし、一部前払い、全額前払い)。 使用 – リザーブドインスタンスを使用するには、購入した予約と同じ仕様でオンデマンドインスタン スを起動します。料金面でのメリットおよび処理能力の予約は、所有している該当のインスタンスの うち、まだ予約の対象になっていないすべてのインスタンスに対して自動的に適用されます。 詳細については、「インスタンスの作成 (p. 302)」を参照してください。 リザーブドインスタンスの状態 リザーブドインスタンスは、以下のいずれかの状態になります。 • active – リザーブドインスタンスは、使用可能です。 • payment-pending – AWS で、リザーブドインスタンスに対するお客様の支払が処理中です。リ ザーブドインスタンスは、状態が [active] になると使用できます。 • retired – リザーブドインスタンスは以下のいずれかの理由で終了しました。 • AWS がお客様からの支払を受け取っていない。たとえば、クレジットカードの処理を行えなかっ た場合などです。 • リザーブドインスタンスの期限が切れた。 [Reserved Instance] ページの [State] 列に表示される状態情報は、[My Listings] タブの [Listing State] に表示される状態情報とは異なりますので注意が必要です。 216 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス リザーブドインスタンスマーケットプレイス で販売している場合は、[Listing State] に リザーブドイ ンスタンスマーケットプレイス に出品されている予約の状態が表示されます。詳細については、「リ ザーブドインスタンスの出品状態 (p. 222)」を参照してください。 リザーブドインスタンスマーケットプレイスを利用した購入 Note Convertible リザーブドインスタンスは リザーブドインスタンスマーケットプレイス で購入で きません。 Amazon EC2 リザーブドインスタンスは、AWS から、または不要になったリザーブドインスタンス を保有しているサードパーティーの販売者から購入できます。 購入者にとっては、リザーブドインスタンスマーケットプレイス により、必要なインスタンスタイ プ、リージョン、期間の組み合わせに最も一致するリザーブドインスタンスを検索できることで選択 肢が増え、柔軟な選択が可能になります。 リザーブドインスタンスマーケットプレイス の詳細については、「リザーブドインスタンスマーケッ トプレイス で販売する (p. 217)」を参照してください。 リザーブドインスタンスマーケットプレイス で購入したリザーブドインスタンスと AWS から直接購 入したリザーブドインスタンスの間にはいくつかの違いがあります。 • 期間—サードパーティ販売者から購入したリザーブドインスタンスは、残り期間が完全な標準期間 よりも短くなっています。AWS の完全な標準期間は 1 年または 3 年間です。 • 前払い価格—サードパーティのリザーブドインスタンスは、さまざまな前払い価格で販売されま す。使用料金または定期的に支払う料金は、リザーブドインスタンスを最初に AWS から購入した ときに設定された料金と同じ金額です。 お客様に関する基本情報 (郵便番号や国情報など) は、販売者と共有されます。 この情報を使用して、販売者は、国に支払う必要な取引税 (売上税や付加価値税など) を計算し、支払 いレポート形式で提示します。まれに、AWS が販売者に E メールアドレスを提供する必要がある場 合があります。これは、販売者が、販売に関する質問があり、それに関して連絡できるようにするた めです (たとえば税務上の質問など)。 同様の理由で、AWS は購入者の請求書に販売者の正式名を記載します。税金または税に関する理由か ら販売者の情報が必要な場合は、AWS サポートに問い合わせることも可能です。 リザーブドインスタンスマーケットプレイス で販売する Note Convertible リザーブドインスタンスは リザーブドインスタンスマーケットプレイス に出品で きません。 未使用の予約を リザーブドインスタンスマーケットプレイス で販売することで、ビジネスニーズが変 化した場合やキャパシティーが不要になった場合に、新しい構成に柔軟に移行できます。 リザーブドインスタンスマーケットプレイス でリザーブドインスタンスを出品するとすぐに、購入希 望者側から見えるようになります。すべてのリザーブドインスタンスは、残り期間や時間料金別にグ ループ化されます。 購入者のリクエストに対応するために、AWS は指定されたグループ内で前払い価格が最低のリザーブ ドインスタンスを最初に販売します。次に、2 番目に低い価格のリザーブドインスタンスを販売しま す。このようにして、購入者の注文すべてに対応するまで販売します。AWS は次にトランザクション を処理し、リザーブドインスタンスの所有権を購入者に移します。 217 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス 出品したリザーブドインスタンスは、売れるまでお客様の所有です。販売後は、予約済みのキャパシ ティーと割引使用料金は使用できません。インスタンスを使用し続ける場合は、リザーブドインスタ ンスが売却された時間から起算したオンデマンド料金が課金されます。予約済みキャパシティーをさ らに購入することも、キャパシティーの予約が売却されたときにインスタンスを停止することもでき ます。 以下は留意すべき重要な制限です。 • リザーブドインスタンスは 30 日後から販売できます – リザーブドインスタンスを販売できるの は、所有後少なくとも 30 日が経過してからです。さらに、出品するリザーブドインスタンスの残 りの有効期間が 1 か月以上あることが必要です。 • リザーブドインスタンスの範囲—容量予約のある標準スタンダードリザーブドインスタンスのみが リザーブドインスタンスマーケットプレイス で販売可能です。リージョン特典のあるリザーブドイ ンスタンスは販売できません。 • 出品の変更はできません – リザーブドインスタンスマーケットプレイスで出品を変更することは できません。ただし、最初に出品をキャンセルしてから、新しいパラメーターで別の出品を作成す ることはできます。詳細については、リザーブドインスタンスの出品 (p. 220) を参照してくださ い。出品する前にリザーブドインスタンスを変更することもできます。詳細については、Standard リザーブドインスタンスの変更 (p. 224) を参照してください。 • 割引されたリザーブドインスタンスは販売できません – 料金範囲に基づく割引価格で購入されたリ ザーブドインスタンスは、リザーブドインスタンスマーケットプレイス で販売することはできませ ん。詳細については、「リザーブドインスタンスマーケットプレイス (p. 209)」を参照してくださ い。 目次 • 販売者として登録する (p. 218) • リザーブドインスタンスの出品 (p. 220) • 出品のライフサイクル (p. 223) • リザーブドインスタンスが売却された後 (p. 223) 販売者として登録する リザーブドインスタンスマーケットプレイス で販売するための最初のタスクは、販売者として登録す ることです。登録の際に、商号、銀行情報、納税識別番号を提供する必要があります。 記入済みの販売者登録が AWS に受領されると、登録を確認する電子メールが届いて、リザーブドイ ンスタンスマーケットプレイス での販売が可能になったことが伝えられます。 トピック • 銀行口座 (p. 218) • 税金情報 (p. 219) • 購入者との情報の共有 (p. 220) • 支払いを受け取る (p. 220) 銀行口座 AWS では、リザーブドインスタンスの販売時に集金された金額をお支払いするために、お客様の銀行 情報が必要です。住所が米国内の銀行でなければなりません。 支払い用のデフォルトの銀行口座を登録するには 1. [リザーブドインスタンスマーケットプレイスSeller Registration] ページでサインインします。AWS アカウントを持っていない場合は、このページで作成できます。 218 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス 2. [Manage Bank Account] ページで、支払いを受け取る銀行に関する次の情報を提供します。 • 銀行口座の名義 • 支店コード • アカウント番号 • 銀行口座の種類 Note 法人の銀行口座を使用する場合は、口座に関する情報を FAX (1-206-765-3424) で送信する ように指示されます。 登録後、指定された銀行口座がデフォルトとして設定され、銀行の確認待ちとなります。新しい銀行 口座を確認するには、最長で 2 週間かかります。この間は支払金を受け取ることはできません。確立 済みの口座の場合、支払い完了まで通常およそ 2 日かかります。 支払い用のデフォルトの銀行口座を変更するには 1. [リザーブドインスタンスマーケットプレイス Seller Registration] ページで、登録時に使用したアカ ウントを使ってサインインします。 2. [Manage Bank Account] ページで、必要に応じて新規口座のアカウントを追加するか、デフォルト の銀行口座を変更します。 税金情報 リザーブドインスタンスの販売には、消費税または付加価値税などの取引税がかかることがありま す。取引関連の税金が適用されるかどうかについては、税務部、法務部、財務部、または経理部に確 認する必要があります。お客様は、取引関連の税金を収集し、該当する税務署に納める役割を担いま す。 販売者登録手続きの一環として、Tax interview を完了することができます。次のいずれかに該当する 場合は、この手続きを完了することをお勧めします。 • AWS でフォーム 1099-K を生成したい。 • リザーブドインスタンスについて、1 年間に 50 件を超える取引または 20,000 USD 以上の販売 が予想される。1 件の取引には、1 つまたは複数のリザーブドインスタンスを含めることがで きます。登録時にこの手順をスキップし、後で取引が 49 件に達した場合、"You have reached the transaction limit for pre-tax. [Seller Registration Portal] で Tax interview を完了します。」Tax interview が完了すると、アカウントの制限は自動的に引き上げられます。 • お客様が米国以外の販売者である。この場合、フォーム W-8BEN に電子的に記入する必要がありま す。 IRS の要件とフォーム 1099-K の詳細については、IRS のウェブサイトを参照してください。 Tax interview で入力する税金情報は、お客様が米国の法人であるか米国外の法人であるかによって異 なります。 Tax interview の記入を行う際は、次に注意してください。 • AWS が提供する情報 (このトピックの情報を含む) は、税金、法律、またはその他の専門的なアド バイスではありません。IRS のレポート要件がビジネスに与える影響について知りたい場合、また は他の疑問がある場合は、税金、法律、またはその他の専門家にお尋ねください。 • IRS のレポート要件をできるだけ効率的に満たすには、Tax interview の中で要求されたすべての質 問に答え、情報を入力します。 • 答えを確認します。綴りを間違ったり、誤った税金識別番号を入力したりしないようにします。こ れらのミスがあると、誤った税金フォームが生成されます。 219 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス 税金登録手続きを完了すると、AWS によってフォーム 1099-K が提出され、税金口座がしきい値レ ベルに達した年の翌年の 1 月 31 日までに、米国の郵便によって上記フォームのコピーがお客様に届 けられます。例えば、税金口座が 2016 年にしきい値に達した場合、2017 年にフォームを受け取りま す。 購入者との情報の共有 リザーブドインスタンスマーケットプレイス で販売する場合、AWS は米国の規制に従って、お客様 の正式な会社名を購入者のステートメントに示します。さらに、購入者から請求書またはその他の 税金関連の理由について販売者に連絡したいとの要望が AWS カスタマー AWS サポートにあった場 合、AWS は、購入者が直接販売者に連絡できるよう販売者の E メールアドレスを購入者に提供する 必要がある場合があります。 同様の理由で、販売者には購入者の郵便番号および国情報が支払いレポートによって提供されます。 販売者として、この情報を、国に支払わなければならない取引税 (売上税や付加価値税など) に添付す る必要がある場合があります。 AWS は税金に関する助言を行うことはできませんが、お客様が追加情報を必要としているとお客様の 税務専門家が判断した場合は、AWS カスタマーサポートにご連絡ください。 支払いを受け取る AWS が購入者からの支払い金を受領するとすぐに、リザーブドインスタンスの所有者として登録され ているアカウントに関連付けられた E メールアドレスに、取引完了のメッセージが送信されます。 AWS は指定された銀行口座に、自動決済機関 (ACH) の電子送金を送信します。通常、この送金は、 リザーブドインスタンスの売却後 1~3 日の間に行われます。この支払いの状態を確認するには、リ ザーブドインスタンス支払いレポートを表示します。支払いは、1 日に 1 回行われます。AWS が銀行 からの検証結果を受領するまで、支払い金を受け取れないことに注意してください。検証のための期 間は、最大 2 週間かかります。 お客様が販売したリザーブドインスタンスは、お客様が実行した DescribeReservedInstances 呼 び出しの結果に引き続き表示されます。 リザーブドインスタンスに対する現金の支払いを、振込によって直接各自の銀行口座で受け取りま す。リザーブドインスタンスマーケットプレイス で販売する各リザーブドインスタンスに対しては、 前払い価格の総額の 12% がサービス料として課金されます。 Note リザーブドインスタンスマーケットプレイス で販売できるのは、Amazon EC2 リザーブドイ ンスタンスのみになります。Amazon RDS や Amazon ElastiCache リザーブドインスタンス など他のタイプは、リザーブドインスタンスマーケットプレイス で販売することはできませ ん。 リザーブドインスタンスの出品 登録済みの販売者の場合、販売するリザーブドインスタンスを 1 つまたは複数選択し、1 件のリスト にすべてまとめて販売することも、個別に販売することもできます。さらに、インスタンスのタイ プ、プラットフォーム、リージョン、アベイラビリティーゾーンの設定に関係なく、すべてのタイプ のリザーブドインスタンスを出品できます。 出品をキャンセルする場合、その一部が既に売れているとき、売却済みの部分についてのキャンセル は無効です。まだ売れていない部分のみが リザーブドインスタンスマーケットプレイス からなくなり ます。 リザーブドインスタンスの価格決定 販売するリザーブドインスタンスに指定できるのは前払い料金のみです。前払い料金は、購入者がリ ザーブドインスタンスを購入する際に支払う一括払いの料金です。使用料金や定期的な料金は指定で 220 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス きません。購入者は、予約が最初に購入された時に設定された同じ使用料金または定期的な料金を支 払います。 以下は留意すべき重要な制限です。 • 1 年間に 50,000 USD までのリザーブドインスタンスを販売できます。これよりも多く販売するに は、「Amazon EC2 インスタンス上限緩和申請」フォームにご記入ください。 • 最低価格は 0 USD です。リザーブドインスタンスマーケットプレイスで許容される最低販売価格 は、0.00 USD です。 出品内容を直接変更することはできません。ただし、最初に出品をキャンセルしてから、新しいパラ メーターで別の出品を作成することはできます。 出品は、active 状態であればいつでもキャンセルできます。既にマッチングされていたり、販売処 理が行われている出品はキャンセルできません。出品したインスタンスの一部がマッチングされてい る場合にその出品をキャンセルすると、マッチングされていない残りのインスタンスが出品から削除 されます。 価格決定スケジュールの設定 リザーブドインスタンスの価値は時間が経つにつれて低下するため、AWS ではデフォルトで、1 月ご とに同じ割合で低下するような価格設定を行っています。ただし、予約を販売する時期に基づいて、 異なる前払い価格を設定できます。 たとえば、リザーブドインスタンスの期間が 9 か月残っている場合、残余期間 9 か月のリザーブドイ ンスタンスに対して販売者が受け取る金額を指定することも、残余期間が 5 か月の場合、さらに 1 か 月の場合の金額を指定することもできます。 AWS CLI を使用したリザーブドインスタンスの出品 AWS CLI を使用してリザーブドインスタンスを リザーブドインスタンスマーケットプレイス に出品するには 1. aws ec2 describe-reserved-instances を呼び出して、リザーブドインスタンスのリスト を取得します。 2. 出品するリザーブドインスタンスの ID を指定し、aws ec2 create-reserved-instanceslisting を呼び出します。必須である次のパラメータを指定する必要があります。 • リザーブドインスタンス ID • インスタンス数 • MONTH:PRICE 出品したインスタンスを表示するには • aws ec2 describe-reserved-instances-listings コマンドを使用して出品したインスタン スの詳細を取得します。 出品をキャンセルまたは変更するには • aws ec2 cancel-reserved-instances-listings コマンドを使用して出品をキャンセルしま す。 Amazon EC2 API を使用したリザーブドインスタンスの出品 Amazon EC2 API を使用してリザーブドインスタンスを リザーブドインスタンスマーケットプレイス に出品するには 221 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス 1. DescribeReservedInstances を呼び出して、リザーブドインスタンスのリストを取得します。 リザーブドインスタンスマーケットプレイスに出品するリザーブドインスタンスの ID をメモしま す。 2. CreateReservedInstancesListing を使用してリストを作成します。 出品したインスタンスを表示するには 1. DescribeReservedInstancesListings を呼び出して出品の詳細を取得します。 出品をキャンセルするには 1. CancelReservedInstancesListing を実行します。 2. DescribeReservedInstancesListings を呼び出してキャンセルされたことを確認します。 AWS マネジメントコンソールを使用したリザーブドインスタンスの出品 AWS マネジメントコンソール を使用してリザーブドインスタンスを リザーブドインスタン スマーケットプレイス に出品するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで、[Reserved Instances] を選択します。 出品するリザーブドインスタンスを選択し、[Sell Reserved Instances] を選択します。 4. [Configure Your Reserved Instance Listing] ページで、販売するインスタンス数および残り期間に 対する前払い価格を該当列に設定します。[Months Remaining] 列の隣にある矢印をクリックする と、残りの有効期間の変化による、予約の価値の変化状況を確認できます。 上級ユーザーが価格をカスタマイズする場合は、今後の月に異なる価格を入力できます。デフォ ルトの直線形の価格減少に戻すには、[Reset] を選択します。 5. 6. 7. 出品の設定が終了したら、[Continue] を選択します。 [Confirm Your Reserved Instance Listing] ページに表示された出品詳細を確認し、問題がなければ [List Reserved Instance] を選択します。 出品したインスタンスをコンソールで表示するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで、[Reserved Instances] を選択します。 出品したリザーブドインスタンスを選択し、[My Listings] タブを選択します。 リザーブドインスタンスの出品状態 [Listing State] には出品の現在の状態が表示されます。 [Listing State] に表示される情報は、リザーブドインスタンスマーケットプレイス へのお客様の出品の 状態に関するものです。これは、[Reserved Instances] ページの [State] 列に表示される状態情報とは 異なります。この [State] 情報は、お客様の予約に関するものです。 • [active] – 購入できます。 • [cancelled] - 出品がキャンセルされ、リザーブドインスタンスマーケットプレイス での購入ができ ません。 • [closed] – 出品されていません。リザーブドインスタンスは、出品が完了したため [closed] になっ ている可能性があります。 詳細については、「リザーブドインスタンスの状態 (p. 216)」を参照してください。 222 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス 出品のライフサイクル 出品を作成したので、出品したものが売れたときに何が起きるかを見てみましょう。 出品したすべてのインスタンスがマッチングされて売れると、[My Listings] タブに表示される [Total instance count] が [Sold] の下に表示された数と同じになり、出品で残っている [Available] インスタン スがなくなり、[Status] が [closed] になります。 出品の一部だけが売れた場合、AWS は出品されているリザーブドインスタンスを取り下げ、残りのリ ザーブドインスタンスと同数のリザーブドインスタンスを作成します。したがって、出品 ID とその ID の出品は、販売中の予約が少なくなっていますがアクティブのままです。 この出品内の売却は今後、この方法で行われます。出品内のすべてのリザーブドインスタンスが売れ ると、AWS でこの出品が [closed] としてマークされます。 たとえば、出品数が 5 のリザーブドインスタンス ID 5ec28771-05ff-4b9b-aa31-9e57dexample の出品 を作成したとします。 AWS マネジメントコンソールの [Reserved Instance] ページの [My Listings] タブに、次のように出品 が表示されます。 リザーブドインスタンスの出品 ID 5ec28771-05ff-4b9b-aa31-9e57dexample • Total reservation count = 5 • Sold = 0 • Available = 5 • Status = active 購入者が予約を 2 つ購入したとします。まだ 3 つの予約が販売中のままです。一部分が売れたた め、AWS では引き続き販売中の残りの予約に相当する、数が 3 つの新しい予約が作成されます。 お客様の出品は、[My Listings] タブで次のように表示されます。 リザーブドインスタンスの出品 ID 5ec28771-05ff-4b9b-aa31-9e57dexample • Total reservation count = 5 • Sold = 2 • Available = 3 • Status = active 出品をキャンセルする場合、その一部が既に売れているとき、売却済みの部分についてのキャンセル は無効です。まだ売れていない部分のみが リザーブドインスタンスマーケットプレイス からなくなり ます。 リザーブドインスタンスが売却された後 リザーブドインスタンスが売却されると、AWS から E メールの通知が送信されます。何らかのアク ティビティ (出品の作成、出品の販売、または AWS から口座への送金など) がある日は、その日のす べてのアクティビティを記載した E メールの通知が送信されます。 AWS マネジメントコンソールの [Reserved Instance] ページで選択したリザーブドインスタンス の [My Listings] タブで、リザーブドインスタンスの出品の状態を追跡できます。タブには、[Listing State] の他、期間、出品価格、および出品されているインスタンスの中で使用可能、売却済み、およ びキャンセルされたものがいくつあるかの詳細といった情報が示されます。また、ec2-describereserved-instances-listings CLI コマンドまたは DescribeReservedInstancesListings API 呼び出しも使用でき、適切なフィルタを使用することにより、出品に関する情報を取得できま す。 223 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス Standard リザーブドインスタンスの変更 コンピューティングニーズが変化したときは、Standard リザーブドインスタンスを変更し、引き続き 料金上の利点を得られます。Convertible リザーブドインスタンスは交換プロセスを使用して調整でき ます。詳細については、「Convertible リザーブドインスタンスの交換 (p. 229)」を参照してくださ い。 以下のトピックでは、標準リザーブドインスタンスの変更プロセスについて説明します。 トピック • 変更の要件 (p. 224) • 予約のインスタンスサイズの変更 (p. 225) • 変更リクエストの送信 (p. 227) 変更しても、Standard リザーブドインスタンスの有効な残りの期間は変わりません。終了日は同じで す。手数料は必要なく、新しく課金されたり、請求書が届いたりすることはありません。変更は購入 とは違い、Standard リザーブドインスタンスの使用、購入、売却の方法には影響ありません。すべて の予約またはサブセットのみを次のいずれかの方法で変更できます。 • 同じリージョン内でアベイラビリティーゾーンを変更する • 予約のスコープをアベイラビリティーゾーンからリージョン (およびその逆) に変更する • EC2-VPC と EC2-Classic を切り替える • 同じインスタンスタイプ内でインスタンスサイズを変更する すべてのプラットフォームタイプ (Linux、Windows) で、アベイラビリティーゾーン、スコープ、 およびネットワークプラットフォームを変更できます。インスタンスタイプの変更は、Linux プ ラットフォームタイプのみでサポートされています。ただし、ライセンスの違いにより、RedHat または SUSE Linux 標準リザーブドインスタンスのインスタンスタイプを変更することはできませ ん。RedHat または SUSE の料金の詳細については、Amazon EC2 リザーブドインスタンスの料金を 参照してください。 予約のアベイラビリティーゾーンを変更する場合、キャパシティーの予約と料金上の利点は、新しい アベイラビリティーゾーン内のインスタンスの使用に対して自動的に適用されます。リザーブドイン スタンスのネットワークプラットフォームを変更する場合 (EC2-Classic から EC2-VPC への変更な ど)、キャパシティーの予約は新しいネットワークプラットフォーム上のインスタンスの使用に対して 自動的に適用されます。 予約のスコープをアベイラビリティーゾーンからリージョンに変更した場合、キャパシティーの予約 の利点を得られなくなります。予約の料金上の利点はそのリージョン内のすべての該当するインスタ ンスに適用されます。 変更後、リザーブドインスタンスの割引料金は、リザーブドインスタンスの新しいパラメーターと一 致するインスタンスのみに適用されます。新しいパラメーターに一致しないインスタンスは、他に適 用可能な予約がない場合、オンデマンド料金で課金されます。料金上のメリットは、予約の仕様と一 致する EC2-Classic と EC2-VPC の両方に適用されます。 変更の要件 変更リクエストは、変更後の設定に対して十分なリザーブドインスタンス容量があり、以下の条件が 満たされている場合に処理されます。 変更されたリザーブドインスタンスは次のとおりである必要があります。 • アクティブ • 別の変更リクエストを保留していない • リザーブドインスタンスマーケットプレイス に出品されていない 224 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス • 同じ時間 (分または秒ではない) で終了する 変更リクエストは次のとおりである必要があります。 • スコープ、インスタンスタイプ、インスタンスサイズ、インスタンスクラス、およびネットワーク プラットフォーム属性の組み合わせが一意である • アクティブな予約のインスタンスサイズのフットプリントと変更後の設定が一致している 制約事項 • Standard リザーブドインスタンスのみを変更できます。 リザーブドインスタンスが active 状態ではない場合、または変更できない場合は、AWS マネジメン トコンソールの [Modify Reserved Instances] ボタンが有効になりません。変更の対象として複数のリ ザーブドインスタンスを選択し、そのうちの 1 つ以上がインスタンスタイプを変更できないプラット フォームのものである場合、[Modify Reserved Instances] ページには、選択したリザーブドインスタ ンスのインスタンスタイプを変更するオプションが表示されません。詳細については、「予約のイン スタンスサイズの変更 (p. 225)」を参照してください。 予約の変更は何度でもできます。ただし、前の変更リクエストがまだ保留されている場合は、予約の 変更リクエストを送信できません。また、送信した後で保留中の変更リクエストを変更またはキャン セルすることはできません。変更が完了した後は、別の変更リクエストを送信して、実行した変更を ロールバックできます。詳細については、「変更のステータスの確認 (p. 228)」を参照してくださ い。 リザーブドインスタンスマーケットプレイス に出品されているリザーブドインスタンスを変更するに は、出品をキャンセルし、変更をリクエストした後で、再び出品します。さらに、出品を、購入する 前または購入と同時に変更することはできません。詳細については、「リザーブドインスタンスマー ケットプレイス (p. 209)」を参照してください。 予約のインスタンスサイズの変更 1 つのインスタンスタイプの Amazon Linux 予約で複数のインスタンスサイズがある場合、リザーブ ドインスタンスのサイズを調整できます。インスタンスサイズの変更は、他の属性詳細 (リージョン、 使用タイプ、テナンシー、プラットフォーム、終了日時など) が一致し、利用可能な容量がある場合に のみ許可されることに注意してください。Windows のリザーブドインスタンスのインスタンスサイズ を変更することはできません。 Note インスタンスはファミリー (ストレージまたは CPU 容量に基づく)、タイプ (特定のユース ケース用に設計)、およびサイズによってグループ分けされています。たとえば、c4 インスタ ンスタイプはコンピューティング最適化インスタンスファミリーに含まれ、複数のサイズで 利用できます。c3 インスタンスは同じファミリーに含まれますが、c4 インスタンスを c3 イ ンスタンスに変更することはできません。これは、ハードウェア仕様が異なるためです。詳 細については、「Amazon EC2 インスタンスタイプ」を参照してください。 変更プロセスおよびステップについては、「変更リクエストの送信 (p. 227)」を参照してください。 使用できる他のサイズがないため、次のインスタンスは変更できません。 • t1.micro • cc1.4xlarge • cc2.8xlarge • cg1.8xlarge 225 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス • cr1.8xlarge • hi1.4xlarge • hs1.8xlarge • g2.2xlarge 容量が存在し、変更によってリザーブドインスタンスのインスタンスサイズフットプリントが変わら ない場合は、リクエストに成功します。 インスタンスサイズのフットプリントについて 各リザーブドインスタンスにはインスタンスサイズのフットプリントがあり、これはインスタンスタ イプの正規化係数と予約に含まれるインスタンスの数によって決まります。Amazon EC2 コンソール では、フットプリントはユニットで測定されます。 正規化係数はインスタンスタイプ (例: m1 インスタンスファミリー) 内のサイズに基づきます。正規 化係数は同じインスタンスタイプ内でのみ意味を持ちます。異なるファミリーのインスタンスタイプ に変更することはできません。次の表では、インスタンスタイプ内で適用される正規化係数を示しま す。 インスタンスサイズ 正規化係数 nano 0.25 micro 0.5 small 1 medium 2 large 4 xlarge 8 2xlarge 16 4xlarge 32 8xlarge 64 10xlarge 80 16xlarge 128 32xlarge 256 変更後の設定のフットプリントが元の設定のサイズと一致しない場合、変更リクエストは処理されま せん。 リザーブドインスタンスでインスタンスサイズのフットプリントを計算するには、インスタンスの数 に正規化係数を掛けます。たとえば、m1.medium の正規化係数は 2 なので、m1.medium インスタン ス 4 個の予約は 8 ユニットのフットプリントを持ちます。 予約のインスタンスサイズのフットプリントが同じである場合は、同じインスタンスタイプ内で、 予約を異なるインスタンスサイズとして割り当てることができます。たとえば、1 つの m1.large (1 x 4) インスタンスの予約を 4 つの m1.small (4 x 1) インスタンスに分割したり、4 つの m1.small インスタンスの予約を 1 つの m1.large インスタンスに結合したりできます。ただし、2 つの m1.small (2 x 1) インスタンスの予約を 1 つの m1.large (1 x 4) インスタンスに変更することはでき ません。これは、現在の予約の既存のインスタンスサイズフットプリントがリクエストされている予 約より小さいためです。 226 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス 詳細については、「Amazon EC2 インスタンスタイプ」を参照してください。 変更リクエストの送信 AWS では、AWS マネジメントコンソールを使用して Amazon EC2 API をインタラクティブに操作し たり、コマンドラインインターフェイスを使用したりするなど、変更リクエストを表示し、作業する 方法をいくつか提示しています。 トピック • AWS マネジメントコンソール (p. 227) • コマンドラインインターフェイス (p. 228) • Amazon EC2 API (p. 228) • 変更のステータスの確認 (p. 228) AWS マネジメントコンソール [Modify Reserved Instances] ページの各対象設定列は現在のインスタンスタイプのインスタンス 数 ([Count]) およびそのインスタンスタイプに関連する予約のインスタンスサイズのフットプリン ト ([Units]) を追跡しています。詳細については、「インスタンスサイズのフットプリントについ て (p. 226)」を参照してください。 変更が可能なインスタンス数よりも多くまたは少なくインスタンスを指定した場合、割り当てられた リザーブドインスタンス総数は赤で表示されます。変更が可能なすべてのリザーブドインスタンスに 対して変更を指定すると、すべての変更が緑に変わり [Continue] を選択できます。 予約のサブセットを変更すると、Amazon EC2 は元のリザーブドインスタンスを複数の新しいリザー ブドインスタンスに分割します。たとえば、us-east-1a 内に 10 個のインスタンスが予約にあり、そ のうち 5 個のインスタンスを us-east-1b に移動する場合、変更リクエストにより 2 つの新しい予約 (us-east-1a (元のアベイラビリティーゾーン) の 5 個のインスタンス用に 1 つと、us-east-1b の 5 個の インスタンス用に 1 つ) が作成されます。 AWS マネジメントコンソールを使用してリザーブドインスタンスを変更するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Reserved Instances] ページで、変更するリザーブドインスタンスを 1 つ以上選択し、[Modify Reserved Instances] を選択します。 Note 3. 変更テーブルの最初のエントリは、元の変更されていない予約です。予約のすべての属 性を変更するには、メニューから新しい仕様を選択します。予約の一部のみを変更、ま たは分割するには、変更ごとに行を追加します。 追加したそれぞれの属性の変更で [Add] を選択し、[Count] に変更する予約数を入力します。 • • 4. アベイラビリティゾーンを変更するには、[Availability Zone] リストで値を選択します。 ネットワークプラットフォームを変更するには、[Network] リストで値を選択します。 • インスタンスタイプを変更するには、[Instance Type] リストで値を選択します。 指定した属性を削除するには、その行の [X] を選択します。 Note 5. 6. [Modify Reserved Instances] ページに表示されている属性変更の行が 1 つだけの場合、 その行は削除できません。複数のリザーブドインスタンスの属性を変更するには、新し い仕様の行を追加し、その後で元の行を削除します。 [Continue] を選択します。 ターゲット設定の指定を完了したときに、変更の選択を確認するには、[Submit Modifications] を 選択します。いずれの時点でも中止する場合は、[Cancel] を選択してウィザードを終了します。 227 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス コマンドラインインターフェイス AWS CLI (modify-reserved-instances)、AWS Tools for Windows PowerShell (EditEC2ReservedInstance)、Amazon EC2 API (ModifyReservedInstances)、AWS SDK for Java を使用し て、プログラムで変更を完了できます。 Amazon EC2 API ModifyReservedInstances アクションを使用してリザーブドインスタンスを変更できます。詳細につ いては、「Amazon EC2 API リファレンス」を参照してください。 変更のステータスの確認 変更リクエストのステータスは、変更しているリザーブドインスタンスの状態を見ることで確認でき ます。返される [state] には、リクエストが in-progress、fulfilled、またはfailed として表示 されます。この情報を取得するには、以下のリソースを使用します。 • AWS マネジメントコンソールの [State] フィールド • DescribeReservedInstancesModifications API アクション • describe-reserved-instances-modifications AWS CLI コマンド • Get-EC2ReservedInstancesModifications AWS Tools for Windows PowerShell コマンド 次の表は、AWS マネジメントコンソールの [State] に表示される可能性のある値を示しています。 状態 説明 アクティブ (変更の保留中) 元のリザーブドインスタンスの移行状態。 終了 (変更の保留中) 新しいリザーブドインスタンスを作成中の元の リザーブドインスタンスの移行状態。 リタイア リザーブドインスタンスは正常に変更され、置 き換えられました。 active 正常な変更リクエストにより新しいリザーブド インスタンスが作成されました。 -または変更リクエストが失敗したため、元のリザーブ ドインスタンスです。 Note DescribeReservedInstancesModifications API アクションを使用する場合、変更リクエストの ステータスは進行中、完了、または失敗と表示されます。 変更リクエストが成功した場合。 • 変更後の予約がすぐに有効になり、変更リクエストが完了した時刻から、割引料金が新しいインス タンスに適用されます。たとえば、午後 9 時 15 分に予約の変更が成功した場合、割引料金は午後 9 時 00 分から新しいインスタンスに移ります。(変更されたリザーブドインスタンスの effective date は DescribeReservedInstances API アクションまたは -describe- reserved-instances コマンド (AWS CLI) を使用して取得できます。 • 元の予約は終了します。その終了日は新しい予約の開始日であり、新しい予約の終了日は元のリ ザーブドインスタンスの終了日と同じです。有効期限のうち 16 か月が残っている 3 年の予約を正 常に変更した場合、変更後の予約は 16 か月の予約であり、終了日は変更前の予約と同じです。 228 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リザーブドインスタンス • 変更後の予約の固定価格は 0 USD であり、元の予約の固定価格ではありません。 Note 変更後の予約の固定価格はアカウントに適用される割引料金範囲の計算に影響を与えませ ん。割引範囲の計算は元の予約の固定価格に基づきます。 変更リクエストが失敗した場合。 • リザーブドインスタンスは元の設定を保持します。 • リザーブドインスタンスに対してすぐに別の変更リクエストを行うことができます。 リザーブドインスタンスを変更できない理由についての詳細は、「変更の要件 (p. 224)」を参照して ください。 Convertible リザーブドインスタンスの交換 Convertible リザーブドインスタンスは、インスタンスファミリーなどの設定を変更した別の Convertible リザーブドインスタンスに交換できます。交換先の Convertible リザーブドインスタンス が交換元の Convertible リザーブドインスタンスと同額かそれ以上である限り、交換の実行回数に制限 はありません。 Convertible リザーブドインスタンスの交換要件 Amazon EC2 では、以下の条件を満たしている場合に交換リクエストが処理されます。 Convertible リザーブドインスタンスが次のようになっている必要があります。 • アクティブ • 別の保留中の交換リクエストがない • 同じ時間 (分または秒ではない) で終了する 制約事項: • Convertible リザーブドインスタンスは、AWS が現在提供している他の Convertible リザーブドイン スタンスに交換できます。 • Convertible リザーブドインスタンスを変更することはできません。予約の設定を変更するには、設 定を変更した別のリザーブドインスタンスに交換する必要があります。 • Convertible リザーブドインスタンスは同額以上の支払いオプションの Convertible リザーブドイン スタンスに交換できます。たとえば、一部前払いの Convertible リザーブドインスタンスは、全額前 払いの Convertible リザーブドインスタンスに交換できますが、前払いなしの Convertible リザーブ ドインスタンスに交換することはできません。 Convertible リザーブドインスタンスが active 状態ではない場合、または交換できない場合は、AWS マネジメントコンソール の [Exchange Reserved Instances] ボタンが有効になりません。 予約の交換は何度でもできます。ただし、前の交換リクエストが保留中の場合は、予約の交換リクエ ストを送信できません。 Convertible リザーブドインスタンスの交換料金の計算 Convertible リザーブドインスタンスの交換は無料です。ただし、交換元の Convertible リザーブドイ ンスタンスと交換先の Convertible リザーブドインスタンスの按分計算での前払い額に差額があれば、 その差額を支払う必要があります。 229 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スケジュールされたインスタンス 各 Convertible リザーブドインスタンスには定価があります。交換元と交換先の Convertible リザーブ ドインスタンスで定価が比較され、交換の結果として得られる Convertible リザーブドインスタンスの 数が決まります。 たとえば、定価 35 USD の 1 つの Convertible リザーブドインスタンスを定価 10 USD の新しいイン スタンスタイプに交換するとします。 $35/$10 = 3.5 この場合、35 USD の 1 つの Convertible リザーブドインスタンスを 10 USD の 3 つの Convertible リ ザーブドインスタンスに交換できます。Convertible リザーブドインスタンスは半個単位で購入する ことはできません。そのためこのシナリオでは、余り分を補うために、追加で 1 つの Convertible リ ザーブドインスタンスを購入する必要があります。 3.5 = 3 whole Convertible Reserved Instances + 1 additional Convertible Reserved Instance. 4 つ目の Convertible リザーブドインスタンスで、終了日が他の 3 つのものと同じだとすると、一部前 払いまたは全額前払いの Convertible リザーブドインスタンスを交換する場合、その 4 つ目のリザー ブドインスタンスの料金を差額として支払います。交換元の Convertible リザーブドインスタンスの前 払い額のうち 500 USD が残っており、交換先の Convertible リザーブドインスタンスの料金が按分計 算で 600 USD になるとすると、100 USD が請求されます。 $600 prorated upfront cost of new reservations - $500 remaining upfront cost of original reservations = $100 difference. 変更リクエストのトラブルシューティング リクエストしたターゲット設定が一意であれば、リクエストが処理されるメッセージを受信します。 この時点では、Amazon EC2 は変更リクエストのパラメーターが有効であることのみを確認していま す。まだ、処理中に容量が利用できないために変更リクエストが失敗する可能性があります。 場合によって、確認の代わりに変更リクエストが不完全または失敗したことを示すメッセージが表示 されることがあります。メッセージの情報を参考にして、別の変更リクエストを再送信します。 選択されたリザーブドインスタンスに変更できないものがあります Amazon EC2 は変更できないリザーブドインスタンスを示します。このようなメッセージを受け取っ たら、AWS マネジメントコンソールの [Reserved Instances] ページで容量予約についての詳細情報を 確認します。 変更リクエストの処理中にエラーが発生しました 送信したリザーブドインスタンス変更リクエストをすべて処理できません。変更している予約の数に よっては、メッセージが異なる場合があります。 Amazon EC2 は変更リクエストを処理できない理由を示します。たとえば、変更しているリザーブド インスタンスの 1 つ以上のサブセットに同じターゲット設定 (アベイラビリティーゾーンとプラット フォームの組み合わせ) を指定したような場合です。予約のインスタンス詳細が一致し、変更対象のす べてのサブセットのターゲット設定が一意であることを確認して、変更リクエストの再送信を試みま す。 スケジュールされたリザーブドインスタンス スケジュールされたリザーブドインスタンス (スケジュールされたインスタンス) によって、1 年間に わたり毎日、毎週、または毎月ベースの指定された開始時間および期間で繰り返しキャパシティー予 約を購入できます。あらかじめキャパシティーを予約しておき、必要なときに使用できるようにしま 230 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スケジュールされたインスタンス す。料金は、インスタンスを使用しなくても、インスタンスがスケジュールされた時間に対して支払 います。 スケジュールされたインスタンスは、継続的には実行されないが定期的なスケジュールで実行される ワークロードに適しています。たとえば、営業時間中に実行するアプリケーションや週末に実行する バッチ処理に、スケジュールされたインスタンスを使用できます。 キャパシティーの予約が連続して必要な場合、リザーブドインスタンスがニーズを満たし、コストを 削減できる可能性があります。詳細については、「リザーブドインスタンス (p. 205)」を参照してく ださい。インスタンスをいつ実行するか特に決めていない場合、スポットインスタンスが要件を満た し、コストを削減できる可能性があります。詳細については、「スポットインスタンス (p. 234)」を 参照してください。 目次 • スケジュールされたインスタンスとは何ですか? (p. 231) • スケジュールされたインスタンスの購入 (p. 232) • スケジュールされたインスタンスの起動 (p. 232) • スケジュールされたインスタンスの制限 (p. 233) スケジュールされたインスタンスとは何ですか? Amazon EC2 は、スケジュールされた EC2 インスタンスに使用するプールを別個に、各アベイラビ リティーゾーンに設定します。各プールはインスタンスタイプ、オペレーティングシステム、ネット ワーク (EC2-Classic または EC2-VPC) の特定の組み合わせをサポートします。 開始するには、使用可能なスケジュールを探す必要があります。複数のプールまたは単一のプールを 検索できます。適したスケジュールを見つけたら、それを購入します。 スケジュールされた期間中に、購入したスケジュールの属性 (インスタンスタイプ、アベイラビリ ティーゾーン、ネットワーク、およびプラットフォーム) に一致する起動設定を使用して、スケジュー ルされたインスタンスを起動する必要があります。すると、Amazon EC2 は指定された起動仕様に基 づき、ユーザーに代わって EC2 インスタンスを起動します。Amazon EC2 は、現在のスケジュール された期間の終了までに EC2 インスタンスが終了し、予約されている他のスケジュールされたインス タンスでキャパシティーを利用可能にする必要があります。したがって、Amazon EC2 は現在のスケ ジュールされた期間の終了 3 分前に EC2 インスタンスを終了します。 スケジュールされたインスタンスを停止または再起動することはできませんが、必要に応じて手動で 終了することはできます。現在のスケジュールされた期間が終わる前にスケジュールされたインスタ ンスを終了した場合、数分後にもう一度起動できます。そうでない場合は、次のスケジュールされた 期間まで待つ必要があります。 次の図は、スケジュールされたインスタンスのライフサイクルを示しています。 231 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スケジュールされたインスタンス スケジュールされたインスタンスの購入 スケジュールされたインスタンスを購入するには、スケジュールされたリザーブドインスタンスの予 約ウィザードを使用できます。 Warning スケジュールされたインスタンスの購入後、購入をキャンセル、変更、または再販売するこ とはできません。 スケジュールされたインスタンスを購入するには コンソールを使用する 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[INSTANCES] の下にある [Scheduled Instances] を選択します。 3. 4. [Purchase Scheduled Instances] を選択します。 [Find available schedules] ページで、以下の操作を実行します。 5. a. [Create a schedule] の下で、[Starting on] から開始日を、[Recurring] からスケジュールの繰 り返し (Daily、Weekly、または Monthly) を、[for duration] から最小期間を選択します。最小 期間に指定された値が、スケジュールされたインスタンスの最低限必要な使用率 (1 年当たり 1,200 時間) を満たすことを、コンソールによって確認されることに注意してください。 b. [Instance details] で、[Platform] からオペレーティングシステムとネットワークを選択しま す。結果を絞り込むには、[Instance type] で 1 つ以上のインスタンスタイプを選択するか、 [Availability Zone] で 1 つ以上のアベイラビリティーゾーンを選択します。 c. d. [Find schedules] を選択します。 [Available schedules] で、1 つまたは複数のスケジュールを選択します。選択した各スケ ジュールに対してインスタンス数を設定し、[Add to Cart] を選択します。 e. カートは、ページの下部に表示されます。スケジュールをカートに追加およびカートから削 除し終えたら、[Review and purchase] を選択します。 [Review and purchase] ページで、選択を確認し、必要に応じて編集します。完了したら、 [Purchase] を選択します。 AWS CLI を使用してスケジュールされたインスタンスを購入するには describe-scheduled-instance-availability コマンドを使用して、ニーズを満たす利用可能なスケジュー ルをリスト表示し、次に purchase-scheduled-instances コマンドを使用して購入を完了します。 スケジュールされたインスタンスの起動 スケジュールされたインスタンスを購入すると、スケジュールされた期間中に起動できるようになり ます。 232 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スケジュールされたインスタンス コンソールを使用してスケジュールされたインスタンスを起動するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで、[INSTANCES] の下にある [Scheduled Instances] を選択します。 スケジュールされたインスタンスを選択し、[Launch Scheduled Instances] を選択します。 4. [Configure] ページで、スケジュールされたインスタンスの起動仕様を入力し、[Review] を選択し ます。 Important 起動指定は、購入したスケジュールのインスタンスタイプ、アベイラビリティーゾー ン、ネットワーク、およびプラットフォームに一致する必要があります。 5. [Review] ページで、起動設定を確認し必要に応じて変更します。完了したら、[Launch] を選択し ます。 AWS CLI を使用してスケジュールされたインスタンスを起動するには describe-scheduled-instances コマンドを使用してスケジュールされたインスタンスをリスト表示し、 次に run-scheduled-instances コマンドを使用して、スケジュールされた期間中にスケジュールされた 各インスタンスを起動します。 スケジュールされたインスタンスの制限 スケジュールされたインスタンスには以下の制限が適用されます。 • サポートされているインスタンスタイプは次のタイプのみです: C3、C4、M4 および R3。 • 必要な期間は 365 日 (1 年) です。 • 最低限必要な使用率は、1 年当たり 1,200 時間です。 • 事前に 3 か月までのスケジュールされたインスタンスを購入できます。 233 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス スポットインスタンス スポットインスタンスでは、未使用の EC2 インスタンスに対してお客様から価格を提示していただ きます。これによりお客様の Amazon EC2 のコストを大幅に削減できます。 (各アベイラビリティー ゾーン内の各インスタンスタイプの) スポットインスタンスの時間料金は Amazon EC2 によって設定 され、スポットインスタンスの需要と供給に応じて変動します。お客様の入札価格が現在の市場価格 を上回っている限り、お客様はスポットインスタンスを実行できます。 スポットインスタンスは、アプリケーションを実行する時間に柔軟性がある場合や、アプリケーショ ンを中断できる場合に、費用効率の高い選択肢です。たとえば、スポットインスタンスは、データ分 析、バッチジョブ、バックグラウンド処理、およびオプションタスクに適しています。詳細について は、「Amazon EC2 スポットインスタンス」を参照してください。 スポットインスタンスとオンデマンドインスタンスとの主な違いは、スポットインスタンスはすぐに 起動されない可能性があること、スポットインスタンスの時間料金は需要に応じて変化すること、お よびスポットインスタンスの時間料金や可用性が変化したときに、Amazon EC2 が個々のスポットイ ンスタンスを終了できることです。1 つの戦略として、オンデマンドインスタンスのコアグループを 起動して、アプリケーションのコンピューティングリソースの最低保証レベルを維持し、機会が発生 したときにスポットインスタンスでオンデマンドインスタンスを補完する方法があります。 別の戦略は、スポット料金の変動によって中断されない、必須の継続期間 (スポットブロックとも呼ば れます) を指定したスポットインスタンスを起動することです。詳細については、「スポットインスタ ンスの継続期間の指定 (p. 247)」を参照してください。 概念 スポットインスタンスの使用を開始する前に、以下の概念を理解しておく必要があります。 • スポットインスタンスプール – 同様のインスタンスタイプ、オペレーティングシステム、アベイラ ビリティーゾーン、ネットワークプラットフォーム (EC2-Classic あるいは EC2-VPC) の一連の使わ れていない EC2 インスタンス。 • スポット価格とは、Amazon EC2 によって最後に落札された入札に基づき設定される、スポットイ ンスタンスの 1 時間あたりの現在の市場価格です。 スポット価格履歴を取得することもできます。 • スポットインスタンスリクエスト (またはスポット入札) とは、スポットインスタンスに対して支払 う 1 時間あたりの上限価格 (入札価格) を提供します。 入札価格がスポット価格を上回っている場 合、Amazon EC2 はリクエストを受理します。 スポットインスタンスのリクエストは、1 回限りま たは永続的となることに注意してください。 Amazon EC2 は、リクエストに関連付けられたスポッ トインスタンスが終了した後、自動的に永続スポットリクエストを再送信します。スポットインス タンスリクエストにはオプションでスポットインスタンスの継続期間を指定できます。 • スポットフリートとは、指定した条件によって起動された一連のスポットインスタンスです。 ス ポットフリートは必要条件に合ったスポットインスタンスプールを選択して、フリートのターゲッ ト容量を満たすまでスポットインスタンスを起動します。デフォルトでは、スポットフリートは、 フリートのスポットインスタンスが削除された後に代替インスタンスを作成することによってター ゲット容量が維持されるように設定されています。インスタンスが削除されると保持されないワン タイムリクエストとして送信することもできます。 234 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス • スポットインスタンスの中断とは、スポット価格が入札価格を上回った場合や、未使用の EC2 インスタンスがなくなった場合に、Amazon EC2 がスポットインスタンスを終了することです。 Amazon EC2 ではスポットインスタンスが終了対象としてマークされ、スポットインスタンスの終 了通知が表示されます。それにより、インスタンスの終了前に 2 分の警告期間が与えられます。 • 入札ステータスは、スポット入札の現在の状態に関する詳細情報を提供します。 開始方法 最初に必要なことは、Amazon EC2 を使用するようにセットアップすることです。また、スポットイ ンスタンスを起動する前に、オンデマンドインスタンスを起動した経験があると役立ちます。 起動と実行 • Amazon EC2 でのセットアップ (p. 21) • Amazon EC2 Linux インスタンスの開始方法 (p. 29) スポットの基本 • スポットインスタンスのしくみ (p. 236) • スポットフリートの仕組み (p. 239) スポットインスタンスの使用 • 中断に対する準備 (p. 278) • スポットインスタンスリクエストの作成 (p. 248) • 入札ステータス情報の取得 (p. 276) スポット群の使用 • スポット群の前提条件 (p. 255) • スポット群リクエストの作成 (p. 257) 関連サービス Amazon EC2 を使用してスポットインスタンスを直接プロビジョニングすることができます。ま た、AWS の他のサービスを使用してスポットインスタンスをプロビジョニングすることもできます。 詳細については、次のドキュメントを参照してください。 Auto Scaling とスポットインスタンス Auto Scaling がスポットインスタンスを起動できるように、入札価格を使用して起動設定を作成 できます。 詳細については、Auto Scaling ユーザーガイド の「Auto Scaling グループのスポット インスタンスの起動」を参照してください。 Amazon EMR とスポットインスタンス シナリオによっては、Amazon EMR クラスターでスポットインスタンスを実行すると便利な場合 があります。詳細については、Amazon EMR 開発者ガイド の「スポットインスタンスの使用に よるコストの削減」を参照してください。 AWS CloudFormation テンプレート AWS CloudFormation によって、JSON 形式のテンプレートを利用して、AWS リソースのコレ クションを作成および管理できます。AWS CloudFormation テンプレートにスポット価格を含 めることができます。 詳細については、「EC2 スポットインスタンスの更新 - Auto Scaling と CloudFormation の統合」を参照してください。 235 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス AWS SDK for Java Java プログラミング言語を使用して、スポットインスタンスを管理できます。詳細については、 「チュートリアル: Amazon EC2 スポットインスタンス」と「チュートリアル: Amazon EC2 ス ポットリクエストの高度な管理」を参照してください。 AWS SDK for .NET .NET プログラミング環境を使用して、スポットインスタンスを管理できます。詳細については、 「チュートリアル: Amazon EC2 スポットインスタンス」を参照してください。 料金表 スポットインスタンスはスポット価格で課金されます。これは Amazon EC2 によって設定され、ス ポットインスタンスに対する需要と供給に応じて、定期的に変動します。 入札価格がその時点のス ポット価格を超えている場合は、Amazon EC2 によってリクエストが受理されてインスタンスを実行 できるようになります。このスポットインスタンスは、お客様がインスタンスを終了するまで、また はスポット価格が入札価格を上回るまで実行されます。 お客様それぞれの入札価格の方が上かどうかにかかわらず、どのお客様もその期間の同一のスポット 価格をお支払いいただきます。 1 時間あたりの支払額が入札価格を下回ることはよくありますが、上 回ることはありません。たとえば、1 時間当たり 0.25 USD で入札し、スポット価格が 1 時間あたり 0.20 USD である場合は、1 時間あたり 0.20 USD を支払えばよいことになります。 スポット価格が下 落した場合は、新しい低くなった料金を支払います。 スポット価格が上昇した場合は、入札価格以下 の新しい価格を支払うことになります。 スポット価格が入札価格を上回った場合、スポットインスタ ンスは中断されます。 各インスタンス時間の開始時に、スポット価格に基づいて料金が課金されます。スポット価格がお客 様の入札価格を上回ったためにスポットインスタンスがインスタンス時間の途中で中断された場合、 中断された 1 時間未満の利用料金は課金されません。ただし、お客様がインスタンス時間の途中でス ポットインスタンスを削除した場合は、1 時間未満の利用についても課金されます。 継続期間を事前定義したスポットインスタンスには、固定時間単価が使用され、この価格はスポット インスタンスの実行中は有効なままになります。 料金の表示 リージョンおよびインスタンスタイプごとの最新の (5 分ごとに更新される) 最低スポット価格を確認 するには、スポットインスタンスの料金表ページを参照してください。 過去 3 か月間のスポット価格の履歴を表示するには、Amazon EC2 コンソールを使用する か、describe-spot-price-history コマンド (AWS CLI) を使用します。 詳細については、「スポットイ ンスタンスの価格設定履歴 (p. 244)」を参照してください。 AWS アカウントごとに、個別にアベイラビリティーゾーンがコードにマッピングされます。したがっ て、アカウント間で同じアベイラビリティーゾーンコード (たとえば、us-west-2a) に対して結果が 異なる場合があります。 請求書の表示 請求書を確認するには、AWS アカウントアクティビティページを参照してください。請求書には、料 金の明細が記載された使用状況レポートへのリンクが記載されています。詳細については、「AWS ア カウント請求」を参照してください。 AWS の請求、アカウント、イベントについてご質問がある場合は、AWS サポートにお問い合わせく ださい。 スポットインスタンスのしくみ スポットインスタンスを使用するには、スポットインスタンスリクエストまたはスポット群リクエス トを作成します。このリクエストには、1 インスタンスあたり 1 時間あたりの支払い上限価格 (入札価 236 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 格) とその他の制約 (インスタンスタイプやアベイラビリティーゾーンなど) を含めます。指定したイ ンスタンスの入札価格が現在のスポット価格を上回っており、指定したインスタンスが利用できる場 合、リクエストは直ちに受理されます。 それ以外の場合、スポット価格が入札価格を下回るか、指定 したインスタンスが利用可能になると、リクエストが受理されます。 スポットインスタンスは、お客 様がスポットインスタンスを終了するか、Amazon EC2 によってスポットインスタンスが停止される (スポットインスタンスの中断とも呼ばれる) まで実行されます。 スポットインスタンスを使用するときは、中断に備える必要があります。Amazon EC2 は、スポッ ト価格が入札価格を上回ったとき、スポットインスタンスに対する需要が上昇したとき、スポットイ ンスタンスの供給が低下したときに、スポットインスタンスを中断する可能性があります。 Amazon EC2 ではスポットインスタンスが終了対象としてマークされ、スポットインスタンスの終了通知が表 示されます。それにより、インスタンスの終了前に 2 分の警告期間が与えられます。スポットインス タンスに対して終了保護を有効にすることはできません。詳細については、「スポットインスタンス の中断 (p. 278)」を参照してください。 Amazon EBS-Backed インスタンスがスポットインスタンスである場合、インスタンスを停止および 開始することはできませんが、インスタンスを再起動または終了することはできます。 スポットインスタンスを OS レベルでシャットダウンすると、スポットインスタンスが終了されま す。この動作を変更することはできません。 目次 • スポット市場の供給と需要 (p. 237) • 起動グループでのスポットインスタンスの起動 (p. 238) • アベイラビリティーゾーンでのスポットインスタンスの起動 (p. 239) • VPC でのスポットインスタンスの起動 (p. 239) スポット市場の供給と需要 AWS は、継続的に各スポットインスタンスプールで利用可能なスポットインスタンスの数を評価し、 各スポットプールに対する入札をモニタリングします。さらに、最高入札者に対して利用可能なス ポットインスタンスをプロビジョニングします。プールのスポット価格は、そのプールに対して受理 された最低の入札に設定されます。したがって、単一のスポットインスタンスに対するスポットリク エストが迅速に受理されるためには、スポット価格を上回る価格を入札する必要があります。 たとえば、スポットインスタンスリクエストを作成する場合に、対応するスポットインスタンスプー ルに販売用のスポットインスタンスが 5 つしかないとします。お客様の入札価格は 0.10 USD で、こ れは現在のスポット価格でもあります。 次の表は降順ランク付けされた現在の入札価格を示します。 入札 1~5 は落札されます。最後に落札された入札 5 によってスポット価格が 0.10 USD に設定され ます。入札 6 は落札されません。 入札価格が同じ 0.10 USD である入札 3~5 はランダムな順序でラ ンク付けされています。 入札 入札価格 現在のスポット価格 1 1.00 USD 0.10 USD 2 1.00 USD 0.10 USD 3 0.10 USD 0.10 USD 4 0.10 USD 0.10 USD お客様の入札 5 0.10 USD 0.10 USD 最後に落札された入札 がスポット価格を設定 します。 期間中のス ポット価格は全員同じ です。 237 コメント Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 入札 入札価格 現在のスポット価格 コメント ——— ——— スポット容量カットオ フ 6 0.05 USD ここで、このプールのサイズが 3 に低下したとします。入札 1~3 は落札されます。最後に落札され た入札 3 によってスポット価格が 0.10 USD に設定されます。同じ 0.10 USD の入札 4 ~ 5 は落札さ れません。 ご覧のように、スポット価格は変わりませんが、お客様の入札を含む 2 つの入札はスポッ トの供給が減ったために受理されなくなります。 入札 入札価格 現在のスポット価格 コメント 1 1.00 USD 0.10 USD 2 1.00 USD 0.10 USD 3 0.10 USD 0.10 USD 最後に落札された入札 がスポット価格を設定 します。 期間中のス ポット価格は全員同じ です。 ——— ——— スポット容量カットオ フ 4 0.10 USD お客様の入札 5 0.10 USD 6 0.05 USD このプールから単一インスタンスのスポットリクエストを落札するには、現在のスポット価格 0.10 USD より高い価格で入札する必要があります。0.101 USD でスポットインスタンスを入札した場合 リクエストは落札されて、入札 3 のスポットインスタンスは中断され、スポット価格は 0.101 USD に なります。2.00 USD で入札すると、入札 3 のスポットインスタンスは中断されて、スポット価格は 1.00 USD (入札 2 の価格) になります。 どれだけ高い価格で入札しても、スポットインスタンスプール内で利用可能なスポットインスタンス の数を超えるインスタンスを取得することはできない点に注意してください。プールのサイズがゼロ になると、そのプールのスポットインスタンスは中断されます。 起動グループでのスポットインスタンスの起動 スポットインスタンスリクエストで起動グループを指定することによって、すべて起動できる場合 にのみ一連のスポットインスタンスを起動するよう Amazon EC2 に指示できます。 また、スポット サービスが起動グループ内のインスタンスの 1 つを終了する必要がある場合 (スポット価格が入札価 格を超えた場合など)、すべてのインスタンスを終了する必要があります。 ただし、お客様が起動グ ループ内の 1 つ以上のインスタンスを終了する場合、Amazon EC2 は起動グループ内のその他のイン スタンスを終了しません。 このオプションは便利な場合もありますが、この制約を追加することによって、スポットインスタン スリクエストが受理される可能性が低くなる場合があることに注意してください。また、スポットイ ンスタンスが終了する可能性が高くなります。 以前に成功したリクエストと同じ (既存の) 起動グループを指定する別の正常なスポットインスタンス リクエストを作成する場合、新しいインスタンスはこの起動グループに追加されます。したがって、 238 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス この起動グループ内のインスタンスが終了されると、起動グループ内のすべてのインスタンスが終了 します。これには、最初のリクエストと 2 番目リクエストによって起動されたすべてのインスタンス が含まれます。 アベイラビリティーゾーンでのスポットインスタンスの起動 同じアベイラビリティーゾーン内の一連のスポットインスタンスを起動するようにスポットサービス に通知するには、スポットインスタンスリクエストでアベイラビリティーゾーングループを指定しま す。Amazon EC2 は、アベイラビリティーゾーングループ内のすべてのインスタンスを同時に終了す る必要がないことに注意してください。 Amazon EC2 がアベイラビリティーゾーングループ内のいず れかのインスタンスを終了する場合、他のインスタンスはそのまま実行されます。 このオプションは便利な場合もありますが、この制約を追加することによって、スポットインスタン スリクエストが受理される可能性が低くなる場合があることに注意してください。 アベイラビリティーゾーングループを指定したが、スポットインスタンスリクエストでアベイラビリ ティーゾーンを指定しない場合、その結果は、EC2-Classic ネットワーク、デフォルトの VPC、デ フォルト以外の VPC のいずれを指定するかによって異なります。 EC2-Classic と EC2-VPC に関する 詳細は、「サポートされているプラットフォーム (p. 649)」を参照してください。 EC2-Classic Amazon EC2 は、リージョン内で最低価格のアベイラビリティーゾーンを検出し、グループの最も低 い入札価格がそのアベイラビリティーゾーンの現在のスポット価格を上回っている場合、そのアベイ ラビリティーゾーンでスポットインスタンスを起動します。 Amazon EC2 は、スポット価格がグルー プ内の最低入札価格を下回っている限り、スポットインスタンスをまとめて起動するために十分な容 量になるまで待機します。 デフォルト VPC Amazon EC2 は、指定されたサブネットのアベイラビリティーゾーンを使用します。また、サブネッ トを指定しなかった場合は、アベイラビリティーゾーンとそのデフォルトのサブネットが選択されま すが、最低価格のアベイラビリティーゾーンではない可能性があります。 アベイラビリティーゾーン のデフォルトのサブネットを削除した場合は、別のサブネットを指定する必要があります。 デフォルトではない VPC Amazon EC2 は、指定されたサブネットのアベイラビリティーゾーンを使用します。 VPC でのスポットインスタンスの起動 スポットインスタンスを使用する際に EC2 VPC の機能を活用するには、スポットインスタンスが VPC で起動されることをスポットリクエストで指定します。オンデマンドインスタンスのサブネット を指定するのと同じ方法で、スポットインスタンスのサブネットを指定します。 VPC でスポットインスタンスを起動するスポットインスタンスリクエストを実行するプロセス は、EC2-Classic でスポットインスタンスを起動するスポットインスタンスリクエストを実行するプ ロセスと同じですが、次のような違いがあります。 • 入札は VPC のスポットインスタンスのスポット価格履歴に基づいて行います。 • [デフォルトの VPC] 特定の低価格のアベイラビリティーゾーンでスポットインスタンスを起動す る場合、スポットインスタンスリクエストで対応するサブネットを指定する必要があります。サブ ネットを指定しなかった場合、Amazon EC2 によってサブネットが選択されますが、このサブネッ トのアベイラビリティーゾーンのスポット価格は最低ではない可能性があります。 • [デフォルト以外の VPC] スポットインスタンスのサブネットを指定する必要があります。 スポットフリートの仕組み スポット群は、スポットインスタンスの集合です。スポットフリートは、スポットフリートのリクエ ストで指定したターゲット容量を満たすために必要なスポットインスタンス数の起動を試みます。 ま 239 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス た、スポットフリートは、スポット価格や可能な容量に変化が生じたことによってスポットインスタ ンスが中断した場合にフリートのターゲット容量を維持するよう試みます。 スポットインスタンスプールは、同様のインスタンスタイプ、オペレーティングシステム、アベイラ ビリティーゾーン、ネットワークプラットフォーム (EC2-Classic あるいは EC2-VPC) の一連の使われ ていない EC2 インスタンスです。スポットフリートのリクエストを行う場合に複数の起動条件を含め ることができ、これにはインスタンスタイプ、AMI、アベイラビリティーゾーン、またはサブネット があります。 スポットフリートは、スポットフリートのリクエストとそのスポットフリートリクエス トの設定を含む起動条件に基づいてリクエストを満たすために使用されるスポットインスタンスプー ルを選択します。スポットインスタンスは選択されたプールから取得されます。 目次 • スポットのフリートの配分戦略 (p. 240) • スポット価格の優先 (p. 240) • スポット群インスタンスの重み付け (p. 241) • チュートリアル:スポットフリートを使ってインスタンスの分量を指定する (p. 242) スポットのフリートの配分戦略 スポットフリートの配分戦略は、起動条件によるスポットインスタンスプールからどのようにスポッ トフリートリクエストを満たすかについて決定します。以下に、スポットフリートリクエストで指定 できる配分戦略を示します。 lowestPrice スポットインスタンスは、最低価格のプールから取得されます。これはデフォルトの戦略です。 diversified スポットインスタンスはすべてのプールに分散されます。 配分戦略を選択する ユースケースに基づいてスポットフリートを最適化できます。 フリートが小サイズであったりまたは短時間の実行である場合、すべてのインスタンスが単一のス ポットインスタンスプールにあるとしても、スポットインスタンスが中断される可能性は低くなりま す。これより、lowestPrice 戦略は、低コストを提供している期間に条件に合いやすくなります。 フリートが大サイズ、または長期間実行される場合には、複数のプールにスポットインスタンスを分 散することでフリートの可用性を改善できます。たとえば、スポットフリートのリクエストの条件が 10 プールとして、ターゲット容量が 100 インスタンスとすると、スポットフリートは各プールごとに 10 個のスポットインスタンスを起動します。 1 つのプールのスポット価格がこのプールの入札価格を 超える場合、フリートの 10% のみに影響がおよびます。 この戦略を使用すると、いずれのプールに おいても経時的にフリートが受けるスポット価格の上昇の影響を減少させます。 diversified 戦略では、スポットフリートは、On-Demand price を上回るスポット価格のいずれの プールにもスポットインスタンスを起動しないことにご注意ください。 ターゲット容量を維持する スポット価格またはスポットインスタンスプール容量の変動によりスポットインスタンスが終了され た後、スポット群の代替スポットインスタンスが起動されます。配分戦略が lowestPrice である場 合、スポットフリートは、スポット価格が現在最低値のプールに代替インスタンスを起動します。 配 分戦略が diversified である場合には、スポットフリートは残りのプールに代替スポットインスタ ンスを分散します。 スポット価格の優先 各スポットフリートのリクエストには全体のスポット価格を含める必要があります。 デフォルトで は、スポットフリートは起動条件のそれぞれの入札価格としてこの価格を使用します。 240 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 任意で 1 つまたは複数の起動条件にスポット価格を指定することができます。 これは、起動条件に指 定された入札価格です。 起動条件に指定スポット価格が含まれる場合、スポットフリートは起動条件 の入札価格としてこの価格を使用し、全体のスポット価格に優先することになります。 スポット価格 を含まないそのほかの起動条件は、全体スポット価格を引き続き当てられていることにご注意くださ い。 スポット群インスタンスの重み付け スポットインスタンスのフリートをリクエストするとき、それぞれのインスタンスタイプがアプリ ケーションのパフォーマンスに応じるように容量ユニットを定義し、また、instance weighting を利用 して各スポットインスタンスプールごとに入札価格を調整できます。 デフォルトでは、指定したスポット価格は 1 インスタンス時間当たりの入札価格を表します。 インス タンス分量機能を使用すると、指定したスポット価格は ユニット時間ごとの入札価格を表します。 ユ ニット時間あたりの入札価格は、インスタンスタイプの入札価格をそのユニットの数で割って計算で きます。 スポットフリートでは、ターゲット容量をインスタンス分量で割ることで起動するスポット インスタンスの数を計算します。 その結果が整数でなければ、スポットフリートはその数を次の整数 に切り上げ、これによりフリートのサイズがターゲット容量以上になります。起動されたインスタン スの容量がリクエストされたターゲット容量を超えた場合でも、スポットフリートは起動仕様で指定 したどのプールでも選択できる点に注意してください。 次の表には、10 のターゲット容量のスポットフリートリクエストのユニット当たり入札価格を特定す るために計算の例が含まれています。 インスタンス タイプ インスタンス の分量 インスタンス 時間あたりの スポット価格 ユニット時 間あたりのス ポット価格 起動されたインスタンスの数 r3.xlarge 2 0.05 USD .025 5 (.05 ÷ 2) (10 ÷ 2) .0125 2 (.10 ÷ 8) (10 ÷ 8、結果切り上げ) r3.8xlarge 8 0.10 USD 次に示すように、スポットフリートインスタンスを使用して、受理時のユニットごとの最低価格の プールに指定するターゲット容量をプロビジョニングします。 1. スポットフリートのターゲット容量を、インスタンス (デフォルト) あるいは仮想 CPU、メモリ、 ストレージまたはスループットからご希望のユニットで設定します。 2. ユニットあたりの入札価格を設定する。 3. 各起動設定で、インスタンスタイプがターゲット容量に対して必要なユニット数である分量を指 定します。 インスタンスの分量指定例 次の設定のスポットフリートを検討します。 • ターゲット容量 24 • r3.2xlarge のインスタンスタイプの起動条件と分量 6 • c3.xlarge のインスタンスタイプの起動条件と分量 5 分量とは、インスタンスタイプがターゲット容量に対して必要なユニット数を表します。 最初の 起動条件がユニットあたりのスポット価格を最低値で提供する場合 (インスタンス時間あたりの 241 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス r3.2xlarge のスポット価格を 6 で割ったもの)、スポットフリートはこれらのインスタンスから 4 つを起動します (24 を 6 で割ったもの)。 2 番目の起動条件がユニットあたりのスポット価格を最低値で提供する場合 (インスタンス時間あたり の c3.xlarge のスポット価格を 5 で割ったもの)、スポットフリートはこれらのインスタンスから 5 つを起動します (24 を 5 で割ったもの、結果が切り上げられる)。 インスタンスの分量指定と配分戦略 次の設定のスポットフリートを検討します。 • ターゲット容量 30 • c3.2xlarge のインスタンスタイプの起動条件と分量 8 • m3.xlarge のインスタンスタイプの起動条件と分量 8 • r3.xlarge のインスタンスタイプの起動条件と分量 8 スポットフリートは、4 つのインスタンスを起動します (30 を 8 出割ったもの、結果を切り上げ)。 lowestPrice 戦略では、すべての 4 つのインスタンスはユニットあたりの最低スポット価格を提供 するプールから取得されます。diversified 戦略では、スポットフリートは 3 プールごとに 1 つの インスタンスを起動し、そしてこの 3 つのプールのいずれかから取得された 4 つ目のインスタンスが ユニットあたりの最低スポット価格を提供することになります。 チュートリアル:スポットフリートを使ってインスタンスの分量を指定する このチュートリアルでは、サンプル株式会社という名の架空会社で、インスタンス分量指定を使った スポットフリートへの入札のプロセスを説明します。 目的 製薬会社であるサンプル株式会社は、癌と闘うために使用される可能性のある化合物を選別するため に Amazon EC2 の計算処理能力を利用したいと考えています。 計画 サンプル株式会社はまず、「Spot Best Practices」を参照します。 次に、サンプル株式会社はスポッ トフリートに関する以下の要件を確認します。 インスタンスタイプ サンプル株式会社には、60 GB 以上のメモリと 8 つの仮想 CPU (vCPU) で最適に実行される、計算 能力とメモリに負担がかかるアプリケーションがあります。 同社は、できるだけ低価格でアプリケー ション用のこれらのリソースを最大化したいと考えています。 サンプル株式会社は、以下のいずれか の EC2 インスタンスタイプがそのニーズを満たすと判断します。 インスタンスタイプ メモリ (GiB) vCPU r3.2xlarge 61 8 r3.4xlarge 122 16 r3.8xlarge 244 32 ユニット単位の目標容量 インスタンスの分量指定を使用すると、ターゲット容量はインスタンスの数 (デフォルト)、またはコ ア (vCPU)、メモリ (GiB) とストレージ (GB) との要素の組み合わせで表すことができます。 アプリ ケーションのベース (60 GB の RAM と 8 個の vCPU) を 1 ユニットとして考えることで、サンプル株 式会社はこの量の 20 倍で十分ニーズに合うと決定します。 これにより、会社はスポットフリートリ クエストのターゲット容量を 20 に設定します。 242 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス インスタンスの分量 ターゲット容量の決定後、サンプル株式会社はインスタンスの分量を計算します。 各インスタンスタ イプのインスタンスの分量を計算することは、以下のように、ターゲット容量に達するために必要な 各インスタンスタイプのユニットの数を決定することです。 • r3.2xlarge (61.0 GB、8 個の vCPU) = 1/20 ユニット • r3.4xlarge (122.0 GB、16 個の vCPU) = 2/20 ユニット • r3.8xlarge (244.0 GB、32 個の vCPU) = 4/20 ユニット これよりサンプル株式会社は、1、2 と 4 のインスタンス分量をスポットフリートリクエストのそれぞ れの起動設定に割り当てます。 ユニット時間あたりの入札価格 サンプル株式会社は、入札価格の出発点としてインスタンス時間あたりの「On-Demand price」を使 用します。 最近のスポット価格または 2 つの組み合わせを使用することもできます。ユニット時間あ たりの入札価格を計算するために、インスタンス時間あたりの出発点の入札価格を分量で割ります。 以下に例を示します。 インスタンスタイプ オンデマンド価格 インスタンスの分量 ユニット時間あたりの 価格 r3.2xLarge $0.7 1 $0.7 r3.4xLarge $1.4 2 $0.7 r3.8xLarge $2.8 4 $0.7 サンプル株式会社は、ユニット時間あたりのグローバルな入札価格として 0.7 USD を入力し、3 つの インスタンスタイプすべてで競争力を高めることもできます。 また、r3.8xlarge の起動条件のなか で、1 ユニット時間あたりの全体入札価格を 0.7 USD、そして 1 ユニット時間あたりの指定入力価格 を 0.9 USD と入力することもできます。 スポットフリートをプロビジョニングするための戦略に応じ て、サンプル株式会社は将来のコスト削減目的で入札価格を下げることも、中断の可能性を低くする 目的で入札価格を上げることもできます。 アクセス許可の確認 スポットフリートのリクエストを作成する前に、サンプル株式会社は必要な権限の IAM ロールがある ことを確認します。 詳細については、「スポット群の前提条件 (p. 255)」を参照してください。 リクエストを作成する サンプル株式会社は、スポットフリートリクエストのために次の設定の config.json ファイルを作 成します。 { "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 1 }, 243 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.4xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 2 } { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.8xlarge", "SubnetId": "subnet-482e4972", "SpotPrice": "0.90", "WeightedCapacity": 4 } ] } サンプル株式会社は、次の request-spot-fleet コマンドを使用してスポットフリートリクエストを作成 します。 aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json 詳細については、「スポット群リクエスト (p. 254)」を参照してください。 受理 配分戦略は、スポットインスタンスが取得されるスポットインスタンスプールを決定します。 lowestPrice 戦略 (デフォルトの戦略) では、受理時にユニットあたりのスポット価格が最低値で あるプールからスポットインスタンスが取得されます。20 ユニットの容量を提供するためには、20 の r3.2xlarge インスタンス (20 ÷ 1)、10 のr3.4xlarge インスタンス (20 ÷ 2)、あるいは 5 r3.8xlarge インスタンス (20 ÷ 4) がスポットフリートから起動されることになります。 サンプル株式会社が diversified 戦略を採用する場合、スポットインスタンスは 3 つのすべての プールから取得されます。スポットフリートは、6 つの r3.2xlarge インスタンス (6 ユニットを提 供)、3 つの r3.4xlarge インスタンス (6 ユニットを提供)、そして 2 つのr3.8xlarge インスタンス (8 ユニットを提供) の全部で 20 ユニットを起動します。 スポットインスタンスの価格設定履歴 単発のスポットリクエストが確実に受理されるようにするには、特定の価格を上回る価格で入札する 必要があり、その特定の価格をスポット価格と言います。入札価格がスポット価格を上回っている場 合、Amazon EC2 はスポットインスタンスを起動します。また、スポット価格が入札価格を上回る と、Amazon EC2 はスポットインスタンスを終了します。 スポットリクエストが迅速に受理されるよ うに、現在のスポット価格を上回る価格で入札できます。 ただし、スポットインスタンスの入札価格 を指定する前に、スポット価格履歴を確認することをお勧めします。 インスタンスタイプ、オペレー ティングシステム、アベイラビリティーゾーンでフィルタリングして、過去 90 日間のスポット価格 履歴を表示できます。 スポット価格履歴をガイドとして使用して、以前にニーズを満たした入札価格を選択できます。 たと えば、表示している時間範囲で、75 パーセントのアップタイムを提供していた入札価格を判断できま す。ただし、過去のトレンドが今後の結果を保証するものではないことに注意してください。スポッ ト価格はリアルタイムの需要と供給の関係に基づいて変化するため、スポット価格の特定のパターン を生成した状況が将来も繰り返されるとは限りません。 コンソールを使用してスポット価格履歴を表示するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Spot Requests] を選択します。 244 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 3. 初めてスポットインスタンスを使用する場合、ウェルカムページが表示されます。[Get started] を選択した画面の下部までスクロールし、[Cancel] を選択します。 4. [Pricing History] を選択します。デフォルトでは、すべてのアベイラビリティーゾーンの Linux t1.micro インスタンスについて、過去 1 日のデータのグラフが表示されます。グラフ上でマウ スを移動すると、グラフの下の表に特定の時刻の価格が表示されます。 5. (オプション) 特定のアベイラビリティーゾーンのスポット価格履歴を確認するには、リストから アベイラビリティーゾーンを選択します。 別の製品、インスタンスタイプまたは日付範囲を選択 することもできます。 コマンドラインを使用してスポット価格履歴を表示するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-spot-price-history (AWS CLI) • Get-EC2SpotPriceHistory (AWS Tools for Windows PowerShell) スポットインスタンスリクエスト スポットインスタンスを使用するには、インスタンスの数、インスタンスタイプ、アベイラビリ ティーゾーン、インスタンス時間当たりに支払える上限価格 (入札価格) を含むスポットインスタンス リクエストを作成します。入札価格が現在のスポット価格を超えている場合、Amazon EC2 はリクエ ストをすぐに受理します。 それ以外の場合、Amazon EC2 は、リクエストが受理できるようになる か、お客様がリクエストをキャンセルするまで待機します。 次の図に、スポットリクエストのしくみを示します。 スポットインスタンスの中断に対する操作は リクエストのタイプ (ワンタイムまたは永続) によって決まります。リクエストが永続リクエストの場 合、スポットインスタンスの終了後、リクエストが再度実行されます。 245 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 目次 • スポットインスタンスのリクエストの状態 (p. 246) • スポットインスタンスの継続期間の指定 (p. 247) • スポットインスタンスのテナントの指定 (p. 247) • スポットインスタンスリクエストの作成 (p. 248) • 実行中のスポットインスタンスの検索 (p. 250) • スポットインスタンスリクエストのタグ付け (p. 251) • スポットインスタンスリクエストのキャンセル (p. 251) • スポットリクエストの起動仕様の例 (p. 252) スポットインスタンスのリクエストの状態 スポットインスタンスリクエストは、次に示す状態のいずれかになります。 • open – リクエストは受理されるまで待機状態です。 • active – リクエストは受理された状態であり、関連付けられたスポットインスタンスが存在しま す。 • failed – リクエストの 1 つ以上のパラメーターが正しくありません。 • closed – スポットインスタンスは中断または終了されました。 • cancelled – お客様がリクエストをキャンセルしたか、リクエストの有効期限が切れました。 次の図は、リクエストの状態の遷移を示しています。遷移はリクエストのタイプ (ワンタイムまたは永 続) によって異なります。 ワンタイムスポットインスタンスリクエストは、Amazon EC2 がスポットインスタンスを起動する か、リクエストの有効期限が切れるか、またはお客様がリクエストをキャンセルするまでアクティブ 状態です。 スポット価格が入札価格を上回ると、スポットインスタンスは終了し、スポットインスタ ンスリクエストはクローズされます。 永続スポットインスタンスリクエストは、リクエストが受理されても、リクエストの有効期限が切れ るか、お客様がリクエストをキャンセルするまでアクティブ状態です。たとえば、スポット価格が 0.25 USD のときに 1 つのインスタンスに対して永続スポットインスタンスリクエストを作成したと します。お客様の入札価格が 0.25 USD を上回る場合は、Amazon EC2 によりスポットインスタン スが起動されます。スポット価格が入札価格を上回ると、スポットインスタンスは終了します。ただ し、スポットインスタンスリクエストは再びオープン状態になり、スポット価格が入札価格を下回る と、Amazon EC2 は新しいスポットインスタンスを起動します。 スポットインスタンスリクエストのステータスと、入札ステータスによって起動されたスポットイン スタンスのステータスを追跡できます。詳細については、「スポット入札ステータス (p. 273)」を参 照してください。 246 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス スポットインスタンスの継続期間の指定 Amazon EC2 では、継続期間 (スポットブロックとも呼ばれます) を指定したスポットインスタンス は、スポット料金が変動しても終了されません。このようなインスタンスは、バッチ処理、エンコー ドとレンダリング、モデリングと解析、継続的な統合など、完了までに一定の時間のかかるジョブに 最適です。 1、2、3、4、5、または 6 時間の継続期間を指定できます。支払い額はこの指定した継続期間によっ て決まります。1 時間または 6 時間の継続期間の現在の価格を確認するには、スポットインスタンス の料金表ページを参照してください。これらの価格を使用して 2、3、4、5 時間の継続期間のコスト を見積もることができます。継続期間を指定したリクエストが履行されると、スポットインスタンス の価格は固定され、インスタンスの終了時まで有効なままになります。 スポットリクエストで継続期間を指定すると、各スポットインスタンスではインスタンス ID が割り当 てられるとすぐに継続期間が開始されます。スポットインスタンスは手動終了されるか継続期間が終 了するまで実行されます。継続期間の終了時、Amazon EC2 ではスポットインスタンスが終了対象と してマークされ、スポットインスタンスの終了通知が表示されます。それにより、インスタンスの終 了前に 2 分の警告期間が与えられます。 継続期間を指定したスポットインスタンスをコンソールで起動するには 適切なリクエストタイプを選択します。詳細については、「スポットインスタンスリクエストの作 成 (p. 248)」を参照してください。 継続期間を指定したスポットインスタンスを AWS CLI で起動するには スポットインスタンスの継続期間を指定するには、--block-duration-minutes を付けて requestspot-instances コマンドを実行します。たとえば、以下のコマンドでは、継続期間が 2 時間のスポッ トインスタンスを起動するスポットリクエストが作成されます。 aws ec2 request-spot-instances --spot-price "0.050" --instance-count 5 --block-duration-minutes 120 --type "one-time" --launch-specification file://specification.json 継続期間を指定したスポットインスタンスのコストを AWS CLI で取得するには 継続期間を指定したスポットインスタンスの固定費を取得するには、describe-spot-instance-requests コマンドを使用します。この情報は actualBlockHourlyPrice フィールドにあります。 スポットインスタンスのテナントの指定 スポットインスタンスは、シングルテナントのハードウェアで実行できます。ハードウェア専有ス ポットインスタンスは、他の AWS アカウントに属するインスタンスから物理的に分離されます。詳 細については、ハードウェア専有インスタンス (p. 294) および Amazon EC2 ハードウェア専有イン スタンス の製品ページを参照してください。 ハードウェア専有スポットインスタンスを実行するには、次のいずれかを実行します。 • スポットインスタンスのリクエストを作成するときに、dedicatedのテナントを指定します。詳細 については、「スポットインスタンスリクエストの作成 (p. 248)」を参照してください。 • dedicated のインスタンスのテナントを持つ VPC のスポットインスタンスをリクエストします。 詳細については、「インスタンスのテナント属性が専有である VPC を作成する (p. 296)」を参照 してください。dedicated のインスタンスのテナントを使用して VPC でインスタンスをリクエス トすると、default のテナントでスポットインスタンスをリクエストすることができないことに注 意してください。 次のインスタンスタイプは、ハードウェア専有スポットインスタンスをサポートします。 247 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 現行世代 • c3.8xlarge • c4.8xlarge • d2.8xlarge • g2.8xlarge • i2.8xlarge • m4.10xlarge • m4.16xlarge • p2.16xlarge • r3.8xlarge • r4.16xlarge • x1.32xlarge 前の世代 • cc2.8xlarge • cg1.4xlarge • cr1.8xlarge • hi1.4xlarge スポットインスタンスリクエストの作成 スポットインスタンスをリクエストするプロセスは、オンデマンドインスタンスを起動するプロセス に似ています。リクエストを送信した後で、入札価格などのスポットリクエストのパラメーターを変 更することはできません。 一度に複数のスポットインスタンスをリクエストした場合、Amazon EC2 では個々のスポットインス タンスリクエストが作成され、各リクエストのステータスを個別に追跡できます。スポットリクエス トの追跡については、「スポット入札ステータス (p. 273)」を参照してください。 前提条件 開始する前に、入札価格、必要なスポットインスタンスの数、使用するインスタンスタイプを決定し ます。スポット料金の傾向を確認するには、「スポットインスタンスの価格設定履歴 (p. 244)」を参 照してください。 コンソールを使用してスポットインスタンスリクエストを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Spot Requests] を選択します。 3. スポットインスタンスを初めて使用する場合は、ウェルカムページが表示されるので、そこで [Get started] を選択します。それ以外の場合は、[Request Spot Instances] を選択します。 4. [Find instance types] ページで、以下の操作を実行します。 a. [Request type] のデフォルトは、スポットフリートを使用して作成されたワンタイムスポッ トリクエストです。詳細については、「スポット群リクエスト (p. 254)」を参照してくださ い。代わりにスポットブロックを使用するには、[Reserve for duration] を選択します。 b. [Target capacity] に、リクエストの単位数を入力します。アプリケーションのワークロード に重要なインスタンスまたはパフォーマンスのプロパティ (vCPU、メモリ、ストレージなど) を選択できます。 c. [スポットブロック] [Reserved duration] では、完了するジョブの時間数を選択します。 248 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス d. [AMI] で、AWS によって提供される基本的な Amazon マシンイメージ (AMI) のいずれかを選 択するか、[Use custom AMI] を選択して独自の AMI を指定します。 e. [Instance type(s)] で [Select] を選択します。必要最小限のハードウェア仕様 (vCPU、メモ リ、ストレージ) でインスタンスタイプを選択します。 f. [スポットフリート] [Allocation strategy] で、お客様のニーズに合った戦略を選択します。詳 細については、「スポットのフリートの配分戦略 (p. 240)」を参照してください。 g. [Network] の場合、アカウントでサポートされるのは EC2-Classic および EC2-VPC プラッ トフォーム、または EC2-VPC プラットフォームのみです。アカウントでサポートされるプ ラットフォームを調べるには、「サポートされているプラットフォーム (p. 649)」を参照し てください。 h. 5. 6. • [既存の VPC] VPC を選択します。 • [新しい VPC] [Create new VPC] を選択して Amazon VPC コンソールにアクセスしま す。完了したら、ウィザードに戻ってリストを更新します。 • [EC2-Classic] [EC2-Classic] を選択します。 (オプション) [Availability Zones] には、デフォルトでは AWS によりスポットインスタンスの アベイラビリティーゾーンが選択されます。特定のアベイラビリティーゾーンに設定する場 合は、以下を実行します。 • [EC2-VPC] 1 つ以上のアベイラビリティーゾーンを選択します。アベイラビリティー ゾーンに複数のサブネットがある場合、[Subnet] から適切なサブネットを選択します。 サブネットを追加するには、[Create new subnet] を選択して Amazon VPC にアクセス します。完了したら、ウィザードに戻ってリストを更新します。 • [EC2-Classic] [Select specific zone/subnet] を選択し、1 つ以上のアベイラビリティー ゾーンを選択します。 i. [スポットフリート] [Maximum price] では、自動入札を使用するか、入札価格を指定できま す。入札価格が、選択したインスタンスタイプのスポット料金より低い場合、スポットイン スタンスは起動されません。 j. [Next] を選択します。 [Configure] ページで以下の操作を実行します。 a. (オプション) 追加のストレージが必要な場合は、インスタンスタイプに応じてインスタンス ストアボリュームまたは EBS ボリュームを指定できます。 b. (オプション) ハードウェア専有スポットインスタンスを実行する必要がある場合は、テナン ト専用を選択します。 c. (オプション) インスタンスに接続する必要がある場合は、[Key pair name] を使用してキーペ アを指定します。 d. (オプション) IAM ロールを指定してスポットインスタンスを起動する必要がある場合、[IAM instance profile] を使用してロールを指定します。 e. (オプション) 起動スクリプトを実行する場合、[User data] を使用してスクリプトを指定しま す。 f. [Security groups] で、1 つ以上のセキュリティグループを選択します。 g. [EC2-VPC] VPC 内のインスタンスに接続する必要がある場合、自動割り当てパブリック IP を有効にすることができます。 h. デフォルトでは、リクエストは、受理されるか、お客様がキャンセルするまで、有効な状 態です。特定の期間中のみ有効なリクエストを作成するには、[Request valid from] および [Request valid from] を編集します。 i. [スポットフリート] デフォルトでは、リクエストの有効期限が切れるとスポットインスタ ンスが終了されます。リクエストの有効期限が切れた後も実行し続ける場合、[Terminate instances at expiration] をオフにします。 j. [Review] を選択します。 [Review] ページで、起動設定を確認します。設定を変更するには、[Previous] を選択しま す。AWS CLI で使用される起動設定のコピーをダウンロードするには、[JSON config] を選択し ます。準備ができたら、[Launch] を選択します。 249 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 7. 確認ページで、[OK] を選択します。 [スポットフリート] リクエストタイプは fleet です。リクエストが実行されると、タイプ instance のリクエストが追加されます。このとき、状態は active になり、ステータスは fulfilled になります。 [スポットブロック] リクエストタイプは block で、初期状態は open です。リクエストが実行さ れると、状態は active になり、ステータスは fulfilled になります。 AWS CLI を使用してスポットインスタンスリクエストを作成するには ワンタイムリクエストを作成するには、以下の request-spot-instances コマンドを使用します。 aws ec2 request-spot-instances --spot-price "0.05" --instance-count 5 --type "one-time" --launch-specification file://specification.json 永続リクエストを作成するには、以下の request-spot-instances を使用します。 aws ec2 request-spot-instances --spot-price "0.05" --instance-count 5 --type "persistent" --launch-specification file://specification.json 起動仕様ファイルの例については、「スポットリクエストの起動仕様の例 (p. 252)」を参照してくだ さい。 Amazon EC2 では、スポット価格が入札価格を下回っていると、スポットインスタンスが起動されま す。スポットインスタンスは中断されるか手動終了されるまで実行されます。スポットインスタンス のリクエストを監視するには、以下の describe-spot-instance-requests コマンドを使用します。 aws ec2 describe-spot-instance-requests --spot-instance-requestids sir-08b93456 実行中のスポットインスタンスの検索 Amazon EC2 は、スポット価格が入札価格を下回る場合、スポットインスタンスを起動します。 ス ポットインスタンスは、その入札価格がスポット価格を上回ることができなくなるまで、またはお客 様がご自分でスポットインスタンスを終了するまで実行されます (入札価格がスポット価格と厳密に等 しい場合、需要に応じて、スポットインスタンスは実行されたままとなる可能性があります)。 コンソールを使用して実行中のスポットインスタンスを検索するには 1. 2. 3. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Spot Requests] を選択します。 スポットインスタンスリクエストとスポットフリートリクエストの両方を参照することができま す。スポットインスタンスリクエストが実行された場合、[Capacity] はスポットインスタンスの ID です。スポットフリートの場合、[Capacity] はリクエスト容量のうち受理された量を示してい ます。スポットフリートのインスタンスの ID を表示するには、拡張矢印を選択するか、フリート を選択して [Instances] タブを選択します。 または、ナビゲーションペインで [Instances] を選択します。右上隅にある [Show/Hide] アイコン を選択し、[Lifecycle] を選択します。各インスタンスの [Lifecycle] は、normal、spot、または scheduled のいずれかです。 AWS CLI を使用して実行中のスポットインスタンスを検索するには スポットインスタンスを一覧表示するには、以下のように --query オプションを付けて describespot-instance-requests コマンドを実行します。 250 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス aws ec2 describe-spot-instance-requests --query SpotInstanceRequests[*]. {ID:InstanceId} 出力例を次に示します。 [ { "ID": "i-1234567890abcdef0" }, { "ID": "i-0598c7d356eba48d7" } ] あるいは、以下のように --filters オプションを付けて describe-instances コマンドを実行して も、スポットインスタンスを一覧表示できます。 aws ec2 describe-instances --filters "Name=instance-lifecycle,Values=spot" スポットインスタンスリクエストのタグ付け スポットインスタンスリクエストを分類および管理しやすくするため、任意のメタデータでタグ付け することができます。スポットインスタンスリクエストのタグ付けは、他の Amazon EC2 リソース にタグ付けするのと同じ方法で行います。詳細については、「Amazon EC2 リソースにタグを付け る (p. 889)」を参照してください。 タグは、作成後にリクエストに割り当てることができます。 スポットインスタンスリクエストに作成するタグは、そのリクエストにのみ適用されます。これらの タグは、リクエストを受理するためにスポットサービスが起動するスポットインスタンスには自動的 に追加されません。スポットインスタンスが起動された後、スポットインスタンスに自分でタグを追 加する必要があります。 AWS CLI を使用してスポットインスタンスリクエストやスポットインスタンスにタグを追加するには リソースにタグを追加するには、以下の create-tags コマンドを使用します。 aws ec2 create-tags --resources sir-08b93456 i-1234567890abcdef0 --tags Key=purpose,Value=test スポットインスタンスリクエストのキャンセル スポットリクエストが不要になった場合には、それをキャンセルすることができます。お客様は open または active 状態のスポットインスタンスリクエストのみキャンセルできます。 リクエストがまだ 受理されておらず、インスタンスが起動されていない場合、スポットリクエストは open 状態にあり ます。リクエストが受理され、結果としてスポットインスタンスが起動された場合、スポットリクエ ストは active 状態にあります。スポットリクエストが active 状態にあり、そのスポットリクエス トに関連付けられた実行中のスポットインスタンスがある場合、リクエストをキャンセルしてもイン スタンスは終了しません。実行中のスポットインスタンスは手動で終了する必要があります。 スポットリクエストが永続スポットリクエストの場合、新しいスポットインスタンスが起動できるよ うに、リクエストは open 状態に戻ります。永続スポットリクエストをキャンセルして、スポットイ ンスタンスを終了するには、最初にスポットリクエストをキャンセルし、次にスポットインスタンス を終了する必要があります。そうしないと、スポットリクエストによって新しいインスタンスが起動 される場合があります。 251 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス コンソールを使用してスポットインスタンスリクエストをキャンセルするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Spot Requests] を選択し、スポットリクエストを選択します。 3. [Actions]、[Cancel spot request] の順に選択します。 4. (オプション) 関連付けられたスポットインスタンスを使い終わったら、スポットインスタンスを 終了できます。ナビゲーションペインで、[Instances] を選択し、インスタンスを選択した後で、 [Actions]、[Instance State]、[Terminate] の順に選択します。 AWS CLI を使用してスポットインスタンスリクエストをキャンセルするには 指定したスポットリクエストをキャンセルするには、以下の cancel-spot-instance-requests コマンド を使用します。 aws ec2 cancel-spot-instance-requests --spot-instance-requestids sir-08b93456 関連付けられているスポットインスタンスを終了する場合は、以下の terminate-instances コマンドを 使用して、それらのインスタンスを手動で終了できます。 aws ec2 terminate-instances --instanceids i-1234567890abcdef0 i-0598c7d356eba48d7 スポットリクエストの起動仕様の例 以下の例で示しているのは、スポットインスタンスリクエストを作成するための request-spotinstances コマンドで使用できる起動設定です。詳細については、「スポットインスタンスリクエスト の作成 (p. 248)」を参照してください。 1. スポットインスタンスを起動する (p. 252) 2. 指定したアベイラビリティーゾーンでスポットインスタンスを起動する (p. 253) 3. 指定したサブネットでスポットインスタンスを起動する (p. 253) 4. ハードウェア専有スポットインスタンスの起動 (p. 254) 例 1: スポットインスタンスを起動する 以下の例には、アベイラビリティーゾーンまたはサブネットは含まれていません。Amazon EC2 に よってアベイラビリティーゾーンが選択されます。お客様のアカウントで EC2-VPC のみがサポート されている場合は、Amazon EC2 によって選択されたアベイラビリティーゾーンのデフォルトのサブ ネットでインスタンスが起動されます。お客様のアカウントで EC2-Classic がサポートされている場 合は、Amazon EC2 によって選択されたアベイラビリティーゾーンの EC2-Classic でインスタンスが 起動されます。 { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroupIds": [ "sg-1a2b3c4d" ], "InstanceType": "m3.medium", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } 252 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス EC2-Classic のセキュリティグループは ID または名前で指定できます (SecurityGroups フィールド を使用)。EC2-VPC のセキュリティグループは ID で指定する必要があります。 例 2: 指定したアベイラビリティーゾーンでスポットインスタンスを起動する 以下の例には、アベイラビリティーゾーンが含まれています。お客様のアカウントで EC2-VPC のみ がサポートされている場合は、Amazon EC2 によって指定したアベイラビリティーゾーンのデフォル トのサブネットでインスタンスが起動されます。お客様のアカウントで EC2-Classic がサポートされ ている場合は、Amazon EC2 によって指定したアベイラビリティーゾーンの EC2-Classic でインスタ ンスが起動されます。 { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroupIds": [ "sg-1a2b3c4d" ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2a" }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } 例 3: 指定したサブネットでスポットインスタンスを起動する 以下の例には、サブネットが含まれています。Amazon EC2 によって指定したサブネットでインスタ ンスが起動されます。デフォルト以外の VPC である場合、インスタンスにはデフォルトでパブリック IPv4 アドレスは割り当てられません。 { "ImageId": "ami-1a2b3c4d", "SecurityGroupIds": [ "sg-1a2b3c4d" ], "InstanceType": "m3.medium", "SubnetId": "subnet-1a2b3c4d", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } デフォルト以外の VPC である場合、インスタンスにパブリック IPv4 アドレスを割り当てるには、以 下の例に示しているように AssociatePublicIpAddress フィールドを指定します。ネットワーク インターフェイスの指定時には、例 3 に示している SubnetId および SecurityGroupIds フィール ドではなく、ネットワークインターフェイスを使用して、サブネット ID およびセキュリティグループ ID を含める必要があります。 { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "InstanceType": "m3.medium", "NetworkInterfaces": [ { "DeviceIndex": 0, "SubnetId": "subnet-1a2b3c4d", "Groups": [ "sg-1a2b3c4d" ], "AssociatePublicIpAddress": true } 253 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス ], "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } 例 4: ハードウェア専有スポットインスタンスを起動 次の例では、dedicated のテナントでスポットインスタンスをリクエストします。ハードウェア専用 スポットインスタンスは、VPC で起動する必要があります。 { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroupIds": [ "sg-1a2b3c4d" ], "InstanceType": "c3.8xlarge", "SubnetId": "subnet-1a2b3c4d", "Placement": { "Tenancy": "dedicated" } } スポット群リクエスト スポット群を使用するには、目標容量、インスタンスの 1 つ以上の起動仕様、希望入札価格などを指 定したスポット群リクエストを作成します。Amazon EC2 は、スポット価格の変更に応じてスポット 群の目標容量を維持しようとします。詳細については、「スポットフリートの仕組み (p. 239)」を参 照してください。 スポットフリートを作成し、希望する容量のワンタイム request を送信するか、ターゲット容量の 継続した maintain を要求します。どちらのリクエストタイプも、スポットフリートの分散戦略の恩 恵を受けす。 ターゲット容量を request すると、スポットフリートは必要な入札を行いますが、容量が低下した 場合はスポットインスタンスの補充を試みません。使用可能な容量がない場合、スポットフリートは 代替スポットプールで入札を送信しません。 ターゲット容量を maintain する場合、スポットフリートはこのターゲット容量を満たすのに必要な 入札を行い、中断されたインスタンスを自動的に補充します。デフォルトでは、スポットフリートは リクエストされたターゲット容量を maintain するように設定されています。 送信後にワンタイム request のターゲット容量を変更することはできません。ターゲット容量を変 更するには、リクエストを変更し、新しいリクエストを送信します。 スポット群リクエストは、期限切れになるかお客様によってキャンセルされるまで、アクティブのま まになります。スポットフリートリクエストのキャンセル時には、スポットフリートをキャンセルし たらスポットフリートのスポットインスタンスを終了するかどうかを指定できます。 各起動仕様には、Amazon EC2 によるインスタンスの起動に必要な情報 (AMI、インスタンスタイプ、 サブネットまたはアベイラビリティーゾーン、そして 1 つ以上のセキュリティグループ) を指定しま す。 目次 • • • • • スポット群リクエストの状態 (p. 255) スポット群の前提条件 (p. 255) スポットフリートと IAM ユーザー (p. 256) スポットフリートリクエストの準備 (p. 257) スポット群リクエストの作成 (p. 257) 254 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス • スポット群の監視 (p. 259) • スポットフリートリクエストを変更する (p. 259) • スポット群リクエストのキャンセル (p. 260) • スポットフリート設定の例 (p. 262) スポット群リクエストの状態 スポット群リクエストは、次に示す状態のいずれかになります。 • submitted - スポット群リクエストは評価中です。Amazon EC2 は目標数のスポットインスタンス を起動する準備をしています。 • active - スポット群リクエストは検証済みです。Amazon EC2 は実行中のスポットインスタンスを 目標数分、確保しようとしています。リクエストは、変更またはキャンセルされるまで、この状態 のままになります。 • modifying - スポット群リクエストは変更中です。リクエストは、変更が完全に処理されるか、ス ポット群がキャンセルされるまで、この状態のままになります。ワンタイム request を変更する ことはできません。この状態は、そのようなスポットリクエストには適用されません。 • cancelled_running - スポットフリートはキャンセルされました。追加のスポットインスタンス は起動されませんが、既存のスポットインスタンスは中断または手動終了されるまで、引き続き実 行されます。リクエストは、すべてのインスタンスが中断されるか終了されるまで、この状態のま まになります。 • cancelled_terminating - スポットフリートはキャンセルされました。スポットインスタンス は終了中です。リクエストは、すべてのインスタンスが終了されるまで、この状態のままになりま す。 • cancelled - スポットフリートはキャンセルされました。実行中のスポットインスタンスがありま せん。スポット群リクエストは、そのインスタンスが終了されてから 2 日後に削除されます。 次の図は、リクエストの状態の遷移を示しています。スポットフリートの制限を超えた場合、リクエ ストはすぐにキャンセルされます。 スポット群の前提条件 AWS マネジメントコンソール を使用してスポットフリートを作成した場合、代わりにインスタンス の入札、起動、終了を行う権限をスポットフリートに与える aws-ec2-spot-fleet-role という名 前のロールが作成され、スポットフリートリクエストでそのロールが指定されます。AWS CLI または API を使用してスポットフリートを作成した場合、このロール (すでにあれば) を使用できます。また は、以下のようにこの目的に独自のロールを手動で作成できます。 255 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス AmazonEC2SpotFleetRole を含む IAM ロールを手動で作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで [Roles (ロール) ] を選択します。 3. [Create New Role] を選択します。 4. [Set Role Name] ページで、ロールの名前を入力し、[Next Step] を選択します。 5. [Select Role Type] ページで、[Amazon EC2 Spot Fleet Role] の隣にある [Select] を選択します。 6. [Attach Policy] ページで、[AmazonEC2SpotFleetRole] ポリシーを選択し、[Next Step] を選択し ます。 7. [Review] ページで、[Create Role] を選択します。 スポットフリートと IAM ユーザー IAM ユーザーがスポットフリートを作成または管理する場合、必ず次のようにして必要な権限を付与 してください。 IAM ユーザーにスポットフリートの権限を付与するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで、[Policies] を選択し、[Create Policy] を選択します。 3. [Create Policy] ページで、[Create Your Own Policy] の横の [Select] を選択します。 4. [Review Policy] ページで、ポリシー名を入力し、次のテキストを [Policy Document] セクション にコピーします。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole", "iam:ListRoles", "iam:ListInstanceProfiles" ], "Resource": "*" } ] } ec2:* は、IAM ユーザーがすべての Amazon EC2 API アクションを呼び出すことができるように します。特定の API アクションに制限するには、代わりにこれらのアクションを指定します。 iam:PassRole アクションにより、ユーザーはスポットフリートリクエストでスポット フリートロールを指定することができます。iam:ListRoles アクションにより、ユー ザーは既存のロールを列挙することができます。iam:ListInstanceProfiles アク ションにより、ユーザーは既存のインスタンスプロファイルを列挙することができま 256 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス す。Amazon EC2 コンソールは iam:ListRoles を使用して IAM ロールリストに入力 し、iam:ListInstanceProfiles を使用して IAM インスタンスプロファイルリストに入 力します。ユーザーがコンソールを使用してロールまたはインスタンスプロファイルを作 成できるようにするには、iam:CreateRole、iam:CreateInstanceProfile、および iam:AddRoleToInstanceProfile の各アクションを追加する必要があります。 5. [Create Policy] を選択します。 6. ナビゲーションペインで、[Users] を選択し、スポット群リクエストを送信するユーザーを選択し ます。 7. [Permissions] タブで、[Add permissions] を選択します。 8. [Attach existing policies directly] を選択します。上記で作成したポリシーを選択してから、[Next: Review]、[Add permissions] の順に選択します。 スポットフリートリクエストの準備 スポット群リクエストを作成する前に、「ベストプラクティス」を確認してください。スポット群リ クエストを計画するときにこれらのベストプラクティスを使用して、できるだけ低価格でインスタン スのタイプをプロビジョニングできるようにします。また、次のことをお勧めします。 • 目的のターゲット容量のワンタイム request を送信するスポットフリートと、ターゲット容量の 継続した maintain を行うスポットフリートのどちらを作成するかを決定します。 • アプリケーションの要件を満たすインスタンスタイプを決定します。 • スポット群リクエストの目標容量を決定します。インスタンスまたはカスタムユニットでターゲッ ト容量を設定できます。 詳細については、「スポット群インスタンスの重み付け (p. 241)」を参 照してください。 • 1 インスタンス時間当りの入札価格を決定します。 低い価格で入札すると、コストをさらに低く抑 えることができ、高い価格で入札すると、中断の可能性を下げることができます。 • インスタンス分量指定を使用している場合は、ユニット当りの入札価格を決定します。 インスタン ス時間当りの入札価格の計算は、インスタンス時間当たりの入札価格をそのインスタンスが表すユ ニット数 (または分量) で割って算出します (インスタンス分量指定を使用する場合、ユニット当り のデフォルトの入札価格は 1 インスタンス時間当りの入札価格となります)。 • スポットフリートのリクエストに対して可能なオプションを確認します。 詳細については、「AWS Command Line Interface Reference」の request-spot-fleet コマンドを参照してください。 その他の 例については、「スポットフリート設定の例 (p. 262)」を参照してください。 スポット群リクエストの作成 スポット群リクエストの作成時、起動するスポットインスタンスに関する情報 (インスタンスタイプや スポット価格など) を指定する必要があります。 コンソールを使用してスポット群リクエストを作成するには 1. スポットコンソール (https://console.aws.amazon.com/ec2spot) を開きます。 2. スポットを初めて使用する場合は、ウェルカムページが表示されるので、そこで [Get started] を 選択します。それ以外の場合は、[Request Spot Instances] を選択します。 3. [Find instance types] ページで、以下の操作を実行します。 a. [Request type] で、[Request] または [Request and Maintain] を選択します。 b. [Target capacity] に、リクエストの単位数を入力します。アプリケーションのワークロード に重要なインスタンスまたはパフォーマンスのプロパティ (vCPU、メモリ、ストレージなど) を選択できます。 c. [AMI] では、AWS に用意されたベーシック Amazon Machine Images (AMI) のいずれかを選 択するか、[Use custom AMI] を選択してユーザーコミュニティ の AMI、AWS Marketplace の AMI または独自の AMI を使用します。 257 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス d. [Instance type(s)] で [Select] を選択します。必要最小限のハードウェア仕様 (vCPU、メモ リ、ストレージ) でインスタンスタイプを選択します。 e. [Allocation strategy] で、お客様のニーズに合った戦略を選択します。詳細については、「ス ポットのフリートの配分戦略 (p. 240)」を参照してください。 f. [Network] の場合、アカウントでサポートされるのは EC2-Classic および EC2-VPC プラッ トフォーム、または EC2-VPC プラットフォームのみです。アカウントでサポートされるプ ラットフォームを調べるには、「サポートされているプラットフォーム (p. 649)」を参照し てください。 g. 4. • [既存の VPC] VPC を選択します。 • [新しい VPC] [Create new VPC] を選択して Amazon VPC コンソールにアクセスしま す。完了したら、ウィザードに戻ってリストを更新します。 • [EC2-Classic] [EC2-Classic] を選択します。 (オプション) [Availability Zones] には、デフォルトでは AWS によりスポットインスタンスの アベイラビリティーゾーンが選択されます。特定のアベイラビリティーゾーンに設定する場 合は、以下を実行します。 • [EC2-VPC] 1 つ以上のアベイラビリティーゾーンを選択します。アベイラビリティー ゾーンに複数のサブネットがある場合、[Subnet] から適切なサブネットを選択します。 サブネットを追加するには、[Create new subnet] を選択して Amazon VPC にアクセス します。完了したら、ウィザードに戻ってリストを更新します。 • [EC2-Classic] [Select specific zone/subnet] を選択し、1 つ以上のアベイラビリティー ゾーンを選択します。 h. [Maximum price] では、自動入札を使用するか、入札価格を指定できます。入札価格が、選択 したインスタンスタイプのスポット料金より低い場合、スポットインスタンスは起動されま せん。 i. [Next] を選択します。 [Configure] ページで以下の操作を実行します。 a. (オプション) インスタンスに接続する必要がある場合は、[Key pair name] を使用してキーペ アを指定します。 b. (オプション) IAM ロールを指定してスポットインスタンスを起動する必要がある場合、[IAM instance profile] を使用してロールを指定します。 c. (オプション) 起動スクリプトを実行する場合、[User data] を使用してスクリプトを指定しま す。 d. [Security groups] で、1 つ以上のセキュリティグループを選択します。 e. [EC2-VPC] VPC 内のインスタンスに接続する必要がある場合、[Public IP] で [auto-assign at launch] を選択します。 f. デフォルトでは、リクエストは、受理されるか、お客様がキャンセルするまで、有効な状 態です。特定の期間中のみ有効なリクエストを作成するには、[Request valid from] および [Request valid from] を編集します。 g. (オプション) デフォルトでは、リクエストの有効期限が切れるとスポットインスタンスが終 了されます。リクエストの有効期限が切れた後も実行し続ける場合、[Terminate instances at expiration] をオフにします。 h. [Review] を選択します。 5. [Review] ページで、起動設定を確認します。設定を変更するには、[Previous] を選択しま す。AWS CLI で使用される起動設定のコピーをダウンロードするには、[JSON config] を選択し ます。準備ができたら、[Launch] を選択します。 6. 確認ページで、[OK] を選択します。リクエストタイプは fleet です。リクエストが実行される と、タイプ instance のリクエストが追加されます。このとき、状態は active になり、ステー タスは fulfilled になります。 AWS CLI を使用してスポット群リクエストを作成するには 258 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス スポット群リクエストを作成するには、以下の request-spot-fleet コマンドを使用します。 aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json 設定ファイルの例については、「スポットフリート設定の例 (p. 262)」を参照してください。 出力例を次に示します。 { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" } スポット群の監視 スポット価格が入札価格を下回っていると、スポット群のスポットインスタンスが起動されます。ス ポットインスタンスは、その入札価格がスポット価格を超えることがなくなるまで、またはお客様が 自らスポットインスタンスを終了するまで実行されます。 コンソールを使用してスポット群を監視するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Spot Requests] を選択します。 3. スポット群リクエストを選択します。設定の詳細が [Description] タブに表示されます。 4. スポットフリートのスポットインスタンスを一覧表示するには、[Instances] タブを選択します。 5. スポットフリートの履歴を表示するには、[History] タブを選択します。 AWS CLI を使用してスポット群を監視するには スポット群リクエストの詳細を表示するには、以下の describe-spot-fleet-requests コマンドを使用し ます。 aws ec2 describe-spot-fleet-requests 指定したスポット群のスポットインスタンスの詳細を表示するには、以下の describe-spot-fleetinstances コマンドを使用します。 aws ec2 describe-spot-fleet-instances --spot-fleet-request-id sfr-73fbd2ceaa30-494c-8788-1cee4EXAMPLE 指定したスポット群リクエストの履歴を表示するには、以下の describe-spot-fleet-request-history コ マンドを使用します。 aws ec2 describe-spot-fleet-request-history --spot-fleet-requestid sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --start-time 2015-05-18T00:00:00Z スポットフリートリクエストを変更する 以下のタスクを完了するように、アクティブなスポット群リクエストを変更できます。 • ターゲット容量を増やします 259 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス • ターゲット容量を減らします Note 1 回限りのスポット群リクエストを変更することはできません。 ターゲット容量を増やす場合、スポットフリートは、スポットフリートリクエストの配分戦略に従っ て追加のスポットインスタンスを起動します。 配分戦略が lowestPrice の場合、スポットフリー トは、スポットフリートリクエストの最低価格のスポットインスタンスプールからインスタンスを起 動します。配分戦略が diversified の場合、スポットフリートは、スポットフリートリクエストの プールにインスタンスを分散します。 ターゲット容量を減らす場合、スポットフリートは新しいターゲット容量を超えるすべてのオープン 入札をキャンセルします。 スポット群のサイズが新しいターゲット容量に達するとスポット群のス ポットインスタンスが終了されるようにリクエストできます。配分戦略が lowestPrice である場 合は、スポット群の最低単価のインスタンスが終了されます。配分戦略が diversified である場合 は、スポット群のプール全体でインスタンスが終了されます。あるいは、スポット群の現在のサイズ を保持するようにリクエストすることもできますが、中断または手動終了されたスポットインスタン スへの置き換えはできません。 ターゲット容量が減ったためにスポット群によってインスタンスが終了される場合、インスタンスは スポットインスタンスの終了通知を受け取ります。 コンソールを使用してスポット群リクエストを変更するには 1. 2. スポットコンソール (https://console.aws.amazon.com/ec2spot/home/fleet) を開きます。 スポット群リクエストを選択します。 3. 4. [Actions]、[Modify target capacity] の順に選択します。 [Modify target capacity] で、以下の操作を実行します。 a. 新しいターゲット容量を入力します。 b. (オプション) ターゲット容量を小さくしてもスポット群の現在のサイズを保持する場合は、 [Terminate instances] の選択を解除します。 c. [Submit] を選択します。 AWS CLI を使用してスポット群リクエストを変更するには 次のmodify-spot-fleet-requestコマンドを使用して、指定するスポットフリートリクエストのターゲッ ト容量を更新します。 aws ec2 modify-spot-fleet-request --spot-fleet-request-id sfr-73fbd2ceaa30-494c-8788-1cee4EXAMPLE --target-capacity 20 前のコマンドを以下のように変更することで、結果的にいずれのスポットインスタンスも終了せず に、指定したスポット群のターゲット容量を減らすことができます。 aws ec2 modify-spot-fleet-request --spot-fleet-request-id sfr-73fbd2ceaa30-494c-8788-1cee4EXAMPLE --target-capacity 10 --excess-capacitytermination-policy NoTermination スポット群リクエストのキャンセル スポット群を使用しなくなったら、スポット群リクエストをキャンセルできます。これにより、 スポット群に関連付けられているすべてのスポットリクエストがキャンセルされるため、そのス 260 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス ポット群の新しいスポットインスタンスは起動されなくなります。スポット群のスポットインスタ ンスを終了するかどうか指定する必要があります。インスタンスを終了する場合、スポット群リク エストは cancelled_terminating 状態になります。それ以外の場合、スポット群リクエストは cancelled_running 状態になり、インスタンスは中断または手動終了されるまで、引き続き実行さ れます。 コンソールを使用してスポット群リクエストをキャンセルするには 1. スポットコンソール (https://console.aws.amazon.com/ec2spot/home/fleet) を開きます。 2. スポット群リクエストを選択します。 3. [Actions]、[Cancel spot request] の順に選択します。 4. [Cancel spot request] で、スポット群をキャンセルしてもよいか確認します。スポット群の現 在のサイズを保持するには、[Terminate instances] の選択を解除します。準備ができたら、 [Confirm] を選択します。 AWS CLI を使用してスポット群リクエストをキャンセルするには 指定したスポット群リクエストをキャンセルし、インスタンスを終了するには、以下の cancel-spotfleet-requests コマンドを使用します。 aws ec2 cancel-spot-fleet-requests --spot-fleet-request-ids sfr-73fbd2ceaa30-494c-8788-1cee4EXAMPLE --terminate-instances 出力例を次に示します。 { "SuccessfulFleetRequests": [ { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "CurrentSpotFleetRequestState": "cancelled_terminating", "PreviousSpotFleetRequestState": "active" } ], "UnsuccessfulFleetRequests": [] } 前のコマンドを以下のように変更することで、インスタンスを終了せずに、指定したスポット群リク エストをキャンセルできます。 aws ec2 cancel-spot-fleet-requests --spot-fleet-request-ids sfr-73fbd2ceaa30-494c-8788-1cee4EXAMPLE --no-terminate-instances 出力例を次に示します。 { "SuccessfulFleetRequests": [ { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "CurrentSpotFleetRequestState": "cancelled_running", "PreviousSpotFleetRequestState": "active" } ], "UnsuccessfulFleetRequests": [] 261 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス } スポットフリート設定の例 以下の例で示しているのは、スポット群リクエストを作成するための request-spot-fleet コマンドで使 用できる起動設定です。詳細については、「スポット群リクエストの作成 (p. 257)」を参照してくだ さい。 1. リージョンの最低価格のアベイラビリティーゾーンあるいはサブネットでスポットインスタンスを 起動する (p. 262) 2. 指定リストから最低価格のアベイラビリティーゾーンあるいはサブネットでスポットインスタンス を起動する (p. 262) 3. 指定されたリストから最低価格のインスタンスタイプを使用してスポットインスタンスを起動す る (p. 264) 4. リクエストするスポット価格を上書きする (p. 265) 5. 分散配分戦略を使用してスポットフリートを起動する (p. 266) 6. インスタンスの分量指定を使用してスポットフリートを起動する (p. 268) 例 1: リージョン内で最低価格のアベイラビリティーゾーンまたはサブネットでスポットイン スタンスを起動する 以下の例では、アベイラビリティーゾーンまたはサブネットを使用しない 1 つの起動仕様を指定し ています。ご使用のアカウントが EC2-VPC のみをサポートしている場合、スポットフリートは、デ フォルトのサブネットがある最低価格のアベイラビリティーゾーンでインスタンスを起動します。 ご 使用のアカウントが EC2-Classic をサポートしている場合、スポットフリートは、最低価格のアベイ ラビリティーゾーンの EC2-Classic でインスタンスを起動します。 お支払い価格がリクエストに指定 されたスポット価格を上回ることはありません。 { "SpotPrice": "0.07", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] } 例 2: 指定したリスト内で最低価格のアベイラビリティーゾーンまたはサブネットでスポット インスタンスを起動する 以下の例では、アベイラビリティーゾーン/サブネットは異なるがインスタンスタイプおよび AMI は同 じ、2 つの起動仕様を指定しています。 アベイラビリティーゾーン 262 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス ご使用のアカウントが EC2-VPC のみをサポートしている場合、スポットフリートは指定された最低 価格のアベイラビリティーゾーンのデフォルトのサブネットでインスタンスを起動します。 ご使用の アカウントが EC2-Classic をサポートしている場合、スポットフリートは指定された最低価格のアベ イラビリティーゾーンでインスタンスを起動します。 { "SpotPrice": "0.07", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2a, us-west-2b" }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] } Subnets デフォルトのサブネットまたはデフォルト以外のサブネットを指定できますが、デフォルト以外のサ ブネットは、デフォルトの VPC またはデフォルト以外の VPC 内から選択できます。スポットサービ スは、最低価格のアベイラビリティーゾーンにあるいずれかのサブネットでインスタンスを起動しま す。 1 つのスポット群リクエストで、同じアベイラビリティーゾーンから複数の異なるサブネットを指定 することはできないことに注意してください。 { "SpotPrice": "0.07", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "SubnetId": "subnet-a61dafcf, subnet-65ea5f08", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } 263 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス ] } インスタンスがデフォルトの VPC で起動される場合は、デフォルトでパブリック IPv4 アドレスが割 り当てられます。インスタンスがデフォルト以外の VPC で起動される場合は、デフォルトでパブリッ ク IPv4 アドレスは割り当てられません。起動仕様でネットワークインターフェイスを使用して、デ フォルト以外の VPC で起動されるインスタンスにパブリック IPv4 アドレスを割り当てます。ネット ワークインターフェイスの指定時、ネットワークインターフェイスを使用してサブネット ID とセキュ リティグループ ID を含める必要があります。 ... { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "InstanceType": "m3.medium", "NetworkInterfaces": [ { "DeviceIndex": 0, "SubnetId": "subnet-1a2b3c4d", "Groups": [ "sg-1a2b3c4d" ], "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role" } } ... 例 3: 指定したリスト内で最低価格のインスタンスタイプを使用してスポットインスタンスを 起動する 次の例では、同じ AMI と アベイラビリティーゾーンまたはサブネットで、複数の異なるインスタンス タイプを使用する 2 つの起動設定を指定します。 スポットフリートは、最低価格のインスタンスタイ プを使用してインスタンスを起動します。 アベイラビリティーゾーン { "SpotPrice": "2.80", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "cc2.8xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", 264 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "r3.8xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } サブネット { "SpotPrice": "2.80", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "cc2.8xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "r3.8xlarge", "SubnetId": "subnet-1a2b3c4d" } ] } 例 4. リクエストするスポット価格を上書きする 個別の起動条件のためにスポット価格を指定できる機能は、入札プロセルにおいてさらなるコント ロールを提供します。 次に、3 つの起動条件において 2 つ分の個別スポット価格を指定するため に、リクエストするスポット価格 (0.070) を上書きする例を示します。 リクエストするスポット価格 は、個別のスポット価格を指定しないすべての起動条件に適用されることにご注意ください。 スポッ トフリートは、最低価格のインスタンスタイプを使用してインスタンスを起動します。 アベイラビリティーゾーン { "SpotPrice": "1.68", "TargetCapacity": 30, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ 265 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "SpotPrice": "0.04" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.4xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "SpotPrice": "0.06" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.8xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } サブネット { "SpotPrice": "1.68", "TargetCapacity": 30, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "SubnetId": "subnet-1a2b3c4d", "SpotPrice": "0.04" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.4xlarge", "SubnetId": "subnet-1a2b3c4d", "SpotPrice": "0.06" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.8xlarge", "SubnetId": "subnet-1a2b3c4d" } ] } 例 5: 分散配分戦略を使用してスポット群を起動する 次の例では、diversified の配分戦略を使用します。 これらの起動仕様では、インスタンスタイプ は異なりますが、AMI およびアベイラビリティーゾーン/サブネットは同じです。スポットフリート は、3 つの起動条件について 30 個のインスタンスを分配します。これで、各タイプごとに 10 個のイ 266 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス ンスタンスが配分されます。 詳細については、「スポットのフリートの配分戦略 (p. 240)」を参照 してください。 アベイラビリティーゾーン { "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } サブネット { "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-1a2b3c4d" } 267 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス ] } 例 6: インスタンスの重み付けを使用してスポット群を起動する 次の例では、インスタンス分量指定を使っています。これは、入札価格が 1 インスタンス時間当たり ではなく、1 ユニット時間当たりであることを意味します。 それぞれの起動設定には、異なるインス タンスタイプおよび異なる分量がリストされます。 スポットフリートは 1 ユニット時間当たり最低価 格のインスタンスタイプを選択します。 スポットフリートでは、ターゲット容量をインスタンス分量 で割ることで起動するスポットインスタンスの数を計算します。 その結果が整数でなければ、スポッ トフリートはその数を次の整数に切り上げ、これによりフリートのサイズがターゲット容量以上にな ります。 r3.2xlarge の入札が成功すると、スポットはこれらのインスタンスのうち、4 つをプロビジョニ ングします (3.33 インスタンスまで 20 を 6 で割り、そして残りの 4 つのインスタンスを切り上げま す)。 c3.xlarge の入札が成功すると、スポットはこれらのインスタンスのうち、7 つをプロビジョニング します (6.66 インスタンスまで 20 を 3 で割り、そして残りの 7 つのインスタンスを切り上げます)。 詳細については、「スポット群インスタンスの重み付け (p. 241)」を参照してください。 アベイラビリティーゾーン { "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "WeightedCapacity": 6 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "WeightedCapacity": 3 } ] } サブネット { "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-1a2b3c4d", 268 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス "WeightedCapacity": 6 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.xlarge", "SubnetId": "subnet-1a2b3c4d", "WeightedCapacity": 3 } ] } 優先度 また、アベイラビリティーゾーンまたはサブネットに優先度を与えるためにも、インスタンス分量指 定を使用できます。 たとえば、次の起動条件はほぼ同じですが、異なるサブネットと分量を指定して います。 スポットフリートは WeightedCapacity に対して最大値を付ける条件を見つけ出して、そ のサブネット内で最低価格のスポットインスタンスプールにリクエストをプロビジョニングすること を試みます (2 つ目の起動条件には分量指定が含まれないため、デフォルトで値 1 になることにご留意 ください)。 { "SpotPrice": "0.42", "TargetCapacity": 40, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 2 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "SubnetId": "subnet-bb3337d" } ] } スポット群の CloudWatch メトリクス Amazon EC2 は、スポット群をモニタリングするために使用できる Amazon CloudWatch メトリクス を提供します。 Important 正確性を確実にするため、これらのメトリクスを使用する際は詳細モニタリングを有効にす ることをお勧めします。詳細については、「インスタンスの詳細モニタリングの有効化また は無効化 (p. 534)」を参照してください。 Amazon EC2 によって提供される CloudWatch メトリクスの詳細については、「CloudWatch を使用 したインスタンスのモニタリング (p. 534)」を参照してください。 スポット群のメトリクス AWS/EC2Spot 名前空間には、次のメトリクスに加えて、スポット群のスポットインスタンス用の CloudWatch メトリクスが含まれます。詳細については、「インスタンスメトリクス (p. 536)」を参 照してください。 269 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス The AWS/EC2Spot namespace includes the following metrics. Metric Description AvailableInstancePoolsCount The Spot Instance pools specified in the Spot Fleet request. Units: Count BidsSubmittedForCapacity The capacity for which Amazon EC2 has submitted bids. Units: Count EligibleInstancePoolCount The Spot Instance pools specified in the Spot Fleet request where Amazon EC2 can fulfill bids. Amazon EC2 will not fulfill bids in pools where your bid price is less than the Spot price or the Spot price is greater than the price for On-Demand instances. Units: Count FulfilledCapacity The capacity that Amazon EC2 has fulfilled. Units: Count MaxPercentCapacityAllocation The maximum value of PercentCapacityAllocation across all Spot Instance pools specified in the Spot Fleet request. Units: Percent PendingCapacity The difference between TargetCapacity and FulfilledCapacity. Units: Count PercentCapacityAllocation The capacity allocated for the Spot Instance pool for the specified dimensions. To get the maximum value recorded across all Spot Instance pools, use MaxPercentCapacityAllocation. Units: Percent TargetCapacity The target capacity of the Spot Fleet request. Units: Count TerminatingCapacity The capacity that is being terminated due to Spot Instance interruptions. Units: Count If the unit of measure for a metric is Count, the most useful statistic is Average. スポット群のディメンション スポット群のデータをフィルタするには、次のディメンションを使用できます。 Dimensions Description AvailabilityZone Filter the data by Availability Zone. FleetRequestId Filter the data by Spot Fleet request. InstanceType Filter the data by instance type. 270 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス スポット群の CloudWatch メトリクスを表示する Amazon CloudWatch コンソールを使用して、スポット群の CloudWatch メトリクスを表示できま す。これらのメトリクスは、モニタリング用のグラフのように表示されます。これらのグラフでは、 スポット群がアクティブの場合にデータポイントが表示されます。 メトリクスはまず名前空間ごとにグループ化され、次に各名前空間内の種々のディメンションの組 み合わせごとにグループ化されます。たとえば、すべてのスポット群のメトリクスを表示するか、ス ポット群リクエスト ID、インスタンスタイプ、またはアベイラビリティーゾーン別にスポット群のメ トリクスグループを表示できます。 スポット群のメトリクスを表示するには 1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 2. ナビゲーションペインの [Metrics] で、[EC2 Spot] 名前空間を選択します。 3. (オプション) ディメンション別にメトリクスをフィルタするには、次のいずれかを選択します。 • Fleet Request Metrics – スポット群リクエスト別にグループ化 • By Availability Zone – スポット群リクエストおよびアベイラビリティゾーン別にグループ化 • By Instance Type – スポット群リクエストおよびインスタンスタイプ別にグループ化 • Availability Zone/Instance Type – スポットインスタンス群リクエスト、アベイラビリティー ゾーン、およびインスタンスタイプ別にグループ化 4. メトリクスのデータを表示するには、メトリクスの横にあるチェックボックスをオンにします。 スポット群の自動スケーリング 自動スケーリングは、需要に応じてスポット群のターゲット容量を自動的に増減する機能です。ス ポット群は、1 つ以上のスケーリングポリシーに応答して、選択する範囲内でインスタンスを起動 (ス ケールアウト) するか、インスタンスを削除 (スケールイン) できます。2 つのポリシー (1 つはスケー ルアウト用、もう 1 つはスケールイン用) を作成することをお勧めします。 スケーリングポリシーでは CloudWatch アラームを使用して、スケーリングプロセスをトリガーしま す。たとえば、CPU 利用率が一定のレベルに達したときにスケールアウトする場合、Amazon EC2 に よって提供される CPUUtilization メトリクスを使用してアラームを作成します。 スケーリングポリシーを作成したら、次のいずれかのスケーリング調整タイプを指定する必要があり ます。 • [Add] — 指定した数の容量ユニットまたは指定した割合の現在の容量で、スポット群のターゲット 容量を増やします。 • [Remove] — 指定した数の容量ユニットまたは指定した割合の現在の容量で、スポット群のター ゲット容量を減らします。 • [Set to] — スポット群のターゲット容量を、指定した数の容量ユニットに設定します。 271 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス また、スケーリングポリシーのクールダウン期間を設定できます。クールダウン期間は、以前のトリ ガー関連のスケーリングアクティビティが以後のスケーリングイベントに影響を及ぼすことができる 期限であり、スケーリングアクティビティが終了した時点からの秒数として指定します。スケールア ウトポリシーにクールダウン期間を設定すると、その期間中にクールダウンを開始したスケールアウ トイベントによって追加された容量は、次のスケールアウトに予定される容量の一部として繰り入れ られます。これにより、スケールアウトが継続的に (ただし過剰になることなく) 行われます。スケー ルインポリシーにクールダウン期間を設定すると、その期間が過ぎるまでは以後のスケールインリク エストがブロックされます。これにより、スケールインが抑制されてアプリケーションの可用性が確 保されます。ただし、スケールイン後のクールダウン期間中に別のアラームによってスケールアウト ポリシーがトリガーされると、自動スケーリングによってスケーラブルなターゲットが即座にスケー ルアウトされます。 ターゲット容量が減ったためにスポット群によってインスタンスが終了される場合、インスタンスは スポットインスタンスの終了通知を受け取ります。 制限 • スポット群リクエストには、タイプが maintain のリクエストが必要です。自動スケーリングは 1 回限りのリクエストまたはスポットブロックではサポートされません。 前提条件 • アプリケーションにとって重要な CloudWatch メトリクスを検討します。AWS または独自のカスタ ムメトリクスによって提供されるメトリクスに基づいて CloudWatch アラームを作成できます。 • スケーリングポリシーで使用する AWS メトリクスについて、メトリクスを提供するサービスでデ フォルトで有効にならない場合、CloudWatch メトリクスの収集を有効にします。 • スポット群の自動スケーリングを有効にするために AWS マネジメントコンソールを使用すると、 ポリシーのアラームを記述し、スポット群の現在の容量をモニタリングして、スポット群の容量を 変更するアクセス権限を Auto Scaling に付与する、aws-ec2-spot-fleet-autoscale-role と いう名前のロールが作成されます。AWS CLI または API を使用して自動スケーリングを設定した場 合、このロール (すでにあれば) を使用できます。または、以下のようにこの目的に独自のロールを 手動で作成できます。 1. 2. 3. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを 開きます。 ナビゲーションペインで [Roles (ロール) ] を選択します。 [Create New Role] を選択します。 4. 5. [Set Role Name] ページで、ロールの名前を入力し、[Next Step] を選択します。 [Select Role Type] ページで、[Amazon EC2 ] の隣にある [Select] を選択します。 6. [Attach Policy] ページで、[AmazonEC2SpotFleetAutoscaleRole] ポリシーを選択し、[Next Step] を選択します。 7. 8. 9. 10. [Review] ページで、[Create Role] を選択します。 先ほど作成したロールを選択します。 [Trust Relationships] タブで、[Edit Trust Relationship] を選択します。 [ec2.amazonaws.com] を [application-autoscaling.amazonaws.com] に変更し、 [Update Trust Policy] を選択します。 CloudWatch アラームを作成するには 1. 2. 3. 4. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 ナビゲーションペインで、[Alarms] を選択します。 [Create Alarm] を選択します。 [CloudWatch Metrics by Category] で、カテゴリを選択します。たとえば、[EC2 Spot Metrics]、 [Fleet Request Metrics] を選択します。 272 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 5. メトリクスを選択して、[Next] を選択します。 6. [Alarm Threshold] で、アラームの名前と説明を入力して、アラームのしきい値と期間の数を設定 します。 7. (オプション) スケーリングイベントの通知を受信するには、[Actions] の [New list] を選択し、E メールアドレスを入力します。それ以外の場合は、通知を削除し、必要に応じて後で追加できま す。 8. [Create Alarm] を選択します。 コンソールを使用してスポット群の自動スケーリングを設定するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Spot Requests] を選択します。 3. スポット群リクエストを選択し、[Auto Scaling] タブを選択します。 4. 自動スケーリングが設定されていない場合は、[Configure] を選択します。 5. スポット群の最小容量および最大容量を設定するには、[Scale capacity between] を使用します。 自動スケーリングにより、最小容量以下または最大容量以上にスポット群がスケールされること はありません。 6. 初期状態では、[Scaling policies] には ScaleUp と ScaleDown という名前のポリシーが含まれて います。これらのポリシーは、完了するか、[Remove policy] を選択して削除できます。また、 [Add policy] を選択してポリシーを追加することもできます。 7. ポリシーを定義するには、以下の作業を行います。 8. a. [Policy name] に、ポリシーの名前を入力します。 b. [Policy trigger] で、既存のアラームを選択するか、[Create new alarm] を選択して Amazon CloudWatch コンソールを開き、アラームを作成します。 c. [Modify capacity] でスケーリングの調整タイプ、数、単位を選択します。 d. (オプション) ステップスケーリングを実行するには、[Define steps] を選択します。デフォ ルトでは、追加ポリシーには負の無限の下限値とアラームしきい値の上限値があります。デ フォルトでは、削除ポリシーにはアラームしきい値の下限値と正の無限大の上限値がありま す。別のステップを追加するには、[Add step] を選択します。 e. (オプション) クールダウン期間のデフォルト値を変更するには、[Cooldown period] から数値 を選択します。 [Save] を選択します。 AWS CLI を使用してスポット群の自動スケーリングを設定するには 1. register-scalable-target コマンドを使用して、スケーラブルなターゲットとしてスポット群リクエ ストを登録します。 2. put-scaling-policy コマンドを使用してスケーリングポリシーを作成します。 3. put-metric-alarm コマンドを使用してスケーリングポリシーをトリガーするアラームを作成しま す。 スポット入札ステータス スポットインスタンスリクエストの追跡、スポットインスタンスの使用計画の策定、および戦略的な 入札の実行に役立つように、Amazon EC2 で入札ステータスを確認できます。たとえば、入札ステー タスによって、スポットリクエストがまだ受理されていない理由や、スポットリクエストの受理を妨 げている制約の一覧を確認できます。 このプロセスの各ステップ (スポットリクエストのライフサイクルとも呼ばれる) では、特定のイベン トによって後続のリクエスト状態が決まります。 273 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス 目次 • スポットリクエストのライフサイクル (p. 274) • 入札ステータス情報の取得 (p. 276) • スポット入札ステータスコード (p. 277) スポットリクエストのライフサイクル 次の図は、申請から終了まで、スポットリクエストがライフサイクル全体を通してたどり得る経路を 示しています。各ステップはノードとして表現され、各ノードのステータスコードはスポットリクエ ストおよびスポットインスタンスのステータスを示します。 評価保留 スポットインスタンスリクエストを行うと、1 つ以上のリクエストパラメーターが有効ではない場合 (bad-parameters) を除き、リクエストは pending-evaluation 状態になります。 ステータスコード リクエストの状態 インスタンスの状態 pending-evaluation open 該当なし bad-parameters closed 該当なし 保持 1 つ以上のリクエストによる制約が有効であるが、まだ満足することができない場合や、容量が十分 ではない場合、リクエストは制約が満たされるまで待機する保持状態になります。リクエストのオプ ションは、リクエストが受理される可能性に影響します。たとえば、現在のスポット価格の下で入札 価格を指定する場合、リクエストはスポット価格が入札価格を下回るまで保持状態になります。 ア ベイラビリティーゾーングループを指定する場合、アベイラビリティーゾーンの制約が満たされるま で、リクエストは保持状態になります。 274 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス ステータスコード リクエストの状態 インスタンスの状態 capacity-not-available open 該当なし capacity-oversubscribed open 該当なし price-too-low open 該当なし not-scheduled-yet open 該当なし launch-group-constraint open 該当なし az-group-constraint open 該当なし placement-groupconstraint open 該当なし constraint-notfulfillable open 該当なし 評価保留/受理終了 特定の期間のみ有効なリクエストを作成し、リクエストが受理保留段階に到達する前にこの期間の 期限が切れた場合、お客様がリクエストをキャンセルした場合、またはシステムエラーが発生した場 合、スポットインスタンスリクエストは terminal 状態になることがあります。 ステータスコード リクエストの状態 インスタンスの状態 schedule-expired closed 該当なし canceled-beforefulfillment* cancelled 該当なし bad-parameters failed 該当なし system-error closed 該当なし * リクエストをキャンセルする場合。 受理保留 指定した制約条件 (存在する場合) が満たされ、入札価格が現在のスポット価格以上である場合、ス ポットリクエストは pending-fulfillment 状態になります。 この時点で、Amazon EC2 は要求されたインスタンスを提供するよう準備します。 この時点でプロセ スが停止した場合、これはスポットインスタンスが起動される前にユーザーがリクエストをキャンセ ルしたか、予期しないシステムエラーが発生したことが原因である可能性があります。 ステータスコード リクエストの状態 インスタンスの状態 pending-fulfillment open 該当なし 受理済み スポットインスタンスに対するすべての指定が満たされると、スポットリクエストが受理されま す。Amazon EC2 によってスポットインスタンスが起動されます。起動には数分かかる場合がありま す。 275 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス ステータスコード リクエストの状態 インスタンスの状態 fulfilled active pending → running 受理済み終了 入札価格がスポット価格以上であり、インスタンスタイプに対するスポット容量に余裕があり、お客 様がインスタンスを終了しない限り、スポットインスタンスの実行は続行されます。 スポット価格 や利用可能な容量の変化により、Amazon EC2 がスポットインスタンスを終了する必要がある場合、 スポットリクエストは終了状態になります。 たとえば、入札価格がスポット価格に等しくても、ス ポットインスタンスがその価格で申し込み超過になっている場合、ステータスコードは instanceterminated-capacity-oversubscribed になります。 リクエストは、お客様がスポットリクエス トをキャンセルした場合や、スポットインスタンスを終了した場合も、終了状態になります。 ステータスコード リクエストの状態 インスタンスの状態 request-canceled-andinstance-running cancelled running marked-for-termination closed running instance-terminated-byprice closed (ワンタイム)、open (永続) terminated instance-terminated-byuser closed または cancelled * terminated instance-terminated-nocapacity closed (ワンタイム)、open (永続) terminated instance-terminatedcapacity-oversubscribed closed (ワンタイム)、open (永続) terminated instance-terminatedlaunch-group-constraint closed (ワンタイム)、open (永続) terminated * インスタンスを終了したが、入札をキャンセルしていない場合、リクエストの状態は closed にな ります。インスタンスを終了し、入札をキャンセルする場合、リクエストの状態は cancelled にな ります。スポットリクエストをキャンセルする前にスポットインスタンスを終了した場合でも、ス ポットインスタンスが終了したと Amazon EC2 によって検出されるまでに遅延が生じる可能性があり ます。 この場合、リクエストの状態は closed または cancelled となります。 永続リクエスト スポットインスタンスが (お客様または Amazon EC2 によって) 終了するときに、スポットリクエス トが永続リクエストである場合、リクエストは pending-evaluation 状態に戻り、そして制約が満 たされたときに Amazon EC2 は新しいスポットインスタンスを起動できます。 入札ステータス情報の取得 AWS マネジメントコンソールまたはコマンドラインツールを使用して、入札ステータス情報を取得で きます。 コンソールを使用して入札ステータス情報を取得するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Spot Requests] を選択し、スポットリクエストを選択します。 3. [Description] タブの [Status] の値を確認します。 276 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス コマンドラインを使用して入札ステータス情報を取得する 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-spot-instance-requests (AWS CLI) • Get-EC2SpotInstanceRequest (AWS Tools for Windows PowerShell) スポット入札ステータスコード スポット入札ステータス情報は、入札ステータスコード、更新時刻、およびステータスメッセージで 構成されます。同時に、スポット入札ステータス情報は、スポットリクエストの処理を決定する場合 にも役に立ちます。 スポット入札ステータスコードは、次のとおりです。 az-group-constraint Amazon EC2 は、同じアベイラビリティーゾーンでお客様が要求したインスタンスをすべて起動 できるとは限りません。 bad-parameters スポットリクエストの 1 つ以上のパラメーターが有効ではありません (たとえば、指定した AMI が存在していません)。入札ステータスメッセージによって、どのパラメーターが無効かを確認で きます。 cancelled-before-fulfillment スポットリクエストが受理される前にユーザーがスポットリクエストをキャンセルしました。 capacity-not-available 要求したインスタンスに使用できる十分な容量が存在しません。 capacity-oversubscribed 入札価格がお客様の入札価格以上であるスポットリクエストの数が、このスポットインスタンス プールで使用可能な容量を超えています。 constraint-not-fulfillable 1 つ以上の制約条件が有効ではないため、スポットリクエストを受理できません (たとえば、アベ イラビリティーゾーンが存在していません)。入札ステータスメッセージによって、どの制約条件 が無効かを確認できます。 fulfilled スポットリクエストは active であり、Amazon EC2 はスポットインスタンスを起動していま す。 instance-terminated-by-price スポット価格が上昇し入札価格を上回りました。リクエストが永続入札の場合、プロセスが再開 され、入札が評価保留となります。 instance-terminated-by-user または spot-instance-terminated-by-user 受理済みのスポットインスタンスを終了させたので、入札ステータスは closed 状態になり (永続 入札でない場合)、インスタンスは terminated 状態になりました。 instance-terminated-capacity-oversubscribed 入札価格がお客様の入札価格以上であるスポットリクエストの数が、このスポットインスタンス プールで使用可能な容量を超えたので、インスタンスは終了します (スポット価格は変化していな い可能性があります)。スポットサービスは終了するインスタンスをランダムに選択します。 instance-terminated-launch-group-constraint 起動グループ内のインスタンスの 1 つ以上が終了したため、起動グループの制約条件が満たされ なくなりました。 instance-terminated-no-capacity インスタンスで使用できる十分なスポット容量がなくなりました。 launch-group-constraint Amazon EC2 は、お客様が同時に要求したインスタンスをすべて起動できるわけではありませ ん。 同じ起動グループ内のインスタンスはすべて、同時に起動されて同時に終了します。 277 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス limit-exceeded EBS ボリューム数または合計ボリュームストレージの上限を超えました。これらの制限および 増加を要求する方法の詳細については、『アマゾン ウェブ サービス全般のリファレンス』の 「Amazon EBS の制限」を参照してください。 marked-for-termination スポットインスタンスに終了のためのマークが付けられます。 not-scheduled-yet スポットリクエストは、スケジュール設定された日付になるまで評価されません。 pending-evaluation スポットインスタンスリクエストを作成すると、スポットインスタンスリクエストは pendingevaluation 状態となり、システムはリクエストのパラメーターを評価します。 pending-fulfillment Amazon EC2 はスポットインスタンスをプロビジョニングしようとしています。 placement-group-constraint 現時点でスポットインスタンスをプレイスメントグループに追加できないため、スポットリクエ ストをまだ受理することができません。 price-too-low 入札価格がスポット価格を下回っているため、入札リクエストを受理できません。 この場合、イ ンスタンスは起動されず、入札は open のままになります。 request-cancelled-and-instance-running スポットインスタンスがまだ実行されている間に、リクエストをキャンセルしました。リクエス トは cancelled ですが、インスタンスは running のままです。 schedule-expired スポットリクエストは、指定された日付までに受理されなかったため、有効期限切れとなりまし た。 system-error 予期しないシステムエラーが発生しました。これが反復性の問題である場合は、カスタマーサ ポートに連絡してください。 スポットインスタンスの中断 スポットインスタンスに対する需要は刻一刻と大幅に変化する可能性があります。また、スポットイ ンスタンスの可用性も利用可能な未使用の EC2 インスタンスの数に応じて大きく変化する可能性があ ります。 さらに、どれほど高い価格で入札しても、スポットインスタンスが中断される可能性があり ます。したがって、アプリケーションでスポットインスタンスの中断に対して準備する必要がありま す。中断できないアプリケーションについては、スポットインスタンスを使用しないことを強くお勧 めします。 Amazon EC2 がスポットインスタンスを終了する理由として、次のような理由が考えられます。 • 価格 – スポット価格が入札価格を上回っています。 • 容量 – スポットインスタンスの需要を満たすのに十分な未使用の EC2 インスタンスがない場 合、Amazon EC2 は、入札価格が最も低いインスタンスから順にスポットインスタンスを終了しま す。 同じ入札価格で複数のスポットインスタンスが存在する場合、インスタンスを終了する順序は ランダムに決定されます。 • 制約 – リクエストに起動グループやアベイラビリティーゾーングループなど制約が含まれている場 合、制約条件が満たされなくなったときに、そのスポットインスタンスはグループとして終了され ます。 中断に対する準備 スポットインスタンスを使用する場合のベストプラクティスを以下に示します。 278 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス • 合理的な入札価格を選択します。入札価格は、リクエストが受理されやすくなるように十分に高く する必要がありますが、支払える金額よりも高くしないでください。供給が長期間にわたって低い 場合、スポット価格は最も高額の入札価格に基づいており、その期間中、スポット価格が高いまま になる可能性があるため、このことは重要です。 オンデマンドインスタンスの価格を上回る価格を 入札しないことを強くお勧めします。 • 必要なソフトウェア設定を含む Amazon Machine Image (AMI) を使用することにより、リクエスト が受理されたらすぐにインスタンスを実行できるように、準備が完了していることを確認します。 また、ユーザーデータを使用して起動時にコマンドを実行することもできます。 • スポットインスタンスの終了の影響を受けない場所に、定期的に重要なデータを保存します。 たと えば、Amazon S3、Amazon EBS、または DynamoDB を使用できます。 • 作業を頻繁に保存できるように、作業を (Grid、Hadoop、キューベースのアーキテクチャを使用し て) 細かいタスクに分割するか、チェックポイントを使用します。 • スポットインスタンスの終了の通知を使用して、スポットインスタンスのステータスをモニタリン グします。 • アプリケーションをテストして、予期しないインスタンスの終了をアプリケーションが適切に処理 できることを確認します。オンデマンドインスタンスを使用してアプリケーションを実行し、オン デマンドインスタンスを自分で終了することでこれを確認できます。 スポットインスタンスの終了の通知 スポットインスタンスの中断から保護する最善の方法は、アプリケーションを耐障害性のある 設計にすることです。さらに、スポットインスタンスの終了の通知を活用できます。これによっ て、Amazon EC2 がスポットインスタンスを終了する 2 分前に警告が提供されます。 この警告は、インスタンスメタデータの項目を使用して、スポットインスタンス上のアプリケーショ ンで使用できます。たとえば、次のクエリを使用して、インスタンスメタデータ内にこの警告がある かどうかを定期的に (5 秒ごとをお勧めします) 確認できます。 $ if curl -s http://169.254.169.254/latest/meta-data/spot/termination-time | grep -q .*T.*Z; then echo terminated; fi インスタンスメタデータを取得するためのその他の方法については、「インスタンスメタデータの取 得 (p. 368)」を参照してください。 Amazon EC2 によってスポットインスタンスに終了のマークが付けられている場合、terminationtime 項目が存在し、インスタンスがシャットダウン信号を受け取るおよその時間が UTC で示されま す。 以下に例を示します。 2015-01-05T18:02:00Z Amazon EC2 がインスタンスを終了する準備をしていない場合や、お客様が自分でスポットインスタ ンスを終了した場合、termination-time 項目は存在しない (この場合、HTTP 404 エラーが出力さ れます) か、時刻値以外の値が含まれます。 Amazon EC2 によってスポットインスタンスに終了のマークが付けられた時点でこの警告を提供する ように努めていますが、Amazon EC2 がこの警告を利用できる前に、スポットインスタンスが終了さ れる可能性があります。 そのため、スポットインスタンスの終了の通知を確認している場合でも、予 期しないスポットインスタンスの中断を処理できるようにアプリケーションで準備しておく必要があ ります。 Amazon EC2 がインスタンスの終了に失敗した場合は、スポット入札ステータスが fulfilled に設 定されます。termination-time が元のおよその時刻のまま (過去の時刻になっていますが)、インス タンスのメタデータに残ることに注意してください。 279 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス スポットインスタンスデータフィード スポットインスタンスの料金について理解しやすくするため、Amazon EC2 では、スポットインス タンスの使用状況と料金を示すデータフィードを提供しています。このデータフィードは、データ フィードを購読するときに指定する Amazon S3 バケットに送信されます。 データフィードファイルは、通常、1 時間に 1 回バケットに届き、各使用時は、通常、単一のデータ ファイルでカバーされます。このファイルは、バケットに配信される前に圧縮 (gzip) されます。ファ イルが非常に大きい場合は、Amazon EC2 は指定した時間の使用状況に関するファイルを複数書き込 むことができます (ある時間のファイルコンテンツが圧縮前に 50 MB を超える場合など)。 Note ある時間に対してスポットインスタンスが実行されていない場合、その時間のデータフィー ドファイルは届きません。 目次 • データフィードのファイル名と形式 (p. 280) • Amazon S3 バケットの要件 (p. 281) • スポットインスタンスのデータフィードの購読 (p. 281) • Spot インスタンスのデータフィードの削除 (p. 282) データフィードのファイル名と形式 スポットインスタンスのデータフィードのファイル名には次の形式を使用します (UTC の日付と時刻 を使用)。 bucket-name.s3.amazonaws.com/{optional prefix}/aws-account-id.YYYY-MM-DDHH.n.unique-id.gz たとえば、バケット名が myawsbucket で、プレフィックスが myprefix である場合、ファイル名は 次のようになります。 myawsbucket.s3.amazonaws.com/myprefix/ 111122223333.2014-03-17-20.001.pwBdGTJG.gz スポットインスタンスのデータフィードファイルはタブで区切られています。データファイルの各行 は、1 個のインスタンス時間に対応し、次の表に示すフィールドが含まれています。 フィールド 説明 Timestamp そのインスタンス時間に対して請求される価格を決定するために使用されるタイ ムスタンプ。 UsageType 請求の対象となっている使用タイプおよびインスタンスタイプ。m1.small ス ポットインスタンスの場合、このフィールドは SpotUsage に設定されます。他 のすべてのインスタンスタイプでは、このフィールドは SpotUsage:{instancetype} に設定されます。たとえば、SpotUsage:c1.medium と指定します。 Operation 請求の対象となっている製品。Linux スポットインスタンスの場合、このフィー ルドは RunInstances に設定されます。 Windows の場合、このフィールドは RunInstances:0002 に設定されます。スポット使用状況は、利用可能ゾーン に従ってグループ化されます。 280 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス フィールド 説明 InstanceID このインスタンス時間を生成したスポットインスタンスのインスタンス ID。 MyBidID このインスタンス時間を生成したスポットインスタンスリクエストの ID。 MyMaxPrice このスポットインスタンスリクエストに指定された上限価格。 MarketPrice Timestamp フィールドに指定された時刻のスポット価格。 Charge このインスタンス時間に請求される価格。 Version このレコードのデータフィードファイル名に含まれるバージョン。 Amazon S3 バケットの要件 データフィードの購読時に、データフィードファイルを格納する Amazon S3 バケットを指定する必 要があります。データフィード用の Amazon S3 バケットを選択する前に、以下の点を考慮します。 • 米国東部(バージニア北部) リージョン (us-east-1 または米国スタンダードリージョンとも呼ば れます) のバケットを使用する必要があります。 • バケットに対する FULL_CONTROL アクセス許可が必要です。 バケット所有者には、デフォルトでこの権限があります。それ以外の場合、バケット所有者は AWS アカウントにこのアクセス許可を付与する必要があります。 • データフィード購読を作成すると、Amazon S3 は指定されたバケットの ACL を更新して AWS データフィードアカウントに読み書きのアクセス許可を付与します。 • データフィードアカウントの権限を削除しても、データフィードは無効になりません。これらのア クセス許可を削除しても、データフィードを無効にしなかった場合は、次にデータフィードアカウ ントでバケットに書き込む必要が生じたときに、これらのアクセス許可を復元できます。 • 各データフィードファイルには、独自の ACL があります (バケットの ACL とは別です)。バケット 所有者には、データファイルに対して FULL_CONTROL のアクセス許可があります。データフィード アカウントには読み書きのアクセス許可があります。 • データフィードの購読を削除しても、Amazon EC2 ではバケットまたはデータファイルのデータ フィードアカウントの読み書きのアクセス許可は削除されません。これらのアクセス許可は自分で 削除する必要があります。 スポットインスタンスのデータフィードの購読 データフィードを購読するには、次の create-spot-datafeed-subscription コマンドを使用します。 $ aws ec2 create-spot-datafeed-subscription --bucket myawsbucket [-prefix myprefix] 出力例を次に示します。 { "SpotDatafeedSubscription": { "OwnerId": "111122223333", "Prefix": "myprefix", "Bucket": "myawsbucket", "State": "Active" } } 281 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド スポットインスタンス Spot インスタンスのデータフィードの削除 データフィードを削除するには、次の delete-spot-datafeed-subscription コマンドを使用します。 $ aws ec2 delete-spot-datafeed-subscription スポットインスタンスの制限 スポットインスタンスリクエストには以下の制限が適用されます。 制限 • サポートされていないインスタンスタイプ (p. 282) • スポットリクエスト制限 (p. 282) • スポット入札価格制限 (p. 282) • スポット群の制限 (p. 282) • Amazon EBS サポートされない暗号化 (p. 283) サポートされていないインスタンスタイプ 次のインスタンスタイプは、スポットではサポートされません。 • T2 • HS1 スポットインスタンスタイプは、すべてのリージョンで利用可能とは限りません。リージョンでサ ポートされるインスタンスタイプを表示するには、[Spot Instance Pricing] に移動し、リージョンを選 択します。 スポットリクエスト制限 デフォルトでは、アカウントの制限はリージョンごとに 20 個のスポットインスタンスです。 スポッ トインスタンスを終了してもリクエストはキャンセルしない場合、Amazon EC2 がその終了を検出し てリクエストを終了するまで、リクエストはこの制限に対してカウントされます。 スポットインスタンスの制限は動的です。 新規のアカウントの場合、制限が 20 個未満で開始する ことがありますが、時間とともに増加します。 また、アカウントに特定のスポットインスタンスタ イプの制限がある場合があります。 スポットインスタンスリクエストを送信したときに Max spot instance count exceeded エラーが表示された場合は、AWS サポートセンターに移動して、制限 の引き上げリクエストフォームを送信できます。 [Use Case Description] には、スポットインスタン スリクエストの制限を緩和する必要がある理由を記載してください。 スポット入札価格制限 スポットインスタンスの入札価格制限は、オンデマンド価格の 10 倍です。この制限は、コストを抑 制することを目的としています。 スポット群の制限 スポット群によって起動されるインスタンスには、Amazon EC2 の通常の制限 (スポット入札価格制 限、インスタンス制限、容量制限など) が適用されます。また、以下の制限も適用されます。 • リージョンあたりのアクティブなスポット群の数: 1,000 • 群あたりの起動仕様の数: 50 282 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts • 起動仕様内のユーザーデータのサイズ: 16 KB • スポット群ごとのターゲット容量: 3,000 • リージョン内のすべてのスポット群におけるターゲット容量: 5,000 • スポット群リクエストは、リージョンにまたがることはできません。 • スポット群リクエストは、同じアベイラビリティーゾーンから複数の異なるサブネットにまたがる ことはできません。 Amazon EBS サポートされない暗号化 スポットインスタンスの起動の仕様で暗号化された EBS ボリュームを指定できますが、このボリュー ムは暗号化されません。 Dedicated Hosts Amazon EC2 Dedicated Host は、EC2 インスタンスの容量を利用したお客様専用の物理サーバー です。Dedicated Host を利用すると、 Windows Server、Microsoft SQL Server、SUSE、Linux Enterprise Server などのソフトウェアライセンスを、既存のソケット単位、コア単位、または VM 単 位で使用できます。 目次 • Dedicated Host とハードウェア専有インスタンスの違い (p. 283) • 価格と請求 (p. 283) • Dedicated Host の制限と制約 (p. 285) • Dedicated Host の設定 (p. 285) • Dedicated Host の使用 (p. 285) • Dedicated Host のモニタリング (p. 293) Dedicated Host とハードウェア専有インスタンスの違い Dedicated Host とハードウェア専有インスタンスのどちらを使用しても、お客様専用の物理サーバー に Amazon EC2 インスタンスを起動することができます。 ハードウェア専有インスタンスと Dedicated Host のインスタンスの間に、パフォーマンス、セキュリ ティ、または物理的な違いはありません。ただし、Dedicated Host の方が、インスタンスの物理サー バーへの配置方法に関して可視性と制御性が高くなります。 Dedicated Hosts を使用すると、ホストのアフィニティ設定とインスタンスの自動配置設定を使用し て、ホストへのインスタンス配置を制御できます。ハードウェア専有インスタンスでは、どのホスト でインスタンスを起動して実行するかを制御できません。組織で AWS を使用する場合、既存のソフ トウェアライセンスにハードウェアのコンプライアンス要件が存在する状況であれば、こちらの方が ホストのハードウェアの可視性を確保でき、要件を満たすことができます。 Dedicated Host とハードウェア専有インスタンスの違いの詳細については、「Amazon EC2 Dedicated Hosts」を参照してください。 Dedicated Host とハードウェア専有インスタンスの操作の詳細については、「インスタンスのテナン ト属性の変更 (p. 290)」を参照してください。 価格と請求 オンデマンド Dedicated Host アカウントに Dedicated Host を割り当てると、自動的にオンデマンド請求がアクティブになります。 283 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts 時間単位のオンデマンド料金が請求されます。料金は Dedicated Hosts がサポートするインスタンス タイプおよび Dedicated Hosts を実行するリージョンによって異なります。Dedicated Hosts で実行さ れるインスタンスタイプのサイズやインスタンスの数は、ホストのコストに影響しません。 オンデマンド請求を終了するには、Dedicated Host で実行されているインスタンスを停止してか ら、Dedicated Host を解放する必要があります。詳細については、「Dedicated Host の管理と解 放 (p. 291)」を参照してください。 Dedicated Host の予約 Dedicated Host の予約により、オンデマンド Dedicated Host の実行と比較して請求の割引が得られま す。予約は、3 つの支払いオプションで利用できます。 • 前払いなし – 前払いなしの予約では、期間内の Dedicated Host の使用に対して割引があり、前払い 料金は必要ありません。1 年契約でのみ利用できます。 • 一部前払い – 予約の一部を前払いする必要があり、期間内の残りの時間は割引された時間料金で請 求されます。1 年および 3 年契約で利用できます。 • 全前払い – 実質的に最低価格で利用できます。1 年および 3 年契約で利用でき、期間中のすべての コストが含まれます。それ以外の料金は発生しません。 予約を購入するには、アカウントでアクティブな Dedicated Host が必要です。各予約は、アカ ウントの単一で特定の Dedicated Host が対象です。予約は、インスタンスサイズではなくホスト のインスタンスファミリーに適用されます。インスタンスサイズが異なる 3 つの Dedicated Host (m4.xlarge、m4.medium、および m4.large) がある場合、1 つの m4 予約をこれらすべての Dedicated Host に関連付けることができます。予約のインスタンスファミリーとリージョンは、関連 付ける Dedicated Host のインスタンスファミリーとリージョンに一致する必要があります。 Note 予約が Dedicated Host に関連付けられている場合、Dedicated Host は予約期間が終了するま で解放できません。 Dedicated Host の予約の購入 コンソールまたは API を使用して Dedicated Host の予約を購入できます。 コンソールを使用して Dedicated Host の予約を購入するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Dedicated Hosts] ページで、[Dedicated Host Reservations] を選択します。 3. [Purchase Dedicated Host Reservation] を選択します。 4. [Purchase Dedicated Host Reservation] 画面で、デフォルト設定を使用してオファーを検索する か、オファーの設定を指定できます。 • [Host instance family] — 表示されるオプションは、予約に割り当てられていない、アカウント の Dedicated Host に対応します。 • [Availability Zone] — 予約に割り当てられていない、アカウントの Dedicated Host のアベイラ ビリティーゾーン。 • [Payment Option] — オファーの支払いオプション。 • [Term] — 予約の期間。1 年または 3 年とすることができます。 5. [Find offering] を選択します。 6. オファーを選択します。 7. Dedicated Host の予約と関連付ける Dedicated Host を選択します。 8. [Review] を選択します。 284 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts 9. 注文を確認し、[Purchase] を選択してトランザクションを完了します。 Dedicated Host の予約の表示 予約に関連付けられた Dedicated Host に関する情報、予約の期間、選択された支払いオプション、お よび予約の開始日と終了日に関する情報を表示できます。 Dedicated Host 予約の詳細の表示 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Dedicated Hosts] ページで、[Dedicated Host Reservations] を選択します。 3. 表示されるリストから予約を選択します。 4. 予約の詳細については、[Details] を選択します。 5. 予約が関連付けられている Dedicated Hosts に関する情報については、[Hosts] を選択します。 Dedicated Host の制限と制約 Dedicated Hosts を割り当てる際は、次の制限と制約に注意してください。 • AWS が提供、または AWS Marketplace で提供される BYOL RHEL、SUSE Linux、または Windows の AMI のみを Dedicated Host で使用することができます。 • Amazon EC2 インスタンスの自動リカバリはサポートされていません。 • リージョンごとに、インスタンスファミリーあたり 2 つまでのオンデマンド Dedicated Host を割り 当てることができます。制限値を引き上げることもできます。Amazon EC2 Dedicated Hosts の割 り当て制限の引き上げを申請してください。 • Dedicated Host で実行されるインスタンスは、VPC でのみ起動できます。 • ホストの制限はインスタンス制限とは無関係です。Dedicated Host で実行しているインスタンス は、インスタンス制限に加算されません。 • Auto Scaling グループはサポートされません。 • Amazon RDS インスタンスはサポートされません。 • AWS 無料利用枠は Dedicated Hosts には使用できません。 • インスタンスのプレイスメント制御は、Dedicated Host でのインスタンスの起動管理を表します。 プレイスメントグループは Dedicated Host ではサポートされません。 Dedicated Host の設定 Dedicated Host では、1 つのインスタンスタイプの容量とサイズがサポートされます。Dedicated Host に起動できるインスタンスの数は、Dedicated Host がサポートするように設定されたインス タンスタイプによって異なります。たとえば、c3.xlarge の Dedicated Host を割り当てた場合 は、Dedicated Host で c3.xlarge インスタンスを最大 8 個まで起動できます。特定の Dedicated Host で実行できるインスタンスタイプのサイズの数を調べる方法については、「Amazon EC2 Dedicated Hosts Pricing」を参照してください。 Dedicated Host の使用 Dedicated Host を使用するには、まずアカウントで使用するホストを割り当てます。次にインスタ ンスの host テナントを指定することにより、ホストでインスタンスを起動します。インスタンスの 自動プレイスメント設定では、インスタンスを特定のホストで起動できるかどうかを制御できます。 インスタンスを停止して再起動する場合、同じホストで再起動されるか別のホストで再起動される かは、ホストのアフィニティ設定によって決まります。あるオンデマンドホストが不要になった場 合は、そのホストで実行されているインスタンスを停止し、別のホストで起動するように指定してか ら、Dedicated Host を解放することができます。 285 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts 目次 • 自分のライセンスを使用する (p. 286) • Dedicated Host の割り当て (p. 286) • Dedicated Host でのインスタンスの起動 (p. 287) • インスタンスのプレイスメントとホストのアフィニティについて (p. 288) • インスタンスのテナント属性の変更 (p. 290) • Dedicated Host の管理と解放 (p. 291) • API と CLI コマンドの概要 (p. 291) • AWS Config による設定変更の追跡 (p. 292) 自分のライセンスを使用する Dedicated Host では、自分のソフトウェアライセンスを使用できます。以下に、自分のボリュームラ イセンスマシンのイメージを Amazon EC2 で使用するために従う必要がある一般的な手順を示しま す。 1. マシンイメージ (AMI) の使用を制御するライセンス条件が、仮想化クラウド環境でのマシンイメー ジの使用を許可していることを確認します。Microsoft ライセンスの詳細については、「Amazon Web Services and Microsoft Licensing」を参照してください。 2. マシンイメージが Amazon EC2 で使用できることを確認したら、VM Import/Export ツールで使用 可能になる ImportImage API オペレーションを使用してマシンイメージをインポートします。制約 と制限については、VM Import/Export Prerequisites を参照してください。ImportImage を使用して VM をインポートする方法については、Importing a VM into Amazon EC2 Using ImportImage を参 照してください。 3. イメージが AWS でどのように使用されているかを追跡するメカニズムが必要な場合は、AWS Config サービスでホストの記録を有効にします。AWS Config を使用すると、Dedicated Host への 設定の変更を記録し、出力をライセンスレポートのデータソースとして使用することができます。 詳細については、「AWS Config による設定変更の追跡 (p. 292)」を参照してください。 4. マシンイメージをインポートした後、自分のアカウント内のアクティブな Dedicated Host で、その イメージからインスタンスを起動できます。 5. オペレーティングシステムによっては、これらのインスタンスを実行するときに、独自の KMS サーバー (Windows Server や Windows SQL Server など) に対してそれらのインスタンスをア クティブにすることが必要になることがあります。インポートした Windows AMI を、Amazon Windows KMS サーバーに対してアクティブにすることはできません。 Dedicated Host の割り当て Dedicated Host の使用を開始するには、それらがアカウントに割り当てられている必要がありま す。AWS マネジメントコンソール を使用して API と直接やり取りするか、コマンドラインインター フェースを使用してこれらのタスクを実行します。Dedicated Host を割り当てるときは、常に以下の 手順に従います。 Dedicated Host をアカウントに割り当てるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Dedicated Hosts] ページで、[Allocate Dedicated Host] を選択します。 3. 以下のオプションを使用してホストを構成します。 a. [Instance type] - Dedicated Host で使用できるインスタンスタイプ。 b. [Availability Zone] - Dedicated Host のアベイラビリティーゾーン。 c. [Allow instance auto-placement] – デフォルト設定は [Off] です。Dedicated Host では、host テナンシーインスタンスの起動だけが受け入れられます (容量がある場合)。インスタンスの 286 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts 自動プレイスメントが [On] である場合、テナントが host であり、Dedicated Host の設定と 一致するインスタンスであれば、いずれもホストで起動できます。 d. 4. [Quantity] – これらの設定で割り当てるホストの数。 [Allocate host] を選択します。 すぐに、Dedicated Host の容量をアカウントで使用できるようになります。 host テナントでインスタンスを起動した場合に、アクティブな Dedicated Host がアカウントになけ れば、エラーが発生し、インスタンスを起動できません。 Dedicated Host でのインスタンスの起動 Dedicated Host を割り当てたら、そのホストにインスタンスを起動できます。テナンシーが host の インスタンスは、特定の Dedicated Host で起動できます。適切な Dedicated Host を Amazon EC2 に 選択させることもできます (自動プレイスメント)。起動するインスタンスのインスタンスタイプ構成 に合った容量を使用できる Dedicated host がアカウントにない場合は、テナンシーが host のインス タンスを起動できません。 Note Dedicated Host に起動されるインスタンスは、VPC でのみ起動できます。詳細については、 「Amazon VPC とは」を参照してください。 インスタンスを起動する前に、制限事項を確認してください。詳細については、「Dedicated Host の 制限と制約 (p. 285)」を参照してください。 [Dedicated Host] ページから Dedicated Host でインスタンスを起動する 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Dedicated Hosts] ページで、ホストを選択し、[Actions] を選択して、[Launch Instance(s) onto Host] を選択します。 3. 使用する AMI を選択します。独自の AMI をインポートしている場合は、左のサイドバーで [My AMIs] を選択し、関連する AMI を選択します。 4. Dedicated Host のインスタンスタイプを選択します。ホストに起動できるインスタンスタイプは これだけです。 5. [Configure Instance Details] ページで、[Tenancy] および [Host] オプションが前もって選択されて います。[Affinity] の設定を [On] または [Off] に切り替えることができます • On – 停止したインスタンスは、常にその特定のホストで再開されます。 • Off – インスタンスは指定された Dedicated Host で起動されますが、停止されると同じ Dedicated Host で再開されない場合があります。 6. 残りの手順を完了し、[Launch Instances] を選択します。 インスタンスは、指定した Dedicated Host で自動的に起動されます。Dedicated Host にあるイン スタンスを表示するには、[Dedicated Hosts] ページに移動し、インスタンスの起動時に指定した Dedicated Host を選択します。 [Instances] ページから特定の Dedicated Host でインスタンスを起動する 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Instances] ページで [Launch Instance] を選択します。 3. リストから AMI を選択します。独自の AMI をインポートしている場合は、[My AMIs] を選択し、 インポートしたイメージを選択します。すべての AMI を Dedicated Host で使用できるわけでは ありません。 287 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts 4. 起動するインスタンスのタイプを選択します。 5. [Configure Instance Details] ページで、Dedicated Host の設定は次のようになっています。 • [Tenancy] – [Dedicated host – Launch this instance on a Dedicated host]。これを選択できない 場合は、互換性のない AMI またはインスタンスタイプを選択していないか確認してください。 • Host – ホストを選択します。Dedicated Host を選択できない場合は、次の点を確認してくださ い。 • 選択したサブネットのアベイラビリティーゾーンが、ホストと異なるかどうか。 • 選択したインスタンスタイプが、Dedicated Host でサポートされているインスタンスタイプ に一致すること。一致する実行中のホストがない場合、使用できる唯一のオプションは [Use auto-placement] ですが、一致する Dedicated Host の利用可能な容量がアカウントにない限 り、インスタンスは起動できません。 • Affinity – このデフォルトの設定は [Off] です。インスタンスは指定された Dedicated Host で起 動されますが、停止されると同じ Dedicated Host で再開されない場合があります。 Note これらの設定が表示されない場合は、[Network] メニューで VPC を選択したことを確認 してください。 6. 残りの設定手順を完了します。[Review and Launch] を選択します。 7. [Launch] を選択してインスタンスを起動します。 8. 既存のキーペアを選択するか、新しいキーペアを作成します。[Launch Instances] を選択しま す。 [Instances] ページから任意の Dedicated Host でインスタンスを起動する 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Instances] ページで [Launch Instance] を選択します。 3. リストから AMI を選択します。独自の AMI をインポートしている場合は、[My AMIs] を選択し、 インポートしたイメージを選択します。すべての AMI を Dedicated Host で使用できるわけでは ありません。 4. 起動するインスタンスのタイプを選択します。 5. [Configure Instance Details] ページで、Dedicated Host の設定は次のようになっています。 • Tenancy – Dedicated host – Launch this instance on a Dedicated host – これを選択できない場 合は、互換性のない AMI またはインスタンスタイプを選択していないか確認してください。 • Host – この起動タイプでは、設定を [Use auto-placement] にしておきます。 • Affinity – このデフォルトの設定は [Off] です。インスタンスは、アカウント内の利用可能な任 意の Dedicated Host で起動されますが、停止されると同じホストで再開されない場合がありま す。 これらの設定が表示されない場合は、[Network] メニューで VPC を選択したことを確認してくだ さい。 6. 残りの設定手順を完了します。[Review and Launch] を選択します。 7. [Launch] を選択してインスタンスを起動します。 8. 既存のキーペアを選択するか、新しいキーペアを作成します。[Launch Instances] を選択しま す。 インスタンスのプレイスメントとホストのアフィニティについて プレイスメント制御は、インスタンスレベルとホストレベルの両方のレベルで行われます。 288 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts 目次 • インスタンスの自動プレイスメント (p. 289) • ホストのアフィニティ (p. 289) • インスタンスの自動プレイスメントとホストアフィニティの変更 (p. 289) • インスタンスのホストアフィニティの変更 (p. 290) インスタンスの自動プレイスメント 自動プレイスメントを使用すると、起動したインスタンスを特定のホストで起動するか、設定が適 合する任意のホストで起動するかを管理できます。これについてのデフォルト設定は [Off] です。こ れは、割り当てる Dedicated Host で許容するのは、一意のホスト ID が指定されている host テナン シーインスタンスの起動のみであることを意味します。インスタンスの自動プレイスメントが [Off] に 設定されているホストでは、ホスト ID を指定せずに起動したインスタンスを起動することはできませ ん。 ホストのアフィニティ ホストのアフィニティは、インスタンスと Dedicated Host の間に関係を作成します。アフィニティが host に設定されている場合は、特定のホストで起動したインスタンスが停止しても、常に同じホス トで再開されます。これは、ターゲットを絞った起動にもターゲットを絞らない起動にも適用されま す。 アフィニティが default に設定されているときにインスタンスを停止して再起動した場合、イン スタンスは使用可能な任意のホストで再起動できますが、そのインスタンスが最後に実行された Dedicated Host での起動が (ベストエフォートベースで) 試行されます。 アフィニティを host から default に、またはその逆に変更することで、インスタンスと Dedicated Host との関係を変更できます。詳細については、「インスタンスのテナント属性の変更 (p. 290)」 を参照してください。 インスタンスの自動プレイスメントとホストアフィニティの変更 Amazon EC2 コンソール、API、または CLI を使用して、インスタンスのプレイスメント制御を管理 できます。 インスタンスのプレイスメント設定を変更するには、インスタンスを停止してから、インスタンスの プレイスメント設定を編集します。 Note インスタンスを停止して再開する場合は、同じ Dedicated Host で再開されるとは限りませ ん。 インスタンスのプレイスメント設定を編集するには (任意の利用可能なホスト) 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Instances] ページで、 編集するインスタンスを選択します。 3. [Actions]、[Instance State]、[Stop] の順に選択します。 4. [Actions]、[Instance Settings]、[Modify Instance Placement] の順に選択します。 5. インスタンスのテナンシーを [Launch this instance on a Dedicated host] に変更します。 6. [This instance can run on any one of my Hosts] を選択します。インスタンスは、自動プレイスメ ントが有効になっている任意の Dedicated Host で起動されます。 7. [Save] を選択して続行します。 8. インスタンスのコンテキスト (右クリック) メニューを開き、[Instance State]、[Start] の順に選択 します。 289 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts インスタンスのプレイスメント設定を編集するには (特定の Dedicated Host) 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Instances] ページで、 編集するインスタンスを選択します。 3. [Actions]、[Instance State]、[Stop] の順に選択します。 4. [Actions]、[Instance Settings]、[Modify Instance Placement] の順に選択します。 5. インスタンスのテナンシーを [Launch this instance on a Dedicated host] に変更します。 6. [This instance can only run on the selected Host] を選択します。[Target Host] の値を選択し、イ ンスタンスを利用可能な任意のホストに配置するか、特定のホストに配置するかを選択します。 7. [Save] を選択して続行します。 8. インスタンスのコンテキスト (右クリック) メニューを開き、[Instance State]、[Start] の順に選択 します。 インスタンスのホストアフィニティの変更 インスタンスにホストとのアフィニティが不要になった場合は、インスタンスを停止し、アフィニ ティを [default] に変更します。これにより、インスタンスとホストの間の永続性が削除されます。 ただし、インスタンスを再起動した場合、同じ Dedicated Host で起動されることもあります (アカウ ントでの Dedicated Host の利用状況により、ベストエフォートベースで決定されます)。ただし、イ ンスタンスをもう一度停止した場合、同じホストでは再開されません。 インスタンスのテナント属性の変更 Amazon EC2 で提供される Windows、SUSE、または RHEL AMI をハードウェア専有インスタンスが 使用していない場合は、このハードウェア専有インスタンスのテナンシーを [dedicated] と [host] の間で変更することができます。これを行う場合は、ハードウェア専有インスタンスを停止する必要 があります。shared テナント属性のインスタンスを host テナント属性に変更することはできませ ん。 インスタンスのテナンシーを [dedicated] から [host] に変更する 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Instances] を選択し、変更するハードウェア専有インスタンスを選択します。 3. [Actions]、[Instance State]、[Stop] の順に選択します。 4. インスタンスのコンテキスト (右クリック) メニューを開き、[Instance Settings]、[Modify Instance Placement] の順に選択します。 5. [Modify Instance Placement] ページで、次の操作を行います。 • Tenancy – [Launch this instance on a Dedicated host] を選択します。 • Affinity – [This instance can run on any one of my Hosts] または [This instance can only run on the selected Host] を選択します。 [This instance can run on any one of my Hosts] を選択した場合、アカウント内の互換性のある 利用可能な Dedicated Host でインスタンスが起動されます。 [This instance can only run on the selected Host] を選択した場合は、[Target Host] の値を選 択します。ターゲットホストが表示されていない場合は、互換性のある利用可能な Dedicated Host がアカウントにない可能性があります。 6. [Save] を選択します。 7. インスタンスを再開すると、Amazon EC2 により、アカウント内の利用可能な Dedicated Host に インスタンスが配置されます (この Dedicated Host で、起動するインスタンスタイプがサポート されている場合)。 290 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts Dedicated Host の管理と解放 コンソールを使用する、API を直接操作する、またはコマンドラインインターフェイスを使用して、 ホストの各インスタンスに関する詳細を表示し、オンデマンド Dedicated Host を解放できます。 Dedicated Host のインスタンスに関する詳細を表示するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Dedicated Hosts] ページで、詳細情報を確認するホストを選択します。 3. そのホストの情報を表示するには、[Description] タブを選択します。ホストで実行中のインスタ ンスの情報を表示するには、[Instances] タブを選択します。 Dedicated Host を解放するには ホストを解放する前に、Dedicated Host で実行中のインスタンスを停止する必要があります。これら のインスタンスはアカウントの他の Dedicated Host に移行し、引き続き使用することができます。詳 細については、「インスタンスの自動プレイスメントとホストアフィニティの変更 (p. 289)」を参照 してください。これらのステップは、オンデマンド Dedicated Host にのみ適用されます。 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [Dedicated Hosts] ページで、解放する Dedicated Host を選択します。 3. [Actions]、[Release Hosts] の順に選択します。 4. [Release ] を選択して、その選択を確認します。 Dedicated Host を解放した後は、同じホストまたはホスト ID を再び使用することはできません。 Dedicated Host を解放すると、それに対するオンデマンド請求レートで請求されることはなくなりま す。Dedicated Host のステータスは released に変更され、このホストでインスタンスを起動するこ とはできなくなります。 最近、Dedicated Host を解放した場合、ホストが制限に加算されなくなるまでに少し時間がかかるこ とがあります。その間に新しい Dedicated Host を割り当てようとすると LimitExceeded エラーが発 生する場合があります。このエラーが発生した場合は、数分後に新しいホストを再び割り当ててみて ください。 停止したインスタンスはまだ使用可能であり、[Instances] ページに表示されます。その [host] テナン シー設定も維持されています。 API と CLI コマンドの概要 このセクションで説明しているタスクは、API またはコマンドラインを使用して実行できます。 Dedicated Host をアカウントに割り当てるには • allocate-hosts (AWS CLI) • AllocateHosts (Amazon EC2 Query API) • New-EC2Hosts (AWS Tools for Windows PowerShell) Dedicated Host を記述するには • describe-hosts (AWS CLI) • DescribeHosts (Amazon EC2 Query API) • Get-EC2Hosts (AWS Tools for Windows PowerShell) 291 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts Dedicated Host を変更するには • modify-hosts (AWS CLI) • ModifyHosts (Amazon EC2 Query API) • Edit-EC2Hosts (AWS Tools for Windows PowerShell) インスタンスの自動プレイスメントを変更するには • modify-instance-placement (AWS CLI) • ModifyInstancePlacement (Amazon EC2 Query API) • Edit-EC2InstancePlacement (AWS Tools for Windows PowerShell) Dedicated Host を解放するには • release-hosts (AWS CLI) • ReleaseHosts (Amazon EC2 Query API) • Remove-EC2Hosts (AWS Tools for Windows PowerShell) AWS Config による設定変更の追跡 AWS Config を使用して、Dedicated Host、およびそれらのホストで起動、停止、または終了されたイ ンスタンスに対する設定変更を記録することができます。そして、AWS Config でキャプチャされた 情報をライセンスレポートのデータソースとして使用することができます。 AWS Config は Dedicated Host とインスタンスの設定情報を個別に記録し、関係を通じてそれらの情 報を組み合わせます。3 つのレポート条件があります。 • AWS Config recording status – [On] のとき、AWS Config は 1 つ以上の AWS リソースタイプを記 録します。これには、Dedicated Host やハードウェア専有インスタンスを含めることができます。 ライセンスレポートに必要な情報をキャプチャするには、次のフィールドによって Host とインスタ ンスが記録されていることを確認します。 • Host recording status – [Enabled] のとき、Dedicated Host の設定情報が記録されます。 • Instance recording status – [Enabled] のとき、ハードウェア専有インスタンスの設定情報が記録さ れます。 これら 3 つの条件のいずれかが無効になっている場合、[Edit Config Recording] ボタン内のアイコン は赤です。このツールのメリットをすべて引き出すために、3 つの記録方法すべてを有効にしてくだ さい。3 つすべてが有効なとき、アイコンは緑です。設定を編集するには、[Edit Config Recording] を選択します。AWS Config コンソールに [Set up AWS Config] ページが表示され、そこで AWS Config を設定し、ホスト、インスタンス、およびその他のサポートされるリソースタイプの記録を 開始できます。詳細については、AWS Config Developer Guide の「Setting up AWS Config using the Console」を参照してください。 Note AWS Config はリソースを検出 (数分かかる場合があります) して、記録します。 AWS Config がホストおよびインスタンスへの設定変更の記録を開始した後、ユーザーが割り当てた か解放したホストと、起動、停止、または終了したインスタンスの設定履歴を取得できます。たとえ ば、Dedicated Host の設定履歴の任意の時点で、そのホストのソケット数とコア数と共に、そのホス トで起動されているインスタンスの数を調べることができます。それらのインスタンスについても、 その Amazon Machine Image (AMI) の ID を調べることができます。これらの情報を使用して、ソケッ 292 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Dedicated Hosts ト単位またはコア単位でライセンスが与えられているサーバーバインドソフトウェアのライセンスに 関するレポートを作成できます。 次のいずれかの方法で、設定履歴を表示することができます。 • AWS Config コンソールを使用する。記録されたリソースごとに、設定の詳細の履歴を提供する タイムラインページを表示することができます。このページを表示するには、[Dedicated Hosts] ページの [Config Timeline] 列にあるグレーのアイコンを選択します。詳細については、AWS Config Developer Guide の Viewing Configuration Details in the AWS Config Console を参照してくださ い。 • AWS CLI コマンドを実行する。まず、list-discovered-resources コマンドを使用して、すべてのホ ストとインスタンスのリストを取得できます。次に、get-resource-config-history コマンドを使用 して、特定の時間間隔でホストまたはインスタンスの設定の詳細を取得できます。詳細について は、AWS Config Developer Guide の View Configuration Details Using the CLI を参照してくださ い。 • アプリケーションで AWS Config API を使用する。まず、ListDiscoveredResources ア クションを使用して、すべてのホストとインスタンスのリストを取得できます。次 に、GetResourceConfigHistory アクションを使用して、特定の時間間隔でホストまたはインスタン スの設定の詳細を取得できます。 たとえば、AWS Config からすべての Dedicated Host のリストを取得するには、次のような CLI コマ ンドを実行します。 aws configservice list-discovered-resources --resource-type AWS::EC2::Host AWS Config から Dedicated Host の設定履歴を取得するには、次のような CLI コマンドを実行しま す。 aws configservice get-resource-config-history --resource type AWS::EC2::Instance --resource-id i-36a47fdf AWS マネジメントコンソール を使用して AWS Config の設定を管理するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. [Dedicated Hosts] ページで、[Edit Config Recording] を選択します。 AWS Config コンソールで、次の手順に従って記録をオンにします。詳細については、Setting up AWS Config using the Console を参照してください。 詳細については、「Viewing Configuration Details in the AWS Config Console」を参照してください。 コマンドラインまたは API を使用して AWS Config をアクティブ化するには • AWS CLI の使用については、AWS Config Developer Guide の「Viewing Configuration Details in the AWS Config Console」を参照してください。 • Amazon EC2 API の使用については、GetResourceConfigHistoryを参照してください。 Dedicated Host のモニタリング Amazon EC2 は Dedicated Host の状態を常にモニタリングし、更新は Amazon EC2 コンソールで伝 えられます。API または CLI を使用して、Dedicated Host についての情報を取得することもできま す。 次の表に、コンソールの [State] に表示される可能性のある値を示します。 293 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ハードウェア専有インスタンス 州/都道府県 説明 available AWS は Dedicated Host の問題を検出しません でした。メンテナンスまたは修正はスケジュー ルされていません。この Dedicated Host にイン スタンスを起動できます。 released Dedicated Host が解放されました。ホスト ID は 使用中ではありません。解放されたホストは再 利用できません。 under-assessment AWS は Dedicated Host の潜在的な問題を調査 しています。アクションをとる必要がある場 合は、AWS マネジメントコンソール または E メールで通知されます。この状態の Dedicated Host にインスタンスを起動することはできませ ん。 permanent-failure 回復不可能な障害が検出されました。インスタ ンスおよび E メールで削除通知を受け取りま す。インスタンスは実行を続けることがありま す。この状態の Dedicated Host のすべてのイン スタンスを停止または終了すると、AWS はそ のホストを廃止します。この状態の Dedicated Host にインスタンスを起動することはできませ ん。 released-permanent-failure AWS は、失敗してインスタンスが実行され ていない Dedicated Host を完全に解放しま す。Dedicated Host ID も使用できなくなりま す。 ハードウェア専有インスタンス ハードウェア専有インスタンスは、単一のカスタマー専用のハードウェアの Virtual Private Cloud (VPC) で実行される Amazon EC2 インスタンスです。専用インスタンスは、他の AWS アカウントに 属するインスタンスとは、ホストハードウェアのレベルで物理的に分離されます。専用インスタンス は、同じ AWS アカウントからの他のインスタンスで、専用インスタンスではないインスタンスと、 ハードウェアをシェアする可能性があります。 Note また、Dedicated Host はお客様専用の物理サーバーです。Dedicated Host では、インスタン スをサーバーに配置する方法について可視性と制御を高めることができます。詳細について は、「Dedicated Hosts (p. 283)」を参照してください。 トピック • ハードウェア専有インスタンスの基礎 (p. 294) • ハードウェア専有インスタンスの使用 (p. 296) • API とコマンドの概要 (p. 298) ハードウェア専有インスタンスの基礎 VPC 内に起動する各インスタンスにはテナント属性があります。この属性の値を次に示します。 294 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ハードウェア専有インスタンス 値 説明 default インスタンスは共有するハードウェアで実行されます。 dedicated インスタンスはシングルテナントのハードウェアで実行されま す。 host インスタンスは Dedicated Host で実行します。Dedicated Host は ユーザーが設定を制御できる隔離サーバーです。 デフォルトのインスタンスのテナント属性は、インスタンスの起動後は変更できません。インスタン スのテナント属性は、インスタンスの起動後に dedicated から host に変更したりその逆に変更し たりできます。詳細については、「インスタンスのテナント属性の変更 (p. 298)」を参照してくださ い。 各 VPC には関連したインスタンスのテナント属性があります。VPC の作成後に VPC インスタンスの テナント属性を変更することはできません。この属性の値を次に示します。 値 説明 default VPC で起動されたインスタンスはデフォルトでは共有ハードウェアで実行されま す。ただし、これはインスタンスの起動時に別のテナントを明示的に指定しない場 合に限ります。 dedicated VPC で起動されたインスタンスはデフォルトではハードウェア専有インスタンスで す。ただし、これはインスタンスの起動時に host のテナントを明示的に指定しな い場合に限ります。インスタンスの起動時に default のテナントを指定すること はできません。 ハードウェア専有インスタンスは以下の方法で作成できます。 • インスタンスのテナント属性を dedicated (この VPC 内に起動されたすべてのインスタンスは ハードウェア専有インスタンス) に設定して VPC を作成します。 • インスタンスのテナント属性を default に設定して VPC を作成し、インスタンスの起動時にテナ ント属性として dedicated を指定します。 ハードウェア専有インスタンスの制限事項 AWS の一部のサービスまたは機能は、インスタンスのテナント属性が dedicated に設定されている VPC では動作しません。そのほかにも制限事項があるかどうかを確認するには、サービスのドキュメ ントを参照してください。 一部の種類のインスタンスは、インスタンスのテナント属性が dedicated に設定されている VPC で は起動できません。サポートされているインスタンスの種類の詳細については、「Amazon EC2 専有 インスタンス」を参照してください。 Amazon EBS とハードウェア専有インスタンス Amazon EBS バックト専有インスタンスを起動した場合、シングルテナントのハードウェアで EBS ボリュームは実行できません。 専有テナント属性を所有するリザーブドインスタンス ハードウェア専有インスタンスを起動できるだけの十分な空き容量を確保するために、ハード ウェア専有リザーブドインスタンスを購入できます。詳細については、「リザーブドインスタン ス (p. 205)」を参照してください。 295 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ハードウェア専有インスタンス ハードウェア専有リザーブドインスタンスを購入すると、VPC 内にハードウェア専有インスタンス を起動するための容量を格安の料金で利用できます。時間単位での料金引き下げは、テナント属性 が専有であるインスタンスを起動した場合にのみ適用されます。テナント属性がデフォルト値である リザーブドインスタンスを購入すると、テナント属性が dedicated であるインスタンスを作成して も、ハードウェア専有リザーブドインスタンスは取得されません。 さらに、リザーブドインスタンスの購入後にそのインスタンスのテナント属性を変更することはでき ません。 ハードウェア専有インスタンスの Auto Scaling Auto Scaling を使用してハードウェア専有インスタンスを起動する方法の詳細については、Auto Scaling ユーザーガイドの「Amazon Virtual Private Cloud での Auto Scaling」を参照してください。 ハードウェア専有スポットインスタンス スポットインスタンスのリクエストを作成するとき、dedicated のテナントを指定することにより、 ハードウェア専有スポットインスタンスを実行できます。詳細については、「スポットインスタンス のテナントの指定 (p. 247)」を参照してください。 ハードウェア専有インスタンスの価格設定 ハードウェア専有インスタンスの料金表は、オンデマンドインスタンスの料金表と異なります。詳細 については、Amazon EC2 ハードウェア専有インスタンスの製品ページを参照してください。 ハードウェア専有インスタンスの使用 VPC の作成時にインスタンスのテナント属性として専有を指定すると、VPC 内に起動されるすべて のインスタンスをハードウェア専有インスタンスにすることができます。インスタンスのテナント属 性は起動時に指定することもできます。 トピック • インスタンスのテナント属性が専有である VPC を作成する (p. 296) • ハードウェア専有インスタンスを VPC 内に起動する (p. 297) • テナント属性情報を表示する (p. 297) • インスタンスのテナント属性の変更 (p. 298) インスタンスのテナント属性が専有である VPC を作成する VPC を作成するときにインスタンスのテナント属性を指定できます。VPC は、VPC ウィザードまた は Amazon VPC コンソールの [Your VPCs] ページを使用して作成できます。 インスタンスのテナント属性がハードウェア専有である VPC を作成するには (VPC ウィザー ド) 1. 2. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 ダッシュボードで、[VPC ウィザードの開始] を選択します。 3. 4. VPC 設定を選択し、[選択] を選択します。 ウィザードの次のページで、[ハードウェアのテナンシー] のリストから [ハードウェア専有] を選 択します。 [VPC の作成] を選択します。 5. インスタンスのテナント属性がハードウェア専有である VPC を作成するには (VPC ダイアロ グボックスの作成) 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 296 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ハードウェア専有インスタンス 2. ナビゲーションペインで [VPC] を選択し、[VPC の作成] を選択します。 3. [Tenancy] で、[Dedicated] を選択します。CIDR ブロックを指定し、[Yes, Create] を選択しま す。 インスタンスのテナント属性が dedicated である VPC 内にインスタンスを起動すると、インスタ ンスのテナント属性とは関係なく、インスタンスは自動的にハードウェア専有インスタンスとなりま す。 ハードウェア専有インスタンスを VPC 内に起動する ハードウェア専有インスタンスは、Amazon EC2 インスタンス起動ウィザードを使用して起動できま す。 テナント属性がハードウェア専有であるインスタンスを、テナント属性がデフォルトである VPC 内に起動するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [インスタンスの作成] を選択します。 3. [Amazon マシンイメージ (AMI)] ページで、AMI を選択し、[選択] を選択します。 4. [Choose an Instance Type] ページで、インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 Note ハードウェア専有インスタンスとしてサポートされているインスタンスタイプを必ず選 択します。詳細については、「Amazon EC2 ハードウェア専有インスタンス」を参照し てください。 5. [Configure Instance Details] ページで、VPC とサブネットを選択します。[Tenancy] のリストから [Dedicated - Run a dedicated instance] を選択し、[Next: Add Storage] を選択します。 6. ウィザードに従って続行します。[Review Instance Launch] ページでオプションの確認が終了し たら、[Launch] を選択し、キーペアを選択してハードウェア専有インスタンスを作成します。 テナント属性として host を使用したインスタンスの作成の詳細については、「Dedicated Host での インスタンスの起動 (p. 287)」を参照してください。 テナント属性情報を表示する VPC のテナント属性情報を表示するには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. 画面左枠のナビゲーションペインで、[VPC] を選択します。 3. [テナンシー] 列で、VPC のインスタンスのテナント属性を確認します。 4. [テナンシー] 列が表示されていない場合は、[テーブル列の編集] (歯車型のアイコン) を選択しま す。[列の表示/非表示] ダイアログボックスで [テナンシー] を選択し、[閉じる] を選択します。 インスタンスのテナント属性情報を表示するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[インスタンス] を選択します。 3. [テナンシー] 列でインスタンスのテナント属性を確認します。 4. [テナンシー] 列が表示されていない場合は、次のいずれかを行います。 297 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ハードウェア専有インスタンス • [テーブル列の編集] (歯車型のアイコン) を選択し、[列の表示/非表示] ダイアログボックスで [テ ナンシー] を選択して [閉じる] を選択します。 • インスタンスを選択します。詳細ペインの [説明] タブに、テナント属性を含めてインスタンス に関する情報が表示されます。 インスタンスのテナント属性の変更 インスタンスタイプおよびプラットフォームによっては、インスタンスの起動後に、停止されたハー ドウェア専有インスタンスのテナント属性を host に変更できます。次回のインスタンスの起動時 に、インスタンスはアカウントに割り当てられた Dedicated Host で実行されます。Dedicated Host の割り当てと使用、および Dedicated Host で使用できるインスタンスタイプの詳細については、 「Dedicated Host の使用 (p. 285)」を参照してください。同様に、インスタンスの起動後に、停止 された Dedicated Host インスタンスのテナント属性を dedicated に変更できます。次回のインスタ ンスの起動時に、インスタンスは Amazon が管理するシングルテナントのハードウェアで実行されま す。 インスタンスのテナント属性を変更するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [インスタンス] を選択し、インスタンスを選択します。 3. [アクション] から [インスタンスの状態]、[停止] の順に選択します。 4. [アクション] から [インスタンスの設定]、[インスタンスプレイスメントの変更] の順に選択しま す。 5. [Tenancy] のリストで、インスタンスを専有ハードウェアで実行するか、Dedicated Host で実行 するかを選択します。[Save] を選択します。 API とコマンドの概要 このページで説明しているタスクは、コマンドラインまたは API を使用して実行できます。 VPC の作成時にテナント属性オプションを設定する • create-vpc (AWS CLI) • New-EC2Vpc (AWS Tools for Windows PowerShell) VPC 内に起動するインスタンスに対してサポートされているテナント属性オプションについ て説明する • describe-vpcs (AWS CLI) • Get-EC2Vpc (AWS Tools for Windows PowerShell) インスタンスに対してテナント属性オプションを設定する起動時 • run-instances (AWS CLI) • New-EC2Instance (AWS Tools for Windows PowerShell) インスタンスのテナント属性値について説明する • describe-instances (AWS CLI) • Get-EC2Instance (AWS Tools for Windows PowerShell) 298 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスのライフサイクル リザーブドインスタンスのテナント属性値について説明する • describe-reserved-instances (AWS CLI) • Get-EC2ReservedInstance (AWS Tools for Windows PowerShell) リザーブドインスタンスサービスのテナント属性値について説明する • describe-reserved-instances-offerings (AWS CLI) • Get-EC2ReservedInstancesOffering (AWS Tools for Windows PowerShell) インスタンスのテナント属性値を変更する • modify-instance-placement (AWS CLI) • Edit-EC2InstancePlacement (AWS Tools for Windows PowerShell) インスタンスのライフサイクル インスタンスを起動した瞬間から終了まで、Amazon EC2 を使用してインスタンスを管理することに より、インスタンスでホストするアプリケーションまたはサイトを利用するお客様に最高の体験を提 供することができます。 次の図は、インスタンス状態の遷移を示しています。instance store-backed インスタンスは停止お よび起動できないことに注意してください。instance store-backed インスタンスの詳細については、 「ルートデバイスのストレージ (p. 77)」を参照してください。 インスタンスの作成 インスタンスを起動すると、インスタンスはpending状態に移行します。起動時に指定したインスタ ンスタイプによって、インスタンスのホストコンピュータのハードウェアが決定します。起動時に指 定された Amazon マシンイメージ (AMI) を使って、インスタンスを再作成します。インスタンスの準 備ができると、running 状態へ移行します。実行中のインスタンスに接続して、自分の前にあるコン ピュータと同じように使用することができます。 インスタンスが running 状態に移行するとすぐに、インスタンスの実行時間に応じて (インスタンス がアイドル状態のままで、接続されていなくても) 課金が発生します。 詳細については、「インスタンスの作成 (p. 302)」および「Linux インスタンスへの接 続 (p. 314)」「」を参照してください。 299 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの停止と起動 (Amazon EBS-Backed インスタンスのみ) インスタンスの停止と起動 (Amazon EBS-Backed インスタンスのみ) インスタンスのステータスチェックに失敗するか、インスタンスでアプリケーションが想定通りに動 作しておらず、インスタンスのルートボリュームが Amazon EBS である場合、インスタンスの停止と 起動を行い、問題が解決するか試してみることができます。 インスタンスを停止した場合、インスタンスはstopping状態に移行してから、stopped状態にな ります。停止後のインスタンスに対して時間単位の使用料金やデータ転送料金が課金されること はありませんが、Amazon EBS ボリュームのストレージについては課金されます。インスタンス がstopped状態の間、インスタンスタイプなど、インスタンスの特定の属性を変更できます。 インスタンスを起動すると、pending状態に移行し、ほとんどの場合は新しいホストコンピュータに 移動されます (ホストコンピュータに問題がない場合、インスタンスは同じホストコンピュータに残る 可能性があります)。インスタンスの停止と起動を行うと、前のホストコンピュータ上のインスタンス ストアボリューム上に存在していたすべてのデータが失われます。 インスタンスが EC2-Classic で実行されている場合、インスタンスは新しいプライベート IPv4 アド レスを受け取ります。つまり、プライベート IPv4 アドレスに関連付けられていた Elastic IP アドレス (EIP) は、インスタンスとの関連付けが解除されたということです。インスタンスが EC2-VPC で実 行されている場合、プライベート IPv4 アドレスは保持されます。つまり、プライベート IPv4 アドレ スまたはネットワークインターフェイスに関連付けられていた EIP は、インスタンスとの関連付けが 継続されるということです。インスタンスに IPv6 アドレスがある場合、IPv6 アドレスは保持されま す。 インスタンスをstoppedからrunningに移行するたびに、1 時間分の使用料が請求されます。1 時間 以内に何度も停止から起動へ移行した場合でも、その都度 1 時間分の料金が請求されます。 詳細については、「インスタンスの停止と起動 (p. 327)」を参照してください。 インスタンスの再起動 Amazon EC2 コンソール、コマンドラインツール、Amazon EC2 API を使って、インスタンスを 再起動できます。インスタンスからオペレーティングシステムの再起動コマンドを実行する代わり に、Amazon EC2 を使ってインスタンスを再起動することをお勧めします。 インスタンスの再起動はオペレーティングシステムの再起動と同様です。インスタンスは同じホスト コンピュータに残り、そのパブリック DNS 名、プライベート IP アドレス、およびその他のデータを インスタンスストアボリュームに維持します。通常、再起動が完了するまでに数分かかりますが、再 起動に必要な時間は、インスタンスの設定によって異なります。 インスタンスを再起動しても、新しいインスタンスの課金時間は開始されません。 詳細については、「インスタンスの再起動 (p. 330)」を参照してください。 インスタンスのリタイア インスタンスをホストしている基盤のハードウェアで回復不可能な障害が検出されると、AWS によっ てインスタンスのリタイヤが予定されます。予定されたリタイヤ日になると、インスタンスは AWS によって停止または終了されます。インスタンスのルートデバイスが Amazon EBS ボリュームである 場合、インスタンスは停止されますが、その後いつでも再び起動できます。インスタンスのルートデ バイスがインスタンスストアボリュームである場合、インスタンスは終了し、再び使用することはで きません。 詳細については、「インスタンスのリタイア (p. 331)」を参照してください。 300 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの終了 インスタンスの終了 インスタンスが必要なくなったら、終了することができます。インスタンスのステータスが shutting-down または terminated に変わったら、そのインスタンスへの課金は停止します。 停止保護が有効な場合、コンソール、CLI、または API を使用してインスタンスを終了できないこと にご注意ください。 インスタンスの終了後、インスタンスはしばらくの間コンソールに表示されたままですが、エントリ は自動的に削除されます。CLI および API を使って、終了したインスタンスを記述することもできま す。(タグなどの) リソースは削除されたインスタンスから徐々に関連付けが解除されるため、しばら くすると、削除されたインスタンスで表示されなくなる可能性があります。終了したインスタンスへ の接続や復旧はできません。 Amazon EBS-Backed インスタンスはそれぞれ、InstanceInitiatedShutdownBehavior 属性を サポートしています。この属性は、インスタンス自体からシャットダウンを開始した場合 (Linux で shutdown コマンドを使用した場合など) 、インスタンスを停止または終了するかを制御します。デ フォルトの動作は、インスタンスの停止です。インスタンスの実行中または停止中に、この属性の設 定を変更できます。 各 Amazon EBS ボリュームは DeleteOnTermination 属性をサポートします。この属性は、アタッ チされたインスタンスを終了するときに、ボリュームの削除や保持を制御します。デフォルトでは、 ルートデバイスボリュームを削除し、それ以外に EBS ボリュームがあれば保持します。 詳細については、「インスタンスの終了 (p. 333)」を参照してください。 再起動、停止、終了の違い 次の表に、インスタンスの再起動、停止、終了の主な違いをまとめました。 特徴 再起動 停止/起動 (Amazon EBS終了 backed インスタンスのみ) ホストコン ピュータ インスタンスは、同じホス トコンピュータで保持され る インスタンスは新しいホ ストコンピュータで実行 される なし プライベー ト IPv4 ア ドレスとパ ブリック IPv4 アドレ ス 同一のまま保持される EC2-Classic: インスタン スは新しいプライベート IPv4 アドレスとパブリッ ク IP アドレスを取得しま す なし Elastic IP アドレス (IPv4) Elastic IP アドレスはイン スタンスに関連付けられた ままになる EC2-VPC: インスタンス はプライベート IPv4 アド レスを保持します。イン スタンスは、停止/起動の 際に変更されない Elastic IP アドレス (EIP) を持っ ていない限り、新しいパ ブリック IPv4 アドレスを 取得します。 EC2-Classic: Elastic IP ア ドレスはインスタンスか ら関連付けが解除される 301 Elastic IP はインスタンス との関連付けが解除される Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する 特徴 再起動 停止/起動 (Amazon EBS終了 backed インスタンスのみ) EC2-VPC: Elastic IP アド レスはインスタンスに関 連付けられたままになる IPv6 アド レス (EC2VPC のみ) アドレスは同一のまま保持 される インスタンスは、IPv6 ア ドレスを保持する なし インスタン スストアボ リューム データは保持される データは消去される データは消去される ルートデ バイスボ リューム ボリュームは保持される ボリュームは保持される ボリュームはデフォルトで 削除される 請求 インスタンスの課金時間は 変更されません。 インスタンスの状態が stopping に変わると すぐに、そのインスタ ンスへの課金が停止さ れます。インスタンス の状態が stopped から running に移行するたび に、新しいインスタンス の課金時間が開始されま す。 インスタンスの状態が shutting-down に変わる とすぐに、そのインスタン スへの課金が停止されま す。 オペレーティングシステムのシャットダウンコマンドによって、instance store-backed インスタンス が必ず停止されることに注意してください。オペレーティングシステムのシャットダウンコマンドに よって Amazon EBS-backed インスタンスを停止または終了するかどうかを制御できます。詳細につ いては、「インスタンスによって起動されたシャットダウン動作の変更 (p. 336)」を参照してくださ い。 インスタンスの作成 インスタンスとは AWS クラウドにある仮想サーバーです。Amazon Machine Image (AMI) からインス タンスを起動します。AMI はインスタンスに対して、オペレーティングシステム、アプリケーション サーバ-、およびアプリケーションを提供します。 AWS にサインアップすると、AWS 無料利用枠を使って、Amazon EC2 を無料で開始することがで きます。無料利用枠を利用することも、12 か月無料でマイクロインスタンスを使用することもでき ます。無料利用枠に含まれないインスタンスを起動する場合は、そのインスタンスの通常の Amazon EC2 使用料がかかります。詳細については、Amazon EC2 料金表を参照してください。 次の方法を使用してインスタンスを起動できます。 メソッド ドキュメント 選択する AMI とともに Amazon EC2 コンソール を使用する インスタンスの作成 (p. 303) 既存のインスタンスをテンプレートとして使っ てインスタンスを起動するために Amazon EC2 コンソールを使用する テンプレートとして既存のインスタンスを使用 してインスタンスを起動 (p. 309) 302 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する メソッド ドキュメント 作成した Amazon EBS スナップショットととも に Amazon EC2 コンソールを使用する バックアップからの Linux インスタンスの起 動 (p. 310) AWS Marketplace から購入した AMI とともに Amazon EC2 を使用する AWS Marketplace インスタンスの起動 (p. 312) 選択する AMI とともに AWS CLI を使用する Using Amazon EC2 through the AWS CLI 選択する AMI とともに AWS Tools for Windows PowerShell を使用する Amazon EC2 from the AWS Tools for Windows PowerShell インスタンスを起動した後、インスタンスに接続して使用できます。最初、インスタンスの状態は pending です。インスタンスの状態が running の場合、インスタンスは起動を開始します。インス タンスに接続するまで、少し時間がかかることがあります。インスタンスは、パブリック DNS 名を 受信します。この名前はインスタンスをインターネットに接続する場合に使用できます。インスタン スはプライベート DNS 名も受信します。同じ Amazon EC2 ネットワーク (EC2-Classic または EC2VPC) 内の他のインスタンスはこの名前を使って、インスタンスと接続することができます。インス タンスへの接続の詳細については、「Linux インスタンスへの接続 (p. 314)」を参照してください。 インスタンスを使い終わったら、必ずインスタンスを終了してください。詳細については、「インス タンスの終了 (p. 333)」を参照してください。 インスタンスの作成 インスタンスを起動する前に、セットアップが終了していることを確認してください。詳細について は、「Amazon EC2 でのセットアップ (p. 21)」を参照してください。 AWS アカウントでは、アカウントの作成時期と使用リージョンに応じて EC2-Classic プラットフォー ムと EC2-VPC プラットフォームの両方がサポートされている可能性があります。アカウントでサ ポートされるプラットフォームを調べるには、「サポートされているプラットフォーム (p. 649)」を 参照してください。アカウントで EC2-Classic がサポートされる場合、どちらのプラットフォームで もインスタンスを起動できます。アカウントで EC2-VPC のみサポートされる場合、VPC でのみイン スタンスを起動できます。 Important AWS 無料利用枠に含まれないインスタンスを起動すると、アイドル状態であっても、インス タンスの実行中は料金が発生します。 AMI からのインスタンスの起動 インスタンスを起動するときに、Amazon Machine Image (AMI) と呼ばれる設定を選択する必要があ ります。AMI には、新しいインスタンスの作成に必要な情報が含まれています。たとえば、ある AMI にはウェブサーバーとして動作するために必要なソフトウェア (Linux、Apache、ウェブサイトなど) が格納されます。 Tip インスタンスの起動を高速化するには、大きなリクエストをより小さなバッチに分割しま す。たとえば、1 つの起動リクエストに 500 インスタンスが含まれている場合は、それを 5 つの起動リクエスト (各 100 インスタンス) に分割します。 インスタンスを起動するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 303 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する 2. 画面の上のナビゲーションバーで、現在のリージョンが表示されます。インスタンスのリージョ ンを選択します。この選択は、リージョン間で共有できるのが一部の Amazon EC2 リソースのみ であるため、重要です。ニーズに合ったリージョンを選択してください。詳細については、「リ ソースの場所 (p. 880)」を参照してください。 3. Amazon EC2 コンソールダッシュボードで、[Launch Instance] を選択します。 4. [Choose an Amazon Machine Image (AMI)] ページで、次のように AMI を選択します。 a. 左ペインで、使用する AMI のタイプを選択します。 クイックスタート すぐに作業を開始できるように、一般的な AMI を選択します。無料利用枠の対象となる AMI を確実に選択するには、左ペインで [Free tier only] を選択します (これらの AMI は [Free tier eligible] と表示されていることに注意してください)。 マイ AMI お客様が所有しているプライベート AMI、またはお客様が共有しているプライベート AMI。 AWS Marketplace AMI も含めて、AWS で実行するソフトウェアを購入できるオンラインストア。AWS Marketplace からのインスタンスの起動の詳細については、AWS Marketplace インスタ ンスの起動 (p. 312) を参照してください。 コミュニティ AMI AWS コミュニティのメンバーが、メンバー以外でも使用できるようにした AMI。 オペレーティングシステムを条件として AMI のリストをフィルタリングするには、 304 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する [Operating system] の該当するチェックボックスをオンにします。アーキテクチャおよび ルートデバイスタイプを条件としてフィルタリングすることもできます。 5. b. 各 AMI の [Root device type] を確認します。必要なタイプはどの AMI かに注意してくださ い。タイプは ebs (Amazon EBS でバックアップ) または instance-store (インスタンスス トアでバックアップ) です。詳細については、「ルートデバイスのストレージ (p. 77)」を参 照してください。 c. 各 AMI の [Virtualization type] を確認します。必要なタイプはどの AMI かに注意してくださ い。タイプは hvm または paravirtual です。たとえば、一部のインスタンスタイプには HVM が必要です。詳細については、「Linux AMI 仮想化タイプ (p. 80)」を参照してくださ い。 d. ニーズを満たす AMI を選択し、[Select] を選択します。 [Choose an Instance Type] ページで、起動するインスタンスのハードウェア設定とサイズを選択 します。インスタンスタイプが大きくなると、CPU およびメモリも増えます。詳細については、 「インスタンスタイプ (p. 167)」を参照してください。 無料利用枠の対象とするには、[t2.micro] インスタンスタイプを選択します。詳細については、 「T2 インスタンス (p. 171)」を参照してください。 デフォルトでは、ウィザードには現行世代のインスタンスタイプが表示され、お客様が選択した AMI に基づいて使用可能な最初のインスタンスタイプが選択されます。旧世代のインスタンスタ イプを表示するには、フィルタリストから [All generations] を選択します。 Note AWS のご利用が初めてで、テスト目的でインスタンスをすばやくセットアップしたい場 合は、この時点で [Review and Launch] を選択し、デフォルトの設定を受け入れてイン スタンスを起動できます。それ以外の場合は、インスタンスをさらに設定するために、 [Next: Configure Instance Details] を選択します。 6. [Configure Instance Details] ページで、必要に応じて次の設定を変更し (すべての設定を表示する には [Advanced Details] を展開)、[Next: Add Storage] を選択します。 • [Number of instances]: 起動するインスタンスの数を入力します。 Note アプリケーションを処理するためにインスタンスの正しい数を確実に維持するには、 [Launch into Auto Scaling Group] を選択して起動設定と Auto Scaling グループを作成 します。Auto Scaling によって、指定どおりにグループのインスタンス数がスケーリン グされます。詳細については、Auto Scaling ユーザーガイド を参照してください。 • [Purchasing option]: [Request Spot instances] を選択してスポットインスタンスを起動します。 詳細については、「スポットインスタンス (p. 234)」を参照してください。 • アカウントは、EC2-Classic プラットフォームと EC2-VPC プラットフォームをサポートする ことも、EC2-VPC のみをサポートすることもあります。アカウントでサポートされるプラット フォームを調べるには、「サポートされているプラットフォーム (p. 649)」を参照してくださ い。アカウントで EC2-VPC のみをサポートする場合は、デフォルトの VPC またはデフォルト 以外の VPC でインスタンスを起動できます。それ以外の場合は、EC2-Classic またはデフォル ト以外の VPC でインスタンスを起動できます。 Note 一部のインスタンスタイプは、VPC で起動する必要があります。VPC がない場合は、 ウィザードに自動作成させることもできます。 EC2-Classic で起動するには • [Network]: [Launch into EC2-Classic] を選択します。 305 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する • [アベイラビリティーゾーン]: 使用するアベイラビリティーゾーンを選択します。AWS で自 動的にアベイラビリティーゾーンを選択するには、[No preference] を選択します。 VPC で起動するには • [Network]: VPC を選択します。新しい VPC を作成するには、[Create new VPC] を選択して Amazon VPC コンソールに移動します。終了したらウィザードに戻り、[Refresh] を選択して 一覧に VPC を読み込みます。 • [Subnet] : インスタンス起動するサブネットを選択します。アカウントが EC2-VPC のみの 場合は、[No preference] を選択して、AWS で任意のアベイラビリティーゾーンのデフォ ルトサブネットを自動的に選択できます。新しいサブネットを作成するには、[Create new subnet] を選択して Amazon VPC コンソールに移動します。終了したらウィザードに戻り、 [Refresh] を選択して一覧にサブネットを読み込みます。 • [Auto-assign Public IP]: インスタンスがパブリック IPv4 アドレスを受け取るかどうかを指 定します。デフォルトで、デフォルトのサブネットにあるインスタンスはパブリック IPv4 アドレスを受け取り、デフォルト以外のサブネットにあるインスタンスは受け取りません。 [Enable] または [Disable] を選択すると、これがサブネットのデフォルト設定より優先されま す。詳細については、「パブリック IPv4 アドレスと外部 DNS ホスト名 (p. 673)」を参照 してください。 • [Auto-assign IPv6 IP]: インスタンスがサブネットの範囲から IPv6 アドレスを受け取るかど うかを指定します。[Enable] または [Disable] を選択すると、これによりサブネットのデフォ ルト設定がオーバーライドされます。このオプションは IPv6 CIDR ブロックを VPC とサブ ネットに関連付けた場合にのみ使用できます。詳細については、Amazon VPC ユーザーガイ ド の「VPC とサブネット」を参照してください。 • [IAM role]: インスタンスに関連付ける AWS Identity and Access Management (IAM) ロールを選 択します。詳細については、「Amazon EC2 の IAM ロール (p. 634)」を参照してください。 • [Shutdown behavior]: シャットダウン時にインスタンスを停止するか終了するかを選択 します。詳細については、「インスタンスによって起動されたシャットダウン動作の変 更 (p. 336)」を参照してください。 • [Enable termination protection]: 偶発的な終了を防ぐには、このチェックボックスをオンにしま す。詳細については、「インスタンスの終了保護の有効化 (p. 334)」を参照してください。 • [Monitoring]: Amazon CloudWatch を使用したインスタンスの詳細モニタリングを有効にする には、このチェックボックスをオンにします。追加の変更が適用されます。詳細については、 「CloudWatch を使用したインスタンスのモニタリング (p. 534)」を参照してください。 • [EBS-Optimized instance]: Amazon EBS 最適化インスタンスは、最適化された設定スタッ クを使用し、Amazon EBS I/O に対して追加の専用の容量を提供します。インスタンスタイ プがこの機能をサポートしている場合は、このチェックボックスをオンにして機能を有効に します。追加の変更が適用されます。詳細については、「Amazon EBS 最適化インスタン ス (p. 813)」を参照してください。 • [Tenancy]: VPC でインスタンスを起動する場合、独立した専用のハードウェア ([Dedicated]) または Dedicated Host ([Dedicated host]) を選択できます。追加料金が適用される場合があ ります。詳細については、「ハードウェア専有インスタンス (p. 294)」および「Dedicated Hosts (p. 283)」を参照してください。 • [Network interfaces]: 特定のサブネットを選択すると、インスタンスに対して最大 2 つのネット ワークインターフェイスを指定できます。 • [Network Interface] で、[New network interface] を選択して AWS によって新しいインター フェースを作成するか、既存の使用できるネットワークインターフェース選択します。 • [Primary IP] で、サブネットの範囲からプライベート IPv4 アドレスを入力するか、[Autoassign] をデフォルトのままにしてプライベート IPv4 アドレスが自動的に選択されるように します。 • 選択したネットワークインターフェイスに対して複数のプライベート IPv4 アドレスを割り当 てるには、[Secondary IP addresses] で [Add IP] を選択します。 • (IPv6 のみ) [IPv6 IP] で、[Add IP] を選択し、サブネットの範囲から IPv6 アドレスを入力する か、[Auto-assign] をデフォルトのままにして IPv6 アドレスが自動的に選択されるようにし ます。 306 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する • [Add Device] を選択して、セカンダリネットワークインターフェイスを追加します。セカン ダリネットワークインターフェイスは、インスタンスと同じアベイラビリティーゾーンにあ る場合は、VPC の別のサブネットに存在できます。 詳細については、「Elastic Network Interface (p. 697)」を参照してください。複数のネット ワークインターフェイスを指定した場合、インスタンスはパブリック IPv4 アドレスを受け取 ることはできません。さらに、eth0 の既存のネットワークインターフェイスを指定した場合、 [Auto-assign Public IP] を使用してサブネットのパブリック IPv4 設定がオーバーライドされる ようにすることはできません。詳細については、「インスタンス起動時のパブリック IPv4 アド レスの割り当て (p. 679)」を参照してください。 • [Kernel ID]: (準仮想化 (PV) AMI でのみ有効) 特定のカーネルを使用する場合を除き、[Use default] を選択します。 • [RAM disk ID]: (準仮想化 (PV) AMI でのみ有効) 特定の RAM ディスクを使用する場合を除き、 [Use default] を選択します。カーネルを選択した場合は、サポートするドライバとともに特定 の RAM ディスクを選択しなければならない可能性があります。 • [Placement group]: プレイスメントグループは、クラスターインスタンスの論理グループで す。既存のプレイスメントグループを選択するか、新しいグループを作成します。このオプ ションは、プレイスメントグループをサポートするインスタンスタイプを選択した場合にのみ 使用できます。詳細については、「プレイスメントグループ (p. 714)」を参照してください。 • [User data]: 起動時にインスタンスを設定するユーザーデータ、または設定スクリプトを実行す るユーザーデータを指定できます。ファイルを添付するには、[As file] オプションを選択し、添 付するファイルを参照します。 7. [Add Storage] ページで、AMI によって指定されるボリューム (ルートデバイスボリュームなど) 以外に、インスタンスにアタッチするボリュームを指定します。以下のオプションを変更できま す。終了したら、[Next: Add Tags] を選択します。 • [Type]: インスタンスと関連付けるインスタンスストアまたは Amazon EBS ボリュームを選択 します。一覧で利用できるボリュームの種類は、選択したインスタンスタイプに応じて異な ります。詳細については、「Amazon EC2 インスタンスストア (p. 846)」および「Amazon EBS ボリューム (p. 752)」を参照してください。 • [Device]: ボリュームで利用できるデバイス名の一覧から選択します。 • [Snapshot]: ボリュームを復元するスナップショットの名前または ID を入力します。 [Snapshot] フィールドにテキストを入力して、パブリックスナップショットを検索することも できます。スナップショットの説明では大文字と小文字が区別されます。 • [Size]: Amazon EBS-Backed ボリュームについては、ストレージサイズを指定できます。無料 利用枠の対象となる AMI とインスタンスを選択した場合でも、無料利用枠内に収まるようにす るには、合計ストレージを 30 GiB 以下に維持する必要があります。 Note Linux AMI では、2 TiB (2048 GiB) 以上のブートボリュームには GPT パーティション テーブルと GRUB 2 が必要です。現在の多くの Linux AMI は MBR パーティションス キームを使用しており、最大 2047 GiB のブートボリュームのみをサポートしていま す。インスタンスが 2 TiB 以上のブートボリュームで起動しない場合、使用中の AMI は、2047 GiB のブートボリュームサイズに制限されている可能性があります。ブート ボリューム以外のボリュームには、Linux インスタンスでこの制限はありません。 Note この時点でルートボリューム (またはスナップショットから作成したその他のボリュー ム) のサイズを増やした場合は、追加のスペースを使用するためにそのボリュームの ファイルシステムを拡張する必要があります。インスタンスの起動後、ファイルシス テムを拡張する詳細については、Linux で EBS ボリュームのストレージ領域を拡張す る (p. 790) を参照してください。 307 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する • [Volume Type]: Amazon EBS ボリュームの場合、汎用 SSD、プロビジョンド IOPS SSD、また は マグネティック ボリュームを選択します。詳細については、「Amazon EBS ボリュームの 種類 (p. 755)」を参照してください。 Note マグネティック ブートボリュームを選択した場合、ウィザードを完了したときに、汎 用 SSD ボリュームを、このインスタンスおよび将来のコンソール起動時のデフォルト ブートボリュームにするようメッセージが表示されます (このユーザー設定はブラウザ セッションの間、保持され、プロビジョンド IOPS SSD ブートボリュームを持つ AMI には影響しません)。汎用 SSD ボリュームをデフォルトにすることをお勧めします。起 動時間が大幅に短縮でき、ほとんどの作業負荷に最適なボリュームタイプであるため です。詳細については、「Amazon EBS ボリュームの種類 (p. 755)」を参照してくだ さい。 Note 2012 年以前に作成された一部の AWS アカウントでは、us-east-1、us-west-1、また は ap-northeast-1 で プロビジョンド IOPS SSD (io1) ボリュームをサポートしていな いアベイラビリティーゾーンにアクセスできる可能性があります。これらのリージョ ンの 1 つに io1 ボリュームを作成できない場合 (またはブロックデバイスマッピング に io1 ボリュームのあるインスタンスを起動できない場合) は、リージョンの別のアベ イラビリティーゾーンを試します。アベイラビリティーゾーンが io1 ボリュームをサ ポートするかどうかは、4 GiB の io1 ボリュームをそのゾーンに作成することで確認 できます。 • [IOPS]: プロビジョンド IOPS SSD ボリュームタイプを選択した場合は、ボリュームがサポー トできる I/O オペレーション/秒 (IOPS) を入力できます。 • [Delete on Termination]: Amazon EBS ボリュームについては、インスタンスが終了したときに ボリュームを削除するには、このチェックボックスをオンにします。詳細については、「イン スタンスの終了で Amazon EBS ボリュームを保持する (p. 337)」を参照してください。 • [Encrypted]: このチェックボックスをオンにすると、新しい Amazon EBS ボリュームが暗号化 されます。暗号化されたスナップショットから復元された Amazon EBS ボリュームは、自動的 に暗号化されます。暗号化されたボリュームをアタッチできるのは、サポートされるインスタ ンスタイプ (p. 818)に対してのみです。 8. [Add Tags] ページで、キーと値の組み合わせをインスタンスのタグ (p. 889)として指定しま す。リソースに複数のタグを追加するには、[Add another tag] を選択します。完了したら、[Next: Configure Security Group] を選択します。 9. [Configure Security Group] ページで、セキュリティグループを使用してインスタンスのファイア ウォールルールを定義しますこのルールでは、どの着信ネットワークトラフィックをインスタン スに配信するかを指定します。他のトラフィックはすべて無視されます。 (セキュリティグルー プの詳細については、「Linux インスタンスの Amazon EC2 セキュリティグループ (p. 579)」 を参照してください)。以下のようにセキュリティグループを選択または作成して、[Review and Launch] を選択します。 既存のセキュリティグループを選択するには: 1. [Select an existing security group] を選択します。セキュリティグループが表示されます (EC2-Classic で起動した場合、これは EC2-Classic のセキュリティグループです。VPC で起 動した場合、これはその VPC のセキュリティグループです)。 2. リストからセキュリティグループを選択します。 3. (オプション) 既存のセキュリティグループのルールを編集することはできません。しかし、 [Copy to new] を選択して、新しいグループにルールをコピーすることはできます。その後、 次の手順で説明しているように、ルールを追加できます。 新しいセキュリティグループを作成するには: 308 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する 1. [Create a new security group] を選択します。launch-wizard-x セキュリティグループがウィ ザードによって自動的に定義されます。 2. (オプション) セキュリティグループの名前と説明を編集できます。 3. Linux 用の SSH (ポート 22) または Windows 用の RDP (ポート 3389) によるインスタンスへ の接続を許可するインバウンドルールが、ウィザードによって自動的に定義されます。 Caution このルールは、すべての IP アドレス (0.0.0.0/0) から指定されたポートを介して インスタンスにアクセスできるようにします。これは、この短期間の演習では許容 されますが、本稼働環境では安全ではありません。特定の IP アドレスまたは特定の アドレス範囲にのみ、インスタンスへのアクセスを限定してください。 4. ニーズに応じたルールを追加できます。たとえば、インスタンスがウェブサーバーである場 合は、ポート 80 (HTTP) とポート 443 (HTTPS) を開いて、インターネットトラフィックを 許可します。 ルールを追加するには、[Add Rule] を選択し、プロトコルを選択してネットワークトラ フィックを開いてから、ソースを指定します。[Source] リストから [My IP] を選択し、ウィ ザードでコンピューターのパブリック IP アドレスを追加します。ただし、ISP 経由で、また はファイアウォールの内側から静的な IP アドレスなしで接続している場合は、クライアント コンピュータで使用されている IP アドレスの範囲を見つける必要があります。 10. [Review Instance Launch] ページで、インスタンスの詳細をチェックし、適切な [Edit] リンクを選 択して必要な変更を加えます。 準備ができたら、[Launch] を選択します。 11. [Select an existing key pair or create a new key pair] ダイアログボックスで、既存のキーペアを選 択するか、新しいキーペアを作成できます。たとえば、[Choose an existing key pair] を選択し、 セットアップ中に作成したキーペアを選択します。 インスタンスを起動するには、確認のチェックボックスをオンにし、続いて [Launch Instances] を選択します。 Important [Proceed without key pair] オプションを選択した場合、ユーザーが別の方法でログインす ることを許可するように設定された AMI を選択した場合でなければ、インスタンスに接 続できなくなります。 12. (オプション) インスタンスのステータスチェックアラームを作成することもできます (追加料金 がかかります)。 (不明な場合は、後からいつでも追加できます。) 確認画面で、[Create status check alarms] を選択して、指示にしたがいます。詳細については、「ステータスチェックアラー ムの作成と編集 (p. 528)」を参照してください。 13. インスタンスの状態が「running」にならずに、すぐに「terminated」になってしまう場合 は、インスタンスが起動しなかった理由について確認できます。詳細については、「インスタン スがすぐに終了する場合の対処方法 (p. 913)」を参照してください。 テンプレートとして既存のインスタンスを使用してインスタン スを起動 Amazon EC2 コンソールには、現在のインスタンスを他のインスタンスを起動するテンプレートとし て使用できるようにする、[Launch More Like This] ウィザードオプションが用意されています。この オプションでは、Amazon EC2 起動ウィザードで、選択されたインスタンスから自動的に特定の設定 が入力されます。 309 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する Note [Launch More Like This] ウィザードオプションでは、選択されたインスタンスは複製されませ ん。一部の設定が複製されるのみです。インスタンスのコピーを作成するには、最初にイン スタンスから AMI を作成して、AMI からさらに多くのインスタンスを起動します。 次の設定詳細は、選択されたインスタンスから起動ウィザードにコピーされます。 • AMI ID • インスタンスタイプ • アベイラビリティーゾーン、または選択されたインスタンスがある VPC とサブネット • パブリック IPv4 アドレス。選択されたインスタンスの IPv4 アドレスが現在パブリック IPv4 アド レスの場合、選択されたインスタンスのパブリック IPv4 アドレスのデフォルト設定に関係なく、新 しいインスタンスはパブリック IPv4 アドレスを受け取ります。パブリック IPv4 アドレスの詳細に ついては、「パブリック IPv4 アドレスと外部 DNS ホスト名 (p. 673)」を参照してください。 • プレイスメントグループ (該当する場合) • 該当する場合は、インスタンスに関連付けられた IAM ロール • シャットダウン動作の設定 (停止または終了) • 終了保護設定 (true または false) • CloudWatch モニタリング (有効または無効) • Amazon EBS 最適化設定 (true または false) • VPC (共有または専用) に起動する場合は、テナンシー設定 • 該当する場合は、カーネル ID および RAM ディスク ID • ユーザーデータ (指定された場合) • 該当する場合は、インスタンスに関連付けられたタグ • インスタンスに関連付けられたセキュリティグループ 次の設定の詳細は選択されたインスタンスからコピーされず、代わりにウィザードがデフォルトの設 定または動作を適用します。 • (VPC のみ) ネットワークインターフェイスの数: デフォルトでは、1 つのネットワークインター フェイス、つまりプライマリネットワークインターフェイス (eth0) です。 • ストレージ: デフォルトのストレージ設定は AMI およびインスタンスタイプによって決まります。 現在のインスタンスをテンプレートとして使用するには 1. [インスタンス] ページで、使用するインスタンスを選択します。 2. [Actions] を選択し、[Launch More Like This] を選択します。 3. [Review Instance Launch] ページで起動ウィザードが開きます。インスタンスの詳細をチェック し、適切な [Edit] リンクをクリックして、必要な変更を行うことができます。 準備ができたら、[Launch] を選択してキーペアを選択し、インスタンスを起動します。 バックアップからの Linux インスタンスの起動 Amazon EBS-backed Linux インスタンスを使用すると、スナップショットを作成することで、イン スタンスのルートデバイスボリュームをバックアップできます。インスタンスのルートデバイスボ リュームのスナップショットがある場合、そのインスタンスを終了して、後でスナップショットから 新しいインスタンスを起動できます。インスタンスの起動元のオリジナルの AMI がないけれども、同 じイメージを使ってインスタンスを起動する必要がある場合に、これは便利です。 310 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する Important Red Hat Enterprise Linux (RHEL) や SUSE Linux Enterprise Server (SLES) などの一部の Linux ディストリビューションは、AMI に関連付けられた EC2 の billingProduct コー ドを使用して、パッケージの更新に関するサブスクリプションのステータスを確認しま す。EBS スナップショットから AMI を作成すると、この請求コードが保持されないため、こ のような AMI から起動したそれ以降のインスタンスはパッケージ更新インフラストラクチャ に接続できません。 同様に、スナップショットから Windows AMI を作成することはできますが、AMI からインス タンスを正常に起動することができません。 Windows AMI を作成する場合、または、正常に機能するためには AMI の請求コードを保持 する必要がある Linux オペレーティングシステム用の AMI を作成する場合は、「Amazon EBS-Backed Linux AMI の作成 (p. 96)」または「Instance Store-Backed Linux AMI の作 成 (p. 100)」を参照してください。 コンソールを使用してインスタンスのルートボリュームから AMI を作成するには、次の手順に従い ます。必要に応じて、register-image (AWS CLI) または Register-EC2Image (AWS Tools for Windows PowerShell) コマンドを代わりに使用することもできます。 コンソールを使用してルートボリュームから AMI を作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Elastic Block Store] の [Snapshots] を選択します。 3. [Create Snapshot] を選択します。 4. [Volumes] フィールドで、ルートボリュームの名前または ID の入力を開始し、オプションのリス トから選択します。 5. 先ほど作成したスナップショットを選択し、[Actions] リストから [Create Image] を選択します。 6. [Image from EBS Snapshot] ダイアログボックスで、AMI を作成するためのフィールドに入力 し、[Create] を選択します。親インスタンスを再作成する場合は、親インスタンスと同じオプ ションを選択します。 • Architecture: 32 ビットの場合は [i386] を、64 ビットの場合は [x86_64] を選択します。 • Root device name: ルートボリュームの適切な名前を入力します。詳細については、「Linux イ ンスタンスでのデバイスの名前付け (p. 865)」を参照してください。 • Virtualization type: この AMI から起動されるインスタンスで準仮想化 (PV) またはハードウェ ア仮想マシン (HVM) のいずれの仮想化を使用するかを選択します。詳細については、「Linux AMI 仮想化タイプ (p. 80)」を参照してください。 • (PV 仮想化タイプのみ) Kernel ID および RAM disk ID: リストから AKI と ARI を選択します。 デフォルトの AKI を選択するか、AKI を選択しない場合、この AMI を使用してインスタンスを 起動するたびに AKI を指定するように要求されます。また、デフォルトの AKI にインスタンス との互換性がない場合、インスタンスのヘルスチェックが失敗する可能性があります。 • (オプション) Block Device Mappings: ボリュームを追加するか、AMI のルートボリュームのデ フォルト容量を増やします。ボリュームの容量を増やした場合のインスタンスのファイルシス テムのサイズ変更の詳細については、「Linux ファイルシステムを拡張する (p. 793)」を参照 してください。 7. ナビゲーションペインで [AMIs] を選択します。 8. 作成した AMI を選択し、[Launch] を選択します。ウィザードに従って、インスタンスを起動しま す。ウィザードの各ステップの設定方法については、インスタンスの作成 (p. 303) を参照して ください。 311 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する AWS Marketplace インスタンスの起動 AWS Marketplace 製品を受信登録し、Amazon EC2 起動ウィザードを使用して、この製品の AMI か らインスタンスを起動できます。有料の AMI の詳細については、有料 AMI (p. 92) を参照してくださ い。起動後に受信登録をキャンセルするには、初めに受信登録から、実行されているすべてのインス タンスを終了する必要があります。詳細については、「AWS Marketplace サブスクリプションの管 理 (p. 95)」を参照してください。 起動ウィザードを使用して AWS Marketplace からインスタンスを起動するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. Amazon EC2 ダッシュボードから、[Launch Instance] を選択します。 3. [Choose an Amazon Machine Image (AMI)] ページで、左の [AWS Marketplace] カテゴリを選択し ます。カテゴリを参照するか、検索機能を使用して適切な AMI を見つけます。[Select] を選択し て製品を選択します。 4. ダイアログに、選択した製品の概要が表示されます。価格情報と、ベンダーが提供したその他の 情報を表示できます。準備が完了したら、[Continue] を選択します。 Note AMI でインスタンスを起動するまで、製品の使用料は発生しません。ウィザードの次の ページでは、インスタンスタイプの選択が求められるため、サポートされているインス タンスタイプの料金をメモしておいてください。追加の税金が製品に適用される場合が あります。 5. [Choose an Instance Type] ページで、起動するインスタンスのハードウェア設定とサイズを選択 します。終了したら、[Next: Configure Instance Details] を選択します。 6. ウィザードの次のページでは、インスタンスの設定、ストレージの追加、およびタグの追加を 行うことができます。設定できるさまざまなオプションの詳細については、インスタンスの作 成 (p. 303) を参照してください。[Configure Security Group] ページが表示されるまで、[Next] を選択します。 製品に関するベンダーの仕様にしたがって、新しいセキュリティグループが作成されます。セ キュリティグループには、Linux の SSH (ポート 22) または Windows の RDP (ポート 3389) です べての IPv4 アドレス (0.0.0.0/0) を許可するルールが含まれる場合があります。これらのルー ルを調整して、特定のアドレスまたはアドレスの範囲のみが、これらのポート経由でインスタン スにアクセスできるようにすることをお勧めします。 準備ができたら、[Review and Launch] を選択します。 7. [Review Instance Launch] ページで、インスタンスを起動しようとしている AMI の詳細と、ウィ ザードでセットアップするその他の設定の詳細をチェックします。準備ができたら、[Launch] を 選択してキーペアを選択または作成し、インスタンスを起動します。 8. 受信登録した製品によっては、インスタンスの起動には数分以上かかります。インスタンスが起 動する前に、まず製品に登録されます。クレジットカードの詳細に問題がある場合は、アカウン トの詳細を更新するように求められます。起動確認のページが表示されたら、[View Instances] を 選択して [Instances] ページに移動します。 Note インスタンスが実行されている限り、アイドル状態であっても、受信登録費用が発生し ます。インスタンスが停止している場合でも、ストレージに対して課金されることがあ ります。 9. インスタンスの状態が [running] の場合、そのインスタンスに接続することができます。そのため には、一覧でインスタンスを選択し、[Connect] を選択します。ダイアログの指示にしたがいま す。インスタンスへの接続の詳細については、「Linux インスタンスへの接続 (p. 314)」を参照 してください。 312 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 作成する Important インスタンスにログインするには、特定のユーザー名を使用しなければならない場合が あるため、ベンダーの使用手順を慎重に確認してください。受信登録の詳細へのアクセ スについては、AWS Marketplace サブスクリプションの管理 (p. 95) を参照してくださ い。 API と CLI を使用した AWS Marketplace AMI インスタンスの起動 API またはコマンドラインツールを使用して、AWS Marketplace 製品からインスタンスを起動するに は、まず製品に登録していることを確認します。次の方法を使用して、製品の AMI ID でインスタンス を起動できます。 メソッド ドキュメント AWS CLI run-instances コマンドを使用するか、詳細について「インスタンス の起動」を参照してください。 AWS Tools for Windows PowerShell New-EC2Instance コマンドを使用するか、詳細についてWindows PowerShell を使用した Amazon EC2 インスタンスの起動を参照し てください。 クエリ API RunInstancesリクエストを使用します。 313 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 Linux インスタンスへの接続 起動した Linux インスタンスに接続する方法と、ローカルコンピュータとインスタンスの間でファイ ルを転送する方法について説明します。 Windows インスタンスに接続する必要がある場合は、Windows インスタンスの Amazon EC2 ユー ザーガイド の「Windows インスタンスへの接続」を参照してください。 コンピュータ トピック Linux SSH を使用した Linux インスタンスへの接続 (p. 314) Windows PuTTY を使用した Windows から Linux インスタンスへの接 続 (p. 319) すべて MindTerm を使用した Linux インスタンスへの接続 (p. 325) インスタンスを接続した後で、チュートリアル: Amazon Linux への LAMP ウェブサーバーのインス トール (p. 36) や チュートリアル: Amazon Linux を使った WordPress ブログのホスティング (p. 46) など、いずれかのチュートリアルを試すことができます。 SSH を使用した Linux インスタンスへの接続 インスタンスを起動したら、これに接続し、普通のコンピュータと同じように使用できます。 Note インスタンスを起動してから接続できるようになるまでには、数分かかる場合があります。 インスタンスのステータスチェックが正常に終了したことを確認してください。この情報 は、[Instances] ページの [Status Checks] 列で確認できます。 次の手順では、SSH クライアントを使って、インスタンスに接続する方法について説明します。イン スタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照 してください。 前提条件 Linux インスタンスに接続する前に、以下の前提条件を満たしていることを確認してください。 • SSH クライアントのインストール ほとんどの場合、Linux コンピュータにはデフォルトで SSH クライアントがあります。SSH クラ イアントがあるかどうかを確認するには、コマンドラインで ssh と入力します。使用しているコン ピュータでコマンドが認識されない場合は、OpenSSH プロジェクトから、SSH ツールの完全なス イートの無料実装が提供されています。詳細については、http://www.openssh.com を参照してくだ さい。 • AWS CLI ツールのインストール (オプション) サードパーティのパブリック AMI を使用する場合は、コマンドラインツールを使用 してフィンガープリントを確認できます。AWS CLI のインストールの詳細については、『AWS Command Line Interface ユーザーガイド』の「準備作業」を参照してください。 • インスタンスの ID を取得する Amazon EC2 コンソールを使用して、インスタンスの ID を取得できます ([Instance ID] 列を確認 します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。 • インスタンスのパブリック DNS 名を取得する 314 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます ([Public DNS (IPv4)] 列を確認します。この列が非表示の場合は、[Show/Hide] アイコンを選択して [Public DNS (IPv4)] を選択します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。 • (IPv6 のみ) インスタンスの IPv6 アドレスを取得する インスタンスに IPv6 アドレスを割り当てた場合は、オプションでパブリック IPv4 アドレスまたは パブリック IPv4 DNS ホスト名でなく IPv6 アドレスを使用して、インスタンスに接続できます。 ローカルコンピュータに IPv6 アドレスがあり、IPv6 を使用するように設定されている必要があ ります。Amazon EC2 コンソールを使用してインスタンスの IPv6 アドレスを取得できます ([IPv6 IPs] フィールドを確認してください)。必要に応じて、describe-instances (AWS CLI) または GetEC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。IPv6 の詳 細については、「IPv6 アドレス (p. 675)」を参照してください。 • プライベートキーを見つける インスタンスの起動時に指定したキーペアの .pem ファイルの完全修飾パスが必要です。 • IP アドレスからインスタンスへのインバウンド SSH トラフィックを有効にする インスタンスに関連付けられているセキュリティグループで、IP アドレスからの受信 SSH トラ フィックが許可されることを確認します。詳細については、「インスタンスへのネットワークアク セスの許可」を参照してください。 Important デフォルトのセキュリティグループのデフォルトでは、受信 SSH トラフィックは許可され ません。 Linux インスタンスへの接続 SSH クライアントを使用して Linux インスタンスに接続するには、次の手順に従います。インスタン スの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照してく ださい。 SSH を使用してインスタンスに接続するには 1. (オプション) ローカルシステムで (インスタンス上ではありません) 次のコマンドの 1 つを使 用して、実行中のインスタンスの RSA キーフィンガープリントを確認できます。これは、 サードパーティのパブリック AMI からインスタンスを起動した場合に、役立ちます。SSH HOST KEY FINGERPRINTS セクションを見つけて、RSA フィンガープリント (たとえば 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f) を書き留め、それをインスタンスの フィンガープリントと比較します。 • get-console-output (AWS CLI) aws ec2 get-console-output --instance-id instance_id Note 2. 3. インスタンスが pending 状態ではなく running 状態であることを確認します。SSH HOST KEY FINGERPRINTS セクションは、インスタンスの最初の起動後にのみ使用でき ます。 コマンドラインシェルで、インスタンスを起動したときに作成したプライベートキーファイルの 場所にディレクトリを変更します。 chmod コマンドを使って、秘密キーファイルが公開されていないことを確認します。たとえば、 秘密キーファイルが my-key-pair.pem という名前の場合、次のコマンドを使用します。 chmod 400 /path/my-key-pair.pem 315 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 4. ssh コマンドを使って、インスタンスに接続します。秘密キー (.pem) ファイルと user_name@public_dns_name を指定します。Amazon Linux の場合は、ユーザー名は ec2user です。RHEL の場合は、ユーザー名は ec2-user または root のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu または root です。Centos の場合は、ユーザー名は centos です。Fedora の場合は、ユーザー名は ec2-user です。SUSE の場合は、ユーザー名は ec2user または root のどちらかです。それ以外の場合で、ec2-user および root が機能しない場 合は、ご利用の AMI プロバイダーに確認してください。 ssh -i /path/my-key-pair.pem [email protected] 以下のようなレスポンスが表示されます。 The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)' can't be established. RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f. Are you sure you want to continue connecting (yes/no)? 5. (IPv6 のみ) 別の方法として、IPv6 アドレスを使用してインスタンスに接続することもできま す。ssh コマンドで、シークレットキー (.pem) ファイルへのパスと適切なユーザー名を指定し ます。Amazon Linux の場合は、ユーザー名は ec2-user です。RHEL の場合は、ユーザー名は ec2-user または root のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu または root です。Centos の場合は、ユーザー名は centos です。Fedora の場合は、ユーザー名は ec2user です。SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。それ以外 の場合で、ec2-user および root が機能しない場合は、ご利用の AMI プロバイダーに確認して ください。 ssh -i /path/my-key-pair.pem ec2user@2001:db8:1234:1a00:9691:9503:25ad:1761 6. (オプション) セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガー プリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中 間者 (MITM) 」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでくださ い。 7. yes と入力します。 以下のようなレスポンスが表示されます。 Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) to the list of known hosts. SCP を使用した Linux から Linux インスタンスへのファイルの転送 ローカルコンピュータと Linux インスタンスの間でファイルを転送する方法の 1 つとして、Secure Copy (SCP) を使用します。このセクションでは、SCP でファイルを転送する方法について説明しま す。この手順は、SSH を使用してインスタンスに接続する手順とよく似ています。 前提条件 • SCP クライアントのインストール ほとんどの Linux、Unix、および Apple コンピュータには、デフォルトで SCP クライアントが含 まれています。含まれていない場合は、OpenSSH プロジェクトから、SSH ツールの完全なスイー 316 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 トの無料実装が提供されており、これに SCP クライアントが含まれます。詳細については、http:// www.openssh.org を参照してください。 • インスタンスの ID を取得する Amazon EC2 コンソールを使用して、インスタンスの ID を取得できます ([Instance ID] 列を確認 します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。 • インスタンスのパブリック DNS 名を取得する Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます ([Public DNS (IPv4)] 列を確認します。この列が非表示の場合は、[Show/Hide] アイコンを選択して [Public DNS (IPv4)] を選択します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。 • (IPv6 のみ) インスタンスの IPv6 アドレスを取得する インスタンスに IPv6 アドレスを割り当てた場合は、オプションでパブリック IPv4 アドレスまたは パブリック IPv4 DNS ホスト名でなく IPv6 アドレスを使用して、インスタンスに接続できます。 ローカルコンピュータに IPv6 アドレスがあり、IPv6 を使用するように設定されている必要があ ります。Amazon EC2 コンソールを使用してインスタンスの IPv6 アドレスを取得できます ([IPv6 IPs] フィールドを確認してください)。必要に応じて、describe-instances (AWS CLI) または GetEC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。IPv6 の詳 細については、「IPv6 アドレス (p. 675)」を参照してください。 • プライベートキーを見つける インスタンスの起動時に指定したキーペアの .pem ファイルの完全修飾パスが必要です。 • IP アドレスからインスタンスへのインバウンド SSH トラフィックを有効にする インスタンスに関連付けられているセキュリティグループで、IP アドレスからの受信 SSH トラ フィックが許可されることを確認します。詳細については、「インスタンスへのネットワークアク セスの許可」を参照してください。 Important デフォルトのセキュリティグループのデフォルトでは、受信 SSH トラフィックは許可され ません。 SCP を使用してファイルを転送するステップを次に示します。既に SSH でインスタンスに接続し、 フィンガープリントの確認が完了している場合は、SCP コマンドを実行するステップ (ステップ4) か ら開始できます。 SCP を使用してファイルを転送するには 1. (オプション) ローカルシステムで (インスタンス上ではありません) 次のコマンドの 1 つ を使用して、インスタンスの RSA キーフィンガープリントを確認できます。これは、 サードパーティのパブリック AMI からインスタンスを起動した場合に、役立ちます。SSH HOST KEY FINGERPRINTS セクションを見つけて、RSA フィンガープリント (たとえば 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f) を書き留め、それをインスタンスの フィンガープリントと比較します。 • get-console-output (AWS CLI) aws ec2 get-console-output --instance-id instance_id Note SSH HOST KEY FINGERPRINTS セクションは、インスタンスの最初の起動後にのみ使用 できます。 2. コマンドラインシェルで、インスタンスを起動した時に指定した秘密キーファイルの場所にディ レクトリを変更します。 317 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 3. chmod コマンドを使って、秘密キーファイルが公開されていないことを確認します。たとえば、 秘密キーファイルが my-key-pair.pem という名前の場合、次のコマンドを使用します。 chmod 400 /path/my-key-pair.pem 4. インスタンスのパブリック DNS 名を使って、インスタンスにファイルを転送します。たとえ ば、秘密キーファイルの名前が my-key-pair、転送するファイルが SampleFile.txt、イン スタンスのパブリック DNS の名前が ec2-198-51-100-1.compute-1.amazonaws.com の場 合、次のコマンドを使って、ファイルを ec2-user ホームディレクトリにコピーします。 scp -i /path/my-key-pair.pem /path/SampleFile.txt [email protected]:~ Tip Amazon Linux の場合は、ユーザー名は ec2-user です。RHEL の場合は、ユーザー名は ec2-user または root のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu また は root です。Centos の場合は、ユーザー名は centos です。Fedora の場合は、ユー ザー名は ec2-user です。SUSE の場合は、ユーザー名は ec2-user または root のど ちらかです。それ以外の場合で、ec2-user および root が機能しない場合は、ご利用の AMI プロバイダーに確認してください。 以下のようなレスポンスが表示されます。 The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)' can't be established. RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f. Are you sure you want to continue connecting (yes/no)? 5. (IPv6 のみ) 別の方法として、インスタンスの IPv6 アドレスを使用してファイルを転送すること もできます。IPv6 アドレスは、\ でエスケープした角かっこ ([]) で囲む必要があります。 scp -i /path/my-key-pair.pem /path/SampleFile.txt ec2-user@ \[2001:db8:1234:1a00:9691:9503:25ad:1761\]:~ 6. (オプション) セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガー プリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中 間者 (MITM) 」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでくださ い。 7. yes と入力します。 以下のようなレスポンスが表示されます。 Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) to the list of known hosts. Sending file modes: C0644 20 SampleFile.txt Sink: C0644 20 SampleFile.txt SampleFile.txt 100% 00:00 318 20 0.0KB/s Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 Note 「bash: scp: command not found」エラーを受け取った場合は、まず Linux インス タンスに scp をインストールする必要があります。一部のオペレーティングシステムで は、これは openssh-clientsパッケージに含まれます。Amazon ECS-optimized AMI などの Amazon Linux バリアントでは、以下のコマンドを使用して scp をインストール します。 [ec2-user ~]$ sudo yum install -y openssh-clients 8. 逆の方向 (Amazon EC2 インスタンスからローカルコンピュータに) にファイルを転送する場合 は、ホストパラメーターの順番を逆にするだけです。たとえば、SampleFile.txt ファイルを EC2 インスタンスからローカルコンピュータのホームディレクトリに SampleFile2.txt として転送する には、ローカルコンピュータで次のコマンドを実行します。 scp -i /path/my-key-pair.pem [email protected]:~/SampleFile.txt ~/ SampleFile2.txt 9. (IPv6 のみ) 別の方法として、インスタンスの IPv6 アドレスを使用して別の方向にファイルを転 送することもできます。 scp -i /path/my-key-pair.pem ec2-user@ \[2001:db8:1234:1a00:9691:9503:25ad:1761\]:~/SampleFile.txt ~/ SampleFile2.txt PuTTY を使用した Windows から Linux インスタンスへの接続 インスタンスを起動したら、これに接続し、普通のコンピュータと同じように使用できます。 Note インスタンスを起動してから接続できるようになるまでには、数分かかる場合があります。 インスタンスのステータスチェックが正常に終了したことを確認してください。この情報 は、[Instances] ページの [Status Checks] 列で確認できます。 次の手順では、Windows 用の無料の SSH クライアントである PuTTY を使用して、インスタンスに接 続する方法について説明します。インスタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照してください。 前提条件 PuTTY を使用して Linux インスタンスに接続する前に、以下の前提条件を満たしていることを確認し てください。 • PuTTY のインストール PuTTY のダウンロードページから、PuTTY をダウンロードしてインストールします。すでにイン ストールされている旧バージョンの PuTTY がある場合は、最新バージョンをダウンロードするこ とをお勧めします。必ずスイート全部をインストールしてください。 • インスタンスの ID を取得する Amazon EC2 コンソールを使用して、インスタンスの ID を取得できます ([Instance ID] 列を確認 します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。 319 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 • インスタンスのパブリック DNS 名を取得する Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます ([Public DNS (IPv4)] 列を確認します。この列が非表示の場合は、[Show/Hide] アイコンを選択して [Public DNS (IPv4)] を選択します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。 • (IPv6 のみ) インスタンスの IPv6 アドレスを取得する インスタンスに IPv6 アドレスを割り当てた場合は、オプションでパブリック IPv4 アドレスまたは パブリック IPv4 DNS ホスト名でなく IPv6 アドレスを使用して、インスタンスに接続できます。 ローカルコンピュータに IPv6 アドレスがあり、IPv6 を使用するように設定されている必要があ ります。Amazon EC2 コンソールを使用してインスタンスの IPv6 アドレスを取得できます ([IPv6 IPs] フィールドを確認してください)。必要に応じて、describe-instances (AWS CLI) または GetEC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。IPv6 の詳 細については、「IPv6 アドレス (p. 675)」を参照してください。 • プライベートキーを見つける インスタンスの起動時に指定したキーペアの .pem ファイルの完全修飾パスが必要です。 • IP アドレスからインスタンスへのインバウンド SSH トラフィックを有効にする インスタンスに関連付けられているセキュリティグループで、IP アドレスからの受信 SSH トラ フィックが許可されることを確認します。詳細については、「インスタンスへのネットワークアク セスの許可」を参照してください。 Important デフォルトのセキュリティグループのデフォルトでは、受信 SSH トラフィックは許可され ません。 PuTTYgen を使用した秘密キーの変換 PuTTY は、Amazon EC2 によって生成されるプライベートキー形式 (.pem) をネイティブにサポート していません。PuTTY には、キーを必要な PuTTY 形式 (.ppk) に変換できる PuTTYgen と呼ばれる ツールが含まれています。PuTTY を使用してインスタンスへの接続を試みる前に、秘密キーをこの形 式 (.ppk) に変換する必要があります。 プライベートキーの変換方法 1. PuTTYgen を開始します ([Start] メニューで [All Programs] > [PuTTY] > [PuTTYgen] を選択する ことなどにより)。 2. [Type of key to generate] の下で、[SSH-2 RSA] を選択します。 3. [Load] を選択します。デフォルトでは、PuTTYgen には拡張子 .ppk を持つファイルだけが表示 されます。.pem ファイルの場所を特定するには、すべてのタイプのファイルを表示するオプショ ンを選択します。 4. インスタンスの起動時に指定したキーペアの .pem ファイルを選択してから、[Open] を選択しま す。[OK] を選択して、確認ダイアログボックスを閉じます。 5. [Save private key] を選択して、PuTTY が使用できる形式でキーを保存します。PuTTYgen に、 パスフレーズなしでキーを保存することに関する警告が表示されます。[Yes] を選択します。 320 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 Note 秘密キーのパスフレーズには、保護を強化する働きがあります。秘密キーが他者に見つ かっても、パスフレーズがなければキーは使用不可能です。パスフレーズ使用における 欠点は、インスタンスにログオンする、またはファイルをインスタンスにコピーするの に人間の介入が必要となるため、自動化が難しくなることです。 6. キーペアに使用した名前と同じ名前をキーに指定します (例: my-key-pair)。PuTTY は自動的に ファイル拡張子 .ppk を加えます。 プライベートキーが PuTTY で使用するための正しい形式となりました。これで、PuTTY の SSH ク ライアントを使用してインスタンスに接続することができます。 PuTTY セッションの開始 PuTTY を使用して Linux インスタンスに接続するには、次の手順に従います。秘密キーに作 成した .ppk ファイルが必要になります。インスタンスの接続でエラーが発生した場合は、 「Troubleshooting Connecting to Your Instance」を参照してください。 PuTTY セッションの開始方法 1. (オプション) ローカルシステムで (インスタンス上ではありません) 次のコマンドの 1 つ を使用して、インスタンスの RSA キーフィンガープリントを確認できます。これは、 サードパーティのパブリック AMI からインスタンスを起動した場合に、役立ちます。SSH HOST KEY FINGERPRINTS セクションを見つけて、RSA フィンガープリント (たとえば 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f) を書き留め、それをインスタンスの フィンガープリントと比較します。 • get-console-output (AWS CLI) aws ec2 get-console-output --instance-id instance_id Note SSH HOST KEY FINGERPRINTS セクションは、インスタンスの最初の起動後にのみ使用 できます。 2. 3. PuTTY を開始します ([スタート] メニューで [All Programs] > [PuTTY] > [PuTTY] を選択)。 [Category] ペインで [Session] を選択し、次のフィールドに入力します。 a. [Host Name] フィールドで、user_name@public_dns_name を入力します。AMI に対し て、必ず適切なユーザー名を指定してください。以下に例を示します。 • Amazon Linux AMI の場合は、ユーザー名は ec2-user です。 • RHEL AMI の場合は、ユーザー名は ec2-user または root のどちらかです。 • Ubuntu AMI の場合、ユーザー名は ubuntu または root. です。 • Centos AMI の場合、ユーザー名は centos です。 • Fedora AMI の場合、ユーザー名は ec2-user です。 • SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。 b. • それ以外の場合で、ec2-user および root が機能しない場合は、AMI プロバイダーに確 認してください。 (IPv6 のみ) インスタンスの IPv6 アドレスを使用して接続するには、 「user_name@ipv6_address」と入力します。AMI に対して、必ず適切なユーザー名を指 定してください。以下に例を示します。 321 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 • Amazon Linux AMI の場合は、ユーザー名は ec2-user です。 • RHEL AMI の場合は、ユーザー名は ec2-user または root のどちらかです。 • Ubuntu AMI の場合、ユーザー名は ubuntu または root. です。 • Centos AMI の場合、ユーザー名は centos です。 • Fedora AMI の場合、ユーザー名は ec2-user です。 • SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。 • それ以外の場合で、ec2-user および root が機能しない場合は、AMI プロバイダーに確 認してください。 4. c. [Connection type] で [SSH] を選択します。 d. [Port] が 22 であることを確認します。 [Category] ペインで、[Connection]、[SSH] の順に展開し、[Auth] を選択します。次のように入力 します。 a. [Browse] を選択します。 b. キーペア用に生成した .ppk ファイルを選択してから、[Open] を選択します。 c. (オプション) 後でこのセッションを再度開始する場合、将来使用できるようにセッション情 報を保存できます。[Category] ツリーで [Session] を選択し、[Saved Sessions] にセッション の名前を入力して、[Save] を選択します。 d. [Open] を選択して、PuTTY セッションを開始します。 322 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 5. このインスタンスに接続するのが初めての場合は、接続先のホストを信頼するかどうかを尋ねる セキュリティアラートダイアログボックスが表示されます。 6. (オプション) セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガー プリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中 間者 (MITM) 」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでくださ い。 7. [Yes] を選択します。ウィンドウが開き、インスタンスに接続した状態になります。 Note プライベートキーを PuTTY フォーマットに変換するときにパスフレーズを指定した場合 は、インスタンスへのログイン時にそのパスフレーズを指定する必要があります。 インスタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を 参照してください。 PuTTY Secure Copy Client を使用した Linux インスタンスへのファイルの転 送 PuTTY Secure Copy Client (PSCP) は、Windows コンピュータと Linux インスタンスの間でファイル を転送できるようにするコマンドラインツールです。グラフィカルユーザーインターフェイス (GUI) を使用する場合は、WinSCP という名前のオープンソース GUI ツールを使用できます。詳細について は、「WinSCP を使用した Linux インスタンスへのファイルの転送 (p. 324)」を参照してください。 PSCP を使用するには、「PuTTYgen を使用した秘密キーの変換 (p. 320)」で生成したプライベート キーが必要です。また、Linux インスタンスのパブリック DNS アドレスも必要です。 次の例では、ファイル Sample_file.txt を Windows コンピュータの C: ドライブから Linux インス タンス上の /usr/local ディレクトリに転送します。 C:\> pscp -i C:\Keys\my-key-pair.ppk C: \Sample_file.txt user_name@public_dns:/usr/local/Sample_file.txt (IPv6 のみ) 以下の例では、インスタンスの IPv6 アドレスを使用して Sample_file.txt ファイルを 転送します。IPv6 アドレスは角かっこ ([]) で囲む必要があります。 323 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 C:\> pscp -i C:\Keys\my-key-pair.ppk C:\Sample_file.txt user_name@[ipv6address]:/usr/local/Sample_file.txt WinSCP を使用した Linux インスタンスへのファイルの転送 WinSCP は Windows 用の GUI ベースのファイルマネージャで、SFTP、SCP、FTP、および FTPS プロトコルを使って、ファイルをリモートコンピュータにアップロードおよび転送することができま す。WinSCP を使用すると、Windows マシンから Linux インスタンスにファイルをドラッグアンドド ロップしたり、2 つのシステム間でディレクトリ構造全体を同期させることができます。 WinSCP を使用するには、「PuTTYgen を使用した秘密キーの変換 (p. 320)」で生成した秘密キー が必要です。また、Linux インスタンスのパブリック DNS アドレスも必要です。 1. http://winscp.net/eng/download.php から WinSCP をダウンロードしてインストールします。ほと んどの場合、デフォルトのインストールオプションでかまいません。 2. WinSCP を起動します。 3. [WinSCP login] 画面で、インスタンスのパブリック DNS ホスト名またはパブリック IPv4 アドレ スを [Host name] に入力します。 Note (IPv6 のみ) インスタンスの IPv6 アドレスを使用してログインするには、インスタンスの IPv6 アドレスを入力します。 4. [User name] については、AMI のデフォルトユーザー名を入力します。Amazon Linux AMI の場 合、ユーザー名は ec2-user です。Red Hat AMI の場合、ユーザー名は root で、Ubuntu AMI の場合、ユーザー名は ubuntu です。 5. インスタンスのプライベートキーを指定します。[Private key] に対して、秘密キーのパスを 入力するか、[...] ボタンを選択して、ファイルを参照します。WinSCP の新しいバージョンで は、[Advanced] を選択して、高度なサイト設定を開き、[SSH] の [Authentication] を選択して、 [Private key file] 設定を見つける必要があります。 Note WinSCP は PuTTY 秘密キーファイル (.ppk) ファイルを必要とします。PuTTYgen を 使って、.pem セキュリティキーファイルを .ppk フォーマットに変換することができま す。詳細については、「PuTTYgen を使用した秘密キーの変換 (p. 320)」を参照してく ださい。 6. (オプション) 左側のパネルで [Directories] を選択し、ファイルを追加するディレクトリのパスを [Remote directory] に入力します。WinSCP の新しいバージョンでは、[Advanced] を選択して、 高度なサイト設定を開き、[Environment] の [Directories] を選択して、[Remote directory] 設定を 見つける必要があります。 7. [Login] を選択して接続し、[Yes] を選択してホストのフィンガープリントをホストのキャッシュ に追加します。 324 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 8. 接続確立後、接続ウィンドウには Linux インスタンスが右側、ローカルマシンが左側に表示され ます。ローカルマシンからリモートファイルシステムへ、ファイルを直接ドラッグアンドドロッ プすることができます。WinSCP の詳細については、http://winscp.net/eng/docs/start のドキュメ ントを参照してください。 Note 「Cannot execute SCP to start transfer」エラーを受け取った場合は、まず Linux インスタンスに scp をインストールする必要があります。一部のオペレーティン グシステムでは、これは openssh-clientsパッケージに含まれます。Amazon ECSoptimized AMI などの Amazon Linux バリアントでは、以下のコマンドを使用して scp を インストールします。 [ec2-user ~]$ sudo yum install -y openssh-clients MindTerm を使用した Linux インスタンスへの接続 インスタンスを起動したら、これに接続し、普通のコンピュータと同じように使用できます。 Note インスタンスを起動してから接続できるようになるまでには、数分かかる場合があります。 インスタンスのステータスチェックが正常に終了したことを確認してください。この情報 は、[Instances] ページの [Status Checks] 列で確認できます。 次の手順では、Amazon EC2 コンソールを介して、Mindterm を使ってインスタンスに接続する方法に ついて説明します。インスタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照してください。 325 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 接続 Important Chrome ブラウザは NPAPI プラグインをサポートしないため、MindTerm クライアントを実 行できません。詳細については、Chromium の NPAPI deprecation 記事を参照してください。 代わりに、Firefox、Safari、または Internet Explorer 9 以上を使用できます。 前提条件 • Install Java ご使用の Linux コンピュータには通常、Java が組み込まれています。Java が組み込まれていな い場合、ウェブブラウザで Java を有効にするにはどうすればいいですか?Windows または Mac クライアント上で、管理者認証情報を使用してブラウザを実行する必要があります。Linux の場 合、root としてログインしていない場合は、追加のステップが必要になる場合があります。 • ご使用のブラウザで Java を有効にする 手順については、https://java.com/en/download/help/enable_browser.xml を参照してください。 • プライベートキーを見つける インスタンスの起動時に指定したキーペアの .pem ファイルの完全修飾パスが必要です。 • IP アドレスからインスタンスへのインバウンド SSH トラフィックを有効にする インスタンスに関連付けられているセキュリティグループで、IP アドレスからの受信 SSH トラ フィックが許可されることを確認します。詳細については、「インスタンスへのネットワークアク セスの許可」を参照してください。 Important デフォルトのセキュリティグループのデフォルトでは、受信 SSH トラフィックは許可され ません。 MindTerm の起動 MindTerm を使用して、ウェブブラウザによりインスタンスに接続するには 1. Amazon EC2 コンソールのナビゲーションペインで、[Instances] を選択します。 2. インスタンスを選択し、[Connect] を選択します。 3. [A Java SSH client directly from my browser (Java required)] を選択します。 4. Amazon EC2 によって自動的にインスタンスのパブリック DNS 名が検出され、[Public DNS] に 入力されます。また、インスタンスの起動時に指定したキーペアの名前も検出されます。次のよ うに入力し、[Launch SSH Client] を選択します。 a. [User name] に、インスタンスにログインするためのユーザー名を入力します。 Tip Amazon Linux の場合は、ユーザー名は ec2-user です。RHEL の場合は、ユー ザー名は ec2-user または root のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu または root です。Centos の場合は、ユーザー名は centos です。Fedora の場合は、ユーザー名は ec2-user です。SUSE の場合は、ユーザー名は ec2user または root のどちらかです。それ以外の場合で、ec2-user および root が 機能しない場合は、ご利用の AMI プロバイダーに確認してください。 b. [Private key path] に、プライベートキー (.pem) ファイルへの完全修飾パスを入力します (キーペア名を含む)。たとえば、次のように入力します。 C:\KeyPairs\my-key-pair.pem 326 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 停止と起動 c. 5. 6. (オプション) [Store in browser cache] を選択して、ブラウザキャッシュにプライベートキー の場所を保存します。これにより、Amazon EC2 はユーザーがブラウザのキャッシュをクリ アするまで、以降のブラウザセッションでプライベートキーの場所を検出します。 必要に応じて、[Yes] を選択して証明書を信頼し、[Run] を選択して MindTerm クライアントを実 行します。 初めて MindTerm を実行した場合、一連のダイアログボックスにより、ライセンス契約への同 意、ホームディレクトリの設定確認、既知のホストディレクトリの設定確認が求められます。こ れらの設定を確認します。 7. 既知のホストセットにホストを追加するよう求めるダイアログが表示されます。ホストキー情報 をローカルコンピューターに保存しない場合は、[No] を選択します。 8. ウィンドウが開き、インスタンスに接続した状態になります。 Note 前のステップで [No] を選択した場合は、以下のメッセージが表示されます (正常です)。 Verification of server key disabled in this session. インスタンスの停止と起動 インスタンスにルートデバイスとして Amazon EBS ボリュームがある場合、そのインスタンスを停止 して再起動できます。インスタンスにはそのインスタンス ID が保持されますが、概要セクションで述 べられているように変更することはできません。 ユーザーがインスタンスを停止すると、インスタンスはシャットダウンされます。停止されているイ ンスタンスの毎時使用量またはデータ転送料金に対して課金しませんが、Amazon EBS ボリュームの ストレージに対しては課金します。この切り替えを 1 時間以内に複数回行う場合でも、停止されてい るインスタンスを起動するたびに、全体のインスタンス時間に対して課金します。 インスタンスが停止している間、他のボリュームと同様にそのルートボリュームを扱い、変更するこ とができます (ファイルシステムの問題を修復したり、ソフトウェアを更新したりするなど)。停止し ているインスタンスからボリュームを接続解除し、それを実行中のインスタンスに接続して、変更を 行い、実行中のインスタンスから接続解除して、停止しているインスタンスに再接続します。インス タンスのブロックデバイスマッピングにルートデバイスとして指定されたストレージデバイス名を使 用して、ボリュームを接続解除していることを確認します。 インスタンスが必要なくなったら、終了することができます。インスタンスの状態が shuttingdown または terminated に変わったら、そのインスタンスへの課金は停止します。詳細について は、「インスタンスの終了 (p. 333)」を参照してください。 目次 • 概要 (p. 327) • インスタンスの停止と起動 (p. 328) • 停止されているインスタンスの変更 (p. 330) • トラブルシューティング (p. 330) 概要 停止できるのは Amazon EBS-Backed インスタンスだけです。インスタンスのルートデバイスタイプ を確認するには、インスタンスを記述し、そのルートボリュームのデバイスタイプが ebs (Amazon EBS-Backed インスタンス) か instance store (Instance store-Backed インスタンス) かをチェック します。詳細については、「AMI のルートデバイスタイプの判別 (p. 78)」を参照してください。 実行中のインスタンスを停止すると、次の処理が実行されます。 327 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 停止と起動 • インスタンスは正常なシャットダウンを実行し、実行を停止します (ステータスは stopping、次に stopped に変わります)。 • Amazon EBS ボリュームはインスタンスに接続されたままとなり、そのデータは保持されます。 • ホストコンピュータの RAM またはホストコンピュータのインスタンスストアボリュームに保存さ れたデータはなくなります。 • 殆どの場合、インスタンスは基盤となる新しいホストコンピュータが起動したときに移行されま す。 • EC2-Classic: インスタンスの停止時にインスタンスのパブリックおよびプライベート IPv4 アドレス を解放し、インスタンスの再起動時に新しい IPv4 アドレスを割り当てます。 EC2-VPC: インスタンスの停止および再起動時に、インスタンスにはプライベート IPv4 アドレスと IPv6 アドレスが保持されます。インスタンスの再起動時に、パブリック IPv4 アドレスを解放し、 新しいアドレスを割り当てます。 • EC2-Classic: インスタンスに関連付けられている Elastic IP アドレスの関連付けを解除します。イ ンスタンスに関連付けられていない Elastic IP アドレスに対して課金されます。インスタンスを再 起動すると、インスタンスと Elastic IP アドレスを関連付ける必要があります。これを自動的に行 うことはありません。 EC2-VPC: インスタンスには関連付けられた Elastic IP アドレスが保持されます。停止されているイ ンスタンスに関連付けられた Elastic IP アドレスに対して課金されます。 • Windows インスタンスを停止して起動すると、アタッチされた Amazon EBS ボリュームのドライ ブ文字の変更などのタスクが EC2Config サービスによりインスタンスで実行されます。これらのデ フォルトおよび変更方法については、「 EC2Config サービスを使用した Windows インスタンスの 設定」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を参照してください。 • インスタンスをロードバランサーに登録した場合、インスタンスを停止して再起動すると、ロード バランサーが、そのインスタンスに対してトラフィックのルート割り当てを行えなくなる可能性 があります。インスタンスを停止したら、ロードバランサーにおけるそのインスタンスの登録は一 度解除し、インスタンスの起動後に再度登録する必要があります。詳細については、Classic Load Balancer ガイドの「 Classic Load Balancer での EC2 インスタンスの登録と登録解除」を参照して ください。 • インスタンスが Auto Scaling グループにある場合、Auto Scaling サービスはインスタンスを異常と 判断して停止し、代わりのインスタンスを起動することがあります。 詳細については、「Health Checks for Auto Scaling Instances」 (Auto Scaling ユーザーガイド) を参照してください。 • ClassicLink インスタンスを停止すると、今までリンクされていた VPC とのリンクが解除されま す。インスタンスを再起動した後に再び VPC にリンクする必要があります。ClassicLink の詳細に ついては、「ClassicLink (p. 650)」を参照してください。 詳細については、「再起動、停止、終了の違い (p. 301)」を参照してください。 以下のインスタンスの属性は停止されると、変更できます。 • インスタンスタイプ • ユーザーデータ • Kernel • RAM ディスク インスタンスの実行中にこれらの属性を変更しようとすると、Amazon EC2 が IncorrectInstanceState エラーを返します。 インスタンスの停止と起動 コンソールまたはコマンドラインを使用して、Amazon EBS-Backed インスタンスを起動および停止 できます。 328 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 停止と起動 デフォルトでは、Amazon EBS-backed インスタンスからシャットダウンを開始すると (shutdown、halt、poweroff コマンドを使用)、インスタンスが停止します。この動作を変更して、イ ンスタンスの停止ではなく終了させることができます。詳細については、「インスタンスによって起 動されたシャットダウン動作の変更 (p. 336)」を参照してください。 コンソールを使用して Amazon EBS-Backed インスタンスを停止および起動するには 1. ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。 2. [EC2-Classic] インスタンスに関連付けられた Elastic IP アドレスがある場合は、詳細ペインに表 示された Elastic IP アドレスとインスタンス ID を書き留めます。 3. [Actions] を選択して [Instance State] を選択し、[Stop] を選択します。[Stop] が無効になっている 場合は、インスタンスが既に停止しているか、またはルートボリュームがインスタンスストアボ リュームです。 Warning インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されま す。したがって、インスタンスストアボリューム上に維持したいデータがある場合は、 必ず永続的ストレージにバックアップしてください。 4. 確認ダイアログボックスで [Yes, Stop] を選択します。インスタンスが停止するまで、数分かかる 場合があります。 [EC2-Classic] インスタンスの状態が stopped になると、詳細ペインの [Elastic IP]、[Public DNS (IPv4)]、[Private DNS]、[Private IPs] の各フィールドは空白になり、古い値がインスタンスと関 連付けられなくなったことを示します。 5. インスタンスが停止されている間、特定のインスタンス属性を変更できます。詳細については、 「停止されているインスタンスの変更 (p. 330)」を参照してください。 6. 停止されているインスタンスを再起動するには、インスタンスを選択し、[Actions] を選択して [Instance State] を選択した後、[Start] を選択します。 7. 確認ダイアログボックスで [Yes, Start] を選択します。インスタンスが running 状態になるま で、数分かかる場合があります。 [EC2-Classic] インスタンスの状態が running になると、詳細ペインの [Public DNS (IPv4)]、 [Private DNS]、[Private IPs] の各フィールドには、インスタンスに割り当てた新しい値が表示さ れます。 8. [EC2-Classic] インスタンスに関連する Elastic IP アドレスがある場合は、次のようにして再び関 連付ける必要があります。 a. ナビゲーションペインで [Elastic IPs] を選択します。 b. インスタンスを停止する前に書き留めた Elastic IP アドレスを選択します。 c. [Actions] を選択し、次に [Associate address] を選択します。 d. インスタンスを停止する前に書き留めたインスタンス ID を選択し、[Associate] を選択しま す。 コマンドラインを使用して Amazon EBS-Backed インスタンスを停止および起動するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • stop-instances および start-instances (AWS CLI) • Stop-EC2Instance および Start-EC2Instance (AWS Tools for Windows PowerShell) 329 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 再起動 停止されているインスタンスの変更 AWS マネジメントコンソールまたはコマンドラインインターフェイスを使用して、停止されているイ ンスタンスのインスタンスタイプ、ユーザーデータ、および EBS 最適化属性を変更できます。AWS マネジメントコンソールを使用して、DeleteOnTermination、カーネル、または RAM ディスクの 属性を変更することはできません。 インスタンス属性を変更するには • インスタンスタイプを変更するには、「インスタンスのサイズ変更 (p. 200)」を参照してくださ い。 • インスタンスのユーザーデータを変更するには、「ユーザーデータを使用してインスタンスを設定 する (p. 371)」を参照してください。 • インスタンスの EBS 最適化を有効または無効にするには、「EBS 最適化の変更 (p. 816)」を参照 してください。 • インスタンスのルートボリュームの DeleteOnTermination 属性を変更するには、「実行中のイ ンスタンスのブロックデバイスマッピングの更新 (p. 874)」を参照してください。 コマンドラインを使用してインスタンス属性を変更するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • modify-instance-attribute (AWS CLI) • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell) トラブルシューティング Amazon EBS-Backed インスタンスを停止し、stopping 状態に "stuck" が表示されている場合、イン スタンスを強制終了できます。詳細については、「インスタンスの停止に関するトラブルシューティ ング (p. 921)」 を参照してください。 インスタンスの再起動 インスタンスの再起動は、オペレーティングシステムの再起動と同等です。ほとんどの場合、インス タンスの再起動には数分しかかかりません。インスタンスを再起動すると、インスタンスは同じ物理 ホスト上で保持されるため、インスタンスのパブリック DNS 名 (IPv4)、プライベート IPv4 アドレ ス、IPv6 アドレス (該当する場合)、およびインスタンスストアボリューム上のすべてのデータが保持 されます。 インスタンスを再起動しても、インスタンスの停止と再起動とは異なり、新しいインスタンスの課金 時間は開始されません。 再起動を必要とする更新の適用など、必要なメンテナンスのために、インスタンスの再起動を予定 する場合があります。ユーザーが操作する必要はありません。予定されている時間帯に自動的に行 われる再起動まで待つことをお勧めします。詳細については、「インスタンスの予定されたイベン ト (p. 530)」を参照してください。 インスタンスからオペレーティングシステムの再起動コマンドを実行する代わりに、Amazon EC2 を 使ってインスタンスを再起動することをお勧めします。Amazon EC2 を使用したインスタンスの再起 動では、インスタンスが 4 分以内に正常にシャットダウンを行わない場合、ハードリブートが実行さ れます。AWS CloudTrail を使用した場合は、Amazon EC2 を使用してインスタンスを再起動すると、 インスタンスがいつ再起動されたかについて API レコードも作成されます。 330 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リタイア コンソールを使用してインスタンスを再起動するには 1. Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで、[インスタンス] を選択します。 インスタンスを選択し、[Actions]、[Instance State]、[Reboot] の順に選択します。 4. 確認を求めるメッセージが表示されたら、[Yes, Reboot] を選択します。 コマンドラインを使用してインスタンスを再起動するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • reboot-instances (AWS CLI) • Restart-EC2Instance (AWS Tools for Windows PowerShell) インスタンスのリタイア インスタンスをホストしている基盤のハードウェアで回復不可能な障害が検出されると、AWS によっ てインスタンスのリタイヤが予定されます。予定されたリタイヤ日になると、インスタンスは AWS によって停止または終了されます。インスタンスのルートデバイスが Amazon EBS ボリュームである 場合、インスタンスは停止されますが、その後いつでも再び起動できます。停止したインスタンスを 開始すると、新しいハードウェアに移行されます。インスタンスのルートデバイスがインスタンスス トアボリュームである場合、インスタンスは終了し、再び使用することはできません。 トピック • リタイアが予定されているインスタンスの特定 (p. 331) • リタイアが予定されているインスタンスの操作 (p. 332) インスタンスイベントのタイプの詳細については、「インスタンスの予定されたイベント (p. 530)」 を参照してください。 リタイアが予定されているインスタンスの特定 インスタンスのリタイアが予定された場合、イベントの前に、当該のインスタンス ID とリタイア日 を記載したメールが送信されます。このメールは、アカウントに関連付けられているアドレスに送信 されます。これは、AWS マネジメントコンソール へのログインに使用するメールアドレスと同じで す。定期的に確認しないメールアカウントを使用している場合は、Amazon EC2 コンソールまたはコ マンドラインを使用して、いずれかのインスタンスにリタイアが予定されているかどうかを判断でき ます。アカウントの連絡先情報を更新するには、[Account Settings] ページに移動します。 コンソールを使用してリタイアが予定されているインスタンスを特定するには 1. Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[EC2 Dashboard] を選択します。[Scheduled Events] に、Amazon EC2 インスタンスおよびボリュームに関連付けられたイベントが表示されます。 331 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リタイア 3. インスタンスに予定されたイベントが表示されている場合は、リージョン名の下のリンクを選択 して [Events] ページにアクセスします。 4. [Events] ページには、すべてのリソースとそれに関連付けられたイベントが一覧表示されます。 リタイアが予定されているインスタンスを表示するには、1 つ目のフィルタリストから [Instance resources] を選択し、2 つ目のフィルタリストから [Instance retirement] を選択します。 フィルタの結果にインスタンスのリタイアが予定されていることが表示されたら、当該のインス タンスを選択し、詳細ペインの [Start time] フィールドの日時を書き留めます。これがインスタン スのリタイア日です。 5. コマンドラインを使用してリタイアが予定されているインスタンスを特定するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-instance-status (AWS CLI) • Get-EC2InstanceStatus (AWS Tools for Windows PowerShell) リタイアが予定されているインスタンスの操作 インスタンスのリタイアが予定されているときに実行できるアクションはいくつかあります。実行す るアクションは、インスタンスのルートデバイスが Amazon EBS ボリュームであるかインスタンス ストアボリュームであるかによって異なります。インスタンスのルートデバイスタイプが不明な場合 は、Amazon EC2 コンソールまたはコマンドラインを使用して調べることができます。 インスタンスのルートデバイスタイプの判別 コンソールを使用してインスタンスのルートデバイスタイプを判別するには 1. ナビゲーションペインの [Events] を選択します。前述の手順「リタイアが予定されているインス タンスの特定 (p. 331)」で説明したように、フィルタリストを使用してリタイアが予定されてい るインスタンスを特定します。 2. 3. [Resource ID] 列でインスタンス ID を選択すると、[Instances] ページに移動します。 インスタンスを選択し、[Description] タブで [Root device type] フィールドを探します。この値が ebs の場合、インスタンスは EBS-Backed です。この値が instance-storeの場合、インスタ ンスは、Instance Store-Backed です。 コマンドラインを使用してインスタンスのルートデバイスタイプを判別するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-instances (AWS CLI) • Get-EC2Instance (AWS Tools for Windows PowerShell) リタイアが予定されているインスタンスの管理 リタイアが予定されているインスタンスのデータを維持するには、以下に挙げるいずれかのアクショ ンを実行します。予期しないダウンタイムやデータ消失を防ぐために、インスタンスのリタイア日よ り前にこのアクションを実行することが重要です。 Warning Instance Store-Backed インスタンスの場合、リタイア日を過ぎるとインスタンスが終了し、 インスタンスやインスタンスに格納されていたデータを復元できなくなります。インスタン 332 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 削除 スストアボリュームのデータは、インスタンスのルートデバイスにかかわらず、EBS-Backed インスタンスにアタッチされている場合でも、インスタンスがリタイアされると失われま す。 インスタンスのルート デバイスタイプ アクション EBS 予定されるリタイア日を待ちます - その日になるとインスタンスが停止し ます - または、リタイア日の前に自らインスタンスを停止します。インス タンスはいつでも再び開始することができます。インスタンスの停止と 開始、インスタンスを停止したときに予想される影響 (インスタンスに関 連付けられたパブリック IP アドレス、プライベート IP アドレス、および Elastic IP アドレスへの影響など) の詳細については、「インスタンスの停 止と起動 (p. 327)」を参照してください。 EBS インスタンスから EBS-Backed AMI を作成し、代替インスタンスを起 動します。詳細については、「Amazon EBS-Backed Linux AMI の作 成 (p. 96)」を参照してください。 インスタンスストア AMI ツールを使用してインスタンスから Instance-Store Backed AMI を 作成し、代替インスタンスを起動します。詳細については、「Instance Store-Backed Linux AMI の作成 (p. 100)」を参照してください。 インスタンスストア データを EBS ボリュームに転送し、ボリュームのスナップショットを作 成し、スナップショットから AMI を作成することによって、EBS-Backed インスタンスをインスタンスに変換します。新しい AMI から代替インス タンスを起動できます。詳細については、「Instance Store-Backed AMI を Amazon EBS-Backed AMI に変換する (p. 137)」を参照してください。 インスタンスの終了 インスタンスが必要なくなったら、終了することができます。インスタンスの状態が shuttingdown または terminated に変わったら、そのインスタンスへの課金は停止します。 インスタンスを削除した後に、接続または再起動することはできません。ただし、同じ AMI から別 のインスタンスを起動することができます。インスタンスを停止および再起動する場合は、「インス タンスの停止と起動 (p. 327)」を参照してください。詳細については、「再起動、停止、終了の違 い (p. 301)」を参照してください。 目次 • インスタンスの終了 (p. 333) • インスタンスを終了する (p. 334) • インスタンスの終了保護の有効化 (p. 334) • インスタンスによって起動されたシャットダウン動作の変更 (p. 336) • インスタンスの終了で Amazon EBS ボリュームを保持する (p. 337) • トラブルシューティング (p. 338) インスタンスの終了 インスタンスの終了後、インスタンスはしばらくの間コンソールに表示されたままですが、エントリ は自動的に削除されます。終了したインスタンスのエントリを自分で削除することはできません。イ ンスタンスを削除すると、タグやボリュームなどのリソースはインスタンスから徐々に関連付けが解 除されるため、しばらくすると削除されたインスタンスでこれらのリソースが表示されなくなる可能 性があります。 333 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 削除 インスタンスが終了すると、そのインスタンスに関連付けられたすべてのインスタンスストアボ リュームのデータが削除されます。 デフォルトでは、インスタンスの終了時に Amazon EBS のルートデバイスボリュームが自動的に削 除されます。ただし、起動時にアタッチした追加の EBS ボリューム、または既存のインスタンス にアタッチした EBS ボリュームがある場合、デフォルトでは、インスタンスの終了後もそれらのボ リュームは保持されます。この動作はボリュームの DeleteOnTermination 属性によって制御され ますが、変更できます。詳細については、「インスタンスの終了で Amazon EBS ボリュームを保持す る (p. 337)」を参照してください。 AWS マネジメントコンソール、CLI、および API を使用している他のユーザーによって、誤ってイン スタンスを終了されないようにできます。この機能は、Amazon EC2 instance store-backed インスタ ンスと Amazon EBS-backed インスタンスの両方で使用できます。各インスタンスには、デフォルト 値の false である DisableApiTermination 属性があります (インスタンスは Amazon EC2 によっ て終了される場合があります)。インスタンスの実行中または停止中に、このインスタンス属性を変更 できます (Amazon EBS-backed インスタンスの場合)。詳細については、「インスタンスの終了保護 の有効化 (p. 334)」を参照してください。 システムをシャットダウンするオペレーティングシステムコマンドを使用して、インスタンスから シャットダウンが開始されたときに、インスタンスを停止または終了するかどうかを制御できます。 詳細については、「インスタンスによって起動されたシャットダウン動作の変更 (p. 336)」を参照し てください。 インスタンスの終了時にスクリプトを実行した場合、シャットダウンスクリプトが実行されることを 保証する方法がないため、異常な終了が発生する場合があります。Amazon EC2 はインスタンスを正 常にシャットダウンして、システムシャットダウンスクリプトが実行されるように試みますが、特定 のイベント (ハードウェア障害など) ではシステムシャットダウンスクリプトが実行されないことがあ ります。 インスタンスを終了する インスタンスは AWS マネジメントコンソール またはコマンドラインを使用して終了できます。 コンソールを使用してインスタンスを終了するには 1. 2. 3. インスタンスを終了する前に、終了時に Amazon EBS ボリュームが削除され、必要な任意のデー タをインスタンスストアボリュームから Amazon EBS または Amazon S3 にコピーしていること を確認して、データが失われないことを確認します。 https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで [Instances] を選択します。 4. 5. インスタンスを選択し、[Actions]、[Instance State]、[Terminate] の順に選択します。 確認を求めるメッセージが表示されたら、[Yes, Terminate] を選択します。 コマンドラインを使用してインスタンスを終了するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • terminate-instances (AWS CLI) • Stop-EC2Instance (AWS Tools for Windows PowerShell) インスタンスの終了保護の有効化 デフォルトでは、Amazon EC2 コンソール、コマンドラインインターフェイス、または API を使用し て、インスタンスを終了できます。Amazon EC2 を使用してインスタンスを誤って終了できないよう にするには、インスタンスの終了保護を有効にできます。DisableApiTermination 属性は、インス タンスがコンソール、CLI、または API を使用して終了できるかどうかを制御します。デフォルトで 334 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 削除 は、インスタンスの終了保護は無効になっています。インスタンスが実行中またはインスタンスが停 止中に、インスタンスを起動する際に、この属性の値を設定できます (Amazon EBS-backed インスタ ンスの場合)。 InstanceInitiatedShutdownBehavior 属性が設定された場合、DisableApiTermination 属性 はインスタンスからシャットダウンを開始して (システムシャットダウン用のオペレーティングシステ ムコマンドを使用)、インスタンスを終了できます。詳細については、「インスタンスによって起動さ れたシャットダウン動作の変更 (p. 336)」を参照してください。 制限 スポットインスタンスの終了保護を有効にすることはできません— スポット価格が入札価格を超える と、スポットインスタンスが終了します。 しかし、スポットインスタンスの中断を処理するようにア プリケーションを準備できます。 詳細については、「スポットインスタンスの中断 (p. 278)」を参照 してください。 DisableApiTermination 属性では、Auto Scaling によるインスタンスの終了は防止されませ ん。Auto Scaling グループ内のインスタンスについては、Amazon EC2 の終了の防止ではなく Auto Scaling の次の機能を使用します。 • Auto Scaling グループ内のインスタンスがスケールイン時に終了されないようにするには、インス タンスの保護を使用します。詳細については、「インスタンスの保護」 (Auto Scaling ユーザーガイ ド) を参照してください。 • Auto Scaling による異常なインスタンスの終了を防止するには、ReplaceUnhealthy プロセスを 停止します。詳細については、「Auto Scaling プロセスの停止と再開」 (Auto Scaling ユーザーガイ ド) を参照してください。 • Auto Scaling によってどのインスタンスを最初に終了するかを指定するには、終了ポリシーを選択 します。詳細については、「終了ポリシーのカスタマイズ」 (Auto Scaling ユーザーガイド) を参照 してください。 起動時にインスタンスに対する終了保護を有効にするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ダッシュボードで、[Launch Instance] を選択し、ウィザードの指示にしたがいます。 3. [Configure Instance Details] ページで、[Enable termination protection] チェックボックスをオンに します。 実行中または停止中のインスタンスの終了保護を有効にするには 1. インスタンスを選択し、[Actions]、[Instance Settings] を選択した後、[Change Termination Protection] を選択します。 2. [Yes, Enable] を選択します。 実行中または停止中のインスタンスの終了保護を無効にするには 1. インスタンスを選択し、[Actions] を選択して [Instance Settings] を選択した後、[Change Termination Protection] を選択します。 2. [Yes, Disable] を選択します。 コマンドラインを使用して終了保護を有効または無効にするには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • modify-instance-attribute (AWS CLI) 335 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 削除 • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell) インスタンスによって起動されたシャットダウン動作の変更 デフォルトでは、Amazon EBS-Backed インスタンスからシャットダウンを開始すると (shutdown、halt、poweroff などのコマンドを使用)、インスタンスが停止します。代わりに終了でき るように、インスタンスの InstanceInitiatedShutdownBehavior 属性を使用して、この動作を 変更できます。インスタンスの実行中または停止中に、この属性を更新できます。 instance store-backed インスタンスは終了できますが、停止できない点に注意してください。 InstanceInitiatedShutdownBehavior 属性は Amazon EC2 コンソールまたはコマンドライ ンを使用して更新できます。 InstanceInitiatedShutdownBehavior 属性は、インスタンス自 体のオペレーティングシステムからシャットダウンを実行する場合にのみ適用されます。これは StopInstances API または Amazon EC2 コンソールを使用してインスタンスを停止する場合には適 用されません。 コンソールを使用してインスタンスのシャットダウン動作を変更するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択し、[Actions]、[Instance Settings] を選択した後、[Change Shutdown Behavior] を選択します。 現在の動作は既に選択されています。 4. 動作を変更するには、[Shutdown behavior] リストからオプションを選択し、[Apply] を選択しま す。 コマンドラインを使用してインスタンスのシャットダウン動作を変更するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • modify-instance-attribute (AWS CLI) • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell) 336 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 削除 インスタンスの終了で Amazon EBS ボリュームを保持する インスタンスが終了すると、Amazon EC2 はアタッチされた各 Amazon EBS ボリュームの DeleteOnTermination 属性の値を使用して、ボリュームを保持するか削除するかを決定します。 デフォルトでは、インスタンスのルートボリュームの DeletionOnTermination 属性は true に設 定されます。したがって、デフォルトではインスタンスの終了時に、インスタンスのルートボリュー ムが削除されます。 デフォルトでは、インスタンスに EBS ボリュームをアタッチするときは、DeleteOnTermination 属性が false に設定されます。したがって、デフォルトではこれらのボリュームが保持されます。イ ンスタンスが終了したら、保持されたボリュームのスナップショットを作成するか、別のインスタン スにアタッチできます。 使用中の EBS ボリュームの DeleteOnTermination 属性の値を確認するには、インスタンスのブ ロックデバイスマッピングを参照します。詳細については、「インスタンスブロックデバイスマッピ ングの EBS ボリュームの表示 (p. 874)」を参照してください。 インスタンスの起動時またはインスタンスの実行中に、ボリュームの DeleteOnTermination 属性 の値を変更することができます。 例 • コンソールを使用した起動時のルートボリュームの永続的な変更 (p. 337) • コマンドラインを使用した起動時のルートボリュームの永続的な変更 (p. 337) • コマンドラインを使用して実行中のインスタンスのルートボリュームが存続するように変更す る (p. 338) コンソールを使用した起動時のルートボリュームの永続的な変更 コンソールを使用して、インスタンスの起動時に DeleteOnTermination 属性を変更できます。実 行中のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。 コンソールを使用して、起動時にインスタンスのルートボリュームが存続するように変更する には 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. コンソールダッシュボードで、[Launch Instance] を選択します。 3. [Choose an Amazon Machine Image (AMI)] ページで、AMI を選択し、[Select] を選択します。 4. ウィザードにしたがって [Choose an Instance Type] ページと [Configure Instance Details] ページ を設定します。 5. [Add Storage] ページで、ルートボリュームの [Delete On Termination] チェックボックスの選択を 解除します。 6. ウィザードの残りのページを完了した後、[Launch ] を選択します。 インスタンスの詳細ペインでルートデバイスボリュームの詳細を表示することにより、設定を確認で きます。[Block devices] の隣にあるルートデバイスボリュームのエントリをクリックします。デフォ ルトでは、[Delete on termination] は [True] です。デフォルトの動作を変更した場合は、[Delete on termination] が [False] になっています。 コマンドラインを使用した起動時のルートボリュームの永続的な変更 EBS-backed インスタンスの起動時に、次のコマンドのいずれかを使用して、ルートデバイスボ リュームが存続するように変更することができます。これらのコマンドラインインターフェイスの詳 細については、「Amazon EC2 へのアクセス (p. 3)」を参照してください。 337 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 削除 • run-instances (AWS CLI) • New-EC2Instance (AWS Tools for Windows PowerShell) たとえば、run-instances コマンドに次のオプションを追加します。 --block-device-mappings file://mapping.json mapping.json で以下を指定します。 [ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false, "SnapshotId": "snap-1234567890abcdef0", "VolumeType": "gp2" } } ] コマンドラインを使用して実行中のインスタンスのルートボリュームが存続す るように変更する 次のいずれかのコマンドを使用して、実行中の EBS-backed インスタンスのルートデバイスボリュー ムを永続化するように変更できます。これらのコマンドラインインターフェイスの詳細については、 「Amazon EC2 へのアクセス (p. 3)」を参照してください。 • modify-instance-attribute (AWS CLI) • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell) たとえば、以下の コマンドを使用します。 $ aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 -block-device-mappings file://mapping.json mapping.json で以下を指定します。 [ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ] トラブルシューティング インスタンスが通常より長く shutting-down 状態になっている場合、最終的に Amazon EC2 サービ ス内の自動プロセスによってクリーンアップ (終了) されます。詳細については、「インスタンスの終 了 (シャットダウン) のトラブルシューティング (p. 922)」を参照してください。 338 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 復旧 インスタンスの復旧 Amazon EC2 インスタンスをモニタリングし、基になるハードウェア障害または AWS による修復を 必要とする問題によりインスタンスが正常に機能しなくなった場合に、自動的にインスタンスを復旧 する Amazon CloudWatch アラームを作成できます。終了したインスタンスは復旧できません。復旧 されたインスタンスは、インスタンス ID、プライベート IP アドレス、Elastic IP アドレス、すべて のインスタンスメタデータを含め、元のインスタンスと同じです。インスタンスを復旧する Amazon CloudWatch アラームの使用の詳細については、「インスタンスを停止、終了、再起動、または復旧 するアラームを作成する (p. 551)」を参照してください。 インスタンスの復旧失敗の問題をトラブ ルシューティングするには、「インスタンスの復旧失敗のトラブルシューティング」 (Linux インスタ ンス用 Amazon EC2 ユーザーガイド) を参照してください。 StatusCheckFailed_System アラームがトリガーされ、復旧アクションが開始されると、アラーム を作成したときに選択し、復旧アクションに関連付けた Amazon SNS トピックによって通知されま す。インスタンスを復旧する際、インスタンスを再起動するときにインスタンスは移行され、メモリ 内にあるデータは失われます。プロセスが完了すると、情報はアラームに設定された SNS トピックに 発行されます。 この SNS トピックにサブスクライブされるすべてのユーザーは、復旧処理のステー タスと、それ以降の手順を含むメールの通知を受け取ります。 復旧されたインスタンスでインスタン スが再起動されたことがわかります。 システムステータスチェックの失敗の原因となる問題には、次のようなものがあります。 • ネットワーク接続の喪失 • システム電源の喪失 • 物理ホストのソフトウェアの問題 • 物理ホストのハードウェアの問題 基盤となるハードウェアの性能低下に伴ってインスタンスが停止またはリタイアするよう AWS で予 定されている場合にも、復旧アクションがトリガーされることがあります。予定されたイベントの詳 細については、「インスタンスの予定されたイベント (p. 530)」を参照してください。 復旧アクションは、次のような特性を持つインスタンスでのみサポートされています。 • C3、C4、M3、M4、R3、R4、T2、または X1 インスタンスタイプを使用している • VPC (EC2-Classic 以外) で実行されている • 共有テナンシーを使用している (テナンシー属性が default に設定されている) • 暗号化された EBS ボリューム (インスタンスストアボリュームではない) を含む EBS ボリュームを 使用している インスタンスにパブリック IPv4 アドレスが割り当てられている場合、そのパブリック IPv4 アドレス は復旧後も保持されます。 Amazon Linux インスタンスを設定する Amazon Linux インスタンスを正常に起動し、ログインしたら、変更できます。特定のアプリケーショ ンのニーズを満たすためにインスタンスを設定するには、多くの方法があります。ここでは、初めて 作業する場合の一般的なタスクについて説明します。 目次 • 一般的な設定シナリオ (p. 340) • ソフトウェアの管理 (Linux インスタンスの場合) (p. 340) • Linux インスタンスでのユーザーアカウントの管理 (p. 349) 339 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 一般的な設定シナリオ • EC2 インスタンスタイプのプロセッサのステート制御 (p. 351) • • • • • Linux インスタンスの時刻の設定 (p. 356) Linux インスタンスのホスト名の変更 (p. 359) Linux インスタンスの動的な DNS のセットアップ (p. 362) Linux インスタンスでの起動時のコマンドの実行 (p. 363) インスタンスメタデータとユーザーデータ (p. 367) 一般的な設定シナリオ Amazon Linux のベースのディストリビューションには、基本的なサーバー操作に必要なソフトウェ アパッケージとユーティリティが数多く含まれています。ただし、さまざまなソフトウェアリポジト リでさらに多くのソフトウェアパッケージを利用できます。また、ソースコードから、さらに多くの パッケージソースコードを作成できます。これらの場所からソフトウェアをインストールし、作成す る方法についての詳細は、ソフトウェアの管理 (Linux インスタンスの場合) (p. 340) を参照してく ださい。 Amazon Linux インスタンスには、ec2-user アカウントが事前設定されていますが、スーパーユー ザー権限を持たない他のユーザーアカウントを追加することがあります。ユーザーアカウントの追加 と削除についての詳細は、Linux インスタンスでのユーザーアカウントの管理 (p. 349) を参照してく ださい。 Amazon Linux インスタンスのデフォルトの時間設定では、ネットワークタイムプロトコルを利用 し、システム時間をインスタンスに設定します。デフォルトの時間帯は UTC です。インスタンスの 時間帯の設定または独自のタイムサーバーの利用についての詳細は、Linux インスタンスの時刻の設 定 (p. 356) を参照してください。 お客様がネットワークを所有し、それにドメイン名を登録している場合、インスタンスのホスト名を 変更して、そのドメインに含まれる一部としてインスタンスを識別できます。また、システムプロ ンプトを変更して、より意味のある名前を表示することもできます。ホスト名設定を変更する必要は ありません。詳細については、「Linux インスタンスのホスト名の変更 (p. 359)」を参照してくだ さい。動的 DNS サービスプロバイダを使用するようにインスタンスを設定できます。詳細について は、「Linux インスタンスの動的な DNS のセットアップ (p. 362)」を参照してください。 Amazon EC2 でインスタンスを起動するとき、起動後にそのインスタンスにユーザーデータを渡し、 一般的な設定タスクを実行したり、スクリプトを実行したりできます。2 つのタイプのユーザーデー タを Amazon EC2 に渡すことができます。cloud-init ディレクティブとシェルスクリプトです。詳 細については、「Linux インスタンスでの起動時のコマンドの実行 (p. 363)」を参照してください。 ソフトウェアの管理 (Linux インスタンスの場合) Amazon Linux のベースのディストリビューションには、基本的なサーバー操作に必要なソフトウェ アパッケージとユーティリティが数多く含まれています。ただし、さまざまなソフトウェアリポジト リでさらに多くのソフトウェアパッケージを利用できます。また、ソースコードから、さらに多くの パッケージソースコードを作成できます。 目次 • インスタンスソフトウェアの更新 (p. 341) • • • • リポジトリの追加 (p. 345) ソフトウェアパッケージを見つける (p. 346) ソフトウェアパッケージのインストール (p. 347) ソフトウェアのコンパイル準備 (p. 348) ソフトウェアを最新の状態に維持することが重要です。Linux ディストリビューションの多くの パッケージは頻繁に更新されます。これにより、バグが修正され、機能が追加されて、セキュリ 340 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ソフトウェアの管理 ティ上の弱点に対する防御措置が行われます。詳細については、「インスタンスソフトウェアの更 新 (p. 341)」を参照してください。 デフォルトで、Amazon Linux インスタンスは、amzn-main と amzn-updates の 2 つのリポジトリ を有効にして起動します。これらのリポジトリには、Amazon Web Services が更新するさまざまな パッケージがありますが、別のリポジトリに含まれるパッケージをインストールしたい場合があるか もしれません。詳細については、「リポジトリの追加 (p. 345)」を参照してください。有効なリポジ トリでパッケージを探す方法については、ソフトウェアパッケージを見つける (p. 346) を参照して ください。Amazon Linux インスタンスにソフトウェアをインストールする方法については、ソフト ウェアパッケージのインストール (p. 347) を参照してください。 リポジトリに保管されているソフトウェアパッケージで、すべてのソフトウェアが利用できるわけで はありません。一部のソフトウェアは、そのソースコードからインスタンスでコンパイルする必要が あります。詳細については、「ソフトウェアのコンパイル準備 (p. 348)」を参照してください。 Amazon Linux インスタンスは、yum パッケージマネージャを利用してソフトウェアを管理しま す。yum パッケージマネージャはソフトウェアをインストール、削除、更新し、各パッケージのす べての依存関係を管理できます。Ubuntu のような Debian ベースの Linux ディストリビューション は、apt-get コマンドと dpkg パッケージマネージャを使用するため、次のセクションの yum の例は、 このようなディストリビューションには該当しません。 インスタンスソフトウェアの更新 ソフトウェアを最新の状態に維持することが重要です。Linux ディストリビューションの多くのパッ ケージは頻繁に更新されます。これにより、バグが修正され、機能が追加されて、セキュリティ上 の弱点に対する防御措置が行われます。最初に Amazon Linux インスタンスを起動して接続するとき に、メッセージが表示され、セキュリティ上の目的からソフトウェアパッケージを更新するように求 められる場合があります。このセクションでは、システム全体またはパッケージを 1 つだけ更新する 方法を紹介します。 Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。 __| __|_ ) _| ( / ___|\___|___| Amazon Linux AMI https://aws.amazon.com/amazon-linux-ami/2013.03-release-notes/ There are 12 security update(s) out of 25 total update(s) available Run "sudo yum update" to apply all updates. [ec2-user ~]$ Amazon Linux インスタンスのすべてのパッケージを更新するには 1. (オプション) シェルウィンドウで screen セッションを開始します。ネットワークが遮断され、イ ンスタンスへの SSH 接続が切断されることがあります。これの状態が長時間のソフトウェア更新 中に発生した場合、インスタンスは混乱した状態になりますが、復元できます。screen セッショ ンを開始しておけば、接続が遮断された場合でも更新を続行でき、後で問題なくセッションに再 接続できます。 a. screen セッションを開始するには screen コマンドを実行します。 [ec2-user ~]$ screen 341 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ソフトウェアの管理 b. セッションが中断された場合、インスタンスにログインし直し、利用できる画面を表示しま す。 [ec2-user ~]$ screen -ls There is a screen on: 17793.pts-0.ip-12-34-56-78 (Detached) 1 Socket in /var/run/screen/S-ec2-user. c. screen -r コマンドと前のコマンドのプロセス ID を使用して、画面に再接続します。 [ec2-user ~]$ screen -r 17793 d. screen の使用が終わったら、exit コマンドを使用してセッションを閉じます。 [ec2-user ~]$ exit [screen is terminating] 2. yum update コマンドを実行します。オプションで、--security フラグを追加すれば、セキュリ ティ更新のみを適用できます。 [ec2-user ~]$ sudo yum update Loaded plugins: priorities, security, update-motd, upgrade-helper amzn-main | 2.1 kB 00:00 amzn-updates | 2.3 kB 00:00 Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package aws-apitools-ec2.noarch 0:1.6.8.1-1.0.amzn1 will be updated ---> Package aws-apitools-ec2.noarch 0:1.6.10.0-1.0.amzn1 will be an update ---> Package gnupg2.x86_64 0:2.0.18-1.16.amzn1 will be updated ---> Package gnupg2.x86_64 0:2.0.19-8.21.amzn1 will be an update ---> Package libgcrypt.i686 0:1.4.5-9.10.amzn1 will be updated ---> Package libgcrypt.x86_64 0:1.4.5-9.10.amzn1 will be updated ---> Package libgcrypt.i686 0:1.4.5-9.12.amzn1 will be an update ---> Package libgcrypt.x86_64 0:1.4.5-9.12.amzn1 will be an update ---> Package openssl.x86_64 1:1.0.1e-4.53.amzn1 will be updated ---> Package openssl.x86_64 1:1.0.1e-4.54.amzn1 will be an update ---> Package python-boto.noarch 0:2.9.9-1.0.amzn1 will be updated ---> Package python-boto.noarch 0:2.13.3-1.0.amzn1 will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: aws-apitools-ec2 noarch 1.6.10.0-1.0.amzn1 amzn-updates 14 M gnupg2 x86_64 2.0.19-8.21.amzn1 amzn-updates 2.4 M libgcrypt i686 1.4.5-9.12.amzn1 amzn-updates 248 k 342 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ソフトウェアの管理 libgcrypt 262 k openssl 1.7 M python-boto 1.6 M x86_64 1.4.5-9.12.amzn1 amzn-updates x86_64 1:1.0.1e-4.54.amzn1 amzn-updates noarch 2.13.3-1.0.amzn1 amzn-updates Transaction Summary ================================================================================ Upgrade 6 Package(s) Total download size: 20 M Is this ok [y/N]: 3. 表示されたパッケージを確認し、y を入力し、Enter を押して更新を承認します。システムのパッ ケージをすべて更新するには数分かかります。実行中、yum 出力には更新のステータスが表示さ れます。 Downloading Packages: (1/6): aws-apitools-ec2-1.6.10.0-1.0.amzn1.noarch.rpm | 14 MB 00:00 (2/6): gnupg2-2.0.19-8.21.amzn1.x86_64.rpm | 2.4 MB 00:00 (3/6): libgcrypt-1.4.5-9.12.amzn1.i686.rpm | 248 kB 00:00 (4/6): libgcrypt-1.4.5-9.12.amzn1.x86_64.rpm | 262 kB 00:00 (5/6): openssl-1.0.1e-4.54.amzn1.x86_64.rpm | 1.7 MB 00:00 (6/6): python-boto-2.13.3-1.0.amzn1.noarch.rpm | 1.6 MB 00:00 -------------------------------------------------------------------------------Total 28 MB/s | 20 MB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : libgcrypt-1.4.5-9.12.amzn1.x86_64 1/12 Updating : gnupg2-2.0.19-8.21.amzn1.x86_64 2/12 Updating : aws-apitools-ec2-1.6.10.0-1.0.amzn1.noarch 3/12 Updating : 1:openssl-1.0.1e-4.54.amzn1.x86_64 4/12 ... Complete! 4. (オプション) 更新によって最新のパッケージおよびライブラリーを使用していることを確実にす るためにインスタンスを再起動してください。カーネル更新は再起動が発生するまでロードされ ません。glibc ライブラリーを更新した後も再起動が必要です。サービスを制御する更新の場合 は、更新を取得するにはサービスの再起動で十分かもしれませんが、システムを再起動すること で、それ以前のすべてのパッケージとライブラリーの更新を確実に完了できます。 343 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ソフトウェアの管理 Amazon Linux インスタンスの 1 つのパッケージを更新するには システム全体ではなく、1 つのパッケージ (とその依存関係) を更新するには、この手順を使用しま す。 1. 更新するパッケージの名前を指定して、yum update コマンドを実行します。 [ec2-user ~]$ sudo yum update openssl Loaded plugins: priorities, security, update-motd, upgrade-helper amzn-main | 2.1 kB 00:00 amzn-updates | 2.3 kB 00:00 Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package openssl.x86_64 1:1.0.1e-4.53.amzn1 will be updated ---> Package openssl.x86_64 1:1.0.1e-4.54.amzn1 will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: openssl x86_64 1:1.0.1e-4.54.amzn1 amzn-updates 1.7 M Transaction Summary ================================================================================ Upgrade 1 Package(s) Total download size: 1.7 M Is this ok [y/N]: 2. リストにあるパッケージ情報を確認し、y を入力し、Enter を押して更新を承認します。時折、解 決する必要があるパッケージ依存関係ある場合、リストには複数のパッケージがあります。実行 中、yum 出力には更新のステータスが表示されます。 Downloading Packages: openssl-1.0.1e-4.54.amzn1.x86_64.rpm 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : 1:openssl-1.0.1e-4.54.amzn1.x86_64 1/2 Cleanup : 1:openssl-1.0.1e-4.53.amzn1.x86_64 2/2 Verifying : 1:openssl-1.0.1e-4.54.amzn1.x86_64 1/2 Verifying : 1:openssl-1.0.1e-4.53.amzn1.x86_64 2/2 Updated: 344 | 1.7 MB Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ソフトウェアの管理 openssl.x86_64 1:1.0.1e-4.54.amzn1 Complete! 3. (オプション) 更新によって最新のパッケージおよびライブラリーを使用していることを確実にす るためにインスタンスを再起動してください。カーネル更新は再起動が発生するまでロードされ ません。glibc ライブラリーを更新した後も再起動が必要です。サービスを制御する更新の場合 は、更新を取得するにはサービスの再起動で十分かもしれませんが、システムを再起動すること で、それ以前のすべてのパッケージとライブラリーの更新を確実に完了できます。 リポジトリの追加 デフォルトで、Amazon Linux インスタンスは、amzn-main と amzn-updates の 2 つのリポジトリ を有効にして起動します。これらのリポジトリには、Amazon Web Services が更新するさまざまな パッケージがありますが、別のリポジトリに含まれるパッケージをインストールしたい場合があるか もしれません。 Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。 yum で異なるリポジトリからパッケージをインストールには、/etc/yum.conf ファイル、または / etc/yum.repos.d ディレクトリにあるお客様の repository.repo ファイルに、リポジトリ情報を 追加する必要があります。これは手動で行えますが、ほとんどの yum リポジトリのリポジトリ URL で、独自の repository.repo ファイルが提供されています。 yum リポジトリを /etc/yum.repos.d に追加するには 1. .repo ファイルの場所を見つけます。場所は、追加しているリポジトリによって異なります。た とえば、.repo ファイルは https://wwwexample.com/repository.repo にあります。 2. yum-config-manager コマンドでリポジトリを追加します。 [ec2-user ~]$ sudo yum-config-manager --add-repo https:// www.example.com/repository.repo Loaded plugins: priorities, update-motd, upgrade-helper adding repo from: https://www.example.com/repository.repo grabbing file https://www.example.com/repository.repo to /etc/ yum.repos.d/repository.repo repository.repo | 4.0 kB repo saved to /etc/yum.repos.d/repository.repo 00:00 yum リポジトリを /etc/yum.repos.d で有効にするには • --enable repository フラグを有効にして、yum-config-manager コマンドを使用します。次 のコマンドを使用すると、Fedora プロジェクトの Extra Packages for Enterprise Linux (EPEL) リ ポジトリが有効になります。デフォルトでは、このリポジトリは Amazon Linux インスタンスの /etc/yum.repos.d にありますが、有効になっていません。 [ec2-user ~]$ sudo yum-config-manager --enable epel 345 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ソフトウェアの管理 Note 他のディストリビューションの EPEL リポジトリ (Red Hat や CentOS など) を有効にする 方法については、EPEL ドキュメント (https://fedoraproject.org/wiki/EPEL) を参照してくださ い。 ソフトウェアパッケージを見つける yum search コマンドを使用すると、設定したリポジトリで利用できるパッケージの説明を検索できま す。これは特に、インストールするパッケージの正確な名前がわからない場合に便利です。キーワー ド検索をコマンドに追加します。複数の単語を検索するには、引用符で検索クエリを囲みます。 Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。 引用符で囲まれた複数の単語検索クエリは、正確なクエリに一致する結果のみを返します。予想され たパッケージが表示されない場合、キーワードを 1 つに絞って検索し、結果をスキャンします。キー ワードの同義語を試して、検索の幅を広げることもできます。 [ec2-user ~]$ sudo yum search "find" Loaded plugins: priorities, security, update-motd, upgrade-helper ============================== N/S Matched: find =============================== findutils.x86_64 : The GNU versions of find utilities (find and xargs) perl-File-Find-Rule.noarch : Perl module implementing an alternative interface : to File::Find perl-Module-Find.noarch : Find and use installed modules in a (sub)category libpuzzle.i686 : Library to quickly find visually similar images (gif, png, jpg) libpuzzle.x86_64 : Library to quickly find visually similar images (gif, png, : jpg) mlocate.x86_64 : An utility for finding files by name また、yum パッケージマネージャでは、いくつかのパッケージがグループに組み合わされます。そ れを 1 つのコマンドでインストールし、ウェブサーバーのインストールやソフトウェアコンパイル のツール作成など、特定のタスクを実行できます。システムに既にインストールされているグループ と、インストールできるグループを一覧表示するには、yum grouplist コマンドを使用します。 [ec2-user ~]$ sudo yum grouplist Loaded plugins: priorities, security, update-motd, upgrade-helper Setting up Group Process Installed Groups: Development Libraries Development tools Editors Legacy UNIX compatibility Mail Server MySQL Database Network Servers Networking Tools PHP Support Perl Support System Tools 346 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ソフトウェアの管理 Web Server Available Groups: Console internet tools DNS Name Server FTP Server Java Development MySQL Database client NFS file server Performance Tools PostgreSQL Database client (version 8) PostgreSQL Database server (version 8) Scientific support TeX support Technical Writing Web Servlet Engine Done yum groupinfo "Group Name" コマンドを使用すると、グループにさまざまなパッケージを表示できま す。Group Name には情報を取得するグループの名前を指定します。このコマンドを使用すると、そ のグループでインストールできる必須、デフォルト、任意のパッケージがすべて一覧表示されます。 デフォルトの amzn-main および amzn-updates リポジトリで必要なソフトウェアが見つからない場 合は、Extra Packages for Enterprise Linux (EPEL) リポジトリなどのリポジトリをさらに追加できま す。詳細については、「リポジトリの追加 (p. 345)」を参照してください。 ソフトウェアパッケージのインストール yum パッケージマネージャは、ソフトウェアをインストールするための優れたツールです。有効に なっているすべてのリポジトリからさまざまなソフトウェアパッケージを検索し、ソフトウェアイン ストールプロセスに伴う依存関係を処理できます。 Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。 リポジトリからパッケージをインストールするには、yum install package コマンドを使用しま す。package にはインストールするソフトウェアの名前を置き換えます。たとえば、links テキスト ベースウェブブラウザをインストールするには、次のコマンドを入力します。 [ec2-user ~]$ sudo yum install links パッケージのグループをインストールするには、yum groupinstall Group Name コマンドを使用しま す。Group Name にはインストールするグループの名前を置き換えます。たとえば、「Performance Tools」グループをインストールするには、次のコマンドを入力します。 [ec2-user@ip-10-161-113-54 ~]$ sudo yum groupinstall "Performance Tools" デフォルトでは、yum はグループで表示されている必須とデフォルトのパッケージのみを インストールします。グループの任意のパッケージをインストールする場合も、コマンドに group_package_types 設定パラメーターを設定できます。コマンドを実行すると、任意のパッケー ジが追加されます。 [ec2-user ~]$ sudo yum -setopt=group_package_types=mandatory,default,optional groupinstall "Performance Tools" 347 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ソフトウェアの管理 また、yum install を使用して、インターネットからダウンロードした RPM パッケージファイルをイ ンストールすることもできます。その場合、リポジトリパッケージ名の代わりに、RPM ファイルのパ ス名をインストールコマンドに追加します。 [ec2-user ~]$ sudo yum install my-package.rpm ソフトウェアのコンパイル準備 インターネットには事前コンパイルされていないオープンソースのソフトウェアが豊富に存在しま す。パッケージリポジトリからダウンロードできます。いずれは、そのソースコードから、自分でコ ンパイルする必要があるソフトウェアパッケージが判明することがあります。システムでソフトウェ アのコンパイルを可能にするには、make、gcc、autoconf など、いくつかの開発ツールをインストー ルする必要があります。 Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。 ソフトウェアのコンパイルはすべての Amazon EC2 インスタンスで必要なタスクではないため、その ようなツールはデフォルトでインストールされていません。ただし、「Development Tools」という 名前のパッケージグループで利用でき、yum groupinstall コマンドでインスタンスに簡単に追加されま す。 [ec2-user ~]$ sudo yum groupinstall "Development Tools" ソフトウェアのソースコードパッケージは、多くの場合、tarball という圧縮アーカイブファイルとし てダウンロードできます (https://github.com/ や http://sourceforge.net/ などのウェブサイトから)。通 常、これらの tarball には .tar.gz というファイル拡張子が付いています。これらのアーカイブは tar コマンドで解凍できます。 [ec2-user ~]$ tar -xzf software.tar.gz ソースコードパッケージを解凍したら、ソースコードディレクトリで README ファイルまたは INSTALL ファイルを探します。これらのファイルに、ソースコードのコンパイルとインストールに関 する詳細な指示があります。 Amazon Linux パッケージのソースコードを取得するには Amazon Web Services は、保守管理されているパッケージのソースコードを提供しま す。get_reference_source コマンドを使用して、インストールされているパッケージのソースコード をダウンロードできます。 • get_reference_source -p package コマンドを実行して、package のソースコードをダウンロー ドします。たとえば、htop パッケージのソースコードをダウンロードするには、次のコマンドを 入力します。 [ec2-user ~]$ get_reference_source -p htop Requested package: htop Found package from local RPM database: htop-1.0.1-2.3.amzn1.x86_64 Corresponding source RPM to found package : htop-1.0.1-2.3.amzn1.src.rpm Are these parameters correct? Please type 'yes' to continue: yes Source RPM downloaded to: /usr/src/srpm/debug/htop-1.0.1-2.3.amzn1.src.rpm 348 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ユーザーの管理 このコマンドではソース RPM の場所がリストアップされます。この場合、/usr/src/srpm/ debug/htop-1.0.1-2.3.amzn1.src.rpm です。 Linux インスタンスでのユーザーアカウントの管理 Linux インスタンスの各タイプは、デフォルトの Linux システムユーザーアカウントで起動され ます。Amazon Linux の場合は、ユーザー名は ec2-user です。RHEL の場合は、ユーザー名は ec2-user または root のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu または root です。Centos の場合は、ユーザー名は centos です。Fedora の場合は、ユーザー名は ec2-user です。SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。それ以外の場合 で、ec2-user および root が機能しない場合は、ご利用の AMI プロバイダーに確認してください。 Note Linux システムユーザーと AWS Identity and Access Management (IAM) ユーザーを混同しな いでください。詳細については、IAM ユーザーガイド の「IAM ユーザーとグループ」を参照 してください。 デフォルトのユーザーアカウントを使用することは多くのアプリケーションで適切ですが、ユーザー アカウントを追加すると、個人が自分だけのファイルと作業場所を確保できます。新しいユーザー用 にユーザーアカウントを作成することは、ec2-user アカウントへのアクセス権を複数のユーザーに (経験のないユーザーも含めて) 与えるよりも、はるかに安全です。ec2-user アカウントが不適切に使 用された場合、システムにさまざまな損害を与える可能性があるためです。 システムに新しいユーザーを追加するには Linux インスタンスにユーザーを追加する作業は、事実上、2 つの基本的な操作により行われます。す なわち、ユーザーをシステムに追加し、そのユーザーにリモートログインする手段を与えます。 1. システムに新しいユーザーを追加するには、adduser コマンドを使用します。コマンドの後に は、関連するオプションと、作成するユーザーの名前を指定します。 Important Ubuntu システムでユーザーを追加する場合は、--disabled-password オプションを追 加して、アカウントにパスワードが追加されないようにしてください。 [ec2-user ~]$ sudo adduser newuser 2. このコマンドにより、newuser アカウントがシステムに追加され (/etc/passwd ファイルにエ ントリが追加されます)、newuser グループが作成されて、/home/newuser にアカウントのホー ムディレクトリが作成されます。 このアカウントにリモートアクセス権を与えるには、 ########## .sshnewuser ディレクトリ を作成し、パブリックキーを含む「authorized_keys」という名前のファイルを .ssh ディレク トリに作成する必要があります。 a. 新しいアカウントに切り替えると、新しく作成したファイルに適切な所有権が与えられま す。 [ec2-user ~]$ sudo su - newuser [newuser ~]$ メッセージには、newuser ではなく ec2-user と表示される点にご注意ください。シェル セッションを新しいユーザーに切り替えています。 349 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ユーザーの管理 b. authorized_keys ファイルのために .ssh ディレクトリが作成されます。 [newuser ~]$ mkdir .ssh c. .ssh ディレクトリのファイル権限を 700 (つまり、ファイルの所有者だけがディレクトリを 開き、読み書きできます) に変更します。 Important このステップは非常に重要です。厳密なファイル権限がなければ、SSH を使用して このアカウントにログインできません。 [newuser ~]$ chmod 700 .ssh d. authorized_keys.ssh ########」という名前のファイルを作成します。 [newuser ~]$ touch .ssh/authorized_keys e. authorized_keys ファイルのファイル権限を 600 (つまり、ファイルの所有者だけがファ イルを読み書きできます) に変更します。 Important このステップは非常に重要です。厳密なファイル権限がなければ、SSH を使用して このアカウントにログインできません。 [newuser ~]$ chmod 600 .ssh/authorized_keys f. 任意のテキストエディタで authorized_keys ファイルを編集し、次のようにキーペアのパ ブリックキーをファイルに貼り付けます。 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/ d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/ i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco +CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi +z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE Note キーペアの作成の詳細については、「Amazon EC2 を使用してキーペアを作成す る (p. 571)」を参照してください。既存のキーペアからパブリックキーを取得する 方法については、「キーペアのパブリックキーを取得する (Linux) (p. 573)」を参照 してください。 これで、newuser のパブリックキーに一致するプライベートキーを使用して、SSH 経由でインスタ ンスの Step 2.f (p. 350) アカウントにログインできるはずです。 350 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド プロセッサのステート制御 システムからユーザーを削除するには ユーザーアカウントが不要になった場合、今後使用されないようにそのアカウントを削除できます。 • ユーザーアカウント、ユーザーのホームディレクトリ、ユーザーのメールスプールを削除するに は、削除するユーザーの名前を後に付けて userdel -r コマンドを実行します。 [ec2-user ~]$ sudo userdel -r olduser Note ユーザーのホームディレクトリとメールスプールを維持するには、-r オプションを省略 します。 EC2 インスタンスタイプのプロセッサのステート制 御 C ステートはアイドル時のコアのスリープレベルを制御します。C ステートは、C0 (コアがアクティ ブで、命令を実行している最も浅い状態) から始まる番号が付けられ、C6 (コアの電源がオフになって いる最も深いアイドル状態) まで移行します。P ステートはコアに希望するパフォーマンス (CPU 周 波数) を制御します。P ステートは、P0 (コアが Intel Turbo Boost Technology を使用して可能であれ ば周波数を上げることができる最高パフォーマンスの設定) から始まる番号が付けられ、P1 (最大限の ベースライン周波数をリクエストする P ステート) から P15 (最小限の周波数) まで移行します。 次のインスタンスタイプにより、オペレーティングシステムがプロセッサの C ステートと P ステート を制御できるようになります。 • c4.8xlarge • d2.8xlarge • m4.10xlarge • m4.16xlarge • p2.16xlarge • r4.8xlarge • r4.16xlarge • x1.16xlarge • x1.32xlarge プロセッサのパフォーマンスの安定性を向上させたり、レイテンシーを減らしたり、インスタンスを 特定のワークロード用に調整するために、C ステートまたは P ステートの設定を変更したいと思う場 合があるかもしれません。デフォルトの C ステートおよび P ステートの設定は、ほとんどの作業負 荷に対して最適なパフォーマンスを提供します。ただし、アプリケーションにおいて、より高いシン グルコアまたはデュアルコアの周波数でレイテンシーを軽減したい場合、またはバースト的な Turbo Boost 周波数よりも低い周波数でより安定したパフォーマンスを維持することを優先する場合、これ らのインスタンスで利用可能な C ステートまたは P ステートを試みることを考慮してください。 以下のセクションでは、プロセッサのさまざまなステート設定と、設定の効果をモニタリングする方 法について説明します。これらの手順は、Amazon Linux を対象としており、これに適用されますが、 バージョン 3.9 以降の Linux カーネルを持つ他の Linux ディストリビューションでも使用できる可能 性があります。他の Linux ディストリビューションやプロセッサのステート制御については、システ ム固有ドキュメントを参照してください。 351 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド プロセッサのステート制御 Note このページの例では、turbostat ユーティリティ (Amazon Linux でデフォルトで使用できる) を使用してプロセッサ周波数と C ステート情報を表示し、stress コマンド (sudo yum install y stress を実行することによってインストールできる) を使用してワークロードをシミュレー トします。 目次 • 最大 Turbo Boost 周波数による最高パフォーマンス (p. 352) • 深い C ステートの制限による高パフォーマンスと低レイテンシー (p. 353) • 変動性が最も低いベースラインパフォーマンス (p. 354) 最大 Turbo Boost 周波数による最高パフォーマンス これは、Amazon Linux AMI のデフォルトのプロセッサのステート制御設定であり、ほとんどのワー クロードにお勧めします。この設定では、変動性を抑え、最高パフォーマンスを実現します。非アク ティブなコアは深いスリープ状態になることができるため、シングルまたはデュアルコアプロセスが Turbo Boost の潜在能力を最大限に引き出すために必要な発熱量の余裕を実現できます。 次の例は、2 個のコアでアクティブに処理を実行する c4.8xlarge インスタンスが Turbo Boost の最 大周波数に到達した状況を示しています。 [ec2-user ~]$ sudo turbostat stress -c 2 -t 10 stress: info: [30680] dispatching hogs: 2 cpu, stress: info: [30680] successful run completed pk cor CPU %c0 GHz TSC SMI %c1 %c3 %pc6 %pc7 Pkg_W RAM_W PKG_% RAM_% 5.54 3.44 2.90 0 9.18 0.00 0.00 0.00 94.04 32.70 54.18 0.00 0 0 0 0.12 3.26 2.90 0 3.61 0.00 0.00 0.00 48.12 18.88 26.02 0.00 0 0 18 0.12 3.26 2.90 0 3.61 0 1 1 0.12 3.26 2.90 0 4.11 0.00 0 1 19 0.13 3.27 2.90 0 4.11 0 2 2 0.13 3.28 2.90 0 4.45 0.00 0 2 20 0.11 3.27 2.90 0 4.47 0 3 3 0.05 3.42 2.90 0 99.91 0.00 0 3 21 97.84 3.45 2.90 0 2.11 ... 1 1 10 0.06 3.33 2.90 0 99.88 0.01 1 1 28 97.61 3.44 2.90 0 2.32 ... 10.002556 sec 0 io, 0 vm, 0 hdd in 10s %c6 %c7 %pc2 %pc3 85.28 0.00 0.00 0.00 96.27 0.00 0.00 0.00 95.77 0.00 95.42 0.00 0.05 0.00 0.06 0.00 この例では、vCPU 21 と 28 が最大 Turbo Boost 周波数で実行され、他のコアは C6 スリープ状態に なることで電力を節約し、実行中のコアに電力と発熱の余裕を持たせています。vCPU 3 と 10 (それ ぞれ vCPU 21 および 28 とプロセッサコアを共有する) は C1 ステートであり、命令を待っています。 以下の例では、18 個のコアはすべてアクティブに処理を実行しているため、Turbo Boost の最大周波 数のための余裕はありませんが、すべてのコアが「all core Turbo Boost」の速度である 3.2 GHz で実 行されています。 [ec2-user ~]$ sudo turbostat stress -c 36 -t 10 stress: info: [30685] dispatching hogs: 36 cpu, 0 io, 0 vm, 0 hdd stress: info: [30685] successful run completed in 10s 352 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド プロセッサのステート制御 pk cor CPU %pc6 %pc7 0.00 0 0 0.00 0 0 0 1 0 1 0 2 0 2 0 3 0 3 0 4 0 4 0 5 0 5 0 6 0 6 ... %c0 GHz TSC SMI %c1 Pkg_W RAM_W PKG_% RAM_% 99.27 3.20 2.90 0 0.26 0.00 228.59 31.33 199.26 0.00 0 99.08 3.20 2.90 0 0.27 0.00 114.69 18.55 99.32 0.00 18 98.74 3.20 2.90 0 0.62 1 99.14 3.20 2.90 0 0.09 19 98.75 3.20 2.90 0 0.49 2 99.07 3.20 2.90 0 0.10 20 98.73 3.20 2.90 0 0.44 3 99.02 3.20 2.90 0 0.24 21 99.13 3.20 2.90 0 0.13 4 99.26 3.20 2.90 0 0.09 22 98.68 3.20 2.90 0 0.67 5 99.19 3.20 2.90 0 0.08 23 98.58 3.20 2.90 0 0.69 6 99.01 3.20 2.90 0 0.11 24 98.72 3.20 2.90 0 0.39 %c3 %c6 %c7 %pc2 %pc3 0.00 0.47 0.00 0.00 0.00 0.01 0.64 0.00 0.00 0.00 0.00 0.76 0.00 0.02 0.81 0.00 0.00 0.74 0.00 0.00 0.65 0.00 0.00 0.73 0.00 0.00 0.89 0.00 深い C ステートの制限による高パフォーマンスと低レイテン シー C ステートは非アクティブ時のコアのスリープレベルを制御します。C ステートを制御して、システ ムのレイテンシーとパフォーマンスを調整することができます。コアをスリープ状態にするには時間 がかかります。また、スリープ状態のコアによって、別のコアが高い周波数で動作するための余裕が 生まれますが、そのスリープ状態にあるコアが再び稼働し処理を実行するのにも時間がかかります。 たとえば、ネットワークパケットの中断を処理するように割り当てられたコアがスリープ状態である 場合、その中断の処理に遅延が生じる可能性があります。より深い C ステートを使用しないようにシ ステムを設定できます。これにより、プロセッサの応答のレイテンシーは減少しますが、他のコアの Turbo Boost 用の余裕も減少します。 深いスリープ状態を無効にする一般的なシナリオとして、Redis データベースアプリケーションがあ ります。このアプリケーションは、最速のクエリ応答時間を実現するために、データベースをシステ ムメモリ内に格納します。 Amazon Linux で深いスリープ状態を制限するには 1. 任意のテキストエディタで /boot/grub/grub.conf ファイルを開きます。 [ec2-user ~]$ sudo vim /boot/grub/grub.conf 2. 最初のエントリの kernel 行を編集し、intel_idle.max_cstate= オプションを追加して、ア イドル状態のコアの最も深い ステートとして C1C1 を設定します。 # created by imagebuilder default=0 timeout=1 hiddenmenu title Amazon Linux 2014.09 (3.14.26-24.46.amzn1.x86_64) root (hd0,0) kernel /boot/vmlinuz-3.14.26-24.46.amzn1.x86_64 root=LABEL=/ console=ttyS0 intel_idle.max_cstate=1 initrd /boot/initramfs-3.14.26-24.46.amzn1.x86_64.img 353 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド プロセッサのステート制御 3. ファイルを保存し、エディタを終了します。 4. 新しい kernel オプションを有効にするためにインスタンスを再起動します。 [ec2-user ~]$ sudo reboot 次の例では、2 つのコアが「all core Turbo Boost」コア周波数でアクティブに処理を実行している c4.8xlarge インスタンスを示します。 [ec2-user ~]$ sudo turbostat stress -c 2 -t 10 stress: info: [5322] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd stress: info: [5322] successful run completed in 10s pk cor CPU %c0 GHz TSC SMI %c1 %c3 %c6 %c7 %pc2 %pc6 %pc7 Pkg_W RAM_W PKG_% RAM_% 5.56 3.20 2.90 0 94.44 0.00 0.00 0.00 0.00 0.00 0.00 131.90 31.11 199.47 0.00 0 0 0 0.03 2.08 2.90 0 99.97 0.00 0.00 0.00 0.00 0.00 0.00 67.23 17.11 99.76 0.00 0 0 18 0.01 1.93 2.90 0 99.99 0 1 1 0.02 1.96 2.90 0 99.98 0.00 0.00 0.00 0 1 19 99.70 3.20 2.90 0 0.30 ... 1 1 10 0.02 1.97 2.90 0 99.98 0.00 0.00 0.00 1 1 28 99.67 3.20 2.90 0 0.33 1 2 11 0.04 2.63 2.90 0 99.96 0.00 0.00 0.00 1 2 29 0.02 2.11 2.90 0 99.98 ... %pc3 0.00 0.00 この例では、vCPU 19 および 28 のコアは 3.2 GHz で実行中であり、その他のコアは C1 C ステート で、命令を待機しています。稼働中のコアは Turbo Boost の最大周波数には到達していませんが、非 アクティブなコアはより深い C6 C ステートにある場合と比べて、新しいリクエストに迅速に応答し ます。 変動性が最も低いベースラインパフォーマンス P ステートによってプロセッサの周波数の変動性を抑制することができます。P ステートはコアに希 望するパフォーマンス (CPU 周波数) を制御します。ほとんどのワークロードでは、Turbo Boost をリ クエストする、P0 でパフォーマンスが向上します。ただし、Turbo Boost 周波数が有効であるときに 発生する可能性があるバースト的なパフォーマンスではなく、安定したパフォーマンスになるように システムを調整することもできます。 Intel Advanced Vector Extensions (AVX または AVX2) のワークロードは低い周波数でもパフォーマ ンスに優れ、AVX 命令はより多くの処理能力を使用できます。Turbo Boost を無効にして、プロセッ サをより低い周波数で実行すると、使用される処理能力が抑えられ、より安定した速度が維持され ます。インスタンスの設定の最適化や AVX のワークロードの詳細については、http://www.intel.com/ content/dam/www/public/us/en/documents/white-papers/performance-xeon-e5-v3-advanced-vectorextensions-paper.pdf を参照してください。 このセクションでは、深いスリープ状態を制限し、 (P1 P ステートをリクエストすることにより) Turbo Boost を無効にすることで、これらのタイプのワークロードに対して、低レイテンシーを提供 し、プロセッサ速度の変動性を最低限に抑える方法を説明します。 Amazon Linux で深いスリープ状態を制限し、Turbo Burstを無効にするには 1. 任意のテキストエディタで /boot/grub/grub.conf ファイルを開きます。 [ec2-user ~]$ sudo vim /boot/grub/grub.conf 354 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド プロセッサのステート制御 2. 最初のエントリの kernel 行を編集し、intel_idle.max_cstate= オプションを追加して、ア イドル状態のコアの最も深い ステートとして C1C1 を設定します。 # created by imagebuilder default=0 timeout=1 hiddenmenu title Amazon Linux 2014.09 (3.14.26-24.46.amzn1.x86_64) root (hd0,0) kernel /boot/vmlinuz-3.14.26-24.46.amzn1.x86_64 root=LABEL=/ console=ttyS0 intel_idle.max_cstate=1 initrd /boot/initramfs-3.14.26-24.46.amzn1.x86_64.img 3. ファイルを保存し、エディタを終了します。 4. 新しい kernel オプションを有効にするためにインスタンスを再起動します。 [ec2-user ~]$ sudo reboot 5. P1 P ステートによってプロセッサ速度の変動性を抑える必要がある場合は、次のコマンドを実行 して Turbo Boost を無効にします。 [ec2-user ~]$ sudo sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/ no_turbo" 6. ワークロードが終了したら、次のコマンドで Turbo Boost を再度有効にすることができます。 [ec2-user ~]$ sudo sh -c "echo 0 > /sys/devices/system/cpu/intel_pstate/ no_turbo" 次の例では、2 つの vCPU が、Turbo Boost を使用せずに、ベースラインコア周波数でアクティブに 処理を実行している c4.8xlarge インスタンスを示します。 [ec2-user ~]$ sudo turbostat stress -c 2 -t 10 stress: info: [5389] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd stress: info: [5389] successful run completed in 10s pk cor CPU %c0 GHz TSC SMI %c1 %c3 %c6 %c7 %pc2 %pc6 %pc7 Pkg_W RAM_W PKG_% RAM_% 5.59 2.90 2.90 0 94.41 0.00 0.00 0.00 0.00 0.00 0.00 128.48 33.54 200.00 0.00 0 0 0 0.04 2.90 2.90 0 99.96 0.00 0.00 0.00 0.00 0.00 0.00 65.33 19.02 100.00 0.00 0 0 18 0.04 2.90 2.90 0 99.96 0 1 1 0.05 2.90 2.90 0 99.95 0.00 0.00 0.00 0 1 19 0.04 2.90 2.90 0 99.96 0 2 2 0.04 2.90 2.90 0 99.96 0.00 0.00 0.00 0 2 20 0.04 2.90 2.90 0 99.96 0 3 3 0.05 2.90 2.90 0 99.95 0.00 0.00 0.00 0 3 21 99.95 2.90 2.90 0 0.05 ... 1 1 28 99.92 2.90 2.90 0 0.08 1 2 11 0.06 2.90 2.90 0 99.94 0.00 0.00 0.00 1 2 29 0.05 2.90 2.90 0 99.95 355 %pc3 0.00 0.00 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 時刻の設定 vCPU 21 および 28 のコアは、ベースラインプロセッサ速度の 2.9 GHz でアクティブに処理を実行 し、すべての非アクティブなコアも、C1 C ステートのベースライン速度で実行され、すぐに命令を受 け付けることができます。 Linux インスタンスの時刻の設定 サーバータスクとプロセスの多くには、一貫して正確な時間参照が不可欠です。システムログのほ とんどにタイムスタンプが含まれています。これを利用すれば、問題が発生した時刻とイベントの 発生順序を判断できます。AWS CLI、または AWS SDK を使用してインスタンスからリクエストを 行う場合、これらのツールによって自動的にリクエストに署名されます。インスタンスの日時が正 しく設定されていない場合、署名の日付がリクエストの日付と一致しないことがあり、その場合は AWS によってリクエストが却下されます。ネットワークタイムプロトコル (NTP) は、デフォルト では Amazon Linux インスタンスに設定されています。システム時間はインターネットで負荷が分 散されたパブリックサーバーのプールと同期し、UTC 時間帯に設定されます。NTP の詳細について は、http://www.ntp.org/ を参照してください。 タスク • 時間帯の変更 (p. 356) • ネットワークタイムプロトコル (NTP) の構成 (p. 357) Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。 時間帯の変更 Amazon Linux インスタンスは、デフォルトでは UTC (協定世界時間) 時間帯に設定されていますが、 インスタンスの時間を現地時間またはネットワークの別の時間帯に変更したい場合があるでしょう。 インスタンスの時間帯を変更するには 1. インスタンスで使用する時間帯を特定します。/usr/share/zoneinfo ディレクトリには、時間 帯データファイルの階層が含まれています。その場所でディレクトリ構造を閲覧し、お客様の時 間帯のファイルを見つけます。 [ec2-user ~]$ ls /usr/share/zoneinfo Africa Chile GB Indian America CST6CDT GB-Eire Iran Antarctica Cuba GMT iso3166.tab Arctic EET GMT0 Israel ... 2. Mideast MST MST7MDT Navajo posixrules PRC PST8PDT right US UTC WET W-SU この場所にある一部のエントリはディレクトリです (America など)。そのディレクトリには、 特定の都市の時間帯ファイルが含まれています。インスタンスに使用する都市 (またはお客様の 時間帯と同じ都市) を見つけます。この例では、ロサンゼルスの時間帯ファイル (/usr/share/ zoneinfo/America/Los_Angeles) を使用できます。 /etc/sysconfig/clock ファイルを新しい時間帯で更新します。 a. b. お好みのテキストエディタ (vim や nano など) で /etc/sysconfig/clock ファイルを開き ます。エディターコマンドで sudo を使用する必要があります。/etc/sysconfig/clock は root が所有するためです。 ZONE エントリを見つけて、それを時間帯ファイルに変更します (パスの /usr/share/ zoneinfo セクションは省略します)。たとえば、ロサンゼルスの時間帯に変更するに は、ZONE エントリを次のように変更します。 356 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 時刻の設定 ZONE="America/Los_Angeles" Note UTC=true エントリを別の値に変更しないでください。このエントリは、ハード ウェアクロックに使用されるため、インスタンスで別のタイムゾーンを設定する場 合は調整する必要はありません。 c. 3. ファイルを保存し、テキストエディタを終了します。 インスタンスが現地時間情報を参照するとき、時間帯ファイルを見つけられるように、/etc/ localtime と時間帯ファイルの間にシンボリックリンクを作成します。 [ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/ localtime 4. システムを再起動し、すべてのサーバーとアプリケーションで新しい時間帯情報を取得します。 [ec2-user ~]$ sudo reboot ネットワークタイムプロトコル (NTP) の構成 ネットワークタイムプロトコル (NTP) は、デフォルトにより、Amazon Linux インスタンスに構成 済みです。ただし、標準 NTP 構成を機能させるには、インスタンスがインターネットにアクセスす る必要があります。これに加え、インスタンスのセキュリティグループのルールでは、ポート 123 (NTP) でアウトバウンド UDP トラフィックを許可する必要があります。ネットワーク ACL のルール では、ポート 123 でインバウンドとアウトバウンドの UDP トラフィックを両方許可する必要があり ます。このセクションの手順では、デフォルトの NTP 構成が正しく動作していることを確認する方法 を示します。インスタンスからインターネットにアクセスできない場合、正確な時刻を維持するため に、NTP を構成して、プライベートネットワーク内の別のサーバーにクエリを実行する必要がありま す。 NTP が適切に動作していることを確認するには 1. インスタンスの NTP サービスのステータスを表示するには、ntpstat コマンドを使用します。 [ec2-user ~]$ ntpstat 出力が次のような場合、インスタンスの NTP は適切に動作しています。 synchronised to NTP server (12.34.56.78) at stratum 3 time correct to within 399 ms polling server every 64 s 出力ステータスが「unsynchronised」の場合、1 分待ってから再試行してください。最初の同 期が完了するまで、1 分かかることがあります。 出力に "Unable to talk to NTP daemon. Is it running?" と示されている場合、NTP サービスを起動して、ブート時に自動的に開始できるようにする必要があります。 2. (オプション) NTP サーバーが認識しているピアとその状態の概要を表示するには、ntpq -p コマン ドを使用します。 [ec2-user ~]$ ntpq -p 357 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 時刻の設定 remote refid st t when poll reach delay offset jitter ============================================================================== +lttleman.deekay 204.9.54.119 2 u 15 128 377 88.649 5.946 6.876 -bittorrent.tomh 91.189.94.4 3 u 133 128 377 182.673 8.001 1.278 *ntp3.junkemailf 216.218.254.202 2 u 68 128 377 29.377 4.726 11.887 +tesla.selinc.co 149.20.64.28 2 u 31 128 377 28.586 -1.215 1.435 このコマンドの出力にアクティビティが表示されない場合は、セキュリティグループ、ネット ワーク ACL、またはファイアウォールが NTP ポートへのアクセスをブロックしているかどうか 確認してください。 NTP を起動して有効にするには 1. 次のコマンドを使って NTP サービスを起動します。 [ec2-user ~]$ sudo service ntpd start Starting ntpd: 2. [ OK ] chkconfig コマンドを使って、ブート時に NTP を開始できるようにします。 [ec2-user ~]$ sudo chkconfig ntpd on 3. 次のコマンドを使って、NTP が有効であることを確認します。 [ec2-user ~]$ sudo chkconfig --list ntpd ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ここでは実行レベル 2、3、4、および 5 で ntpd がオンになっており、これは適正です。 NTP サーバーを変更するには 標準 NTP サーバーを使用しないようにすることも、インターネットアクセスを持たないインスタンス に対して、プライベートネットワーク内にあるご自分の NTP サーバーを使用することもできます。 1. お好みのテキストエディタ (vim や nano など) で、/etc/ntp.conf ファイルを開きます。/etc/ ntp.conf は ################### sudoroot を使用する必要があります。 2. server セクションを探します。このセクションは、NTP 構成に対してポーリングするサーバー を定義します。 # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.amazon.pool.ntp.org iburst server 1.amazon.pool.ntp.org iburst server 2.amazon.pool.ntp.org iburst server 3.amazon.pool.ntp.org iburst 358 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ホスト名の変更 Note n.amazon.pool.ntp.org DNS レコードは AWS からの NTP トラフィックの負荷分散 を目的としています。ただし、これらは pool.ntp.org プロジェクトの公開 NTP サー バーであり、AWS が所有または管理するものではありません。お客様のインスタンスと 地理的に近い場所にある、また AWS ネットワーク内にあることを保証するものではあり ません。詳細については、http://www.pool.ntp.org/en/ を参照してください。 3. 使用しないサーバー定義の先頭に「#」文字を追加して、使用しないサーバーをコメントアウトし ます。 # Use public servers from the # Please consider joining the #server 0.amazon.pool.ntp.org #server 1.amazon.pool.ntp.org #server 2.amazon.pool.ntp.org #server 3.amazon.pool.ntp.org 4. pool.ntp.org project. pool (http://www.pool.ntp.org/join.html). iburst iburst iburst iburst 時刻同期のポーリング用に、各サーバーのエントリを追加します。このエントリには DNS 名を 使用することも、ドット区切りの IP アドレス (10.0.0.254 など) を使用することもできます。 server my-ntp-server.my-domain.com iburst 5. NTP サービスを再起動して、新しいサーバーを選択します。 [ec2-user ~]$ sudo service ntpd start Starting ntpd: 6. [ OK ] 新しい設定が動作すること、また、NTP が機能していることを確認します。 [ec2-user ~]$ ntpstat synchronised to NTP server (64.246.132.14) at stratum 2 time correct to within 99 ms Linux インスタンスのホスト名の変更 インスタンスを起動すると、プライベートの内部 IPv4 アドレスの形式のホスト名が割り 当てられます。典型的な Amazon EC2 プライベート DNS 名は、ip-12-34-56-78.uswest-2.compute.internal のような形式になります。この名前は内部ドメイン、サービス (この 例では、compute)、リージョン、そしてプライベート IPv4 アドレスで構成されます。インスタンス にログインしたとき、このホスト名の一部がシェルプロンプトで表示されます (ip-12-34-56-78 な ど)。Amazon EC2 インスタンスを停止し、再起動するたびに (Elastic IP アドレスを使用していない限 り)、パブリック IPv4 アドレスが変わり、パブリック DNS 名、システムホスト名、シェルプロンプ トも変わります。EC2-Classic で起動されたインスタンスも、停止して再起動すると、新しいプライ ベート IPv4 アドレス、プライベート DNS ホスト名、システムホスト名を受信します。VPC で起動さ れたインスタンスでは、これらは変更されません。 Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。 359 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ホスト名の変更 システムホスト名の変更 インスタンスの IP アドレスにパブリック DNS 名を登録している場合 (webserver.mydomain.com など)、インスタンスがそのドメインに含まれているものとして識別されるように、システムホスト名 を設定できます。また、システムホスト名を変更すると、シェルプロンプトも変更され、AWS が提供 するホスト名の代わりに、新しいシステムホスト名の最初の部分 (ip-12-34-56-78 など) が表示さ れます。パブリック DNS 名を登録していない場合でもホスト名は変更できますが、プロセスが少し 違います。 システムホスト名をパブリック DNS 名に変更するには パブリック DNS 名を登録している場合、この手順を行います。 1. インスタンスで、お好みのテキストエディターを使用して /etc/sysconfig/network 設定ファ イルを開き、HOSTNAME エントリを変更して、完全修飾ドメイン名 (webserver.mydomain.com など) を反映させます。 HOSTNAME=webserver.mydomain.com 2. インスタンスを再起動し、新しいホスト名を取得します。 [ec2-user ~]$ sudo reboot 3. インスタンスにログインして、ホスト名が更新されていることを確認します。メッセージには、 新しいホスト名が表示されるはずです (最初の「.」まで)。hostname コマンドで完全修飾ドメイ ン名が表示されます。 [ec2-user@webserver ~]$ hostname webserver.mydomain.com パブリック DNS 名なしでシステムホスト名を変更するには 1. お好みのテキストエディターで /etc/sysconfig/network 設定ファイルを開き、HOSTNAME エ ントリを変更して、希望するシステムホスト名を反映させます (webserver など)。 HOSTNAME=webserver.localdomain 2. お好みのテキストエディタで /etc/hosts ファイルを開き、下の例と一致する 127.0.0.1 で始 まるエントリを変更します。ホスト名は自分のホスト名に置換します。 127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4 3. インスタンスを再起動し、新しいホスト名を取得します。 [ec2-user ~]$ sudo reboot 4. インスタンスにログインして、ホスト名が更新されていることを確認します。メッセージには、 新しいホスト名が表示されるはずです (最初の「.」まで)。hostname コマンドで完全修飾ドメイ ン名が表示されます。 [ec2-user@webserver ~]$ hostname webserver.localdomain 360 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ホスト名の変更 ホスト名に影響を与えずにシェルプロンプトを変更する インスタンスのホスト名を変更せずに、AWS が提供するプライベート名 (webserver など) よりも 便利なシステム名 (ip-12-34-56-78 など) を表示させる場合、ホスト名の代わりにシステムニック ネームを表示するようにシェルプロンプト設定ファイルを編集できます。 シェルプロンプトをホストニックネームに変更するには 1. /etc/profile.d で、NICKNAME と呼ばれる環境変数を設定するファイルを作成して、シェルプ ロンプトに表示する値を設定します。たとえば、システムニックネームを webserver に設定す るには、次のコマンドを実行します。 [ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/ profile.d/prompt.sh' 2. お好みのテキストエディタ (vim や nano など) で /etc/bashrc ファイルを開きます。エディ ターコマンドで sudo を使用する必要があります。/etc/bashrc は root が所有するためです。 3. ファイルを編集し、ホスト名の代わりにニックネームを表示するようにシェルプロンプト変数 (PS1) を変更します。/etc/bashrc でシェルプロンプトを設定する次の行を見つけます (以下に は、コンテキストを示すため前後の行も表示されています。[ "$PS1" で始まる行を探してくだ さい)。 # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " # You might want to have e.g. tty in prompt (e.g. more virtual machines) # and console windows その行の \h (hostname を表す記号) を NICKNAME 変数の値に変更します。 # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@$NICKNAME \W]\\$ " # You might want to have e.g. tty in prompt (e.g. more virtual machines) # and console windows 4. (オプション) シェルウィンドウのタイトルを新しいニックネームに設定するには、次の手順を完 了します。 a. /etc/sysconfig/bash-prompt-xterm という名前のファイルを作成します。 [ec2-user ~]$ sudo touch /etc/sysconfig/bash-prompt-xterm b. 次のコマンドを使用して、ファイルを実行可能にします。 [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm c. お好みのテキストエディタ (vim や nano など) で /etc/sysconfig/bash-prompt-xterm ファイルを開きます。エディターコマンドで sudo を使用する必要があります。/etc/ sysconfig/bash-prompt-xterm は root が所有するためです。 d. 次の行をファイルに追加します。 echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007" 5. ログアウトしてから再度ログインし、新しいニックネーム値を取得します。 361 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 動的な DNS のセットアップ 他の Linux ディストリビューションのホスト名の変更 上記の手順は Amazon Linux のみで使用するためのものです。他の Linux ディストリビューションの 詳細については、各ドキュメントおよび次の記事を参照してください。 • RHEL 7 または Centos 7 を実行するプライベート Amazon EC2 インスタンスに静的ホスト名を割 り当てる方法を教えてください。 • SuSe Linux が実行されているプライベート Amazon EC2 インスタンスに静的ホスト名を割り当て る方法を教えてください。 • Ubuntu Linux が実行されているプライベート Amazon EC2 インスタンスに静的ホスト名を割り当て る方法を教えてください。 Linux インスタンスの動的な DNS のセットアップ EC2 インスタンスを起動すると、パブリック IP アドレスとパブリック DNS (ドメイン名システ ム) 名が割り当てられます。それらを使用してインターネットからインスタンスにアクセスできま す。Amazon Web Services ドメインには数多くのホストが存在するため、これらのパブリック名はそ れぞれの名前を一意にするために、かなり長くする必要があります。典型的な Amazon EC2 パブリッ ク DNS 名は、ec2-12-34-56-78.us-west-2.compute.amazonaws.com. のような形式になりま す。この名前は Amazon Web Services ドメイン、サービス (この例では、compute)、リージョン、 パブリック IP アドレスで構成されます。 動的 DNS サービスはそのドメイン領域内でカスタムの DNS ホスト名を提供します。この名前は覚え やすく、ホストのユースケースとの関連性が高くなっています。また、一部の動的 DNS サービスは 無料です。Amazon EC2 では動的 DNS プロバイダを利用できます。また、インスタンスを起動する たびに、パブリック DNS 名に関連付けられている IP アドレスを更新するようにインスタンスを設定 できます。プロバイダは数多く存在します。また、プロバイダを選択し、それぞれのプロバイダで名 前を登録する方法については本ガイドの範囲外です。 Important これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション の詳細については、各ドキュメントを参照してください。 Amazon EC2 で動的 DNS を使用するには 1. 2. 動的 DNS サービスプロバイダにサインアップし、そのサービスでパブリック DNS 名を登録しま す。この手順では、noip.com/free の無料サービスを例として使用します。 動的 DNS 更新クライアントを設定します。動的 DNS サービスプロバイダを選び、そのサービス でパブリック DNS 名を登録したら、その DNS 名をインスタンスの IP アドレスにポイントしま す。多くのプロバイダ (noip.com を含む) では、この操作をウェブサイトのアカウントページから 手動で実行できるようにしています。ただし、ソフトウェア更新クライアントもサポートしてい ます。更新クライアントが動作している EC2 インスタンスでは、シャットダウン後に再起動した ときなど、IP アドレスが変わるたびに動的 DNS レコードが更新されます。この例では、noip2 クライアントをインストールします。このクライアントは、noip.com が提供するサービスで動作 します。 a. noip2 クライアントにアクセスできるように、Extra Packages for Enterprise Linux (EPEL) リポジトリを有効にします。 Note Amazon Linux インスタンスは、デフォルトでインストールされる EPEL リポジトリ に関する GPG キーとリポジトリ情報を保持しています。ただし、Red Hat インスタ ンスと CentOS インスタンスについては、epel-release パッケージを最初にイン ストールしてから、EPEL リポジトリを有効にする必要があります。このパッケージ 362 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 起動時のコマンドの実行 の最新バージョンの詳細およびダウンロードについては、「https://fedoraproject.org/ wiki/EPEL」を参照してください。 [ec2-user ~]$ sudo yum-config-manager --enable epel b. noip パッケージをインストールします。 [ec2-user ~]$ sudo yum install -y noip c. noip2 設定ファイルを作成します。メッセージが表示されたら、ログインおよびパスワード 情報を入力して、その後に続く質問に答え、クライアントを設定します。 [ec2-user ~]$ sudo noip2 -C 3. noipchkconfig コマンドを使用し、 サービスを有効にします。 [ec2-user ~]$ sudo chkconfig noip on chkconfig --list コマンドを使用すると、サービスが有効になっていることを確認できます。 [ec2-user ~]$ chkconfig --list noip noip 0:off 1:off 2:on 3:on 4:on 5:on 6:off ここでは、noip はランレベル 2、3、4、5 で on になっています (これは正常です)。これで、更新 クライアントは起動のたびに開始し、パブリック DNS レコードを更新して、インスタンスの IP アドレスをポイントします。 4. noip サービスを開始します。 [ec2-user ~]$ sudo service noip start Starting noip2: [ OK ] このコマンドを使用すると、クライアントが起動します。クライアントは前に作成した設定ファ イル (/etc/no-ip2.conf) を読み、選択したパブリック DNS 名の IP アドレスを更新します。 5. 更新クライアントが動的 DNS 名に正しい IP アドレスを設定したことを確認します。DNS レコー ドの更新には数分かかります。その後、この手順で設定したパブリック DNS 名により、SSH を 使用してインスタンスに接続します。 Linux インスタンスでの起動時のコマンドの実行 Amazon EC2 でインスタンスを起動するとき、起動後にそのインスタンスにユーザーデータを渡し、 一般的な自動設定タスクを実行したり、スクリプトを実行したりできます。2 つのタイプのユーザー データを Amazon EC2 に渡すことができます。シェルスクリプトと cloud-init ディレクティブで す。また、このデータはプレーンテキスト、ファイル (コマンドラインツールでインスタンスを起動す る場合に便利です)、または base64 でエンコードされたテキスト (API 呼出の場合) として、起動ウィ ザードに渡すこともできます。 より複雑な自動化シナリオに興味がある場合、AWS CloudFormation や AWS OpsWorks のご利用を 検討してください。詳細については、AWS CloudFormation ユーザーガイド と AWS OpsWorks ユー ザーガイド を参照してください。 Windows インスタンスの起動時にコマンドを実行する方法については、Windows インスタンスの Amazon EC2 ユーザーガイド の「ユーザーデータの実行」と「Windows インスタンス設定の管理」 を参照してください。 363 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 起動時のコマンドの実行 次の例では、Installing a LAMP Web Server tutorial (p. 36) のコマンドが、シェルスクリプトとインス タンスの起動時に実行される一連の cloud-init ディレクティブに変換されています。各例では、次 のタスクがユーザーデータにより実行されます。 • ディストリビューションソフトウェアパッケージが更新されます。 • 必要なウェブサーバー、php、mysql パッケージがインストールされます。 • httpdchkconfig を介して サービスが開始され、オンになります。 • www グループが追加され、ec2-user がそのグループに追加されます。 • ウェブディレクトリとその中に含まれるファイルに対して、適切な所有権とファイル権限が設定さ れます。 • ウェブサーバーと php エンジンをテストするために、シンプルなウェブページが作成されます。 Note デフォルトでは、ユーザーデータおよび cloud-init ディレクティブは、インスタンスを起 動するときの初回の起動サイクルでのみ実行されます。ただし、AWS Marketplace ベンダー とサードパーティー AMI の所有者が、スクリプトを実行する方法とタイミングを独自にカス タマイズしている可能性があります。 目次 • 前提条件 (p. 364) • ユーザーデータとシェルスクリプト (p. 364) • ユーザーデータと cloud-init ディレクティブ (p. 366) • API と CLI の概要 (p. 367) 前提条件 次の例では、インターネットからアクセス可能なパブリック DNS 名がお客様のインスタンスに設定 されているものと仮定しています。詳細については、「ステップ 1: インスタンスを起動する (p. 30)」 を参照してください。また、SSH (ポート 22)、HTTP (ポート 80)、HTTPS (ポート 443) 接続を許可す るように、セキュリティグループを設定する必要もあります。前提条件の詳細については、Amazon EC2 でのセットアップ (p. 21) を参照してください。 また、これらの指示は Amazon Linux での使用を意図しています。他の Linux ディストリビューショ ンの場合、コマンドとディレクティブが動作しないことがあります。cloud-init のサポートなど、 その他のディストリビューションについての詳細は、該当するディストリビューションの文書を参照 してください。 ユーザーデータとシェルスクリプト シェルスクリプトに詳しい場合、シェルスクリプトが起動時に指示を送る最も簡単で完全な方法とな ります。cloud-init 出力ログファイル (/var/log/cloud-init-output.log) にコンソール出力 が記録されるので、インスタンスが意図したとおりに動作しない場合、起動後にスクリプトを簡単に デバッグできます。 Important ユーザーデータのスクリプトおよび cloud-init ディレクティブは、インスタンスを起動す るときの初回の起動サイクルでのみ実行されます。 ユーザーデータのシェルスクリプトは、#! の記号と、スクリプトを読み取るインタープリタの パス (通常は /bin/bash) から始める必要があります。シェルスクリプトの概要については、Linux Documentation Project (tldp.org) の BASH Programming HOW-TO を参照してください。 364 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 起動時のコマンドの実行 ユーザーデータとして入力されたスクリプトは、root ユーザーとして実行されます。そのため、ス クリプトでは sudo コマンドを使用しないでください。作成したファイルはすべて root の所有にな ることを忘れないでください。非 root ユーザーにファイルアクセスを与える場合、スクリプトで権 限を適宜変更する必要があります。また、スクリプトはインタラクティブに実行されないため、ユー ザーフィードバックを必要とするコマンド (-y フラグのない yum update など) を含めることはできま せん。 起動時にこれらのタスクを追加すると、インスタンスの起動にかかる時間が増えます。タスクが完了 するまでさらに数分待ち、それからユーザースクリプトが正常に完了したことをテストしてくださ い。 ユーザーデータでシェルスクリプトをインスタンスに渡すには 1. AMI からのインスタンスの起動 (p. 303) でインスタンスを起動するための手順を行います が、Step 6 (p. 305) に到達したら、ユーザーデータスクリプトテキストを [User data] フィール ドに貼り付け、起動手順を完了します。下の例の場合では、スクリプトがウェブサーバーを作成 し、設定します。 #!/bin/bash yum update -y yum install -y httpd24 php56 mysql55-server php56-mysqlnd service httpd start chkconfig httpd on groupadd www usermod -a -G www ec2-user chown -R root:www /var/www chmod 2775 /var/www find /var/www -type d -exec chmod 2775 {} + find /var/www -type f -exec chmod 0664 {} + echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php 2. インスタンスが起動し、スクリプトのコマンドを実行するまで十分待ち、それからスクリプトが 意図したタスクを完了したことを確認します。例では、ウェブブラウザにスクリプトが作成した PHP テストファイルの URL を入力します。この URL は、インスタンスのパブリック DNS アド レスにスラッシュとファイル名を追加したものです。 http://my.public.dns.amazonaws.com/phpinfo.php PHP 情報ページが表示されるはずです。 Tip PHP 情報ページが表示されない場合、使用しているセキュリティグループに HTTP (ポー ト 80) トラフィックを許可するルールが含まれていることを確認します。HTTP ルールを セキュリティグループに追加する方法については、セキュリティグループへのルールの 追加 (p. 585) を参照してください。 3. (オプション) スクリプトが予定のタスクを完了しなかった場合、あるいはスクリプトがエラーせ ずにタスクを完了したかを確認するには、cloud-init/var/log/cloud-init-output.log にある 出力ログファイルを調べ、エラーメッセージが出力されていないか探します。 デバッグの詳細情報を取得するには、ディレクティブ cloud-init を指定して output : { all : '| tee -a /var/log/cloud-init-output.log' } データセクションを含む MIME マルチパートアーカイブを作成します。このディレクティブ により、スクリプトから /var/log/cloud-init-output.log にコマンド出力が送信されま 365 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 起動時のコマンドの実行 す。cloud-init データ形式と MIME マルチパートアーカイブの作成方法の詳細については、 「cloud-init Formats」を参照してください。 ユーザーデータと cloud-init ディレクティブ cloud-init パッケージは、新しい Amazon Linux インスタンスが起動したときに、特定の側 面を設定します。具体的には、お客様のプライベートキーでログインできるように、 # .ssh/ authorized_keysec2-user ファイルを設定します。 構文は異なりますが、渡されたスクリプトと同じ方法で cloud-init ユーザーディレクティ ブを起動時のインスタンスに渡すことができます。cloud-init の詳細については、http:// cloudinit.readthedocs.org/en/latest/index.html にアクセスしてください。 Important ユーザーデータのスクリプトおよび cloud-init ディレクティブは、インスタンスを起動す るときの初回の起動サイクルでのみ実行されます。 cloud-init の Amazon Linux バージョンは、ベースパッケージで利用できるディレクティブの一部 をサポートしません。一部のディレクティブは名前が変更されています (たとえば、repo_update の 代わりに apt-upgrade が使用されています)。 起動時にこれらのタスクを追加すると、インスタンスの起動にかかる時間が増えます。タスクが完了 するまでさらに数分待ち、それからユーザーデータディレクティブが完了したことをテストしてくだ さい。 ユーザーデータで cloud-init ディレクティブをインスタンスに渡すには 1. AMI からのインスタンスの起動 (p. 303) でインスタンスを起動するための手順を行います が、Step 6 (p. 305) に到達したら、cloud-init ディレクティブテキストを [User data] フィール ドに貼り付けて、起動手順を完了します。下の例では、ディレクティブがウェブサーバーを作成 し、設定します。 #cloud-config repo_update: true repo_upgrade: all packages: - httpd24 - php56 - mysql55 - server - php56-mysqlnd runcmd: - service httpd start - chkconfig httpd on - groupadd www - [ sh, -c, "usermod -a -G www ec2-user" ] - [ sh, -c, "chown -R root:www /var/www" ] - chmod 2775 /var/www - [ find, /var/www, -type, d, -exec, chmod, 2775, {}, + ] - [ find, /var/www, -type, f, -exec, chmod, 0664, {}, + ] - [ sh, -c, 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php' ] 2. インスタンスが起動し、ユーザーデータのディレクティブを実行するまで十分待ち、それから意 図したタスクをディレクティブが完了したことを確認します。例では、ウェブブラウザにディレ 366 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ クティブが作成した PHP テストファイルの URL を入力します。この URL は、インスタンスの パブリック DNS アドレスにスラッシュとファイル名を追加したものです。 http://my.public.dns.amazonaws.com/phpinfo.php PHP 情報ページが表示されるはずです。 Tip PHP 情報ページが表示されない場合、使用しているセキュリティグループに HTTP (ポー ト 80) トラフィックを許可するルールが含まれていることを確認します。HTTP ルールを セキュリティグループに追加する方法については、セキュリティグループへのルールの 追加 (p. 585) を参照してください。 3. (オプション) ディレクティブが予定のタスクを完了しなかった場合、あるいはディレクティブが エラーなしでタスクを完了したかを確認するには、cloud-init/var/log/cloud-init-output.log にあ る 出力ログファイルを調べ、エラーメッセージが出力されていないか探します。デバッグの詳細 情報を取得するには、ディレクティブに次の行を追加します: output : { all : '| tee -a /var/log/cloud-init-output.log' } このディレクティブにより、runcmd 出力が /var/log/cloud-init-output.log に送信され ます。 API と CLI の概要 次のコマンドのいずれかを使用して起動時にインスタンスにユーザーデータを渡すことができます。 これらのコマンドラインインターフェイスの詳細については、「Amazon EC2 へのアクセス (p. 3)」 を参照してください。 • AWS CLI:run-instances コマンドで --user-data を使用します。ファイルからユーザーデータを 渡すには、file:// プレフィックスを使用します。 • AWS Tools for Windows PowerShell:New-EC2Instance コマンドで -UserData を使用します。 • Amazon EC2 Query API:RunInstances コマンドで UserData を使用します。 インスタンスメタデータとユーザーデータ インスタンスメタデータは、インスタンスに関するデータで、実行中のインスタンスを設定または管 理するために使用します。インスタンスメタデータはいくつかのカテゴリに分けられます。詳細につ いては、「インスタンスメタデータのカテゴリ (p. 375)」を参照してください。 EC2 インスタンスには、インスタンスの起動時に生成されるインスタンスアイデンティティドキュメ ントなどの動的データも含まれます。詳細については、「動的データのカテゴリ (p. 380)」を参照し てください。 また、インスタンスの起動時に提供したユーザーデータにアクセスすることもできます。たとえば、 インスタンスを設定するためにパラメーターを指定したり、単純なスクリプトをアタッチしたりでき ます。また、このデータを使用すると、より一般的な AMI を構築することもでき、この AMI は、起 動時に提供される設定ファイルにより、変更が可能になります。たとえば、さまざまな小規模ビジネ スを対象としたウェブサーバーを実行する場合に、すべてのサーバーで同じ AMI を使用し、起動時に ユーザーデータで指定した Amazon S3 バケットからコンテンツを取得できます。新しい顧客をいつ でも簡単に追加できます。その顧客のバケットを作成し、顧客のコンテンツを追加して、AMI を起動 すればよいのです。複数のインスタンスを同時に起動する場合、ユーザーデータはその予約において すべてのインスタンスで使用可能です。 367 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ Important インスタンスメタデータおよびユーザーデータにはそのインスタンス自体内からのみアクセ スできるものの、データは暗号化手法によって保護されていません。インスタンスにアクセ スできるユーザーなら誰でもそのメタデータを参照できます。したがって、重要なデータ (長 期間使用する暗号化キーなど) については、適切な安全策によって保護する必要があります。 パスワードなどの機密データは、ユーザーデータとして保存しないでください。 目次 • インスタンスメタデータの取得 (p. 368) • ユーザーデータを使用してインスタンスを設定する (p. 371) • ユーザーデータの取得 (p. 372) • 動的データの取得 (p. 372) • 例: AMI 作成インデックス値 (p. 372) • インスタンスメタデータのカテゴリ (p. 375) • インスタンスアイデンティティドキュメント (p. 380) インスタンスメタデータの取得 インスタンスメタデータは実行中のインスタンスから取得できるため、Amazon EC2 コンソールまた は AWS CLI を使用する必要はありません。これは、インスタンスから実行するスクリプトを記述し ているときに便利です。たとえば、インスタンスメタデータからインスタンスのローカル IP アドレス にアクセスして、外部アプリケーションへの接続を管理できます。 実行中のインスタンス内からインスタンスメタデータのすべてのカテゴリを表示するには、次の URI を使用します。 http://169.254.169.254/latest/meta-data/ インスタンスメタデータおよびユーザーデータの取得に使用する HTTP リクエストに対しては課金さ れません。 cURL などのツールを使用できます。インスタンスでサポートされている場合は、次のような GET コ マンドを使用することができます。 $ curl http://169.254.169.254/latest/meta-data/ $ GET http://169.254.169.254/latest/meta-data/ また、Instance Metadata Query ツールをダウンロードすることもできます。これにより、URI 全体ま たはカテゴリ名を入力する必要なく、インスタンスメタデータに対してクエリを実行できます。 http://aws.amazon.com/code/1825 すべてのインスタンスメタデータがテキスト (コンテンツタイプ text/plain) として返されます。 特定のメタデータリソースに対するリクエストは、適切な値または 404 - Not Found HTTP エラー コード (リソースを使用できない場合) を返します。 一般的なメタデータリソースに対するリクエスト (/ で終わる URI) は、使用可能なリソースのリスト または 404 - Not Found HTTP エラーコード (使用可能なリソースがない場合) を返します。リスト 項目は個別の行に表示され、各行の末尾には改行記号 (ASCII 10) が付いています。 368 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ インスタンスメタデータの取得の例 次の例では、使用できるインスタンスメタデータのバージョンを取得しています。これらのバージョ ンは、Amazon EC2 API バージョンと必ずしも関連しているとは限りません。以前のバージョンに存 在する構造および情報に依存するスクリプトがある場合は、以前のバージョンを使用することができ ます。 $ curl http://169.254.169.254/ 1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01 2009-04-04 2011-01-01 2011-05-01 2012-01-12 2014-02-25 latest 次の例では、上位レベルのメタデータ項目を取得しています。一部の項目は、VPC 内のインスタ ンスでのみ使用可能です。これらの項目の詳細については、「インスタンスメタデータのカテゴ リ (p. 375)」を参照してください。 $ curl http://169.254.169.254/latest/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ hostname instance-action instance-id instance-type kernel-id local-hostname local-ipv4 mac network/ placement/ public-hostname public-ipv4 public-keys/ reservation-id security-groups services/ 次の例では、前の例からメタデータ項目の一部の値を取得しています。 $ curl http://169.254.169.254/latest/meta-data/ami-id ami-12345678 $ curl http://169.254.169.254/latest/meta-data/reservation-id r-fea54097 369 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ $ curl http://169.254.169.254/latest/meta-data/local-hostname ip-10-251-50-12.ec2.internal $ curl http://169.254.169.254/latest/meta-data/public-hostname ec2-203-0-113-25.compute-1.amazonaws.com 次の例では、使用できるパブリックキーの一覧を取得しています。 $ curl http://169.254.169.254/latest/meta-data/public-keys/ 0=my-public-key 次の例は、パブリックキー0のフォーマットを示しています。 $ curl http://169.254.169.254/latest/meta-data/public-keys/0/ openssh-key 次の例では、パブリックキー0を取得しています (OpenSSH キーフォーマット)。 $ curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key ssh-rsa MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE my-public-key 次の例は、EC2-Classic プラットフォームの NAT インスタンス上の特定のネットワークインターフェ イス (MAC アドレスで示される) で使用可能な情報を示しています。 $ curl http://169.254.169.254/latest/meta-data/network/interfaces/ macs/02:29:96:8f:6a:2d/ device-number local-hostname local-ipv4s mac owner-id public-hostname public-ipv4s 次の例では、VPC 内に起動されたインスタンスのサブネット ID を取得しています。 $ curl http://169.254.169.254/latest/meta-data/network/interfaces/ macs/02:29:96:8f:6a:2d/subnet-id subnet-be9b61d7 370 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ Throttling クエリはインスタンスメタデータサービスでインスタンスごとにスロットリングし、インスタンスか らインスタンスメタデータサービスへの同時接続数を制限します。 AWS セキュリティ認証情報を取得するためにインスタンスメタデータサービスを使用している場合、 毎回のトランザクションで、または高頻度のスレッドやプロセスから同時に認証情報をクエリしない ようにします。スロットリングの原因となる可能性があります。代わりに、認証情報をキャッシュに 格納して有効期限が近づくまで待つことをお勧めします。 インスタンスメタデータサービスにアクセスする際にスロットリングした場合、エクスポネンシャル パックオフ戦略でクエリを再試行します。 ユーザーデータを使用してインスタンスを設定する ユーザーデータを指定するときは、以下の点に注意してください。 • ユーザーデータは不透明なデータとして取り扱われ、指定したデータがそのまま返されます。この データを解釈できるかどうかは、インスタンスによって異なります。 • ユーザーデータのサイズの上限は 16 KB です。この制限は、base64 エンコード形式でなく、raw 形式のデータに適用されます。 • ユーザーデータは、API に送信する前に base64 でエンコードする必要があります。AWS CLI と Amazon EC2 コンソールでは、base64 エンコーディングが自動的に実行されます。このデー タは、インスタンスに提示される前にデコードされます。base64 エンコードの詳細について は、http://tools.ietf.org/html/rfc4648 を参照してください。 • ユーザーデータはインスタンスの起動時にのみ実行されます。インスタンスを停止し、ユーザー データを変更した場合、インスタンスを起動しても、その新しいユーザーデータは自動的には実行 されません。 インスタンス起動時のユーザーデータを指定するには インスタンスの起動時のユーザーデータを指定できます。詳細については、「インスタンスの作 成 (p. 303)」、「cloud-init (p. 154)」および「Linux インスタンスでの起動時のコマンドの実 行 (p. 363)」を参照してください。 実行中のインスタンスのユーザーデータの変更 以前にユーザーデータが割り当てられていて、現在実行中のインスタンスのユーザーデータを変更で きます。新しいユーザーデータは、再起動後にインスタンスで使用できます。 Amazon EBS-backed インスタンスのユーザーデータを変更するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。 3. [Actions] をクリックして [Instance State] を選択して、[Stop] を選択します。 Warning インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されま す。したがって、インスタンスストアボリューム上に維持したいデータがある場合は、 必ず永続的ストレージにバックアップしてください。 4. 確認ダイアログボックスで [Yes, Stop ] をクリックします。インスタンスが停止するまで、数分 かかる場合があります。 5. インスタンスが選択された状態のまま、[Actions] を選択し、[Instance Settings] を選択して、 [View/Change User Data] を選択します。インスタンスの実行中はユーザーデータを変更できない ことに注意してください。表示することはできます。 371 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ 6. [View/Change User Data] ダイアログボックスで、ユーザーデータを更新し、[Save] を選択しま す。 ユーザーデータの取得 ユーザーデータを取得するには、次の URI を使用します。 http://169.254.169.254/latest/user-data ユーザーデータのリクエストは、データをそのままの状態で返します (コンテンツタイプ application/octet-stream). 次の例では、カンマで区切られたユーザーデータを返しています。 $ curl http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,, 次の例では、行で区切られたユーザーデータを返しています。 $ curl http://169.254.169.254/latest/user-data [general] instances: 4 [instance-0] s3-bucket: <user_name> [instance-1] reboot-on-error: yes 動的データの取得 実行中のインスタンス内から動的データを取得するには、次の URI を使用します。 http://169.254.169.254/latest/dynamic/ この例では、高レベルのインスタンスアイデンティティカテゴリを取得する方法を表示しています。 $ curl http://169.254.169.254/latest/dynamic/instance-identity/ pkcs7 signature document 動的データの詳細およびその取得方法の例については、「インスタンスアイデンティティドキュメン ト (p. 380)」を参照してください。 例: AMI 作成インデックス値 この例は、ユーザーデータおよびインスタンスメタデータの両方を使用してインスタンスを設定する 方法を示しています、 この例では、Alice がお気に入りの データベース AMI の 4 つのインスタンスを起動したいと考えてい ます。そのうち最初の 1 つはマスターとして、残りの 3 つはレプリカとして動作します。これらのイ ンスタンスを起動するときに、各レプリカントのレプリケーション戦略に関するユーザーデータを追 加したいと考えています。このデータはすべての 4 つのインスタンスで使用可能となるので、どの部 372 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ 分が各インスタンスに該当するかをそれぞれが認識できるように、ユーザーデータを構築する必要が あります。この構築は、各インスタンスに対して一意となる ami-launch-index インスタンスメタ データ値を使用して行うことができます。 Alice が構築したユーザーデータを次に示します。 replicate-every=1min | replicate-every=5min | replicate-every=10min replicate-every=1min データは最初のレプリカントの設定を定義し、replicate-every=5min は 2 番目のレプリカントの設定を定義するというように、それぞれが定義を行います。Alice は、個別 のインスタンスのデータをパイプシンボル (|) で区切って、このデータを ASCII 文字列として指定す ることにしました。 Alice は、run-instances コマンドを使用して 4 つのインスタンスを起動します。このとき、次のユー ザーデータを指定します。 aws ec2 run-instances --image-id ami-12345678 --count 4 --instance-type t2.micro --user-data "replicate-every=1min | replicate-every=5min | replicate-every=10min" 起動したすべてのインスタンスに、ユーザーデータのコピーと次に示す一般的なメタデータが含まれ ています。 • AMI ID: ami-12345678 • 予約 ID: r-1234567890abcabc0 • パブリックキー: none • セキュリティグループ名: default • インスタンスタイプ: t2.micro ただし、各インスタンスには所定の一意のメタデータが含まれます。 インスタンス 1 メタデータ 値 instance-id i-1234567890abcdef0 ami-launch-index 0 public-hostname ec2-203-0-113-25.compute-1.amazonaws.com public-ipv4 67.202.51.223 local-hostname ip-10-251-50-12.ec2.internal local-ipv4 10.251.50.35 インスタンス 2 メタデータ 値 instance-id i-0598c7d356eba48d7 ami-launch-index 1 public-hostname ec2-67-202-51-224.compute-1.amazonaws.com 373 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ メタデータ 値 public-ipv4 67.202.51.224 local-hostname ip-10-251-50-36.ec2.internal local-ipv4 10.251.50.36 インスタンス 3 メタデータ 値 instance-id i-0ee992212549ce0e7 ami-launch-index 2 public-hostname ec2-67-202-51-225.compute-1.amazonaws.com public-ipv4 67.202.51.225 local-hostname ip-10-251-50-37.ec2.internal local-ipv4 10.251.50.37 インスタンス 4 メタデータ 値 instance-id i-1234567890abcdef0 ami-launch-index 3 public-hostname ec2-67-202-51-226.compute-1.amazonaws.com public-ipv4 67.202.51.226 local-hostname ip-10-251-50-38.ec2.internal local-ipv4 10.251.50.38 Alice は ami-launch-index 値を使用して、ユーザーデータのどの部分が特定のインスタンスに該当する かを判断できます。 1. そのインスタンスの 1 つに接続し、ami-launch-index を取得して、それがレプリカントの 1 つであ ることを確認します。 $ curl http://169.254.169.254/latest/meta-data/ami-launch-index 2 2. ami-launch-index を変数として保存します。 $ ami_launch_index=`curl http://169.254.169.254/latest/meta-data/amilaunch-index` 3. ユーザーデータを変数として保存します。 $ user_data=`curl http://169.254.169.254/latest/user-data/` 374 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ 4. 最後に、Alice は cut コマンドを使用して、そのインスタンスに該当するユーザーデータの部分を抽 出します。 $ echo $user_data | cut -d"|" -f"$ami_launch_index" replicate-every=5min インスタンスメタデータのカテゴリ 次の表は、インスタンスメタデータのカテゴリをまとめたものです。 データ 説明 導入されたバージョン ami-id インスタンスの起動に使用される AMI ID。 1.0 ami-launch-index 同時に複数のインスタンスを起動し た場合、この値はインスタンスが起 動された順序を示します。最初に起 動されたインスタンスの値は 0 で す。 1.0 ami-manifest-path Amazon S3 での AMI のマニフェス トファイルのパス。Amazon EBSBacked AMI を使用してインスタン スを起動した場合、返される結果は unknown です。 1.0 ancestor-ami-ids この AMI を作成するために再バン ドルされたあらゆるインスタンスの AMI ID。この値は、AMI マニフェス トファイルが ancestor-amis キー を含む場合にのみ存在します。 2007-10-10 block-device-mapping/ami root/boot ファイルシステムを含む仮 想デバイス。 2007-12-15 block-device-mapping/ebs N Amazon EBS ボリュームに関連付 けられた仮想デバイス (存在する場 合)。Amazon EBS ボリュームは、 起動の時点またはインスタンスが最 後に開始された時点で存在している 場合にのみ、メタデータで使用でき ます。N は、Amazon EBS ボリュー ムのインデックス (ebs1 や ebs2 な ど) を示します。 2007-12-15 block-device-mapping/eph emeral N エフェメラルデバイスに関連付け られた仮想デバイス (存在する場 合)。N は、エフェメラルボリューム のインデックスを示します。 2007-12-15 block-device-mapping/root ルートデバイスに関連付けられた仮 想デバイスまたはパーティション、 あるいは仮想デバイス上のパーティ ション。ルート (/ または C:) ファイ ルシステムは、所定のインスタンス に関連付けられています。 2007-12-15 375 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ データ 説明 導入されたバージョン block-device-mapping/swap swap に関連付けられた仮想デバイ ス。存在しない場合もあります。 2007-12-15 hostname インスタンスのプライベート IPv4 1.0 DNS ホスト名。複数のネットワーク インターフェイスが存在する場合、 これは eth0 デバイス (デバイス番号 が 0 のデバイス) を示します。 iam/info 起動時にインスタンスに関連付け 2012-01-12 られた IAM ロールがある場合、 インスタンスの LastUpdated の日 付、InstanceProfileArn、InstanceProfileId など、インスタンスのプロファイ ルが更新された最終時刻に関する情 報が格納されます。そうでない場合 は、なしになります。 iam/security-credentials/ role-name 起動時にインスタンスに関連付 けられた IAM ロールがある場 合、role-name はロールの名前に なり、role-name に、そのロール に関連付けられた一時的なセキュ リティ認証情報が格納されます (詳 細については、「インスタンスメタ データからセキュリティ認証情報を 取得する (p. 635)」を参照してく ださい)。そうでない場合は、なしに なります。 instance-action バンドルの準備のために再起動する 2008-09-01 必要があることをインスタンスに伝 えます。有効な値: none | shutdown | bundle-pending. instance-id このインスタンスの ID。 1.0 instance-type インスタンスの種類。詳細に ついては、「インスタンスタイ プ (p. 167)」を参照してください。 2007-08-29 kernel-id このインスタンスで起動したカーネ ルの ID (ある場合)。 2008-02-01 local-hostname インスタンスのプライベート IPv4 2007-01-19 DNS ホスト名。複数のネットワーク インターフェイスが存在する場合、 これは eth0 デバイス (デバイス番号 が 0 のデバイス) を示します。 local-ipv4 インスタンスのプライベート IPv4 アドレス。複数のネットワークイン ターフェイスが存在する場合、これ は eth0 デバイス (デバイス番号が 0 のデバイス) を示します。 376 2012-01-12 1.0 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ データ 説明 導入されたバージョン mac インスタンスのメディアアクセスコ ントロール (MAC) アドレス。複数 のネットワークインターフェイスが 存在する場合、これは eth0 デバイ ス (デバイス番号が 0 のデバイス) を 示します。 2011-01-01 network/interfaces/macs/ mac/device-number そのインターフェイスに関連付けら 2011-01-01 れた固有のデバイス番号。デバイス 番号はデバイス名に対応します。例 えば、2 という device-number は eth2 デバイスを指します。このカ テゴリは、Amazon EC2 API および AWS CLI の EC2 コマンドで使用さ れる DeviceIndex および deviceindex フィールドに対応していま す。 network/interfaces/macs/ mac/ipv4-associations/pu blic-ip 各 public-ip アドレスに関連付け られ、そのインターフェイスに割り 当てられたプライベート IPv4 アド レス。 2011-01-01 network/interfaces/macs/ mac/ipv6s インターフェイスに関連付けられた IPv6 アドレス。VPC 内に起動され たインスタンスに対してのみ返され ます。 2016-06-30 network/interfaces/macs/ mac/local-hostname インターフェイスのローカルホスト 名。 2011-01-01 network/interfaces/macs/ mac/local-ipv4s インターフェイスに関連付けられた プライベート IPv4 アドレス。 2011-01-01 network/interfaces/macs/ mac/mac インスタンスの MAC アドレス。 2011-01-01 network/interfaces/macs/ mac/owner-id ネットワークインターフェイスの所 有者の ID。複数インターフェイス の環境では、インターフェイスは Elastic Load Balancing などのサー ドパーティによってアタッチでき ます。インターフェイス上のトラ フィックは、常にインターフェイス 所有者に対して課金されます。 2011-01-01 network/interfaces/macs/ mac/public-hostname インターフェイスのパブリック DNS (IPv4)。インスタンスが VPC 内に存在する場合、このカテゴリ は、enableDnsHostnames 属性 が true に設定されている場合にの み返されます。詳細については、 「Using DNS with Your VPC」を参 照してください。 2011-01-01 377 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ データ 説明 導入されたバージョン network/interfaces/macs/ mac/public-ipv4s インターフェイスに関連付けられた Elastic IP アドレス。インスタンス には複数の IPv4 アドレスが存在す る場合があります。 2011-01-01 network/interfaces/macs/ mac/security-groups ネットワークインターフェイスが属 するセキュリティグループ。VPC 内 に起動されたインスタンスに対して のみ返されます。 2011-01-01 network/interfaces/macs/ mac/security-group-ids ネットワークインターフェイスが 属するセキュリティグループの ID。VPC 内に起動されたインスタ ンスに対してのみ返されます。EC2VPC プラットフォームのセキュリ ティグループの詳細については、 「Security Groups for Your VPC」を 参照してください。 2011-01-01 network/interfaces/macs/ mac/subnet-id インターフェイスが存在するサブ ネットの ID。VPC 内に起動された インスタンスに対してのみ返されま す。 2011-01-01 network/interfaces/macs/ mac/subnet-ipv4-cidr-block インターフェイスが存在するサブ ネットの IPv4 CIDR ブロック。VPC 内に起動されたインスタンスに対し てのみ返されます。 2011-01-01 network/interfaces/macs/ mac/subnet-ipv6-cidr-blo cks インターフェイスが存在するサブ ネットの IPv6 CIDR ブロック。VPC 内に起動されたインスタンスに対し てのみ返されます。 2016-06-30 network/interfaces/macs/ mac/vpc-id インターフェイスが存在する VPC の ID。VPC 内に起動されたインス タンスに対してのみ返されます。 2011-01-01 network/interfaces/macs/ mac/vpc-ipv4-cidr-block インターフェイスが存在する VPC の IPv4 CIDR ブロック。VPC 内に 起動されたインスタンスに対しての み返されます。 2011-01-01 network/interfaces/macs/ mac/vpc-ipv4-cidr-blocks インターフェイスが存在する VPC の IPv4 CIDR ブロック。VPC 内に 起動されたインスタンスに対しての み返されます。 2016-06-30 network/interfaces/macs/ mac/vpc-ipv6-cidr-blocks インターフェイスが存在する VPC の IPv6 CIDR ブロック。VPC 内に 起動されたインスタンスに対しての み返されます。 2016-06-30 placement/availability-z one インスタンスが起動した利用可能 ゾーン。 2008-02-01 product-codes インスタンスに関連付けられた製品 コード (ある場合)。 2007-03-01 378 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ データ 説明 導入されたバージョン public-hostname インスタンスのパブリック DNS。インスタンスが VPC 内 に存在する場合、このカテゴリ は、enableDnsHostnames 属性 が true に設定されている場合にの み返されます。詳細については、 「Using DNS with Your VPC」を参 照してください。 2007-01-19 public-ipv4 パブリック IPv4 アドレス。インス タンスに Elastic IP アドレスが関連 付けられている場合、返される値は Elastic IP アドレスです。 2007-01-19 public-keys/0/openssh-key パブリックキー。インスタンスの起 動時に指定された場合のみ返されま す。 1.0 ramdisk-id 起動時に指定された RAM ディスク の ID (該当する場合)。 2007-10-10 reservation-id 予約の ID。 1.0 security-groups インスタンスに適用されるセキュリ ティグループの名前。 起動後は、VPC 内で実行されてい るインスタンスのセキュリティグ ループのみを変更できます。これ らの変更は、この場所と network/ interfaces/macs/mac/security-groups に反映されます。 1.0 services/domain リージョンの AWS リソースの ドメイン (us-east-1 の場合は amazonaws.com など)。 2014-02-25 services/partition リソースが置かれているパーティ ションです。標準の AWS リージョ ンの場合、パーティションは aws です。他のパーティションにリソー スがある場合、パーティションは aws-partitionname です。たとえ ば、中国 (北京) リージョンにあるリ ソースのパーティションは、awscn です。 2015-10-20 spot/termination-time スポットインスタンスのオペレー ティングシステムがシャットダウ ン信号を受信するおよその時刻 (UTC)。 この項目は、スポットイ ンスタンスに Amazon EC2 による 終了のマークが付けられている場 合にのみ存在し、時刻値 (たとえば 2015-01-05T18:02:00Z) が含まれま す。 ユーザー自身がスポットインス タンスを終了した場合、terminationtime 項目に時刻は設定されません。 2014-11-05 379 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ 動的データのカテゴリ 次の表は、動的データのカテゴリをまとめたものです。 データ 説明 導入された バージョン fws/instancemonitoring 顧客が CloudWatch で詳細な 1 分間隔のモニタリングを 有効にしているかどうかを示す値。有効な値: enabled | disabled 2009-04-04 instance-identity/ document インスタンス ID、プライベート IP アドレスなど、イン スタンスの属性を含む JSON。「インスタンスアイデン ティティドキュメント (p. 380)」を参照してください。 2009-04-04 instance-identity/ pkcs7 署名に対してドキュメントの真正性およびコンテンツを 確認するために使用されます。「インスタンスアイデン ティティドキュメント (p. 380)」を参照してください。 2009-04-04 instance-identity/ signature オリジンおよび権限を確認するために使用できる データ。「インスタンスアイデンティティドキュメン ト (p. 380)」を参照してください。 2009-04-04 インスタンスアイデンティティドキュメント インスタンスアイデンティティドキュメントは、インスタンスについて説明する JSON ファイルで す。インスタンスアイデンティティドキュメントには、署名と PKCS7 署名が添付されています。こ れを使用して、ドキュメント内の情報の正確性、オリジン、および正当性を検証することができま す。たとえば、更新が有料である無料のソフトウェアをダウンロードする場合があるとします。 インスタンスが起動するときにインスタンスアイデンティティドキュメントが生成され、インスタン スメタデータ (p. 367)を通じてインスタンスに公開されます。このドキュメントは、サブスクライブ したソフトウェア、インスタンスサイズ、インスタンスタイプ、オペレーティングシステム、AMI な ど、インスタンスの属性を検証します。 Important インスタンスアイデンティティドキュメントと署名には動的な特質があるため、インスタン スアイデンティティドキュメントと署名は、定期的に取得することをお勧めします。 インスタンスアイデンティティドキュメントと署名の取得 インスタンスアイデンティティドキュメントを取得するには、実行中のインスタンスから以下の URL を使用します。 http://169.254.169.254/latest/dynamic/instance-identity/document { "devpayProductCodes" : null, "availabilityZone" : "us-east-1d", "privateIp" : "10.158.112.84", "version" : "2010-08-31", "region" : "us-east-1", "instanceId" : "i-1234567890abcdef0", "billingProducts" : null, "instanceType" : "t1.micro", 380 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ "accountId" : "123456789012", "pendingTime" : "2015-11-19T16:32:11Z", "imageId" : "ami-5fb8c835", "kernelId" : "aki-919dcaf8", "ramdiskId" : null, "architecture" : "x86_64" } インスタンスの ID 署名を取得するには、実行中のインスタンスから以下の URL を使用します。 http://169.254.169.254/latest/dynamic/instance-identity/signature dExamplesjNQhhJan7pORLpLSr7lJEF4V2DhKGlyoYVBoUYrY9njyBCmhEayaGrhtS/AWY+LPx lVSQURF5n0gwPNCuO6ICT0fNrm5IH7w9ydyaexamplejJw8XvWPxbuRkcN0TAA1p4RtCAqm4ms x2oALjWSCBExample= PKCS7 署名を取得するには、実行中のインスタンスから以下の URL を使用します。 http://169.254.169.254/latest/dynamic/instance-identity/pkcs7 MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE 例: PKCS7 署名の確認 PKCS7 署名を使用して、リージョンの AWS パブリック証明書に対して検証することにより、インス タンスを確認できます。 すべてのパブリックリージョンの AWS 公開証明書は次のとおりです。 -----BEGIN CERTIFICATE----MIIC7TCCAq0CCQCWukjZ5V4aZzAJBgcqhkjOOAQDMFwxCzAJBgNVBAYTAlVTMRkw FwYDVQQIExBXYXNoaW5ndG9uIFN0YXRlMRAwDgYDVQQHEwdTZWF0dGxlMSAwHgYD VQQKExdBbWF6b24gV2ViIFNlcnZpY2VzIExMQzAeFw0xMjAxMDUxMjU2MTJaFw0z ODAxMDUxMjU2MTJaMFwxCzAJBgNVBAYTAlVTMRkwFwYDVQQIExBXYXNoaW5ndG9u IFN0YXRlMRAwDgYDVQQHEwdTZWF0dGxlMSAwHgYDVQQKExdBbWF6b24gV2ViIFNl cnZpY2VzIExMQzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQCjkvcS2bb1VQ4yt/5e ih5OO6kK/n1Lzllr7D8ZwtQP8fOEpp5E2ng+D6Ud1Z1gYipr58Kj3nssSNpI6bX3 VyIQzK7wLclnd/YozqNNmgIyZecN7EglK9ITHJLP+x8FtUpt3QbyYXJdmVMegN6P hviYt5JH/nYl4hh3Pa1HJdskgQIVALVJ3ER11+Ko4tP6nwvHwh6+ERYRAoGBAI1j k+tkqMVHuAFcvAGKocTgsjJem6/5qomzJuKDmbJNu9Qxw3rAotXau8Qe+MBcJl/U hhy1KHVpCGl9fueQ2s6IL0CaO/buycU1CiYQk40KNHCcHfNiZbdlx1E9rpUp7bnF lRa2v1ntMX3caRVDdbtPEWmdxSCYsYFDk4mZrOLBA4GEAAKBgEbmeve5f8LIE/Gf 381 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスメタデータとユーザーデータ MNmP9CM5eovQOGx5ho8WqD+aTebs+k2tn92BBPqeZqpWRa5P/+jrdKml1qx4llHW MXrs3IgIb6+hUIB+S8dz8/mmO0bpr76RoZVCXYab2CZedFut7qc3WUH9+EUAH5mw vSeDCOUMYQR7R9LINYwouHIziqQYMAkGByqGSM44BAMDLwAwLAIUWXBlk40xTwSw 7HX32MxXYruse9ACFBNGmdX2ZBrVNGrN9N2f6ROk0k9K -----END CERTIFICATE----- AWS GovCloud (US) リージョンの AWS パブリック証明書は次のとおりです。 -----BEGIN CERTIFICATE----MIIC7TCCAq0CCQCWukjZ5V4aZzAJBgcqhkjOOAQDMFwxCzAJBgNVBAYTAlVTMRkw FwYDVQQIExBXYXNoaW5ndG9uIFN0YXRlMRAwDgYDVQQHEwdTZWF0dGxlMSAwHgYD VQQKExdBbWF6b24gV2ViIFNlcnZpY2VzIExMQzAeFw0xMjAxMDUxMjU2MTJaFw0z ODAxMDUxMjU2MTJaMFwxCzAJBgNVBAYTAlVTMRkwFwYDVQQIExBXYXNoaW5ndG9u IFN0YXRlMRAwDgYDVQQHEwdTZWF0dGxlMSAwHgYDVQQKExdBbWF6b24gV2ViIFNl cnZpY2VzIExMQzCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQCjkvcS2bb1VQ4yt/5e ih5OO6kK/n1Lzllr7D8ZwtQP8fOEpp5E2ng+D6Ud1Z1gYipr58Kj3nssSNpI6bX3 VyIQzK7wLclnd/YozqNNmgIyZecN7EglK9ITHJLP+x8FtUpt3QbyYXJdmVMegN6P hviYt5JH/nYl4hh3Pa1HJdskgQIVALVJ3ER11+Ko4tP6nwvHwh6+ERYRAoGBAI1j k+tkqMVHuAFcvAGKocTgsjJem6/5qomzJuKDmbJNu9Qxw3rAotXau8Qe+MBcJl/U hhy1KHVpCGl9fueQ2s6IL0CaO/buycU1CiYQk40KNHCcHfNiZbdlx1E9rpUp7bnF lRa2v1ntMX3caRVDdbtPEWmdxSCYsYFDk4mZrOLBA4GEAAKBgEbmeve5f8LIE/Gf MNmP9CM5eovQOGx5ho8WqD+aTebs+k2tn92BBPqeZqpWRa5P/+jrdKml1qx4llHW MXrs3IgIb6+hUIB+S8dz8/mmO0bpr76RoZVCXYab2CZedFut7qc3WUH9+EUAH5mw vSeDCOUMYQR7R9LINYwouHIziqQYMAkGByqGSM44BAMDLwAwLAIUWXBlk40xTwSw 7HX32MxXYruse9ACFBNGmdX2ZBrVNGrN9N2f6ROk0k9K -----END CERTIFICATE----- AWS GovCloud (US) の詳細については、AWS GovCloud (US) User Guide を参照してください。 他のリージョンの場合、AWS サポートに問い合わせて AWS パブリック証明書を取得してください。 PKCS7 署名を確認するには 1. Amazon Linux インスタンスから、PKCS7 署名用の一時ファイルを作成します。 PKCS7=$(mktemp) 2. ファイルを -----BEGIN PKCS7----- ヘッダーに入力し、インスタンスメタデータ、改行、お よび -----END PKCS7----- フッターから PKCS7 署名の内容を追加します。 echo "-----BEGIN PKCS7-----" > $PKCS7 curl -s http://169.254.169.254/latest/dynamic/instance-identity/pkcs7 >> $PKCS7 echo "" >> $PKCS7 echo "-----END PKCS7-----" >> $PKCS7 3. インスタンスアイデンティティドキュメント用の一時ファイルを作成し、インスタンスメタデー タからドキュメントの内容を入力します。 DOCUMENT=$(mktemp) 382 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 混在コンピューティング環境 での EC2 インスタンスの特定 curl -s http://169.254.169.254/latest/dynamic/instance-identity/document > $DOCUMENT 4. テキストエディターを開き、AWSpubkey というファイルを作成します。上記の AWS パブリック 証明書の内容をコピーしてファイルに貼り付け、保存します。 5. 次のように、OpenSSL ツールを使用して署名を確認します。 openssl smime -verify -in $PKCS7 -inform PEM -content $DOCUMENT -certfile AWSpubkey -noverify > /dev/null Verification successful 混在コンピューティング環境での EC2 インスタ ンスの特定 別のクラウドインフラストラクチャ (Azure や Google Cloud Platform など) でコンピュータリソース を実行している場合や、VMware、Xen、KVM のオンプレミス仮想化を使用している場合、簡単な方 法を使用して、仮想マシンが EC2 インスタンスであるかどうかを調べることができる可能性がありま す。このトピックで説明する方法では、Xen ドメイン UUID を調べることにより、仮想マシンが EC2 インスタンスであるかどうかを簡単に判断できます。非 EC2 仮想マシンの UUID では、最初の 3 文字 に「ec2」が含まれていることはあまりありません。 Note EC2 にない Xen インスタンスがこの 3 文字で始まる可能性はわずかにあります。 Xen UUID は、次の方法を使用して調べることができます。 • Linux VM では、次のコマンドを実行します。 $ cat /sys/hypervisor/uuid これにより、UUID が返されます。 ec2e1916-9099-7caf-fd21-012345abcdef この例では、先頭に付加された「ec2」は、現在参照しているのがおそらく EC2 インスタンスであ ることを示しています。 • あるいは、HVM インスタンスの場合のみ、デスクトップ管理インターフェイス (DMI) にシステムシ リアル番号と同じ UUID およびシステム UUID (大文字) が含まれています。 $ sudo dmidecode --string system-serial-number ec2e1916-9099-7caf-fd21-32803a1d3c6b $ sudo dmidecode --string system-uuid EC2E1916-9099-7CAF-FD21-32803A1D3C6B Note 前の方法とは異なり、DMI を使用する方法にはスーパーユーザー権限が必要です。ただ し、一部の古い Linux カーネルでは、/sys/ を使用しても UUID が表示されないことがあ ります。 383 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 混在コンピューティング環境 での EC2 インスタンスの特定 この方法は、Windows Management Instrumentation コマンドライン (WMIC) を使用する Windows VM でも使用できます。 C:\>wmic path win32_computersystemproduct get uuid または、PowerShell を使用できます。 PS C:\>Get-WmiObject -query "select uuid from Win32_ComputerSystemProduct" | Select UUID • 暗号で検証された方法の場合、インスタンスアイデンティティドキュメント (署名など) を確認しま す。詳細については、「インスタンスアイデンティティドキュメント」を参照してください。 384 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 Systems Manager Amazon EC2 Systems Manager は、システムインベントリの収集、オペレーティングシステム (OS) パッチの適用、Amazon Machine Image (AMI) の作成の自動化、大規模なオペレーティングシ ステム (OS) とアプリケーションの設定などの管理タスクの自動化に役立つ機能のコレクションで す。Systems Manager は、マネージドインスタンス (Amazon EC2 インスタンス、または Systems Manager 用に設定されたオンプレミス環境のサーバーおよび仮想マシン (VM)) と連携して動作しま す。 Note Systems Manager の機能と共有コンポーネントは、追加料金なしで提供されます。お客様 は、使用した EC2 リソースに対してのみ料金を支払います。Systems Manager サービスの制 限の詳細については、アマゾン ウェブ サービス全般のリファレンス を参照してください。 Windows ユーザー向けの情報 Windows インスタンスの Amazon EC2 ユーザーガイドの「Amazon EC2 Systems Manager」を参照 してください。 Systems Manager は次のタスクを簡略化します。 タスク 詳細 リモート管理 (p. 440) Run Command では、大規模なマネージドイン スタンスの設定を安全にリモートで管理するこ とができます。Run Command を使用して、数 十または数百のインスタンスのターゲットセッ トでのアプリケーションの更新や Linux シェル スクリプトの実行などの臨時の変更を行いま す。 在庫管理 (p. 475) Inventory Manager は、マネージドインスタンス からのソフトウェアインベントリの収集プロセ スを自動化します。Inventory Manager を使用し て、OS とシステムの設定、およびアプリケー ションのデプロイに関するメタデータを収集で きます。 状態マネージメント (p. 483) State Manager は、マネージドインスタンスを 定義された状態に保つプロセスを自動化しま す。State Manager を使用して、インスタンスが スタートアップ時に特定のソフトウェアでブー トストラップされたり、特定のソフトウェア更 385 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ご利用開始にあたって タスク 詳細 新でパッチを適用されたりするように設定でき ます。 メンテナンスとデプロイメントの自動 化 (p. 490) 自動化では、一般的なメンテナンスとデプロイ のタスクが自動化されます。自動化を使用する と、Amazon Machine Image の作成と更新、ド ライバーとエージェントの更新プログラムの適 用、OS パッチまたはアプリケーション更新プロ グラムの適用が可能になります。 Systems Manager には、影響を最小限に抑えながらマネージドインスタンスを効率的に管理するため に、次の共有コンポーネントが含まれています。 コンポーネント 詳細 メンテナンスウィンドウ (p. 411) メンテナンスウィンドウでは、ビジネスクリ ティカルなオペレーションを中断することな く、パッチや更新プログラムのインストールな どの管理タスクを実行するようマネージドイン スタンスの定期的なスケジュールを設定できま す。 パラメーターストア (p. 430) パラメーターストアは設定データの管理を一元 化します。パラメーターストアを使用すると、 スクリプト、コマンド、または他の自動化およ び設定ワークフローでよく参照するパスワー ド、ライセンスキー、またはデータベース接続 文字列を保存できます。 ご利用開始にあたって Systems Manager の使用を開始するには、以下のタスクリストを使用します。 1. テスト環境で Systems Manager のチュートリアルを完了します。これらのチュートリアルでは、 ロールとアクセス権限を設定する方法、および EC2 インスタンスで Systems Manager の機能を使 用する方法を示します。 • メンテナンスウィンドウ (p. 413) • パラメーターストア (p. 436) • Run Command (p. 69) • Inventory Manager (p. 478) • State Manager (p. 487) • 自動化 (p. 493) 2. EC2 インスタンスおよびオンプレミスサーバーまたは VM の前提条件 (p. 387)を確認します。 3. マネージドインスタンスのアクティベーション (p. 398) (オンプレミスサーバーと VM のみ) を作 成します。 4. ユーザーとインスタンスのロールおよびアクセス権限 (p. 401)を設定します。チュートリアルで 説明されているロールとアクセス権限は制限されていません。「Systems Manager へのアクセス設 定」の情報を使用して、実稼働マシン用により制限の高いロールとアクセス権限を作成してくださ い。 目次 386 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 前提条件 • Systems Manager の前提条件 (p. 387) • • • • • SSM エージェントのインストール (p. 389) ハイブリッド環境での Systems Manager のセットアップ (p. 398) Systems Manager へのアクセス設定 (p. 401) Systems Manager 共有コンポーネント (p. 408) リモート管理 (p. 440) • 在庫管理 (p. 475) • 状態マネージメント (p. 483) • メンテナンスとデプロイの自動化 (p. 490) Systems Manager の前提条件 Amazon EC2 Systems Manager には次の前提条件があります。 Windows ユーザー向けの情報 「Amazon EC2 Systems Manager の前提条件」 (Windows インスタンスの Amazon EC2 ユーザーガ イド) を参照してください。 制約事項 Systems Manager はこれらのリージョンでのみ使用できます。 Note ハイブリッド環境のサーバーと VM では、データセンターまたはコンピューティング環境に 最も近いリージョンを選択することをお勧めします。 前提条件 要件 詳細 追加情報 サポートされるオペレーティン グシステム インスタンスが Linux のサポー トされているバージョンを実行 している必要があります。 Linux AMI の検索 (p. 81) 64 ビットおよび 32 ビット システム • Amazon Linux 2014.09、2014.03 以降 • Ubuntu Server 16.0.4 LTS、14.04 LTS、または 12.04 LTS • Red Hat Enterprise Linux (RHEL) 6.5 以降 • CentOS 6.3 以降 64 ビットシステムのみ • Amazon Linux 2015.09、2015.03 以降 • Red Hat Enterprise Linux (RHEL) 7.x 以降 387 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 前提条件 要件 詳細 追加情報 • CentOS 7.1 以降 SSM エージェント SSM エージェントは Systems Manager 要求を処理し、要求 に指定されたとおりにマシン を設定します。SSM エージェ ントは、EC2 インスタンス、 オンプレミスサーバーまたは VM、または他のクラウドプロ バイダーによってホストされた VM にダウンロードしてインス トールする必要があります。 SSM エージェントのインストー ル (p. 389) ニーズに応じて SSM エージェ ントを調整できるように、エー ジェントのソースコードが GitHub に用意されています。 含めることを希望する変更に ついて、プルリクエストを送信 することをお勧めします。ただ し、現在アマゾン ウェブ サー ビスはこのソフトウェアの修正 されたコピーの実行をサポート していません。 Systems Manager へのアクセ ス Systems Manager を使用して コマンドを実行するには、コマ ンドを処理するインスタンス用 に、AWS Identity and Access Management (IAM) EC2 イン スタンスロールを設定する必 要があります。また、コマン ドを実行するユーザー用に別 のユーザーロールを設定する必 要があります。両方のロールに は、SSM API と通信できる権 限ポリシーが必要です。 Note ハイブリッド環境の サーバーと VM の場 合、オンプレミスサー バーや VM、または別 のクラウドプロバイ ダーによりホストさ れる VM が SSM サー ビスと通信できるよ うにする IAM サービ スロールも作成する 必要があります。詳 細については、「IAM サービスロールの作 成 (p. 399)」を参照 してください。 388 Systems Manager へのアクセス 設定 (p. 401) Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントのインストール 要件 詳細 追加情報 インターネットアクセス EC2 インスタンスで、アウト バウンドのインターネットアク セスが可能であることを確認し ます。インバウンドのインター ネットアクセスは必須ではあり ません。 インターネットゲートウェイ Amazon S3 バケット (オプショ ン) System Manager の出力 は、Amazon Simple Storage Service (S3) バケットに格納 できます。Amazon EC2 コン ソールでの出力は、2500 文字 を超えると切り捨てられます。 さらに、 出力の整理に役立つ Amazon S3 キープレフィック ス (サブフォルダ) の作成も検 討してください。 バケットの作成 Note SSM は、EC2 メッセージングサービスを使用して、インスタンスの SSM エージェントと通 信します。トラフィックをモニタリングすると、ec2messages と通信中のインスタンスが表 示されます。* エンドポイント. SSM エージェントのインストール Amazon EC2 Systems Manager (SSM) エージェントは Systems Manager 要求を処理し、要求に指定 されたとおりにマシンを設定します。SSM エージェントのインストール、設定、またはアンインス トールには、次の手順を使用します。 Note ニーズに応じて調整できるように、SSM エージェントのソースコードは GitHub に用意され ています。含めることを希望する変更について、プルリクエストを送信することをお勧めし ます。ただし、現在アマゾン ウェブ サービスはこのソフトウェアの修正されたコピーの実行 をサポートしていません。 このセクションのコマンドでは、region を、SSM を使用できるリージョンに置き換える必要があり ます。ダウンロードに伴うリージョン間のデータ転送のコストを回避するには、EC2 インスタンスの リージョンを指定します。ハイブリッド環境のサーバーおよび VM の場合、クロスリージョンのデー タ転送コストはありませんが、データセンターやコンピューティング環境に最も近いリージョンを指 定することをお勧めします。 目次 • 起動時に EC2 インスタンスに SSM エージェントをインストールする (p. 390) • SSM エージェントの手動インストール (EC2 インスタンス上) (p. 391) • SSM エージェントがプロキシを使用するように設定する (p. 396) • SSM エージェントのアンインストール (p. 397) 389 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 起動時に EC2 インスタンスに SSM エージェントをインストールする 起動時に EC2 インスタンスに SSM エージェントを インストールする EC2 ユーザーデータを使用してインスタンスを初めて起動する際に SSM エージェントをインストー ルできます。起動ウィザードの [Configure Instance Details] ページで、[Advanced Details] を展開し、 次のスクリプトのいずれかをコピーして [User data] フィールドに貼り付けます。以下に例を示しま す。 Amazon Linux、RHEL、および CentOS 64 ビット #!/bin/bash cd /tmp curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_amd64/amazonssm-agent.rpm -o amazon-ssm-agent.rpm yum install -y amazon-ssm-agent.rpm Amazon Linux、RHEL、および CentOS 32 ビット #!/bin/bash cd /tmp curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_386/amazon-ssmagent.rpm -o amazon-ssm-agent.rpm yum install -y amazon-ssm-agent.rpm Ubuntu Server 16 64 ビット #!/bin/bash cd /tmp curl https://amazon-ssm-region.s3.amazonaws.com/latest/debian_amd64/amazonssm-agent.deb -o amazon-ssm-agent.deb dpkg -i amazon-ssm-agent.deb systemctl start amazon-ssm-agent Ubuntu Server 16 32 ビット #!/bin/bash cd /tmp curl https://amazon-ssm-region.s3.amazonaws.com/latest/debian_386/amazon-ssmagent.deb -o amazon-ssm-agent.deb dpkg -i amazon-ssm-agent.deb systemctl start amazon-ssm-agent Ubuntu Server 14 64 ビット 390 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントの手動イン ストール (EC2 インスタンス上) #!/bin/bash cd /tmp curl https://amazon-ssm-region.s3.amazonaws.com/latest/debian_amd64/amazonssm-agent.deb -o amazon-ssm-agent.deb dpkg -i amazon-ssm-agent.deb start amazon-ssm-agent Ubuntu Server 14 32 ビット #!/bin/bash cd /tmp curl https://amazon-ssm-region.s3.amazonaws.com/latest/debian_386/amazon-ssmagent.deb -o amazon-ssm-agent.deb dpkg -i amazon-ssm-agent.deb start amazon-ssm-agent 変更を保存して、ウィザードを完了します。インスタンスが起動すると、システムは SSM エージェ ントをインスタンスにコピーし、それを起動します。インスタンスがオンラインの場合は、Run Command を使用して設定できます。詳細については、「Amazon EC2 Run Command を使用したコ マンドの実行 (p. 444)」を参照してください。 SSM エージェントの手動インストール (EC2 インス タンス上) 以下のいずれかのスクリプトを使用して、Amazon Linux、Ubuntu、CentOS、または Red Hat Enterprise Linux に SSM エージェントをインストールします。以下のスクリプトで、region は、SSM を使用できるリージョンに置き換えます。 • SSM エージェントの Amazon Linux へのインストール (p. 391) • Ubuntu への SSM エージェントのインストール (p. 392) • Red Hat Enterprise Linux への SSM エージェントのインストール (p. 393) • CentOS への SSM エージェントのインストール (p. 395) SSM エージェントの Amazon Linux へのインストール SSM エージェントをインストールするには、Amazon Linux インスタンスに接続して次のステップを 実行します。Systems Manager を使用してコマンドを実行するインスタンスごとに以下のステップを 実行します。 SSM エージェントを Amazon Linux にインストールするには 1. インスタンスに一時ディレクトリを作成します。 mkdir /tmp/ssm 2. 一時ディレクトリに変更します。 cd /tmp/ssm 3. SSM インストーラーをダウンロードするには、次のコマンドのいずれかを使用します。ダウン ロードに伴うリージョン間のデータ転送のコストを回避するには、region を EC2 インスタンス のリージョンに置き換えます。 64 ビット 391 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントの手動イン ストール (EC2 インスタンス上) curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_amd64/amazonssm-agent.rpm -o amazon-ssm-agent.rpm 32 ビット curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_386/amazonssm-agent.rpm -o amazon-ssm-agent.rpm 4. SSM インストーラを実行します。 sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm 5. SSM エージェントが実行中であるかどうかを判断するために次のコマンドを実行します。このコ マンドによって "amazon-ssm-agent is running" と返されるはずです。 sudo status amazon-ssm-agent 6. 前のコマンドで "amazon-ssm-agent is stopped" と返された場合は、以下のコマンドを実行しま す。 a. サービスの開始. sudo start amazon-ssm-agent b. エージェントのステータスを確認します。 sudo status amazon-ssm-agent Ubuntu への SSM エージェントのインストール SSM エージェントをインストールするには、Ubuntu インスタンスに接続して次のステップを実行し ます。Systems Manager を使用してコマンドを実行するインスタンスごとに以下のステップを実行し ます。 Ubuntu に SSM エージェントをインストールするには 1. インスタンスに一時ディレクトリを作成します。 mkdir /tmp/ssm 2. 以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードし ます。region は、SSM を使用できる AWS リージョンのいずれかに置き換えます。ダウンロー ドに伴うリージョン間のデータ転送のコストを回避するには、EC2 インスタンスのリージョンを 指定します。 64 ビット curl https://amazon-ssm-region.s3.amazonaws.com/latest/debian_amd64/ amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb 32 ビット 392 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントの手動イン ストール (EC2 インスタンス上) curl https://amazon-ssm-region.s3.amazonaws.com/latest/debian_386/amazonssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb 3. SSM インストーラを実行します。 sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb 4. SSM エージェントが実行中であるかどうかを判断するために次のコマンドを実行します。 Ubuntu Server 14 sudo status amazon-ssm-agent Ubuntu Server 16 sudo systemctl status amazon-ssm-agent 5. 前のコマンドから "amazon-ssm-agent is stopped" または "inactive" が返された場合は、以下のコ マンドを実行します。 a. サービスの開始. Ubuntu Server 14 sudo start amazon-ssm-agent Ubuntu Server 16 sudo systemctl start amazon-ssm-agent b. エージェントのステータスを確認します。 Ubuntu Server 14 sudo status amazon-ssm-agent Ubuntu Server 16 sudo systemctl status amazon-ssm-agent Red Hat Enterprise Linux への SSM エージェントのインス トール SSM エージェントをインストールするには、Red Hat Enterprise Linux (RHEL) インスタンスに接続し て次のステップを実行します。Systems Manager を使用してコマンドを実行するインスタンスごとに 以下のステップを実行します。 Red Hat Enterprise Linux に SSM エージェントをインストールするには 1. インスタンスに一時ディレクトリを作成します。 393 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントの手動イン ストール (EC2 インスタンス上) mkdir /tmp/ssm 2. 以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードし ます。region は、SSM を使用できる AWS リージョンのいずれかに置き換えます。ダウンロー ドに伴うリージョン間のデータ転送のコストを回避するには、EC2 インスタンスのリージョンを 指定します。 64 ビット curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_amd64/amazonssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm 32 ビット curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_386/amazonssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm 3. SSM インストーラを実行します。 sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm 4. 以下のコマンドのいずれかを実行し、SSM エージェントが実行中であるかどうかを判断します。 このコマンドによって "amazon-ssm-agent is running" と返されるはずです。 RHEL 7.x sudo systemctl status amazon-ssm-agent RHEL 6.x sudo status amazon-ssm-agent 5. 前のコマンドで "amazon-ssm-agent is stopped" と返された場合は、以下のコマンドを実行しま す。 a. サービスの開始. RHEL 7.x sudo systemctl start amazon-ssm-agent RHEL 6.x sudo start amazon-ssm-agent b. エージェントのステータスを確認します。 RHEL 7.x sudo systemctl status amazon-ssm-agent RHEL 6.x 394 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントの手動イン ストール (EC2 インスタンス上) sudo status amazon-ssm-agent CentOS への SSM エージェントのインストール SSM エージェントをインストールするには、CentOS インスタンスに接続して以下のステップを実行 します。Systems Manager を使用してコマンドを実行するインスタンスごとに以下のステップを実行 します。 CentOS に SSM エージェントをインストールするには 1. インスタンスに一時ディレクトリを作成します。 mkdir /tmp/ssm 2. 以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードし ます。region は、SSM を使用できる AWS リージョンのいずれかに置き換えます。ダウンロー ドに伴うリージョン間のデータ転送のコストを回避するには、EC2 インスタンスのリージョンを 指定します。 64 ビット curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_amd64/amazonssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm 32 ビット curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_386/amazonssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm 3. SSM インストーラを実行します。 sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm 4. 以下のコマンドのいずれかを実行し、SSM エージェントが実行中であるかどうかを判断します。 このコマンドによって "amazon-ssm-agent is running" と返されるはずです。 CentOS 7.x sudo systemctl status amazon-ssm-agent CentOS 6.x status amazon-ssm-agent 5. 前のコマンドで "amazon-ssm-agent is stopped" と返された場合は、以下のコマンドを実行しま す。 a. サービスの開始. CentOS 7.x sudo systemctl start amazon-ssm-agent 395 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントがプロキシを使用するように設定する CentOS 6.x sudo start amazon-ssm-agent b. エージェントのステータスを確認します。 CentOS 7.x sudo systemctl status amazon-ssm-agent CentOS 6.x sudo status amazon-ssm-agent SSM エージェントがプロキシを使用するように設 定する SSM エージェント設定ファイルに http_proxy 設定と no_proxy 設定を追加して、HTTPプロキシ を通じて通信するように SSM エージェントを設定できます。このセクションには、upstart 環境およ び systemd 環境の手順が含まれています。 SSM エージェントがプロキシ (Upstart) を使用するように設定する 1. SSM エージェントをインストールした先のインスタンスに接続します。 2. VIM などのエディタで amazon-ssm-agent.conf ファイルを開きます。デフォルトでは、このファ イルは次の場所にあります。 /etc/init/amazon-ssm-agent.conf 3. このファイルに http_proxy 設定を次の形式で追加します。 env http_proxy=http://hostname:port 4. このファイルに no_proxy 設定を次の形式で追加します。以下に示す IP アドレスを指定する必 要があります。これは SSM のインスタンスメタデータのエンドポイントであり、この IP アドレ スがないと SSM に対する呼び出しは失敗します。 env no_proxy=169.254.169.254 5. 変更内容を保存し、エディタを閉じます。 6. 次のコマンドを使用して SSM エージェントを再起動します。 sudo restart amazon-ssm-agent 次の Upstart の例は、amazon-ssm-agent.conf ファイルでの http_proxy 設定と no_proxy 設定を示 しています。 description "Amazon SSM Agent" author "Amazon.com" start on (runlevel [345] and started network) 396 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM エージェントのアンインストール stop on (runlevel [!345] or stopping network) respawn env http_proxy=http://i-1234567890abcdef0:443 env no_proxy=169.254.169.254 chdir /usr/bin/ exec ./amazon-ssm-agent SSM エージェントがプロキシ (systemd) を使用するように設定する 1. SSM エージェントをインストールした先のインスタンスに接続します。 2. VIM などのエディタで amazon-ssm-agent.service ファイルを開きます。デフォルトでは、この ファイルは次の場所にあります。 /etc/systemd/system/amazon-ssm-agent.service 3. このファイルに http_proxy 設定を次の形式で追加します。 Environment="HTTP_PROXY=http://hostname:port" 4. このファイルに no_proxy 設定を次の形式で追加します。以下に示す IP アドレスを指定する必 要があります。これは SSM のインスタンスメタデータのエンドポイントであり、この IP アドレ スがないと SSM に対する呼び出しは失敗します。 Environment="no_proxy=169.254.169.254" 5. 6. 変更内容を保存し、エディタを閉じます。 以下のコマンドを使用して SSM エージェントを再起動します。 sudo systemctl stop amazon-ssm-agent sudo systemctl daemon-reload 次の systemd の例は、amazon-ssm-agent.service ファイルでの http_proxy 設定と no_proxy 設定 を示しています。 Type=simple Environment="HTTP_PROXY=http://i-1234567890abcdef0:443" Environment="no_proxy=169.254.169.254" WorkingDirectory=/opt/amazon/ssm/ ExecStart=/usr/bin/amazon-ssm-agent KillMode=process Restart=on-failure RestartSec=15min SSM エージェントのアンインストール SSM エージェントをアンインストールするには、次のコマンドを使用します。 Amazon Linux、RHEL、または Cent OS から SSM エージェントをアンインストールするには sudo yum erase amazon-ssm-agent –y Ubuntu から SSM エージェントをアンインストールするには 397 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ハイブリッド環境での Systems Manager のセットアップ sudo dpkg -r amazon-ssm-agent ハイブリッド環境での Systems Manager のセッ トアップ Amazon EC2 Systems Manager を使用すると、オンプレミスサーバーと仮想マシン (VM)、および他 のクラウドプロバイダーの VM をリモートで安全に管理できます。Systems Manager をこのように セットアップすることにより、以下のことが実現します。 • 同じツールやスクリプトを使用して 1 か所からオンプレミスとクラウドのワークロードをリモート で管理できる一貫したセキュアな方法が作成されます。 • AWS Identity and Access Management (IAM) を使用することでサーバーおよび VM で実行できるア クションのアクセス制御が一元化されます。 • すべてのアクションが AWS CloudTrail に記録されるため、サーバーと VM で実行されるアクショ ンの監査とビューが一元化されます。 • サービス実行の成功に関する通知が送信されるように CloudWatch イベント と Amazon SNS を設 定できるため、モニタリングが一元化されます。 Systems Manager 用にハイブリッドマシンをセットアップすると、EC2 コンソールにリストされ、他 の EC2 インスタンスと同様にマネージドインスタンスと呼ばれるようになります。 Windows ユーザー向けの情報 Windows インスタンスの Amazon EC2 ユーザーガイドの「ハイブリッド環境での Systems Manager の設定」を参照してください。 目次 • IAM サービスロールの作成 (p. 399) • マネージドインスタンスのアクティベーションを作成する (p. 399) • ハイブリッド環境のサーバーおよび VM への SSM エージェントのインストール (p. 400) ハイブリッド環境で Systems Manager を使い始めるには 1. IAM サービスおよびユーザーロールを作成する: IAM サービスロールがあれば、ハイブリッド環 境のサーバーと VM は Systems Manager SSM サービスとやり取りできます。IAM ユーザーロー ルがあれば、ユーザーは SSM API とやり取りして、Amazon EC2 コンソールからか直接に Run Command API を使用してコマンドを実行できます。サービスロールの作成については、このト ピックの後半で説明します。そこでは、ユーザーロールの作成方法に関するトピックへのリンク を示します。 2. 前提条件を確認する: ハイブリッド環境のサーバーと VM が Systems Manager の最小要件を満た していることを確認します。詳細については、「Systems Manager の前提条件 (p. 387)」を参 照してください。 3. マネージドインスタンスのアクティベーションを作成する: マネージドインスタンスのアクティ ベーションは、ハイブリッド環境の 1 つ以上のサーバーと VM を Systems Manager に登録しま す。マネージドインスタンスのアクティベーションの作成については、このトピックの後半で説 明します。 4. SSM エージェントのデプロイ: SSM エージェントは Systems Manager のリクエストを処理し、 リクエストに指定されたとおりにマシンを設定します。このトピックの後半で説明するように、 ハイブリッド環境のサーバーと VM に SSM エージェントをダウンロードしてインストールする 必要があります。 398 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM サービスロールの作成 IAM サービスロールの作成 ハイブリッド環境のサーバーおよび VM が Systems Manager SSM サービスと通信するには、IAM ロールが必要です。ロールは、SSM サービスに対する AssumeRole 信頼を付与します。 Note サービスロールの作成は AWS アカウントごとに一度のみ行う必要があります。 AWS CLI を使用してハイブリッド環境のサーバーおよび VM 用に IAM サービスロールを作成 するには 1. 以下の信頼ポリシー (この例では SSMService-Trust.json) のテキストファイルを作成しま す。.json ファイル拡張子を付けてこのファイルを保存します。 { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ssm.amazonaws.com"}, "Action": "sts:AssumeRole" } } 2. サービスロールを作成するには、create-role コマンドを使用します。この例で は、SSMServiceRole という名前のロールを作成します。 aws iam create-role --role-name SSMServiceRole --assume-role-policydocument file://SSMService-Trust.json 3. 以下のように、attach-role-policy を使用して SSMServiceRole でセッショントークンを作成でき ます。セッショントークンは、Systems Manager を使用してコマンドを実行するためのアクセス 権限をマネージドインスタンスに付与します。 aws iam attach-role-policy --role-name SSMServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM ユーザーが SSM API と通信できるようにする IAM ロールを作成する必要があります。詳細について は、「Systems Manager へのアクセス設定 (p. 401)」を参照してください。 マネージドインスタンスのアクティベーションを作 成する ハイブリッド環境のサーバーおよび VM をマネージドインスタンスとしてセットアップするには、 マネージドインスタンスのアクティベーションを作成する必要があります。アクティベーション が完了したら、アクティベーションコードと ID を受け取ります。このコードと ID の組み合わせ は、Amazon EC2 のアクセス ID とシークレットキーに似ており、マネージドインスタンスから Systems Manager サービスへのセキュアなアクセスが可能になります。 Important マネージドインスタンスのアクティベーションコードと ID を安全な場所に保存します。ハイ ブリッド環境のサーバーおよび VM に SSM エージェントをインストールするとき、このコー 399 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ハイブリッド環境のサーバーおよび VM への SSM エージェントのインストール ドと ID を指定します。コードと ID をなくした場合は、新しいアクティベーションを作成す る必要があります。 このセクションの手順では、SSM を使用できるリージョンを指定する必要があります。データセン ターやコンピューティング環境に最も近いリージョンを指定することをお勧めします。 Note マネージドインスタンスのアクティベーションを作成する場合は、アクティベーションの期 限が切れる日付けを指定します。有効期限日後にマネージドインスタンスを追加登録するに は、新しいアクティベーションを作成する必要があります。有効期限日は、登録されて実行 中のインスタンスには影響しません。 コンソールを使用してマネージドインスタンスのアクティベーションを作成するには 1. 2. Amazon EC2 コンソールを開き、ナビゲーションペインで [Commands] を展開して、 [Activations] を選択します。 [Create an Activation] を選択します。 3. フォームに入力し、[Create Activation] を選択します。 AWS CLI を使用してマネージドインスタンスのアクティベーションを作成するには 1. AWS Command Line Interface (AWS CLI) をインストールしたマシンで、CLI を使用して次のコ マンドを実行します。 aws ssm create-activation --default-instance-name name --iam-role IAM service role –-registration-limit number of managed instances -region region 以下に例を示します。 aws ssm create-activation --default-instance-name MyWebServers --iam-role RunCommandServiceRole –-registration-limit 10 --region us-east-1 2. Enter キーを押します。アクティベーションが正常に完了したら、システムからアクティベー ションコードと ID が返されます。アクティベーションコードと ID を安全な場所に保存します。 ハイブリッド環境のサーバーおよび VM への SSM エージェントのインストール 開始する前に、マネージドインスタンスのアクティベーションを完了した後に送信されたアクティ ベーションコードと ID を見つけます。次の手順では、このコードと ID を指定します。 ハイブリッド環境のサーバーおよび VM に SSM エージェントをインストールするには 1. 2. ハイブリッド環境のサーバーまたは VM にログオンします。 SSH に以下のコマンドブロックを貼り付けます。アクティベーションコード、アクティベーショ ン ID、SSM エージェントをダウンロードするリージョンを指定します。root ユーザーの場合は sudo が必要です。 Amazon Linux、RHEL 6.x、CentOS 6.x 上 mkdir /tmp/ssm 400 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド アクセス設定 sudo curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_amd64/ amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo stop amazon-ssm-agent sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo start amazon-ssm-agent RHEL 7.x および CentOS 7.x 上 mkdir /tmp/ssm sudo curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_amd64/ amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo systemctl start amazon-ssm-agent Ubuntu 上 mkdir /tmp/ssm sudo curl https://amazon-ssm-region.s3.amazonaws.com/latest/debian_amd64/ amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo stop amazon-ssm-agent sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo start amazon-ssm-agent 3. Enter キーを押します。 このコマンドは、ハイブリッド環境のサーバーまたは VM に SSM エージェントをダウンロードして インストールします。コマンドは、SSM エージェントを停止してから、サーバーまたは VM を SSM サービスに登録します。これで、サーバーまたは VM はマネージドインスタンスになりました。コ ンソールに表示されるこれらのインスタンスには、"mi-" というプレフィックスが付きます。List コ マンドを使用して、すべてのインスタンスを表示できます。詳細については、Amazon EC2 Systems Manager API Reference を参照してください。 Run Command を使用してマネージドインスタンスでコマンドを実行する方法については、 「Amazon EC2 Run Command を使用したコマンドの実行 (p. 444)」を参照してください。 Systems Manager へのアクセス設定 Amazon EC2 Systems Manager では、コマンドを処理する EC2 インスタンスの IAM ロールと、それ とは別にコマンドを実行するユーザーのロールが必要です。両方のロールには、SSM API と通信でき る権限ポリシーが必要です。SSM 管理ポリシーを使用するか、このセクションに示すように独自の ロールを作成してアクセス権限を指定するかを選択できます。 Systems Manager を使用してオンプレミスサーバーや VM、または他のクラウドプロバイダーによ りホストされた VM を設定する場合、IAM サービスロールも設定する必要があります。詳細について は、「IAM サービスロールの作成 (p. 399)」を参照してください。 Windows ユーザー向けの情報 「Systems Manager へのアクセス設定」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を 参照してください。 目次 401 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM 管理ポリシーを使用する • SSM 管理ポリシーを使用する (p. 402) • 独自のロールとポリシーの設定 (p. 402) • EC2 インスタンスロールを使用する EC2 インスタンスを作成する (p. 407) SSM 管理ポリシーを使用する &SSM; 用の IAM 管理ポリシーを使用すると、Systems Manager のユーザーおよびインスタンスにア クセス許可と権限を迅速に設定できます。これらのポリシーは、次のスクリーンショットに示すよう に、IAM コンソールの [Policies] ページで SSM を検索することによって確認できます。 管理ポリシーは以下の役割を果たします。 • AmazonEC2RoleforSSM (インスタンス信頼ポリシー): インスタンスが Run Command API とやり 取りできるようになります。 • AmazonSSMFullAccess (ユーザー信頼ポリシー): SSM API および SSM JSON ドキュメントに対 するアクセス権限をユーザーに付与します。このポリシーは、管理者および信頼されたパワーユー ザーに割り当てます。 • AmazonSSMReadOnlyAccess (ユーザー信頼ポリシー): Get や List などの読み取り専用 API アク ションに対するアクセス権限をユーザーに付与します。 これらのポリシーを設定する方法については、「管理ポリシーとインラインポリシー」を参照してく ださい。 独自のロールとポリシーの設定 SSM 管理ポリシーを使用しない場合は、次の手順を使用して SSM EC2 インスタンスロールおよび SSM ユーザーアカウントを作成および設定します。 Important 既存の EC2 インスタンスロールおよびユーザーアカウントを使用する場合、このセクション に記載されているポリシーを、ロールおよびユーザーアカウントにアタッチする必要があり ます。また、ec2.amazonaws.com が EC2 インスタンスロールの信頼ポリシーに含まれてい ることを確認する必要があります。詳細については、「信頼ポリシーの確認 (p. 406)」を参 照してください。 トピック • EC2 インスタンスの IAM ポリシーの作成 (p. 402) • IAM ユーザーポリシーの作成 (p. 404) • • • • 制限付き IAM ユーザーポリシーの作成 (p. 405) EC2 インスタンスロールの作成 (p. 406) 信頼ポリシーの確認 (p. 406) ユーザーアカウントの作成 (p. 407) EC2 インスタンスの IAM ポリシーの作成 次に示している IAM ポリシーでは、EC2 インスタンスが Run Command API とやり取りできるよう になります。ロールを作成し、このトピックで次のポリシーをそのロールにアタッチします。 402 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 独自のロールとポリシーの設定 EC2 インスタンスの IAM ポリシーを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで、[Policies] を選択します (IAM の初回使用時は、[Get Started]、[Create Policy] の順に選択します)。 3. [Create Your Own Policy] の横の [Select] を選択します。 4. ポリシー名 (SystemsManagerInstance など) および説明を入力し、次に示すポリシーをコピーし て [Policy Document] フィールドに貼り付けます。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeAssociation", "ssm:GetDocument", "ssm:ListAssociations", "ssm:UpdateAssociationStatus", "ssm:UpdateInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2messages:AcknowledgeMessage", "ec2messages:DeleteMessage", "ec2messages:FailMessage", "ec2messages:GetEndpoint", "ec2messages:GetMessages", "ec2messages:SendReply" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstanceStatus" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ds:CreateComputer", "ds:DescribeDirectories" ], "Resource": "*" }, 403 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 独自のロールとポリシーの設定 { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads" ], "Resource": "*" } ] } Important 5. この IAM ポリシーの最後のセクションでは、Amazon リソースネーム (ARN) を指定し て Amazon S3 バケットへのアクセスを制限できます。たとえば、最後の "Resource": "*" 項目を "Resource": "arn:aws:s3:::AnS3Bucket/* に変更できます。 [Validate Policy] を選択します。ポリシーが有効であることを検証します。エラーが発生した場合 は、始めかっこと終わりかっこ { } が含まれていることを確認してください。ポリシーを検証した 後で、[Create Policy] を選択します。 IAM ユーザーポリシーの作成 IAM ユーザーポリシーにより、[Command document] リストでユーザーが表示できる SSM ドキュ メントが決まります。ユーザーは、Amazon EC2 コンソールで、または Windows PowerShell 用の AWS CLIこのポリシーでは、SSM JSON ドキュメントに対してユーザーが実行できるアクションも制 限されます。 Note ユーザーアカウントを作成し、後でそのアカウントにポリシーをアタッチします。 次の手順の IAM ポリシーでは、ユーザーはインスタンスで任意の SSM アクションを実行できま す。、信頼されている管理者のみに、このポリシーを割り当てます。他のすべてのユーザーには、こ のセクションで説明するように制限付き IAM ポリシーを作成します。 IAM ユーザーポリシーを作成するには 1. 2. 前の手順を繰り返してユーザー用のポリシーを作成します。 以下のポリシーをコピーして [Policy Document] フィールドに貼り付け、ポリシーを作成します。 { "Version": "2012-10-17", 404 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 独自のロールとポリシーの設定 "Statement": [ { "Effect": "Allow", "Action": [ "ssm:*", "ec2:DescribeInstanceStatus" ], "Resource": "*" } ] } 制限付き IAM ユーザーポリシーの作成 制限付き IAM ユーザーポリシーを作成し、さらに Run Command へのアクセスを委任します。次に示 す IAM ポリシーの例では、SSM JSON ドキュメントのリスト、これらのドキュメントの詳細表示、 ドキュメントの使用によるコマンド送信、送信したコマンドのキャンセルや詳細表示をユーザーに許 可します。2 番目の Resource セクションの "arn:aws:ec2:us-east-1:*:instance/i-xxxxxxxxxxxxxxxxx" 項目で指定されているように、ユーザーには、3 つのインスタンスで ドキュメントを実行する権限 があります。ユーザーが現在アクセスできる (AWS ユーザーアカウントに基づいて) 任意のインスタ ンスでコマンドを実行できるようにアクセス権をユーザーに付与するには、Resource セクションで "arn:aws:ec2:us-east-1:*:instance/*" と指定し、他のインスタンスリソースを削除します。 Resource セクションには、S3 ARN エントリが含まれています。 arn:aws:s3:::bucket_name 次のようにこのエントリをフォーマットすることもできます。 arn:aws:s3:::bucket_name/* -orarn:aws:s3:::bucket_name/key_prefix_name { "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:ListDocuments", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:DescribeInstanceInformation" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ssm:SendCommand", "Effect": "Allow", "Resource": [ "arn:aws:ec2:us-east-1:*:instance/i-1234567890abcdef0", "arn:aws:ec2:us-east-1:*:instance/i-0598c7d356eba48d7", "arn:aws:ec2:us-east-1:*:instance/i-345678abcdef12345", 405 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 独自のロールとポリシーの設定 "arn:aws:s3:::bucket_name", "arn:aws:ssm:us-east-1:*:document/RestartLinuxService" ] }, { "Action": [ "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ec2:DescribeInstanceStatus", "Effect": "Allow", "Resource": "*" } ] } IAM ユーザーポリシーの作成については、「管理ポリシーとインラインポリシー」を参照してくださ い。 EC2 インスタンスロールの作成 EC2 インスタンスロールでは、インスタンスが SSM API とやり取りできるようになります。ロール では、前に作成した EC2 インスタンスポリシーを使用します。 EC2 インスタンスロールを作成するには 1. IAM コンソールのナビゲーションペインで、[Roles]、[Create New Role] の順に選択します。 2. [Set Role Name] ページで、ロールの名前を入力します。SystemsManagerInstance など、インス タンスロールであるとわかる名前にします。[Next Step] を選択します。 [Select Role Type] ページで、[Amazon EC2] の隣にある [Select] を選択します。 [Attach Policy] ページで、先ほど作成した SystemsManagerInstance ポリシーを選択します。 [Next Step] を選択します。 ロール情報を確認し、[Create Role] を選択します。 3. 4. 5. 信頼ポリシーの確認 既存の EC2 インスタンスロールを使用する場合、ロールの信頼ポリシーに ec2.amazonaws.com が含 まれていることを確認する必要があります。新しい EC2 インスタンスロールを作成した場合は、信頼 されたエンティティとして ec2.amazonaws.com を追加する必要があります。 信頼ポリシーを確認するには 1. 2. 3. 4. IAM コンソールのナビゲーションペインで、[Roles] を選択し、作成したサーバーロールを選択し ます。 [Trust Relationships] を選択します。 [Trusted Entities] の下に、ec2.amazonaws.com が表示されていることを確認します。表示されて いない場合は、[Edit Trust Relationship] を選択します。 以下のポリシーをコピーして [Policy Document] フィールドに貼り付け、ポリシーを作成します。 { 406 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2 インスタンスロールを使用 する EC2 インスタンスを作成する "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } ユーザーアカウントの作成 ユーザーアカウントを使用すると、ユーザーはインスタンスで SSM API を呼び出すことができます。 このアカウントでは、前に作成した IAM ユーザーポリシーを使用します。 ユーザーアカウントを作成するには 1. IAM コンソールの [Users] ページで、[Create New Users] を選択します。 2. ユーザー名 (SystemsManagerUser など) を指定し、[Generate an access key for each user] オプ ションが選択されていることを確認します。 3. [Create] を選択します。 4. [Download Credentials] を選択します。デフォルトでは、認証情報を .csv ファイルとして保存す るようにシステムから求められます。 Important ダウンロードした .csv ファイルから SystemsManagerUser アクセスキーとシークレット キーを書き留めておきます。 5. [Close] を選択します。 6. [IAM ダッシュボード] で、[Users] を選択し、作成したユーザーを見つけます。 7. ユーザー名を選択し (名前の横にあるオプションは選択しないでください)、[Attach Policy] を選択 します。 8. 先ほど作成したユーザーポリシーを選択し、[Attach Policy] を選択します。 EC2 インスタンスロールを使用する EC2 インスタ ンスを作成する この手順では、作成したロールを使用する EC2 インスタンスを作成する方法について説明しま す。EC2 インスタンスへのロールの割り当ては、そのインスタンスの起動時に行う必要があります。 すでに実行されているインスタンスにロールを割り当てることはできません。代わりに、インスタン スのイメージを作成してから、割り当てられたロールを使用して、そのイメージからインスタンスを 起動します。 EC2 インスタンスロールを使用するインスタンスを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. サポートされているリージョンを選択します。 3. [Launch Instance] を選択し、[Linux] インスタンスを選択します。 4. インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 407 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 共有コンポーネント 5. [IAM role] ドロップダウンリストで、先ほど作成した EC2 インスタンスロールを選択します。 6. ウィザードを終了します。 Systems Manager を使用して設定する他のインスタンスを作成した場合は、それらのインスタンスご とに EC2 インスタンスロールを指定する必要があります。 Systems Manager 共有コンポーネント Amazon EC2 Systems Manager には、以下の共有コンポーネントが含まれます。これらのコンポーネ ントは、マネージドインスタンスの管理プロセスを標準化、自動化、簡素化するように設計されてい ます。 Windows ユーザー向けの情報 Windows インスタンスの Amazon EC2 ユーザーガイド の「Amazon EC2 Systems Manager 共有コン ポーネント」を参照してください。 開始する前に EC2 インスタンスと、オンプレミスサーバーまたは仮想マシンが Systems Manager の前提条件を満 たしていることを確認します。詳細については、「Systems Manager の前提条件 (p. 387)」を参照 してください。 目次 • Systems Manager 共有コンポーネントの cron スケジュールの指定 (p. 408) • Systems Manager メンテナンスウィンドウ (p. 411) • Systems Manager パラメーターストア (p. 430) Systems Manager 共有コンポーネントの cron スケ ジュールの指定 Systems Manager State Manager を使用して Systems Manager メインテナンスウィンドウまたは 関連付けを作成する場合、ウィンドウ/関連付けを実行するタイミングのスケジュールを指定しま す。System Manager では、スケジュールを指定する形式として、時間ベースのエントリ (cron 式) ま たは頻度ベースのエントリ (rate 式) のいずれかを使用できます。 例: この cron 式ではメンテナンスウィンドウまたは関連付けを毎週火曜日の午後 4 (16:00) 時に実行し ます: cron(0 16 ? * TUE *) この式を AWS CLI で指定するには、次のように -- schedule パラメーターを使います。 --schedule "cron(0 16 ? * TUE *)" 例: この rate 式ではメンテナンスウィンドウまたは関連付けを 1 日おきに実行します: rate(2 days) この式を AWS CLI で指定するには、次のように -- schedule パラメーターを使います。 --schedule "rate(2 days)" cron 式は 6 つの必須フィールドがあります。フィールドは空白で区切ります。 408 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド cron スケジュール 分 時間 日 月 曜日 年 意味 0 10 * * ? * 毎日午前 10:00 (UTC) に実行 15 12 * * ? * 毎日午後 12:15 (UTC) に実行 0 18 ? * MON-FRI * 毎週月曜日 から金曜日 まで午後 6:00 (UTC) に実行 0 8 1 * ? * 毎月 1 日の 午前 8:00 (UTC) に実 行 0/15 * * * ? * 15 分ごとに 実行 0/10 * ? * MON-FRI * 月曜日から 金曜日まで 10 分ごとに 実行 0/5 8-17 ? * MON-FRI * 月曜日から 金曜日まで 午前 8:00 か ら午後 5:55 (UTC) まで 5 分ごとに実 行 次の表は、その他の cron 式の例です。 cron 式の例 実行時間 0 0 2 ? 1/1 THU#3 * 毎月第 3 木曜日の午前 02:00 0 15 10 ? * * 毎日午前 10:15 0 0 0 21 1/1 ? * 毎月 21 日の真夜中 0 15 10 ? * MON-FRI 毎週月〜金の午前 10:15 002L*? 毎月最終日の午前 02:00 0 15 10 ? * 6L 毎月の最終金曜日の午前 10:15 次の表は、サポートされている必須 cron エントリの値の一覧です。 フィールド 値 ワイルドカード 分 0-59 ,-*/ 409 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド cron スケジュール フィールド 値 ワイルドカード 時間 0-23 ,-*/ 日 1-31 ,-*?/LW 月 1-12 または JAN-DEC ,-*/ 曜日 1-7 または SUN-SAT ,-*?/L 年 1970-2199 ,-*/ Note cron 式の日フィールドおよび曜日フィールドに同じ 値を指定することはできません。 一方の フィールドに値を指定すると、もう一方のフィールドで ? (疑問符) を使用する必要がありま す。 ワイルドカード cron 式では、以下のワイルドカード文字がサポートされます。 • ワイルドカード , (カンマ) には追加の値が含まれます。 月フィールドの、「JAN,FEB,MAR」は、1 月、2 月、3 月を含みます。 • ワイルドカード - (ダッシュ) は範囲を指定します。 日フィールドの、「1-15」は、指定した月の 1 日から 15 日を含みます。 • ワイルドカード * (アスタリスク) にはフィールドのすべての値が含まれます。 時間フィールドの、* にはすべての時間が含まれています。 • ワイルドカード / (スラッシュ) で増分を指定します。 分フィールドで、「1/10」と入力して、その 時間の最初の分から始めて、10 分毎を指定できます (11 分、21 分、31 分など)。 • ? (疑問符) ワイルドカードは任意を意味します。 Day-of-month フィールドで 7 と入力し、7 日が何 曜日であってもかまわない場合、Day-of-week フィールドに ? を入力します。 • Day-of-month フィールドまたは Day-of-week フィールドの、ワイルドカード L は月または週の最終 日を指定します。 • Day-of-month フィールドの、ワイルドカード W は、平日を指定します。 Day-of-month フィールド で、「3W」は月の 3 番目の平日に最も近い日を指定します。 Note 5 分より短い間隔を導き出す cron 式はサポートされていません。曜日フィールドと日フィー ルドの値の両方を指定することはまだ完全にはサポートされていません (現時点では、いずれ かのフィールドで「?」文字を使用する必要があります)。 cron 式の詳細については、「CRON expression」 (Wikipedia ウェブサイト) を参照してください。 rate 式 rate 式には以下の 2 つの必須フィールドがあります。フィールドは空白で区切ります。 フィールド 値 値 正数 410 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ フィールド 値 単位 分、時間、または日 Note 値が 1 に等しい場合、単位は単数形であることが必要です。同様に、1 より大きい値の場合、 単位は複数であることが必要です。たとえば、rate(1 hours) と rate(5 hour) は有効ではありま せんが、rate(1 hour) と rate(5 hours) は有効です。 Systems Manager メンテナンスウィンドウ Systems Manager メンテナンスウィンドウでは、オペレーティングシステム (OS) のパッチ適用、ド ライバーの更新、ソフトウェアのインストールなど、インスタンスに対して破壊的になり得るアク ションを実行するスケジュールを定義できます。各メンテナンスウィンドウには、スケジュール、期 間、登録されたターゲットのセット、登録されたタスクのセットがあります。各タスクは、登録され たターゲットのセットのうち、それぞれ対応するターゲットに対して実行されるように定義します。 現在、アプリケーションのインストール、SSM エージェントのインストールまたは更新、、シェルス クリプトの実行などのタスクを、Amazon EC2 の Run Command で実行できます。 Note Systems Manager の機能と共有コンポーネントは、追加料金なしで提供されます。お客様 は、使用した EC2 リソースに対してのみ料金を支払います。Systems Manager サービスの制 限の詳細については、アマゾン ウェブ サービス全般のリファレンス を参照してください。 Windows ユーザー向けの情報 Windows インスタンスの Amazon EC2 ユーザーガイド の「Amazon EC2 メンテナンスウィンドウ」 を参照してください。 目次 • メンテナンスウィンドウの作成 (p. 411) • メンテナンスウィンドウへのアクセスの設定 (p. 412) • メンテナンスウィンドウのチュートリアル (p. 413) メンテナンスウィンドウの作成 メンテナンスウィンドウを作成するには、以下のタスクを完了する必要があります。 • 1 つ以上の SSM コマンドドキュメントを作成し、それらのドキュメントで、メンテナンスウィンド ウの実行時にインスタンスに対して実行されるタスクを定義します。SSM コマンドドキュメントを 作成する方法については、「SSM ドキュメントの作成 (p. 453)」を参照してください。 • メンテナンスウィンドウを作成し、そのスケジュールを定義します。 • メンテナンスウィンドウでターゲットを登録します。ターゲットはインスタンス ID または EC2 タ グで定義できます。 • メンテナンスウィンドウで 1 つ以上のタスク (SSM コマンドドキュメント) を登録します。 これらのタスクの完了後、定義したスケジュールに従ってメンテナンスウィンドウが実行され、指定 したターゲットに対して SSM ドキュメントのタスクが実行されます。タスクが完了したら、Systems Manager によって実行の詳細がログに記録されます。 411 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ メンテナンスウィンドウの作成前に、メンテナンスウィンドウロールで Amazon リソースネーム (ARN) を設定する必要があります。詳細については、「メンテナンスウィンドウへのアクセスの設 定 (p. 412)」を参照してください。 メンテナンスウィンドウは、Amazon EC2 コンソールの [Maintenance Window] ページ、AWS CLI、SSM API、または AWS SDK を使用して作成できます。メンテナンスウィンドウの作成方法の 例については、「メンテナンスウィンドウのチュートリアル (p. 413)」を参照してください。 メンテナンスウィンドウへのアクセスの設定 以下の手順を使用して、EC2 メンテナンスウィンドウのセキュリティロールとアクセス権限を設定し ます。ロールとアクセス権限の設定後、「メンテナンスウィンドウのチュートリアル (p. 413)」の説 明に従って、メンテナンスウィンドウをテストできます。 Systems Manager 用の IAM ロールを作成する 以下の手順を使用して、メンテナンスウィンドウの作成および処理時に Systems Manager がお客様に 代わって機能できるようにするロールを作成します。 メンテナンスウィンドウの IAM ロールを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで [Roles] を選択し、続いて [Create New Role] を選択します。 3. [Step 1: Set Role Name] で、このロールをメンテナンスウィンドウロールとして識別する名前を 入力します。 4. [Step 2: Select Role Type] で、[Amazon EC2] を選択します。これは管理ポリシーであるため、シ ステムは [Step 3: Establish Trust] をスキップします。 5. [Step 4: Attach Policy] で、「AmazonSSMMaintenanceWindowRole」を選択します。 6. [Step 5: Review] で、[Role Name] と [Role ARN] の値を記録します。ロール ARN は、次の手順 で iam:PassRole ポリシーを IAM アカウントにアタッチするときに指定します。ロール名と ARN は、メンテナンスウィンドウを作成するときにも指定します。 7. [Create Role] を選択します。システムでは、[Roles] ページが返されます。 8. 作成したロールを見つけ、ダブルクリックします。 9. [Trust Relationships] タブを選択し、[Edit Trust Relationship] を選択します。 10. 以下のコードスニペットに示しているように、"ec2.amazonaws.com" の後にカンマ (,) を追加し てから、既存のポリシーに "Service": "ssm.amazonaws.com" を追加します。 { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com", "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } 11. [Update Trust Policy] を選択します。 412 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ 12. [Role ARN] をコピー、または書き留めます。この ARN は、メンテナンスウィンドウを作成する ときに指定します。 アカウントのアクセス権限を設定する Systems Manager はお客様のロールを引き受けることで、メンテナンスウィンドウでお客様が 指定したアクションを実行するためのアクセス権限を取得する必要があります。以下の手順を 使用して、iam:PassRole ポリシーを既存の IAM ユーザーアカウントにアタッチするか、新しい IAM アカウントを作成してこのポリシーをアタッチします。新しいアカウントを作成する場合 は、AmazonSSMFullAccess ポリシーをアタッチして、アカウントが SSM API とやり取りできるよう にする必要もあります。新規ユーザーアカウントを作成する必要がある場合、IAM ユーザーガイド の AWS アカウント内での IAM ユーザーの作成を参照してください。 iam:PassRole ポリシーをユーザーアカウントにアタッチするには 1. IAM コンソールのナビゲーションペインで、[Users] を選択し、ユーザーアカウントをダブルク リックします。 2. [Managed Policies] セクションで、AmazonSSMFullAccess ポリシーが表示されるか、または SSM API に対するアクセス権限を与える互換性のポリシーがあるかどうかを確認します。 3. [Inline Policies] セクションで、[Create User Policy] を選択します。このボタンが表示されない場 合は、[Inline Policies] の横にある下矢印を選択してから、[click here] を選択します。 4. [Set Permissions] ページで、[Custom Generator] を選択し、次に [Select] をクリックします。 5. [Effect] が [Allow] に設定されていることを確認します。 6. [AWS Service] で、[AWS Identity and Access Management] を選択します。 7. [Actions] で、[PassRole] を選択します。 8. [Amazon Resource Name (ARN)] フィールドに、前の手順で作成したロール ARN を貼り付けま す。 9. [Add Statement]、[Next Step] の順に選択します。 10. [Review Policy] ページで、[Apply Policy] を選択します。 メンテナンスウィンドウのチュートリアル 以下のチュートリアルでは、テスト環境でメンテナンスウィンドウを作成して実行します。これらの チュートリアルの使用前に、メンテナンスウィンドウのロールとアクセス権限を設定する必要があり ます。詳細については、「メンテナンスウィンドウへのアクセスの設定 (p. 412)」を参照してくださ い。 目次 • 新しいインスタンスの起動 (p. 413) • メンテナンスウィンドウコンソールのチュートリアル (p. 414) • メンテナンスウィンドウ CLI のチュートリアル (p. 415) 新しいインスタンスの起動 以下の手順を使用して、テストインスタンスを作成して、必要な AWS Identity and Access Management (IAM) ロールを割り当てます。このロールにより、インスタンスは Systems Manager (SSM) API とやり取りできるようになります。IAM ロールは、新しいインスタンスの作成時に割り当 てる必要があります。 すでに実行されているインスタンスにロールを割り当てることはできません。 ロールを既存のインスタンスのいずれかに割り当てる場合は、インスタンスのイメージを作成し、そ のイメージからインスタンスを起動して、インスタンスの起動時に IAM ロールを割り当てる必要があ ります。詳細については、「Amazon EBS-Backed Linux AMI の作成」を参照してください。 413 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ Systems Manager 用のロールを使用するインスタンスを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. サポートされているリージョンを選択します。 3. [Launch Instance] を選択し、[Linux] Amazon マシンイメージ (AMI) を選択します。 4. インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 5. [Auto-assign Public IP] で、[Enable] を選択します。 6. [IAM role] の横の [Create new IAM role] を選択します。 新しいタブに IAM コンソールが開きま す。 a. [Create New Role] を選択します。 b. [Step 1: Set Role Name] で、このロールを Systems Manager ロールとして識別する名前を 入力します。 c. [Step 2: Select Role Type] で、[Amazon EC2 Role for Simple Systems Manager] を選択しま す。 これは管理ポリシーであるため、システムは [Step 3: Establish Trust] をスキップしま す。 d. [Step 4: Attach Policy] で [AmazonEC2RoleforSSM] を選択します。 e. [Next Step] を選択し、さらに [Create Role] を選択します。 f. IAM コンソールを使用してタブを閉じます。 7. Amazon EC2 コンソールで、[Create New IAM role] の横の [Refresh] ボタンを選択します。 8. [IAM role] から、作成したロールを選択します。 9. ウィザードを終了して新しいインスタンスを起動します。 インスタンス ID を書き留めます。 こ の ID は、このチュートリアルの後の手順で指定する必要があります。 Important 作成したインスタンスで SSM エージェントをインストールする必要があります。詳細につい ては、「SSM エージェントのインストール (p. 389)」を参照してください。 メンテナンスウィンドウコンソールのチュートリアル 以下のチュートリアルでは、メンテナンスウィンドウの概念を紹介し、Amazon EC2 コンソール を使用してメンテナンスウィンドウを作成および設定するプロセスについて説明します。Systems Manager 用に設定したテストインスタンスで実行されるように、メンテナンスウィンドウを設定しま す。チュートリアルの終了後、テストインスタンスは削除できます。 メンテナンスウィンドウを作成するには 1. [Amazon EC2 console] を開き、ナビゲーションペインで [Systems Manager Shared Resources] を展開して、[Maintenance Windows] を選択します。 2. [Create a Maintenance Window] を選択します。 3. [Name] に、このメンテナンスウィンドウをテストメンテナンスウィンドウとして識別するための わかりやすい名前を入力します。 4. Allow unregistered targets: このオプションは、デフォルトでは選択されていません。つまり、マ ネージドインスタンスのうち、メンテナンスウィンドウのタスクを実行できるのは、インスタン ス ID でターゲットとして登録されているものだけです。タグで定義したターゲットは登録されて いる必要があります。 5. メンテナンスウィンドウのスケジュールをスケジュールビルダーで指定するか、または cron 形式 で指定します。cron 形式の詳細については、「Systems Manager 共有コンポーネントの cron ス ケジュールの指定 (p. 408)」を参照してください。 6. [Duration] フィールドに、メンテナンスウィンドウを実行する時間数を入力します。 414 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ 7. [Stop initiating tasks] フィールドに、メンテナンスウィンドウが終了してから新しいタスクの実行 のスケジュールが停止されるまでの時間数を入力します。 8. [Create maintenance window] を選択します。[Maintenance Window] ページに戻ります。先ほど 作成したメンテナンスウィンドウの状態が [Enabled] になっています。 メンテナンスウィンドウの作成後は、タスクを実行するターゲットを割り当てます。 メンテナンスウィンドウにターゲットを割り当てるには 1. [Maintenance Window] リストで、先ほど作成したメンテナンスウィンドウを選択します。 2. [Actions] リストで、[Register targets] を選択します。 3. [Owner information] フィールドに、お客様の名前や役職名を指定します。 4. [Select targets by] セクションで、[Specifying instances] を選択します。 5. このチュートリアルの始めに作成したインスタンスを選択します。 6. [Register targets] を選択します。 指定したタスクは、メンテナンスウィンドウの作成時に定義した期間に従って、選択したターゲット に対して実行されます。 ターゲットの割り当て後は、メンテナンスウィンドウの実行時に実行されるタスクを割り当てます。 メンテナンスウィンドウにタスクを割り当てるには 1. [Maintenance Window] リストで、先ほど作成したメンテナンスウィンドウを選択します。 2. [Actions] リストから [Register task] を選択します。 3. [Document] リストから、実行するタスクを定義する SSM コマンドドキュメントを選択 します。SSM コマンドドキュメントの作成の詳細については、「SSM ドキュメントの作 成 (p. 453)」を参照してください。 4. [Task Priority] フィールドで、このタスクの優先度を指定します。1 が最優先です。メンテナン スウィンドウのタスクは、優先度順にスケジュールされ、優先度が同じタスクは並行してスケ ジュールされます。 5. [Target by] セクションで、[Selecting unregistered targets] を選択してから、このチュートリアル の始めに作成したインスタンスを選択します。 6. [Parameters] セクションで、SSM コマンドドキュメントのパラメーターを指定します。 7. [Role] フィールドで、メンテナンスウィンドウ ARN を指定します。メンテナンスウィンドウ ARN の作成の詳細については、「メンテナンスウィンドウへのアクセスの設定 (p. 412)」を参 照してください。 8. [Execute on] フィールドで、メンテナンスウィンドウのタスクを同時に実行できるターゲットの 数、またはターゲット合計数に対する割合を指定できます。このフィールドは、タグを使用して 多数のインスタンスをターゲットにする場合に適しています。このチュートリアルでは、1 を指 定します。 9. [Stop after] フィールドで、新しいインスタンスへのタスクの送信が停止されるまでに許容される エラーの数を指定します。 10. [Register task] を選択します。 メンテナンスウィンドウ CLI のチュートリアル 以下のチュートリアルでは、メンテナンスウィンドウの概念を紹介し、AWS CLI を使用してメンテナ ンスウィンドウを作成および設定するプロセスについて説明します。Systems Manager 用に設定した テストインスタンスでチュートリアルを実行します。チュートリアルの終了後、テストインスタンス は削除できます。 415 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ CLI を使用したメンテナンスウィンドウの作成と設定 AWS CLI を使用してメンテナンスウィンドウを作成および設定するには 1. AWS CLI をローカルマシンにダウンロードします。 2. AWS CLI を開き、以下のコマンドを実行して、メンテナンスウィンドウを作成します。このウィ ンドウは、毎週火曜日の午後 4 時から 4 時間、カットオフを 1 時間として、関連付けなしのター ゲットを許可して、実行されます。schedule パラメーターの cron 形式での作成の詳細について は、「Systems Manager 共有コンポーネントの cron スケジュールの指定 (p. 408)」を参照して ください。 aws ssm create-maintenance-window --name "My-First-Maintenance-Window" --schedule "cron(0 16 ? * TUE *)" --duration 4 --cutoff 1 --allowunassociated-targets --region an SSM region 以下のような情報が返されます。 { "WindowId":"mw-ab12cd34ef56gh78" } 3. 以下のコマンドを実行して、AWS アカウントのすべてのメンテナンスウィンドウを一覧表示しま す。 aws ssm describe-maintenance-windows --region an SSM region 以下のような情報が返されます。 { "WindowIdentities":[ { "Duration":4, "Cutoff":1, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] } 4. 以下のコマンドを実行して、先ほど作成したインスタンスをこのメンテナンスウィンドウのター ゲットとして登録します。メンテナンスウィンドウのターゲット ID が返されます。この ID は、 後の手順でこのメンテナンスウィンドウのタスクの登録に使用します。 aws ssm register-target-with-maintenance-window --region an SSM region -window-id "mw-ab12cd34ef56gh78" --target "Key=InstanceIds,Values=ID" -owner-information "Single instance" --Resource-type "INSTANCE" 以下のような情報が返されます。 { "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" } 416 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ 以下のコマンドを使用して、複数のインスタンスを登録できます。 aws ssm register-target-with-maintenance-window --region an SSM region --window-id "mw-ab12cd34ef56gh78" --targets "Key=InstanceIds,Values=ID 1,ID 2" --owner-information "Two instances in a list" --Resource-type "INSTANCE" EC2 タグを使用しても、インスタンスを登録できます。 aws ssm register-target-with-maintenance-window --window-id "mwab12cd34ef56gh78" --targets "Key=tag:Environment,Values=Prod" "Key=Role,Values=Web" --owner-information "Production Web Servers" -resource-type "INSTANCE" 5. 以下のコマンドを使用して、メンテナンスウィンドウのターゲットを表示します。 aws ssm describe-maintenance-window-targets --region an SSM region -window-id "mw-ab12cd34ef56gh78" 以下のような情報が返されます。 { "Targets":[ { "ResourceType":"INSTANCE", "OwnerInformation":"Single instance", "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "i-11aa22bb33cc44dd5" ], "Key":"InstanceIds" } ], "WindowTargetId":"a1b2c3d4-a1b2-a1b2-a1b2-a1b2c3d4" }, { "ResourceType":"INSTANCE", "OwnerInformation":"Two instances in a list", "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "i-1a2b3c4d5e6f7g8h9", "i-aa11bb22cc33dd44e " ], "Key":"InstanceIds" } ], "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }, { "ResourceType":"INSTANCE", "OwnerInformation":"Production Web Servers", 417 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "Prod" ], "Key":"tag:Environment" }, { "Values":[ "Web" ], "Key":"tag:Role" } ], "WindowTargetId":"1111aaa-2222-3333-4444-1111aaa " } ] } 6. 以下のコマンドを実行して、先ほど作成したインスタンスに対するタスクを登録します。このタ スクでは、Systems Manager の Run Command により、AWS-RunShellScript ドキュメントを使 用して df コマンドを実行します。このコマンドでは、以下のパラメーターを使用します。 • targets: Key=WindowTargetIds,Values=Window Target ID を指定 して、メンテナンスウィンドウに登録されているターゲットを指定する か、Key=InstanceIds,Values=Instance ID を指定して、メンテナンスウィンドウに登録 されているインスタンスを指定します。 • task-arn: SSM Run Command ドキュメントの名前を指定します。たとえ ば、AWS-RunShellScript、AWS-RunPowerShellScript、または arn:aws:ssm:useast-1:123456789:document/Restart_Apache (共有ドキュメントの場合) になります。 • window-id: ターゲットメンテナンスウィンドウの ID を指定します。 • task-type: RUN_COMMAND を指定します。現在、Run Command タスクのみがサポートされて います。 • task-parameters: Run Command ドキュメントの必須パラメーターとオプションパラメー ターを指定します。 • max-concurrency: (オプション) コマンドを同時に実行できるインスタンスの最大数を指定し ます。10 などの数値や 10% などの割合を指定できます。 • max-errors: (オプション) コマンドが失敗となるまでに許容されるエラーの最大数を指定しま す。コマンドが MaxErrors の値を超えてもう一度失敗すると、追加のターゲットへのコマン ドの送信が停止されます。10 などの数値や 10% などの割合を指定できます。 • priority: メンテナンスウィンドウのタスクの優先度を指定します。数値が小さいほど優先 度が高くなります (たとえば、1 が最高の優先度です)。メンテナンスウィンドウのタスクは、 優先順位に従ってスケジュールされます。優先度が同じタスクは並行してスケジュールされま す。 aws ssm register-task-with-maintenance-window --window-id mwab12cd34ef56gh78 --task-arn "AWS-RunShellScript" --targets "Key=InstanceIds,Values=Instance ID" --service-role-arn "arn:aws:iam::1122334455:role/MW-Role" --task-type "RUN_COMMAND" --taskparameters '{\"commands\":{\"Values\":[\"df\"]}}' --max-concurrency 1 -max-errors 1 --priority 10 以下のような情報が返されます。 418 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ { "WindowTaskId":"44444444-5555-6666-7777-88888888" } メンテナンスウィンドウのターゲット ID を使用しても、タスクを登録できます。メンテナンス ウィンドウのターゲット ID は、先ほどのコマンドから返されました。 aws ssm register-task-with-maintenance-window --targets "Key=WindowTargetIds,Values=Window Target ID" --task-arn "AWSRunShellScript" --service-role-arn "arn:aws:iam::1122334455:role/MW-Role" --window-id "mw-ab12cd34ef56gh78" --task-type "RUN_COMMAND" --taskparameters '{\"commands\":{\"Values\":[\"df\"]}}' --max-concurrency 1 -max-errors 1 --priority 10 以下のような情報が返されます。 { "WindowTaskId":"44444444-5555-6666-7777-88888888" } 7. 以下のコマンドを実行して、メンテナンスウィンドウのすべての登録されたタスクを一覧表示し ます。 aws ssm describe-maintenance-window-tasks --window-id "mwab12cd34ef56gh78" 以下のような情報が返されます。 { "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::11111111:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"3333-3333-3333-333333", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "Values":[ "i-1a2b3c4d5e6f7g8h9" ], "Key":"InstanceIds" } ] }, 419 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ { "ServiceRoleArn":"arn:aws:iam::2222222222:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"44444-44-44-444444", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "Values":[ "555555-55555-555-5555555" ], "Key":"WindowTargetIds" } ] } ] } 8. 以下のコマンドを実行して、特定のメンテナンスウィンドウのタスクの実行を一覧表示します。 aws ssm describe-maintenance-window-executions --window-id "mwab12cd34ef56gh78" 以下のような情報が返されます。 { "WindowExecutions":[ { "Status":"SUCCESS", "WindowExecutionId":"1111-1111-1111-11111", "StartTime":1478230495.469 }, { "Status":"SUCCESS", "WindowExecutionId":"2222-2-2-22222222-22", "StartTime":1478231395.677 }, # ... omitting a number of entries in the interest of space... { "Status":"SUCCESS", "WindowExecutionId":"33333-333-333-3333333", "StartTime":1478272795.021 }, { "Status":"SUCCESS", "WindowExecutionId":"4444-44-44-44444444", "StartTime":1478273694.932 } ], 420 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ "NextToken":111111 ..." } 9. 以下のコマンドを実行して、メンテナンスウィンドウのタスクの実行に関する情報を取得しま す。 aws ssm get-maintenance-window-execution --window-execution-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" 以下のような情報が返されます。 { "Status":"SUCCESS", "TaskIds":[ "333-33-3333-333333" ], "StartTime":1478230495.472, "EndTime":1478230516.505, "WindowExecutionId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" } 10. 以下のコマンドを実行して、メンテナンスウィンドウの実行の一部として実行されるタスクを一 覧表示します。 aws ssm describe-maintenance-window-execution-tasks --window-execution-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" 以下のような情報が返されます。 { "WindowExecutionTaskIdentities":[ { "Status":"SUCCESS", "EndTime":1478230516.425, "StartTime":1478230495.782, "TaskId":"33333-333-333-3333333" } ] } 11. 以下のコマンドを実行して、タスクの実行の詳細を取得します。 aws ssm get-maintenance-window-execution-task --window-execution-id "555555-555-55-555555" --task-id "4444-4444-4444-444444" 以下のような情報が返されます。 { "Status":"SUCCESS", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "ServiceRole":"arn:aws:iam::333333333:role/MW-Role", "WindowExecutionId":"555555-555-55-555555", "Priority":0, 421 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ "StartTime":1478230495.782, "EndTime":1478230516.425, "Type":"RUN_COMMAND", "TaskParameters":[ ], "TaskExecutionId":"4444-4444-4444-444444" } 12. 以下のコマンドを実行して、タスクの実行のために行われた特定のタスク呼び出しを取得しま す。 aws ssm describe-maintenance-window-execution-task-invocations --windowexecution-id "555555-555-55-555555" --task-id "4444-4444-4444-444444" 以下のような情報が返されます。 { "WindowExecutionTaskInvocationIdentities":[ { "Status":"SUCCESS", "Parameters":"{\" documentName \" : \" AWS-RunPowerShellScript \" , \" instanceIds \" :[ \" i-1a2b3c4d5e6f7g8h9 \" , \" i-0a 00def7faa94f1dc \" ], \" parameters \" :{ \" commands \" :[ \" ipconfig.exe \" ]}, \" maxConcurrency \" : \" 1 \" , \" maxErrors \" : \" 1 \" }", "ExecutionId":"555555-555-55-555555", "InvocationId":"3333-33333-3333-33333", "StartTime":1478230495.842, "EndTime":1478230516.291 } ] } 追加のメンテナンスウィンドウ設定コマンド このセクションでは、メンテナンスウィンドウ、タスク、実行、呼び出しに関する情報の更新や取得 に役立つコマンドについて説明します。 AWS Account のすべてのメンテナンスウィンドウを一覧表示する aws ssm describe-maintenance-windows --region an SSM region 以下のような情報が返されます。 { "WindowIdentities":[ { "Duration":2, "Cutoff":0, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"IAD-Every-15-Minutes" }, { 422 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" }, { "Duration":8, "Cutoff":2, "WindowId":"mw-123abc456def789", "Enabled":false, "Name":"Every-Day" } ] } 有効なすべてのメンテナンスウィンドウを一覧表示する aws ssm describe-maintenance-windows --region an SSM region --filters "Key=Enabled,Values=true" 以下のような情報が返されます。 { "WindowIdentities":[ { "Duration":2, "Cutoff":0, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"IAD-Every-15-Minutes" }, { "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] } 無効なすべてのメンテナンスウィンドウを一覧表示する aws ssm describe-maintenance-windows --region an SSM region --filters "Key=Enabled,Values=false" 以下のような情報が返されます。 { "WindowIdentities":[ { "Duration":8, "Cutoff":2, "WindowId":"mw-1a2b3c4d5e6f7g8h9", 423 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ "Enabled":false, "Name":"Every-Day" } ] } 名前に基づいてフィルタリングする この例では、「My」で始まる名前のすべてのメンテナンスウィンドウが返されます。 aws ssm describe-maintenance-windows --region an SSM region --filters "Key=Name,Values=My" 以下のような情報が返されます。 { "WindowIdentities":[ { "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] } メンテナンスウィンドウを変更する Name、Schedule、Duration、Cutoff、AllowUnassociatedTargets、Enabled の各パラメーターを変更 できます。以下の例では、name の値を変更しています。 aws ssm update-maintenance-window --region an SSM region --window-id "mw-1a2b3c4d5e6f7g8h9" --name "My-Renamed-MW" 以下のような情報が返されます。 { "Cutoff": 1, "Name": "My-Renamed-MW", "Schedule": "cron(0 16 ? * TUE *)", "Enabled": true, "AllowUnassociatedTargets": true, "WindowId": "mw-1a2b3c4d5e6f7g8h9", "Duration": 4 } 関連付けなしのターゲットのパラメーターを変更する aws ssm update-maintenance-window --region an SSM region --window-id "mw-1a2b3c4d5e6f7g8h9" --no-allow-unassociated-targets 以下のような情報が返されます。 { 424 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ "Cutoff": 2, "Name": "Every-Tuesday-4pm", "Schedule": "cron(0 16 ? * TUE *)", "Enabled": true, "AllowUnassociatedTargets": false, "WindowId": "mw-1a2b3c4d5e6f7g8h9", "Duration": 8 } aws ssm update-maintenance-window --region an SSM region --window-id "mw-1a2b3c4d5e6f7g8h9" --allow-unassociated-targets --no-enabled 以下のような情報が返されます。 { "Cutoff": 2, "Name": "Every-Tuesday-4pm", "Schedule": "cron(0 16 ? * TUE *)", "Enabled": false, "AllowUnassociatedTargets": true, "WindowId": "mw-1a2b3c4d5e6f7g8h9", "Duration": 8 } 特定の所有者情報の値に一致するメンテナンスウィンドウのターゲットを表示する aws ssm describe-maintenance-window-targets --region an SSM region --windowid "mw-ab12cd34ef56gh78" --filters "Key=OwnerInformation,Values=Single instance" 以下のような情報が返されます。 { "Targets":[ { "TargetType":"INSTANCE", "TagFilters":[ ], "TargetIds":[ "i-1a2b3c4d5e6f7g8h9" ], "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2", "OwnerInformation":"Single instance" } ] } AWS-RunPowerShellScript の Run Command を呼び出すすべての登録されたタスクを表示する aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=TaskArn,Values=AWS-RunPowerShellScript" 425 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ 以下のような情報が返されます。 { "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::444444444444:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6c", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"i-1a2b3c4d5e6f7g8h9", "TaskTargetType":"INSTANCE" } ] }, { "ServiceRoleArn":"arn:aws:iam::333333333333:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"33333-33333-333-33333", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"44444-444-4444-444444", "TaskTargetType":"WINDOW_TARGET" } ] } ] } 優先度 3 のすべての登録されたタスクを表示する aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=Priority,Values=3" 以下のような情報が返されます。 426 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ { "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::222222222:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"333333-333-33333-33333", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"i-1a2b3c4d5e6f7g8h9", "TaskTargetType":"INSTANCE" } ] } ] } Run Command を使用する優先度 1 のすべての登録されたタスクを表示する aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND" 以下のような情報が返されます。 { "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::333333333:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"66666-555-66-555-6666", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"777-77-777-7777777", "TaskTargetType":"WINDOW_TARGET" } 427 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ ] } ] } 日付の前に実行されたすべてのタスクを一覧表示する aws ssm describe-maintenance-window-executions --window-id "mwab12cd34ef56gh78" --filters "Key=ExecutedBefore,Values=2016-11-04T05:00:00Z" 以下のような情報が返されます。 { "WindowExecutions":[ { "Status":"SUCCESS", "EndTime":1478229594.666, "WindowExecutionId":"", "StartTime":1478229594.666 }, { "Status":"SUCCESS", "WindowExecutionId":"06dc5f8a-9ef0-4ae9-a466-ada2d4ce2d22", "StartTime":1478230495.469 }, { "Status":"SUCCESS", "WindowExecutionId":"57ad6419-023e-44b0-a831-6687334390b2", "StartTime":1478231395.677 }, { "Status":"SUCCESS", "WindowExecutionId":"ed1372b7-866b-4d64-bc2a-bbfd5195f4ae", "StartTime":1478232295.529 }, { "Status":"SUCCESS", "WindowExecutionId":"154eb2fa-6390-4cb7-8c9e-55686b88c7b3", "StartTime":1478233195.687 }, { "Status":"SUCCESS", "WindowExecutionId":"1c4de752-eff6-4778-b477-1681c6c03cf1", "StartTime":1478234095.553 }, { "Status":"SUCCESS", "WindowExecutionId":"56062f75-e4d8-483f-b5c2-906d613409a4", "StartTime":1478234995.12 } ] } 日付の後に実行されたすべてのタスクを一覧表示する 428 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスウィンドウ aws ssm describe-maintenance-window-executions --window-id "mwab12cd34ef56gh78" --filters "Key=ExecutedAfter,Values=2016-11-04T17:00:00Z" 以下のような情報が返されます。 { "WindowExecutions":[ { "Status":"SUCCESS", "WindowExecutionId":"33333-4444-444-5555555", "StartTime":1478279095.042 }, { "Status":"SUCCESS", "WindowExecutionId":"55555-6666-6666-777777", "StartTime":1478279994.958 }, { "Status":"SUCCESS", "WindowExecutionId":"8888-888-888-888888", "StartTime":1478280895.149 } ] } メンテナンスウィンドウからターゲットを削除する aws ssm deregister-target-from-maintenance-window --region an SSM region --window-id "mw-ab12cd34ef56gh78" --window-target-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" 以下のような情報が返されます。 { "WindowId":"mw-ab12cd34ef56gh78", "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" } メンテナンスウィンドウからタスクを削除する aws ssm deregister-task-from-maintenance-window --window-id "mwab12cd34ef56gh78" --window-task-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6c" 以下のような情報が返されます。 { "WindowTaskId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6c", "WindowId":"mw-ab12cd34ef56gh78" } メンテナンスウィンドウを削除する 429 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア aws ssm delete-maintenance-window --window-id "mw-1a2b3c4d5e6f7g8h9" 以下のような情報が返されます。 { "WindowId":"mw-1a2b3c4d5e6f7g8h9" } Systems Manager パラメーターストア パスワード、ライセンスキー、キーペア、証明書、ユーザーリストなどの設定データの保存と参照 は、時間がかかり、特に大規模に行う場合、エラーが発生しやすいプロセスです。セキュアな方法で のパスワードの保存と使用も同様に、大規模に行う場合、困難なプロセスです。パラメータースト アでは、スクリプト、コマンドなどの自動化および設定ワークフローで頻繁に参照する設定データ を効率的かつ安全に一元管理されます。パラメーターストアを使用すると、Run Command、State Manager、Automation などの Systems Manager 機能のパラメーター (Systems Manager パラメー ター) を参照できます。 暗号化する必要があるパスワードやキーペアなどのパラメーターの場合、パラメーターストアで は、AWS Key Management Service (AWS KMS) キーを使用してデータを暗号化できます。その後、 機密データを復号化して表示する必要があるユーザーに、そのためのアクセス権限を委譲できま す。Amazon EC2 または AWS CloudTrail でパラメーターの使用状況をモニタリングおよび監査する こともできます。 Note Systems Manager の機能と共有コンポーネントは、追加料金なしで提供されます。お客様 は、使用した EC2 リソースに対してのみ料金を支払います。Systems Manager サービスの制 限の詳細については、アマゾン ウェブ サービス全般のリファレンス を参照してください。 Windows ユーザー向けの情報 Windows インスタンスの Amazon EC2 ユーザーガイド の「Systems Manager パラメーターストア」 を参照してください。 目次 • パラメーターストアについて (p. 430) • Systems Manager パラメーターの使用 (p. 431) • Secure String パラメーターについて (p. 432) • Systems Manager パラメーターへのアクセスの設定 (p. 435) • Systems Manager パラメーターストアのチュートリアル (p. 436) パラメーターストアについて パラメーターは、以下の情報を指定して作成するキーと値のペアです。 • Name: (必須) パラメーターを識別するための名前を指定します。Systems Manager パラメーターの 名前には、以下の要件と制限があります。 • パラメーター名は AWS アカウント内で一意であることが必要です。 • パラメーター名では大文字と小文字が区別されます。 430 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア • パラメーター名には、「aws」または「ssm」(大文字と小文字は区別しない) というプレフィック スを付けることはできません。たとえば、awsTestParameter または SSM-testparameter は例外 により失敗となります。 • パラメーター名には、次の記号と文字のみを使用できます。 a-zA-Z0-9_.• Data Type: (必須) データ型を指定して、システムによるパラメーターの使用方法を定義します。パ ラメーターストアでは現在、String、String List、Secure String のデータ型がサポートされていま す。 • Description (オプション): パラメーターとその用途を識別するための説明を入力します。 • Value: (必須) パラメーターの値。 • Key ID (Secure String の場合): AWS アカウントに自動的に割り当てられたデフォルトの AWS KMS キー、またはカスタムキー。 Note ピリオド「.」、または「_」を使用して、同様のパラメーターをグループ化できます。たとえ ば、prod.db.string や prod.domain.password のようにパラメーターをグループ化できます。 Systems Manager パラメーターの使用 パラメーターの作成後は、以下の構文 (括弧内にスペースを入れない) を使用して、SSM のドキュメ ント、コマンド、またはスクリプトで、そのパラメーターを指定できます。 {{ssm:parameter_name}} または {{ ssm:parameter_name }} Note Systems Manager パラメーターの name には「ssm」または「aws」というプレフィッ クスを付けることはできませんが、SSM ドキュメントまたはコマンドでパラメーター を指定するときには、「ssm:」というプレフィックスを付ける必要があります。有効: {{ssm:addUsers}}。無効: {{ssm:ssmAddUsers}}。 以下に示しているのは、SSM パラメーターを使用した AWS CLI Run Command の例です。 aws ssm send-command --instance-ids i-1a2b3c4d5e6f7g8 --document-name AWSRunPowerShellScript --parameter '{"commands":["echo {{ssm:addUsers}}"]}' Note SSM ドキュメントの runtimeConfig セクションでは、ローカルパラメーターにも同様の構文 を使用します。「ssm:」というプレフィックスを付けないことで、ローカルパラメーターを Systems Manager パラメーターから区別できます。 "runtimeConfig":{ "aws:runShellScript":{ "properties":[ { "id":"0.aws:runShellScript", "runCommand":"{{ commands }}", "workingDirectory":"{{ workingDirectory }}", "timeoutSeconds":"{{ executionTimeout }}" 431 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア 以下の例に示すように、SSM ドキュメントの Parameters セクションで Systems Manager パラメー ターを参照できます。 { "schemaVersion":"2.0", "description":"Sample version 2.0 document v2", "parameters":{ "commands" : { "type": "StringList", "default": ["{{ssm:commands}}"] } }, "mainSteps":[ { "action":"aws:runShellScript", "name":"runShellScript", "inputs":{ "commands": "{{commands}}" } } ] } 事前定義された SSM ドキュメント (「AWS-」で始まるすべてのドキュメント) では現在、Secure String、または Secure String 型のパラメーターへの参照はサポートされていません。つまり、Run Command で Secure String パラメーターを使用するには、以下の例に示すように、Run Command に 渡す前にパラメーター値を取得する必要があります。 $value=aws ssm get-parameters --names secureparam --with-decryption aws ssm send-command –name AWS-JoinDomain –parameters password=$value – instance-id instance_ID Secure String パラメーターについて Secure String は、セキュアな方法で保存および参照する必要がある機密データです。ドメイン参加パ スワードやライセンスキーなど、ユーザーがクリアテキストで変更または参照しないデータがある場 合は、Secure String データ型を使用してこれらのパラメーターを作成します。以下の場合は Secure String を使用する必要があります。 • コマンド、関数、エージェントログ、または AWS CloudTrail ログに値をクリアテキストとして公 開せずに、すべての AWS のサービスでデータ/パラメーターを使用する。 • 機密データへのユーザーのアクセスを制御する。 • 機密データへのアクセスを監査する (AWS CloudTrail)。 • 機密データに AWS レベルの暗号化が、アクセスの管理に独自の暗号化キーが必要である。 パラメータを作成するときに Secure String データ型を選択すると、AWS KMS はパラメーター値を暗 号化します。AWS KMS の詳細については、AWS Key Management Service Developer Guide を参照 してください。 各 AWS アカウントには、デフォルトの AWS KMS キーが割り当てられます。AWS CLI から以下のコ マンドを実行することで、キーを表示できます。 aws kms describe-key --key-id alias/aws/ssm 432 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア デフォルトの KMS キーを使用する Secure String パラメーターの作成 デフォルトの KMS キーを使用して Secure String パラメーターを作成する場合、Key ID パラメーター の値を指定する必要はありません。以下の CLI の例で示しているのは、--key-id パラメーターを使 用しないで、パラメーターストアに新しい Secure String パラメーターを作成するコマンドです。 aws ssm put-parameter --name secure_string1_default_key --value "a_secure_string_value" --type SecureString KMS カスタマーマスターキー (CMK) を使用する Secure String パラメーター の作成 アカウントに割り当てられているデフォルトのキーの代わりにカスタム KMS キーを使用する場 合、--key-id パラメーターを使用して ARN を指定する必要があります。パラメータは、すべての AWS KMS パラメーター形式をサポートします。以下に例を示します。 • Key ARN の例 arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 • エイリアス ARN の例 arn:aws:kms:us-east-1:123456789012:alias/MyAliasName • グローバルに一意のキー ID の例 12345678-1234-1234-1234-123456789012 • エイリアス名の例 alias/MyAliasName 次のコマンドを使用して、AWS CLI からカスタム AWS KMS キーを作成できます。 aws kms create-key 作成したばかりのキーを使用して、Secure String パラメーターを作成するには、次のコマンドを使用 します。 aws ssm put-parameter --name secure_string1_custom_key --value "a_secure_string_value" --type SecureString --key-id arn:aws:kms:useast-1:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e Note 暗号化された値でパラメーターを手動で作成できます。この場合、値はすでに暗号化されて いるため、Secure String データ型を選択する必要はありません。[Secure String] を選択した 場合、パラメーターは二重に暗号化されます。 デフォルトでは、すべての Secure String 値は EC2 コンソールおよび AWS CLI で暗号テキストとし て表示されます。Secure String 値を復号化するには、次のセクションで説明するように、ユーザーに KMS 復号化のためのアクセス権限が必要です。 Secure String パラメーターのチュートリアル このチュートリアルでは、Systems Manager の Secure String パラメーターおよび Run Command を使用して、Windows インスタンスをドメインに参加させる方法を示します。チュートリアルで は、DNS アドレス、ドメイン名、およびドメインユーザー名など一般的なドメインパラメーターを使 433 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア 用します。これらの値は、暗号化されていない文字列値として渡されます。ドメインパスワードは、 暗号化され、Secure String として渡されます。 Secure String パラメーターを作成し、ドメインをインスタンスに結合する 1. AWS Tools for Windows PowerShell を使用してシステムにパラメーターを入力します。 Write-SSMParameter -Name Write-SSMParameter -Name Write-SSMParameter -Name Value DomainJoinUserName Write-SSMParameter -Name Value DomainJoinPassword dns -Type String -Value DNS_IP_Address domainName -Type String -Value Domain_Name domainJoinUserName -Type String domainJoinPassword -Type SecureString - 2. インスタンスの IAM ロールのアクセス許可に、AmazonEC2RoleforSSM の管理ポリシーをアタッ チします。詳細については、「管理ポリシーおよびインラインポリシー」を参照してください。 3. インスタンスにアタッチされた IAM ロールを編集し、次のポリシーを追加します。このポリシー は、kms:Decrypt API を呼び出すためのアクセス許可をインスタンスに与えます。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", ], "Resource": [ "arn:aws:kms:region:account_id:key/key_id" ] } ] } 4. 次の json サンプルをシンプルなテキストエディタにコピーして貼り付け、次 の場所に JoinInstanceToDomain.json としてファイルを保存します。c:\temp \JoinInstanceToDomain.json { "schemaVersion":"2.0", "description":"Run a PowerShell script to securely domain-join a Windows instance", "mainSteps":[ { "action":"aws:runPowerShellScript", "name":"runPowerShellWithSecureString", "inputs":{ "runCommand":[ "$ipdns = (Get-SSMParameterValue -Name dns).Parameters[0].Value\n", "$domain = (Get-SSMParameterValue -Name domainName).Parameters[0].Value\n", "$username = (Get-SSMParameterValue -Name domainJoinUserName).Parameters[0].Value\n", "$password = (Get-SSMParameterValue -Name domainJoinPassword -WithDecryption $True).Parameters[0].Value | ConvertTo-SecureString -asPlainText -Force\n", 434 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア "$credential = New-Object System.Management.Automation.PSCredential($username,$password)\n", "Set-DnsClientServerAddress \"Ethernet 2\" -ServerAddresses $ipdns\n", "Add-Computer -DomainName $domain -Credential $credential \n", "Restart-Computer -force" ] } } ] } 5. 新しい SSM ドキュメントを作成するには、AWS Tools for Windows PowerShell で次のコマンド を実行します。 $json = Get-Content C:\temp\JoinInstanceToDomain | Out-String New-SSMDocument -Name JoinInstanceToDomain -Content $json 6. インスタンスにドメインを結合させるには、AWS Tools for Windows PowerShell で次のコマンド を実行します。 Send-SSMCommand -InstanceId Instance-ID -DocumentName JoinInstanceToDomain Systems Manager パラメーターへのアクセスの設定 制限付きの AWS Identity and Access Management (IAM) ユーザーポリシーを作成することで Systems Manager パラメーターへのユーザーアクセスを制限することをお勧めします。たとえば、以 下のポリシーにより、ユーザーは、すべての本稼働パラメーター (prod.* で始まるパラメーター) に対 する読み取り専用アクセス権限 (GetParameters と DescribeParameters) が付与されます。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameters", ], "Resource": "arn:aws:ssm:us-east-1:348788061755:parameter/prod.*" } ] } ユーザーにすべての Systems Manager Parameter API オペレーションへのフルアクセスを許可する場 合は、以下の例のようなポリシーを使用します。このポリシーにより、ユーザーは、prod.* で始まる すべての本稼働パラメーターへのフルアクセスが許可されます。 435 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア { “Version”: “2012-10-17", "Effect": "Allow", "Action": [ "ssm:DescribeParameter", "ssm:PutParameter", "ssm:GetParameter", "ssm:DeleteParameter" ], "Resource": [ " arn:aws:ssm:region:account id:parameter/dbserver.prod.*" ] } } また、インスタンスに、特定のパラメーターのみを実行するためのアクセス権限を委譲すること もできます。Secure String の場合、インスタンスに KMS 復号化のためのアクセス権限を付与し て、Secure String パラメーターを復号化できるようにする必要があります。以下の例では、インスタ ンスが「prod」で始まるパラメーターのみ、パラメーターの値を取得できるようにしています。パラ メーターが Secure String の場合、インスタンスは KMS を使用してその文字列を復号化します。 { "Version": "2012-10-17", "Effect": "Allow", "Action": [ "ssm:GetParameter", ], "Resource": [ "arn:aws:ssm:region:account id:parameter/prod.*" ] }, { "Version": "2012-10-17", "Effect": "Allow", "Action": [ "kms:Decrypt", ], "Resource": [ "arn:aws:kms: region:account id:key/CMK" ] } } Note 前の例のようなインスタンスポリシーは、IAM でインスタンスロールに割り当てられま す。ユーザーとインスタンスにポリシーを割り当てる方法を含め、Systems Manager の 機能へのアクセスを設定する方法の詳細については、「Systems Manager へのアクセス設 定 (p. 401)」を参照してください。 Systems Manager パラメーターストアのチュートリアル 以下のチュートリアルでは、テスト環境でパラメーターストアを使用してパラメーターを作成、保 存、実行します。 目次 436 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア • ユーザーアカウントに SSM へのアクセス権を付与 (p. 437) • 新しいインスタンスの起動 (p. 437) • Systems Manager パラメーターストアコンソールのチュートリアル (p. 438) • Systems Manager パラメーターストア CLI のチュートリアル (p. 438) ユーザーアカウントに SSM へのアクセス権を付与 ユーザーアカウントは、SSM API. と通信するように設定する必要があります。 SSM API アクション へのフルアクセスを付与するユーザーアカウントに IAM 管理ポリシーをアタッチするには、次の手順 を使用します。 ユーザーアカウントの IAM ポリシーを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで、[Policies] を選択します (IAM の初回使用時は、[Get Started]、[Create Policy] の順に選択します)。 3. [Filter] フィールドで、「AmazonSSMFullAccess」と入力して、[Enter] を押します。 4. [AmazonSSMFullAccess] の横にあるチェックボックスをオンにして、[Policy Actions]、[Attach] の順に選択します。 5. [Attach Policy] ページで、ユーザーアカウントを選択してから、[Attach Policy] を選択します。 新しいインスタンスの起動 以下の手順を使用して、テストインスタンスを作成して、必要な AWS Identity and Access Management (IAM) ロールを割り当てます。このロールにより、インスタンスは Systems Manager (SSM) API とやり取りできるようになります。IAM ロールは、新しいインスタンスの作成時に割り当 てる必要があります。 すでに実行されているインスタンスにロールを割り当てることはできません。 ロールを既存のインスタンスのいずれかに割り当てる場合は、インスタンスのイメージを作成し、そ のイメージからインスタンスを起動して、インスタンスの起動時に IAM ロールを割り当てる必要があ ります。詳細については、「Amazon EBS-Backed Linux AMI の作成」を参照してください。 Systems Manager 用のロールを使用するインスタンスを作成するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 サポートされているリージョンを選択します。 3. 4. [Launch Instance] を選択し、[Linux] Amazon マシンイメージ (AMI) を選択します。 インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 5. 6. [Auto-assign Public IP] で、[Enable] を選択します。 [IAM role] の横の [Create new IAM role] を選択します。 新しいタブに IAM コンソールが開きま す。 a. b. c. 7. [Create New Role] を選択します。 [Step 1: Set Role Name] で、このロールを Systems Manager ロールとして識別する名前を 入力します。 [Step 2: Select Role Type] で、[Amazon EC2 Role for Simple Systems Manager] を選択しま す。 これは管理ポリシーであるため、システムは [Step 3: Establish Trust] をスキップしま す。 d. [Step 4: Attach Policy] で [AmazonEC2RoleforSSM] を選択します。 e. [Next Step] を選択し、さらに [Create Role] を選択します。 f. IAM コンソールを使用してタブを閉じます。 Amazon EC2 コンソールで、[Create New IAM role] の横の [Refresh] ボタンを選択します。 437 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア 8. [IAM role] から、作成したロールを選択します。 9. ウィザードを終了して新しいインスタンスを起動します。 インスタンス ID を書き留めます。 こ の ID は、このチュートリアルの後の手順で指定する必要があります。 Important 作成したインスタンスで SSM エージェントをインストールする必要があります。詳細につい ては、「SSM エージェントのインストール (p. 389)」を参照してください。 Systems Manager パラメーターストアコンソールのチュートリアル 以下の手順では、パラメーターストアでパラメーターを作成し、そのパラメーターを使用する Run Command コマンドを実行するプロセスについて説明します。 パラメーターストアを使用してパラメーターを作成するには 1. Amazon EC2 コンソールを開き、ナビゲーションペインで [Systems Manager Shared Resources] を展開して、[Parameter Store] を選択します。 2. 3. [Create Parameter] を選択します。 [Name] に「helloWorld」と入力します。 4. [Description] フィールドに、このパラメーターをテストパラメーターとして識別するための説明 を入力します。 5. 6. [Type] で、[String] を選択します。 [Value] フィールドで単語をエコーします。 7. [Create Parameter] を選択し、システムによってパラメーターが作成されたら [OK] を選択しま す。 8. EC2 コンソールのナビゲーションウィンドウで、[Commands] を展開し、[Run Command] を選 択します。 9. [Run a command] を選択します。 10. [Command Document] リストで、[AWS-RunShellScript] を選択します。 11. [Target instances] で、先ほど作成したインスタンスを選択します。 12. [Commands] フィールドに「echo {{ssm:helloWorld}}」と入力し、[Run] を選択します。 13. コマンド履歴リストで、先ほど実行したコマンドを選択し、[Output] タブを選択してから、[View Output] を選択します。出力は、先ほど作成したパラメーターの名前 ({{ssm:helloWorld}} など) で す。 Systems Manager パラメーターストア CLI のチュートリアル 以下の手順では、AWS CLI を使用してパラメーターを作成および保存するプロセスについて説明しま す。 パラメーターストアを使用して String パラメーターを作成するには 1. 2. AWS CLI をローカルマシンにダウンロードします。 以下のコマンドを実行して、String データ型を使用するパラメーターを作成します。 aws ssm put-parameter --name a name --type String –-value a value, for example "helloWorld" 3. 以下のコマンドを実行して、パラメーターのメタデータを表示します。 aws ssm describe-parameters --filters Key=Name,Values=helloWorld 438 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パラメーターストア 4. 以下のコマンドを実行して、パラメーターの値を変更します。 aws ssm put-parameter --name helloWorld --type String --value "good day sunshine" --overwrite 5. 以下のコマンドを実行して、最新のパラメーターの値を表示します。 aws ssm get-parameters --name helloWorld 6. 以下のコマンドを実行して、パラメーター値の履歴を表示します。 aws ssm get-parameter-history --name helloWorld 7. 以下のコマンドを実行して、このパラメーターを Run Command コマンドで使用します。 aws ssm send-command --name AWS-RunPowerShellScript --parameters commands=["echo {{ssm:helloWorld}}"] --targets Key=instanceids,Values=the ID of the instance you created earlier パラメーターストアを使用して Secure String パラメーターを作成するには 1. 以下のコマンドのいずれかを実行して、Secure String データ型を使用するパラメーターを作成し ます。 デフォルトの KMS キーを使用する Secure String パラメーターを作成する aws ssm put-parameter --name a name --value a value, for example P@ssW %rd#1 --type SecureString カスタム KMS キーを使用する Secure String パラメーターを作成する aws ssm put-parameter --name a name --value a value, for example P@ssW %rd#1 --type SecureString --key-id your AWS user account alias/the custom KMS key 2. 以下のコマンドを実行して、パラメーターのメタデータを表示します。 aws ssm describe-parameters --filters Key=Name,Values=the name that you specified 3. 以下のコマンドを実行して、パラメーターの値を変更します。 デフォルトの KMS キーを使用する Secure String パラメーターを更新する aws ssm put-parameter --name the name that you specified --value new value --type SecureString --overwrite カスタム KMS キーを使用する Secure String パラメーターを更新する aws ssm put-parameter --name the name that you specified --value new value --type SecureString --key-id your AWS user account alias/the custom KMS key --overwrite 4. 以下のコマンドを実行して、最新のパラメーターの値を表示します。 439 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド リモート管理 aws ssm get-parameters --names the name that you specified --withdecryption 5. 以下のコマンドを実行して、パラメーター値の履歴を表示します。 aws ssm get-parameter-history --name the name that you specified リモート管理 Systems Manager の Run Command を使用して、Amazon EC2 インスタンス、ハイブリッド環 境の仮想マシン (VM) およびサーバー、他のクラウドプロバイダーの VM の設定をセキュアにリ モートから管理できます。Run Command では、一般的な管理タスクを自動化し、臨時の変更を 大規模に実行することができます。Run Command は、EC2 コンソール、AWS Command Line Interface、Windows PowerShell、または AWS SDK から使用できます。Run Command は追加コスト なしで提供されます。 管理者は、Run Command を使用してさまざまなタイプのタスクを実行できます。いくつか例を挙げ ると、システムの監視、マシンへのアプリケーションのインストール、マシンのインベントリ作成に よる足りないアプリケーションやパッチ適用が必要なアプリケーションの確認、マシンへのパッチ適 用、デプロイパイプラインの構築、アプリケーションのブートストラップ、ドメインへのインスタン スの参加などです。 Windows ユーザー向けの情報 Windows 向けの Run Command の詳細については、「リモート管理」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を参照してください。 Run Command の特徴と利点 特徴 メリット 追加コストなしで提供される完全マネージド型 AWS サービスです。 Linux と Windows で利用でき、ハイブリッド環 境の EC2、サーバー、VM、または他のクラウド プロバイダーの VM と連動します。 管理タスクと設定タスクを大規模に自動化しま す。 CloudWatch イベント または Amazon SNS を使 用したコマンドおよび設定結果の通知送信を設 定できます。 大規模な構成の変更を単一ビューで確認できま す。 コマンドをすばやく定義および実行できる SSM ドキュメントが使用されます。 Secure Shell (SSH) または Remote Desktop Protocol (RDP) を使用してマシンに接続する必 要がないため、管理上のセキュリティが向上し ます。 事前定義された SSM ドキュメントが用意されて おり、アカウント間またはパブリックに共有で きる独自のドキュメントも作成できます。 委任アクセス制御が行われます。 AWS Identity and Access Management (IAM) を使用した監査とアクセス制御が含まれていま す。 EC2 インスタンスの開始方法 次の表には、Run Command の使用を開始するのに役立つ情報が含まれています。 440 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コンポーネントおよび概念 トピック 詳細 チュートリアル: Amazon EC2 インスタンスをリ モートで管理する (p. 69) チュートリアルでは、AWS Command Line Interface (AWS CLI) で Run Command を使用し て、コマンドをすばやく送信する方法を示しま す。 Amazon EC2 Run Command コンポーネントお よび概念 (p. 441) Run Command の機能や概念について説明しま す。 Systems Manager の前提条件 (p. 387) インスタンスが Run Command の最小要件を満 たしていることを確認します。 Amazon EC2 Run Command を使用したコマン ドの実行 (p. 444) EC2 コンソールからコマンドを実行して、AWS Command Line Interface から実行できるコマン ドを作成します。 ハイブリッド環境の使用開始 次の表には、Run Command の使用を開始するのに役立つ情報が含まれています。 トピック 詳細 Amazon EC2 Run Command コンポーネントお よび概念 (p. 441) Run Command の機能や概念について説明しま す。 ハイブリッド環境での Systems Manager のセッ トアップ (p. 398) Run Command を使用して管理できるように、 オンプレミスサーバーと VM、または他のクラウ ドプロバイダーでホストされたサーバーを AWS に登録します。 Amazon EC2 Run Command を使用したコマン ドの実行 (p. 444) EC2 コンソールからコマンドを実行して、AWS Command Line Interface から実行できるコマン ドを作成します。 関連情報 • Systems Manager へのアクセス設定 (p. 401) • SSM ドキュメントの作成 (p. 453) • SSM ドキュメントの共有 (p. 455) • コマンドのステータスとモニタリング (p. 461) • Amazon EC2 Systems Manager API Reference • SSM AWS CLI リファレンス • AWS SDK Amazon EC2 Run Command コンポーネントおよび 概念 Amazon EC2 Run Command の使用を開始するにあたり、この機能のコンポーネントおよび概念を確 認しておくとメリットがあります。 441 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コンポーネントおよび概念 コンポーネント/概念 詳細 Amazon EC2 Systems Manager (SSM) Run Command は、SSM のコンポーネントで す。Run Command では SSM API が使用され ます。詳細については、Amazon EC2 Systems Manager API Reference を参照してください。 ハイブリッド環境のサーバーと VM Amazon EC2 Run Command を使用すると、オ ンプレミスサーバーと仮想マシン (VM)、およ び他のクラウドプロバイダーの VM をリモート で安全に管理できます。Run Command をこの ように設定することで、同じツールやスクリプ トを使用して、一貫したセキュアな方法で、オ ンプレミスとクラウドのワークロードをリモー トで管理できます。ハイブリッド環境のサー バーまたは VM を Run Command 用に設定する と、マネージドインスタンスと呼ばれるように なり、他の EC2 インスタンスと同様に EC2 コ ンソールにリストされます。詳細については、 「ハイブリッド環境での Systems Manager の セットアップ (p. 398)」を参照してください。 コマンド マネージドインスタンスは、ローカルマシンか らコマンドを送信して設定できます。インス タンスを設定するためにローカルにログオンす る必要はありません。Amazon EC2 コンソー ル、AWS Tools for Windows PowerShell、AWS Command Line Interface (AWS CLI)、SSM API、Amazon SDK のいずれかを使用してコマン ドを送信できます。詳細については、Windows PowerShell 用 SSM AWS ツールリファレン ス、SSM AWS CLI リファレンス、およびAWS SDK を参照してください。 SSM ドキュメント SSM ドキュメントでは、コマンドをマシンで実 行したときに実行するプラグインと使用するパ ラメーターを定義しています。コマンドを実行 するときに、Run Command が使用する SSM ドキュメントを指定します。Run Command に は、マシンですぐに一般的なタスクを実行でき るようにする、事前定義されたドキュメントが 含まれます。独自の SSM ドキュメントも作成で きます。新しい SSM ドキュメントからコマンド を初めて実行すると、システムによって AWS ア カウントを使用してドキュメントが保存されま す。詳細については、「SSM ドキュメントの作 成 (p. 453)」を参照してください。 SSM エージェント SSM エージェントは、EC2 インスタンスと、 ハイブリッド環境のサーバーと VM にインス トールする AWS ソフトウェアです。エージェ ントは Run Command 要求を処理し、要求に指 定されたとおりにマシンを設定します。詳細に ついては、「SSM エージェントのインストー ル (p. 389)」を参照してください。 IAM ロールおよびポリシー AWS ユーザーアカウントおよびインスタン スは、AWS Identity and Access Management 442 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コンポーネントおよび概念 コンポーネント/概念 詳細 (IAM) ロールおよび SSM API と通信すること ができる信頼ポリシーを設定する必要がありま す。詳細については、「Systems Manager への アクセス設定 (p. 401)」を参照してください。 仕組み インスタンスの前提条件を確認したら、ローカルマシンからコマンドを送信します。SSM サービス は、コマンドとパラメーターの整合性を確認し、Amazon EC2 メッセージングサービスにリクエスト を転送します。各インスタンス (または EC2 Windows インスタンスの EC2Config サービス) を実行し ている SSM エージェントが、EC2 メッセージングサービスと通信してコマンドを取得します。エー ジェントはコマンドを処理し、指定どおりにインスタンスを設定して、出力と結果を記録します。 エージェントは、各コマンドを 1 回実行します。同時に複数のコマンドを送信することもできます。 システムは、各コマンドのキューイング、実行、キャンセル、および報告を管理します。ただし、 コマンド実行の順序は保証されません。デフォルトでは、Run Command はスロットル制限を使用し て、1 分および 1 インスタンスあたり 60 個を超えるコマンドが実行されないようにします。コマンド の実行時にインスタンスが実行されていない場合または応答していない場合、インスタンスが応答す るようになるとシステムがキューイングを行い、実行を試みます。デフォルトでは、システムは、コ マンドのキューイングを行い、リクエスト後最長 31 日間インスタンスの実行を試みます。コマンド ステータスの詳細については、「コマンドのステータスとモニタリング (p. 461)」を参照してくださ い。 Run Command からは、インスタンス、サーバー、または VM ごとに状態と各コマンドの結果が レポートされます。Run Command ではコマンド履歴を 30 日間保存します。この情報は AWS CloudTrail にも保存され、データが削除されるまで保持されます。詳細については、Amazon EC2 Systems Manager API Reference で API 呼び出しの監査に関するトピックを参照してください。. SSM ドキュメントについての詳細 Run Command の前提条件を設定した後、インスタンスのどのような設定変更をするか、どの SSM ドキュメントの変更を有効にするかを決定します。Run Command には、すぐにインスタンスでコマ ンドを実行できるようにする事前定義された SSM ドキュメントが含まれます。各ユーザーが使用で きるコマンドは、管理者によって指定されているアクセス権によって異なります。AWS-* から始まる コマンドでは、AWS から提供される定義済みの SSM ドキュメントが使用されます。開発者または管 理者は、追加のドキュメントを作成し、ユーザーのアクセス権に基づいてプロビジョニングを行うこ とができます。詳細については、「SSM ドキュメントの作成 (p. 453)」を参照してください。 Important 信頼されている管理者のみが、AWS で事前設定されたドキュメントの使用を許可されま す。Amazon SSM エージェントはルートとして実行されるため、SSM ドキュメントに指定 されたコマンドまたはスクリプトの実行にはインスタンスの管理者権限が必要です。ユー ザーに、事前定義済みの SSM ドキュメント (AWS-* から始まるドキュメント) を実行する 権限がある場合、そのユーザーには、インスタンスへの管理者アクセス権もあります。他の すべてのユーザーについては、制限付きドキュメントを作成し、そのドキュメントを特定の ユーザーと共有する必要があります。Run Command へのアクセス制限の詳細については、 「Systems Manager へのアクセス設定 (p. 401)」を参照してください。 Run Command には、次の事前設定された SSM ドキュメントが含まれています。 443 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 Linux 用の Amazon 事前設定済み SSM ドキュメント 名前 説明 AWS-RunShellScript シェルスクリプトの実行 AWS-UpdateSSMAgent Amazon SSM エージェントの更新 Amazon EC2 コンソールのリストからドキュメントを選択するか、list documentsコマンドを使用 して、AWS CLI または AWS Tools for Windows PowerShell で使用できるコマンドを一覧表示できま す。 Amazon EC2 Run Command を使用したコマンドの 実行 コマンドを実行するには、Amazon EC2 コンソール、AWS Command Line Interface を使用できま す。または、Amazon EC2 Systems Manager API Reference と AWS SDK を使用してプログラムでコ マンドを実行できます。 Caution Run Command を初めて使用する場合は、テストインスタンスまたは本番環境で使用されて いないインスタンスに対してコマンドを実行することをお勧めします。 目次 • シェルスクリプトを実行する (p. 444) • SSM エージェントの更新 (p. 445) • 複数のインスタンスへのコマンドの送信 (p. 448) • AWS CLI の使用 (p. 450) コンソールを使用して Amazon EC2 インスタンスで コマンド を実行する 以下のチュートリアルでは、Amazon EC2 コンソールから Run Command を使用して Linux インス タンスでコマンドを実行する方法を示します。コマンドまたはスクリプトを指定するには、AWSRunShellScript SSM JSON ドキュメントを使用します。たとえば、curl や service --status-all などの コマンドを指定できます。 AWS CLI を使用する例については、「AWS CLI を使用した Amazon EC2 Run Command のチュート リアル (p. 450)」を参照してください。 Windows インスタンスを使用する例については、Windows インスタンスの Amazon EC2 ユーザーガ イド の「コンソールを使用した Amazon EC2 Run Command のチュートリアル」を参照してくださ い。 コンソールから Run Command を使用してコマンドを実行するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Run Command] を選択します。 3. [Run a command] を選択します。 4. [Command document] で、[AWS-RunShellScript] を選択します。 444 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 5. [Target instances] で、コマンドを実行するインスタンスを選択します。このリストに表示されて いないインスタンスは、Run Command 用に適切に設定されていない場合があります。詳細につ いては、「Systems Manager の前提条件 (p. 387)」を参照してください。 6. [Commands] に、有効なシェルスクリプトまたはコマンドを入力します。 7. (オプション) [Working Directory] で、コマンドを実行する EC2 インスタンスのフォルダーへのパ スを入力します 8. (オプション) [Execution Timeout] で、EC2Config サービスまたは SSM エージェントでコマンド を実行しようとして、タイムアウトしたために失敗したと見なされるまでの秒数を指定します。 9. [Comment] で、コマンドのリストで各コマンドを識別するために役立つ情報を提供することをお 勧めします。 10. [Timeout (seconds)] で、Run Command からインスタンスに到達しようとして、到達できずにコ マンドの実行が失敗したと見なされるまでの秒数を入力します。最小は 30 秒、最大は 30 日、デ フォルトは 10 分です。 11. [S3 bucket] で、コマンド出力の S3 バケット名を入力します。[S3 key prefix] で、S3 バケットの サブフォルダー名を入力します。サブフォルダーを使用すると、複数のインスタンスに対して複 数のコマンドを実行する場合に、Run Command の出力を整理できます。 12. すべての選択したインスタンスで同時にコマンドを実行するには、[Run] を選択します。Run Command により、ステータス画面が表示されます。[View result] を選択します。 13. (オプション) コマンドが保留中または実行中の場合は、キャンセルできます。呼び出しを選択し て、[Actions]、[Cancel] の順に選択します。コマンドが確実にキャンセルされるとは保証できま せんのでご注意ください。 14. コマンドリストには、インスタンスごとに 1 つのコマンド呼び出しが表示されます。呼び出しご とに独自のコマンド ID とステータスがあります。出力を表示するには、呼び出しを選択して、 [Output]、[View Output] の順に選択します。 システムにより、出力がブラウザに表示されます。出力が 2500 文字を超える場合、先頭から 2500 文字のみが表示され、残りは切り捨てられることに注意してください。 15. Amazon S3 でコマンド出力全体を表示するには、Amazon S3 コンソールを開いて Amazon S3 バ ケットを選択します。コマンド出力を表示するコマンド ID とインスタンス ID のフォルダーを選 択します。awsrunPowerShellScript サブフォルダーを選択します。[stdout.text] ファイルにコマン ド出力全体が含まれています。 Amazon EC2 Run Command を使用した SSM エージェントの 更新 インスタンスで実行している Amazon EC2 SSM エージェントを更新するには、AWSUpdateSSMAgent ドキュメントを使用できます。最新バージョンに更新することも、古いバージョ ンにダウングレードすることもできます。コマンドを実行すると、システムは該当するバージョンを AWS からダウンロードし、インストールして、コマンドの実行前に存在していたバージョンをアン インストールします。このプロセスの実行中にエラーが発生すると、システムはコマンドの実行前の サーバーバージョンにロールバックし、コマンドステータスにはコマンドの失敗が示されます。 Note この手順には Amazon SNS 通知の Run Command を設定する情報は含まれません。通知を返 すコマンドを実行する方法については、「コマンドがステータスを変更したときに Amazon SNS 通知を取得する (p. 464)」を参照してください。 Run Command を使用して SSM エージェントを更新するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Run Command] を選択します。 3. [Run a command] を選択します。 445 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 4. [Command document] で、[AWS-UpdateSSMAgent] を選択します。 5. [Target instances] で、コマンドを実行するインスタンスを選択します。このリストに表示されて いないインスタンスは、Run Command 用に適切に設定されていない場合があります。詳細につ いては、「Systems Manager の前提条件 (p. 387)」を参照してください。 6. (オプション) [Version] で、インストールする SSM エージェントのバージョンを入力します。 エージェントの古いバージョンをインストールすることもできます。バージョンを指定しない と、最新バージョンのサービスがインストールされます。 7. (オプション) 以前のバージョンの SSM エージェントをインストールするには、[Allow Downgrade] で [true] を選択します。このオプションを選択した場合は、以前のバージョン番号を 指定する必要があります。[false] を選択すると、最新バージョンのサービスのみがインストール されます。 8. [Comment] で、コマンドのリストで各コマンドを識別するために役立つ情報を提供することをお 勧めします。 9. [Timeout (seconds)] で、Run Command からインスタンスに到達しようとして、到達できずにコ マンドの実行が失敗したと見なされるまでの秒数を入力します。最小は 30 秒、最大は 30 日、デ フォルトは 10 分です。 10. [S3 bucket] で、コマンド出力の S3 バケット名を入力します。 Important Amazon EC2 コンソールでは、Run Command の [Output] ページは、2500 文字を超える と切り捨てられます。Run Command を使用してコマンドを実行する前に、Amazon S3 バケットを設定します。コマンド出力が 2500 文字を超えた場合は、Amazon S3 バケッ トで完全な出力を表示できます。詳細については、「バケットの作成」を参照してくだ さい。 11. [S3 key prefix] で、S3 バケットのサブフォルダー名を入力します。サブフォルダーを使用する と、複数のインスタンスに対して複数のコマンドを実行する場合に、Run Command の出力を整 理できます。 AWS CLI を使用してコマンドを実行する方法については、「AWS CLI を使用した Amazon EC2 Run Command のチュートリアル (p. 450)」または SSM CLI リファレンスを参照してください。 コマンドをキャンセルする コマンドの状態が Pending または Executing であるとサービスに示されている間は、コマンドのキャ ンセルを試行できます。ただし、まだコマンドがこれらの状態のいずれかであっても、コマンドが終 了し、その基盤であるプロセスが停止することは保証されません。 コマンドをキャンセルするには コンソールを使用する 1. ナビゲーションペインで、[Run Command] を選択します。 2. キャンセルするコマンド呼び出しを選択します。 3. [Actions]、[Cancel Command] の順に選択します。 AWS CLI を使用してコマンドをキャンセルするには 次の コマンドを使用します。 aws ssm cancel-command --command-id "command ID" ID" --instance-ids "instance キャンセルしたコマンドのステータスについては、「コマンドのステータスとモニタリン グ (p. 461)」を参照してください。 446 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 コマンド出力の表示 以下の手順を使用して、EC2 コンソールでコマンド実行結果を表示します。 コマンド出力を表示するには 1. Amazon EC2 コンソールで、リストからコマンドを選択します。 2. [Output] タブを選択します。 3. [View Output] を選択します。 4. コマンド出力ページには、コマンドの実行結果が表示されます。 447 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 複数のインスタンスへのコマンドの送信 targets パラメーターを使用して数十、数百、または数千のインスタンスにコマンドを送信できま す。現在、このパラメーターは AWS CLI からコマンドを実行する場合にのみサポートされていま す。targets パラメーターは、インスタンスに指定した Amazon EC2 タグに基づいて Key;Value の組み合わせを受け取ります。コマンドを実行すると、システムは、指定した条件と一致するすべて のインスタンスでコマンドを見つけ、実行しようとします。Amazon EC2 タグの詳細については、 「Amazon EC2 リソースにタグを付ける (p. 889)」を参照してください。 数百または数千のインスタンスにまたがってコマンドを制御するために、Run Command には、同時 に 1 つの要求を処理できるインスタンス数とコマンドが終了されるまでにスローできるエラー数を制 限するためのパラメーターも用意されています。 目次 • 複数のインスタンスを対象にする (p. 449) • 同時実行制御を使用する (p. 449) • エラー制御を使用する (p. 449) 448 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 複数のインスタンスを対象にする targets パラメーターでは、次の構文を使用します。 aws ssm send-command --document-name name --targets "Key=tag:tag name[;Values=tag values] [...] Note このセクションのコマンド例で [...] は省略部分を示します。 次の例では、targets パラメーターの値を指定する方法を示します。 例: Key;Value 条件を使用してタグ付けされたインスタンスを対象にする 複数の異なる環境のインスタンスに対して Key として Environments を使用し、Values とし て Development、Test、Pre-production、Production を使用してタグを付けた場合、次の targets パラメーターを使用した構文で個別の環境のすべてのインスタンスに対してコマンドを 送信できます。 aws ssm send-command --document-name name --targets "Key=tag:Environment;Values=Development" [...] 例: 特定の Key 条件でタグ付けされたインスタンスを対象にする 複数の異なるタイプのサーバーに Key タグとして Database、WebServer、FileServer を指 定した場合、特定のタイプのサーバーを対象にするには Key;Value 条件の Key 部分のみを使用 できます。 aws ssm send-command --document-name name --targets "Key=tag:Database" [...] 同時実行制御を使用する 同時にコマンドを実行するサーバー数を制御するには、max-concurrency パラメーターを使用で きます。インスタンスの絶対数 (10 など) またはターゲットセットのパーセント数 (10% など) を指 定できます。キューシステムにより、コマンドは 1 つのインスタンスに送信され、この最初の呼 び出しが完了するのを待ってから、さらに 2 つのインスタンスにコマンドが送信されます。maxconcurrency の値に達するまで、コマンドの送信先のインスタンス数は指数関数的に増えていきま す。max-concurrency のデフォルト値は 50 です。次の例は、max-concurrency パラメーターの 値を指定する方法を示しています。 aws ssm send-command --document-name name --max-concurrency 10 --targets "Key=tag:Environment;Values=Development" [...] aws ssm send-command --document-name name --max-concurrency 10% --targets Key=tag:Department;Values=Finance,Marketing" "Key=tag:ServerRole;Values=WebServer,Database" [...] エラー制御を使用する コマンドの実行を数百または数千のインスタンスに制限するには、max-errors パラメーターを使用 してエラー制限を設定することもできます。このパラメーターが指定するエラー数に達すると、シス テムからは他のインスタンスにコマンドが送信されなくなります。エラーの絶対数 (10 など) または 449 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 ターゲットセットのパーセント数 (10% など) を指定できます。値として 1 を指定した場合、最初のエ ラー結果が返されると、システムから他のインスタンスにコマンドが送信されなくなります。コマン ドの送信先のインスタンス数が 50 で max-errors を 10% に設定した場合、5 番目のエラーが発生す ると、システムから他のインスタンスにコマンドが送信されなくなります。 max-errors に達したときに既にコマンドを実行中の呼び出しについては、完了はできますが、一 部が失敗する場合があります。呼び出しの失敗数が max-errors を超えないようにするには、maxconcurrency を 1 に設定して、一度に 1 つの呼び出しが処理されるようにします。max-concurrency のデフォルト値は 50 です。次の例は、max-errors パラメーターの値を指定する方法を示していま す。 aws ssm send-command --document-name name --max-errors 10 --targets "Key=tag:Database" [...] --document-name name --max-errors 10% --targets "Key=tag:Environment;Values=Development" [...] aws ssm send-command --document-name name --max-concurrency 1 --max-errors 1 --targets "Key=tag:Environment;Values=Production" [...] AWS CLI を使用した Amazon EC2 Run Command のチュート リアル 以下のサンプルウォークスルーは、AWS CLI を使用してコマンドとコマンドパラメーターに関する情 報を表示する方法、コマンドを実行する方法、これらのコマンドのステータスを確認する方法を示し ています。 Tip コンソールには、[AWS Command Line Interface command] というセクションがあります。 このセクションには、入力したパラメーターに基づいて生成された、使用可能な CLI スクリ プトが表示されます。 ステップ 1: 使用開始 ユーザーは、設定するインスタンスの管理者権限を持っているか、IAM で適切なアクセス権を付与 されている必要があります。また、この例では us-east-1 リージョンを使用することに注意してく ださい。現在、Run Command は、次の SSM リージョンでのみ利用できます。詳細については、 「Systems Manager の前提条件 (p. 387)」を参照してください。 AWS CLI を使用してコマンドを実行するには 1. 次のコマンドを実行して認証情報とリージョンを指定します。 aws configure 2. 以下を指定するよう求められます。 AWS Access Key ID [None]: key_name AWS Secret Access Key [None]: key_name Default region name [None]: us-east-1 Default output format [None]: ENTER 450 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 3. 利用可能なすべてのドキュメントを表示する このコマンドでは、IAM アクセス許可に基づいて、アカウントで利用可能なすべてのドキュメン トが表示されます。コマンドは Linux と Windows のドキュメントのリストを返します。 aws ssm list-documents 4. インスタンスでコマンドを受信する準備ができていることを確認します。 インスタンスがオンラインの場合は、次のコマンドを出力が表示されます。 aws ssm describe-instance-information --output text --query "InstanceInformationList[*]" 5. 特定のインスタンスについての詳細を表示するには、次のコマンドを使用します。 Note このチュートリアルのコマンドを実行するには、インスタンス ID およびコマンド ID を 置き換える必要があります。コマンド ID はsend-command の応答として返されます。イ ンスタンス ID は、Amazon EC2 コンソールで取得できます。 aws ssm describe-instance-information --instance-information-filter-list key=InstanceIds,valueSet=instance ID ステップ 2: シェルスクリプトの実行 Run Command と AWS-RunShellScript ドキュメントを使用すると、ローカルにログオンしているか のように EC2 インスタンスでコマンドまたはスクリプトを実行できます。 説明と使用可能なパラメーターを表示するには • SSM JSON ドキュメントの説明を表示するには、次のコマンドを使用します。 aws ssm describe-document --name "AWS-RunShellScript" --query "[Document.Name,Document.Description]" • これらのパラメーターに使用できるパラメーターと詳細を表示するには、次のコマンドを使用しま す。 aws ssm describe-document --name "AWS-RunShellScript" --query "Document.Parameters[*]" ステップ 3: AWS-RunShellScript ドキュメントを使用してコマンドを送信する -例1 インスタンスの IP 情報を取得するには、次のコマンドを使用します。 aws ssm send-command --instance-ids "instance ID" --document-name "AWSRunShellScript" --comment "IP config" --parameters commands=ifconfig --output text 応答データを使用したコマンド情報の取得 451 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドの実行 次のコマンドは、コマンド ID を使用します。これは、前述のコマンド実行の詳細および応答データを 取得するコマンドで返されるものです。コマンドが完了すると、システムは応答データを返します。 コマンド実行が "Pending" と表示される場合、もう一度このコマンドを実行して応答データを確認す る必要があります。 aws ssm list-command-invocations --command-id "command ID" --details ステップ 4: AWS-RunShellScript ドキュメントを使用してコマンドを送信する -例2 次のコマンドは、コマンドを実行するデフォルトのユーザーアカウントを表示します。 sh_command_id=$(aws ssm send-command --instance-ids "instance ID" --documentname "AWS-RunShellScript" --comment "Demo run shell script on Linux Instance" --parameters commands=whoami --output text --query "Command.CommandId") コマンドステータスの取得 次のコマンドでは、コマンド ID を使用して、インスタンスでのコマンド実行に関するステータスを取 得しています。この例では、前のコマンドで返されたコマンド ID を使用しています。 aws ssm list-commands --command-id $sh_command_id コマンドの詳細の取得 次のコマンドでは、前のコマンドのコマンド ID を使用して、インスタンスごとのコマンド実行に関す るステータスを取得しています。 aws ssm list-command-invocations --command-id $sh_command_id --details 特定インスタンスのコマンド情報と応答データを取得する 次のコマンドは、特定インスタンスについて、元の aws ssm send-command の出力を返します。 aws ssm list-command-invocations --instance-id instance ID --command-id $sh_command_id –-details ステップ 5: その他の例 次のコマンドは、インスタンスで実行している Python のバージョンを返します。 sh_command_id=$(aws ssm send-command --instance-ids instance ID --documentname "AWS-RunShellScript" --comment "Demo run shell script on Linux Instances" --parameters commands='python' --version --output text --query "Command.CommandId") 次のコマンドは、Run Command を使用して Python スクリプトを実行します。 aws ssm send-command --instance-ids instance ID --document-name "AWSRunShellScript" --comment "Demo run shell script on Linux Instances" -parameters '{"commands":["#!/usr/bin/python","print \"Hello world from python \""]}' --output text --query "Command.CommandId" 452 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM ドキュメントの作成 SSM ドキュメントの作成 Amazon EC2 Run Command を使用してコマンドを実行すると、システムは、実行するプラグイン と使用するパラメーターを定義するドキュメントから、実行するアクションを読み込みます。このド キュメントは、SSM ドキュメントと呼ばれます。新しい SSM ドキュメントからコマンドを初めて実 行すると、システムによって AWS アカウントを使用してドキュメントが保存されます。 制約事項 SSM ドキュメントの作業を始めるときは、次の制限事項に注意してください。 • デフォルトでは、AWS アカウントごとに作成できる SSM ドキュメントは最大 200 個です。この制 限を引き上げるには、AWS サポートセンターに移動して、制限の引き上げリクエストフォームを送 信します。 • 作成する SSM ドキュメントは、それを作成したリージョンでのみ使用できます。別のリージョン でドキュメントを追加するには、コンテンツをコピーし、新しいリージョンでドキュメントを再作 成します。 Run Command へのアクセス権をユーザーに付与する場合、ベストプラクティスは最小権限のポリ シーから開始することです。ユーザーに最小限のタスクを許可するさまざまな SSM ドキュメントを 作成します。たとえば、インスタンスの特定のサービスの名前を指定すれば、Run Command ユー ザーはそのサービスのみを再起動できます。 Amazon EC2 コンソールを使用した SSM ドキュメントの作成 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Documents] を選択します。 3. [Create Document] を選択します。 4. ドキュメントのわかりやすい名前を入力し、[Content] フィールドにプラグインとパラメーター を JSON 形式で指定します。詳細については、「SSM プラグイン」 (Amazon EC2 Systems Manager API Reference) を参照してください。 5. [Create Document] を選択してドキュメントを保存します。 AWS CLI を使用して SSM ドキュメントを作成する 1. ファイルでプラグインとパラメーターを指定します。わかりやすい名前と .json ファイル拡張 子を付けてドキュメントを保存します。詳細については、「SSM プラグイン」 (Amazon EC2 Systems Manager API Reference) を参照してください。 2. AWS CLI を使用してドキュメントを作成し、保存します。 aws ssm create-document --content file://c:\temp\your file --name "document name" SSM サンプルドキュメント SSM ドキュメントは、現在 JavaScript Object Notation (JSON) でサポートされています。このドキュ メントでは runtimeConfig を使用し、1 つ以上のプラグインによってタスクを実行します。プラグイン はプラットフォーム固有です。つまり、サポートされるバージョンの Windows または Linux で実行さ れます。詳細については、「SSM プラグイン」 (Amazon EC2 Systems Manager API Reference) を 参照してください。 独自のドキュメントを作成する基盤として、次の例を使用します。 453 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM ドキュメントの作成 Example : 制限付き SSM ドキュメント 次の例は、Linux で AWS-RunShellScript ドキュメントを使用する制限の厳しい SSM ドキュメントを 示しています。ユーザーは、ifconfig コマンドを実行してインスタンスの IP 設定を確認できるのみで す。 { "schemaVersion": "1.2", "description": "Check ip configuration of a Linux instance.", "parameters": { }, "runtimeConfig": { "aws:runShellScript": { "properties": [ { "id": "0.aws:runShellScript", "runCommand": ["ifconfig"] } ] } } } Example : AWS-RunShellScript { "schemaVersion": "1.2", "description": "Run a shell script or specify the commands to run.", "parameters": { "commands": { "type": "StringList", "description": "(Required) Specify a shell script or a command to run.", "minItems": 1, "displayType": "textarea" }, "workingDirectory": { "type": "String", "default": "", "description": "(Optional) The path to the working directory on your instance.", "maxChars": 4096 }, "executionTimeout": { "type": "String", "default": "3600", "description": "(Optional) The time in seconds for a command to complete before it is considered to have failed. Default is 3600 (1 hour). Maximum is 28800 (8 hours).", "allowedPattern": "([1-9][0-9]{0,3})|(1[0-9]{1,4})|(2[0-7][0-9] {1,3})|(28[0-7][0-9]{1,2})|(28800)" } }, "runtimeConfig": { "aws:runShellScript": { "properties": [ { 454 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM ドキュメントの共有 "id": "0.aws:runShellScript", "runCommand": "{{ commands }}", "workingDirectory": "{{ workingDirectory }}", "timeoutSeconds": "{{ executionTimeout }}" } ] } } } Example : AWS-UpdateSSMAgent { "schemaVersion": "1.2", "description": "Update the Amazon SSM Agent to the latest version or specified version.", "parameters": { "version": { "default": "", "description": "(Optional) A specific version of the Amazon SSM Agent to install. If not specified, the agent will be updated to the latest version.", "type": "String" }, "allowDowngrade": { "default": "false", "description": "(Optional) Allow the Amazon SSM Agent service to be downgraded to an earlier version. If set to false, the service can be upgraded to newer versions only (default). If set to true, specify the earlier version.", "type": "String", "allowedValues": [ "true", "false" ] } }, "runtimeConfig": { "aws:updateSsmAgent": { "properties": [ { "agentName": "amazon-ssm-agent", "allowDowngrade": "{{ allowDowngrade }}", "targetVersion": "{{ version }}" } ] } } } SSM ドキュメントの共有 Amazon EC2 Systems Manager (SSM) ドキュメントはプライベートまたはパブリックに共有できま す。SSM ドキュメントをプライベートに共有するには、ドキュメントのアクセス権限を変更し、特定 の人がアマゾン ウェブ サービス (AWS) の ID に基づいてドキュメントにアクセスできるようにしま す。SSM ドキュメントをパブリックに共有するには、ドキュメントのアクセス権限を変更し、[All] を指定します。 455 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM ドキュメントの共有 Warning 信頼できるソースの共有 SSM ドキュメントのみ使用してください。共有ドキュメントを使用 するときは、使用する前にドキュメントのコンテンツを慎重に確認し、インデックスの設定 がどのように変わるかを理解してください。共有ドキュメントのベストプラクティスの詳細 については、「共有 SSM ドキュメントの共有および使用のガイドライン (p. 456)」を参照 してください。 制約事項 SSM ドキュメントの作業を始めるときは、次の制限事項に注意してください。 • 所有者のみがドキュメントを共有できます。 • ドキュメントを削除するには、その前にドキュメントの共有を停止する必要があります。詳細につ いては、「共有ドキュメントのアクセス権限を変更する方法 (p. 459)」を参照してください。 • 最大 20 個の AWS アカウントでドキュメントを共有できます。この制限を引き上げるには、AWS サポートセンターに移動して、制限の引き上げリクエストフォームを送信します。 • パブリックに最大 5 個の SSM ドキュメントを共有できます。この制限を引き上げるには、AWS サ ポートセンターに移動して、制限の引き上げリクエストフォームを送信します。 目次 • 共有 SSM ドキュメントの共有および使用のガイドライン (p. 456) • SSM ドキュメントを共有する方法 (p. 457) • 共有ドキュメントのアクセス権限を変更する方法 (p. 459) • 共有された SSM ドキュメントを使用する方法 (p. 459) 共有 SSM ドキュメントの共有および使用のガイドライン 共有ドキュメントを共有したり使用したりする前に、次のガイドラインを確認してください。 機密情報を削除する SSM ドキュメントを慎重に確認して、機密情報があればそれを削除します。たとえば、ドキュメ ントに AWS 認証情報が含まれていないことを確認します。特定のユーザーとドキュメントを共 有する場合、そのユーザーはドキュメント内の情報を表示することができます。パブリックにド キュメントを共有する場合、誰でもドキュメント内の情報を表示することができます。 IAM ユーザー信頼ポリシーを使用して Run Command アクションを制限する ドキュメントにアクセスできるユーザー用の、AWS Identity and Access Management (IAM) 制限 付きユーザーポリシーを作成します。IAM ポリシーにより、ユーザーが Amazon EC2 コンソール で表示できるか、AWS CLI または Windows PowerShell 用 AWS ツールで ListDocuments を呼 び出して表示できる SSM ドキュメントが決まります。このポリシーでは、SSM ドキュメントに 対してユーザーが実行できるアクションも制限されます。制限付きポリシーを作成し、ユーザー が特定のドキュメントのみを表示するようにできます。詳細については、「Systems Manager へ のアクセス設定 (p. 401)」を参照してください。 使用する前に共有ドキュメントのコンテンツを確認する インスタンスで実行するコマンドを理解するために、共有されている各ドキュメント (特にパブ リックドキュメント) のコンテンツを確認します。ドキュメントは、実行後に意図的または非意図 的に悪影響を及ぼすことがあります。ドキュメントが外部ネットワークを参照している場合、ド キュメントを使用する前に外部ソースを確認してください。 ドキュメントハッシュを使用してコマンドを送信する ドキュメントを共有する場合、システムは Sha-256 ハッシュを作成し、それをドキュメントに割 り当てます。また、システムはドキュメントコンテンツのスナップショットを保存します。共有 ドキュメントを使用してコマンドを送信するときは、コマンドでハッシュを指定して、次の条件 が確実に該当するようにできます。 456 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM ドキュメントの共有 • 正しい SSM ドキュメントからコマンドを実行している • ドキュメントが自分と共有されてからコンテンツが変更されていない。 ハッシュが、指定されたドキュメントと一致しない場合、または共有ドキュメントのコンテンツ が変更されている場合、コマンドは InvalidDocument 例外を返します。注意: ハッシュは、外 部の場所からドキュメントのコンテンツを確認することはできません。 SSM ドキュメントを共有する方法 SSM ドキュメントを共有するには、Amazon EC2 コンソールを使用するか、AWS CLI、Windows PowerShell 用 AWS ツール、または AWS SDK を使用して ModifyDocumentPermission API オペ レーションをプログラムで呼び出します。ドキュメントを共有する前に、共有するユーザーの AWS アカウント ID を取得します。ドキュメントを共有する場合に、これらのアカウント ID を指定しま す。 Amazon EC2 コンソールを使用したドキュメントの共有 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Documents] を選択します。 3. ドキュメントリストで、共有するドキュメントを選択します。[Permissions] タブを選択し、自分 がドキュメントの所有者であることを確認します。ドキュメントの所有者のみがドキュメントを 共有できます。 4. [Edit] を選択します。 5. コマンドをパブリックに共有するには、[Public] を選択し、[Save] を選択します。コマンドをプ ライベートに共有するには、[Private] を選択し、AWS アカウント ID を入力します。次に、[Add Permission] を選択し、[Save] を選択します。 AWS CLI を使用したドキュメントの共有 次の手順では、CLI セッションのリージョンを指定する必要があります。現在、Run Command は、 次の SSM リージョンでのみ利用できます。 1. ローカルコンピュータの AWS CLI を開き、次のコマンドを実行して認証情報を指定します。 aws config AWS Access Key ID: [your key] AWS Secret Access Key: [your key] Default region name: [us-east-1] Default output format [None]: 2. 次のコマンドを使用して、使用可能なすべての SSM ドキュメントの一覧を表示します。一覧に は、作成したドキュメント、および自分と共有されたドキュメントが含まれます。 aws ssm list-documents --document-filter-list key=Owner,value=all 3. 特定のドキュメントを取得するには、次のコマンドを使用します。 aws ssm get-document --name document name 4. ドキュメントの説明を表示するには、次のコマンドを使用します。 aws ssm describe-document --name document name 457 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM ドキュメントの共有 5. ドキュメントのアクセス権限を表示するには、次のコマンドを使用します。 aws ssm describe-document-permission --name document name --permissiontype Share 6. ドキュメントのアクセス権限を変更して共有するには、次のコマンドを使用します。アクセス権 限を編集するには、ドキュメントの所有者である必要があります。このコマンドは、そのユー ザーの AWS アカウント ID に基づいて、特定の個人とドキュメントをプライベートに共有しま す。 aws ssm modify-document-permission --name document name --permission-type Share --account-ids-to-add AWS account ID 次のコマンドを使用してドキュメントをパブリックに共有します。 aws ssm modify-document-permission --name document name --permission-type Share --account-ids-to-add 'all' Windows PowerShell 用 AWS ツールを使用したドキュメントの共有 次の手順では、PowerShell セッションのリージョンを指定する必要があります。現在、Run Command は、次の SSM リージョンでのみ利用できます。 1. ローカルコンピュータで Windows PowerShell 用 AWS ツールを開き、次のコマンドを実行して 認証情報を指定します。 Set-AWSCredentials –AccessKey your key –SecretKey your key 2. 次のコマンドを使用して、PowerShell セッションのリージョンを設定します。この例では、uswest-2 リージョンを使用しています。 Set-DefaultAWSRegion -Region us-west-2 3. 次のコマンドを使用して、使用可能なすべての SSM ドキュメントの一覧を表示します。一覧に は、作成したドキュメント、および自分と共有されたドキュメントが含まれます。 Get-SSMDocumentList -DocumentFilterList (@{"key"="Owner";"value"="All"}) 4. 特定のドキュメントを取得するには、次のコマンドを使用します。 Get-SSMDocument –Name document name 5. ドキュメントの説明を表示するには、次のコマンドを使用します。 Get-SSMDocumentDescription –Name document name 6. ドキュメントのアクセス権限を表示するには、次のコマンドを使用します。 Get- SSMDocumentPermission –Name document name -PermissionType Share 7. ドキュメントのアクセス権限を変更して共有するには、次のコマンドを使用します。アクセス権 限を編集するには、ドキュメントの所有者である必要があります。このコマンドは、そのユー ザーの AWS アカウント ID に基づいて、特定の個人とドキュメントをプライベートに共有しま す。 458 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM ドキュメントの共有 Edit-SSMDocumentPermission –Name document name -PermissionType Share AccountIdsToAdd AWS account ID 次のコマンドを使用してドキュメントをパブリックに共有します。 Edit-SSMDocumentPermission -Name document name -AccountIdsToAdd ('all') PermissionType Share 共有ドキュメントのアクセス権限を変更する方法 コマンドを共有する場合、SSM ドキュメントへのアクセス権を削除するか、SSM ドキュメントを削 除するまで、そのコマンドを表示および使用できます。ただし、共有されている限り、ドキュメント を削除することはできません。ドキュメントを削除する前に、共有を停止する必要があります。 Amazon EC2 コンソールを使用したドキュメント共有の停止 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Documents] を選択します。 3. 4. ドキュメントリストで、共有を停止するドキュメントを選択します。[Permissions] タブを選択 し、自分がドキュメントの所有者であることを確認します。ドキュメントの所有者のみが、ド キュメントの共有を停止できます。 [Edit] を選択します。 5. コマンドへのアクセスが必要なくなった AWS アカウント ID を削除し、[Save] を選択します。 AWS CLI を使用したドキュメント共有の停止 ローカルコンピュータで AWS CLI を開き、次のコマンドを実行してコマンドの共有を停止します。 aws ssm modify-document-permission --name document name --permission-type Share --account-ids-to-remove 'AWS account ID' Windows PowerShell 用 AWS ツールを使用したドキュメント共有の停止 ローカルコンピュータで Windows PowerShell 用 AWS ツールを開き、次のコマンドを実行してコマ ンド共有を停止します。 Edit-SSMDocumentPermission -Name document name –AccountIdsToRemove AWS account ID -PermissionType Share 共有された SSM ドキュメントを使用する方法 SSM ドキュメントを共有すると、システムは Amazon リソースネーム (ARN) を生成して、コマンド に割り当てます。Amazon EC2 コンソールから共有ドキュメントを選択して実行する場合、ARN は表 示されません。ただし、共有された SSM ドキュメントをコマンドラインアプリケーションから実行 する場合は、完全な ARN を指定する必要があります。コマンドを実行してドキュメントをリストす ると、SSM ドキュメントの完全な ARN が表示されます。 Note 自分が所有している AWS パブリックドキュメント (AWS-* で始まるドキュメント) またはコ マンドには ARN を指定する必要はありません。 459 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド SSM ドキュメントの共有 このセクションには、AWS CLI および Windows PowerShell 用 AWS ツールから、共有された SSM ドキュメントを表示および実行する方法の例が含まれています。 AWS CLI からの共有 SSM ドキュメントの使用 すべてのパブリック SSM ドキュメントをリスト表示するには aws ssm list-documents --document-filter-list key=Owner,value=Public 自分と共有されているプライベート SSM ドキュメントをリスト表示するには aws ssm list-documents --document-filter-list key=Owner,value=Private 使用できるすべての SSM ドキュメントをリスト表示するには aws ssm list-documents --document-filter-list key=Owner,value=All 完全な ARN を使用して、共有 SSM ドキュメントからコマンドを実行します aws ssm send-command --document-name FullARN/name 以下に例を示します。 aws ssm send-command --document-name arn:aws:ssm:useast-1:12345678912:document/highAvailabilityServerSetup --instance-ids i-12121212 Windows PowerShell 用 AWS ツールから共有 SSM ドキュメントを使用する すべてのパブリック SSM ドキュメントをリスト表示するには Get-SSMDocumentList -DocumentFilterList @(New-Object Amazon.SimpleSystemsManagement.Model.DocumentFilter("Owner", "Public")) 自分と共有されているプライベート SSM ドキュメントをリスト表示するには Get-SSMDocumentList -DocumentFilterList @(New-Object Amazon.SimpleSystemsManagement.Model.DocumentFilter("Owner", "Shared")) 自分と共有されている SSM ドキュメントについての情報を入手するには Get-SSMDocument –Name FullARN/name 以下に例を示します。 Get-SSMDocument –Name arn:aws:ssm:us-east-1:12345678912:document/ highAvailabilityServerSetup 自分と共有されている SSM ドキュメントの説明を取得するには Get-SSMDocumentDescription –Name FullARN/name 460 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング 以下に例を示します。 Get-SSMDocumentDescription –Name arn:aws:ssm:us-east-1:12345678912:document/ highAvailabilityServerSetup 完全な ARN を使用して、共有 SSM ドキュメントからコマンドを実行するには Send-SSMCommand –DocumentName FullARN/name –InstanceId IDs 以下に例を示します。 Send-SSMCommand –DocumentName arn:aws:ssm:us-east-1:555450671542:document/ highAvailabilityServerSetup –InstanceId @{"i-273d4e9e"} コマンドのステータスとモニタリング Amazon EC2 Run Command は、コマンドの各処理状態とコマンドを処理した各インスタンスの詳細 なステータス情報をレポートします。Run Command には、コマンドのステータスを手動または自動 でモニタリングするためのオプションが用意されています。コマンドのステータスをモニタリングす ることで、コマンドが失敗した場合の問題のトラブルシューティングが容易になります。 目次 • コマンドのステータスについて (p. 461) • コマンドのモニタリングについて (p. 464) • コマンドがステータスを変更したときに Amazon SNS 通知を取得する (p. 464) • Run Command のコマンド実行ステータスの変更をログに記録する (p. 469) コマンドのステータスについて Run Command は、プラグイン、呼び出し、コマンドのステータス全体という 3 つのエリアでステー タスの詳細をレポートします。プラグインは、コマンドの SSM ドキュメントに定義されているコー ド実行ブロックです。たとえば、AWS-RunShellScript ドキュメントには aws:runShellScript プラグイ ンが含まれています。 AWS-* ドキュメントに含まれているプラグインは 1 つのみですが、複数のプ ラグインを使用するドキュメントを独自に作成できます。プラグインの詳細については、「SSM プラ グイン」 (Amazon EC2 Systems Manager API Reference) を参照してください。 複数のインスタンスに、コマンドを同時に送信するとき、各インスタンスを対象とするコマンドの各 コピーは、コマンド呼び出しです。たとえば、AWS-RunShellScript ドキュメントを使用して ifconfig コマンドを 20 インスタンスに送信した場合、このコマンドの呼び出し数は 20 です。各コマンド呼び 出しで、個別にステータスが報告されます。コマンド呼び出しに含まれているプラグインも、個々に ステータスを報告します。 最後に、Run Command コマンドには、すべてのプラグインと呼び出しの集約されたコマンドステー タスがあります。集約されたコマンドステータスは、以下の表に示すように、プラグインまたは呼び 出しによってレポートされるステータスとは異なる場合があります。 Note max-concurrency パラメーターまたは max-errors パラメーターを使用して多数のインス タンスに対してコマンドを実行する場合は、以下の表に示すように、これらのパラメーター によって強制される制限がコマンドのステータスに反映されます。 これらのパラメーターの 詳細については、複数のインスタンスへのコマンドの送信 (p. 448)を参照してください。 461 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング コマンドのプラグインと呼び出しの詳細なステータス ステータス 詳細 Pending インスタンスでコマンドはまだエージェントに 受け取られていません。Timeout (seconds) パ ラメーターによって指定された値より前にエー ジェントによってコマンドが受け取られない場 合、ステータスは Delivery Timed Out に変 わります。 進行中 コマンドは、エージェントによって受け取られ たか、インスタンスで実行が開始されました。 すべてのコマンドプラグインの結果に応じて、 ステータスは Success、Failed、Execution Timed Out のいずれかに変わります。インスタ ンスでまだエージェントを利用できない場合、 コマンドのステータスは、エージェントが再度 利用可能になるまで In Progress と表示され ます。その後、ステータスは終了状態に変わり ます。 Delayed システムからインスタンスにコマンドを送信し ようとしましたが成功しませんでした。システ ムは再試行します。 Success コマンドまたはプラグインの実行は正常に完了 しました。これは終了状態です。 Delivery Timed Out コマンドは、配信タイムアウトが期限切れにな るまでにインスタンスに配信されませんでし た。配信タイムアウトは、親コマンドの maxerrors の制限数にはカウントされませんが、 親コマンドのステータスが Success または Incomplete のいずれになるかに影響します。 これは終了状態です。 Execution Timed Out コマンドの実行は、インスタンスで開始されま したが、実行タイムアウトが期限切れになる までに完了しませんでした。実行タイムアウト は、親コマンドの max-errors の制限数にカウ ントされます。これは終了状態です。 Failed インスタンスでコマンドは失敗しました。プラ グインの場合、これは結果コードがゼロでは ないことを示します。コマンドの呼び出しの場 合、これは 1 つ以上のプラグインの結果コード がゼロではないことを示します。呼び出しの失 敗は、親コマンドの max-errors の制限数にカ ウントされます。これは終了状態です。 Canceled コマンドは、完了する前に終了しました。これ は終了状態です。 Undeliverable コマンドをインスタンスに配信できません。イ ンスタンスは存在していないか、応答していな い可能性があります。配信不能な呼び出しは、 親コマンドの max-errors の制限数にはカウン トされません。また、親コマンドのステータス 462 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング ステータス 詳細 が Success または Incomplete のいずれにな るかにも影響しません。これは終了状態です。 Terminated 親コマンドが max-errors の制限数を超え、後 続のコマンド呼び出しはシステムによって取り 消されました。これは終了状態です。 コマンドの詳細なステータス ステータス 詳細 Pending インスタンスでコマンドはエージェントによっ てまだ受け取られていません。 In Progress コマンドは、1 つ以上のインスタンスに送信され ましたが、どのインスタンスも終了状態に達し ていません。 Delayed システムからインスタンスにコマンドを送信し ようとしましたが成功しませんでした。システ ムは再試行します。 Success コマンドは、すべての指定されたインスタンス または対象となるインスタンスで実行を試行し ましたが、どのコマンドの呼び出しも終了状態 に達していず、max-errors の値にも達してい ません。これは終了状態です。 Delivery Timed Out コマンドは、配信タイムアウトが期限切れにな るまでにインスタンスに配信されませんでし た。max-errors の値を超えるコマンドの呼び 出しが Delivery Timed Out のステータスを 示しています。これは終了状態です。 Execution Timed Out コマンドの実行は、インスタンスで開始されま したが、実行タイムアウトが期限切れになる までに完了しませんでした。max-errors の 値を超えるコマンドの呼び出しが Execution Timed Out のステータスを示しています。これ は終了状態です。 Failed インスタンスでコマンドは失敗しました。maxerrors の値を超えるコマンドの呼び出しが Failed のステータスを示しています。これは終 了状態です。 Incomplete コマンドは、すべてのインスタンスで試行され ましたが、Success の値になっていない呼び出 しが 1 つ以上あります。ただし、スタータスが Failed になるほどの呼び出しの失敗はありませ ん。これは終了状態です。 Canceled コマンドは、完了する前に終了しました。これ は終了状態です。 Rate Exceeded コマンドの対象となるインスタンスの数が、保 留中の呼び出しに対するアカウントの上限を超 463 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング ステータス 詳細 えています。コマンドはシステムによってキャ ンセルされ、どのインスタンスでも実行が開始 されていません。これは終了状態です。 コマンドのモニタリングについて コマンドのステータスは、手動または自動でモニタリングできます。どの方法でモニタリングするか は、送信するコマンドの数とこれらのコマンドを処理するインスタンスの数によって異なります。た とえば、数百のインスタンスにコマンドを送信する場合、コマンドのステータスをモニタリングする ために、Amazon EC2 コンソールの [Run Command] ページで [Refresh] アイコンをクリックすること は実用的ではありません。この場合は、Amazon SNS 通知または CloudWatch イベント を設定するこ とを検討します。 コマンドのステータスをモニタリングする方法 • Amazon EC2 コンソールの [Run Command] ページの [Refresh] アイコンをクリックします。 • AWS CLI を使用して list-commands または list-command-invocations を呼び出します。あ るいは、AWS Tools for Windows PowerShell を使用して Get-SSMCommand または GetSSMCommandInvocation を呼び出します。 • すべての状況の変化または Failed や TimedOut など、特定のステータスの通知を送信するよう Amazon SNS を設定します。詳細については、「コマンドがステータスを変更したときに Amazon SNS 通知を取得する (p. 464)」を参照してください。 • ステータスの変更をログに記録する CloudWatch イベント を設定します。詳細については、「Run Command のコマンド実行ステータスの変更をログに記録する (p. 469)」を参照してください。 コマンドがステータスを変更したときに Amazon SNS 通知を 取得する Amazon Simple Notification Service (Amazon SNS) を、Amazon EC2 Run Command を使用して送信 するコマンドのステータスに関する通知を送信するよう設定できます。Amazon SNS は、受信登録し ているクライアントまたはエンドポイントへの通知の配信または送信の統合と管理を行います。コマ ンドが新しいステータスに変更、または失敗やタイムアウトのようなステータスに変更されるたびに 通知を受け取ることができます。複数のインスタンスにコマンドを送信すると、特定のインスタンス に送信されるコマンドの各コピーに対して通知を受け取ることができます。各コピーは、その呼び出 しと呼ばれます。 Amazon SNS は、HTTP または HTTPS POST、E メール (SMTP、プレーンテキストまたは JSON フォーマット)、あるいは Amazon Simple Queue Service (Amazon SQS) キューに投稿されるメッ セージとして通知を配信できます。詳細については、「Amazon SNS とは」 (Amazon Simple Notification Service 開発者ガイド) を参照してください。 コマンドステータスが失敗に変更されたときに通知を送信するように Amazon SNS を設定した場合 は、SNS はコマンド実行の詳細の通知を E メールで送信します。 Note 必要に応じて、Amazon CloudWatch Events を使用してコマンドがステータスを変更した 時に、AWS Lambda 関数を呼び出すターゲットを設定できます。詳細については、「Run Command のコマンド実行ステータスの変更をログに記録する (p. 469)」を参照してくださ い。 コマンドがステータスを変更したときに Amazon SNS 通知をセットアップするには、次のタスクを完 了する必要があります。 464 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング 1. アカウントのアクセス権限を設定する (p. 466) 2. 通知用の IAM ロールを作成する (p. 467) 3. Amazon SNS の設定 (p. 468) 4. ステータス通知を返すコマンドを送信します (p. 468) SSM 用の Amazon SNS 通知の設定 Run Command は、次のステータスを入力するコマンドの Amazon SNS 通知の送信をサポートしま す。これらのステータスのいずれかを入力するコマンドの条件については、コマンドのステータスと モニタリング (p. 461) を参照してください。 • 進行中 • Success • Failed • タイムアウト • キャンセル済み Note コマンドは、Run Command を使用してキャンセルおよび保留中のステータスの報告も送信 します。これらのステータスは SNS 通知によって把握されません。 SNS 通知の Run Command を設定する場合は、SNS は次の情報を含む概要メッセージを送信します: フィールド 型 説明 EventTime 文字列 文字列SNS はメッセージの配 信順序を保証しないため、タ イムスタンプは重要です。例: 2016-04-26T13:15:30Z DocumentName 文字列 このコマンドの実行に使用され る SSM ドキュメントの名前。 CommandId 文字列 コマンドが送信された後に Run Command によって生成された ID です。 ExpiresAfter 日付 この時間に達し、コマンドが既 に実行を開始している場合は、 実行されません。 OutputS3BucketName 文字列 コマンド実行に対する応答を保 存する Amazon Simple Storage Service (Amazon S3) バケット です。 OutputS3KeyPrefix 文字列 コマンド実行に対する応答を保 存するバケット内の Amazon S3 のディレクトリパスです。 RequestedDateTime 文字列 リクエストがこの特定のインス タンスに送信された日時です。 InstanceId 文字列 コマンドの対象となるインスタ ンスです。 465 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング フィールド 型 説明 ステータス 文字列 コマンドのコマンドステータス です。 コマンドを複数のインスタンスに送信する場合、Amazon SNS では、次の情報を含むコマンドの各コ ピーまたは呼び出しに関するメッセージを送信できます。 フィールド 型 説明 EventTime 文字列 文字列SNS はメッセージの配 信順序を保証しないため、タ イムスタンプは重要です。例: 2016-04-26T13:15:30Z DocumentName 文字列 このコマンドの実行に使用され た SSM ドキュメントの名前。 RequestedDateTime 文字列 リクエストがこの特定のインス タンスに送信された日時です。 CommandId 文字列 コマンドが送信された後に Run Command によって生成された ID です。 InstanceId 文字列 コマンドの対象となるインスタ ンスです。 ステータス 文字列 この呼び出しのコマンドステー タス。 アカウントのアクセス権限を設定する 通知に対して設定されたコマンドを送信する場合、サービスロール Amazon Resource Name (ARN) を指定します。たとえば、--service-role-arn=arn:aws:iam::123456789012:myrole とします。このサー ビスロールが SNS 通知をトリガーするために SSM によって使用されます。 Amazon SNS サービスからの通知を受け取るには、iam:PassRole ポリシーを既存の AWS Identity and Access Management (IAM) ユーザーアカウントにアタッチするか、新規の IAM アカウン トを作成してこのポリシーをアタッチする必要があります。新しいアカウントを作成する場合 は、AmazonSSMFullAccess ポリシーをアタッチして、アカウントが SSM API と通信できるようにす る必要もあります。 以下の手順を使用して、ユーザーアカウントに IAM ポリシーをアタッチします。新規ユーザーアカウ ントを作成する必要がある場合、IAM ユーザーガイド の AWS アカウント内での IAM ユーザーの作 成を参照してください。 iam:PassRole ポリシーをユーザーアカウントにアタッチするには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで、[Users] を選択し、ユーザー ([User name] の下) を選択します。 3. ページの先頭で [User ARN] をクリップボードにコピーします。 4. [Permissions] で、AmazonSSMFullAccess ポリシーが表示されていること、または SSM API に 対するアクセス権限を与える互換性のポリシーがあることを確認します。 466 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング 5. [Add inline policy] を選択します。 6. [Set Permissions] ページで、[Custom Generator] を選択し、次に [Select] をクリックします。 7. [Effect] が [Allow] に設定されていることを確認します。 8. [AWS Service] で、[AWS Identity and Access Management] を選択します。 9. [Actions] で、[PassRole] を選択します。 10. [Amazon Resource Name (ARN)] フィールドで、ARN を貼り付けます。 11. [Add Statement]、[Next ] の順に選択します。 12. [Review Policy] ページで、[Apply Policy] を選択します。 通知用の IAM ロールを作成する 前の手順では、通知を返すコマンドを送信できるように、IAM ポリシーをユーザーアカウントに追加 しました。次の手順では、通知を送信するときに SSM サービスがユーザーに代わってタスクを実行 するようにロールを作成します。 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで [Roles] を選択し、続いて [Create New Role] を選択します。 3. [Step 1: Set Role Name] で、このロールを通知用の Run Command ロールとして識別する名前を 入力します。 4. [Step 2: Select Role Type] で、[Amazon EC2] を選択します。これは管理ポリシーであるため、シ ステムは [Step 3: Establish Trust] をスキップします。 5. [Step 4: Attach Policy] で [AmazonSNSFullAccess] を選択します。 6. [Next Step] を選択してから、[Create Role] を選択します。システムでは、[Roles] ページが返さ れます。 7. 作成したロールを見つけ、ダブルクリックします。 8. [Trust Relationships] タブを選択し、[Edit Trust Relationship] を選択します。 9. 次のコードスニペットが示すように、"ssm.amazonaws.com" を既存のポリシーに追加します。 { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com", "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } Note 既存のエントリの後にコンマを追加する必要があります。"Service": "sns.amazonaws.com"、または JSON は検証されません。 10. [Update Trust Policy] を選択します。 11. [Role ARN] をコピー、または書き留めます。通知を返すように設定されたコマンドを送信すると きに、ARN を指定します。 467 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング Amazon SNS の設定 Amazon SNS を使用して E メール通知を送信するには、最初にトピックを作成してから、そのトピッ クと共に E メールアドレスを登録する必要があります。 Amazon SNS トピックの作成 Amazon SNS トピックは、論理的アクセスポイント、あるいは Run Command が通知を送信するため に使用する通信チャネルです。トピックの名前を指定することにより、トピックを作成します。 詳細については、「トピックの作成」 (Amazon Simple Notification Service 開発者ガイド) を参照して ください。 Note トピックを作成した後に [Topic ARN] をコピー、または書き留めます。ステータスの通知を返 すように設定されたコマンドを送信するときに、ARN を指定します。 Amazon SNS トピックへの登録 Run Command がトピックに送信した通知を受信するには、そのトピックにエンドポイントを登録す る必要があります。この手順では、[Endpoint] に、Run Command からの通知を受信する E メールア ドレスを指定します。 詳細については、Amazon Simple Notification Service 開発者ガイド の Subscribe to a Topic を参照し てください。 Amazon SNS 受信登録の確認 Amazon SNS は、前のステップで指定した E メールアドレスに確認メールを送信します。 次のステップに進む前に、必ず AWS 通知の E メールを開き、リンクを選択して受信登録を確認して ください。 AWS から受信確認メッセージを受け取ります。Amazon SNS は、通知を受信し、通知を E メールと して指定された E メールアドレスに送信するように設定されました。 ステータス通知を返すコマンドを送信します このセクションでは、Amazon EC2 コンソールまたは AWS Command Line Interface (AWS CLI) のい ずれかを使用してステータス通知を返すために設定されたコマンドを送信する方法を示します。 Amazon EC2 コンソールから通知を返すコマンドを送信する 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Run Command] を選択します。 3. 4. [Run a command] を選択します。 [Command document] で、SSM ドキュメントを選択します。 5. [Target instances] で、コマンドを実行するインスタンスを選択します。このリストに表示されて いないインスタンスは、Run Command 用に適切に設定されていない場合があります。詳細につ いては、「Systems Manager の前提条件 (p. 387)」を参照してください。 6. SSM ドキュメントで必須のフィールドに情報を入力します。[SNS Notifications] セクションで、 [Enable SNS notifications] を選択します。 [Role] フィールドに、先に作成した IAM ロールの ARN を入力または貼り付けます。 [SNS Topic] フィールドに、先に作成した Amazon SNS ARN を入力または貼り付けます。 7. 8. 9. [Notify me on] フィールドで、通知を受け取るイベントを選択します。 10. [Notify me for] フィールドで、複数のインスタンス (呼び出し) またはコマンドの概要に送信され たコマンドの各コピーの通知を受け取るかを選択します。 468 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング 11. [Run] を選択します。 12. Amazon SNS からのメッセージが E メールされていることを確認し、E メールを開きま す。Amazon SNS は、メールの送信に数分かかることがあります。 AWS CLI からの通知に対して設定されたコマンドを送信する 1. AWS CLI を開きます。 2. 以下のコマンドでパラメーターを指定します。 aws ssm send-command --instance-ids "ID-1, ID-2" --document-name "name" --parameters commands=date --service-role ServiceRole ARN --notificationconfig NotificationArn=SNS ARN 例 aws ssm send-command --instance-ids "i-12345678, i-34567890" -document-name "AWS-RunPowerShellScript" --parameters commands=date -service-role arn:aws-cn:iam:: 123456789012:myrole --notification-config NotificationArn=arn:aws-cn:sns:cn-north-1:123456789012:test 3. Enter キーを押します。 4. Amazon SNS からのメッセージが E メールされていることを確認し、E メールを開きま す。Amazon SNS は、メールの送信に数分かかることがあります。 コマンドラインから Run Command の設定の詳細については、Amazon EC2 Systems Manager API Reference と SSM AWS CLI Reference を参照してください。 Run Command のコマンド実行ステータスの変更をログに記録 する Amazon CloudWatch Events および 単純な AWS Lambda 関数を使用して、コマンド実行ステータス の変更をログに記録できます。状態の遷移があると実行されるルールや、関心のある 1 以上の遷移が あると実行されるルールを作成できます。 Amazon EC2 Systems Manager イベントタイプ SSM は、以下のデータを CloudWatch イベント に送信します。 例1 – EC2コマンドステータス変更の通知: この例には、複数のインスタンスへ送信されたコマンドの 実行ステータスの変更に関する情報が含まれます。 { "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "EC2 Run Command – Command Status change", "source": "aws.ssm", "account": "123456789012", "time": "2016-03-14T18:43:48Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-12345678", "arn:aws:ec2:us-east-1:123456789012:instance/i-12345670", "arn:aws:ec2:us-east-1:123456789012:instance/i-12345679" ], 469 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング "detail": { "command-id": "aws.ssm.12345678-1234-1234-1234-12345678", "requested-date-time":"2016-03-14T18:43:48Z", "expire-after":"2016-03-14T18:43:48Z", "output-s3bucket-name":"mybucket", "output-s3key-prefix":"test", "parameters":"parameter", "status": "Success" } } 例2 – EC2 コマンド呼び出しステータス変更の通知: この例には、複数のインスタンスへ送信された コマンドに関する情報が含まれますが、イベントでは 1 つのインスタンスのみ、またはそのコマンド の呼び出しに関する詳細が表示されます。 { "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "EC2 Run Command – Command Invocation Status change", "source": "aws.ssm", "account": "123456789012", "time": "2016-03-14T18:43:48Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-12345678" ], "detail": { "command-id": "aws.ssm.12345678-1234-1234-1234-12345678", "instance-id":"i-12345678", "requested-date-time":"2016-03-14T18:43:48Z", "status": "Success" } } SSM コマンド実行ステータスの変更をログに記録する 次のシナリオでは、単純な AWS Lambda 関数を作成し、SSM からのイベントをルーティングし、正 しくセットアップされていることを確認するためにシナリオをテストします。 Run Command のコマンド実行ステータスの変更を記録するためには、以下を実行する必要がありま す。 1. ステップ 1: AWS Lambda 関数を作成する (p. 470) 2. ステップ 2: イベントを AWS Lambda 関数にルーティングする (p. 471) 3. ステップ 3: Amazon CloudWatch イベント ルールをテストする (p. 472) ステップ 1: AWS Lambda 関数を作成する AWS Lambda 関数を作成するには 1. https://console.aws.amazon.com/lambda/ にある AWS Lambda コンソールを開きます。 2. [Create a Lambda function] を選択してから、[Select blueprint] 画面で [hello-world] を選択しま す。 3. [Configure function] 画面で、[Name] フィールドにイベントの名前を入力します。この例では、 [SomethingHappened] を使用します。 470 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コマンドのステータスとモニタリング 4. [Lambda function code] セクションで、以下の例に一致するようにサンプルコードを編集しま す。 console.log('Loading function'); exports.handler = function(event, context, callback) { console.log('SomethingHappened()'); console.log('Here is the event:', JSON.stringify(event, null, 2)); callback(null, "Ready"); }; 5. [Lambda function handler and role] の [Role] フィールドで、[lambda_basic_execution_rule] があ れば、それを選択します。なければ、新しい基本的な実行ロールを作成します。 6. [Next] を選択してから、[Review] 画面で [Edit] を選択して、変更をすべて行います。関数が適切 であることを確認したら、[Create function] を選択します。 ステップ 2: イベントを AWS Lambda 関数にルーティングする CloudWatch イベント ルールを作成するには: 1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 2. ナビゲーションペインの [Events] を選択します。 3. [Create rule] を選択してから、[Event selector] で [EC2 instance state-change notification] を選択 します。 4. [Specific state(s)] を選択し、リストから [Running] を選択します。 5. 次のいずれかを行ってください。 • ルールがリージョン内のインスタンスのいずれにも応答するようにするには、[Any instance] を 選択します。 • ルールが特定のインスタンスに応答するようにするには、[Specific instance(s)] を選択し、テキ ストボックスにインスタンス ID を入力します。 6. [Targets] で、[Add target] を選択します。[Select target type] リストで、[AWS Lambda function] を選択します。 7. [Function] リストで、[Step 1: Create an AWS Lambda Function] で作成した関数を選択します。 8. [Configure input] を選択してから、以下のいずれかのオプションを選択します。 • [一致したイベント] – イベントのデータフィールドのすべてを CloudWatch ログに送ります。 • [一致したイベントの一部] – イベントの指定したデータフィールドのみを CloudWatch ログに送ります。イベントの一部 を指定するために、$.[first_parameter.second_parameter] たとえば、Amazon EC2 インスタンス ID のみを送るには、フィールドに「$.detail.state」と入 力します。 • [定数] – 指定した JSON 形式のテキスト文字列を CloudWatch ログに送ります。たとえば、イベント のテキスト文字列を送るには、「{"Name":"MyInstance"}」と入力します。定数は有効な JSON である必要があります。 9. [Configure details] を選択します。[Configure rule details] 画面で、[Name] フィールドにルールの 名前を入力します。 10. [Description] フィールドで、[コマンド実行ステータスの変更をログに記録する] などのルールの 簡単な説明を入力します。 471 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Run Command のトラブルシューティング 11. ルールが適切であることを確認したら、[Create rule] を選択します。 ステップ 3: Amazon CloudWatch イベント ルールをテストする Run Command を使ってコマンドを実行することにより、ルールをテストできます。コマンドが処理 されるまで数分間待ったら、Amazon CloudWatch イベント コンソールで AWS Lambda メトリクス を調べて、関数が呼び出されたことを確認します。 コンソールを使用して CloudWatch イベント ルールをテストするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで、[Run Command] を選択します。 [Run a command] を選択します。 4. 1 つ以上のインスタンスでコマンドを実行します。詳細については、「Amazon EC2 Run Command を使用したコマンドの実行 (p. 444)」を参照してください。 AWS Lambda メトリクスを表示するには、CloudWatch コンソール https:// console.aws.amazon.com/cloudwatch/ を開きます。 5. 6. ナビゲーションペインの [Metrics] で、[Lambda] を選択して、Lambda 関数によって生成された メトリクスを表示します。 7. 関数からの出力を表示するには、ナビゲーションペインで、[Logs] を選択し、[Log Groups] リス トで、データを含む [/aws/lambda] ロググループを選択します。 8. [Log Streams] で、コマンド実行ステータスの変更に関するデータを表示するログストリームを選 択します。 Amazon EC2 Run Command のトラブルシューティ ング 以下の情報を参考にして、Run Command に関する問題のトラブルシューティングを行いま す。Windows の Run Command のトラブルシューティングについては、 Windows 用のユーザーガイ ドの Run Command のトラブルシューティングを参照してください。 インスタンスの場所 [Select Target instances] を選択しても想定したインスタンスのリストが表示されない場合は、イン スタンスが SSM API と通信できる AWS Identity and Access Management (IAM) ロールを使ってイ ンスタンスが設定されていることを確認します。また、ユーザーアカウントに SSM API と通信でき る IAM ユーザー信頼ポリシーがあることを確認します。次の手順では、インスタンスのロールおよび ユーザーの信頼ポリシーを設定する方法について説明します。 Note IAM インスタンスロールは、新しいインスタンスの作成時に割り当てる必要があります。す でに実行されているインスタンスにロールを割り当てることはできません。SSM-supported ロールを使用する既存のインスタンスを作成するには、インスタンスのイメージを作成し、 そのイメージからインスタンスを起動して、インスタンスの起動時に IAM ロールを割り当て る必要があります。詳細については、「Amazon EBS-Backed Linux AMI の作成」を参照して ください。 SSM-supported ロールを使用するインスタンスを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. サポートされているリージョンを選択します。 [Launch Instance] を選択し、[Linux] インスタンスを選択します。 472 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Run Command のトラブルシューティング 4. インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 5. [IAM role] の横の [Create new IAM role] を選択します。新しいタブに IAM コンソールが開きま す。 a. [Create New Role] を選択します。 b. [Step 1: Set Role Name] で、このロールを Run Command ロールとして識別する名前を入力 します。 c. [Step 2: Select Role Type] で、[Amazon EC2 Role for Simple Systems Manager] を選択しま す。 これは管理ポリシーであるため、システムは [Step 3: Establish Trust] をスキップしま す。 d. [Step 4: Attach Policy] で [AmazonEC2RoleforSSM] を選択します。 e. [Next Step] を選択し、さらに [Create Role] を選択します。 f. IAM コンソールを使用してタブを閉じます。 6. EC2 マネジメントコンソールで、[Create New IAM role] の横の [Refresh] ボタンを選択します。 7. [IAM role] ドロップダウンリストで、先ほど作成したロールを選択します。 8. ウィザードを終了して新しいインスタンスを作成し、起動します。 ユーザーアカウントに SSM へのアクセス権を付与 以下の手順を使用して、[AmazonSSMFullAccess] IAM ポリシーをユーザーアカウントにアタッチしま す。このポリシーは、SSM API アクションへのフルアクセスを付与します。 EC2 インスタンスの IAM ポリシーを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで、[Policies] を選択します (IAM の初回使用時は、[Get Started]、[Create Policy] の順に選択します)。 3. [Filter] フィールドで、「AmazonSSMFullAccess」と入力して、[Enter] を押します。 4. [AmazonSSMFullAccess] の横にあるチェックボックスをオンにして、[Policy Actions]、[Attach] の順に選択します。 5. [Attach Policy] ページで、ユーザーアカウントを選択してから、[Attach Policy] を選択します。 ポリシーをアタッチしてから、EC2 コンソールの [Select Target instances] セクションでインスタン スが表示されるかどうかを確認します。表示されない場合は、1 つ以上の前提条件が満たされていま せん。詳細については、「Systems Manager の前提条件 (p. 387)」を参照してください。 Health API を使用してインスタンスのステータスを確認する Amazon EC2 Health API を使用すると、Amazon EC2 インスタンスに関する次の状態を迅速に調べる ことができます。 • SSM エージェントのバージョン • 1 つまたは複数のインスタンスのステータス 473 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Run Command のトラブルシューティング • オペレーティングシステム • SSM エージェントのステータス • インスタンスから最後にハートビート値が送信された日時 1 つまたは複数のインスタンスに関するステータス詳細を取得するには、次のコマンドを使用しま す。 aws ssm describe-instance-information --instance-information-filter-list key=InstanceIds,valueSet=instance-ID 現在オンラインステータスが報告されている、アカウントに登録済みのすべてのインスタンス を表示するには、フィルタを指定せずに次のコマンドを実行します。各ステータスを表示するに は、ValueSet="Online" の値を "ConnectionLost" または "Inactive" に置き換えてください。 aws ssm describe-instance-information --instance-information-filter-list key=PingStatus,valueSet=Online どのインスタンスで最新バージョンの SSM エージェントが実行されているか確認するには、次のコ マンドを使用します。該当する詳細を表示するには、ValueSet="LATEST" の値を特定のバージョン (1.0.145、1.0 など) に置き換えてください。 aws ssm describe-instance-information --instance-information-filter-list key=AgentVersion,valueSet=LATEST describe-instance-information API オペレーションが AgentStatus に Online を返した場合は、そのイ ンスタンスは Run Command を使用した管理の準備ができています。ステータスが Inactive の場合 は、インスタンスに以下のいずれかの問題があります。 • SSM エージェントがインストールされていない。詳細については、「SSM エージェントのインス トール (p. 389)」を参照してください。 • インスタンスにアウトバウンドのインターネット接続がない。 • インスタンスが SSM API と通信できる IAM ロールで起動されていない、または IAM ロールのアク セス許可が Run Command に対して正しくない。詳細については、「Systems Manager へのアクセ ス設定 (p. 401)」を参照してください。 Amazon SSM エージェントのトラブルシューティング Run Command を使用したコマンドの実行で問題が発生する場合は、SSM エージェントに問題がある 可能性があります。以下の情報を利用して、エージェントをトラブルシューティングしてください。 エージェントログの表示 SSM エージェントは、cihub/seelog を使用して情報を以下のファイルに記録します。これらのファイ ルの情報は、問題をトラブルシューティングするのに役立ちます。 • /var/log/amazon/ssm/amazon-ssm-agent.log • /var/log/amazon/ssm/error.log seelog.xml ファイルを更新することで、ログを拡張することができます。デフォルトでは、設定ファ イルここにあります: /opt/amazon/ssm/seelog.xml。 cihub/seelog の設定について詳しくは、cihub/seelog Wiki を参照してください。cihub/seelog 設定の 例については、cihub/seelog examples を参照してください。 474 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 在庫管理 在庫管理 Systems Manager Inventory を使用して、Amazon EC2 インスタンスおよびオンプレミスサーバーま たは仮想マシン (VM) から、オペレーティングシステム (OS)、アプリケーション、インスタンスのメ タデータを収集できます。メタデータを照会すると、ソフトウェアポリシーに従ってソフトウェアと 設定を実行しているインスタンスと、更新が必要なインスタンスをすばやく把握できます。 Note Systems Manager の機能と共有コンポーネントは、追加料金なしで提供されます。お客様 は、使用した EC2 リソースに対してのみ料金を支払います。Systems Manager サービスの制 限の詳細については、アマゾン ウェブ サービス全般のリファレンス を参照してください。 Windows ユーザー向けの情報 Windows インスタンスの Amazon EC2 ユーザーガイド の「インベントリ管理」を参照してくださ い。 Inventory の開始方法 Inventory の使用を開始するには、以下のタスクを完了します。 タスク 追加情報 マネージドインスタンスの SSM エージェントを 最新バージョンに更新します。 Amazon EC2 Run Command を使用した SSM エージェントの更新 (p. 445) オンプレミスサーバーと VM を Systems Manager 用に設定します。設定後は、マネージ ドインスタンスと呼ばれます。 ハイブリッド環境での Systems Manager のセッ トアップ (p. 398) Systems Manager の前提条件を確認します。 Systems Manager の前提条件 (p. 387) 目次 • Systems Manager Inventory (p. 475) • インベントリ収集の設定 (p. 477) • インベントリ収集の照会 (p. 478) • Systems Manager Inventory Manager のチュートリアル (p. 478) Systems Manager Inventory Systems Manager Inventory を設定するときは、収集するメタデータのタイプ、メタデータの収集元 となるインスタンス、メタデータ収集のスケジュールを指定します。これらの設定は AWS アカウン トに State Manager の関連付けとして保存されます。 Note Inventory はメタデータのみを収集します。個人のデータや所有権のあるデータは一切収集し ません。 以下の表では、インベントリ収集のさまざまな部分をより詳しく説明しています。 475 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Systems Manager Inventory パート 詳細 収集する情報のタイプ • インスタンスの詳細 (システム名、OS 名、OS バージョン、最終起動、DNS、ドメイン、 ワークグループ、OS アーキテクチャなど) • ネットワーク設定の詳細 (IP アドレス、MAC アドレス、DNS、ゲートウェイ、サブネット マスクなど) • アプリケーションの詳細 (アプリケーション 名、発行元、バージョンなど) • AWS コンポーネントの詳細 (EC2 ドライ バー、エージェント、バージョンなど) • カスタムインベントリの詳細。カスタムイン ベントリの詳細については、このセクション で後で説明します。 情報を収集するインスタンス EC2 タグを使用して、インスタンスまたはイン スタンスグループを個別に選択できます。 情報を収集する間隔 収集間隔は、分、時間、日、週単位で指定でき ます。最短収集間隔は 30 分ごとです。 収集されるデータの量によっては、指定した出力にデータをレポートするのに数分かかることがあり ます。情報が収集されると、セキュアな HTTPS チャンネルを介して、AWS アカウントからのみア クセス可能なプレーンテキストの AWS ストアに、メタデータが送信されます。それらのデータは、 指定した Amazon S3 バケットで表示したり、Amazon EC2 コンソールのマネージドインスタンスの [Inventory] タブで表示したりできます。[Inventory] タブには、データのクエリに役立ついくつかの定 義済みフィルタがあります。 マネージドインスタンスのインベントリの収集を開始するには、「インベントリ収集の設 定 (p. 477)」を参照してください。Amazon EC2 コンソールと AWS CLI を使用してインベントリ 収集をセットアップする方法のサンプルを表示するには、「Systems Manager Inventory Manager の チュートリアル (p. 478)」を参照してください。 カスタムインベントリ カスタムインベントリを使用して、インスタンスに必要なあらゆるメタデータをアタッチできます。 たとえば、多数のオンプレミスインスタンスを管理していて、ラックの場所の情報をスプレッドシー トに保存する場合は、カスタムインベントリを使用して、インスタンスごとにラックの場所のメタ データを記録できます。 カスタムインベントリを記録するには、PutInventory API を使用できます。または、SSM エージェン トを使用してインスタンスから直接カスタムインベントリをアップロードできます。SSM エージェン トは、関連付けの頻度に従ってアップロードされます。この頻度は、インスタンスから収集された他 のすべてのインベントリに使用される頻度と同じです。 PutInventory API の詳細については、Amazon EC2 Systems Manager API Reference を参照してくだ さい。SSM エージェントからカスタムデータをアップロードするには、次の例に示すようなカスタム インベントリの JSON ファイルを作成する必要があります。 { "SchemaVersion": "1.0", "TypeName": "Custom:RackInformation", "Content": { "Location": "US-EAST-01.DC.RACK1", "InstalledTime": "2016-01-01T01:01:01Z", 476 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インベントリ収集の設定 "vendor": "DELL", "Zone" : "BJS12", "TimeZone": "UTC-8" } } カスタムインベントリの JSON ファイルは、インスタンスの次の場所に保存する必要があります。 オペレーティングシステム パス Windows %SystemDrive%\ProgramData\Amazon\SSM \InstanceData\<instance-id>\inventory\custom Linux /var/lib/amazon/ssm/<instance-id>/inventory/ custom 関連 AWS サービス Systems Manager Inventory では、現在のインベントリのスナップショットを得られ、ソフトウェア ポリシーを管理し、フリート全体のセキュリティポスチャを向上させるために役立ちます。以下の AWS のサービスを使用して、インベントリ管理と移行機能を拡張できます。 • AWS Config では、インベントリの変更履歴を取得できるほか、設定アイテムが変更されたときに 通知を生成するルールを作成することもできます。詳細については、AWS Config Developer Guide の「Amazon EC2 マネージドインスタンスインベントリの記録」を参照してください。 • AWS Application Discovery Service は、オンプレミス VM から OS タイプ、アプリケーションイ ンベントリ、プロセス、接続、サーバーパフォーマンスメトリックスに関するインベントリを収 集して、AWS への移行成功を支援するように設計されています。詳細については、Application Discovery Service ユーザーガイド を参照してください。 インベントリ収集の設定 Amazon EC2 コンソールを使用して、マネージドインスタンスのインベントリ収集を設定するには、 以下の手順を実行します。AWS CLI を使用してインベントリ収集を設定する方法の例については、 「Systems Manager Inventory Manager のチュートリアル (p. 478)」を参照してください。 開始する前に インベントリ収集を設定する前に、以下のタスクを完了します。 • インスタンスが Systems Manager の前提条件を満たしていることを確認します。詳細については、 「Systems Manager の前提条件 (p. 387)」を参照してください。 • 既存のインスタンスからインベントリを収集する場合は、SSM エージェントを更新します。詳細に ついては、「Amazon EC2 Run Command を使用した SSM エージェントの更新 (p. 445)」を参照 してください。 マネージドインスタンスのインベントリ収集を設定するには 1. 2. 3. Amazon EC2 コンソールを開き、ナビゲーションペインで [Systems Manager Shared Resources] を展開して、[Managed Instances] を選択します。 [Setup Inventory] を選択します。 EC2 タグを使用して複数のインスタンスに対してインベントリを設定する場合は、[Targets] セク ションで [Specify a Tag] を選択します。インベントリに対して設定されているインスタンスを個 別に選択する場合は、[Manually Select Instances] を選択します。 477 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インベントリ収集の照会 Note タグを使用すると、以後同じタグで作成されたどのインスタンスからもインベントリが レポートされます。 4. [Schedule] セクションで、インスタンスからインベントリメタデータを収集する頻度を選択しま す。 5. [Specify Parameters] セクションで、リストを使用してさまざまなタイプのインベントリ収集を有 効または無効にします。 6. 収集したデータを Amazon S3 バケットに保存する場合は、[Specify Output Location] セクション で [Write to S3] を選択します。 7. [Setup Inventory] を選択し、[OK] を選択します。 8. [Managed Instances] ページで、インベントリ用に設定したインスタンスを選択してから、 [Description] タブを選択します。インベントリ収集が処理されるまで、[Association Status] に [Pending] が表示されます。ステータスが [Failed] と表示された場合は、最新バージョンの SSM エージェントがインスタンスにインストールされていることを確認します。 9. 収集期間が経過したら、マネージドインスタンスを選択してから、[Inventory] タブを選択しま す。 10. [Inventory Type] リストを使用して、さまざまなタイプのインベントリデータをフィルタリングで きます。 インベントリ収集の照会 インベントリデータを収集した後は、[Inventory] タブのフィルタ機能を使用して、目的のインスタン スを抽出したり除外したりできます。 マネージドインスタンスのメタデータをフィルタリングするには 1. Amazon EC2 コンソールを開き、ナビゲーションペインで [Systems Manager Shared Resources] を展開して、[Managed Instances] を選択します。 2. [Inventory] タブを選択します。 3. [Inventory Type] リストで、フィルタにより抽出する属性を選択します。たとえば、 [AWS:Application] を選択します。 4. [Inventory Type] リストの下のフィルタバーを選択して、フィルタリングする属性のリストを表示 します。 5. リストから区切り記号を選択します。たとえば、[begins-with] を選択します。 6. 値を入力します。たとえば、「ssm」と入力し、フィルタバーの左側にある検索アイコンを選択 します。関連するすべてのマネージドインスタンスが返されます。 Note 複数のフィルタを組み合わせて検索を絞り込むことができます。 Systems Manager Inventory Manager のチュートリ アル 以下のチュートリアルでは、テスト環境でインベントリを収集および管理します。 目次 • 新しいインスタンスの起動 (p. 479) 478 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Inventory Manager のチュートリアル • ユーザーアカウントに SSM へのアクセス権を付与 (p. 479) • Inventory Manager CLI のチュートリアル (p. 480) 新しいインスタンスの起動 インスタンスには、インスタンスと Amazon EC2 Systems Manager (SSM) との通信を有効にする AWS Identity and Access Management (IAM) ロールが必要です。 IAM ロールは、新しいインスタン スの作成時に割り当てる必要があります。 すでに実行されているインスタンスにロールを割り当てる ことはできません。既存のインスタンスの場合、インスタンスのイメージを作成し、そのイメージか らインスタンスを起動して、インスタンスの起動時に IAM ロールを割り当てる必要があります。 詳細 については、「Amazon EBS-Backed Linux AMI の作成」を参照してください。 SSM-supported ロールを使用するインスタンスを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. サポートされているリージョンを選択します。 3. [Launch Instance] を選択し、[Linux] Amazon マシンイメージ (AMI) を選択します。 4. インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 5. [Auto-assign Public IP] で、[Enable] を選択します。 6. [IAM role] の横の [Create new IAM role] を選択します。 新しいタブに IAM コンソールが開きま す。 a. [Create New Role] を選択します。 b. [Step 1: Set Role Name] で、このロールを Run Command ロールとして識別する名前を入力 します。 c. [Step 2: Select Role Type] で、[Amazon EC2 Role for Simple Systems Manager] を選択しま す。 これは管理ポリシーであるため、システムは [Step 3: Establish Trust] をスキップしま す。 d. [Step 4: Attach Policy] で [AmazonEC2RoleforSSM] を選択します。 e. [Next Step] を選択し、さらに [Create Role] を選択します。 f. IAM コンソールを使用してタブを閉じます。 7. Amazon EC2 コンソールで、[Create New IAM role] の横の [Refresh] ボタンを選択します。 8. [IAM role] から、作成したロールを選択します。 9. ウィザードを終了して新しいインスタンスを起動します。 インスタンス ID を書き留めます。 後 で、このチュートリアルでこの ID を指定する必要があります。 Important 作成したインスタンスで SSM エージェントをインストールする必要があります。詳細につい ては、「SSM エージェントのインストール (p. 389)」を参照してください。 ユーザーアカウントに SSM へのアクセス権を付与 ユーザーアカウントは、SSM API. と通信するように設定する必要があります。 SSM API アクション へのフルアクセスを付与するユーザーアカウントに IAM 管理ポリシーをアタッチするには、次の手順 を使用します。 ユーザーアカウントの IAM ポリシーを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 479 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Inventory Manager のチュートリアル 2. ナビゲーションペインで、[Policies] を選択します (IAM の初回使用時は、[Get Started]、[Create Policy] の順に選択します)。 3. [Filter] フィールドで、「AmazonSSMFullAccess」と入力して、[Enter] を押します。 4. [AmazonSSMFullAccess] の横にあるチェックボックスをオンにして、[Policy Actions]、[Attach] の順に選択します。 5. [Attach Policy] ページで、ユーザーアカウントを選択してから、[Attach Policy] を選択します。 Inventory Manager CLI のチュートリアル 以下の手順では、前に作成したテストインスタンスから Inventory を使用してメタデータを収集する プロセスについて説明します。 インスタンスからインベントリを収集するには 1. 以下のコマンドを実行して、前に作成したインスタンスで Inventory を実行する State Manager の関連付けを作成します。このコマンドは、サービスを 6 時間ごとに実行し、前に作成したテス トインスタンスでネットワーク設定、Windows 更新プログラム、アプリケーションメタデータを 収集するように設定します。 aws ssm create-association --name a name --document-name "AWSGatherSoftwareInventory" --targets Key=InstanceIds,Values=ID of the instance you created earlier --schedule-expression "cron(0 0/30 * 1/1 * ? *)" --output-location "{ \"S3Location\": { \"OutputS3Region\": \"us-east-1\", \"OutputS3BucketName\": \"Test bucket\", \"OutputS3KeyPrefix\": \"Test\" } }" --parameters networkConfig=Enabled,windowsUpdates=Enabled,applications=Enabled システムから以下のような情報が返されます。 { "AssociationDescription": { "ScheduleExpression": "cron(0 0/30 * 1/1 * ? *)", "OutputLocation": { "S3Location": { "OutputS3KeyPrefix": "Test", "OutputS3BucketName": "Test bucket", "OutputS3Region": "us-east-1" } }, "Name": "The name you specified", "Parameters": { "applications": [ "Enabled" ], "networkConfig": [ "Enabled" ], "windowsUpdates": [ "Enabled" ] }, "Overview": { "Status": "Pending", "DetailedStatus": "Creating" }, 480 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Inventory Manager のチュートリアル "AssociationId": "1a2b3c4d5e6f7g-1a2b3c-1a2b3c-1a2b3c-1a2b3c4d5e6f7g", "DocumentVersion": "$DEFAULT", "LastUpdateAssociationDate": 1480544990.06, "Date": 1480544990.06, "Targets": [ { "Values": [ "i-1a2b3c4d5e6f7g" ], "Key": "InstanceIds" } ] } } EC2 タグで Targets パラメーターを使用することで、インスタンスの大規模なグループを対象 にすることができます。 aws ssm create-association --name a name --document-name "AWSGatherSoftwareInventory" --targets Key=tag:Environment,Values=Production --schedule-expression "cron(0 0/30 * 1/1 * ? *)" -output-location "{ \"S3Location\": { \"OutputS3Region\": \"us-east-1\", \"OutputS3BucketName\": \"Test bucket \", \"OutputS3KeyPrefix\": \"Test\" } }" --parameters networkConfig=Enabled,windowsUpdates=Enabled,applications=Enabled 2. 以下のコマンドを実行して、関連付けステータスを表示します。 aws ssm describe-instance-associations-status --instance-id ID of the instance you created earlier システムから以下のような情報が返されます。 { "InstanceAssociationStatusInfos": [ { "Status": "Pending", "DetailedStatus": "Associated", "Name": "reInvent2016PolicyDocumentTest", "InstanceId": "i-1a2b3c4d5e6f7g", "AssociationId": "1a2b3c4d5e6f7g-1a2b3c-1a2b3c-1a2b3c-1a2b3c4d5e6f7g", "DocumentVersion": "1" } ] } 以下の手順では、PutInventory API を使用して、前に作成したテストインスタンスにメタデータを割 り当てるプロセスについて説明します。この例では、ラックの場所情報をマネージドインスタンスに 割り当てます。 Inventory のインスタンスにカスタムメタデータを割り当てるには 1. 以下のコマンドを実行して、前に作成したテストインスタンスにラックの場所情報を割り当てま す。 481 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Inventory Manager のチュートリアル aws ssm put-inventory --instance-id "ID" --items '[{"CaptureTime": "2016-08-22T10:01:01Z", "TypeName": "Custom:RackInfo", "Content": [{"RackLocation": "Bay B/Row C/Rack D/Shelf E"}], "SchemaVersion": "1.0"}]' 2. 以下のコマンドを実行して、このインスタンスのカスタムインベントリエントリを表示します。 aws ssm list-inventory-entries --instance-id ID --type-name Custom:RackInfo システムから以下のような情報が返されます。 { "InstanceId": "ID", "TypeName": "Custom:RackInfo", "Entries": [ { "RackLocation": "Bay B/Row C/Rack D/Shelf E" } ], "SchemaVersion": "1.0", "CaptureTime": "2016-08-22T10:01:01Z" } 3. 以下のコマンドを実行して、カスタムメタデータを表示します。 aws ssm get-inventory システムから以下のような情報が返されます。 { "Entities": [ { "Data": { "AWS:InstanceInformation": { "Content": [ { "ComputerName": "WIN-9JHCEPEGORG.WORKGROUP", "InstanceId": "ID", "ResourceType": "EC2Instance", "AgentVersion": "3.19.1153", "PlatformVersion": "6.3.9600", "PlatformName": "Windows Server 2012 R2 Standard", "PlatformType": "Windows" } ], "TypeName": "AWS:InstanceInformation", "SchemaVersion": "1.0" } }, "Id": "ID" } ] 482 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 状態マネージメント } 状態マネージメント Systems Manager State Manager は、Amazon EC2 およびハイブリッドインフラストラクチャを定 義された状態に保つプロセスを自動化する、安全でスケーラブルなサービスです。State Manager を 使用して、インスタンスがスタートアップ時に特定のソフトウェアでブートストラップされたり、 セキュリティポリシーに従って設定されたり、Windows ドメインに結合されたり、ライフサイクル を通じて特定のソフトウェア更新でパッチを適用されたりするように設定できます。また、State Manager を使用して、インスタンスのライフサイクル中の異なる時刻に Linux シェルスクリプトまた は Windows PowerShell スクリプトを実行できます。 State Manager は、すべての関連付けの実行の監査証跡を保持するため、AWS CloudTrail と統合され ます。 Windows ユーザー向けの情報 Windows インスタンスの Amazon EC2 ユーザーガイドの「状態マネージメント」を参照してくださ い。 仕組み 最初に、Systems Manager コマンドまたはポリシードキュメントで、マネージドインスタンスに適用 する状態を指定します (たとえば、ブートストラップするアプリケーションや、指定するネットワー ク設定)。これらのドキュメントは JSON で記述され、単にドキュメントと呼ばれます。次に、AWS CLI または Amazon EC2 コンソールを使用してターゲットにドキュメントをバインドします。イン スタンス ID または EC2 タグを対象にすることができます。対象にするドキュメントのバインドは、 関連付けと呼ばれます。インスタンスを特定のポリシードキュメントに関連付けると、定義したスケ ジュールに従って関連付けられたドキュメントで定義された状態が State Manager によって再適用さ れるため、インスタンスが目的の状態に保たれます。 State Manager の開始方法 State Manager の使用を開始するには、以下のタスクを完了します。 タスク 追加情報 マネージドインスタンスの SSM エージェントを 最新バージョンに更新します。 Amazon EC2 Run Command を使用した SSM エージェントの更新 (p. 445) オンプレミスサーバーと VM を Systems Manager 用に設定します。設定後は、マネージ ドインスタンスと呼ばれます。 ハイブリッド環境での Systems Manager のセッ トアップ (p. 398) Systems Manager の前提条件を確認します。 Systems Manager の前提条件 (p. 387) インスタンスで実行するアクションを定義する ポリシードキュメントを作成します。 State Manager のドキュメントの作成 (p. 483) 関連付けを作成し、インスタンスに適用しま す。 State Manager の関連付け (p. 486) State Manager のドキュメントの作成 State Manager の関連付けを作成すると、システムはポリシーまたはコマンドドキュメントから、実 行するアクションを読み取ります。これらのドキュメントは JSON で記述され、実行するステップと 483 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ドキュメントの作成 関連付けに使用するパラメーターを定義します。新しいポリシードキュメントから関連付けを初めて 作成すると、システムによって AWS アカウントを使用してドキュメントが保存されます。 以下に示すのは、使用するスキーマを定義する (コマンドタイプの) 基本的なドキュメントのサンプル です。また、ネットワークアダプタ情報を取得するために aws:runShellScript プラグインを使用する 主要なステップも定義します。ポリシードキュメントには複数のステップを指定でき、ステップは順 序付けされます。 { "schemaVersion": "2.0", "description": "Sample version 2.0 document v2", "parameters": { }, "mainSteps": [ { "action": "aws:runShellScript", "name": "runShellScript", "inputs": { "runCommand": [ "ifconfig" ] } } ] } 制約事項 Systems Manager の SSM ドキュメントの作業を始めるときは、次の制限事項に注意してください。 • AWS アカウントごとに作成できる SSM ドキュメントは最大 200 個です。 • 作成する SSM ドキュメントは、それを作成したリージョンでのみ使用できます。別のリージョン でドキュメントを追加するには、コンテンツをコピーし、新しいリージョンでドキュメントを再作 成します。 Note 現在、ポリシードキュメントで同じプラグインを 2 回使用することはできません。 Amazon EC2 コンソールを使用してポリシードキュメントを作成するには 1. Amazon EC2 コンソールを開き、ナビゲーションペインの [Systems Manager Shared Resources] を選択します。 2. [Documents] を選択し、[Create Document] を選択します。 3. ドキュメントのわかりやすい名前を入力し、[Document Type] リストから [Policy] を選択して、 [Content] フィールドで JSON 形式のプラグインを指定します。詳細については、「SSM プラグ イン」 (Amazon EC2 Systems Manager API Reference) を参照してください。 4. [Create Document] を選択し、AWS ユーザーアカウントで保存します。 ドキュメントを作成したら、インスタンスに関連付けます。詳細については、「State Manager の関 連付け (p. 486)」を参照してください。 484 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ドキュメントの作成 Windows PowerShell を使用してポリシードキュメントを作成するには 1. サンプルのポリシードキュメントをコピーして、メモ帳などのシンプルなテキストエディタに貼 り付けます。 2. ファイルでプラグインとパラメーターを指定します。わかりやすい名前と .json ファイル拡張 子を付けてドキュメントを保存します。詳細については、「SSM プラグイン」 (Amazon EC2 Systems Manager API Reference) を参照してください。 3. 次のコマンドを実行してドキュメントを作成し、AWS Tools for Windows PowerShell を使用して AWS ユーザーアカウントでドキュメントを保存します。 $json = Get-Content C:\your file | Out-String New-SSMDocument -Name document name -Content $json ドキュメントを作成したら、インスタンスに関連付けます。詳細については、「State Manager の関 連付け (p. 486)」を参照してください。 AWS CLI を使用してポリシードキュメントを作成するには 1. サンプルのポリシードキュメントをコピーして、メモ帳などのシンプルなテキストエディタに貼 り付けます。 2. ファイルでプラグインとパラメーターを指定します。わかりやすい名前と .json ファイル拡張 子を付けてドキュメントを保存します。詳細については、「SSM プラグイン」 (Amazon EC2 Systems Manager API Reference) を参照してください。 3. 次のコマンドを実行してドキュメントを作成し、AWS CLI を使用して AWS ユーザーアカウント でドキュメントを保存します。 aws ssm create-document --content file://c:\temp\your file --name "document name" ドキュメントを作成したら、インスタンスに関連付けます。詳細については、「State Manager の関 連付け (p. 486)」を参照してください。 ドキュメントのバージョンと実行について ポリシードキュメントの異なるバージョンを作成して保存できます。次に、デフォルトのバージョン を指定し、新しいドキュメントを作成する際にそのデフォルトのバージョンを変更できます。また、 以前のバージョンに戻すこともできます。ドキュメントのデフォルトバージョンを変更した場合、そ のドキュメントを使用する関連付けでは、次回に Systems Manager が関連付けをインスタンスに適用 するときに、新しいデフォルトのバージョンを使い始めます。 ドキュメントの JSON コンテンツを変更すると、State Manager は自動的にドキュメントのバージョ ンを増やします。ドキュメントの以前のバージョンは、取得と表示が可能です。ドキュメントは、イ ンスタンスまたはタグ付けされたグループと関連付けることができます。 また、ポリシードキュメントに関する以下の詳細情報に注意してください。 • 異なるポリシードキュメントを使用する別の関連付けを作成して、ターゲットに複数のポリシード キュメントを割り当てることができます。 • ターゲットに複数のドキュメントを関連付ける場合、AWS CLI または SDK を使用して、関連付け られたすべてのドキュメント全体で実行されるすべてのプラグインの一覧を表示できます。 • ドキュメントでステップを指定する順序は、ステップが実行される順序になります。 • アクセス権限がある限り、State Manager で共有ポリシードキュメントを使用できますが、共有ド キュメントをインスタンスに関連付けることはできません。1 つ以上のターゲットに関連付けられ 485 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド State Manager の関連付け たドキュメントを使用または共有する場合は、ドキュメントのコピーを作成し、そのコピーを使用 または共有する必要があります。 • 競合するプラグインでポリシードキュメントを作成する場合 (たとえば、ドメイン結合やドメインか らの削除)、実行された最後のプラグインが最終状態になります。State Manager はポリシードキュ メントのコマンドまたはプラグインの論理シーケンスまたは合理性を検証しません。 • ポリシードキュメントを処理するときに、インスタンスの関連付けが最初に適用され、次にタグ付 けされたグループの関連付けが適用されます。インスタンスが、タグ付けされた複数のグループの 一部である場合、タグ付けされたグループの一部であるドキュメントは、特定の順序で実行されま せん。インスタンスがインスタンス ID によって複数のドキュメントから直接対象になっている場 合、特定の実行順序はありません。 State Manager の関連付け ポリシードキュメントのインスタンスで実行するアクションを定義したら、関連付けを作成しま す。関連付けにより、ポリシードキュメントと 1 つまたは複数のターゲットがバインドされます。 ドキュメントで定義されたアクションは、関連付けが実行されるときにインスタンスに適用されま す。Amazon EC2 コンソール、AWS CLI、AWS Tools for Windows PowerShell、または AWS SDK を使用して関連付けを作成できます。Amazon EC2 コンソールと AWS CLI を使用して関連付け を作成および使用する方法の例については、「Systems Manager State Manager のチュートリア ル (p. 487)」を参照してください。 関連付けを作成するときに、次の項目を指定します。 • 使用するポリシードキュメント。 • ポリシードキュメントに関連付けるインスタンス。手動で選択するか、または [Targets] オプション (EC2 タグを使用してインスタンスを見つけます) を使用してインスタンスを選択します。 • 関連付けを実行する頻度を指定するスケジュール。 • 関連付けを適用するときに実行するパラメーター。 • 出力の書き込み先となる Amazon S3 バケット。 関連付けのスケジュールと実行 関連付けのタスクはオンデマンドで実行するか、関連付けを再適用するスケジュールを設定できま す。スケジュールを設定する場合でも、引き続きオンデマンドで関連付けを実行できます。 Note 以前の関連付けがまだ実行中に新しい関連付けの実行をスケジュールした場合、以前の関連 付けはタイムアウトし、新しい関連付けが実行されます。 関連付けの実行中に、インスタンスはアクセス可能です。 ターゲットパラメーターを使用した関連付けの作成 targets パラメーターを使用して、数十、数百、または数千のインスタンスで関連付けを作成できま す。targets パラメーターは、インスタンスに指定した Amazon EC2 タグに基づいて Key;Value の組み合わせを受け取ります。関連付けを作成するリクエストを実行するときに、システムは指定 された条件に一致するすべてのインスタンスで、関連付けの作成を試みます。targets パラメー ターの詳細については、「複数のインスタンスへのコマンドの送信 (p. 448)」を参照してくださ い。Amazon EC2 タグの詳細については、「Amazon EC2 リソースにタグを付ける (p. 889)」を参 照してください。 次の AWS CLI の例は、関連付けを作成する際に targets パラメーターを使用する方法を示していま す。コマンドの例は、[...] を使用して切り詰められています。 486 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド State Manager のチュートリアル すべてのデータベースサーバー (タグ値にかかわらず「Database」というタグが付けられたホスト) の 関連付けを作成します。 aws ssm create-association --document-name value --targets “Key=tag:Database”[...] 「ws-0123456789012345」という名前のマネージドインスタンスの関連付けを作成します aws ssm create-association --document-name value --targets“Key=Instance Ids;Values=ws-0123456789”} [...] Note ドキュメントに関連付けられた、タグ付けされたグループからインスタンスを削除した場 合、インスタンスはドキュメントから関連付けを解除されます。 Systems Manager State Manager のチュートリアル 次のチュートリアルを使用して、テスト環境で EC2 インスタンスの状態を管理します。 目次 • 新しいインスタンスの起動 (p. 487) • ユーザーアカウントに SSM へのアクセス権を付与 (p. 488) • Systems Manager State Manager コンソールのチュートリアル (p. 488) • Systems Manager State Manager CLI のチュートリアル (p. 489) 新しいインスタンスの起動 インスタンスには、インスタンスと State Manager (SSM) との通信を有効にする AWS Identity and Access Management (IAM) ロールが必要です。 IAM ロールは、新しいインスタンスの作成時に割り 当てる必要があります。 すでに実行されているインスタンスにロールを割り当てることはできませ ん。既存のインスタンスの場合、インスタンスのイメージを作成し、そのイメージからインスタンス を起動して、インスタンスの起動時に IAM ロールを割り当てる必要があります。 詳細については、 「Amazon EBS-Backed Linux AMI の作成」を参照してください。 SSM-supported ロールを使用するインスタンスを作成するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 サポートされているリージョンを選択します。 3. 4. 5. 6. [Launch Instance] を選択し、[Linux] Amazon マシンイメージ (AMI) を選択します。 インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 [Auto-assign Public IP] で、[Enable] を選択します。 [IAM role] の横の [Create new IAM role] を選択します。 新しいタブに IAM コンソールが開きま す。 a. b. [Create New Role] を選択します。 [Step 1: Set Role Name] で、このロールを Systems Manager ロールとして識別する名前を 入力します。 c. [Step 2: Select Role Type] で、[Amazon EC2 Role for Simple Systems Manager] を選択しま す。 これは管理ポリシーであるため、システムは [Step 3: Establish Trust] をスキップしま す。 d. [Step 4: Attach Policy] で [AmazonEC2RoleforSSM] を選択します。 487 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド State Manager のチュートリアル e. [Next Step] を選択し、さらに [Create Role] を選択します。 f. IAM コンソールを使用してタブを閉じます。 7. Amazon EC2 コンソールで、[Create New IAM role] の横の [Refresh] ボタンを選択します。 8. [IAM role] から、作成したロールを選択します。 9. ウィザードを終了して新しいインスタンスを起動します。 インスタンス ID を書き留めます。 後 で、このチュートリアルでこの ID を指定する必要があります。 Important 作成したインスタンスで SSM エージェントをインストールする必要があります。詳細につい ては、「SSM エージェントのインストール (p. 389)」を参照してください。 ユーザーアカウントに SSM へのアクセス権を付与 ユーザーアカウントは、SSM API. と通信するように設定する必要があります。 SSM API アクション へのフルアクセスを付与するユーザーアカウントに IAM 管理ポリシーをアタッチするには、次の手順 を使用します。 ユーザーアカウントの IAM ポリシーを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで、[Policies] を選択します (IAM の初回使用時は、[Get Started]、[Create Policy] の順に選択します)。 3. [Filter] フィールドで、「AmazonSSMFullAccess」と入力して、[Enter] を押します。 4. [AmazonSSMFullAccess] の横にあるチェックボックスをオンにして、[Policy Actions]、[Attach] の順に選択します。 5. [Attach Policy] ページで、ユーザーアカウントを選択してから、[Attach Policy] を選択します。 Systems Manager State Manager コンソールのチュートリア ル 以下の手順では、EC2 コンソールを使用して関連付けを作成するプロセスを説明します。 State Manager を使用して関連付けを作成するには 1. Amazon EC2 コンソールを開き、ナビゲーションペインの [Systems Manager Shared Resources] を選択します。 2. [Documents] を選択し、[Create Document] を選択します。 3. [Name] に、このドキュメントをテストポリシードキュメントとして特定する、わかりやすい名前 を入力します。 4. [Document type] リストで、[Command] を選択します。 5. [Content] フィールドに事前に入力されている括弧 {} を削除し、次のサンプルドキュメントをコ ピーして、[Content] フィールドに貼り付けます。 使用するスキーマと、aws:runShellScript プラグインを使用してネットワークアダプタ情報を取得 する主要なステップを定義する基本的なポリシードキュメントの例を次に示します。ポリシード キュメントは複数のステップを持つことができます。 { "schemaVersion": "2.0", 488 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド State Manager のチュートリアル "description": "Sample version 2.0 document v2", "parameters": { }, "mainSteps": [ { "action": "aws:runShellScript", "name": "runShellScript", "inputs": { "runCommand": [ "ifconfig" ] } } ] } 6. [Create document] を選択し、ポリシードキュメントが作成されたら [OK] を選択します。 7. EC2 コンソールのナビゲーションペインで、[Systems Manager Services] を展開し、[State Manager] を選択します。 8. [Create Association] を選択します。 9. [Document name] の一覧で、先ほど作成したドキュメントを選択します。 10. [Select Targets by] セクションで [Manually Selecting Instances] を選択し、このチュートリアル の最初に作成したインスタンスを選択します。 11. [Schedule] セクションでオプションを選択します。 12. テストポリシードキュメントではパラメーターを使用しないため、[Specify Parameters] セクショ ンは無視します。 13. [Create Association] を選択します。 Systems Manager State Manager CLI のチュートリアル 以下の手順では、AWS Command Line Interface (AWS CLI) を使用して関連付けを作成するプロセス を説明します。 1. 次のサンプルのポリシードキュメントをコピーして、メモ帳などのシンプルなテキストエディタ に貼り付けます。 { "schemaVersion": "2.0", "description": "Sample version 2.0 document v2", "parameters": { }, "mainSteps": [ { "action": "aws:runShellScript", "name": "runShellScript", "inputs": { "runCommand": [ "ifconfig" ] } } ] } 489 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メンテナンスとデプロイの自動化 2. わかりやすい名前と .json ファイル拡張子を付けてドキュメントを保存します。 3. 次のコマンドを実行してドキュメントを作成し、AWS CLI を使用して AWS ユーザーアカウント でドキュメントを保存します。 aws ssm create-document --content file://c:\temp\your file --name "document name" 4. 次のコマンドを実行して、このチュートリアルの開始時に作成したインスタンスとの関連付けを 作成します。Schedule パラメーターは、30 分ごとに関連付けを実行するようスケジュールを設 定します。 aws ssm create-association --targets Key=instanceids,Values=Instance ID -document your document name --schedule "cron(0 0/30 * 1/1 * ? *)" 5. インスタンスの関連付けを表示するには、次のコマンドを実行します。コマンドによって返され る関連付け ID をコピーします。この ID は次のステップで指定します。 aws ssm list-instance-associations --instance-id=Instance ID メンテナンスとデプロイの自動化 Systems Manager Automation は、AWS でホストされる自動化サービスであり、一般的なメンテナン スとデプロイのタスクを簡素化します。EC2 Automation を使用して、カスタムスクリプトの実行、最 新パッチの実行、Amazon Machine Image (AMI)、ドライバー、エージェント、アプリケーションの更 新が可能です。 Note Systems Manager の機能と共有コンポーネントは、追加料金なしで提供されます。お客様 は、使用した EC2 リソースに対してのみ料金を支払います。Systems Manager サービスの制 限の詳細については、アマゾン ウェブ サービス全般のリファレンス を参照してください。 Windows ユーザー向けの情報 Windows インスタンスの Amazon EC2 ユーザーガイド の「メンテナンスとデプロイの自動化」を参 照してください。 Automation の使用を開始するには、まずアクセスを設定してから、Amazon EC2 コンソールまたは AWS CLI のチュートリアルを使用してテスト環境でこのサービスを試してください。 目次 • Automation へのアクセスの設定 (p. 490) • Systems Manager Automation のチュートリアル (p. 493) • Automation ドキュメントのアクションのリファレンス (p. 501) • Automation システム変数 (p. 510) Automation へのアクセスの設定 以下の手順を使用して、EC2 Automation のセキュリティロールとアクセス権限を設定します。ロー ルとアクセス権限の設定後、「Systems Manager Automation のチュートリアル (p. 493)」の説明に 従って、Automation をテストできます。 490 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド アクセス設定 Automation 用に IAM ロールを作成する Systems Manager Automation には、このサービス用に指定したアクションを実行するためのアクセ ス権限が必要です。Automation はお客様の IAM ロールを引き受けることで、これらのアクセス権限 を取得します。そのためには、以下の手順を使用します。 • お客様に代わって Automation がワークフローを処理するためのロールを作成します。 • そのロールに、Automation ドキュメント内の IAM ロールを参照するためのアクセス権限を割り当 てます。 IAM ロールを作成し、Automation がそのロールを引き受けることを許可します。 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールを開 きます。 2. ナビゲーションペインで [Roles] を選択し、続いて [Create New Role] を選択します。 3. [Step 1: Set Role Name] に、このロールを Automation ロールとして識別する名前を入力しま す。 4. [Step 2: Select Role Type] で、[Amazon EC2] を選択します。これは管理ポリシーであるため、シ ステムは [Step 3: Establish Trust] をスキップします。 5. [Step 4: Attach Policy] で、[AmazonSSMAutomationRole] 管理ポリシーを選択します。このポリ シーによって同じアクセス権限が付与されます。 6. [Step 5: Review] で、[Role Name] と [Role ARN] の値を記録します。ロール ARN は、次の手順 で iam:PassRole ポリシーを IAM アカウントにアタッチするときに指定します。ロール名と ARN は、EC2 Automation ドキュメントでも指定します。 7. [Create Role] を選択します。システムでは、[Roles] ページが返されます。 8. 作成したロールを見つけ、ダブルクリックします。 9. [Trust Relationships] タブを選択し、[Edit Trust Relationship] を選択します。 10. 以下のコードスニペットに示しているように、"ec2.amazonaws.com" の後にカンマ (,) を追加 し、既存のポリシーに "Service": "ssm.amazonaws.com" を追加します。 { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com", "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } 11. [Update Trust Policy] を選択します。 12. [Role ARN] をコピー、または書き留めます。この ARN は、Automation ドキュメントで指定しま す。 Note AmazonSSMAutomationRole ポリシーは、アカウント内の一部の AWS Lambda 関数 (Automation で始まる関数) に Automation ロールのアクセス権限を割り当てます。Lambda 関 491 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド アクセス設定 数で Automation を使用する予定の場合、Lambda ARN には以下の形式を使用する必要があり ます。 "arn:aws:lambda:*:*:function:Automation*" この形式を ARN に使用しない場合は、AmazonSSMAutomationRole ロールに追加の Lambda ポリシーを追加するか、AWS アカウントに AWSLambdaRole などの追加の Lambda ロール を追加する必要があります。追加のポリシーまたはロールは、AWS アカウント内の Lambda 関数へのより広範なアクセスを許可する必要があります。 ロールに iam:PassRole ポリシーをアタッチする Systems Manager でアクションを代行できるようにするには、作成したロール (assume ロール) に iam:PassRole ポリシーをアタッチする必要があります。また、このポリシーは、Automation ドキュ メントで参照されているすべてのロールにもアタッチする必要があります。たとえば、Automation ドキュメントの aws:launchInstance ステップで InstanceProfile ロールを指定する場合は、この InstanceProfile ロールのための iam:PassRole ポリシーが assume ロールに必要になります。 Note または、この手順を実行するときに、ARN にアスタリスク (*) を指定することもできます。 アスタリスクを指定することで、Systems Manager に AWS アカウント内のすべてのロール の参照を許可します。 ロールに iam:PassRole ポリシーをアタッチするには 1. ロールを見つけてダブルクリックします。 2. [Inline Policies] セクションで、[Create User Policy] を選択します。このボタンが表示されない場 合は、[Inline Policies] の横にある下矢印を選択してから、[click here] を選択します。 3. [Set Permissions] ページで、[Custom Generator] を選択し、次に [Select] をクリックします。 4. [Effect] が [Allow] に設定されていることを確認します。 5. [AWS Services] で、[AWS Identity and Access Management] を選択します。 6. [Actions] で、[PassRole] を選択します。 7. [Amazon Resource Name (ARN)] フィールドで、assume ロールの ARN を貼り付けます。たとえ ば、前の手順で作成したロールの ARN を貼り付けるか、Automation ドキュメントで参照されて いるロールの ARN を貼り付けます。 8. [Add Statement]、[Next Step] の順に選択します。 9. [Review Policy] ページで、[Apply Policy] を選択します。 アカウントのアクセス権限を設定する 以下の手順を使用して、iam:PassRole ポリシーをユーザーアカウントにアタッチします。または、新 しい IAM アカウントを作成し、そのアカウントに iam:PassRole ポリシーをアタッチすることもでき ます。新しいアカウントを作成する場合は、AmazonSSMFullAccess ポリシーをアタッチして、アカ ウントが SSM API とやり取りできるようにする必要もあります。新規ユーザーアカウントを作成する 必要がある場合、IAM ユーザーガイド の AWS アカウント内での IAM ユーザーの作成を参照してくだ さい。 iam:PassRole ポリシーをユーザーアカウントにアタッチするには 1. IAM のナビゲーションペインで、[Users] を選択し、ユーザーアカウントをダブルクリックしま す。 492 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation のチュートリアル 2. [Managed Policies] セクションで、AmazonSSMFullAccess ポリシーがあるかどうか、または SSM API に対するアクセス権限を与える同等のポリシーがあるかどうかを確認します。 3. [Inline Policies] セクションで、[Create User Policy] を選択します。このボタンが表示されない場 合は、[Inline Policies] の横にある下矢印を選択してから、[click here] を選択します。 4. 5. 6. [Set Permissions] ページで、[Custom Generator] を選択し、次に [Select] をクリックします。 [Effect] が [Allow] に設定されていることを確認します。 [AWS Services] で、[AWS Identity and Access Management] を選択します。 7. [Actions] で、[PassRole] を選択します。 8. [Amazon Resource Name (ARN)] フィールドに、前の手順で作成したロール ARN を貼り付けま す。 [Add Statement]、[Next Step] の順に選択します。 9. 10. [Review Policy] ページで、[Apply Policy] を選択します。 Systems Manager Automation のチュートリアル 以下のチュートリアルでは、EC2 コンソールまたは AWS CLI から Automation ワークフローを実行す る方法を示します。これらのチュートリアルを使用する前に、Automation のロールとアクセス権限を 設定する必要があります。詳細については、「Automation へのアクセスの設定 (p. 490)」を参照し てください。 目次 • Systems Manager Automation コンソールのチュートリアル (p. 493) • Systems Manager Automation CLI のチュートリアル (p. 496) Systems Manager Automation コンソールのチュートリアル 以下のチュートリアルでは、サンプル Automation ドキュメントを使用して、Automation により以下 のタスクを実行します。 • 指定した AMI から Windows インスタンスを起動します。 • Run Command を使用して、Windows 更新プログラムをインスタンスに適用するコマンドを実行し ます。 • インスタンスを停止します。 • 新しい Windows AMI を作成します。 • 元のインスタンスを終了します。 このチュートリアルでは、EC2 コンソールを使用して Automation ワークフローを設定および実行し ます。 サンプル Automation ドキュメント Automation は、JavaScript Object Notation (JSON) で記述された Automation ドキュメントを実行し ます。Automation ドキュメントには、ワークフローの実行時に実行されるアクションが含まれます。 サポートされているアクションを次に示します。 • aws:runInstance: 指定した AMI ID に対して 1 つ以上のインスタンスを起動します。 • aws:runCommand: リモートコマンド実行。SSM Run Command ドキュメントを実行します。 • aws:invokeLambdaFunction: Automation ワークフローで外部ワーカー関数を実行できます。 • aws:changeInstanceState: インスタンスの状態を stopped、terminated、または running に変 更します。 • aws:createImage: 実行中のインスタンスから AMI を作成します。 493 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation のチュートリアル • DeleteImage: AMI を削除します。 サンプル Automation ドキュメント内のこれらのアクションは以下の手順で表示できます。 Automation を使用して パッチを適用した AMI を作成するには 1. Amazon EC2 コンソールを開き、ナビゲーションペインで [Commands] を展開して、 [Documents] を選択します。 2. [Create document] を選択します。 3. [Name] に「patchWindowsAmi」と入力します。 4. [Document type] リストで、[Automation] を選択します。 5. [Content field] フィールドであらかじめ入力された中かっこ {} を削除し、以下のサンプルドキュ メントをコピーして [Content] フィールドに貼り付けます。assumeRole の値を、先ほど作成し たロール ARN に変更し、IamInstanceProfileName の値を、Automation 用に IAM ロールを作 成したときに先ほど作成したロールの名前に変更します。 { "description": "Systems Manager Automation Demo - Patch and Create a New AMI", "schemaVersion": "0.3", "assumeRole": "the role ARN you created", "parameters": { "sourceAMIid": { "type": "String", "description": "AMI to patch", "default": "{{ssm:sourceAMI}}" }, "targetAMIname": { "type": "String", "description": "Name of new AMI", "default": "patchedAMI-{{global:DATE_TIME}}" } }, "mainSteps": [ { "name": "startInstances", "action": "aws:runInstances", "timeoutSeconds": 1200, "maxAttempts": 1, "onFailure": "Abort", "inputs": { "ImageId": "{{ sourceAMIid }}", "InstanceType": "m3.large", "MinInstanceCount": 1, "MaxInstanceCount": 1, "IamInstanceProfileName": "the name of the IAM role you created" } }, { "name": "installMissingWindowsUpdates", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS-InstallMissingWindowsUpdates", "InstanceIds": [ 494 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation のチュートリアル "{{ startInstances.InstanceIds }}" ], "Parameters": { "UpdateLevel": "Important" } } }, { "name": "stopInstance", "action": "aws:changeInstanceState", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "InstanceIds": [ "{{ startInstances.InstanceIds }}" ], "DesiredState": "stopped" } }, { "name":"createImage", "action":"aws:createImage", "maxAttempts":1, "onFailure":"Continue", "inputs":{ "InstanceId":"{{ startInstances.InstanceIds }}", "ImageName":"{{ targetAMIname }}", "NoReboot":true, "ImageDescription":"AMI created by EC2 Automation" } }, { "name": "terminateInstance", "action": "aws:changeInstanceState", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "InstanceIds": [ "{{ startInstances.InstanceIds }}" ], "DesiredState": "terminated" } } ], "outputs": [ "createImage.ImageId" ] } 6. [Create document] を選択し、システムによって Automation ドキュメントが作成されたら [OK] を選択します。 7. EC2 コンソールのナビゲーションウィンドウで、[Systems Manager Services] を展開し、 [Automation executions] を選択します。 8. [Run automation document] を選択します。 9. [Document name] リストで、先ほど作成したドキュメントを選択します。 10. [sourceAMIid] の [Value] フィールドに、パッチを適用する AMI の ID を入力するか、表示されて いるデフォルトの ID を使用します。 495 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation のチュートリアル 11. [targetAMIname] の [Value] フィールドで、AMI の名前を入力するか、デフォルト値 (タイムスタ ンプを付加) を使用します。 12. [Run automation] を選択します。Automation 実行 ID が表示されます。[OK] を選択します。 13. 実行リストで、先ほど開始した実行を選択し、[Steps] タブを選択します。このタブには、ワーク フローアクションのステータスが表示されます。 Note 適用されるパッチの数に応じて、このサンプルワークフローで実行される Windows パッチ適 用プロセスは、完了までに 30 分以上かかることがあります。 Systems Manager Automation CLI のチュートリアル 以下のチュートリアルでは、サンプル Automation ドキュメントを使用して、Automation により以下 のタスクを実行します。 • 指定した AMI から Windows インスタンスを起動します。 • Run Command を使用して、Windows 更新プログラムをインスタンスに適用するコマンドを実行し ます。 • インスタンスを停止します。 • 新しい Windows AMI を作成します。 • 元のインスタンスを終了します。 このチュートリアルでは、AWS CLI を使用して Automation ワークフローを設定および実行します。 サンプル Automation ドキュメント Automation は、JavaScript Object Notation (JSON) で記述された Automation ドキュメントを実行し ます。Automation ドキュメントには、ワークフローの実行時に実行されるアクションが含まれます。 サポートされているアクションを次に示します。 • aws:runInstance: 指定した AMI ID に対して 1 つ以上のインスタンスを起動します。 • aws:runCommand: リモートコマンド実行。SSM Run Command ドキュメントを実行します。 • aws:invokeLambdaFunction: Automation ワークフローで外部ワーカー関数を実行できます。 • aws:changeInstanceState: インスタンスの状態を stopped、terminated、または running に変 更します。 • aws:createImage: 実行中のインスタンスから AMI を作成します。 • DeleteImage: AMI を削除します。 サンプル Automation ドキュメント内のこれらのアクションは以下の手順で表示できます。 Automation を使用して パッチを適用した AMI を作成するには 1. 以下のサンプルドキュメントをメモ帳などのテキストエディターにコピーします。assumeRole の値を、Automation 用に IAM ロールを作成したときに先ほど作成したロール ARN に変更 し、IamInstanceProfileName の値を、先ほど作成したロールの名前に変更します。ドキュメ ントをローカルドライブに patchWindowsAmi.json という名前で保存します。 { "description":"Systems Manager Automation Demo - Patch and Create a New AMI", "schemaVersion":"0.3", "assumeRole":"the role ARN you created", 496 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation のチュートリアル "parameters":{ "sourceAMIid":{ "type":"String", "description":"AMI to patch" }, "targetAMIname":{ "type":"String", "description":"Name of new AMI", "default":"patchedAMI-{{global:DATE_TIME}}" } }, "mainSteps":[ { "name":"startInstances", "action":"aws:runInstances", "timeoutSeconds":1200, "maxAttempts":1, "onFailure":"Abort", "inputs":{ "ImageId":"{{ sourceAMIid }}", "InstanceType":"m3.large", "MinInstanceCount":1, "MaxInstanceCount":1, "IamInstanceProfileName":"the name of the IAM role you created" } }, { "name":"installMissingWindowsUpdates", "action":"aws:runCommand", "maxAttempts":1, "onFailure":"Continue", "inputs":{ "DocumentName":"AWS-InstallMissingWindowsUpdates", "InstanceIds":[ "{{ startInstances.InstanceIds }}" ], "Parameters":{ "UpdateLevel":"Important" } } }, { "name":"stopInstance", "action":"aws:changeInstanceState", "maxAttempts":1, "onFailure":"Continue", "inputs":{ "InstanceIds":[ "{{ startInstances.InstanceIds }}" ], "DesiredState":"stopped" } }, { "name":"createImage", "action":"aws:createImage", "maxAttempts":1, "onFailure":"Continue", 497 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation のチュートリアル "inputs":{ "InstanceId":"{{ startInstances.InstanceIds }}", "ImageName":"{{ targetAMIname }}", "NoReboot":true, "ImageDescription":"AMI created by EC2 Automation" } }, { "name":"terminateInstance", "action":"aws:changeInstanceState", "maxAttempts":1, "onFailure":"Continue", "inputs":{ "InstanceIds":[ "{{ startInstances.InstanceIds }}" ], "DesiredState":"terminated" } } ], "outputs":[ "createImage.ImageId" ] } 2. AWS CLI をローカルマシンにダウンロードします。 3. 以下のコマンドを編集し、ローカルマシン上の patchWindowsAmi.json ファイルへのパスを指定 します。コマンドを実行して、必要な Automation ドキュメントを作成します。 aws ssm create-document --name "patchWindowsAmi" --content file:///Users/ test-user/Documents/patchWindowsAmi.json --document-type Automation コマンドの進捗に関する情報が返されます。 { "DocumentDescription": { "Status": "Creating", "Hash": "fdeacee0a97ea710f6efc1dc43a9025ce3a34c5743a11e30a4ac6f42127f3a8e", "Name": "patchWindowsAmi", "DocumentType": "Ec2Automation", "PlatformTypes": [], "DocumentVersion": "1", "HashType": "Sha256", "CreatedDate": 1475776111.117, "Owner": "860547654709" } } 4. 以下のコマンドを実行して、アクセス可能なドキュメントのリストを表示します。 aws ssm list-documents --document-filter-list key=Owner,value=Self 以下のような情報が返されます。 { 498 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation のチュートリアル "DocumentIdentifiers":[ { "Name":" patchWindowsAmi", "PlatformTypes": [ ], "DocumentVersion": "5", "DocumentType": "Automation", "Owner": "12345678901", "SchemaVersion": "0.3" } ] } 5. 以下のコマンドを実行して、patchWindowsAmi ドキュメントの詳細を表示します。 aws ssm describe-document --name patchWindowsAmi 以下のような情報が返されます。 { "Document": { "Status": "Active", "Hash": "99d5b2e33571a6bb52c629283bca0a164026cd201876adf0a76de16766fb98ac", "Name": "patchWindowsAmi", "Parameters": [ { "DefaultValue": "ami-3f0c4628", "Type": "String", "Name": "sourceAMIid", "Description": "AMI to patch" }, { "DefaultValue": "patchedAMI-{{global:DATE_TIME}}", "Type": "String", "Name": "targetAMIname", "Description": "Name of new AMI" } ], "DocumentType": "Automation", "PlatformTypes": [ ], "DocumentVersion": "5", "HashType": "Sha256", "CreatedDate": 1478904417.477, "Owner": "12345678901", "SchemaVersion": "0.3", "DefaultVersion": "5", "LatestVersion": "5", "Description": "Automation Demo - Patch and Create a New AMI" } } 6. 以下のコマンドを実行することで、patchWindowsAmi ドキュメントを実行し、Automation ワー クフローを実行します。このコマンドには、2 つの入力パラメーターとして、パッチ適用先の AMI の ID と新しい AMI の名前を指定します。以下のコマンド例では、最新の EC2 AMI を使用し 499 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation のチュートリアル て、適用する必要があるパッチの数を最小限に抑えています。このコマンドを複数回実行する場 合は、targetAMIname に一意の値を指定する必要があります。AMI 名は一意であることが必要 です。 aws ssm start-automation-execution --document-name="patchWindowsAmi" -parameters sourceAMIid="ami-bd3ba0aa" コマンドによって実行 ID が返されます。この ID をクリップボードにコピーします。この ID を 使用して、ワークフローのステータスを表示します。 { "AutomationExecutionId": "ID" } EC2 コンソールで、ワークフローのステータスをモニタリングできます。コンソールで、新 しいインスタンスが起動中であることを確認します。インスタンスの起動が完了すると、Run Command アクションが実行されたことを確認できます。Run Command の実行が完了する と、AMI イメージのリストに新しい AMI が表示されます。 7. CLI を使用してワークフローの実行を表示するには、以下のコマンドを実行します。 aws ssm describe-automation-executions 8. 実行の進捗の詳細を表示するには、以下のコマンドを実行します。 aws ssm get-automation-execution --automation-execution-id ID Note 適用されるパッチの数に応じて、このサンプルワークフローで実行される Windows パッチ適 用プロセスは、完了までに 30 分以上かかることがあります。 追加の Automation タスク 以下のタスクを使用して、Automation の実行のその他の側面を管理できます。 実行を停止する 以下のコマンドを実行して、ワークフローを停止します。このコマンドは、関連付けられているイン スタンスを終了させません。 aws ssm stop-automation-execution --automation-execution-id ID Automation ドキュメントのバージョンを作成する 既存の Automation ドキュメントは変更できませんが、以下のコマンドを使用して新しいバージョンを 作成することはできます。 aws ssm update-document --name "patchWindowsAmi" --content file:///Users/ test-user/Documents/patchWindowsAmi.json --document-version "\$LATEST" 以下のコマンドを実行して、既存のドキュメントバージョンの詳細を表示します。 aws ssm list-document-versions --name "patchWindowsAmi" 500 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス このコマンドによって以下のような情報が返されます。 { "DocumentVersions": [ { "IsDefaultVersion": false, "Name": "patchWindowsAmi", "DocumentVersion": "2", "CreatedDate": 1475799950.484 }, { "IsDefaultVersion": false, "Name": "patchWindowsAmi", "DocumentVersion": "1", "CreatedDate": 1475799931.064 } ] } 以下のコマンドを実行して、実行のデフォルトのバージョンを更新します。実行のデフォルトのバー ジョンは、明示的に新しいバージョンに設定した場合にのみ変更されます。バージョンの新しいド キュメントを作成しても、デフォルトのバージョンは変更されません。 aws ssm update-document-default-version --name patchWindowsAmi --documentversion 2 ドキュメントを削除する Automation ドキュメントを削除するには、以下のコマンドを実行します。 aws ssm delete-document --name patchWindowsAMI Automation ドキュメントのアクションのリファレン ス Systems Manager Automation は、Automation ドキュメントで定義されたタスクを実行します。タス クを定義するには、Automation ドキュメントの mainSteps セクションで、以下の 1 つ以上のアク ションを任意の順に指定します。 • aws: runInstance: 1 つ以上のインスタンスを起動します。 • • • • aws:runCommand: リモートコマンドを実行します。 aws:invokeLambdaFunction: Automation ワークフローで外部ワーカー関数を実行できます。 aws:changeInstanceState: インスタンスの状態を変更します。 aws:createImage: 実行中のインスタンスから AMI を作成します。 • aws:deleteImage: AMI を削除します。 アクションの出力は、ドキュメント内で指定しないものとします。出力は、ステップをリ ンクするために使用したり、ドキュメントの出力セクションに追加したりできます。たとえ ば、aws:runInstances の出力は後続の aws:runCommand アクションで利用できます。 すべてのアクションに共通のプロパティ 以下のプロパティは、すべてのアクションに共通です。 501 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス "mainSteps": [ { "name": "name", "action": "action", "maxAttempts": value, "timeoutSeconds": value, "onFailure": "Abort", "inputs": { ... } }, { "name": "name", "action": "action", "maxAttempts": value, "timeoutSeconds": value, "onFailure": "Abort", "inputs": { ... } } ] name ドキュメントのすべてのステップ名にわたって一意でなければならない識別子。 型: 文字列 必須: はい action ステップで実行するアクションの名前。 型: 文字列 必須: はい maxAttempts ステップが失敗した場合は再試行する回数。指定した値が 1 より大きい場合、すべての再試行が 失敗するまでステップは失敗したと見なされません。デフォルト値は 1 です。 タイプ: 整数 必須: いいえ timeoutSeconds ステップの実行のタイムアウト値。 タイプ: 整数 必須: いいえ onFailure 失敗時にワークフローを続行するかどうかを示します。デフォルトでは、失敗時に中止します。 型: 文字列 有効な値: Abort | Continue 必須: いいえ inputs アクション固有のプロパティ。 タイプ: マップ 502 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス 必須: はい aws:runInstance アクション 新しいインスタンスを起動します。 入力 このアクションでは、ほとんどの API パラメーターがサポートされています。詳細について は、RunInstances API ドキュメントを参照してください。 { "name": "launchInstance", "action": "aws:runInstances", "maxAttempts": 3, "timeoutSeconds": 1200, "onFailure": "Abort", "inputs": { "ImageId": "ami-12345678", "InstanceType": "t2.micro", "MinInstanceCount": 1, "MaxInstanceCount": 1, "IamInstanceProfileName": "myRunCmdRole" } } ImageId Amazon Machine Image (AMI) の ID。 必須: はい InstanceType インスタンスタイプ。 必須: いいえ MinInstanceCount 起動するインスタンスの最小数。 必須: いいえ MaxInstanceCount 起動するインスタンスの最大数。 必須: いいえ AdditionalInfo リザーブド。 必須: いいえ BlockDeviceMappings インスタンスのブロックデバイス。 必須: いいえ ClientToken リクエストの多重実行を禁止するための識別子。 必須: いいえ DisableApiTermination インスタンスの API の終了を有効または無効にします。 必須: いいえ 503 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス EbsOptimized EBS の最適化を有効または無効にします。 必須: いいえ IamInstanceProfileArn インスタンスの IAM インスタンスプロファイルの ARN。 必須: いいえ IamInstanceProfileName インスタンスの IAM インスタンスプロファイルの名前。 必須: いいえ InstanceInitiatedShutdownBehavior システムのシャットダウン時にインスタンスを停止するか終了するかを示します。 必須: いいえ KernelId カーネルの ID。 必須: いいえ KeyName キーペアの名前。 必須: いいえ Monitoring 詳細モニタリングを有効または無効にします。 必須: いいえ NetworkInterfaces ネットワークインターフェイス。 必須: いいえ Placement インスタンスのプレイスメント。 必須: いいえ PrivateIpAddress プライマリ IPv4 アドレス。 必須: いいえ RamdiskId RAM ディスクの ID。 必須: いいえ SecurityGroupIds インスタンスのセキュリティグループの ID。 必須: いいえ SecurityGroups インスタンスのセキュリティグループの名前。 必須: いいえ SubnetId サブネット ID。 必須: いいえ UserData 文字列リテラル値として渡される実行スクリプト。 504 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス 必須: いいえ 出力 InstanceIds インスタンスの ID。 aws:runCommand アクション 指定されたコマンドを実行します。 入力 このアクションでは、ほとんどの Send Command パラメーターがサポートされています。詳細につ いては、「SendCommand」を参照してください。 { "name": "installPowerShellModule", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-InstallPowerShellModule", "InstanceIds": ["i-1234567890abcdef0"], "Parameters": { "source": "https://my-s3-url.com/MyModule.zip ", "sourceHash": "ASDFWER12321WRW" } } } DocumentName Run Command ドキュメントの名前。 型: 文字列 必須: はい InstanceIds インスタンスの ID。 型: 文字列 必須: はい Parameters ドキュメントに指定されている必須およびオプションのパラメーター。 タイプ: マップ 必須: いいえ Comment コマンドに関するユーザー定義情報。 型: 文字列 必須: いいえ DocumentHash ドキュメントのハッシュ。 型: 文字列 505 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス 必須: いいえ DocumentHashType ハッシュの種類。 型: 文字列 有効な値: Sha256 | Sha1 必須: いいえ NotificationConfig 通知を送信するための設定。 必須: いいえ OutputS3BucketName コマンド実行の応答を保存する S3 バケットの名前。 型: 文字列 必須: いいえ OutputS3KeyPrefix プレフィックス。 型: 文字列 必須: いいえ ServiceRoleArn IAM ロールの ARN。 型: 文字列 必須: いいえ TimeoutSeconds run-command のタイムアウト値 (秒)。 タイプ: 整数 必須: いいえ 出力 CommandId コマンドの ID。 Output コマンドの切り詰められた出力。 ResponseCode コマンドのステータスコード。 Status コマンドのステータス。 aws:invokeLambdaFunction アクション 指定された Lambda 関数を起動します。 入力 このアクションでは、Lambda サービスのほとんどの Invoke パラメーターがサポートされています。 詳細については、Invoke を参照してください。 506 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス { "name": "invokeMyLambdaFunction", "action": "aws:invokeLambdaFunction", "maxAttempts": 3, "timeoutSeconds": 120, "onFailure": "Abort", "inputs": { "FunctionName": "MyLambdaFunction" } } FunctionName Lambda 関数の名前。 必須の関数です。 型: 文字列 必須: はい Qualifier 関数のバージョンまたはエイリアス名。 型: 文字列 必須: いいえ InvocationType 呼び出しタイプ。デフォルト: RequestResponse。 型: 文字列 有効な値: Event | RequestResponse | DryRun 必須: いいえ LogType Tail の場合、呼び出しタイプは RequestResponse にする必要があります。AWS Lambda は、Lambda 関数で生成されたログデータの最後の 4 KB を base64 でエンコードして返します。 型: 文字列 有効な値: None | Tail 必須: いいえ ClientContext クライアント固有の情報。 必須: いいえ Payload Lambda 関数の JSON 入力。 必須: いいえ 出力 StatusCode 関数実行のステータスコード。 aws:changeInstanceState アクション インスタンスの状態を変更またはアサートします。 507 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス このアクションは、アサートモードで使用できます (API は実行して状態を変更することはし ませんが、インスタンスが目的の状態であることを検証します)。アサートモードを使用するに は、CheckStateOnly パラメーターを true に設定します。このモードは、Windows で Sysprep (バッ クグラウンドで長期に実行できる非同期コマンド) を実行するときに役立ちます。AMI を作成する前 に、インスタンスが停止していることを確認できます。 入力 { "name":"stopMyInstance", "action": "aws:changeInstanceState", "maxAttempts": 3, "timeoutSeconds": 3600, "onFailure": "Abort", "inputs": { "InstanceIds": ["i-1234567890abcdef0"], "CheckStateOnly": true, "DesiredState": "stopped" } } InstanceIds インスタンスの ID。 型: 文字列 必須: はい CheckStateOnly false の場合、インスタンスの状態は目的の状態に設定されます。true の場合、ポーリングを使用 して目的の状態をアサートします。 タイプ: ブール値 必須: いいえ DesiredState 目的の状態。 型: 文字列 有効な値: running | stopped | terminated 必須: はい Force 設定した場合、インスタンスが強制的に停止されます。インスタンスによって、ファイルシステ ムキャッシュまたはファイルシステムメタデータがフラッシュされることはありません。このオ プションを使用する場合は、ファイルシステムのチェックと修復の手順を手動で実行する必要が あります。このオプションは Windows インスタンスにはお勧めしません。 タイプ: ブール値 必須: いいえ AdditionalInfo リザーブド。 型: 文字列 必須: いいえ 出力 508 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation ドキュメントのアクションのリファレンス なし aws:createImage アクション 停止したインスタンスから新しい AMI を作成します。 Important このアクションにより、インスタンスは暗黙的に停止されません。ユーザーが aws:changeInstanceState アクションを使用してインスタンスを停止する必要があります。こ のアクションを実行中のインスタンスで使用すると、欠陥のある AMI が作成される場合があ ります。 入力 このアクションでは、ほとんどの CreateImage パラメーターがサポートされています。詳細について は、「CreateImage」を参照してください { "name": "createMyImage", "action": "aws:createImage", "maxAttempts": 3, "onFailure": "Abort", "inputs": { "InstanceId": "i-1234567890abcdef0", "ImageName": "AMI Created on{{global:DATE_TIME}}", "NoReboot": true, "ImageDescription": "My newly created AMI" } } InstanceId インスタンスの ID。 型: 文字列 必須: はい ImageName イメージの名前。 型: 文字列 必須: はい ImageDescription イメージの説明。 型: 文字列 必須: いいえ NoReboot ブールリテラルです。 タイプ: ブール値 必須: いいえ BlockDeviceMappings インスタンスのブロックデバイス。 タイプ: マップ 509 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 必須: いいえ 出力 ImageId 新しく作成したイメージの ID。 ImageState 新しく作成したイメージの状態。 aws:deleteImage アクション 指定されたイメージおよびすべての関連するスナップショットを削除します。 入力 このアクションでは 1 つのパラメーターのみがサポートされています。詳細について は、DeregisterImage と DeleteSnapshot のドキュメントを参照してください。 { "name": "deleteMyImage", "action": "aws:deleteImage", "maxAttempts": 3, "timeoutSeconds": 180, "onFailure": "Abort", "inputs": { "ImageId": "ami-12345678" } } ImageId 削除するイメージの ID。 型: 文字列 必須: はい 出力 なし Automation システム変数 このセクションでは、Systems Manager Automation ドキュメントの変数とパラメーターの使用方法 について説明します。 システム変数 Automation ドキュメントでは現在、以下のシステム変数がサポートされています。 可変 詳細 global:DATE yyyy-MM-dd 形式の日付 (実行時)。 global:DATE_TIME yyyy-MM-dd_HH.mm.ss 形式の日時 (実行時)。 global:REGION ドキュメントが実行されるリージョン。たとえ ば、us-east-1 です。 510 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 Automation 変数 Automation ドキュメントでは現在、以下の Automation 変数がサポートされています。 可変 詳細 automation:EXECUTION_ID 現在の Automation 実行に割 り当てられた一意の識別子 (1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c など)。 用語 このセクションでは、以下の用語を使用して、変数とパラメーターの解決方法について説明します。 期間 定義 例 定数 ARN 変数を使用しない有効な ARN arn:aws:iam::123456789012:role/ roleName ドキュメントパラメーター Automation ドキュメントのド キュメントレベルで定義され たパラメーター (instanceId な ど)。このパラメーターは基本 的な文字列置換で使用されま す。その値は Start Execution 時に渡されます。 { "description": "Create Image Demo", "version": "0.3", "assumeRole": "Your_Automation_Assume_Role_ARN", "parameters":{ "instanceId": { "type": "STRING", "description": "Instance to create image from" } } システム変数 ドキュメントのいずれかの部分 が評価されたときにドキュメン トに代入される一般的な変数。 "activities": [ { "id": "copyImage", "activityType": "AWS-CopyImage", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "ImageName": "{{imageName}}", "SourceImageId": "{{sourceImageId}}", "SourceRegion": "{{sourceRegion}}", "Encrypted": true, "ImageDescription": 511 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 期間 定義 例 "Test CopyImage Description created on {{global:DATE}}" } } ] Automation 変数 ドキュメントのいずれかの部分 が評価されたときにドキュメン トに代入される Automation 実 行に関連する変数。 { "name": "runFixedCmds", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWSRunPowerShellScript", "InstanceIds": [ "{{LaunchInstance.InstanceIds}}" ], "Parameters": { "commands": [ "dir", "date", "echo {Hello {{ssm:administratorName}}}", "“{{outputFormat}}” -f “left”,”right”,”{{global:DATE}}”,”{{au ] } } } 512 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 期間 定義 例 SSM パラメーター Parameter Service 内で定義さ れた変数。ドキュメントパラ メーターとして宣言されませ ん。このパラメーターへのアク セスには、そのための権限が必 要になる場合があります。 { "description": "Run Command Demo", "schemaVersion": "0.3", "assumeRole": "arn:aws:iam::123456789012:role/ roleName", "parameters": { "commands": { "type": "STRING_LIST", "description": "list of commands to execute as part of first step" }, "instanceIds": { "type": "STRING_LIST", "description": "list of instances to execute commands on" } }, "mainSteps": [ { "name": "runFixedCmds", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWSRunPowerShellScript", "InstanceIds": [ "{{LaunchInstance.InstanceIds}}" ], "Parameters": { "commands": [ "dir", "date", "echo {Hello {{ssm:administratorName}}}", ""{{outputFormat}}" -f "left","right","{{global:DATE}}","{{au 513 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 期間 定義 例 ] } } } サポートされるシナリオ シナリオ コメント 作成時の assumeRole の定数 ARN 権限付与チェックが実行され て、呼び出し元ユーザーが assumeRole の委譲を許可され ていることが確認されます。 作成時に assumeRole に渡され ドキュメントのパラメーターリ るドキュメントパラメーター ストで定義する必要がありま す。 開始時にドキュメントパラメー ターに渡される値 お客様がパラメーターに使用す る値を指定します。開始時に渡 される実行入力は、ドキュメン トのパラメーターリストで定義 する必要があります。 例 { "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "arn:aws:iam::123456789012:role/ roleName", "parameters": { ... { "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "{{dynamicARN}}", "parameters": { ... ... "parameters": { "amiId": { "type": "STRING", "default": "ami-7f2e6015", "description": "list of commands to execute as part of first step" }, ... Start Automation Execution への入力には {"amiId" : ["ami-12345678"] } を含めます。 ステップ定義内で参照される SSM パラメーター 変数はお客様のアカウント内 に存在し、ドキュメントの assumeRole は変数にアクセス 514 ... "mainSteps": [ { Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 シナリオ コメント 例 できます。作成時にチェックが 実行されて、assumeRole が変 数にアクセスできることが確認 されます。SSM パラメーター は、ドキュメントのパラメー ターリストで設定する必要はあ りません。 "name": "RunSomeCommands", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS:RunPowerShell", "InstanceIds": [{{LaunchInstance.InstanceIds}}], "Parameters": { "commands" : [ "echo {Hello {{ssm:administratorName}}}" ] } } }, ... ステップ定義内で参照されるシ ステム変数 システム変数は実行時にドキュ ... メントに代入されます。ドキュ "mainSteps": [ メントに挿入される値は、代 { 入時の変数の値に対して相対的 "name": になります。たとえば、ステッ "RunSomeCommands", プ 1 で挿入される時間変数の値 "action": は、ステップの実行にかかる時 "aws:runCommand", 間のため、ステップ 3 で挿入さ "maxAttempts": 1, れる時間変数の値とは異なりま "onFailure": す。システム変数は、ドキュメ "Continue", ントのパラメーターリストで設 "inputs": { 定する必要はありません。 "DocumentName": "AWS:RunPowerShell", "InstanceIds": [{{LaunchInstance.InstanceIds}}], "Parameters": { "commands" : [ "echo {The time is now {{global:TIME}}}" ] } } }, ... 515 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 シナリオ コメント ステップ定義内で参照される Automation 変数 Automation 変数は、ドキュメ ントのパラメーターリストで 設定する必要はありません。サ ポートされる Automation 変数 は automation:EXECUTION_ID のみです。 例 ... "mainSteps": [ { "name": "invokeLambdaFunction", "action": "aws:invokeLambdaFunction", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "FunctionName": "Hello-WorldLambdaFunction", "Payload" : "{ "executionId" : "{{automation:EXECUTION_ID}}" }" } } ... 516 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 シナリオ コメント 次のステップ定義内からの前の ステップの出力の参照 これはパラメーターのリ ダイレクトです。前のス テップの出力は、構文 {{stepName.OutputName}} を 使用して参照されます。この構 文は、お客様がドキュメントパ ラメーターに対して使用するこ とはできません。このパラメー ターは、参照ステップの実行時 に解決されます。ドキュメント のパラメーターリストでは設定 されません。 例 ... "mainSteps": [ { "name": "LaunchInstance", "action": "aws:runInstances", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "ImageId": "{{amiId}}", "MinInstanceCount": 1, "MaxInstanceCount": 2 } }, { "name":"changeState", "action": "aws:changeInstanceState", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "InstanceIds": ["{{LaunchInstance.InstanceIds}}"], "DesiredState": "terminated" } } ... 517 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 サポートされないシナリオ シナリオ コメント 作成時に assumeRole に渡され サポート外。 る SSM パラメーター 例 ... { "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "{{ssm:administratorRoleARN}}", "parameters": { ... 開始時にドキュメントパラメー ターに渡される SSM パラメー ター ユーザーは開始時に入力パラ メーターとして SSM パラメー ターを渡します。 ... "parameters": { "amiId": { "type": "STRING", "default": "ami-7f2e6015", "description": "list of commands to execute as part of first step" }, ... User supplies input : { "amiId" : "{{ssm:goldenAMIId}}" } 518 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 シナリオ コメント 例 変数によるステップの定義 ドキュメント内のステップの定 義は変数によって構成されま す。 ... "mainSteps": [ { "name": "LaunchInstance", "action": "aws:runInstances", "{{attemptModel}}": 1, "onFailure": "Continue", "inputs": { "ImageId": "ami-12345678", "MinInstanceCount": 1, "MaxInstanceCount": 2 } ... User supplies input : { "attemptModel" : "minAttempts" } ドキュメントパラメーターの相 互参照 ユーザーは開始時に入力パラ メーターとして、ドキュメント 内の別のパラメーターへの参照 を渡します。 ... "parameters": { "amiId": { "type": "STRING", "default": "ami-7f2e6015", "description": "list of commands to execute as part of first step" }, "otherAmiId": { "type": "STRING", "description": "The other amiId to try if this one fails". "default" : "{{amiId}}" }, ... 519 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Automation システム変数 シナリオ コメント 複数レベルの展開 ドキュメントで、変数の名前に 評価される変数を定義します。 これは、変数区切り記号 ({{ }}) 内にあり、変数/パラメーター の値に展開されます。 例 ... "parameters": { "param1": { "type": "STRING", "default": "param2", "description": "The parameter to reference" }, "param2": { "type": "STRING", "default" : "echo {Hello world}", "description": "What to execute" } }, "mainSteps": [{ "name": "runFixedCmds", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWSRunPowerShellScript", "InstanceIds" : ""{{LaunchInstance.InstanceIds}}, "Parameters": { "commands": [ "{{ {{param1}} }}"] } ... Note: The customer intention here would be to execute a runCommand of "echo {Hello world}" 関連情報 • Amazon EC2 Systems Manager API Reference • Windows PowerShell 用 SSM AWS ツールリファレンス • SSM AWS CLI リファレンス • AWS SDK 520 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 のモニタリング モニタリングは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスおよび AWS ソリュー ションの信頼性、可用性、およびパフォーマンスを維持する上で重要な部分です。マルチポイント障 害が発生した場合は、その障害をより簡単にデバッグできるように、AWS ソリューションのすべての 部分からモニタリングデータを収集する必要があります。ただし、Amazon EC2 のモニタリングを開 始する前に、次の内容を盛り込んだモニタリング計画を作成する必要があります。 • モニタリングの目的とは? • モニタリングの対象となるリソースとは? • これらのリソースをモニタリングする頻度は? • 使用するモニタリングツールは? • 誰がモニタリングタスクを実行しますか? • 誰が問題が発生したときに通知を受け取りますか? モニタリングの目的を定義し、モニタリングの計画を作成したら、次のステップとして、お客様の環 境内で通常の Amazon EC2 パフォーマンスのベースラインを確立します。さまざまな時間帯に、さま ざまな負荷条件で Amazon EC2 パフォーマンスを測定します。Amazon EC2 をモニタリングしなが ら、収集したモニタリングデータの履歴を格納する必要があります。現在の Amazon EC2 パフォーマ ンスをこの履歴データと比較して、通常のパフォーマンスパターンとパフォーマンス異常を識別する ことで、異常への対処方法を考案することが容易になります。たとえば、Amazon EC2 インスタンス の CPU 使用率、ディスク I/O、およびネットワーク使用率をモニタリングすることができます。確立 したベースラインからパフォーマンスが外れた場合は、インスタンスの再設定または最適化を行って CPU 使用率の抑制、ディスク I/O の改善、またはネットワークトラフィックの低減を行うことが必要 な場合があります。 ベースラインを確立するには、少なくとも、次の項目をモニタリングする必要があります。 モニタリング対象の項目 Amazon EC2 メトリクス CPU 使用率 CPUUtilization (p. 536) メモリ使用率 モニタリングスクリプト/ CloudWatch Logs (Linux インスタンス) 「Amazon EC2 Linux インスタンスのメモ リとディスクのメトリクスのモ ニタリング」 (Windows インスタンス) 「CW へのパフォーマンスカウンタの 送信と CloudWatch Logs へのロ グの送信」 521 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド モニタリング対象の項目 Amazon EC2 メトリクス 使用中のメモリ モニタリングスクリプト/ CloudWatch Logs (Linux インスタンス) 「Amazon EC2 Linux インスタンスのメモ リとディスクのメトリクスのモ ニタリング」 (Windows インスタンス) 「CW へのパフォーマンスカウンタの 送信と CloudWatch Logs へのロ グの送信」 利用可能なメモリ (Linux インスタンス) 「Amazon EC2 Linux インスタンスのメモ リとディスクのメトリクスのモ ニタリング」 (Windows インスタンス) 「CW へのパフォーマンスカウンタの 送信と CloudWatch Logs へのロ グの送信」 ネットワーク使用率 NetworkIn (p. 536) NetworkOut (p. 536) ディスクパフォーマンス DiskReadOps (p. 536) DiskWriteOps (p. 536) ディスクスワップの使用率 (Linux インスタンスのみ) Amazon EC2 Linux インスタン スのメモリとディスクのメトリ クスのモニタリング 使用中のスワップ (Linux イン スタンスのみ) ページファイルの使用率 (Windows インスタンスのみ) CW へのパフォーマンスカウン タの送信と CloudWatch Logs へ のログの送信 使用中のページファイル (Windows インスタンスのみ) 使用可能なページファイル (Windows インスタンスのみ) ディスクの読み書き DiskReadBytes (p. 536) DiskWriteBytes (p. 536) ディスクスペースの使用率 (Linux インスタンスのみ) Amazon EC2 Linux インスタン スのメモリとディスクのメトリ クスのモニタリング 使用ディスクスペース (Linux インスタンスのみ) Amazon EC2 Linux インスタン スのメモリとディスクのメトリ クスのモニタリング 522 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 自動モニタリングと手動モニタリング モニタリング対象の項目 Amazon EC2 メトリクス 使用可能なディスク容量 (Linux インスタンスのみ) モニタリングスクリプト/ CloudWatch Logs Amazon EC2 Linux インスタン スのメモリとディスクのメトリ クスのモニタリング 自動モニタリングと手動モニタリング AWS では、Amazon EC2 のモニタリングに使用できるさまざまなツールを提供しています。これら のツールの中には、自動モニタリングを設定できるものもあれば、手操作を必要とするものもありま す。 トピック • 自動モニタリングツール (p. 523) • 手動モニタリングツール (p. 524) 自動モニタリングツール 次に示す自動化されたモニタリングツールを使用すると、Amazon EC2 の監視が行われ、問題が検出 されたときにレポートが返されます。 • [System Status Checks] – インスタンスを使用する際に必要な AWS システムをモニタリングし て、AWS システムが正常に実行されていることを確認します。これらのチェックでは、修復におい て AWS が関係するインスタンスの問題が検出されます。システムステータスチェックが失敗した 場合、AWS によって問題が修正されるのを待つか、自分自身で (たとえば、インスタンスを停止、 再起動、終了、置換するなどによって) 問題を解決できます。システムステータスチェックの失敗の 原因となる問題には、次のようなものがあります。 • ネットワーク接続の喪失 • システム電源の喪失 • 物理ホストのソフトウェアの問題 • 物理ホストのハードウェアの問題 詳細については、「インスタンスのステータスチェック (p. 525)」を参照してください。 • [Instance Status Checks] – 個々のインスタンスのソフトウェアとネットワークの設定をモニタリン グします。これらのチェックでは、ユーザーが関与して修復する必要のある問題が検出されます。 インスタンスステータスチェックが失敗した場合、通常は自分自身で (たとえば、インスタンスを再 起動する、オペレーティングシステムを修正するなどによって) 問題に対処する必要があります。イ ンスタンスステータスチェックの失敗の原因となる問題には、次のようなものがあります。 • 失敗したシステムステータスチェック • 誤って設定されたネットワークまたは起動設定 • メモリの枯渇 • 破損したファイルシステム • 互換性のないカーネル 詳細については、「インスタンスのステータスチェック (p. 525)」を参照してください。 • [Amazon CloudWatch Alarms] – 指定された期間にわたって単一のメトリクスを監視し、複数の期間 にわたり既定のしきい値に関連するメトリクス値に基づいて 1 つ以上のアクションを実行します。 アクションは、Amazon Simple Notification Service (Amazon SNS) トピックまたは Auto Scaling ポ リシーに送信される通知です。アラームは、持続している状態変化に対してのみアクションを呼び 出します。CloudWatch アラームは、単に特定の状態にあるというだけでアクションを呼び出すわ 523 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 手動モニタリングツール けではありません。状態が変わり、それが指定した数の期間にわたって持続している必要がありま す。詳細については、「CloudWatch を使用したインスタンスのモニタリング (p. 534)」を参照し てください。 • [Amazon CloudWatch Logs] - Amazon EC2 インスタンス、AWS CloudTrail、またはその他のソース のログファイルの監視、保存、アクセスができます。詳細については、「ログファイルのモニタリ ング」を参照してください。 • [Amazon EC2 Monitoring Scripts] - インスタンスのメモリ、ディスク、スワップファイルの使用状況 をモニタリングできる Perl スクリプトです。詳細については、「Amazon EC2 Linux インスタンス のメモリとディスクのメトリクスのモニタリング」を参照してください。 • [AWS Management Pack for System Center Operations Manager] – Amazon EC2 インスタンスと、 これらのインスタンス内で稼働する Microsoft Windows または Linux オペレーティングシステムを リンクします。AWS マネジメントパックは Microsoft System Center Operations Manager 向けの拡 張パックです。データセンターの指定されたコンピュータ (監視ノードと呼びます) と Amazon ウェ ブ サービス API を使用して、AWS リソースに関する情報をリモートで検出して収集します。詳細 については、「Microsoft System Center 用 AWS Management Pack」を参照してください。 手動モニタリングツール Amazon EC2 のモニタリングにおけるもう 1 つの重要な部分は、モニタリングスクリプト、ステータ スチェック、および CloudWatch アラームで網羅されていない項目を手動でモニタリングすることで す。Amazon EC2 および CloudWatch のコンソールダッシュボードには、Amazon EC2 環境の状態が 一目でわかるビューが表示されます。 • Amazon EC2 ダッシュボードには次の内容が表示されます。 • リージョンごとのサービス状態とスケジュールされたイベント • インスタンスの状態 • ステータスチェック • アラームステータス • インスタンスメトリクスの詳細 (ナビゲーションペインで、[Instances] をクリックし、インスタ ンスを選択して、[Monitoring] タブをクリックします) • ボリュームメトリクスの詳細 (ナビゲーションペインの [Volumes] をクリックし、ボリュームを選 択して、[Monitoring] タブをクリックします) • Amazon CloudWatch ダッシュボードには、次の内容が表示されます。 • 現在のアラームとステータス • アラームとリソースのグラフ • サービス状態ステータス さらに、CloudWatch を使用して次のことが行えます。 • Amazon EC2 モニタリングデータをグラフ化して、問題のトラブルシューティングを行い、傾向 を確認する • AWS リソースのすべてのメトリクスを検索して、参照する • 問題があることを通知するアラームを作成/編集する • アラームおよび AWS リソースが一目でわかる概要を表示する モニタリングのベストプラクティス 次に示すモニタリングのベストプラクティスを使用すると、Amazon EC2 のモニタリングタスクが容 易になります。 • モニタリングの優先順位を設定し、小さな問題が大きな問題に発展する前に阻止します。 524 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスのステータスのモニタリング • AWS ソリューションのすべての部分からモニタリングデータを収集するモニタリング計画を作成 し、実施すると、マルチポイント障害が発生した場合に、その障害をより簡単にデバッグできま す。モニタリング計画には、少なくとも、次の質問に対する回答を盛り込む必要があります。 • モニタリングの目的とは? • モニタリングの対象となるリソースとは? • これらのリソースをモニタリングする頻度は? • 使用するモニタリングツールは? • 誰がモニタリングタスクを実行しますか? • 誰が問題が発生したときに通知を受け取りますか? • モニタリングタスクは可能な限り自動化します。 • EC2 インスタンスでログファイルを確認します。 インスタンスのステータスのモニタリング インスタンスのステータスをモニタリングして、インスタンスのステータスチェックや、インスタン スにスケジュールされたイベントを表示できます。ステータスチェックでは、Amazon EC2 によっ て実行される自動化されたチェックからの情報が提供されます。これらの自動化されたチェックは、 特定の問題がインスタンスに影響を与えているかどうかを検出します。ステータスチェックの情報 と、Amazon CloudWatch で提供されるデータによって、各インスタンスの詳細な動作状況を把握で きます。 インスタンスに予定されている特定のイベントに関するステータスも表示できます。イベントでは、 インスタンスに計画されている再起動またはリタイアなどの今後のアクティビティに関する情報と、 各イベントで予定されている開始時間と終了時間が提供されます。 目次 • インスタンスのステータスチェック (p. 525) • インスタンスの予定されたイベント (p. 530) インスタンスのステータスチェック インスタンスのステータスのモニタリングでは、Amazon EC2 によってインスタンスによる アプリケーションの実行が妨げられるような問題が検出されたかどうかをすばやく判断できま す。Amazon EC2 は、実行されている各 EC2 インスタンスについて自動化されたチェックを実 行して、ハードウェアおよびソフトウェアの問題を識別します。これらのステータスチェック の結果を表示して、具体的で検出可能な問題を識別できます。このデータは、各インスタンス (pending、running、stopping) の目的の状態に関して Amazon EC2 が既に提供している情報 と、Amazon CloudWatch が監視している使用状況メトリクス (CPU 使用率、ネットワークトラ フィック、ディスクアクティビティ) を補足するものです。 ステータスチェックは 1 分ごとに実行され、それぞれ成功または失敗のステータスを返します。すべ てのチェックが成功すると、インスタンス全体のステータスが OK になります。1つ以上のチェックが 失敗すると、全体のステータスが impaired になります。ステータスチェックは Amazon EC2 に組み 込まれています。そのため、無効にしたり、削除したりすることはできません。ただし、ステータス チェックの結果に基づいて実行されるアラームを作成または削除することは可能です。たとえば、特 定のインスタンスでステータスチェックが失敗したときに警告するアラームを作成できます。詳細に ついては、「ステータスチェックアラームの作成と編集 (p. 528)」を参照してください。 目次 • ステータスチェックの種類 (p. 526) • ステータスチェックの表示 (p. 526) 525 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの状態チェック • インスタンスステータスの報告 (p. 527) • ステータスチェックアラームの作成と編集 (p. 528) ステータスチェックの種類 ステータスチェックには、システムステータスチェックとインスタンスステータスチェックの 2 種類 があります。 システムステータスのチェック インスタンスを使用するために必要な AWS システムを監視して、AWS システムが正常に実行されて いることを確認します。これらのチェックでは、修復において AWS が関係するインスタンスの問題 が検出されます。システムステータスチェックが失敗した場合、AWS によって問題が修正されるのを 待つか、自分自身で (たとえば、インスタンスを停止および起動する、インスタンスを終了および置換 するなどによって) 問題を解決できます。 システムステータスチェックの失敗の原因となる問題の例を次に示します。 • ネットワーク接続の喪失 • システム電源の喪失 • 物理ホストのソフトウェアの問題 • 物理ホストのハードウェアの問題 インスタンスステータスのチェック 個々のインスタンスのソフトウェアとネットワークの設定を監視します。これらのチェックでは、 ユーザーが関与して修復する必要のある問題が検出されます。インスタンスステータスチェックが失 敗した場合、通常は自分自身で (たとえば、インスタンスを再起動する、インスタンス設定を変更する などによって) 問題に対処する必要があります。 インスタンスステータスチェックの失敗の原因となる問題の例を次に示します。 • 失敗したシステムステータスチェック • 正しくないネットワークまたは起動設定 • メモリの枯渇 • 破損したファイルシステム • 互換性のないカーネル ステータスチェックの表示 Amazon EC2 では、いくつかの方法でステータスチェックを表示および操作できます。 コンソールを使ったステータスの表示 AWS マネジメントコンソールを使用してステータスチェックを表示できます。 コンソールを使用してステータスチェックを表示するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. Instances ページで、Status Checks 列には、各インスタンスの動作状況が表示されます。 526 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの状態チェック 4. 特定のインスタンスのステータスを表示するには、インスタンスを選択して、[Status Checks] タ ブを選択します。 5. ステータスチェックが失敗したインスタンスがあり、そのインスタンスに 20 分以上アクセスで きない場合は、[AWS Support] を選択して、サポートのリクエストを送信してください。ご自分 でシステムまたはインスタンスのステータスチェック失敗のトラブルシューティングを行う場合 は、「ステータスチェックに失敗したインスタンスのトラブルシューティング (p. 924)」を参照 してください。 コマンドラインまたは API を使用したステータスの表示 describe-instance-status (AWS CLI) コマンドを使用すると、実行中のインスタンスのステータス チェックを表示できます。 すべてのインスタンスのステータスを表示するには、次のコマンドを使用します。 aws ec2 describe-instance-status インスタンスステータスが impaired であるすべてのインスタンスのステータスを取得するには、次 のようにします。 aws ec2 describe-instance-status --filters Name=instancestatus.status,Values=impaired 単一のインスタンスのステータスを取得するには、以下のコマンドを使用します。 aws ec2 describe-instance-status --instance-ids i-1234567890abcdef0 または、以下のコマンドを使用します。 • Get-EC2InstanceStatus (AWS Tools for Windows PowerShell) • DescribeInstanceStatus (Amazon EC2 Query API) ステータスチェックが失敗したインスタンスがある場合は、「ステータスチェックに失敗したインス タンスのトラブルシューティング (p. 924)」を参照してください。 インスタンスステータスの報告 ステータスが impaired と表示されていないインスタンスで問題が生じている場合は、フィードバック をご提供ください。また、障害のあるインスタンスで発生している問題に関する追加の詳細を AWS に送る場合にも、フィードバックをご提供いただけます。 527 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの状態チェック Amazon では、報告されたフィードバックを使用して、複数のお客様に影響する可能性のある問題を 識別していますが、個々のアカウントの問題には返答しておりません。フィードバックをご提供いた だいても、現在インスタンスに関して表示されているステータスチェックの結果は変わりません。 コンソールを使用したステータスフィードバックの報告 コンソールを使用してインスタンスステータスを報告するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択します。 4. [Status Checks] タブを選択してから、[Submit feedback] を選択します。 5. [Report Instance Status] フォームに入力し、[Submit] を選択します。 コマンドラインまたはAPIを使用したステータスフィードバックのレポート 障害のあるインスタンスのステータスに関するフィードバックを送信するには、次の report-instancestatus (AWS CLI) コマンドを使用します。 aws ec2 report-instance-status --instances i-1234567890abcdef0 --status impaired --reason-codes code または、以下のコマンドを使用します。 • Send-EC2InstanceStatus (AWS Tools for Windows PowerShell) • ReportInstanceStatus (Amazon EC2 Query API) ステータスチェックアラームの作成と編集 インスタンスのステータスとシステムのステータスに関するアラームを作成して、インスタンスのス テータスチェックが失敗した場合に通知を受け取ることができます。 コンソールを使用したステータスチェックアラームの作成 既存のインスタンスに対してステータスチェックアラームを作成し、インスタンスまたはシステムの ステータスをモニタリングできます。インスタンスのインスタンスステータスチェックまたはシステ ムステータスチェックが失敗した場合に、メールで通知を受け取るか、インスタンスを停止、終了、 または復旧するようにアラームを設定できます。 ステータスチェックアラームを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択します。 4. [Status Checks] タブを選択し、[Create Status Check Alarm] を選択します。 5. [Send a notification to] を選択します。既存の SNS トピックを選択し、[create topic] をクリック して新しいトピックを作成します。新しいトピックを作成する場合、[With these recipients] に自 分のメールアドレスを入力します。追加の受信者がいる場合はそのアドレスを、カンマで区切っ て入力します。 6. (オプション) [Take the action] を選択し、実行するアクションを選択します。 7. [Whenever] で、通知を受けるステータスチェックを選択します。 528 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの状態チェック Note 前のステップで [Recover this instance] を選択した場合、[Status Check Failed (System)] を選択します。 8. [For at least] ボックスで、評価する期間数を設定し、[consecutive periods] で、アラームをトリ ガーして E メールを送信するまでの評価の間隔を選択します。 9. (オプション) [Name of alarm] で、デフォルト名をアラームの別の名前に置き換えます。 10. [Create Alarm] を選択します。 Important 受信者のリストにメールアドレスを追加したか、トピックを新規作成した場合、Amazon SNS から追加した各メールアドレスにサブスクリプションの確認メールメッセージが送 信されます。各受信者は、そのメッセージに記載されているリンクをクリックしてサブ スクリプションを確認する必要があります。アラート通知は確認されたアドレスにのみ 送信されます。 インスタンスステータスのアラームを変更する必要がある場合は、そのアラームを編集できます。 ステータスチェックアラームを編集するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択して [Actions] を選択し、[CloudWatch Monitoring] を選択して [Add/Edit Alarms] を選択します。 4. [Alarm Details] ダイアログボックスで、アラームの名前を選択します。 5. [Edit Alarm] ダイアログボックスで、希望する変更を行い、[Save] を選択します。 AWS CLI を使用したステータスチェックアラームの作成 次の例では、インスタンスが少なくとも 2 つの連続する期間内にインスタンスチェックまたはシ ステムステータスチェックに失敗した場合、アラームが SNS トピックに通知 arn:aws:sns:uswest-2:111122223333:my-sns-topic を発行します。メトリクスは StatusCheckFailed です。 CLI を使用してステータスチェックアラームを作成するには 1. 既存の SNS トピックを選択するか、新しいキーペアを作成することができます。詳細について は、「Amazon SNS での AWS CLI の使用」 (AWS Command Line Interface ユーザーガイド) を 参照してください。 2. Amazon EC2 の使用可能な Amazon CloudWatch メトリクスを表示するには、list-metrics コマン ドを使用します。 aws cloudwatch list-metrics --namespace AWS/EC2 3. アラームを作成するには、次の put-metric-alarm コマンドを使用します。 aws cloudwatch put-metric-alarm --alarm-name StatusCheckFailed-Alarm-fori-1234567890abcdef0 --metric-name StatusCheckFailed --namespace AWS/EC2 -statistic Maximum --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --unit Count --period 300 --evaluation-periods 2 --threshold 1 --comparison-operator GreaterThanOrEqualToThreshold --alarmactions arn:aws:sns:us-west-2:111122223333:my-sns-topic 529 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 予定されているイベント 注意 • --period は、Amazon CloudWatch メトリクスが収集される時間枠 (秒単位) です。この例で は、60 秒に 5 分を乗算した 300 を使用します。 • --evaluation-periods は、メトリクスの値がしきい値と比較されなければならない連続し た期間の数です。この例では 2 を使用します。 • --alarm-actions は、このアラームがトリガーされたときに実行するアクションのリス トです。各アクションは Amazon リソースネーム (ARN) として指定されます。この例で は、Amazon SNS を使用してメールを送信するようにアラームを設定します。 インスタンスの予定されたイベント AWS は、再起動、停止/開始、またはリタイアなど、インスタンスのイベントを予定できます。これ らのイベントは頻繁には発生しません。インスタンスのいずれかが予定されたイベントの影響を受け る場合、予定されたイベントの前に AWS アカウントに関連付けられた E メールアドレスにイベント の詳細 (開始日、終了日など) が記載された E メールが AWS から送信されます。イベントによって は、イベントのタイミングを管理するアクションを実行できることがあります。 予定されたイベントに通知を受け取ることができるようにアカウントの連絡先情報を更新するには、 「アカウント設定」ページを参照してください。 目次 • 予定されたイベントのタイプ (p. 530) • 予定されたイベントの表示 (p. 530) • 停止またはリタイアが予定されているインスタンスの操作 (p. 532) • 再起動が予定されているインスタンスの操作 (p. 533) • メンテナンスが予定されているインスタンスの操作 (p. 533) 予定されたイベントのタイプ Amazon EC2 では、インスタンスの予定されたイベントとして次のタイプがサポートされます。 • Instance stop: インスタンスが停止します。再度起動すると、新しいホストコンピュータに移行され ます。Amazon EBS によってバックアップされるインスタンスにのみ適用されます。 • [Instance retirement]: インスタンスが停止または終了されます。 • [Reboot]: インスタンスが再起動 (インスタンスの再起動) されるか、インスタンスのホストコン ピュータが再起動 (システムの再起動) されます。 • [System maintenance]: インスタンスは、ネットワークメンテナンスまたは電源のメンテナンスの影 響を一時的に受ける場合があります。 予定されたイベントの表示 予定されたイベントの通知を E メールで受信することに加え、予定されたイベントを確認できます。 コンソールを使用してインスタンスに予定されたイベントを表示するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインの [Events] をクリックします。イベントに関連付けられたリソースがすべ て表示されます。リソースタイプ、または特定のイベントのタイプでフィルタリングできます。 リソースを選択すると、詳細を表示できます。 530 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 予定されているイベント 3. または、ナビゲーションペインで [EC2 Dashboard] を選択します。イベントに関連付けられてい るすべてのリソースが、[Scheduled Events] に表示されます。 4. 影響を受けるリソースのイベントも表示される点に注意してください。たとえば、ナビゲーショ ンペインの [Instances] を選択し、インスタンスを選択します。インスタンスに関連付けられたイ ベントがある場合、そのイベントが下のペインに表示されます。 コマンドラインまたは API を使用してインスタンスに予定されたイベントを表示するには 次の AWS CLI コマンドを使用します。 aws ec2 describe-instance-status --instance-id i-1234567890abcdef0 インスタンスのリタイアイベントを示す出力例を次に示します。 { "InstanceStatuses": [ { "InstanceStatus": { "Status": "ok", "Details": [ { "Status": "passed", "Name": "reachability" } ] }, "AvailabilityZone": "us-west-2a", "InstanceId": "i-1234567890abcdef0", "InstanceState": { "Code": 16, "Name": "running" 531 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 予定されているイベント }, "SystemStatus": { "Status": "ok", "Details": [ { "Status": "passed", "Name": "reachability" } ] }, "Events": [ { "Code": "instance-stop", "Description": "The instance is running on degraded hardware", "NotBefore": "2015-05-23T00:00:00.000Z" } ] } ] } または、以下のコマンドを使用します。 • Get-EC2InstanceStatus (AWS Tools for Windows PowerShell) • DescribeInstanceStatus (Amazon EC2 Query API) 停止またはリタイアが予定されているインスタンスの操作 AWS は、インスタンスの基盤となるホストコンピュータの回復不能な障害を検出すると、インスタン スのルートデバイスのタイプに応じて、インスタンスの停止または終了を予定します。ルートデバイ スが EBS ボリュームの場合、インスタンスが停止するように予定されます。ルートデバイスがイン スタンスストアボリュームの場合、インスタンスは終了するように予定されます。詳細については、 「インスタンスのリタイア (p. 331)」を参照してください。 Important インスタンスストアボリュームに格納されているデータはいずれも、インスタンスが停止ま たは終了されると失われます。これには、ルートデバイスとして EBS ボリュームを所有する インスタンスにアタッチされたインスタンスストアボリュームも該当します。インスタンス が停止または終了される前に、後で必要となるインスタンスストアボリュームからデータを 必ず保存しておきます。 Amazon EBS によりバックアップされたインスタンスのアクション インスタンスが予定どおりに停止されるのを待機できます。または、インスタンスを自分で停止およ び起動して、新しいホストコンピュータに移行することもできます。インスタンスの停止や、イン スタンスが停止したときにインスタンス設定を変更する方法については、「インスタンスの停止と起 動 (p. 327)」を参照してください。 インスタンスストアによりバックアップされたインスタンスのアクション 最新の AMI から代替インスタンスを起動し、インスタンスの終了を予定する前に必要なすべてのデー タを代替インスタンスに移行することをお勧めします。その後、元のインスタンスを終了するか、予 定どおりに終了されるのを待機することができます。 532 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 予定されているイベント 再起動が予定されているインスタンスの操作 AWS は、更新のインストールや基盤となるホストコンピュータのメンテナンスなどのタスクを実行 する必要があるとき、インスタンスまたはそのインスタンスの基盤となるホストコンピュータの再起 動を予定できます。再起動がスケジュールされている既存のインスタンスがあるかどうかにかかわら ず、更新は基盤となるホストに既に適用されているため、新しいインスタンスを起動しても再起動は 必要ありません。 再起動イベントがインスタンスの再起動であるかシステムの再起動であるかを決定することができま す。 コンソールを使用して予定された再起動イベントのタイプを表示するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインの [Events] を選択します。 3. 4. フィルタリストから [Instance resources] を選択し、インスタンスを選択します。 下のペインで、[Event type] を見つけます。この値は system-reboot または instancereboot のどちらかです。 AWS CLI を使用して予定された再起動イベントのタイプを表示するには 次の describe-instance-status コマンドを使用します。 aws ec2 describe-instance-status --instance-ids i-1234567890abcdef0 インスタンスの再起動のアクション 予定されたメンテナンス期間中に再起動が実行されるまで待機できます。または、都合の良いと きにインスタンスを自分で再起動することもできます。詳細については、「インスタンスの再起 動 (p. 330)」を参照してください。 インスタンスを再起動すると、インスタンスの再起動が予定されているイベントはすぐにキャンセル され、イベントの説明が更新されます。基盤となるホストコンピュータに対する保留中のメンテナン スが完了し、インスタンスが完全に起動したら、インスタンスの使用を再開できます。 システムの再起動のアクション お客様側ではアクションは必要ありません。システムの再起動は、予定されたメンテナンス期間中に 実行されます。システムの再起動は通常数分で完了します。再起動が実行されたことを確認するに は、インスタンスに予定されたイベントがないことを確認します。インスタンスのソフトウェアが想 定されたように動作しているかどうかを確認することをお勧めします。 メンテナンスが予定されているインスタンスの操作 AWS は、インスタンスの基盤となるホストコンピュータをメンテナンスする必要があるとき、インス タンスのメンテナンスを予定します。2 種類のメンテナンスイベントがあります。1 つはネットワー クメンテナンスで、もう 1 つは電源のメンテナンスです。 ネットワークメンテナンス中は、短い期間、予定されたインスタンスのネットワーク接続が切断され ます。メンテナンスが終了すると、インスタンスとの通常のネットワーク接続は回復します。 電源のメンテナンス中は、短い期間、予定されたインスタンスはオフラインになり、その後再起動さ れます。再起動されると、インスタンスの設定内容はすべて維持されます。 インスタンスが再起動したら (通常、数分かかります)、アプリケーションが正常に動作していること を確認します。この時点では、インスタンスにはもう予定されたイベントがないか、予定されたイベ ントの説明の先頭に [Completed] と表示されているはずです。これは、このインスタンスのステータ スが更新するのに、最大で 1 時間ほど時間がかかる場合があります。完了したメンテナンスイベント は、最長で 1 週間、Amazon EC2 コンソールのダッシュボードに表示されます。 533 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド CloudWatch を使用したインスタンスのモニタリング Amazon EBS によりバックアップされたインスタンスのアクション メンテナンスが予定どおりに実行されるのを待機できます。または、インスタンスを停止および 起動して、新しいホストコンピュータに移行することもできます。インスタンスの停止や、インス タンスが停止したときにインスタンス設定を変更する方法については、「インスタンスの停止と起 動 (p. 327)」を参照してください。 インスタンスストアによりバックアップされたインスタンスのアクション メンテナンスが予定どおりに実行されるのを待機できます。または、予定されたメンテナンス期間中 に通常の運用を維持する場合、最新の AMI から代替インスタンスを起動し、予定されたメンテナンス 期間より前に必要なデータをすべて代替インスタンスに移行した後、元のインスタンスを終了できま す。 CloudWatch を使用したインスタンスのモニタリ ング Amazon CloudWatch を使用してインスタンスをモニタリングすることで、Amazon EC2 から未加工 データを収集し、リアルタイムに近い読み取り可能なメトリクスに加工することができます。これら の統計は 2 週間記録されるため、履歴情報にアクセスしてウェブアプリケーションまたはサービスの 動作をより的確に把握することができます。 デフォルトでは、Amazon EC2 は 5 分ごとにメトリクスデータを CloudWatch に送信します。1 分 ごとにインスタンスのメトリクスデータを CloudWatch に送信するには、インスタンスで詳細モニタ リングを有効にできます。詳細については、「インスタンスの詳細モニタリングの有効化または無効 化 (p. 534)」を参照してください。 Amazon EC2 コンソールには、Amazon CloudWatch の未加工データに基づいて一連のグラフが表示 されます。必要に応じて、コンソールのグラフではなく Amazon CloudWatch からインスタンスの データを取得することもできます。 Amazon CloudWatch の詳細については、Amazon CloudWatch ユーザーガイドを参照してください。 目次 • インスタンスの詳細モニタリングの有効化または無効化 (p. 534) • インスタンスの利用可能な CloudWatch メトリクスのリスト表示 (p. 536) • メトリクスの統計情報を取得する (インスタンス) (p. 542) • インスタンスのグラフメトリクス (p. 550) • CloudWatch アラームを作成するインスタンス用 (p. 550) • インスタンスを停止、終了、再起動、または復旧するアラームを作成する (p. 551) インスタンスの詳細モニタリングの有効化または無 効化 デフォルトでは、インスタンスで基本モニタリングが有効になります。オプションで詳細モニタリン グを有効にできます。詳細モニタリングを有効にすると、Amazon EC2 コンソールに、インスタンス の 1 分間ごとのモニタリンググラフが表示されます。次の表では、インスタンスの基本モニタリング と詳細モニタリングについて説明します。 型 説明 基本 データは自動的に 5 分間無料で取得できます。 534 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 詳細モニタリングを有効化 型 説明 詳細 1 分間のデータを取得できます。追加料金がか かります。このレベルのデータを取得するに は、インスタンスのデータ取得を明確に有効に する必要があります。詳細モニタリングを有効 にしたインスタンスでは、同様のインスタンス グループの集約データを取得することもできま す。 料金表の詳細については、Amazon CloudWatch product page を参照してください。 詳細モニタリングの有効化 インスタンスが実行または停止された後で、起動時にインスタンスの詳細モニタリングを有効にでき ます。 コンソールを使用して既存のインスタンスの詳細モニタリングを有効にするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. 4. インスタンスを選択し、[Actions]、[CloudWatch Monitoring]、[Enable Detailed Monitoring] を選択 します。 [Enable Detailed Monitoring] ダイアログボックスで、[Yes, Enable] を選択します。 5. [Close] を選択します。 コンソールを使用してインスタンスの起動時に詳細モニタリングを有効にするには AWS マネジメントコンソール を使用してインスタンスを起動する場合は、[Configure Instance Details] ページの [Monitoring] チェックボックスをオンにします。 AWS CLI を使用して既存のインスタンスの詳細モニタリングを有効にするには 次の monitor-instances コマンドを使用して、指定したインスタンスの詳細モニタリングを有効にしま す。 aws ec2 monitor-instances --instance-ids i-1234567890abcdef0 AWS CLI を使用してインスタンスの起動時に詳細モニタリングを有効にするには run-instances コマンドを --monitoring フラグとともに使用して詳細モニタリングを有効にしま す。 aws ec2 run-instances --image-id ami-09092360 --monitoring Enabled=true... 詳細モニタリングの無効化 インスタンスが実行または停止された後で、起動時にインスタンスの詳細モニタリングを無効にでき ます。 コンソールを使用して詳細モニタリングを無効にするには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Instances] を選択します。 535 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 利用可能なメトリクスのリスト表示 3. インスタンスを選択し、[Actions]、[CloudWatch Monitoring]、[Disable Detailed Monitoring] を選 択します。 4. [Disable Detailed Monitoring] ダイアログボックスで、[Yes, Disable] を選択します。 5. [Close] を選択します。 AWS CLI を使用して詳細モニタリングを無効にするには 次の unmonitor-instances コマンドを使用して、指定したインスタンスの詳細モニタリングを無効にし ます。 aws ec2 unmonitor-instances --instance-ids i-1234567890abcdef0 インスタンスの利用可能な CloudWatch メトリクス のリスト表示 Amazon EC2 はメトリクスを Amazon CloudWatch に送信します。AWS マネジメントコンソー ル、AWS CLI、または API を使用して、Amazon EC2 が CloudWatch に送信するメトリクスをリス ト表示できます。デフォルトでは、各データポイントはインスタンスの過去 5 分間のアクティビティ を対象とします。詳細モニタリングを有効にした場合、各データポイントは過去 1 分間のアクティビ ティを対象とします。 これらのメトリクスの統計の取得については、「メトリクスの統計情報を取得する (インスタン ス) (p. 542)」を参照してください。 インスタンスメトリクス メトリックス 説明 CPUCreditUsage [T2 instances] The number of CPU credits consumed by the instance. One CPU credit equals one vCPU running at 100% utilization for one minute or an equivalent combination of vCPUs, utilization, and time (for example, one vCPU running at 50% utilization for two minutes or two vCPUs running at 25% utilization for two minutes). CPU credit metrics are available only at a 5 minute frequency. If you specify a period greater than five minutes, use the Sum statistic instead of the Average statistic. Units: Count CPUCreditBalance [T2 instances] The number of CPU credits available for the instance to burst beyond its base CPU utilization. Credits are stored in the credit balance after they are earned and removed from the credit balance after they expire. Credits expire 24 hours after they are earned. CPU credit metrics are available only at a 5 minute frequency. Units: Count CPUUtilization 割り当てられた EC2 コンピュートユニットのうち、現在インスタ ンス上で使用されているものの比率。このメトリックスは、選択 されたインスタンス上でアプリケーションを実行するのに必要な 処理能力を表します。 536 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 利用可能なメトリクスのリスト表示 メトリックス 説明 Note インスタンスタイプによっては、インスタンスがフルプ ロセッサコアに割り当てられていない場合に、オペレー ティングシステムのツールが CloudWatch よりも低い比 率を示す場合があります。 単位: パーセント DiskReadOps 指定された期間にインスタンスで利用できるすべてのインスタン スストアボリュームでの、完了した読み取り操作。 Note その期間の 1 秒あたりの I/O 操作回数(IOPS)の平均を 算出するには、その期間の操作回数の合計をその期間の 秒数で割ります。 単位: Count DiskWriteOps 指定された期間にインスタンスで利用できるすべてのインスタン スストアボリュームへの、完了した書き込み操作。 Note その期間の 1 秒あたりの I/O 操作回数(IOPS)の平均を 算出するには、その期間の操作回数の合計をその期間の 秒数で割ります。 単位: Count DiskReadBytes インスタンスで利用できるすべてのインスタンスストアボリュー ムから読み取られたバイト数。 このメトリックスを使用すると、このインスタンスのハードディ スクからアプリケーションが読み取るデータの量がわかります。 これを利用すると、アプリケーションの速度がわかります。 単位: バイト DiskWriteBytes インスタンスで利用できるすべてのインスタンスストアボリュー ムに書き込まれたバイト数。 このメトリックスを使用すると、このインスタンスのハードディ スクにアプリケーションが書き込むデータの量がわかります。こ れを利用すると、アプリケーションの速度がわかります。 単位: バイト NetworkIn すべてのネットワークインターフェースでの、このインスタンス によって受信されたバイトの数。このメトリックスは、1 つのイ ンスタンス上での 1 つのアプリケーションへのネットワークトラ フィックの量を表しています。 単位: バイト 537 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 利用可能なメトリクスのリスト表示 メトリックス 説明 NetworkOut すべてのネットワークインターフェースでの、このインスタンス から送信されたバイトの数。このメトリックスは、1 つのインス タンス上での 1 つのアプリケーションからのネットワークトラ フィックの量を表しています。 単位: バイト NetworkPacketsIn すべてのネットワークインターフェースでの、このインスタンス によって受信されたパケットの数。このメトリックスは、受信ト ラフィックのボリュームを単一インスタンスでのパケット数とし て識別します。このメトリックスは基本モニタリング専用です。 単位: Count 統計: Minimum、Maximum、Average NetworkPacketsOut すべてのネットワークインターフェースでの、このインスタンス から送信されたパケットの数。このメトリックスは、送信トラ フィックのボリュームを単一インスタンスでのパケット数として 識別します。このメトリックスは基本モニタリング専用です。 単位: Count 統計: Minimum、Maximum、Average StatusCheckFailed StatusCheckFailed_Instance と StatusCheckFailed_System の組 み合わせで、どちらかのステータスチェックが失敗したら報告 します。このメトリックスの値は 0 か 1 です。0 はステータス チェックが成功したことを示します。1 はステータスチェックの 失敗を示します。 Note ステータスチェックメトリックスは、1 分間隔で利用で きます。インスタンスを新しく起動した場合は、インス タンスの初期化状態が完了しないと、ステータスチェッ クのメトリックスを利用できません。インスタンスのス テータスが実行中に変わったら、数分以内にステータス チェックのメトリックスが利用できるようになります。 単位: Count 538 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 利用可能なメトリクスのリスト表示 メトリックス 説明 StatusCheckFailed_Instance最近 1 分間にインスタンスが Amazon EC2 インスタンスステータ スチェックに成功したかどうかを報告します。このメトリックス の値は 0 か 1 です。0 はステータスチェックが成功したことを示 します。1 はステータスチェックの失敗を示します。 Note ステータスチェックメトリックスは、1 分間隔で利用で きます。インスタンスを新しく起動した場合は、インス タンスの初期化状態が完了しないと、ステータスチェッ クのメトリックスを利用できません。インスタンスのス テータスが実行中に変わったら、数分以内にステータス チェックのメトリックスが利用できるようになります。 単位: Count StatusCheckFailed_System 最近 1 分間にインスタンスが EC2 システムステータスチェックに 成功したかどうかを報告します。このメトリックスの値は 0 か 1 です。0 はステータスチェックが成功したことを示します。1 は ステータスチェックの失敗を示します。 Note ステータスチェックメトリックスは、1 分間隔で利用で きます。インスタンスを新しく起動した場合は、インス タンスの初期化状態が完了しないと、ステータスチェッ クのメトリックスを利用できません。インスタンスのス テータスが実行中に変わったら、数分以内にステータス チェックのメトリックスが利用できるようになります。 単位: Count BurstBalance スループット最適化 HDD (st1) および Cold HDD (sc1) ボリュー ムでのみ使用されます。バーストバケットで使用できるバランス に関する情報を示します。データは、ボリュームがアクティブな 場合にのみ CloudWatch に報告されます。ボリュームがアタッチ されていない場合、データは報告されません。 単位: パーセント EBS ボリューム用に提供されるメトリクスの詳細については、「Amazon EBS メトリク ス (p. 777)」を参照してください。スポット群に提供されるメトリクスの詳細については、「スポッ ト群の CloudWatch メトリクス (p. 269)」を参照してください。 Amazon EC2 ディメンション 次のディメンションを使用すると、インスタンスに返されるメトリクスを絞り込むことができます。 Dimension Description AutoScalingGroupName This dimension filters the data you request for all instances in a specified capacity group. An Auto Scaling group is a collection of instances you define if you're using Auto Scaling. This dimension is available only for Amazon EC2 metrics when the instances 539 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 利用可能なメトリクスのリスト表示 Dimension Description are in such an Auto Scaling group. Available for instances with Detailed or Basic Monitoring enabled. ImageId This dimension filters the data you request for all instances running this Amazon EC2 Amazon Machine Image (AMI). Available for instances with Detailed Monitoring enabled. InstanceId This dimension filters the data you request for the identified instance only. This helps you pinpoint an exact instance from which to monitor data. InstanceType This dimension filters the data you request for all instances running with this specified instance type. This helps you categorize your data by the type of instance running. For example, you might compare data from an m1.small instance and an m1.large instance to determine which has the better business value for your application. Available for instances with Detailed Monitoring enabled. コンソールを使用してメトリクスをリスト表示する メトリクスはまず名前空間ごとにグループ化され、次に各名前空間内の種々のディメンションの組み 合わせごとにグループ化されます。たとえば、Amazon EC2 で提供されるすべてのメトリクスを表示 させることもできれば、インスタンス ID、インスタンスタイプ、イメージ (AMI) ID、Auto Scaling グ ループでグループ化された EC2 メトリクスを表示することもできます。 利用可能なメトリクスをカテゴリー別に表示するには 1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 2. ナビゲーションペインで メトリクスを選択します。 3. EC2 メトリックスの名前空間を選択します。 4. メトリックスのディメンション (たとえば、インスタンス別メトリックス) を選択します。 540 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 利用可能なメトリクスのリスト表示 5. メトリックスを並べ替えるには、列見出しを使用します。メトリックスをグラフ表示するには、 メトリックスの横にあるチェックボックスを選択します。リソースでフィルタするには、リソー ス ID を選択し、[Add to search] を選択します。メトリックスでフィルタするには、メトリックス の名前を選択し、[Add to search] を選択します。 AWS CLI を使用してメトリクスをリスト表示する list-metrics コマンドを使用して、インスタンスの CloudWatch メトリクスをリスト表示します。 Amazon EC2 の利用可能なすべてのメトリックスを表示するには 次の例では、Amazon EC2 のすべてのメトリックスを表示する目的で AWS/EC2 名前空間を指定しま す。 aws cloudwatch list-metrics --namespace AWS/EC2 541 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する 出力例を次に示します。 { "Metrics": [ { "Namespace": "AWS/EC2", "Dimensions": [ { "Name": "InstanceId", "Value": "i-1234567890abcdef0" } ], "MetricName": "NetworkOut" }, { "Namespace": "AWS/EC2", "Dimensions": [ { "Name": "InstanceId", "Value": "i-1234567890abcdef0" } ], "MetricName": "CPUUtilization" }, { "Namespace": "AWS/EC2", "Dimensions": [ { "Name": "InstanceId", "Value": "i-1234567890abcdef0" } ], "MetricName": "NetworkIn" }, ... ] } インスタンスで利用可能なすべてのメトリックスをリスト表示するには 次の例では、指定のインスタンスの結果だけを表示する目的で AWS/EC2 名前空間と InstanceId ディメンションを指定します。 aws cloudwatch list-metrics --namespace AWS/EC2 --dimensions Name=InstanceId,Value=i-1234567890abcdef0 すべてのインスタンス間でメトリクスをリスト表示するには 次の例では、指定のメトリックスの結果だけを表示する目的で AWS/EC2 名前空間とメトリックス名 を指定します。 aws cloudwatch list-metrics --namespace AWS/EC2 --metric-name CPUUtilization メトリクスの統計情報を取得する (インスタンス) インスタンスの CloudWatch メトリックスの統計情報を取得できます。 542 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する 目次 • 統計の概要 (p. 543) • 特定の インスタンスの統計を取得する (p. 543) • インスタンス全体の統計の集約 (p. 546) • Auto Scaling グループ別に統計を集約する (p. 548) • AMI 別に統計を集計する (p. 549) 統計の概要 統計は、指定した期間のメトリクスデータの集計です。CloudWatch は、カスタムデータまたは AWS の他のサービスから CloudWatch に与えられたメトリクスのデータポイントを基に、統計を提供しま す。集約は、指定した期間内に、名前空間、メトリクス名、ディメンション、データポイントの測定 単位を用いて行われます。次の表は利用可能な統計を説明しています。 統計 説明 Minimum 指定された期間に認められた最小値です。この値を用いて、アプリケーションの低 ボリュームのアクティビティを判断できます。 Maximum 指定された期間に認められた最大値です。この値を用いて、アプリケーションの高 ボリュームのアクティビティを判断できます。 Sum 該当するメトリクスで加算されたすべての合計値です。この統計は、メトリクスの 合計ボリュームを判断するのに役立ちます。 Average 指定した期間の Sum/SampleCount の値です。この統計を Minimum および Maximum と比較することで、メトリクスの全容、および平均使用量がどれくらい Minimum と Maximum に近いかを判断できます。この比較は、必要に応じていつリ ソースを増減させるべきかを知るのに役立ちます。 SampleCount 統計計算で使用するデータポイントのカウント (数) です。 pNN.NN 指定されたパーセンタイルの値。小数点以下最大 2 桁を使用して、任意のパーセン タイルを指定できます (p95.45 など)。 特定の インスタンスの統計を取得する 次の例では、AWS マネジメントコンソール または AWS CLI を使用して、特定の EC2 インスタンス の最大 CPU 使用率を決定することができます。 要件 • インスタンスの ID が必要です。インスタンス ID は、AWS マネジメントコンソール コンソールま たは describe-instances コマンドを使って取得します。 • デフォルトでは、基本モニタリングが有効化されていますが、詳細モニタリングを有効化す ることもできます。詳細については、「インスタンスの詳細モニタリングの有効化または無効 化 (p. 534)」を参照してください。 コンソールを使用して特定のインスタンスの CPU 使用率を表示するには 1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 2. ナビゲーションペインで メトリクスを選択します。 3. EC2 メトリックスの名前空間を選択します。 543 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する 4. インスタンス別メトリックスのディメンションを選択します。 5. 検索フィールドに CPUUtilization と入力して Enter キーを押します。特定のインスタンスの 行を選択します。すると、そのインスタンスの [CPUUtilization] メトリックスのグラフが表示され ます。グラフに名前を付けるには、鉛筆アイコンを選択します。時間範囲を変更するには、事前 定義済みの値を選択するか、[custom] を選択します。 544 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する 6. メトリックスの統計または期間を変更するには、[Graphed metrics] タブを選択します。列見出し または個々の値を選択し、次に異なる値を選択します。 AWS CLI を使用して特定のインスタンスの CPU 使用率を取得するには 次の get-metric-statistics コマンドを使用すると、期間と時間間隔を指定して、特定のインスタンスの [CPUUtilization] メトリックスを取得できます。 aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --period 3600 \ --statistics Maximum --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \ --start-time 2016-10-18T23:18:00 --end-time 2016-10-19T23:18:00 出力例を次に示します。それぞれの値は、単一の EC2 インスタンスの最大 CPU 使用率を表していま す。 { "Datapoints": [ { "Timestamp": "2016-10-19T00:18:00Z", "Maximum": 0.33000000000000002, 545 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する "Unit": "Percent" }, { "Timestamp": "2016-10-19T03:18:00Z", "Maximum": 99.670000000000002, "Unit": "Percent" }, { "Timestamp": "2016-10-19T07:18:00Z", "Maximum": 0.34000000000000002, "Unit": "Percent" }, { "Timestamp": "2016-10-19T12:18:00Z", "Maximum": 0.34000000000000002, "Unit": "Percent" }, ... ], "Label": "CPUUtilization" } インスタンス全体の統計の集約 詳細モニタリングが有効になっているインスタンスの集約された統計を使用することができます。基 本モニタリングを使用するインスタンスは集約されません。加えて、Amazon CloudWatch は複数の リージョンにまたがってデータを集約することはありません。そのため、メトリクスはリージョン間 で完全に分離されています。複数のインスタンスにわたって集計された統計情報を取得するには、1 分間隔でデータが提供される詳細モニタリングを事前に有効にしておく必要があります (追加料金がか かります)。 この例では、EC2 インスタンスの平均 CPU 使用率を取得するために詳細モニタリングを使用する方 法について示します。ディメンションを指定していないため、CloudWatch は、AWS/EC2 名前空間に ある全ディメンションの統計を返します。 Important AWS 名前空間にあるすべてのディメンションを取得するこの手法は、Amazon CloudWatch にパブリッシュするカスタム名前空間では機能しません。カスタム名前空間の場合、データ ポイントを含む統計を取得するには、そのデータポイントに関連付けられたディメンション 一式をすべて指定する必要があります。 インスタンスの平均 CPU 使用率を表示するには 1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 2. ナビゲーションペインで メトリクスを選択します。 3. [EC2] 名前空間を選択し、次に [Across All Instances] を選択します。 4. [CPUUtilization] を含む行を選択します。すべての EC2 インスタンスのメトリックスがグラフと して表示されます。グラフに名前を付けるには、鉛筆アイコンを選択します。時間範囲を変更す るには、事前定義済みの値を選択するか、[custom] を選択します。 546 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する 5. メトリックスの統計または期間を変更するには、[Graphed metrics] タブを選択します。列見出し または個々の値を選択し、次に異なる値を選択します。 インスタンスの平均 CPU 使用率を取得するには 次のように get-metric-statistics コマンドを使用し、インスタンス全体の平均 [CPUUtilization] メト リックスを取得します。 aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization \ --period 3600 --statistics "Average" "SampleCount" \ --start-time 2016-10-11T23:18:00 --end-time 2016-10-12T23:18:00 出力例を次に示します。 { "Datapoints": [ { "SampleCount": 238.0, "Timestamp": "2016-10-12T07:18:00Z", "Average": 0.038235294117647062, "Unit": "Percent" }, { "SampleCount": 240.0, "Timestamp": "2016-10-12T09:18:00Z", "Average": 0.16670833333333332, "Unit": "Percent" }, { "SampleCount": 238.0, "Timestamp": "2016-10-11T23:18:00Z", "Average": 0.041596638655462197, "Unit": "Percent" }, 547 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する ... ], "Label": "CPUUtilization" } Auto Scaling グループ別に統計を集約する Auto Scaling グループ内で EC2 インスタンスの統計を集計することができます。Amazon CloudWatch は、複数のリージョンをまたがってデータを集計することはできません。メトリックス は、リージョン間で完全に独立しています。 この例では、1 つの Auto Scaling グループについて、ディスクに書き込まれた総バイト数を取得する 方法を説明します。合計は、指定された Auto Scaling グループのすべての EC2 インスタンスで、24 時間おきに 1 分間に対して算出されます。 コンソールを使い、Auto Scaling グループ内のインスタンスの DiskWriteBytes を表示するに は 1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 2. ナビゲーションペインで メトリクスを選択します。 3. [EC2] 名前空間を選択し、次に [By Auto Scaling Group] を選択します。 4. [DiskWriteBytes] メトリックスの行と特定の Auto Scaling グループを選択します。すると、その Auto Scaling グループ内にあるインスタンスのメトリックスがグラフとして表示されます。グラ フに名前を付けるには、鉛筆アイコンを選択します。時間範囲を変更するには、事前定義済みの 値を選択するか、[custom] を選択します。 メトリックスの統計または期間を変更するには、[Graphed metrics] タブを選択します。列見出し または個々の値を選択し、次に異なる値を選択します。 5. AWS CLI を使い、Auto Scaling グループ内のインスタンスの DiskWriteBytes を表示するには 以下のように get-metric-statistics コマンドを使用します。 aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteBytes --period 360 \ --statistics "Sum" "SampleCount" --dimensions Name=AutoScalingGroupName,Value=my-asg --start-time 2016-10-16T23:18:00 -end-time 2016-10-18T23:18:00 出力例を次に示します。 { "Datapoints": [ { "SampleCount": 18.0, "Timestamp": "2016-10-19T21:36:00Z", "Sum": 0.0, "Unit": "Bytes" }, { "SampleCount": 5.0, "Timestamp": "2016-10-19T21:42:00Z", "Sum": 0.0, "Unit": "Bytes" } ], "Label": "DiskWriteBytes" 548 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスの統計情報を取得する } AMI 別に統計を集計する 統計の集計は、詳細モニタリングが有効化されているインスタンスに対して行うことができます。そ の場合、基本モニタリングを使用するインスタンスは含まれません。Amazon CloudWatch は、複数 のリージョンをまたがってデータを集計することはできません。メトリックスは、リージョン間で完 全に独立しています。 インスタンス全体で集約される統計を取得できるようになるには、1 分の期間でデータを提供する詳 細モニタリング (有料) を有効にする必要があります。詳細については、「インスタンスの詳細モニタ リングの有効化または無効化 (p. 534)」を参照してください。 この例では、特定の Amazon Machine Image (AMI) を使用するすべてのインスタンスの平均 CPU 使 用率を特定する方法を説明します。平均値は、1 日間、60 秒間隔の平均値です。 コンソールを使い、AMI 別の平均 CPU 使用率を表示するには 1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 2. 3. ナビゲーションペインで メトリクスを選択します。 [EC2] 名前空間を選択し、次に [By Image (AMI) Id] を選択します。 4. [CPUUtilization] メトリックスの行と特定の AMI を選択します。すると、その AMI のメトリック スがグラフとして表示されます。グラフに名前を付けるには、鉛筆アイコンを選択します。時間 範囲を変更するには、事前定義済みの値を選択するか、[custom] を選択します。 メトリックスの統計または期間を変更するには、[Graphed metrics] タブを選択します。列見出し または個々の値を選択し、次に異なる値を選択します。 5. 特定のイメージ ID の平均 CPU 使用率を取得するには 以下のように get-metric-statistics コマンドを使用します。 aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --period 3600 \ --statistics Average --dimensions Name=ImageId,Value=ami-3c47a355 --starttime 2016-10-10T00:00:00 --end-time 2016-10-11T00:00:00 出力例を次に示します。それぞれの値は、指定した AMI を実行する EC2 インスタンスの平均 CPU 使 用率 (%) を表します。 { "Datapoints": [ { "Timestamp": "2016-10-10T07:00:00Z", "Average": 0.041000000000000009, "Unit": "Percent" }, { "Timestamp": "2016-10-10T14:00:00Z", "Average": 0.079579831932773085, "Unit": "Percent" }, { "Timestamp": "2016-10-10T06:00:00Z", "Average": 0.036000000000000011, "Unit": "Percent" }, 549 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メトリクスをグラフ化 ... ], "Label": "CPUUtilization" } インスタンスのグラフメトリクス インスタンスを起動した後、Amazon EC2を開いて、[Monitoring] タブでインスタンスのモニタリング グラフを表示できます。各グラフは、利用可能な Amazon EC2 メトリクスのいずれかに基づいていま す。 以下のグラフが利用可能です。 • 平均 CPU 使用率 (パーセント) • 平均ディスク読み込み (バイト) • 平均ディスク書き込み (バイト) • 最大ネットワーク受信 (バイト) • 最大ネットワーク送信 (Bytes) • 要約ディスク読み取り操作 (カウント) • 要約ディスク書き込み操作 (カウント) • 要約ステータス (任意) • 要約ステータスインスタンス (カウント) • 要約ステータスシステム (カウント) グラフに表示されるメトリクスおよびデータの詳細については、「インスタンスの利用可能な CloudWatch メトリクスのリスト表示 (p. 536)」を参照してください。 CloudWatch コンソールを使用したメトリックスのグラフ化 CloudWatch コンソールを使用して、Amazon EC2 や他の AWS サービスによって生成されたメト リックスデータをグラフ化することができます。詳細については、Amazon CloudWatch ユーザーガ イドのメトリックスをグラフ化するを参照してください。 CloudWatch アラームを作成するインスタンス用 インスタンスの CloudWatch メトリックスをモニタリングする CloudWatch アラームを作成で きます。CloudWatch は、指定したしきい値にメトリクスが達すると、自動的に通知を送信しま す。CloudWatch アラームは、Amazon EC2 コンソールを使用するか、CloudWatch コンソールに用意 されている高度なオプションを使用して作成できます。 CloudWatch コンソールを使用してアラームを作成するには 例については、「Amazon CloudWatch アラームの作成」 (Amazon CloudWatch ユーザーガイド) を参 照してください。 Amazon EC2 コンソールを使用してアラームを作成するには 1. 2. 3. 4. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Instances] を選択します。 インスタンスを選択します。 [Monitoring] タブで、[Create Alarm] を選択します。 5. [Create Alarm] ページで、次の操作を実行します。 a. [create topic] を選択します。[Send a notification to] に、SNS トピックの名前を入力します。 [With these recipients] に、通知の受取先となる 1 つ以上の E メールアドレスを入力します。 550 b. c. Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する ポリシーのメトリックスおよび条件を指定します。たとえば、[Whenever] はデフォルト設定 のままにすることができます (CPU 使用率の平均)。[Is] で、>= を選択して [80] パーセント を入力します。[For at least] では、[1] の連続した期間に 5 Minutes を入力します。 [Create Alarm] を選択します。 インスタンスを停止、終了、再起動、または復旧す るアラームを作成する Amazon CloudWatch アラームアクションを使用して、 インスタンスを自動的に停止、終了、再起 動、または復旧するアラームを作成できます。停止または終了アクションを使用すると、今後インス タンスを実行する必要がなくなったときにコストを節約できます。再起動アクションを使用すると、 これらのインスタンスを自動的に再起動でき、復旧アクションを使用すると、システムで障害が発生 した場合に新しいハードウェアで復旧できます。 作成するすべてのアラームアクションがアラームアクション ARN を使用します。1 セットの ARN を 使用すると、より安全です。お客様のアカウントでは EC2ActionsAccess IAM ロールを使用する必要 があるからです。この IAM ロールを使用すると、停止、終了、または再起動アクションを実行できま す。以前は、IAM ロールを使用していると、アクションを実行できませんでした。以前のアラームア クションの ARN を使用する現存のアラームは、この IAM ロールを必要としませんが、これらの ARN を使用する現存のアラームを編集するときに ARN を変更し、ロールを追加することを推奨します。 EC2ActionsAccess ロールを使用すると、AWS がお客様に代わってアラームアクションを実行でき ます。Amazon EC2 または Amazon CloudWatch コンソールを使用して初めてアラームアクションを 作成するとき、AWS は自動的にお客様に代わってこのロールを作成します。 自動的にインスタンスを停止または終了するシナリオはいくつもあります。たとえば、バッチ給与計 算処理ジョブまたは科学計算タスクを専用に行うインスタンスを使用している場合が挙げられます。 これらのインスタンスは一定期間動作して仕事を完了します。このようなインスタンスは、アイドル 状態 (課金されている状態) にせずに、停止または終了するとコスト削減につながります。停止アラー ムアクションと終了アラームアクションの主な違いとして、停止したインスタンスは、後で再実行が 必要な場合に再起動しやすいことと、同じインスタンス ID およびルートボリュームを維持できること 551 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する があります。しかし、終了したインスタンスを再起動することはできません。代わりに新しいインス タンスを開始する必要があります。 停止、終了、再起動、復旧の各アクションは、Amazon EC2 インスタンスメトリックスごとに設定 されている任意のアラームに追加できます。これには、Amazon CloudWatch によって (AWS/EC2 名前空間で) 提供される基本モニタリングや詳細モニタリングのメトリックスが含まれます。ま た、InstanceId ディメンションを含む任意のカスタムメトリックスも (その値が実行中の有効な Amazon EC2 インスタンスを参照する場合に限り) 含まれます。 コンソールのサポート Amazon EC2 コンソールまたは CloudWatch コンソールを使用してアラームを作成できます。このド キュメントの手順では、Amazon EC2 コンソールを使用します。CloudWatch コンソールを使用する 手順については、Amazon CloudWatch ユーザーガイドの「インスタンスを停止、終了、再起動、ま たは復旧するアラームを作成する」を参照してください。 アクセス許可 AWS Identity and Access Management (IAM) ユーザーの場合、アラームを作成または変更するには次 のアクセス権限が必要です。 • ec2:DescribeInstanceStatus と ec2:DescribeInstances。Amazon EC2 インスタンスス テータスメトリクスに対するすべてのアラーム用。 • ec2:StopInstances。停止アクションを含むアラーム用。 • ec2:TerminateInstances。終了アクションを含むアラーム用。 • ec2:DescribeInstanceRecoveryAttribute と ec2:RecoverInstances。復旧アクションを 含むアラーム用。 Amazon CloudWatch に対する読み取り/書き込みのアクセス権限があり、Amazon EC2 に対するアク セス権限がない場合、アラームは作成できますが、Amazon EC2 インスタンスで停止または終了アク ションが実行されません。ただし、関連付けられている Amazon EC2 API の使用許可が後で付与され る場合、以前に作成したアラームアクションは実行されるようになります。IAM アクセス権限の詳細 については、「IAM ユーザーガイド」の「アクセス権限とポリシー」を参照してください。 IAM ロールに基づいて、アラームアクションを使用してインスタンスを停止、終了、または再起動す る場合は、EC2ActionsAccess ロールしか使用できません。他の IAM ロールはサポートされていませ ん。別の IAM ロールを使用している場合は、インスタンスを停止、終了、または再起動できません。 ただし、アラームの状態を確認して、Amazon SNS 通知や Auto Scaling ポリシーなど、その他のアク ションを実行することはできます。 目次 • Amazon CloudWatch アラームへの停止アクションの追加 (p. 552) • Amazon CloudWatch アラームへの終了アクションの追加 (p. 553) • Amazon CloudWatch アラームへの再起動アクションの追加 (p. 554) • Amazon CloudWatch アラームへの復旧アクションの追加 (p. 555) • Amazon CloudWatch コンソールを使用してトリガーされたアラームとアクションの履歴を表示す る (p. 556) • Amazon CloudWatch のアラームアクションのシナリオ (p. 557) Amazon CloudWatch アラームへの停止アクションの追加 一定のしきい値に達したときに Amazon EC2 インスタンスを停止するアラームを作成できます。た とえば、開発またはテスト用のインスタンスを実行したまま、終了するのを忘れることがたまにあ ります。平均 CPU 利用率が 24 時間 10% 未満である場合に、インスタンスがアイドル状態で使用さ れていないという信号を発してトリガーするアラームを作成できます。しきい値、持続時間、期間を 552 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する ニーズに合わせて調整し、アラームがトリガーされたときにメールを受信するよう Amazon Simple Notification Service (Amazon SNS) 通知を追加できます。 Amazon EBS ボリュームをルートデバイスとして使用するインスタンスは停止または終了できます が、インスタンスストアをルートデバイスとして使用するインスタンスでは終了のみ行えます。 Amazon EC2 コンソールを使用してアイドル状態のインスタンスを停止させるアラームを作 成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[INSTANCES] の下にある [ Instances] を選択します。 3. インスタンスを選択します。[Monitoring] タブで、[Create Alarm] を選択します。 4. [Alarm Details for] ダイアログボックスで、[Create Alarm] を選択します。 5. アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアロ グボックスの [Send a notification to] で、既存の Amazon SNS トピックを選択するか、または [Create Topic] を選択して新しいトピックを作成します。 トピックを新規作成するには、[Send a notification to] にトピック名を入力し、[With these recipients] に受信者のメールアドレスを入力します (カンマ区切り)。アラームの作成後、サブス クライブの確認メールが届きます。このトピックの通知を受け取れるようになるには、このメー ルを確認する必要があります。 6. [Take the action] をオンにし、[Stop this instance] ラジオボタンを選択します。 7. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] をオンにして、IAM ロールが 自動的に作成されるようにします。これにより、AWS はアラームがトリガーされたときにお客様 に代わって自動的にインスタンスを停止できます。 8. [Whenever] で使用する統計を選択してから、メトリックスを選択します。この例では、 「Average」と「CPU Utilization」を選択しています。 9. [Is] で、メトリックスのしきい値を定義します。この例では、10 パーセントを入力します。 10. [For at least] で、アラームのサンプリング期間を選択します。この例では、1 時間の期間で 24 期 間連続と入力しています。 11. アラーム名を変更するには、[Name this alarm] に新しい名前を入力します。 アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。 Note アラームを作成する前に独自の要件を基にアラーム設定を調整できます。または後から 編集することができます。これにはメトリクス、しきい値、持続時間、アクション、通 知設定などがあります。ただし、アラームの作成後のアラーム名の編集はできません。 12. [Create Alarm] を選択します。 Amazon CloudWatch アラームへの終了アクションの追加 (インスタンスで終了保護が有効になっていない限り)、一定のしきい値に達したときに EC2 インスタ ンスを自動的に終了させるアラームを作成することができます。たとえば、インスタンスが仕事を終 え、再びそのインスタンスを使用する必要がない場合は、インスタンスを終了することをお勧めしま す。後でインスタンスを使用する可能性がある場合は、インスタンスを終了するのではなく、停止す るほうが良いでしょう。インスタンスの終了保護の有効化および無効化の詳細については、Linux イ ンスタンス用 Amazon EC2 ユーザーガイド の「インスタンスの終了保護の有効化」を参照してくだ さい。 Amazon EC2 コンソールを使用してアイドル状態のインスタンスを終了するアラームを作成 するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 553 2. Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する ナビゲーションペインで、[INSTANCES] の下にある [ Instances] を選択します。 3. インスタンスを選択します。[Monitoring] タブで、[Create Alarm] を選択します。 4. [Alarm Details for] ダイアログボックスで、[Create Alarm] を選択します。 5. アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアロ グボックスの [Send a notification to] で、既存の Amazon SNS トピックを選択するか、または [Create Topic] を選択して新しいトピックを作成します。 トピックを新規作成するには、[Send a notification to] にトピック名を入力し、[With these recipients] に受信者のメールアドレスを入力します (カンマ区切り)。アラームの作成後、サブス クライブの確認メールが届きます。このトピックの通知を受け取れるようになるには、このメー ルを確認する必要があります。 6. [Take the action] を選択し、[Terminate this instance] を選択します。 7. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] をオンにして、IAM ロールが 自動的に作成されるようにします。これにより、AWS はアラームがトリガーされたときにお客様 に代わって自動的にインスタンスを停止できます。 8. [Whenever] で統計を選択し、メトリックスを選択します。この例では、「Average」と「CPU Utilization」を選択しています。 9. [Is] で、メトリックスのしきい値を定義します。この例では、10 パーセントを入力します。 10. [For at least] で、アラームのサンプリング期間を選択します。この例では、1 時間の期間で 24 期 間連続と入力しています。 11. アラーム名を変更するには、[Name this alarm] に新しい名前を入力します。 アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。 Note アラームを作成する前に独自の要件を基にアラーム設定を調整できます。または後から 編集することができます。これにはメトリクス、しきい値、持続時間、アクション、通 知設定などがあります。ただし、アラームの作成後のアラーム名の編集はできません。 12. [Create Alarm] を選択します。 Amazon CloudWatch アラームへの再起動アクションの追加 Amazon EC2 インスタンスをモニタリングし、自動的に再起動する Amazon CloudWatch アラーム を作成できます。再起動アラームアクションは、インスタンスのヘルスチェックが失敗した場合に推 奨されます (システムのヘルスチェックが失敗した場合には、復旧アラームアクションが推奨されま す)。インスタンスの再起動は、オペレーティングシステムの再起動と同等です。ほとんどの場合、イ ンスタンスの再起動には数分しかかかりません。インスタンスを再起動すると、インスタンスは同じ ホスト上で保持されるため、インスタンスのパブリックドメイン名、プライベート IP アドレス、およ びインスタンスストアボリューム上のすべてのデータは保持されます。 インスタンスを再起動しても、インスタンスの停止と再起動とは異なり、新しいインスタンスの課 金時間は開始されません。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の 「Reboot Your Instance」を参照してください。 Important 再起動と復旧アクションの競合状態を避けるには、Amazon EC2 インスタンスを再起動する アラームを作成するときに、アラームのしきい値として 1 分に代えて 3 分を設定することを お勧めします。 Amazon EC2 コンソールを使用してインスタンスを再起動するアラームを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 554 2. Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する ナビゲーションペインで、[INSTANCES] の下にある [ Instances] を選択します。 3. インスタンスを選択します。[Monitoring] タブで、[Create Alarm] を選択します。 4. [Alarm Details for] ダイアログボックスで、[Create Alarm] を選択します。 5. アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアロ グボックスの [Send a notification to] で、既存の Amazon SNS トピックを選択するか、または [Create Topic] を選択して新しいトピックを作成します。 トピックを新規作成するには、[Send a notification to] にトピック名を入力し、[With these recipients] に受信者のメールアドレスを入力します (カンマ区切り)。アラームの作成後、サブス クライブの確認メールが届きます。このトピックの通知を受け取れるようになるには、このメー ルを確認する必要があります。 6. [Take the action] を選択し、[Reboot this instance] を選択します。 7. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] をオンにして、IAM ロールが 自動的に作成されるようにします。これにより、AWS はアラームがトリガーされたときにお客様 に代わって自動的にインスタンスを停止できます。 8. [Whenever] で、[Status Check Failed (Instance)] を選択します。 9. [For at least] に 2 と入力します。 10. [consecutive period(s) of] で [1 minute] を選択します。 11. アラーム名を変更するには、[Name of alarm] に新しい名前を入力します。 アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。 12. [Create Alarm] を選択します。 Amazon CloudWatch アラームへの復旧アクションの追加 Amazon EC2 インスタンスをモニタリングし、基になるハードウェア障害または AWS による修復を 必要とする問題によりインスタンスが正常に機能しなくなった場合に、自動的にインスタンスを復旧 する Amazon CloudWatch アラームを作成できます。終了したインスタンスは復旧できません。復旧 されたインスタンスは、インスタンス ID、プライベート IP アドレス、Elastic IP アドレス、すべての インスタンスメタデータを含め、元のインスタンスと同じです。 StatusCheckFailed_System アラームがトリガーされ、復旧アクションが開始されると、アラーム を作成したときに選択し、復旧アクションに関連付けた Amazon SNS トピックによって通知されま す。インスタンスを復旧する際、インスタンスを再起動するときにインスタンスは移行され、メモリ 内にあるデータは失われます。プロセスが完了すると、情報はアラームに設定された SNS トピックに 発行されます。 この SNS トピックにサブスクライブされるすべてのユーザーは、復旧処理のステー タスと、それ以降の手順を含むメールの通知を受け取ります。 復旧されたインスタンスでインスタン スが再起動されたことがわかります。 システムステータスチェックの失敗の原因となる問題には、次のようなものがあります。 • ネットワーク接続の喪失 • システム電源の喪失 • 物理ホストのソフトウェアの問題 • 物理ホストのハードウェアの問題 復旧アクションは、次のような特性を持つインスタンスでのみサポートされています。 • C3、C4、M3、M4、R3、R4、T2、または X1 インスタンスタイプを使用している • VPC (EC2-Classic 以外) で実行されている • 共有テナンシーを使用している (テナンシー属性が default に設定されている) 555 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する • 暗号化された EBS ボリューム (インスタンスストアボリュームではない) を含む EBS ボリュームを 使用している インスタンスにパブリック IP アドレスが割り当てられている場合、復旧後にパブリック IP アドレス が維持されます。 Important 再起動と復旧アクションの競合状態を避けるには、Amazon EC2 インスタンスを復旧させる アラームを作成するときに、アラームのしきい値として 1 分に代えて 2 分を設定することを お勧めします。 Amazon EC2 コンソールを使用してインスタンスを復旧するアラームを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[INSTANCES] の下にある [ Instances] を選択します。 3. インスタンスを選択します。[Monitoring] タブで、[Create Alarm] を選択します。 4. [Alarm Details for] ダイアログボックスで、[Create Alarm] を選択します。 5. アラームがトリガされたときに E メールが届くようにするには、[Create Alarm for] ダイアロ グボックスの [Send a notification to] で、既存の Amazon SNS トピックを選択するか、または [Create Topic] を選択して新しいトピックを作成します。 トピックを新規作成するには、[Send a notification to] にトピック名を入力し、[With these recipients] に受信者のメールアドレスを入力します (カンマ区切り)。アラームの作成後、サブス クライブの確認メールが届きます。このトピックの E メールを受け取れるようになるには、この メールを確認する必要があります。 6. [Take the action] を選択し、[Recover this instance] を選択します。 7. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] をオンにして、IAM ロールが 自動的に作成されるようにします。これにより、AWS はアラームがトリガーされたときにお客様 に代わって自動的にインスタンスを停止できます。 8. [Whenever] で、[Status Check Failed (System)] を選択します。 9. [For at least] に 2 と入力します。 10. [consecutive period(s) of] で [1 minute] を選択します。 11. アラーム名を変更するには、[Name of alarm] に新しい名前を入力します。 アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。 12. [Create Alarm] を選択します。 Amazon CloudWatch コンソールを使用してトリガーされたア ラームとアクションの履歴を表示する Amazon CloudWatch コンソールで、アラームとアクションの履歴を見ることができます。Amazon CloudWatch は、過去 2 週間分のアラームとアクションの履歴を保管します。 トリガーされたアラームとアクションを表示するには 1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。 2. ナビゲーションペインで、[Alarms] を選択します。 3. アラームを選択します。 4. [Details] タブには、直近の状態遷移、および時間とメトリックス値が表示されます。 5. 直近の履歴のエントリを表示するには、[History] タブを選択します。 556 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する Amazon CloudWatch のアラームアクションのシナリオ Amazon EC2 コンソールを使用して、一定の条件が満たされたときに Amazon EC2 インスタンスを停 止または終了させるアラームアクションを作成することができます。アラームアクションが設定する 以下のコンソールページの画面キャプチャー内に、設定の順番を付けました。また、アクションを適 切に作成できるよう、次のシナリオの設定にも順番を付けました。 シナリオ 1: アイドル状態の開発インスタンスおよびテストインスタンスを停 止する ソフトウェアの開発またはテストに使用するインスタンスが 1 時間以上アイドル状態である場合に停 止するアラームを作成します。 設 定 値 停止 最大 CPUUtilization <= 10% 60 minutes 1 557 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する シナリオ 2: アイドル状態のインスタンスを停止する インスタンスが 24 時間アイドル状態である場合、インスタンスを停止し、メールを送信するアラー ムを作成します。 設 定 値 Stop and email 平均 CPUUtilization <= 5% 60 minutes 24 シナリオ 3: トラフィック量が異常に多いウェブサーバーについて E メールを 送信する インスタンスの 1 日当たりのアウトバウンドネットワークトラフィックが 10 GB を超える場合にメー ルを送信するアラームを作成します。 設 定 値 メール 合計 NetworkOut > 10 GB 1日 1 シナリオ 4: 異常な高トラフィック状態のウェブサーバーを停止する アウトバウンドトラフィックが 1 時間当たり 1 GB を超えた場合にインスタンスを停止し、テキスト メッセージ (SMS) を送信するアラームを作成します。 設 定 値 Stop and send SMS 合計 NetworkOut > 558 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスを停止、終了、再起動、 または復旧するアラームを作成する 設 定 値 1 GB 1 時間 1 シナリオ 5: メモリリークが発生しているインスタンスを停止する トラブルシューティングに使えるアプリケーションログを取得できるよう、メモリ使用率が 90% 以上 になった場合にインスタンスを停止するアラームを作成します。 Note MemoryUtilization メトリクスはカスタムメトリクスです。MemoryUtilization メトリクスを使 用するには、Linux インスタンスの Perl スクリプトをインストールする必要があります。詳 細については、「Amazon EC2 Linux インスタンスのメモリとディスクのメトリクスのモニタ リング」を参照してください。 設 定 値 停止 最大 MemoryUtilization >= 90% 1分 1 シナリオ 6: 障害のあるインスタンスを停止する 3 回連続で状態チェック (5 分間隔で実施) が不合格のインスタンスを停止するアラームを作成しま す。 設 定 値 停止 平均 StatusCheckFailed_System >= 1 15 分 559 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド メモリとディスクのメトリクスのモニタリング 設 定 値 1 シナリオ 7: バッチ処理ジョブの完了時にインスタンスを終了する バッチジョブを実行するインスタンスが結果データを送信しなくなったときに、そのインスタンスを 終了するアラームを作成します。 設 定 値 終了 最大 NetworkOut <= 100,000 bytes 5分 1 Amazon EC2 Linux インスタンスのメモリとディ スクのメトリクスのモニタリング Amazon Elastic Compute Cloud (Amazon EC2) Linux ベースのインスタンス用の Amazon CloudWatch モニタリングスクリプトは、Amazon CloudWatch カスタムメトリクスを作成/利用する方法の実例を 示しています。これらの Perl スクリプトのサンプルは、Linux インスタンスのメモリ、スワップ、 およびディスクスペースの使用状況メトリクスをレポートする、完全に機能する例で構成されま す。Amazon CloudWatch Monitoring Scripts for Linux は、AWS のサンプルコードライブラリからダウ ンロードできます。 Important これらのスクリプトサンプルに過ぎません。これらは「そのまま」提供され、サポートはし ていません。 これらのモニタリングスクリプトは、Linux オペレーティングシステムを実行している Amazon EC2 インスタンスで使用することを目的としています。これらのスクリプトは、以下の Amazon マシンイ メージ (AMI) の 32 ビットおよび 64 ビットバージョンでテスト済みです。 • Amazon Linux 2014.09.2 • Red Hat Enterprise Linux 6.6 • SUSE Linux Enterprise Server 12 • Ubuntu Server 14.04 Amazon CloudWatch 標準のカスタムメトリクスの利用料金が、これらのスクリプトの使用に適用さ れます。詳細については、Amazon CloudWatch 料金表ページを参照してください。 560 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 前提条件 Windows を実行する Amazon EC2 インスタンスの EC2Config を使ってこのデータを CloudWatch Logs に送信することにより、メモリとディスクメトリクスを モニタリングすることができます。 Windows を実行する Amazon EC2 インスタンスで CloudWatch Logs の使用を開始するには、 「CloudWatch へのパフォーマンスカウンタの送信と CloudWatch Logs へのログの送信」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を参照してください。 目次 • 前提条件 (p. 561) • ご利用開始にあたって (p. 562) • mon-put-instance-data.pl (p. 563) • mon-get-instance-stats.pl (p. 567) • コンソールでのカスタムメトリクスの表示 (p. 568) 前提条件 一部の Linux のバージョンでは、追加の手順を行う必要があります。 Note スクリプトパッケージに含まれる CloudWatchClient.pm モジュールは、インスタンスのメタ データをローカルでキャッシュします。スクリプトを実行しているインスタンスから AMI を 作成すると、キャッシュ TTL (デフォルト: 6 時間、Auto Scaling グループでは 24 時間) 以内 にこの AMI から起動したすべてのインスタンスは、元のインスタンスの ID を使用してメト リクスを出力します。キャッシュ TTL 期間が経過した後は、スクリプトは新しいデータを取 得し、スクリプトは現在のインスタンスの ID を使用します。これをすぐに修正するには、$ rm /var/tmp/aws-mon/instance-id を使用してキャッシュされたデータを削除します。 Amazon Linux AMI Amazon Linux AMI バージョン 2014.03 以降を実行している場合は、スクリプトが動作していること をモニタリングするために、追加の Perl モジュールをいくつか追加する必要があります。サーバーを 設定するには、次の手順に従います。 スクリプトを初めてインストールする場合 1. Amazon Linux AMI インスタンスにログインします。 2. コマンドプロンプトで以下のように入力し、次のパッケージをインストールします。 $ sudo yum install perl-Switch perl-DateTime perl-Sys-Syslog perl-LWPProtocol-https Red Hat Enterprise Linux Red Hat Enterprise Linux を実行している場合は、スクリプトが動作していることをモニタリングする ために、追加の Perl モジュールをいくつか追加する必要があります。サーバーを設定するには、次の 手順に従います。 スクリプトを初めてインストールする場合 1. Red Hat Enterprise Linux インスタンスにログオンします。 2. コマンドプロンプトで以下のように入力し、各パッケージをインストールします。 561 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ご利用開始にあたって $ sudo yum install perl-Switch perl-DateTime perl-Sys-Syslog perl-LWPProtocol-https perl-Digest-SHA -y $ sudo yum install zip unzip SUSE Linux Enterprise Server SUSE Linux Enterprise Server を実行している場合は、スクリプトが動作していることをモニタリン グするために、追加の Perl モジュールをいくつか追加する必要があります。サーバーを設定するに は、次の手順に従います。 スクリプトを初めてインストールする場合 1. SUSE Linux Enterprise Server インスタンスにログインします。 2. コマンドプロンプトで以下のように入力し、各パッケージをインストールします。 $ sudo zypper install perl-Switch perl-DateTime $ sudo zypper install –y "perl(LWP::Protocol::https)" Ubuntu Server Ubuntu Server を実行している場合は、以下の手順を実行してサーバーを設定してください。 スクリプトを初めてインストールする場合 1. Ubuntu Server インスタンスにログインします。 2. コマンドプロンプトで以下のように入力し、各パッケージをインストールします。 $ sudo apt-get update $ sudo apt-get install unzip $ sudo apt-get install libwww-perl libdatetime-perl Amazon EC2 Linux インスタンスへの接続については、「Linux インスタンスへの接続 (p. 314)」を参 照してください。 ご利用開始にあたって 以下の手順では、EC2 Linux インスタンスで CloudWatch Monitoring Scripts のダウンロード、解凍、 構成を行う方法について示します。 スクリプトのダウンロード、インストール、設定を行うには 1. コマンドプロンプトを開き、スクリプトの保存先となるフォルダーに移動し、以下を入力しま す。 562 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド mon-put-instance-data.pl curl http://aws-cloudwatch.s3.amazonaws.com/downloads/ CloudWatchMonitoringScripts-1.2.1.zip -O unzip CloudWatchMonitoringScripts-1.2.1.zip rm CloudWatchMonitoringScripts-1.2.1.zip cd aws-scripts-mon CloudWatchMonitoringScripts-1.2.1.zip パッケージには、以下のファイルが含まれてい ます。 • CloudWatchClient.pm – 共通 Perl モジュール。これを使って、他のスクリプトから簡単に Amazon CloudWatch を呼び出すことができます。 • mon-put-instance-data.pl – Amazon EC2 インスタンス (メモリ、スワップ、ディスクスペース の使用状況) のシステムメトリクスを収集し、Amazon CloudWatch に送信します。 • mon-get-instance-stats.pl – Amazon CloudWatch に問い合わせて、このスクリプトが実行され る EC2 インスタンスの最新の使用状況統計を表示します。 • [awscreds.template] – お客様のアクセスキー ID とシークレットアクセスキーを格納する AWS 認証情報のファイルテンプレートです。 • LICENSE.txt – Apache 2.0 のライセンスを含むテキストファイルです。 • NOTICE.txt – 著作権表示です。 2. 既にインスタンスに関連付けられた AWS Identity and Access Management (IAM) ロールがある場 合は、必ず次の操作を実行する許可を持っていることを確認してください。 • cloudwatch:PutMetricData • cloudwatch:GetMetricStatistics • cloudwatch:ListMetrics • ec2:DescribeTags 許可がない場合は、CloudWatch を操作する許可を持つ IAM ロールを新規作成し、新しいイン スタンスを起動する際にそのロールを関連付けることができます。詳細については、Controlling User Access to Your AWS Account を参照してください。 3. オプション: IAM ロールを使用していない場合、先にダウンロードした awscreds.template ファイルを更新します。このファイルの中身は、次の形式を使用されているはずです。 AWSAccessKeyId=YourAccessKeyID AWSSecretKey=YourSecretAccessKey Note 既に認証情報用のファイルを作成している場合、この手順はオプションです。 スクリプトを呼び出す際、コマンドラインで場所を指定することで既存のファイ ルを使用できます。もしくは、AWS 認証情報の付いたファイルを指す環境変数 AWS_CREDENTIAL_FILE を設定することができます。 認証情報にアクセスする方法については、「ユーザーセキュリティ認証情報の作成、修 正、および閲覧」 (IAM ユーザーガイド) を参照してください。 mon-put-instance-data.pl このスクリプトは、現行システムにあるメモリ、スワップ、ディスクスペースの使用状況のデータを 収集します。その後、Amazon CloudWatch へのリモート呼び出しを行って、収集したデータをカス タムメトリクスとしてレポートします。 563 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド mon-put-instance-data.pl オプション 名前 説明 --mem-util MemoryUtilization メトリクスをパーセント (%) 単位で収集し、送 信します。このオプションは、アプリケーションとオペレーティ ングシステムによって割り当てられたメモリのみをレポートしま す。キャッシュとバッファにあるメモリは含まれません。 --mem-used メガバイト (MB) 単位でレポートされる MemoryUsed メトリクス を収集し、送信します。このオプションは、アプリケーションと オペレーティングシステムによって割り当てられたメモリのみを レポートします。キャッシュとバッファにあるメモリは含まれま せん。 --mem-avail メガバイト (MB) 単位でレポートされる MemoryAvailable メトリ クスを収集し、送信します。このオプションは、アプリケーショ ンとオペレーティングシステムが使用できるメモリをレポートし ます。 --swap-util パーセント (%) 単位でレポートされる SwapUtilization メトリクス を収集し、送信します。 --swap-used メガバイト (MB) 単位でレポートされる SwapUsed メトリクスを 収集し、送信します。 --disk-path=PATH レポートするディスクを選択します。 PATH では、マウントポイント、またはレポートが必要なファ イルシステムのマウントポイントにあるファイルを指定できま す。複数のディスクを選択するには、それぞれに対して --diskpath=PATH を指定します。 / および /home にマウントされたファイルシステムのディスクを 選択するには、 --disk-path=/ --disk-path=/home パラメーターを使用しま す。 --disk-space-util 選択したディスクについて、DiskSpaceUtilization メトリクスを収 集し送信します。メトリクスはパーセンテージでレポートされま す。 このスクリプトによって計算されたディスクの使用状況メトリク スは、df -k -l コマンドによって計算された値とは異なることに注 意してください。df -k -l の値のほうが有用であると判断した場合 は、スクリプトのほうの計算値を変更できます。 --disk-space-used 選択したディスクについて、DiskSpaceUsed メトリクスを収集し 送信します。メトリクスは、デフォルトにより、ギガバイトでレ ポートされます。 Linux オペレーティングシステムには予約ディスクスペースがあ るため、使用済みディスクスペースと使用可能なディスクスペー スを合計しても正確なディスクスペースの合計にならないことが あります。 --disk-space-avail 選択したディスクについて、DiskSpaceAvailable メトリクスを収 集し送信します。メトリクスはギガバイトでレポートされます。 Linux オペレーティングシステムには予約ディスクスペースがあ るため、使用済みディスクスペースと使用可能なディスクスペー スを合計しても正確なディスクスペースの合計にならないことが あります。 564 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド mon-put-instance-data.pl 名前 説明 --memory-units=UNITS メモリ使用量をレポートする単位を指定します。指定がない場 合、メモリはメガバイト (MB) でレポートされます。UNITS は、 バイト (B)、キロバイト (KB)、メガバイト (MB)、ギガバイト (GB) のいずれかになります。 --disk-spaceunits=UNITS ディスクスペース使用量をレポートする単位を指定します。指定 がない場合、ディスクスペースはギガバイト (GB) でレポートさ れます。UNITS は、バイト (B)、キロバイト (KB)、メガバイト (MB)、ギガバイト (GB) のいずれかになります。 --aws-credentialfile=PATH AWS 認証情報を持っているファイルの場所を提供します。 このパラメーターは、--aws-access-key-id および --awssecret-key パラメーターと一緒には使用できません。 --aws-access-keyid=VALUE 発信者を識別するために使用する AWS アクセスキー ID を指定 します。--aws-secret-key オプションと一緒に使用する必要 があります。このオプションを --aws-credential-file パラ メーターと一緒に使用しないでください。 --aws-secret-key=VALUE CloudWatch へのリクエストの署名に使用する AWS シークレッ トアクセスキーを指定します。--aws-access-key-id オプショ ンと一緒に使用する必要があります。このオプションを --awscredential-file パラメーターと一緒に使用しないでくださ い。 --aws-iam-role=VALUE AWS 認証情報を提供するために使用する IAM ロールを指定し ます。値 =VALUE が必要です。認証情報が指定されていない場 合、EC2 インスタンスに関連付けられたデフォルトの IAM ロー ルが適用されます。使用できる IAM ロールは 1 つのみです。IAM ロールが検出されない場合、または 2 つ以上の IAM ロールが検出 された場合、スクリプトはエラーを返します。 このオプションを --aws-credential-file、--aws-accesskey-id、または --aws-secret-key パラメーターと併せて使用 しないでください。 --aggregated[=only] インスタンスタイプ、AMI ID、リージョン全体の集約されたメト リクスを追加します。値 =only はオプションです。指定した場 合、スクリプトは集約されたメトリクスのみをレポートします。 --auto-scaling[=only] Auto Scaling グループの集約されたメトリクスを追加します。 値 =only はオプションです。指定すると、スクリプトは Auto Scaling メトリクスのみをレポートします。スクリプトを使って IAM アカウントまたはロールに関連付けられている IAM ポリシー には、EC2 アクション DescribeTags を呼び出す許可が必要にな ります。 --verify メトリクスを収集するスクリプトのテストランを実行した り、完全な HTTP リクエストを用意したりしますが、実際に CloudWatch を呼び出してデータをレポートすることはありま せん。このオプションで、認証情報が提供されていることも 確認できます。冗長モードで実行すると、このオプションは CloudWatch に送信するメトリクスを出力します。 --from-cron cron からスクリプトを呼び出す際はこのオプションを使用しま す。このオプションを使用すると、すべての診断出力が抑えられ ますが、エラーメッセージがユーザーアカウントのローカルシス テムログに送信されます。 565 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド mon-put-instance-data.pl 名前 説明 --verbose スクリプトの実行内容の詳細を表示します。 --help 使用状況の情報を表示します。 --version スクリプトのバージョン番号を表示します。 例 次の例では、有効な AWS 認証情報を持つ awscreds.template ファイルが更新済みであることを想 定しています。awscreds.template ファイルを使用していない場合、引数 --aws-access-keyid および --aws-secret-key を用いて認証情報を提供します。 CloudWatch にデータを投入しないで簡単なテストランを行うには • 次のコマンドを実行します。 ./mon-put-instance-data.pl --mem-util --verify --verbose 利用可能なメモリのメトリクスをすべて収集し、CloudWatch に送信するには • 次のコマンドを実行します。 ./mon-put-instance-data.pl --mem-util --mem-used --mem-avail CloudWatch にレポートするメトリクスの cron スケジュールを設定するには 1. 次のコマンドを使用して crontab の編集を開始します。 crontab -e 2. 5 分ごとにメモリとディスクスペースの使用状況を CloudWatch にレポートするには、以下のコ マンドを追加します。 */5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --mem-util --diskspace-util --disk-path=/ --from-cron スクリプトにエラーが発生した場合、スクリプトはシステムログにエラーメッセージを書き込み ます。 Auto Scaling グループの集約メトリクスを収集し、個々のインスタンスメトリクスをレポート することなく Amazon CloudWatch に送信するには • 次のコマンドを実行します。 ./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --autoscaling=only 566 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド mon-get-instance-stats.pl インスタンスタイプ、AMI ID、リージョンの集約されたメトリクスを収集し、個々のインス タンスメトリクスをレポートすることなく Amazon CloudWatch に送信するには • 次のコマンドを実行します。 ./mon-put-instance-data.pl --mem-util --mem-used --mem-avail -aggregated=only mon-get-instance-stats.pl このスクリプトは、直近の時間数を用いて、指定された時間間隔内で、メモリ、スワップ、ディスク スペースメトリクスの統計について CloudWatch に問い合わせます。このデータは、このスクリプト が実行される Amazon EC2 インスタンスに関するものです。 オプション 名前 説明 --recent-hours=N レポートする直近の時間数を N で表記して指定します。ここで N は整数です。 --aws-credentialfile=PATH AWS 認証情報を持っているファイルの場所を提供します。 --aws-access-keyid=VALUE 発信者を識別するために使用する AWS アクセスキー ID を指定 します。--aws-secret-key オプションと一緒に使用する必要 があります。このオプションを --aws-credential-file オプ ションと併せて使用しないでください。 --aws-secret-key=VALUE CloudWatch へのリクエストの署名に使用する AWS シークレッ トアクセスキーを指定します。--aws-access-key-id オプショ ンと一緒に使用する必要があります。このオプションを --awscredential-file オプションと併せて使用しないでください。 --aws-iam-role=VALUE AWS 認証情報を提供するために使用する IAM ロールを指定し ます。値 =VALUE が必要です。認証情報が指定されていない場 合、EC2 インスタンスに関連付けられたデフォルトの IAM ロー ルが適用されます。使用できる IAM ロールは 1 つのみです。IAM ロールが検出されない場合、または 2 つ以上の IAM ロールが検出 された場合、スクリプトはエラーを返します。 このオプションを --aws-credential-file、--aws-accesskey-id、または --aws-secret-key パラメーターと併せて使用 しないでください。 --verify メトリクスを収集するスクリプトのテストランを実行した り、完全な HTTP リクエストを用意したりしますが、実際に CloudWatch を呼び出してデータをレポートすることはありま せん。このオプションで、認証情報が提供されていることも 確認できます。冗長モードで実行すると、このオプションは CloudWatch に送信するメトリクスを出力します。 --verbose スクリプトの実行内容の詳細を表示します。 --help 使用状況の情報を表示します。 --version スクリプトのバージョン番号を表示します。 567 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド コンソールでのカスタムメトリクスの表示 例 過去 12 時間の使用状況の統計を取得するには • 次のコマンドを実行します。 ./mon-get-instance-stats.pl --recent-hours=12 返される応答は以下の出力例のようになります。 Instance metric statistics for the last 12 hours. CPU Utilization Average: 1.06%, Minimum: 0.00%, Maximum: 15.22% Memory Utilization Average: 6.84%, Minimum: 6.82%, Maximum: 6.89% Swap Utilization Average: N/A, Minimum: N/A, Maximum: N/A Disk Space Utilization on /dev/xvda1 mounted as / Average: 9.69%, Minimum: 9.69%, Maximum: 9.69% コンソールでのカスタムメトリクスの表示 mon-put-instance-data.pl スクリプトの呼び出しが正常に行われると、AWS マネジメントコン ソールを使って Amazon CloudWatch コンソールで投入したカスタムメトリクスを表示できます。 カスタムメトリクスを表示するには 1. 前述の mon-put-instance-data.pl を実行します。 2. AWS マネジメントコンソール にサインインした後、 https://console.aws.amazon.com/ cloudwatch/にある CloudWatch コンソールを開きます。 [View Metrics] をクリックします。 [Viewing] リストで、スクリプトによって投入されたカスタムメトリクスが System/Linux という プレフィックス付きで表示されます。 3. 4. 568 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ネットワークとセキュリティ Amazon EC2 は以下のようなネットワーク機能とセキュリティ機能を提供します。 特徴 • Amazon EC2 のキーペア (p. 570) • Linux インスタンスの Amazon EC2 セキュリティグループ (p. 579) • Amazon EC2 のリソースに対するアクセスの制御 (p. 594) • Amazon EC2 と Amazon Virtual Private Cloud (p. 642) • Amazon EC2 インスタンスの IP アドレッシング (p. 672) • Elastic IP アドレス (p. 689) • Elastic Network Interface (p. 697) • プレイスメントグループ (p. 714) • EC2 インスタンスの最大ネットワーク送信単位 (MTU) (p. 717) • Linux の拡張ネットワーキング (p. 720) コマンドラインツールまたは API を使用して Amazon EC2 にアクセスする場合は、アクセスキー ID とシークレットアクセスキーが必要です。詳細については、「How Do I Get Security Credentials?」 (アマゾン ウェブ サービス全般のリファレンス ) を参照してください。 インスタンスは、プラットフォーム EC2-Classic または EC2-VPC で起動できます。EC2-Classic に 起動されるインスタンスまたはデフォルト VPC には、パブリック IP アドレスが自動的に割り当てら れます。デフォルト以外の VPC に起動されるインスタンスには、起動時にパブリック IP アドレス を割り当てることができます。EC2-Classic と EC2-VPC に関する詳細は、「サポートされているプ ラットフォーム (p. 649)」を参照してください。 インスタンスは、制御不能な理由によりエラーを起こしたり終了したりすることがあります。インス タンスが異常終了したために別のインスタンスを起動した場合は、そのインスタンスのパブリック IP アドレスは元の IP アドレスとは異なります。ただし、アプリケーションが静的な IP アドレスを必要 とする場合は、Elastic IP アドレスを使用できます。 セキュリティグループを使用すると、だれがインスタンスにアクセスできるかをコントロールできま す。これは、着信ネットワークファイアウォール (どのプロトコル、ポート、ソース IP 範囲にインス タンスへの到達を許可するかを指定する) に似ています。複数のセキュリティグループを作成してそ れぞれに異なるルールを割り当てることもできます。その後で、各インスタンスを 1 つまたは複数の セキュリティグループに割り当てます。どのトラフィックが各インスタンスに到達できるかは、ルー 569 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド キーペア ルを使用して決定されます。セキュリティグループを設定することで、特定の IP アドレスや特定のセ キュリティグループのみにインスタンスへのアクセスを許可することができます。 Amazon EC2 のキーペア Amazon EC2 はパブリックキー暗号を使用して、ログイン情報の暗号化と復号を行います。パブリッ クキー暗号はパブリックキーを使用してデータを暗号化し (パスワードなど)、受信者はプライベート キーを使用してデータを復号します。パブリックキーとプライベートキーは、キーペアと呼ばれま す。 インスタンスにログインするには、キーペアを作成し、インスタンスを起動するときにキーペアの名 前を指定して、インスタンスに接続するときにプライベートキーを指定する必要があります。Linux インスタンスにはパスワードがなく、キーペアを使用して SSH によってログインします。Windows インスタンスでは、キーペアを使用して管理者パスワードを取得してから、RDP を使用してログイン します。 キーペアを作成する Amazon EC2 を使用してキーペアを作成できます。詳細については、「Amazon EC2 を使用してキー ペアを作成する (p. 571)」を参照してください。 または、サードパーティ製のツールで、パブリックキーを Amazon EC2 にインポートすることもでき ます。詳細については、「独自のキーペアを Amazon EC2 にインポートする (p. 572)」を参照して ください。 それぞれのキーペアには名前が必要です。覚えやすい名前を選択するようにしてください。Amazon EC2 は、キー名として指定した名前にパブリックキーを関連付けます。 Amazon EC2 はパブリックキーのみを保存し、お客様はプライベートキーを保存します。お客様のプ ライベートキーを持っていれば誰でもお客様のログイン情報を復号できるので、プライベートキーを 安全な場所に保存することが重要です。 Amazon EC2 が使用するキーは、2048-bit SSH-2 RSA キーです。リージョンあたり最大 5000 のキー ペアを持つことができます。 インスタンスを起動し、接続する インスタンスを起動するときは、インスタンスへの接続に使用するキーペアの名前を指定する必要が あります。インスタンスの起動時に既存のキーペアを指定しない場合、インスタンスに接続すること はできません。インスタンスに接続するときは、インスタンスの起動時に指定したキーペアに対応す るプライベートキーを指定する必要があります。 Note Amazon EC2 ではプライベートキーのコピーが保持されないため、プライベートキーを失っ た場合、復元することはできません。Instance store-Backed インスタンスのプライベート キーを失った場合は、インスタンスにアクセスできなくなります。そのため、インスタンス を終了し、新しいキーペアを使用して、別のインスタンスを起動する必要があります。EBSBacked Linux インスタンスのプライベートキーを失った場合は、インスタンスへのアクセス 権を回復することができます。詳細については、プライベートキーを紛失した場合の Linux イ ンスタンスへの接続 (p. 576) を参照してください。 複数ユーザー用のキーペア 単一のインスタンスにアクセスする複数のユーザーがいる場合、インスタンスにユーザーアカウント を追加できます。詳細については、「Linux インスタンスでのユーザーアカウントの管理 (p. 349)」 を参照してください。各ユーザー用にキーペアを作成し、インスタンスの各ユーザー用の .ssh/ authorized_keys ファイルに各キーペアからのパブリックキー情報を追加できます。その後、ユー ザーに対してプライベートキーファイルを配布できます。この方法では、ルートアカウント用に使 570 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon EC2 を使用してキーペアを作成する 用しているプライベートキーファイルと同一のファイルを複数のユーザーに配布する必要はありませ ん。 目次 • Amazon EC2 を使用してキーペアを作成する (p. 571) • 独自のキーペアを Amazon EC2 にインポートする (p. 572) • キーペアのパブリックキーを取得する (Linux) (p. 573) • キーペアのパブリックキーを取得する (Windows) (p. 574) • キーペアのフィンガープリントの確認 (p. 574) • キーペアの削除 (p. 575) • プライベートキーを紛失した場合の Linux インスタンスへの接続 (p. 576) Amazon EC2 を使用してキーペアを作成する Amazon EC2 コンソールまたはコマンドラインを使用して、キーペアを作成できます。キーペアを作 成すると、インスタンス起動時にこのキーペアを指定できます。 実行中のインスタンスにこのキー ペアを追加すると、他のユーザーがインスタンスに接続できるようになります。 詳細については、 「Linux インスタンスでのユーザーアカウントの管理 (p. 349)」を参照してください。 Amazon EC2 コンソールを使用してキーペアを作成するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。 Tip 3. ナビゲーションペインは Amazon EC2 コンソールの左側にあります。ペインが表示され ない場合、最小化されている可能性があります。矢印を選択してペインを展開します。 [Create Key Pair] を選択します。 4. [Create Key Pair] ダイアログボックスの [Key pair name] フィールドに新しいキーペアの名前を入 力し、[Create] を選択します。 5. ブラウザによって秘密キーファイルが自動的にダウンロードされます。ベースファイル名はキー ペアの名前として指定した名前となり、ファイル名の拡張子は .pem となります。プライベート キーファイルを安全な場所に保存します。 Important 6. これは、プライベートキーを保存する唯一のチャンスです。インスタンスと対応するプ ライベートキーの起動時には、毎回インスタンスに接続するたびに、キーペアの名前を 入力する必要があります。 Mac または Linux コンピュータの SSH クライアントを使用して Linux インスタンスに接続する 場合は、次のコマンドを使用してプライベートキーファイルの権限を設定すると、お客様以外の ユーザーはそれを読み取ることができないようになります。 $ chmod 400 my-key-pair.pem コマンドラインを使用してキーペアを作成するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • create-key-pair (AWS CLI) • New-EC2KeyPair (AWS Tools for Windows PowerShell) 571 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 独自のキーペアを Amazon EC2 にインポートする 独自のキーペアを Amazon EC2 にインポートする 前のセクションで説明したように、Amazon EC2 を使用してキーペアを作成すれば、インスタンスを 起動できる状態になります。または、Amazon EC2 を使用してキーペアを作成する代わりに、サード パーティ製のツールで RSA キーペアを作成してから、パブリックキーを Amazon EC2 にインポート することもできます。たとえば、ssh-keygen (標準 OpenSSH インストールで提供されるツール) を使 用して、キーペアを作成できます。また、Java、Ruby、Python などのさまざまなプログラミング言 語では、RSA キーペアの作成に使用できる標準ライブラリが提供されています。 Amazon EC2 では、次の形式を使用できます。 • OpenSSH パブリックキー形式 (~/.ssh/authorized_keys の形式) • Base64 でエンコードされた DER 形式 • SSH パブリックキーファイル形式 (RFC4716 で指定) Amazon EC2 では、DSA キーを使用できません。キージェネレータが、RSA キーを作成するように 設定されていることを確認してください。 サポートされている長さ: 1024、2048、および4096。 キーペアを作成するにはサードパーティ製のツールでキーペアを作成するには 1. 選択したサードパーティ製のツールでキーペアを生成します。 2. ローカルファイルにパブリックキーを保存します。たとえば、~/.ssh/my-key-pair.pub (Linux) または C:\keys\my-key-pair.pub (Windows) 。このファイル名の拡張子は重要では ありません。 3. .pem 拡張子を持つ別のローカルファイルにプライベートキーを保存します。たとえ ば、~/.ssh/my-key-pair.pem (Linux) または C:\keys\my-key-pair.pem (Windows) 。プラ イベートキーファイルを安全な場所に保存します。インスタンスと対応するプライベートキーの 起動時には、毎回インスタンスに接続するたびに、キーペアの名前を入力する必要があります。 Amazon EC2 コンソールを使用してキーペアをインポートするには、次のステップを使用します。 パブリックキーをインポートするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。 3. [Import Key Pair] を選択します。 4. [Import Key Pair] ダイアログボックスで [Browse] を選択し、前に保存したパブリックキーファ イルを選択します。[Key pair name] フィールドにキーペアの名前を入力し、[Import] を選択しま す。 コマンドラインを使用してキーペアをインポートするには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • import-key-pair (AWS CLI) • Import-EC2KeyPair (AWS Tools for Windows PowerShell) パブリックキーファイルをインポートしたら、次のように Amazon EC2 コンソールを使用して、キー ペアが正しくインポートされたかどうかを確認できます。 572 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド キーペアのパブリックキーを取得する (Linux) キーペアがインポートされたことを確認するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションバーから、キーペアを作成したリージョンを選択します。 ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。 4. インポートしたキーペアが、表示されているキーペアのリストに含まれていることを確認しま す。 コマンドラインを使用してキーペアを表示するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-key-pairs (AWS CLI) • Get-EC2KeyPair (AWS Tools for Windows PowerShell) キーペアのパブリックキーを取得する (Linux) Linux インスタンスでは、パブリックキーコンテンツは ~/.ssh/authorized_keys 内のエントリ に配置されます。この配置は起動時に行われ、パスワードを使用しなくても、安全にインスタンスに アクセスできるようになります。このファイルをエディタで開くと、キーペアのパブリックキーを表 示できます。以下に、my-key-pair という名前のキーペアのエントリの例を示します。パブリック キーの後にキーペアの名前が続く構成になっています。以下に例を示します。 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/ d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk +0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi +z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE my-key-pair ssh-keygen を使用してキーペアのパブリックキーを取得できます。プライベートキーをダウンロード したコンピュータで、次のコマンドを実行します。 $ ssh-keygen -y キーを持つファイルを入力するよう求められたら、次のように .pem ファイルにパスを指定します。 /path_to_key_pair/my-key-pair.pem コマンドがパブリックキーを返します。 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/ d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk +0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi +z7wB3Rb 573 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド キーペアのパブリックキーを取得する (Windows) BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE このコマンドが失敗した場合は、次のコマンドを実行して、自分だけがキーペアファイルを表示でき るように、このファイルに対するアクセス許可を変更していることを確認してください。 $ chmod 400 my-key-pair.pem インスタンスの起動時に指定したパブリックキーも、そのインスタンスメタデータを介して表示でき ます。インスタンスの起動時に指定したパブリックキーを表示するには、インスタンスから次のコマ ンドを使用します。 $ GET http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/ d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk +0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi +z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE my-key-pair 詳細については、「インスタンスメタデータの取得 (p. 368)」を参照してください。 インスタンスへの接続に使用するキーペアを変更した場合、このページの最後のセクションに示すよ うに、インスタンスメタデータが更新されて新しいパブリックキーが表示されないので、ご注意くだ さい。インスタンスメタデータには、インスタンスの起動時に指定したキーペアのパブリックキーが 引き続き表示されます。 キーペアのパブリックキーを取得する (Windows) Windows では、PuTTYgen を使用してキーペアのパブリックキーを取得できます。PuTTYgen を起動 して、[Load] をクリックし、.ppk または .pem ファイルを選択します。PuTTYgen によってパブリッ クキーが表示されます。 インスタンスの起動時に指定したパブリックキーも、そのインスタンスメタデータを介して表示でき ます。インスタンスの起動時に指定したパブリックキーを表示するには、インスタンスから次のコマ ンドを使用します。 $ GET http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/ d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk +0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi +z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE my-key-pair 詳細については、「インスタンスメタデータの取得 (p. 368)」を参照してください。 キーペアのフィンガープリントの確認 Amazon EC2 コンソールの [Key Pair] ページで、[Fingerprint] 列にはキーペアから生成されたフィン ガープリントが表示されます。AWS では、キーペアが AWS とサードパーティツールのいずれで生成 574 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド キーペアの削除 されたかによって、フィンガープリントの計算が異なります。AWS を使用してキーペアを作成した場 合、フィンガープリントは、SHA-1 ハッシュ関数を使用して計算されます。サードパーティツールに よってキーペアを作成し、パブリックキーを AWS にアップロードした場合、または AWS で作成し た既存のプライベートキーから新しいパブリックキーを作成し、AWS にアップロードした場合、フィ ンガープリントは、MD5 ハッシュ関数を使用して計算されます。 [Key Pairs] ページに表示されるフィンガープリントを使用して、ローカルコンピュータにあるプライ ベートキーが、AWS に格納されているパブリックキーと一致することを確認できます。 AWS を使用してキーペアを作成した場合、OpenSSL ツールを使用してプライベートキーファイルか らフィンガープリントを生成できます。 $ openssl pkcs8 -in path_to_private_key -inform PEM -outform DER -topk8 nocrypt | openssl sha1 -c サードパーティツールを使用してキーペアを作成し、パブリックキーを AWS にアップロードした場 合、OpenSSL のツールを使用して、ローカルコンピュータのプライベートキーファイルからフィン ガープリントを生成できます。 $ openssl rsa -in path_to_private_key -pubout -outform DER | openssl md5 -c 出力はコンソールに表示されるフィンガープリントと一致する必要があります。 キーペアの削除 キーペアを削除すると、Amazon EC2 のパブリックキーのコピーのみが削除されます。キーペアの削 除は、コンピュータのプライベートキーにも、このキーペアを使用して既に起動している各インスタ ンスのパブリックキーにも影響しません。削除したキーペアを使用して新しいインスタンスを起動す ることはできませんが、プライベートキー (.pem) ファイルを保持している間は、削除したキーペアを 使用して起動した各インスタンスに引き続き接続することができます。 Note Auto Scaling グループ (Elastic Beanstalk 環境など) を使用している場合、削除するキーペア が起動設定で指定されていないことを確認します。Auto Scaling は異常なインスタンスを検出 した場合、代わりのインスタンスを起動します。ただし、キーペアが見つからない場合は、 インスタンスの起動に失敗します。 Amazon EC2 コンソールまたはコマンドラインを使用して、キーペアを削除できます。 コンソールを使用してキーペアを削除するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。 3. キーペアを選択し、[Delete] を選択します。 4. プロンプトが表示されたら、[Yes] を選択します。 コマンドラインを使用してキーペアを削除するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • delete-key-pair (AWS CLI) • Remove-EC2KeyPair (AWS Tools for Windows PowerShell) 575 Note Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド プライベートキーを紛失した場 合の Linux インスタンスへの接続 インスタンスから Linux AMI を作成し、AMI を使用して別のリージョンまたはアカウント の新しいインスタンスを起動すると、新しいインスタンスには元のインスタンスからのパブ リックキーが含まれます。これにより、元のインスタンスと同じプライベートキーファイル を使用して新しいインスタンスに接続できます。インスタンスからこのパブリックキーを削 除するには、任意のテキストエディターを使用して、.ssh/authorized_keys ファイルか らそのエントリを削除します。インスタンスでのユーザーの管理、特定のキーペアを使用し たリモートアクセス権の付与については、「Linux インスタンスでのユーザーアカウントの管 理 (p. 349)」を参照してください。 プライベートキーを紛失した場合の Linux インスタ ンスへの接続 EBS-Backed インスタンスのプライベートキーを失った場合は、インスタンスへのアクセス権を回復 することができます。インスタンスを停止し、そのルートボリュームをデタッチし、データボリュー ムとして別のインスタンスにアタッチし、authorized_keys ファイルを変更して、ボリュームを元 のインスタンスに戻し、インスタンスを再起動する必要があります。インスタンスの起動、接続、お よび停止の詳細については、インスタンスのライフサイクル (p. 299) を参照してください。 この手順は、instance store-backed インスタンスではサポートされません。インスタンスのルートデ バイスタイプを判断するには、Amazon EC2 コンソールを開き、[Instances] を選択してインスタンス を選択し、詳細ペインで [Root device type] の値をチェックします。この値は ebs または instance store のどちらかです。ルートデバイスがインスタンスストアボリュームである場合、インスタンス に接続するにはプライベートキーが必要です。 前提条件 Amazon EC2 コンソールまたはサードパーティ製のツールで、新しいキーペアを作成します。新しい キーペアの名前として、紛失したプライベートキーと同じ名前を指定するには、まず既存のキーペア を削除する必要があります。 別のキーペアを使用して EBS-Backed インスタンスに接続するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Instances] を選択し、接続先にするインスタンスを選択します (このイ ンスタンスを「元のインスタンス」と呼びます)。 3. この手順を完了するために必要となる以下の情報を控えておきます。 • 元のインスタンスのインスタンス ID、AMI ID、およびアベイラビリティーゾーンを書き留めま す。 • [Root device] フィールドで、ルートボリュームのデバイス名 (/dev/sda1 や /dev/xvda など) を記録します。リンクを選択し、[EBS ID] フィールドでボリューム ID (vol-xxxxxxxxxxxxxxxxx) を記録します。 • [EC2-Classic] 元のインスタンスに Elastic IP アドレスが関連付けられている場合は、詳細ペイ ンの [Elastic IP] フィールドに表示される Elastic IP アドレスを書き留めます。 4. [Actions] を選択して [Instance State] を選択し、[Stop] を選択します。[Stop] が無効になっている 場合は、インスタンスが既に停止しているか、またはルートボリュームがインスタンスストアボ リュームです。 Warning インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されま す。したがって、インスタンスストアボリューム上に維持したいデータがある場合は、 必ず永続的ストレージにバックアップしてください。 576 5. Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド プライベートキーを紛失した場 合の Linux インスタンスへの接続 [Launch Instance] を選択し、起動ウィザードを使用して、以下のオプションで一時インスタンス を起動します。 • [Choose an AMI] ページで、元のインスタンスを起動するのに使用したのと同じ AMI を選択し ます。その AMI を使用できない場合は、停止したインスタンスから使用可能な AMI を作成で きます。詳細については、「Amazon EBS-Backed Linux AMI の作成 (p. 96)」を参照してくだ さい。 • [Choose an Instance Type] ページで、ウィザードによって自動的に選択されたデフォルトのイ ンスタンスタイプをそのままにします。 • [Configure Instance Details] ページで、接続するインスタンスと同じアベイラビリティゾーンを 指定します。VPC のインスタンスを起動する場合、このアベイラビリティゾーンのサブネット を選択します。 • [Add Tags] ページで、一時インスタンスであることを示すために、インスタンスに Name=Temporary タグを追加します。 • [Review] ページで、[Launch] を選択します。新しいキーペアを作成し、コンピューター上の安 全な場所にダウンロードして、[Launch Instances] を選択します。 6. ナビゲーションペインで [Volumes] を選択し、元のインスタンスのルートデバイスボリューム を選択します (前のステップでそのボリューム ID を書き留めました)。[Actions] を選択し、次に [Detach Volume] を選択します。ボリュームの状態が available になるまで待ちます ([Refresh] アイコンを選択しなければならない場合があります)。 7. ボリュームを選択したまま [Actions] を選択し、次に [Attach Volume] を選択します。一時インス タンスのインスタンス ID を選択し、[Device] で指定したデバイス名 (/dev/sdf など) を書き留め て、[Yes, Attach] を選択します。 Note 元のインスタンスを AWS Marketplace AMI から起動して、ボリュームに AWS Marketplace のコードが含まれている場合は、ボリュームをアタッチする前に一時インス タンスを停止する必要があります。 8. 一時インスタンスに接続します。 9. 一時インスタンスから、そのファイルシステムにアクセスできるように、インスタンスにアタッ チしたボリュームをマウントします。たとえば、デバイス名が /dev/sdf の場合、次のコマンド を使用してボリュームを /mnt/tempvol としてマウントします。 Note デバイス名の表示がインスタンスでは異なる場合があります。たとえば、/dev/sdf と してマウントされているデバイスが、インスタンスでは /dev/xvdf として表示される場 合があります。Red Hat の一部のバージョン (または CentOS などのバリアント) では、 さらに末尾の文字が 4 文字インクリメントされる場合があります。たとえば、/dev/sdf は /dev/xvdk になります。 a. lsblk コマンドを使用して、ボリュームがパーティション分割されているかどうかを判断しま す。 [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk ##xvda1 202:1 0 8G 0 part / xvdf 202:80 0 101G 0 disk ##xvdf1 202:81 0 101G 0 part xvdg 202:96 0 30G 0 disk 前述の例では、/dev/xvda と /dev/xvdf はパーティション分割されたボリュームで、/ dev/xvdg はパーティション分割されていません。ボリュームがパーティション分割されて 577 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド プライベートキーを紛失した場 合の Linux インスタンスへの接続 いる場合は、次のステップで raw デバイス (/dev/xvdf) の代わりにパーティション (/dev/ xvdf1) をマウントします。 b. ボリュームをマウントするための一時ディレクトリを作成します。 [ec2-user ~]$ sudo mkdir /mnt/tempvol c. 以前に特定したデバイス名またはボリューム名を使用して、一時マウントポイントにボ リューム (またはパーティション) をマウントします。 [ec2-user ~]$ sudo mount /dev/xvdf1 /mnt/tempvol 10. 一時インスタンスから、次のコマンドを使用して、一時インスタンスの authorized_keys の新 しいパブリックキーで、マウントされたボリュームの authorized_keys を更新します ( インス タンスの場合は ubuntuubuntu など、次のコマンドのユーザー名を置き換えることが必要になる 場合があります)。 [ec2-user ~]$ cp .ssh/authorized_keys /mnt/tempvol/home/ec2-user/.ssh/ authorized_keys このコピーが正常に終了すると、次のステップに進むことができます。 (オプション) または、/mnt/tempvol のファイルを編集するアクセス許可がない場合、sudo を 使用してファイルを更新してから、ファイルに対するアクセス許可を確認して、元のインスタン スにログインできるかどうかを確認する必要があります。次のコマンドを使用して、ファイルに 対するアクセス許可を確認します。 [ec2-user ~]$ sudo ls -l /mnt/tempvol/home/ec2-user/.ssh total 4 -rw------- 1 222 500 398 Sep 13 22:54 authorized_keys この出力例では、222 はユーザー ID、500 はグループ ID です。次に、sudo を実行して、失敗し たコピーコマンドを再実行します。 [ec2-user ~]$ sudo cp .ssh/authorized_keys /mnt/tempvol/home/ec2user/.ssh/authorized_keys 次のコマンドを再度実行して、アクセス許可が変更されているかどうかを判断します。 [ec2-user ~]$ sudo ls -l /mnt/tempvol/home/ec2-user/.ssh ユーザー ID とグループ ID が変更されている場合は、次のコマンドを実行して復元します。 [ec2-user ~]$ sudo chown 222:500 /mnt/tempvol/home/ec2-user/.ssh/ authorized_keys 11. 一時インスタンスから、元のインスタンスに再アタッチできるように、アタッチしたボリューム をアンマウントします。たとえば、/mnt/tempvol のボリュームをアンマウントするには、次の コマンドを使用します。 [ec2-user ~]$ sudo umount /mnt/tempvol 578 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループ 12. Amazon EC2 コンソールから、書き留めたボリューム ID を持つボリュームを選択して、[Actions] を選択し、[Detach Volume] を選択します。ボリュームの状態が available になるまで待ちます ([Refresh] アイコンを選択しなければならない場合があります)。 13. ボリュームを選択したまま、[Actions]、[Attach Volume] の順に選択します。元のインスタンスの インスタンス ID を選択し、元のルートデバイスのアタッチについて先ほど記録したデバイス名 (/dev/sda1 や /dev/xvda など) を指定してから、[Yes, Attach] を選択します。 Warning 元のアタッチと同じデバイス名を指定しない場合、元のインスタンスを起動することは できません。Amazon EC2 では、ルートデバイスボリュームが sda1 または /dev/xvda であると想定されるためです。 14. 元のインスタンスを選択し、[Actions] を選択して [Instance State] を選択した後、[Start] を選択し ます。インスタンスが running 状態になったら、新しいキーペアのプライベートキーファイル を使用して、そのインスタンスに接続できます。 Note 新しいキーペアおよび対応するプライベートキーファイルの名前が元のキーペアの名前 と異なる場合は、インスタンスに接続するときに新しいプライベートキーファイルの名 前を必ず指定します。 15. [EC2-Classic] 停止する前に元のインスタンスに Elastic IP アドレスが関連付けられていた場合 は、以下のようにして、このアドレスをインスタンスに再度関連付ける必要があります。 a. ナビゲーションペインで [Elastic IPs] を選択します。 b. c. この手順の最初に書き留めた Elastic IP アドレスを選択します。 [Actions] を選択し、次に [Associate address] を選択します。 d. 元のインスタンスの ID を選択し、[Associate] を選択します。 16. (オプション) 一時インスタンスをそれ以上使用しない場合は、終了できます。一時インスタンス を選択して [Actions] を選択し、[Instance State] を選択して [Terminate] を選択します。 Linux インスタンスの Amazon EC2 セキュリティ グループ セキュリティグループは、1 つ以上のインスタンスのトラフィックを制御する仮想ファイアウォール として機能します。インスタンスを起動するときに、1 つ以上のセキュリティグループとインスタン スを関連付けます。各セキュリティグループに対してルールを追加し、関連付けられたインスタン スに対するトラフィックを許可します。セキュリティグループルールはいつでも変更できます。新し いルールは、セキュリティグループに関連付けられているインスタンスすべてに自動的に適用されま す。インスタンスに到達できるトラフィックを許可するかどうかの判断では、インスタンスに関連付 けられているすべてのセキュリティグループのすべてのルールが評価されます。 Windows インスタンスへのトラフィックを許可する必要がある場合は、Windows インスタンスの Amazon EC2 ユーザーガイド の「Windows インスタンスの Amazon EC2 セキュリティグループ」を 参照してください。 トピック • EC2-Classic 用セキュリティグループ (p. 580) • EC2-VPC 用セキュリティグループ (p. 580) • セキュリティグループのルール (p. 580) • デフォルトのセキュリティグループ (p. 582) • カスタムのセキュリティグループ (p. 583) • セキュリティグループを操作する (p. 583) 579 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic 用セキュリティグループ • セキュリティグループのルールのリファレンス (p. 587) お客様の要件がセキュリティグループでは満たされない場合は、セキュリティグループを使用した上 で、どのインスタンスでも、お客様独自のファイアウォールを維持できます。 アカウントは、いつ作成したかにより、一部のリージョンで EC2-Classic をサポートしている場合が あります。詳細については、「サポートされているプラットフォーム (p. 649)」を参照してくださ い。EC2-Classic のセキュリティグループは EC2-VPC のセキュリティグループとは異なります。 EC2-Classic 用セキュリティグループ EC2-Classic を使用している場合は、EC2-Classic 用に作成したセキュリティグループを使用する 必要があります。EC2-Classic でインスタンスを起動する場合は、インスタンスと同じリージョン のセキュリティグループを指定する必要があります。EC2-Classic でインスタンスを起動する場合 は、VPC 用に作成したセキュリティグループは指定できません。 EC2-Classic でインスタンスを起動した後でセキュリティグループを変更することはできません。た だし、セキュリティグループルールの追加または削除は可能です。これらの変更は、セキュリティグ ループに関連付けられているすべてのインスタンスに自動的に適用されます。 EC2-Classic では、アカウントごとに各リージョンに最大 500 のセキュリティグループを持つことが できます。1 つのインスタンスを最大 500 のセキュリティグループと関連付けることができ、また 1 つのセキュリティグループには最大 100 のルールを追加できます。 EC2-VPC 用セキュリティグループ EC2-VPC を使用している場合は、VPC 用に作成したセキュリティグループを使用する必要がありま す。VPC でインスタンスを起動する場合は、その VPC 用のセキュリティグループを指定する必要が あります。VPC でインスタンスを起動する場合は、EC2-Classic 用に作成したセキュリティグループ は指定できません。セキュリティグループを識別する EC2-VPC のセキュリティグループには追加の 機能がありますが、この機能は EC2-Classic のセキュリティグループではサポートされていません。 詳細については、Amazon VPC ユーザーガイドの「EC2-Classic と EC2-VPC のセキュリティグルー プの違い」を参照してください。 VPC でインスタンスを起動した後、そのセキュリティグループを変更することができます。セキュリ ティグループはネットワークインターフェイスに関連付けられます。 インスタンスのセキュリティグ ループの変更は、プライマリネットワークインターフェイス (eth0) に関連付けられるセキュリティグ ループを変更することになります。 詳細については、Amazon VPC ユーザーガイド の Changing an Instance's Security Groups を参照してください。あらゆるネットワークインターフェイスに関連付け られているセキュリティグループも変更できます。 詳細については、「セキュリティグループの変 更 (p. 710)」を参照してください。 EC2-VPC のセキュリティグループには異なる制限があります。詳細については、Amazon VPC ユー ザーガイド の「Amazon VPC 制限」を参照してください。EC2-VPC のセキュリティグループ制限に 対して、EC2-Classic のセキュリティグループ数はカウントされません。 VPC は IPv6 に対して有効にできます。詳細については、Amazon VPC ユーザーガイドの「VPC の IP アドレス指定」を参照してください。VPC セキュリティグループにルールを追加して、インバウン ドとアウトバウンド IPv6 トラフィックを有効にできます。 セキュリティグループのルール セキュリティグループのルールは、セキュリティグループに関連付けられたインスタンスに到達する ことを許可されるインバウンドトラフィックと、外に向かうことを許可されるアウトバウンドトラ フィックを制御します。 セキュリティグループのルールの特徴を次に示します。 • デフォルトで、セキュリティグループはすべてのアウトバウンドトラフィックを許可します。 580 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループのルール • EC2-Classic セキュリティグループのアウトバウンドルールは変更できません。 • セキュリティグループのルールは常にパーミッシブです。アクセスを拒否するルールを作成するこ とはできません。 • セキュリティグループはステートフルです。インスタンスからリクエストを送信する場合、そのリ クエストのレスポンストラフィックは、インバウンドセキュリティグループルールにかかわらず、 流れることができます。つまり、VPC セキュリティグループの場合、アウトバウンドルールにかか わらず、許可されたインバウンドトラフィックは流れることができます。詳細については、「接続 追跡 (p. 582)」を参照してください。 • ルールの追加と削除は随時行うことができます。変更は、短時間が経過した後、セキュリティグ ループに関連付けられたインスタンスに自動的に適用されます。 Note 一部のルール変更の影響は、トラフィックの追跡方法によって異なる場合があります。詳 細については、「接続追跡 (p. 582)」を参照してください。 • 複数のセキュリティグループをインスタンスに関連付けると、各セキュリティグループのルールが 効率的に集約され、1 つのルールセットが作成されます。このルールセットを使用して、アクセス を許可するかどうかを判断します。 Note 複数のセキュリティグループを 1 つのインスタンスに割り当てることができるため、イン スタンスには数百単位のルールを適用できます。結果として、インスタンスにアクセスす るときに問題が発生する可能性があります。そのため、ルールは可能な限り要約すること をお勧めします。 ルールごとに、以下の点について指定します。 • プロトコル: 許可するプロトコル。最も一般的なプロトコルは、6 (TCP) 17 (UDP)、および 1 (ICMP) です。 • ポートの範囲: TCP、UDP、またはカスタムプロトコルの場合、許可するポートの範囲。 • ICMP タイプおよびコード: ICMP の場合、ICMP タイプおよびコードです。 • 送信元または送信先: トラフィックの送信元 (インバウンドルール) または送信先 (アウトバウンド ルール)。これらのオプションの 1 つを指定します。 • 個別の IPv4 アドレス。IPv4 アドレスの後に /32 プレフィックスを使用する必要があります (例: 203.0.113.1/32)。 • (VPC のみ) 個別の IPv6 アドレス。長さ /128 のプレフィックスを使用する必要があります (例: 2001:db8:1234:1a00::123/128)。 • CIDR ブロック表記での IPv4 アドレスの範囲 (例: 203.0.113.0/24)。 • (VPC のみ) CIDR ブロック表記での IPv6 アドレスの範囲 (例: 2001:db8:1234:1a00::/64)。 • 別のセキュリティグループ。これにより、指定セキュリティグループに関連付けられたインスタ ンスから、このセキュリティグループに関連付けられたインスタンスへのアクセスが許可されま す。その際、送信元セキュリティグループからこのセキュリティグループにルールが追加される ことはありません。以下のセキュリティグループの 1 つを指定できます: • 現在のセキュリティグループ。 • EC2-Classic: 同じリージョンの EC2-Classic の異なるセキュリティグループ. • EC2-Classic: 同じリージョンの別の AWS アカウントのセキュリティグループ (AWS アカウン ト ID をプレフィックスとして追加。たとえば、111122223333/sg-edcd9784)。 • EC2-VPC: 同じ VPC または VPC ピア接続のピア VPC の別のセキュリティグループ。 ルールの送信元または送信先としてセキュリティグループを指定する場合、ルールはセキュリティグ ループと関連付けられるすべてのインスタンスに影響します。着信トラフィックは、ソースセキュリ ティグループに関連付けられたインスタンスのプライベート IP アドレスに基づいて許可されます (パ 581 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド デフォルトのセキュリティグループ ブリック IP アドレスまたは Elastic IP アドレスは考慮されません)。IP アドレスについては、Amazon EC2 インスタンスの IP アドレッシング (p. 672) を参照してください。セキュリティグループルー ルでピア VPC のセキュリティグループを参照していて、参照先のセキュリティグループまたは VPC ピア接続を削除すると、ルールは古いとマークされます。詳細については、Amazon VPC Peering Guide の「古いセキュリティグループルールの操作」を参照してください。 特定のポートに複数のルールがある場合、最も許容度の大きいルールを適用します。たとえば、IP ア ドレス 203.0.113.1 からの TCP ポート 22 (SSH) に対するアクセスを許可するルールがあり、全員 からの TCP ポート 22 に対するアクセスを許可する別のルールがある場合、全員が TCP ポート 22 に アクセスできます。 接続追跡 セキュリティグループは、接続追跡を使用してインスタンスを出入りするトラフィックに関する情報 を追跡します。ルールはトラフィックの接続の状態に基づいて適用され、トラフィックを許可するか 拒否するかが判断されます。これによって、セキュリティグループはステートフルになり、セキュリ ティグループのアウトバウンドルールにかかわらず、インバウンドトラフィックへの応答がインスタ ンスから外に流れることが許されます。逆も同じです。たとえば、自宅のコンピュータからインスタ ンスへの ICMP ping コマンドを開始した場合、セキュリティグループのインバウンドルールが ICMP トラフィックを許可している場合は接続に関する情報 (ポート情報など) が追跡されます。ping コマ ンドに対するインスタンスからのレスポンストラフィックは、新しいリクエストではなく確立済みの 接続として追跡され、セキュリティグループのアウトバウンドルールがアウトバウンド ICMP トラ フィックを制限している場合でも、インタンスから外に流れることが許されます。 すべてのトラフィックフローが追跡されるわけではありません。セキュリティグループのルールが、 すべてのトラフィックについて TCP または UDP フローを許可していて、他の方向で対応するルール がある場合、そのトラフィックフローは追跡されません。そのため、応答トラフィックは追跡情報に 基づくのではなく、応答トラフィックを許可するインバウンドまたはアウトバウンドのルールに基づ いて流れることができます。 追跡されている既存のトラフィックフローは、そのフローを有効にするセキュリティグループルール を削除しても中断されないことがあります。その代わり、ユーザーまたは他のホストによって少な くとも数分間 (または確立された TCP 接続の場合は最大 5 日間) 停止されると、フローは中断されま す。UDP の場合、このためにフローのリモート側でのアクションを終了する必要があることがありま す。追跡されていないトラフィックフローは、そのフローを有効にするルールが削除または変更され るとすぐに中断されます。たとえば、インスタンスへのすべてのインバウンド SSH トラフィックを許 可するルールを削除すると、そのインスタンスへの既存の SSH 接続がすぐに削除されます。 TCP、UDP、または ICMP 以外のプロトコルの場合は、IP アドレスとプロトコル番号のみが追跡され ます。インスタンスが別のホスト (ホスト B) にトラフィックを送信し、ホスト B が元のリクエストま たは応答の 600 秒以内に別のリクエストで同じタイプのトラフィックをインスタンスに対して開始す る場合、インスタンスはインバウンドセキュリティグループルールとは無関係に、そのトラフィック を受け入れます。これは、トラフィックがレスポンストラフィックと見なされるためです。 VPC セキュリティグループの場合、セキュリティグループルールを削除するとそのトラフィックが すぐに中断されるようにするか、すべてのインバウンドトラフィックがファイアウォールのルールに 従うようにするには、サブネットにネットワーク ACL を使用できます。ネットワーク ACL はステー トレスであるため、自動的にレスポンストラフィックを許可しません。詳しくは、Amazon VPC ユー ザーガイド の「ネットワーク ACL」を参照してください。 デフォルトのセキュリティグループ AWS アカウントには、VPC および EC2-Classic のリージョンごとにデフォルトのセキュリティグ ループが自動的に設定されます。インスタンスを起動するときにセキュリティグループを指定しない と、そのインスタンスはデフォルトのセキュリティグループに自動的に関連付けられます。 デフォルトのセキュリティグループには default と名前が付けられ、AWS によって ID が割り当て られます。デフォルトのセキュリティグループごとのデフォルトルールを次に示します。 582 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド カスタムのセキュリティグループ • デフォルトのセキュリティグループに関連付けられた他のインスタンスからのすべてのインバウン ドトラフィックを許可します (セキュリティグループはインバウンドルール内の送信元セキュリティ グループとしてそれ自体を指定します)。 • インスタンスからのすべてのアウトバウンドトラフィックが許可されます。 デフォルトのセキュリティグループのインバウンドルールは追加または削除できます。デフォルトの VPC セキュリティグループのアウトバウンドルールは追加または削除できます。 デフォルトのセキュリティグループを削除することはできません。EC2-Classic のデフォルトセキュ リティグループを削除しようとした場合、Client.InvalidGroup.Reserved: The security group 'default' is reserved エラーが発生します。VPC のデフォルトセキュリティグループ を削除しようとした場合、Client.CannotDelete: the specified group: "sg-51530134" name: "default" cannot be deleted by a user エラーが発生します。 カスタムのセキュリティグループ インスタンスでデフォルトのセキュリティグループを使用することを望まない場合、独自のセキュリ ティグループを作成して、インスタンスの起動時にそれらを指定することができます。複数のセキュ リティグループを作成して、インスタンスが果たすさまざまな役割 (たとえば、Web サーバーまたは データベースサーバー) を反映させることができます。 セキュリティグループを作成する場合、名前と説明を指定する必要があります。セキュリティグルー プには、255 文字以下の名前と説明を指定できます。また、次の特徴の制限があります。 • EC2-Classic: ASCII 文字 • EC2-VPC: a-z、A-Z、0-9、スペース、およびピリオド (.) _-:/()#,@[]+=&;{}!$* 作成するセキュリティグループのデフォルトルールを次に示します。 • インバウンドトラフィックを許可しません • すべてのアウトバウンドトラフィックを許可します セキュリティグループを作成したら、関連するインスタンスに到達できる着信トラフィックのタイプ を反映するように着信ルールを変更できます。EC2-VPC では、アウトバウンドルールも変更できま す。 セキュリティグループに追加できるルールのタイプの詳細については、「セキュリティグループの ルールのリファレンス (p. 587)」を参照してください。 セキュリティグループを操作する Amazon EC2 コンソールを使用して、セキュリティグループとセキュリティグループルールを作成、 表示、更新、削除できます。 目次 • セキュリティグループを作成する (p. 584) • セキュリティグループについて説明する (p. 584) • セキュリティグループへのルールの追加 (p. 585) • セキュリティグループからのルールの削除 (p. 586) • セキュリティグループの削除 (p. 586) • API とコマンドの概要 (p. 586) 583 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループを操作する セキュリティグループを作成する Amazon EC2 コンソールを使いカスタムセキュリティグループを作成することも可能です。EC2-VPC の場合、セキュリティグループを作成する VPC を指定する必要があります。 新しいセキュリティグループを作成するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Security Groups] を選択します。 3. [Create Security Group] を選択します。 4. セキュリティグループの名前と説明を指定します。 5. (EC2-Classic のみ) EC2-Classic で使用するセキュリティグループを作成するには、[No VPC] を 選択します。 (EC2-VPC) [VPC] の場合、VPC ID を選択して、その VPC 用にセキュリティグループを作成しま す。 6. ルールの追加を開始するか、[Create] を選択して、セキュリティグループを作成できます (ルー ルは後で追加できます)。ルールの追加の詳細については、セキュリティグループへのルールの追 加 (p. 585) を参照してください。 Amazon EC2 コンソールでは、既存のセキュリティグループから新しいセキュリティグループにルー ルをコピーできます。 セキュリティグループをコピーするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Security Groups] を選択します。 3. コピーするセキュリティグループを選択します。[Actions] を選択し、[Copy to new] を選択しま す。 4. [Create Security Group] ダイアログが開き、既存のセキュリティグループのルールが自動入力さ れます。新しいセキュリティグループの名前と説明を指定します。[VPC] リストで、[No VPC] を 選択して、EC2-Classic のセキュリティグループを作成します。その VPC のセキュリティグルー プを作成するには、VPC ID を選択します。終了したら、[Create ] を選択します。 インスタンスを起動する際に、インスタンスにセキュリティグループを割り当てることができます。 ルールを追加または削除すると、それらの変更は、そのセキュリティグループを割り当てたすべての インスタンスに自動的に適用されます。 EC2-Classic でインスタンスを起動した後でセキュリティグループを変更することはできませ ん。VPC でインスタンスを起動した後、そのセキュリティグループを変更することができます。詳細 については、Amazon VPC ユーザーガイド の Changing an Instance's Security Groups を参照してく ださい。 セキュリティグループについて説明する EC2-Classic のセキュリティグループについて説明するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Security Groups] を選択します。 3. フィルタリストから [Network Platforms] を選択し、[EC2-Classic] を選択します。 4. セキュリティグループを選択します。[Description] タブに、全般的な情報が表示されます。 [Inbound] タブにはインバウンドルールが表示されます。 584 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループを操作する EC2-VPC のセキュリティグループについて説明するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Security Groups] を選択します。 3. フィルタリストから [Network Platforms] を選択し、[EC2-VPC] を選択します。 4. セキュリティグループを選択します。[Description] タブには一般情報が、[Inbound] タブにはイン バウンドルールが、[Outbound] タブにはアウトバウンドルールが表示されます。 セキュリティグループへのルールの追加 ルールをセキュリティグループに追加すると、セキュリティグループに関連付けられているすべての インスタンスに新しいルールが自動的に適用されます。 特定のタイプのアクセスのためのセキュリティグループルールの選択の詳細については、「セキュリ ティグループのルールのリファレンス (p. 587)」を参照してください。 セキュリティグループにルールを追加するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Security Groups] を選択してセキュリティグループを選びます。 3. [Inbound ] タブで、[Edit] を選択します。 4. ダイアログで、[Add Rule] を選択し、以下の作業を行います。 • [Type] で、プロトコルを選択します。 • カスタム TCP または UDP プロトコルを選択した場合は、[Port Range] でポートの範囲を指定 します。 • カスタム ICMP プロトコルを選択する場合は、[Protocol] から ICMP タイプ名を選択し、該当す る場合は、[Port Range] からコード名を選択します。 • [Source] で、以下のいずれかのオプションを選択します。 • [Custom]: 表示されているフィールドで、CIDR 表記の IP アドレス、CIDR ブロック、または 他のセキュリティグループを指定する必要があります。 • [Anywhere]: 自動的に 0.0.0.0/0 IPv4 CIDR ブロックを追加します。このオプションでは、 指定されたタイプのすべてのトラフィックがインスタンスに到達できます。これはテスト環 境で短時間なら許容できますが、実稼働環境で行うのは安全ではありません。実稼働環境で は、特定の IP アドレスまたは特定のアドレス範囲にのみ、インスタンスへのアクセスを限定 します。 Note セキュリティグループが、IPv6 に対して有効な VPC にある場合、[Anywhere] オプションによって 2 つのルールが作成されます。1 つは IPv4 トラフィック (0.0.0.0/0) 用、もう 1 つは IPv6 トラフィック (::/0) 用です。 • [My IP]: ローカルコンピュータのパブリック IPv4 アドレスを自動的に追加します。 追加できるルールのタイプの詳細については、「セキュリティグループのルールのリファレン ス (p. 587)」を参照してください。 5. [Save] を選択します。 6. VPC セキュリティグループの場合、アウトバウンドルールも指定できます。[Outbound] タブで [Edit]、[Add Rule] を選択し、以下の操作を実行します。 • [Type] で、プロトコルを選択します。 • カスタム TCP または UDP プロトコルを選択した場合は、[Port Range] でポートの範囲を指定 します。 585 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループを操作する • カスタム ICMP プロトコルを選択する場合は、[Protocol] から ICMP タイプ名を選択し、該当す る場合は、[Port Range] からコード名を選択します。 • [Destination] で、以下のいずれかのオプションを選択します。 • [Custom]: 表示されているフィールドで、CIDR 表記の IP アドレス、CIDR ブロック、または 他のセキュリティグループを指定する必要があります。 • [Anywhere]: 自動的に 0.0.0.0/0 IPv4 CIDR ブロックを追加します。このオプションでは、 すべての IP アドレスへのアウトバウンドトラフィックが有効になります。 Note セキュリティグループが、IPv6 に対して有効な VPC にある場合、[Anywhere] オプションによって 2 つのルールが作成されます。1 つは IPv4 トラフィック (0.0.0.0/0) 用、もう 1 つは IPv6 トラフィック (::/0) 用です。 • [My IP]: ローカルコンピュータの IP アドレスを自動的に追加します。 7. [Save] を選択します。 セキュリティグループからのルールの削除 セキュリティグループからルールを削除すると、その変更内容が自動的にセキュリティグループに関 連付けられているインスタンスに適用されます。 セキュリティグループルールを削除するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Security Groups] を選択します。 3. セキュリティグループを選択します。 4. [Inbound] タブ (インバウンドルールの場合) または [Outbound] タブ (アウトバウンドルールの場 合) で、[Edit] を選択します。各ルールの横にある [Delete] (クロスアイコン) を選択します。 5. [Save] を選択します。 セキュリティグループの削除 インスタンスに関連付けられているセキュリティグループを削除することはできません。デフォルト セキュリティグループを削除することはできません。同じ VPC の他のセキュリティグループのルール によって参照されているセキュリティグループは削除できません。セキュリティグループが独自のい ずれかのルールで参照されている場合は、セキュリティグループを削除する前に、まずルールを削除 する必要があります。 セキュリティグループを削除するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Security Groups] を選択します。 3. セキュリティグループを選択して、[Actions]、[Delete Security Group] を選択します。 4. [Yes, Delete] を選択します。 API とコマンドの概要 このページで説明しているタスクは、コマンドラインまたは API を使用して実行できます。コマンド ラインインターフェイスの詳細および利用できる API の一覧については、「Amazon EC2 へのアクセ ス (p. 3)」を参照してください。 586 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループのルールのリファレンス コマンドラインツールを使用する際に、デフォルト以外の VPC 用のセキュリティグループを指定する 場合、セキュリティグループ名ではなくセキュリティグループ ID を使用して、セキュリティグループ を識別する必要があります。 セキュリティグループの作成 • create-security-group (AWS CLI) • New-EC2SecurityGroup (AWS Tools for Windows PowerShell) 1 つ以上の Ingress ルールをセキュリティグループに追加する • authorize-security-group-ingress (AWS CLI) • Grant-EC2SecurityGroupIngress (AWS Tools for Windows PowerShell) [EC2-VPC] 1 つ以上の Egress ルールをセキュリティグループに追加する • authorize-security-group-egress (AWS CLI) • Grant-EC2SecurityGroupIngress (AWS Tools for Windows PowerShell) 1 つまたは複数のセキュリティグループについて説明する • describe-security-groups (AWS CLI) • Get-EC2SecurityGroup (AWS Tools for Windows PowerShell) [EC2-VPC] インスタンスのセキュリティグループを変更する • modify-instance-attribute (AWS CLI) • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell) セキュリティグループから 1 つ以上の Ingress ルールを削除する • revoke-security-group-ingress (AWS CLI) • Revoke-EC2SecurityGroupIngress (AWS Tools for Windows PowerShell) [EC2-VPC] 1 つ以上の Egress ルールをセキュリティグループから削除する • revoke-security-group-egress (AWS CLI) • Revoke-EC2SecurityGroupEgress (AWS Tools for Windows PowerShell) セキュリティグループを削除する • delete-security-group (AWS CLI) • Remove-EC2SecurityGroup (AWS Tools for Windows PowerShell) セキュリティグループのルールのリファレンス セキュリティグループを作成し、そのセキュリティグループに関連付けられたインスタンスのロール を反映したルールを追加できます。たとえば、ウェブサーバーとして設定されたインスタンスは、イ ンバウンド HTTP および HTTPS アクセスを許可するセキュリティグループルールを必要とし、デー タベースインスタンスは、MySQL 用のポート 3306 経由のアクセスなどのタイプのデータベースアク セスを許可するルールを必要とするなどです。 587 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループのルールのリファレンス 以下は、特定の種類のアクセスのセキュリティグループに追加できるルールの種類の例です。 トピック • ウェブサーバー (p. 588) • データベースサーバー (p. 588) • 同じグループ内の他のインスタンスからのアクセス (p. 590) • ローカルコンピュータからのアクセス (p. 590) • パス MTU 検出 (p. 591) • インスタンスへの Ping の実行 (p. 591) • DNS サーバー (p. 592) • Amazon EFS ファイルシステム (p. 592) • Elastic Load Balancing (p. 593) ウェブサーバー 次のインバウンドルールでは、任意の IP アドレスからの HTTP および HTTPS アクセスを許可し ます。VPC が IPv6 に対して有効になっている場合、IPv6 アドレスからインバウンド HTTP および HTTPS トラフィックを制御するルールを追加できます。 プロトコルのタイ プ プロトコル番号 ポート 送信元 IP コメント TCP 6 80 (HTTP) 0.0.0.0/0 任意の IPv4 アド レスからのインバ ウンド HTTP アク セスを許可します TCP 6 443 (HTTPS) 0.0.0.0/0 任意の IPv4 アド レスからのインバ ウンド HTTPS ア クセスを許可しま す TCP 6 80 (HTTP) ::/0 (VPC のみ) 任意 の IPv6 アドレス からのインバウン ド HTTP アクセス を許可します TCP 6 443 (HTTPS) ::/0 (VPC のみ)、任意 の IPv6 アドレス からのインバウン ド HTTPS アクセ スを許可します データベースサーバー 次のインバウンドルールは、インスタンスで実行中のデータベースのタイプに応じて、データベー スアクセス用に追加するルールの例です。Amazon RDS インスタンスの詳細については、Amazon Relational Database Service ユーザーガイドを参照してください。 ソース IP には、次のいずれかを指定します。 • ローカルネットワークの特定の IP アドレスまたは IP アドレスの範囲 588 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループのルールのリファレンス • データベースにアクセスするインスタンスのグループのセキュリティグループ ID プロトコルのタイプ プロトコル番号 ポート コメント TCP 6 1433 (MS SQL) Amazon RDS インスタ ンス上など、Microsoft SQL Server データベー スにアクセスするデ フォルトのポート TCP 6 3306 (MYSQL/Aurora) Amazon RDS インスタ ンス上など、MySQL または Aurora データ ベースにアクセスする デフォルトのポート TCP 6 5439 (Redshift) Amazon Redshift クラ スターデータベースに アクセスするデフォル トのポート。 TCP 6 5432 (PostgreSQL) Amazon RDS イ ンスタンス上な ど、PostgreSQL デー タベースにアクセスす るデフォルトのポート TCP 6 1521 (Oracle) Amazon RDS インス タンス上など、Oracle データベースにアク セスするデフォルトの ポート (VPC のみ) オプションで、データベースサーバーからのアウトバウンドトラフィックを制限できま す。たとえば、ソフトウェアの更新のためにインターネットへのアクセスを許可するが、その他すべ ての種類のトラフィックを制限することができます。最初に、すべてのアウトバンドトラフィックを 許可するデフォルトのアウトバウンドルールを削除する必要があります。 プロトコルのタイ プ プロトコル番号 ポート 送信先 IP コメント TCP 6 80 (HTTP) 0.0.0.0/0 任意の IPv4 アド レスへのアウトバ ウンド HTTP アク セスを許可します TCP 6 443 (HTTPS) 0.0.0.0/0 任意の IPv4 アド レスへのアウトバ ウンド HTTPS ア クセスを許可しま す 589 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループのルールのリファレンス プロトコルのタイ プ プロトコル番号 ポート 送信先 IP コメント TCP 6 80 (HTTP) ::/0 (IPv6 が有効な VPC のみ) 任意の IPv6 アドレスへ のアウトバウンド HTTP アクセスを 許可します TCP 6 443 (HTTPS) ::/0 (IPv6 が有効な VPC のみ)、任意 の IPv6 アドレス へのアウトバウン ド HTTPS アクセ スを許可します 同じグループ内の他のインスタンスからのアクセス 同じセキュリティグループに関連付けられたインスタンスが相互に通信できるようにするには、その ためのルールを明示的に追加する必要があります。 次の表は、関連付けられたインスタンスの相互通信を可能にする VPC セキュリティグループのインバ ウンドルールを示します。このルールでは、すべてのタイプのトラフィックが許可されます。 プロトコルのタイプ プロトコル番号 ポート 送信元 IP -1 (すべて) -1 (すべて) -1 (すべて) セキュリティグループ の ID 次の表は、関連付けられたインスタンスの相互通信を可能にする EC2-Classic セキュリティグルー プのインバウンドルールを示します。このルールでは、すべてのタイプのトラフィックが許可されま す。 プロトコルのタイプ プロトコル番号 ポート 送信元 IP ICMP 1 -1 (すべて) セキュリティグループ の ID TCP 6 0~65535 (すべて) セキュリティグループ の ID UDP 17 0~65535 (すべて) セキュリティグループ の ID ローカルコンピュータからのアクセス インスタンスに接続するには、セキュリティグループに SSH アクセス (Linux インスタンスの場合) ま たは RDP アクセス (Windows インスタンスの場合) を許可するインバウンドルールが必要です。 プロトコルのタイプ プロトコル番号 ポート 送信元 IP TCP 6 22 (SSH) ローカルコンピュータ のパブリック IPv4 ア ドレス、またはローカ 590 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループのルールのリファレンス プロトコルのタイプ プロトコル番号 ポート 送信元 IP ルネットワークの IP アドレスの範囲。VPC が IPv6 に対して有効 で、インスタンスに IPv6 アドレスがある 場合、IPv6 アドレスま たは範囲を入力できま す。 TCP 6 3389 (RDP) ローカルコンピュータ のパブリック IPv4 ア ドレス、またはローカ ルネットワークの IP アドレスの範囲。VPC が IPv6 に対して有効 で、インスタンスに IPv6 アドレスがある 場合、IPv6 アドレスま たは範囲を入力できま す。 パス MTU 検出 パス MTU は、送信側ホストと受信側ホスト間のパスでサポートされている最大のパケットサイズで す。ホストが受信側ホストの MTU よりも大きなパケット、またはデバイスの MTU よりも大きなパ ケットをパスに沿って送信する場合、受信側ホストは次の ICMP メッセージ Destination Unreachable: Fragmentation Needed and Don't Fragment was Set を返します。 インスタンスがこのメッセージを受信し、パケットが削除されないようにするには、インバウンドセ キュリティグループのルールに ICMP ルールを追加する必要があります。 プロトコルのタイ プ プロトコル番号 ICMP タイプ ICMP コード ICMP 1 3 (送信先に到達で 4 (フラグメント きません) 化が必要で、"フ ラグメント化しな い" が設定されま した) 送信元 IP インスタンスと通 信するホストの IP アドレス インスタンスへの Ping の実行 ping コマンドは、ICMP トラフィックの一種です。インスタンスに ping を実行するには、次のイン バウンド ICMP ルールを追加する必要があります。 プロトコルのタイ プ プロトコル番号 ICMP タイプ ICMP コード 送信元 IP ICMP 1 8 (Echo) 該当なし ローカルコン ピュータのパブ リック IPv4 アド 591 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループのルールのリファレンス プロトコルのタイ プ プロトコル番号 ICMP タイプ ICMP コード 送信元 IP レス、またはロー カルネットワーク の IPv4 アドレス の範囲 ping6 コマンドを使用してインスタンスの IPv6 アドレスに ping を実行するには、次のインバウンド ICMPv6 ルールを追加する必要があります。 プロトコルのタイ プ プロトコル番号 ICMP タイプ ICMP コード 送信元 IP ICMPv6 58 128 (Echo) 0 コンピュータの IPv6 アドレス、 またはローカル ネットワークの IPv6 アドレスの 範囲 DNS サーバー DNS サーバーとして EC2 インスタンスをセットアップした場合、TCP および UDP のトラフィック がポート 53 経由で DNS サーバーに到達できるようにする必要があります。 ソース IP には、次のいずれかを指定します。 • ネットワークの特定の IP アドレスまたは IP アドレスの範囲 • ネットワークで、DNS サーバーにアクセスする必要があるインスタンスのグループのセキュリティ グループ ID プロトコルのタイプ プロトコル番号 ポート TCP 6 53 UDP 17 53 Amazon EFS ファイルシステム Amazon EC2 インスタンスから Amazon EFS ファイルシステムをマウントし、アクセスする場合、セ キュリティグループのルールでは NFS プロトコル経由のアクセスを許可する必要があります。 プロトコルのタイ プ プロトコル番号 ポート 送信元 IP コメント TCP 6 2049 (NFS) セキュリティグ ループの ID. このセキュリティ グループに関連付 けられたリソー ス (マウントター ゲットを含む) か らのインバウンド NFS アクセスを 許可します。 592 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド セキュリティグループのルールのリファレンス プロトコルのタイ プ プロトコル番号 ポート 送信元 IP コメント TCP 6 22 (SSH) ローカルコン ピュータの IP ア ドレス範囲、また はネットワークの IP アドレスの範 囲。 ローカルコン ピュータからのイ ンバウンド SSH アクセスを許可し ます。 Elastic Load Balancing ロードバランサーを使用している場合、ロードバランサーに関連付けられたセキュリティグループに は、インスタンスやターゲットとの通信を許可するルールが必要です。 インバウンド プロトコルのタイ プ プロトコル番号 ポート 送信元 IP 注 TCP 6 リスナーポート インターネット 向けロードバラ ンサーの場合: 0.0.0.0/0 (すべて の IPv4 アドレス) ロードバランサー のリスナーポート でインバウンドト ラフィックを許可 します。 内部ロードバラン サーの場合: VPC の IPv4 CIDR ブ ロック アウトバウンド プロトコルのタイ プ プロトコル番号 ポート 送信先 IP 注 TCP 6 インスタンスリス ナーポート インスタンスセ キュリティグルー プの ID インスタンスリス ナーポートでイン スタンスへのアウ トバウンドトラ フィックを許可し ます。 TCP 6 ヘルスチェック ポート インスタンスセ キュリティグルー プの ID ヘルスチェック ポートでインスタ ンスへのアウトバ ウンドトラフィッ クを許可します。 インスタンスのセキュリティグループルールは、リスナーポートとヘルスチェックポートの両方でイ ンスタンスと通信することをロードバランサーに許可する必要があります。 インバウンド プロトコルのタイ プ プロトコル番号 ポート 593 送信元 IP 注 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド アクセスの制御 TCP 6 インスタンスリス ナーポート ロードバランサー のセキュリティグ ループの ID インスタンスリス ナーポートでロー ドバランサーから のトラフィックを 許可します。 TCP 6 ヘルスチェック ポート ロードバランサー のセキュリティグ ループの ID ヘルスチェック ポートでロードバ ランサーからのト ラフィックを許可 します。 詳細については、Classic Load Balancer ガイド の「Classic Load Balancer のセキュリティグループ を設定する」と Application Load Balancer ガイド の「Application Load Balancer のセキュリティグ ループ」を参照してください。 Amazon EC2 のリソースに対するアクセスの制御 セキュリティ認証情報により、AWS のサービスに対してお客様の身分が証明され、Amazon EC2 リ ソースなどの AWS リソースを無制限に使用できる許可が与えられます。Amazon EC2 および AWS Identity and Access Management (IAM) の機能を使用して、その他のユーザー、サービス、およびア プリケーションがお客様の Amazon EC2 のリソースを使用できるようにします。その際、お客様のセ キュリティ認証情報は共有されません。他のユーザーが AWS アカウント内のリソースをどのように 使用するかを制御するには IAM を、Amazon EC2 インスタンスへのアクセスを制御するにはセキュリ ティグループを使用できます。Amazon EC2 のリソースの完全使用または制限付き使用のどちらを許 可するか選択できます。 目次 • インスタンスへのネットワークアクセス (p. 594) • Amazon EC2 のアクセス許可属性 (p. 594) • IAM と Amazon EC2 (p. 595) • Amazon EC2 の IAM ポリシー (p. 596) • Amazon EC2 の IAM ロール (p. 634) • Linux インスタンス用の受信トラフィックの認可 (p. 640) インスタンスへのネットワークアクセス セキュリティグループは、1 つ以上のインスタンスに到達できるトラフィックを制御するファイア ウォールとして機能します。インスタンスを起動するときに、そのインスタンスに 1 つまたは複数の セキュリティグループを割り当てることができます。セキュリティグループのそれぞれに、そのイン スタンスへのトラフィックを制御するルールを追加できます。セキュリティグループルールはいつで も変更できます。新しいルールは、そのセキュリティグループが割り当てられているインスタンスす べてに自動的に適用されます。 詳細については、「Linux インスタンス用の受信トラフィックの認可 (p. 640)」を参照してくださ い。 Amazon EC2 のアクセス許可属性 お客様の組織には複数の AWS アカウントがある場合があります。Amazon EC2 では、Amazon Machine Image (AMI) および Amazon EBS スナップショットを使用できる追加の AWS アカウントを 594 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM と Amazon EC2 指定できます。このアクセス許可は AWS アカウントレベルでのみ有効です。特定の AWS アカウン ト内の特定ユーザーのアクセス許可を制限することはできません。指定した AWS アカウントのすべ てのユーザーが、AMI またはスナップショットを使用できます。 AMI ごとに LaunchPermission 属性があり、AMI にアクセスできる AWS アカウントを制御しま す。詳細については、「AMI を一般公開する (p. 85)」を参照してください。 Amazon EBS スナップショットごとに createVolumePermission 属性があり、スナップショット を使用できる AWS アカウントを制御します。詳細については、「Amazon EBS スナップショットの 共有 (p. 812)」を参照してください。 IAM と Amazon EC2 IAM を使って以下を行えます。 • お客様の AWS アカウントでユーザーとグループを作成する • お客様の AWS アカウントでユーザーごとに固有のセキュリティ認証情報を割り当てる • AWS のリソースを使用してタスクを実行するために各ユーザーのアクセス許可を制御する • 別の AWS アカウントのユーザーがお客様の AWS のリソースを共有できるようにする • AWS アカウントにロールを作成し、それを行えるユーザーまたはサービスを定義する • お客様の企業用の既存のアイデンティティを使用し、AWS のリソースを使用してタスクを実行する ようにアクセス許可を与える Amazon EC2 で IAM を使用することにより、組織のユーザーが特定の Amazon EC2 API アクション を使用してタスクを実行できるかどうか、また、特定の AWS のリソースを使用できるかどうかを制 御できます。 このトピックには、以下の質問に対する回答があります。 • IAM でグループとユーザーを作成するには、どうすればよいですか? • ポリシーを作成するには、どうすればよいですか? • Amazon EC2 でタスクを実行するには、どのような IAM ポリシーが必要ですか? • Amazon EC2 でアクションを実行するための許可を与えるには、どうすればよいですか? • Amazon EC2 の特定のリソースでアクションを実行するための許可を与えるには、どうすればよい ですか? IAM のグループとユーザーを作成する IAM グループを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールにサ インインします。 2. ナビゲーションペインで、[Groups]、[Create New Group] の順に選択します。 3. [Group Name] ボックスにグループの名前を入力し、[Next Step] を選択します。 4. [Attach Policy] ページで、AWS 管理ポリシーを選択します。たとえば、Amazon EC2 では以下の AWS 管理ポリシーのいずれかが、ニーズを満たす場合があります。 • PowerUserAccess • ReadOnlyAccess • AmazonEC2FullAccess • AmazonEC2ReadOnlyAccess 5. [Next Step]、[Create Group] の順に選択します。 595 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー 新しいグループは、[Group Name] の下に表示されます。 IAM ユーザーを作成するには、グループにユーザーを追加し、ユーザーのパスワードを作成 します。 1. 2. ナビゲーションペインで [Users]、[Add user] の順に選択します。 ユーザー名を入力します。 3. このユーザーセットに付与するアクセス権限の種類を選択します。[Programmatic access] と [AWS Management Console access] の両方を選択します。 [Console password type] で、以下のいずれかを選択します。 4. • [Autogenerated password]。現在有効なパスワードポリシーがある場合、このポリシーと合致 するパスワードがランダムに生成されて各ユーザーに付与されます。[Final] ページに到達する と、パスワードを表示またはダウンロードできます。 • [Custom password]。ボックスに入力したパスワードが各ユーザーに割り当てられます。 5. [Next: Permissions] を選択します。 6. [Set permissions ] ページで、[Add user to group] を選択します。先に作成したグループを選択し ます。 7. [Next: Review]、[Create user] の順に選択します。 8. ユーザーのアクセスキー (アクセスキー ID とシークレットアクセスキー) を表示するには、各パ スワードおよび表示するシークレットアクセスキーの横にある [Show] をクリックします。アクセ スキーを保存するには、[Download .csv] を選択し、安全な場所にファイルを保存します。 Note 9. この手順の完了後はシークレットアクセスキーを取得できません。置き場所を忘れた場 合は、新しく作成しなければなりません。 [Close] を選択します。 10. ユーザーごとに認証情報 (アクセスキーとパスワード) を与えます。これにより、IAM グループ用 に指定したアクセス許可に基づいてサービスを使用できるようになります。 関連トピック IAM の詳細については、以下を参照してください。 • Amazon EC2 の IAM ポリシー (p. 596) • Amazon EC2 の IAM ロール (p. 634) • Identity and Access Management (IAM) • IAM ユーザーガイド Amazon EC2 の IAM ポリシー デフォルトでは、IAM ユーザーには Amazon EC2 リソースを作成または変更、または Amazon EC2 API を使用するタスクを実行する権限がありません。 (つまり、Amazon EC2 コンソールまたは CLI を使用して実行することもできません。) IAM ユーザーがリソースを作成または変更、およびタスク を実行できるようにするには、IAM ポリシーを作成する必要があります。これによって、必要な特定 のリソースおよび API アクションを使用するためのアクセス許可を IAM ユーザーに付与し、その後、 ポリシーをそのアクセス許可が必要な IAM ユーザーまたはグループにアタッチします。 ポリシーをユーザーまたはユーザーのグループにアタッチする場合、ポリシーによって特定リソース の特定タスクを実行するユーザーの権限が許可または拒否されます。IAM ポリシーの一般的な情報に ついては、IAM ユーザーガイド の「Permissions and Policies」を参照してください。カスタム IAM ポリシーの管理と作成の詳細については、「IAM ポリシーの管理」を参照してください。 596 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー はじめに IAM ポリシーは、1 つ以上の Amazon EC2 アクションを使用するアクセス許可を付与または拒否する 必要があります。さらに、このアクションで使用できるリソース (すべてのリソースか、場合によって は特定のリソース) も指定する必要があります。このポリシーには、リソースに適用する条件も含める ことができます。 Amazon EC2 では、リソースレベルのアクセス許可が部分的にサポートされます。これは、一部の EC2 API アクションでは、ユーザーがそのアクションに使用できるリソースを指定できないことを意 味します。代わりに、ユーザーがそのアクションにすべてのリソースを使用することを許可する必要 があります。 タスク トピック ポリシーの基本構造について ポリシー構文 (p. 597) ポリシーでのアクションの定義 Amazon EC2 のアクション (p. 598) ポリシーでの特定のリソースの定義 Amazon EC2 用の Amazon リソースネー ム (p. 598) リソースの使用への条件の適用 Amazon EC2 の条件キー (p. 601) Amazon EC2 での使用可能なリソースレベルの アクセス許可の使用 Amazon EC2 API アクションでサポートされる リソースレベルのアクセス許可 (p. 604) ポリシーのテスト ユーザーが必要なアクセス許可を持っているか どうかを確認する (p. 604) CLI または SDK のサンプルポリシー AWS CLI または AWS SDK で使用するサンプル ポリシー (p. 617) Amazon EC2 コンソールのサンプルポリシー Amazon EC2 コンソールで機能するサンプル ポ リシー (p. 628) ポリシーの構造 次のトピックでは、IAM ポリシーの簡単な構造について説明します。 トピック • ポリシー構文 (p. 597) • Amazon EC2 のアクション (p. 598) • Amazon EC2 用の Amazon リソースネーム (p. 598) • Amazon EC2 の条件キー (p. 601) • ユーザーが必要なアクセス許可を持っているかどうかを確認する (p. 604) ポリシー構文 IAM ポリシーは 1 つ以上のステートメントで構成される JSON ドキュメントです。各ステートメント は次のように構成されます。 { "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ 597 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー "condition":{ "key":"value" } } } ] } ステートメントはさまざまなエレメントで構成されます。 • [Effect]: effect は、Allow または Deny にすることができます。デフォルトでは、IAM ユーザーはリ ソースおよび API アクションを使用するアクセス許可がないため、リクエストはすべて拒否されま す。明示的な許可はデフォルトに優先します。明示的な拒否はすべての許可に優先します。 • [Action]: action は、アクセス許可を付与または拒否する対象とする、特定の API アクションで す。action の指定については、Amazon EC2 のアクション (p. 598) を参照してください。 • [Resource]: アクションによって影響を及ぼされるリソースです。Amazon EC2 API アクションの 中には、アクションによって作成/変更できるリソースをポリシー内で特定できるものもあります。 ステートメント内でリソースを指定するには、Amazon リソースネーム (ARN) を使用する必要があ ります。arn 値の指定については、Amazon EC2 用の Amazon リソースネーム (p. 598) を参照し てください。どの API がどの ARN をサポートするかについては、Amazon EC2 API アクションで サポートされるリソースレベルのアクセス許可 (p. 604) を参照してください。API アクションが ARN をサポートしていない場合は、* ワイルドカードを使用すると、アクションがすべてのリソー スに影響するように指定できます。 • [Condition]: condition はオプションです。ポリシーの発効条件を指定するために使用しま す。Amazon EC2 の条件を指定する方法については、Amazon EC2 の条件キー (p. 601) を参照し てください。 Amazon EC2 の IAM ポリシーステートメント例については、AWS CLI または AWS SDK で使用する サンプルポリシー (p. 617) を参照してください。 Amazon EC2 のアクション IAM ポリシーステートメントで、IAM をサポートするすべてのサービスから任意の API アクションを 指定できます。Amazon EC2 の場合、API アクション ec2: の名前で次のプレフィックスを使用しま す。例: ec2:RunInstances および ec2:CreateImage。 単一のステートメントに複数のアクションを指定するには、次のようにコンマで区切ります。 "Action": ["ec2:action1", "ec2:action2"] ワイルドカードを使用して複数のアクションを指定することもできます。たとえば、以下のように 「Describe」という単語で始まる名前のすべてのアクションを指定できます。 "Action": "ec2:Describe*" Amazon EC2 API アクションをすべて指定するには、* ワイルドカードを以下のように使用します。 "Action": "ec2:*" Amazon EC2 アクションのリストについては、Amazon EC2 API Reference の Actions を参照してく ださい。 Amazon EC2 用の Amazon リソースネーム 各 IAM ポリシーステートメントは、ARN を使用して指定したリソースに適用されます。 598 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー Important 現時点では、すべての API アクションが個々の ARN をサポートしているわけではありませ ん。今後、Amazon EC2 リソースに対する API アクションおよび ARN のサポートを追加し ていきます。どの Amazon EC2 API アクションでどの ARN を使用できるかについて、また 各 ARN でサポートされる条件キーについては、Amazon EC2 API アクションでサポートされ るリソースレベルのアクセス許可 (p. 604) を参照してください。 ARN には以下の一般的な構文があります。 arn:aws:[service]:[region]:[account]:resourceType/resourcePath service サービス (例: ec2)。 リージョン リソースのリージョン (例: us-east-1)。 アカウント ハイフンなしの AWS アカウント ID (例: 123456789012)。 resourceType リソースの種類 (例: instance)。 resourcePath リソースを識別するパス。パスにワイルドカードの * が使用できます。 たとえば、以下の要領で ARN を使用して、ステートメント内で特定のインスタンス (i-1234567890abcdef0) を指定することができます。 "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0" また、特定のアカウントに属するすべてのインスタンスを指定するには、以下の要領で * ワイルド カードを使用します。 "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*" すべてのリソースを指定する場合、または特定の API アクションが ARN をサポートしていない場合 は、以下の要領で、Resource エレメント内で * ワイルドカードを使用します。 "Resource": "*" 以下の表では、Amazon EC2 API アクションによって使用される各リソースの種類の ARN を説明し ています。 リソースタイプ ARN すべての Amazon EC2 リソー ス arn:aws:ec2:* 特定リージョンの特定アカウン トが所有するすべての Amazon EC2 リソース arn:aws:ec2:region:account:* カスタマーゲートウェイ arn:aws:ec2:region:account:customer-gateway/cgw-id cgw-id には cgw-xxxxxxxx が入ります 599 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー リソースタイプ ARN DHCP オプションセット arn:aws:ec2:region:account:dhcp-options/dhcp-options-id dhcp-options-id には dopt-xxxxxxxx が入ります イメージ arn:aws:ec2:region::image/image-id image-id には AMI、AKI または ARI の ID が入り、account は使用 されません インスタンス arn:aws:ec2:region:account:instance/instance-id instance-id には i-xxxxxxxx または i-xxxxxxxxxxxxxxxxx が入りま す。 インスタンスプロファイル arn:aws:iam::account:instance-profile/instance-profile-name instance-profile-name にはインスタンスプロファイルの名前が入 り、region は使用されません インターネットゲートウェイ arn:aws:ec2:region:account:internet-gateway/igw-id igw-id には igw-xxxxxxxx が入ります キーペア arn:aws:ec2:region:account:key-pair/key-pair-name key-pair-name にはキーペア名が入ります (例: gsg-keypair) ネットワーク ACL arn:aws:ec2:region:account:network-acl/nacl-id nacl-id には acl-xxxxxxxx が入ります ネットワークインターフェイス arn:aws:ec2:region:account:network-interface/eni-id eni-id には eni-xxxxxxxx が入ります 配置グループ arn:aws:ec2:region:account:placement-group/placement-groupname placement-group-name にはプレイスメントグループ名が入ります (例: my-cluster) ルートテーブル arn:aws:ec2:region:account:route-table/route-table-id route-table-id には rtb-xxxxxxxx が入ります セキュリティグループ arn:aws:ec2:region:account:security-group/security-group-id security-group-id には sg-xxxxxxxx が入ります スナップショット arn:aws:ec2:region::snapshot/snapshot-id snapshot-id には snap-xxxxxxxx または snap-xxxxxxxxxxxxxxxxx が入り、account は使用されません サブネット arn:aws:ec2:region:account:subnet/subnet-id subnet-id には subnet-xxxxxxxx が入ります 600 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー リソースタイプ ARN ボリューム arn:aws:ec2:region:account:volume/volume-id volume-id には vol-xxxxxxxx または vol-xxxxxxxxxxxxxxxxx が入り ます。 VPC arn:aws:ec2:region:account:vpc/vpc-id vpc-id には vpc-xxxxxxxx が入ります VPC ピア接続 arn:aws:ec2:region:account:vpc-peering-connection/vpc-peeringconnection-id このとき、vpc-peering connection-id は pcx-xxxxxxxx です。 Amazon EC2 API アクションの多くが複数のリソースと関連します。たとえば、AttachVolume では Amazon EBS ボリュームをインスタンスにアタッチするため、IAM ユーザーはボリュームおよびイン スタンスを使用するアクセス許可が必要です。単一のステートメントに複数のリソースを指定するに は、以下のようにコンマで ARN を区切ります。 "Resource": ["arn1", "arn2"] ARN の一般的な情報については、アマゾン ウェブ サービス全般のリファレンス の Amazon Resource Names (ARN) and AWS Service Namespaces を参照してください。Amazon EC2 アクショ ンによって作成または変更されるリソースの詳細について、および IAM ポリシーステートメントで使 用できる ARN の詳細については、Amazon EC2 API Reference の IAM ユーザーへの、Amazon EC2 リソースに対するアクセス許可の付与を参照してください。 Amazon EC2 の条件キー ポリシーステートメントでは、オプションで有効になるタイミングを制御する条件を指定できます。 各条件には 1 つ以上のキーと値のペアが含まれます。条件キーは大文字小文字を区別しません。私た ちは AWS 範囲の条件キーに加え、追加のサービス固有の条件キーを定義しました。 複数の条件、または単一の条件に複数のキーを指定する場合、論理 AND 演算を使用してそれらを評 価します。1 つのキーに複数の値を使用して単一の条件を指定する場合、論理 OR 演算を使用して条 件を評価します。アクセス許可が付与されるには、すべての条件を満たしている必要があります。 条件を指定する際にプレースホルダーも使用できます。たとえば、IAM ユーザーに、そのユーザーの IAM ユーザー名を指定したタグ付きのリソースを使用するアクセス許可を与えることができます。詳 細については、IAM ユーザーガイド の「ポリシー変数」を参照してください。 Amazon EC2 には AWS 範囲の条件キー (Available Keys を参照) に加え、以下のサービス固有の条件 キーが実装されています。 (Amazon EC2 用のサービス固有の条件キーのサポートは今後さらに追加 される予定です) Important 多くの条件キーはリソースに固有のものであり、一部の API アクションでは複数のリソース を使用します。条件キーを使用してポリシーを作成する場合は、ポリシーステートメントの Resource 要素で、条件キーが適用されるリソースを指定します。指定しない場合、そのポ リシーはユーザーに対してすべてのアクションの実行を禁止します。これは、条件キーが適 用されないリソースに対して条件チェックが失敗するためです。リソースを指定しない場合 や、ポリシーの Action 要素に複数の API アクションを含めている場合は、...IfExists 条件タイプを使用して、条件キーが適用されないリソースに対して無視されるようにする必 要があります。詳細については、「...IfExists 条件」 (IAM ユーザーガイド) を参照してくださ い。 601 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー 条件キー キー/値のペア 評価の種類 ec2:AccepterVpc "ec2:AccepterVpc":"vpc-arn" ARN、Null このとき、vpc-arn はピア VPC の VPC ARN です。 ec2:AvailabilityZone "ec2:AvailabilityZone":"az-api-name" 文字列、Null az-api-name にはアベイラビリティーゾーン名が入ります (例: us-west-2a)。 アベイラビリティーゾーンを一覧表示するには、describeavailability-zones を使用します。 ec2:EbsOptimized "ec2:EbsOptimized":"optimized-flag" ブール値、Null optimized-flag には true | false が入ります ec2:ImageType "ec2:ImageType":"image-type-api-name" 文字列、Null image-type-api-name には ami | aki | ari が入ります ec2:InstanceProfile "ec2:InstanceProfile":"instance-profile-arn" ARN、Null instance-profile-arn にはインスタンスプロファイル ARN が入ります ec2:InstanceType "ec2:InstanceType":"instance-type-api-name" 文字列、Null instance-type-api-name にはインスタンスタイプの名前が 入ります。 ec2:Owner "ec2:Owner":"account-id" 文字列、Null account-id には amazon | aws-marketplace | awsaccount-id が入ります ec2:ParentSnapshot"ec2:ParentSnapshot":"snapshot-arn" ARN、Null snapshot-arn にはスナップショット ARN が入ります ec2:ParentVolume "ec2:ParentVolume":"volume-arn" ARN、Null volume-arn にはボリューム ARN が入ります ec2:PlacementGroup"ec2:PlacementGroup":"placement-group-arn" ARN、Null placement-group-arn にはプレイスメントグループ ARN が 入ります ec2:PlacementGroupStrategy "ec2:PlacementGroupStrategy":"placement-group-strategy" 文字列、Null placement-group-strategy には cluster が入ります ec2:ProductCode "ec2:ProductCode":"product-code" 文字列、Null product-code には製品コードが入ります ec2:Public "ec2:Public":"public-flag" AMI の public-flag は true | false です 602 ブール値、Null Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー 条件キー キー/値のペア 評価の種類 ec2:Region "ec2:Region":"region-name" 文字列、Null region-name にはリージョン名が入ります (例: uswest-2) リージョンを一覧表示するには、describeregions を使用します。 ec2:RequesterVpc "ec2:RequesterVpc":"vpc-arn" ARN、Null このとき、vpc-arn はリクエスタの VPC の VPC ARN で す。 ec2:ResourceTag/ "ec2:ResourceTag/tag-key":"tag-value" tag-key tag-key と tag-value にはタグとキーのペアが入ります 文字列、Null ec2:RootDeviceType"ec2:RootDeviceType":"root-device-type-name" 文字列、Null root-device-type-name には ebs | instance-store が入 ります ec2:Subnet "ec2:Subnet":"subnet-arn" ARN、Null subnet-arn にはサブネット ARN が入ります ec2:Tenancy "ec2:Tenancy":"tenancy-attribute" 文字列、Null tenancy-attribute には default | dedicated が入ります | host ec2:VolumeIops "ec2:VolumeIops":"volume-iops" 数値、Null volume-iops には 1 秒あたりの入力/出力オペレーション (IOPS) が入ります。範囲は 100 から 20,000 です ec2:VolumeSize "ec2:VolumeSize":"volume-size" 数値、Null volume-size にはボリュームのサイズが入ります (GiB 単 位) ec2:VolumeType "ec2:VolumeType":"volume-type-name" 文字列、Null volume-type-name は、汎用 SSD ボリュームの場合は gp2、プロビジョンド IOPS SSD ボリュームの場合は io1、スループット最適化 HDD ボリュームの場合は st1、Cold HDD ボリュームの場合は sc1、マグネティッ ク ボリュームの場合は standard です。 ec2:Vpc "ec2:Vpc":"vpc-arn" ARN、Null vpc-arn には VPC ARN が入ります アクションごとに、どの Amazon EC2 リソースでどの条件キーが使用できるかについては、Amazon EC2 API アクションでサポートされるリソースレベルのアクセス許可 (p. 604) を参照してくださ い。Amazon EC2 のポリシーステートメントの例については、AWS CLI または AWS SDK で使用す るサンプルポリシー (p. 617) を参照してください。 603 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー ユーザーが必要なアクセス許可を持っているかどうかを確認する IAM ポリシーを作成したら、ポリシーを本稼働環境に置く前に、そのポリシーがユーザーに特定の API アクションおよび必要なリソースを使用するアクセス許可を付与しているかどうかを確認するこ とをお勧めします。 まずテスト目的の IAM ユーザーを作成し、作成した IAM ポリシーをテストユーザーにアタッチしま す。次に、テストユーザーとしてリクエストを作成します。 テストしているアクションがリソースを変更する場合、DryRun パラメーターを使用してリクエスト を作成する (または、--auth-dry-run オプションで CLI を実行する) 必要があります。この場合、 発信者は認証チェックを行いますが、操作は完了しません。たとえば、実際に終了させることなく、 ユーザーが特定のインスタンスを終了できるかどうかを確認できます。テストユーザーに必要なアク セス許可がある場合、リクエストで DryRunOperation が返されます。必要なアクセス許可がない場 合は UnauthorizedOperation が返されます。 ポリシーが想定したアクセス許可をユーザーに付与していない場合、または過度に許可されている場 合、必要に応じてポリシーを調整し、必要な結果を得るまで再テストできます。 Important ポリシーの変更が反映され、有効になるには数分間かかります。したがって、ポリシーの更 新をテストするには 5 分かかると見ておいてください。 認証チェックが失敗した場合、リクエストでは診断情報でエンコードされたメッセージが返されま す。DecodeAuthorizationMessage アクションを使用してメッセージをデコードできます。詳細に ついては、「AWS Security Token Service API リファレンス」の「DecodeAuthorizationMessage」、 および「AWS Command Line Interface Reference」の「decode-authorization-message」を参照して ください。 Amazon EC2 API アクションでサポートされるリソースレベ ルのアクセス許可 リソースレベルのアクセス許可とは、ユーザーがアクションを実行可能なリソースを指定できること を意味します。Amazon EC2 では、リソースレベルのアクセス許可が部分的にサポートされます。こ れは、特定の Amazon EC2 アクションでは、満たす必要がある条件、またはユーザーが使用できる特 定のリソースに基づいて、ユーザーがそれらのアクションをいつ使用できるかを制御できることを意 味します。たとえば、特定の AMI のみを使用して、特定のタイプのインスタンスだけを起動するアク セス許可をユーザーに付与できます。 次の表では、現在リソースレベルのアクセス許可をサポートしている Amazon EC2 API アクション と、サポートされるリソースとその ARN、および各アクションの条件キーについて説明しています ARN の指定時、正確なリソース ID を指定できない (したくない) 場合などに、パスに * ワイルドカー ドを使用できます。ワイルドカードの使用例については、「AWS CLI または AWS SDK で使用するサ ンプルポリシー (p. 617)」を参照してください。 Important Amazon EC2 API アクションがこの表に示されていない場合、リソースレベルのアクセス許 可をサポートしていません。Amazon EC2 API アクションでリソースレベルのアクセス許 可がサポートされない場合、アクションを使用するアクセス許可をユーザーに付与できます が、ポリシーステートメントのリソース要素として * を指定する必要があります。これを行 う方法の例については、「1: 読み取り専用アクセス (p. 618)」を参照してください。サポー トされるアクション、ARN、および条件キーは、今後さらに追加される予定です。リソー スレベルのアクセス許可を現在サポートしていない Amazon EC2 API アクションのリスト については、「サポートされていないリソースレベルのアクセス許可」 (Amazon EC2 API Reference) を参照してください。 604 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー AcceptVpcPeeringConnection VPC ピア接続 ec2:AccepterVpc arn:aws:ec2:region:account:vpcpeering-connection/* arn:aws:ec2:region:account:vpcpeering-connection/vpc-peeringconnection-id ec2:Region ec2:ResourceTag/tag-key ec2:RequesterVpc VPC ec2:ResourceTag/tag-key arn:aws:ec2:region:account:vpc/* ec2:Region arn:aws:ec2:region:account:vpc/vpc-id ec2:Tenancy このとき、vpc-id はアクセプタが所有 する VPC です。 AttachClassicLinkVpc インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy セキュリティグループ arn:aws:ec2:region:account:securitygroup/* ec2:Region ec2:ResourceTag/tag-key ec2:Vpc arn:aws:ec2:region:account:securitygroup/security-group-id セキュリティグループが VPC のセキュ リティグループである場合 VPC arn:aws:ec2:region:account:vpc/* arn:aws:ec2:region:account:vpc/vpc-id 605 ec2:Region ec2:ResourceTag/tag-key ec2:Tenancy Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー AttachVolume インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy ボリューム ec2:AvailabilityZone arn:aws:ec2:region:account:volume/* ec2:ParentSnapshot arn:aws:ec2:region:account:volume/ volume-id ec2:Region ec2:ResourceTag/tag-key ec2:VolumeIops ec2:VolumeSize ec2:VolumeType AuthorizeSecurityGroupEgress セキュリティグループ arn:aws:ec2:region:account:securitygroup/* arn:aws:ec2:region:account:securitygroup/security-group-id AuthorizeSecurityGroupIngress セキュリティグループ arn:aws:ec2:region:account:securitygroup/* arn:aws:ec2:region:account:securitygroup/security-group-id CreateVpcPeeringConnection VPC ec2:Region ec2:ResourceTag/tag-key ec2:Vpc ec2:Region ec2:ResourceTag/tag-key ec2:Vpc ec2:ResourceTag/tag-key arn:aws:ec2:region:account:vpc/* ec2:Region arn:aws:ec2:region:account:vpc/vpc-id ec2:Tenancy このとき、vpc-id はリクエスタ VPC で す。 606 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー VPC ピア接続 ec2:AccepterVpc arn:aws:ec2:region:account:vpcpeering-connection/* ec2:Region DeleteCustomerGateway カスタマーゲートウェイ arn:aws:ec2:region:account:customergateway/* ec2:RequesterVpc ec2:Region ec2:ResourceTag/tag-key arn:aws:ec2:region:account:customergateway/cgw-id DeleteDhcpOptions DHCP オプションセット ec2:Region arn:aws:ec2:region:account:dhcpoptions/* ec2:ResourceTag/tag-key arn:aws:ec2:region:account:dhcpoptions/dhcp-options-id DeleteInternetGateway インターネットゲートウェイ ec2:Region arn:aws:ec2:region:account:internetgateway/* ec2:ResourceTag/tag-key arn:aws:ec2:region:account:internetgateway/igw-id DeleteNetworkAcl ネットワーク ACL ec2:Region arn:aws:ec2:region:account:networkacl/* ec2:ResourceTag/tag-key arn:aws:ec2:region:account:networkacl/nacl-id DeleteNetworkAclEntry ネットワーク ACL ec2:Region arn:aws:ec2:region:account:networkacl/* ec2:ResourceTag/tag-key arn:aws:ec2:region:account:networkacl/nacl-id DeleteRoute ec2:Vpc ec2:Vpc ルートテーブル ec2:Region arn:aws:ec2:region:account:route-table/ * ec2:ResourceTag/tag-key arn:aws:ec2:region:account:routetable/route-table-id 607 ec2:Vpc Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー DeleteRouteTable ルートテーブル ec2:Region arn:aws:ec2:region:account:route-table/ * ec2:ResourceTag/tag-key arn:aws:ec2:region:account:routetable/route-table-id DeleteSecurityGroup DeleteVolume ec2:Vpc セキュリティグループ ec2:Region arn:aws:ec2:region:account:securitygroup/security-group-id ec2:ResourceTag/tag-key ボリューム ec2:AvailabilityZone arn:aws:ec2:region:account:volume/* ec2:ParentSnapshot arn:aws:ec2:region:account:volume/ volume-id ec2:Region ec2:Vpc ec2:ResourceTag/tag-key ec2:VolumeIops ec2:VolumeSize ec2:VolumeType DeleteVpcPeeringConnection VPC ピア接続 ec2:AccepterVpc arn:aws:ec2:region:account:vpcpeering-connection/* arn:aws:ec2:region:account:vpcpeering-connection/vpc-peeringconnection-id DetachClassicLinkVpc ec2:Region ec2:ResourceTag/tag-key ec2:RequesterVpc インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy VPC arn:aws:ec2:region:account:vpc/* arn:aws:ec2:region:account:vpc/vpc-id 608 ec2:Region ec2:ResourceTag/tag-key ec2:Tenancy Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー DetachVolume インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy ボリューム ec2:AvailabilityZone arn:aws:ec2:region:account:volume/* ec2:ParentSnapshot arn:aws:ec2:region:account:volume/ volume-id ec2:Region ec2:ResourceTag/tag-key ec2:VolumeIops ec2:VolumeSize ec2:VolumeType DisableVpcClassicLink VPC arn:aws:ec2:region:account:vpc/* ec2:Region ec2:ResourceTag/tag-key ec2:Tenancy arn:aws:ec2:region:account:vpc/vpc-id EnableVpcClassicLink VPC arn:aws:ec2:region:account:vpc/* arn:aws:ec2:region:account:vpc/vpc-id 609 ec2:Region ec2:ResourceTag/tag-key ec2:Tenancy Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー GetConsoleScreenshot インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy RebootInstances インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy RejectVpcPeeringConnection VPC ピア接続 ec2:AccepterVpc arn:aws:ec2:region:account:vpcpeering-connection/* arn:aws:ec2:region:account:vpcpeering-connection/vpc-peeringconnection-id RevokeSecurityGroupEgress セキュリティグループ arn:aws:ec2:region:account:securitygroup/* arn:aws:ec2:region:account:securitygroup/security-group-id RevokeSecurityGroupIngress セキュリティグループ arn:aws:ec2:region:account:securitygroup/* arn:aws:ec2:region:account:securitygroup/security-group-id 610 ec2:Region ec2:ResourceTag/tag-key ec2:RequesterVpc ec2:Region ec2:ResourceTag/tag-key ec2:Vpc ec2:Region ec2:ResourceTag/tag-key ec2:Vpc Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー RunInstances イメージ ec2:ImageType arn:aws:ec2:region::image/* ec2:Owner arn:aws:ec2:region::image/image-id ec2:Public ec2:Region ec2:RootDeviceType ec2:ResourceTag/tag-key インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:RootDeviceType ec2:Tenancy キーペア ec2:Region arn:aws:ec2:region:account:key-pair/* arn:aws:ec2:region:account:keypair/key-pair-name ネットワークインターフェイス ec2:AvailabilityZone arn:aws:ec2:region:account:networkinterface/* ec2:Region arn:aws:ec2:region:account:networkinterface/eni-id ec2:Subnet ec2:ResourceTag/tag-key ec2:Vpc 配置グループ ec2:Region arn:aws:ec2:region:account:placementgroup/* ec2:PlacementGroupStrategy arn:aws:ec2:region:account:placementgroup/placement-group-name セキュリティグループ ec2:Region arn:aws:ec2:region:account:securitygroup/* ec2:ResourceTag/tag-key arn:aws:ec2:region:account:securitygroup/security-group-id 611 ec2:Vpc Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー スナップショット ec2:Owner arn:aws:ec2:region::snapshot/* ec2:ParentVolume arn:aws:ec2:region::snapshot/snapshot- ec2:Region id ec2:SnapshotTime ec2:ResourceTag/tag-key ec2:VolumeSize サブネット ec2:AvailabilityZone arn:aws:ec2:region:account:subnet/* ec2:Region arn:aws:ec2:region:account:subnet/ subnet-id ec2:ResourceTag/tag-key ボリューム ec2:AvailabilityZone arn:aws:ec2:region:account:volume/* ec2:ParentSnapshot ec2:Vpc ec2:Region ec2:VolumeIops ec2:VolumeSize ec2:VolumeType StartInstances インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy 612 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー API アクション リソース 条件キー StopInstances インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy TerminateInstances インスタンス ec2:AvailabilityZone arn:aws:ec2:region:account:instance/* ec2:EbsOptimized arn:aws:ec2:region:account:instance/ instance-id ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:ResourceTag/tag-key ec2:RootDeviceType ec2:Tenancy RunInstances に関するリソースレベルのアクセス権限 RunInstances API アクションは 1 つ以上のインスタンスを起動し、数多くの Amazon EC2 リソース を作成して使用します。このアクションでは AMI が必要であり、インスタンスが作成されます。ま た、このインスタンスは、セキュリティグループに関連付けられている必要があります。VPC 内に 起動するにはサブネットが必要であり、起動されるとネットワークインターフェイスが作成されま す。Amazon EBS-Backed AMI から起動すると、ボリュームが作成されます。ユーザーは、これらの リソースを使用するにはアクセス権限が必要です。したがって、ec2:RunInstances アクションの リソースレベルアクセス権限を使用する任意のポリシーの Resource 要素で、アクセス権限が指定さ れる必要があります。ec2:RunInstances アクションでリソースレベルのアクセス権限を使用しな い場合、個別の ARN ではなく、ステートメントの Resource 要素で * ワイルドカードを指定できま す。 リソースレベルのアクセス権限を使用する場合、ec2:RunInstances アクションを使用するために 必要な最小限のリソースを以下の表に示します。 起動のタイプ 必要なリソース 条件キー instance store-backed AMI を使 arn:aws:ec2:region:account:instance/ ec2:AvailabilityZone 用した EC2-Classic への起動 * ec2:EbsOptimized 613 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー 起動のタイプ 必要なリソース 条件キー ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:RootDeviceType ec2:Tenancy arn:aws:ec2:region::image/* (ま たは特定の AMI ID) ec2:ImageType ec2:Owner ec2:Public ec2:Region ec2:RootDeviceType ec2:ResourceTag/tag-key arn:aws:ec2:region:account:securityec2:Region group/* (または特定のセキュリ ec2:ResourceTag/tag-key ティグループ ID) ec2:Vpc Amazon EBS-backed AMI を使 用した EC2-Classic への起動 arn:aws:ec2:region:account:instance/ ec2:AvailabilityZone * ec2:EbsOptimized ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:RootDeviceType ec2:Tenancy arn:aws:ec2:region::image/* (ま たは特定の AMI ID) ec2:ImageType ec2:Owner ec2:Public ec2:Region ec2:RootDeviceType ec2:ResourceTag/tag-key 614 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー 起動のタイプ 必要なリソース 条件キー arn:aws:ec2:region:account:securityec2:Region group/* (または特定のセキュリ ec2:ResourceTag/tag-key ティグループ ID) ec2:Vpc arn:aws:ec2:region:account:volume/ ec2:AvailabilityZone * ec2:ParentSnapshot ec2:Region ec2:VolumeIops ec2:VolumeSize ec2:VolumeType instance store-backed AMI を使 arn:aws:ec2:region:account:instance/ ec2:AvailabilityZone 用した VPC への起動 * ec2:EbsOptimized ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:RootDeviceType ec2:Tenancy arn:aws:ec2:region::image/* (ま たは特定の AMI ID) ec2:ImageType ec2:Owner ec2:Public ec2:Region ec2:RootDeviceType ec2:ResourceTag/tag-key arn:aws:ec2:region:account:securityec2:Region group/* (または特定のセキュリ ec2:ResourceTag/tag-key ティグループ ID) ec2:Vpc 615 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー 起動のタイプ 必要なリソース 条件キー arn:aws:ec2:region:account:networkec2:AvailabilityZone interface/* (または特定のネット ec2:Region ワークインターフェイス ID) ec2:Subnet ec2:ResourceTag/tag-key ec2:Vpc arn:aws:ec2:region:account:subnet/ ec2:AvailabilityZone * (または特定のサブネット ID) ec2:Region ec2:ResourceTag/tag-key ec2:Vpc Amazon EBS-backed AMI を使 用した VPC への起動 arn:aws:ec2:region:account:instance/ ec2:AvailabilityZone * ec2:EbsOptimized ec2:InstanceProfile ec2:InstanceType ec2:PlacementGroup ec2:Region ec2:RootDeviceType ec2:Tenancy arn:aws:ec2:region::image/* (ま たは特定の AMI ID) ec2:ImageType ec2:Owner ec2:Public ec2:Region ec2:RootDeviceType ec2:ResourceTag/tag-key arn:aws:ec2:region:account:securityec2:Region group/* (または特定のセキュリ ec2:ResourceTag/tag-key ティグループ ID) ec2:Vpc 616 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー 起動のタイプ 必要なリソース 条件キー arn:aws:ec2:region:account:networkec2:AvailabilityZone interface/* (または特定のネット ec2:Region ワークインターフェイス ID) ec2:Subnet ec2:ResourceTag/tag-key ec2:Vpc arn:aws:ec2:region:account:volume/ ec2:AvailabilityZone * ec2:ParentSnapshot ec2:Region ec2:VolumeIops ec2:VolumeSize ec2:VolumeType arn:aws:ec2:region:account:subnet/ ec2:AvailabilityZone * (または特定のサブネット ID) ec2:Region ec2:ResourceTag/tag-key ec2:Vpc インスタンスを起動するために必要はないものの、ポリシーでキーペアリソースを指定することを お勧めします。キーペアなしでインスタンスに接続することはできません。ec2:RunInstances アクションでのリソースレベルのアクセス権限の使用例については、「5: インスタンスを起動する (RunInstances) (p. 621)」を参照してください。 Amazon EC2 のリソースレベルのアクセス許可の詳細については、AWS セキュリティブログの投稿 「Demystifying EC2 Resource-Level Permissions」を参照してください。 AWS CLI または AWS SDK で使用するサンプルポリシー 以下の例では、Amazon EC2 に対して IAM ユーザーが所有するアクセス許可を制御するために使用 できるポリシーステートメントを示しています。これらのポリシーは、AWS CLI または AWS SDK で行われたリクエスト向けに設計されています。Amazon EC2 コンソールで機能するポリシーの例 については、「Amazon EC2 コンソールで機能するサンプル ポリシー (p. 628)」を参照してくださ い。Amazon VPC 固有の IAM ポリシーの例については、「Amazon VPC リソースへのアクセスの制 御」を参照してください。 • 1: 読み取り専用アクセス (p. 618) • 2: 特定のリージョンへのアクセスの制限 (p. 618) • 3: インスタンスの使用 (p. 618) • 4. ボリュームを操作する (p. 620) • 5: インスタンスを起動する (RunInstances) (p. 621) • 6. ClassicLink を使用する (p. 625) • 7. リザーブドインスタンスを使用する (p. 627) 617 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー Example 1: 読み取り専用アクセス 次のポリシーでは、名前が Describe で始まるすべての Amazon EC2 API アクションを使用できるア クセス許可をユーザーに与えます。Resource エレメントにワイルドカードを使用します。これは、 ユーザーが API アクションですべてのリソースを指定できることを示します。また、API アクション がリソースレベルのアクセス許可をサポートしていない場合も、* ワイルドカードが必要です。どの Amazon EC2 API アクションでどの ARN を使用できるかについては、Amazon EC2 API アクション でサポートされるリソースレベルのアクセス許可 (p. 604) を参照してください。 デフォルトで API アクションを使用するアクセス許可が拒否されているため、ユーザーには (別のス テートメントでアクセス許可が与えられない限り) そのリソースに対してアクションを実行するアクセ ス許可がありません。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" } ] } Example 2: 特定のリージョンへのアクセスの制限 次のポリシーでは、欧州 (フランクフルト) に限り、すべての Amazon EC2 API アクションを使用する アクセス許可をユーザーに付与します。ユーザーは、その他のリージョンのリソースを表示、作成、 変更、または削除することはできません。 { "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:Region": "eu-central-1" } } } ] } Example 3: インスタンスの使用 a: すべてのインスタンスを記述、起動、停止、開始、および終了する 次のポリシーでは、Action エレメントで指定された API アクションを使用するアクセス許可をユー ザーに与えます。Resource エレメントでは * ワイルドカードを使用して、ユーザーが API アクショ ンですべてのリソースを指定できることを示します。また、API アクションがリソースレベルのア クセス許可をサポートしていない場合も、* ワイルドカードが必要です。どの Amazon EC2 API ア クションでどの ARN を使用できるかについては、Amazon EC2 API アクションでサポートされるリ ソースレベルのアクセス許可 (p. 604) を参照してください。 ユーザーはデフォルトで API アクションを使用するアクセス許可を拒否されているため、ユーザーに は (別のステートメントでユーザーにそのアクセス許可を与えない限り) その他の API アクションを使 用するアクセス許可がありません。 618 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "*" } ] } b. すべてのインスタンスを記述し、特定のインスタンスのみを停止、開始、および終了する 次のポリシーでは、すべてのインスタンスを表示し、i-1234567890abcdef0 と i-0598c7d356eba48d7 インスタンスのみを開始および停止し、米国東部 (バージニア北部) リージョン (us-east-1) 内でリ ソースタグ "purpose=test" の付いたインスタンスのみを終了する許可をユーザーに与えます。 最初のステートメントでは、Resource エレメントに * ワイルドカードを使用して、ユーザーがその アクションにすべてのリソースを指定できることを示しています。この場合、すべてのインスタンス をリストできます。また、API アクションがリソースレベルのアクセス許可をサポートしていない場 合も、* ワイルドカードが必要です (この場合は、ec2:DescribeInstances)。どの Amazon EC2 API アクションでどの ARN を使用できるかについては、Amazon EC2 API アクションでサポートされ るリソースレベルのアクセス許可 (p. 604) を参照してください。 2 番目のステートメントでは、StopInstances および StartInstances アクションに対してリソー スレベルのアクセス許可を使用しています。Resource エレメント内で、ARN によって特定のインス タンスが指定されています。 3 番目のステートメントでは、指定された AWS アカウントに属する 米国東部 (バージニア北部) リー ジョン (us-east-1) 内にあり、タグ "purpose=test" が付けられているすべてのインスタンスを終 了する許可をユーザーに与えています。Condition エレメントは、ポリシーステートメントの発効条 件を指定します。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:StopInstances", "ec2:StartInstances" ], "Resource": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0", "arn:aws:ec2:us-east-1:123456789012:instance/i-0598c7d356eba48d7" ] }, { 619 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー "Effect": "Allow", "Action": "ec2:TerminateInstances", "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*", "Condition": { "StringEquals": { "ec2:ResourceTag/purpose": "test" } } } ] } Example 4. ボリュームを操作する API アクションが複数のリソースを指定するために発信者を必要とする場合、ユーザーがすべての必 要なリソースにアクセスできるようにポリシーステートメントを作成する必要があります。1 つ以上 のリソースで Condition エレメントを使用する必要がある場合、この例のとおり複数のステートメ ントを作成する必要があります。 以下のポリシーでは、ユーザーがタグ「volume_user=iam-user-name」の付いたボリュームを、 タグ「department=dev」の付いたインスタンスにアタッチしたり、またインスタンスからボ リュームをデタッチしたりできるようにします。このポリシーを IAM グループにアタッチする場 合、aws:username ポリシー変数によってグループの IAM ユーザーに、値として IAM ユーザー名を 持つタグ名が volume_user のインスタンスからボリュームをアタッチまたはデタッチするためのア クセス許可が付与されます。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*", "Condition": { "StringEquals": { "ec2:ResourceTag/department": "dev" } } }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*", "Condition": { "StringEquals": { "ec2:ResourceTag/volume_user": "${aws:username}" } } } ] } 620 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー Example 5: インスタンスを起動する (RunInstances) RunInstances API アクションでは、1 つ以上のインスタンスを起動します。RunInstances は AMI を必要とし、インスタンスを作成します。ユーザーは、リクエスト内でキーペアとセキュリティグ ループを指定できます。EC2-VPC 内に起動するにはサブネットが必要であり、起動されるとネット ワークインターフェイスが作成されます。Amazon EBS-Backed AMI から起動すると、ボリュームが 作成されます。そのため、ユーザーにはこれらの Amazon EC2 リソースを使用するアクセス許可が必 要です。発信者は、インスタンスタイプおよびサブネットなどの RunInstances に対してオプション のパラメーターを使用して、インスタンスを設定することもできます。ユーザーがオプションのパラ メーターを指定する必要がある、またはユーザーからパラメーターの特定の値を制限するポリシース テートメントを作成できます。このセクションの例では、ユーザーが起動できるインスタンスの設定 を制御できるさまざまな方法について説明します。 デフォルトでは、ユーザーに作成したインスタンスを記述、開始、停止、または終了するアクセス許 可はありません。作成したインスタンスを管理するアクセス許可をユーザーに付与する 1 つの方法 としては、インスタンスごとに特定のタグを作成し、そのタグでインスタンスを管理できるようにス テートメントを作成します。詳細については、「3: インスタンスの使用 (p. 618)」を参照してくだ さい。 [a. AMI] 次のポリシーでは、インスタンスに関連付けられた特定のタグ「department=dev」のある AMI のみ を使用して、インスタンスを起動できます。最初のステートメントの Condition エレメントはユー ザーがこのタグのある AMI を指定している必要があるため、ユーザーがその他の AMI を使用してイ ンスタンスを起動することはできません。また、このポリシーはサブネットとネットワークインター フェイスリソースへのアクセス許可を与えていないため、ユーザーはサブネットに起動することがで きません。ただし、EC2-Classic に起動することはできます。2 番目のステートメントではワイルド カードを使用してユーザーがインスタンスリソースを作成できるようにしており、ユーザーはキーペ ア project_keypair およびセキュリティグループ sg-1a2b3c4d を指定する必要があります。ただ し、ユーザーはキーペアがなくてもインスタンスを起動できます。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/department": "dev" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:key-pair/project_keypair", "arn:aws:ec2:region:account:security-group/sg-1a2b3c4d" ] } ] } 621 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー また、次のポリシーでは、ユーザーが指定された AMI (ami-9e1670f7 および ami-45cf5c3c) のみ を使用してインスタンスを起動できます。ユーザーは他の AMI を使用してインスタンスを起動するこ とはできず (他のステートメントがそのような許可をユーザーに与えている場合はその限りではありま せん)、ユーザーはインスタンスをサブネットに起動することはできません。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-9e1670f7", "arn:aws:ec2:region::image/ami-45cf5c3c", "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*" ] } ] } 一方、以下のポリシーは、Amazon が所有するすべての AMI からインスタンスを起動することをユー ザーに許可します。最初のステートメントの Condition エレメントは、ec2:Owner が amazon であ るかどうかをテストします。 (別のステートメントでユーザーに起動するアクセス許可が付与されない 限り) ユーザーはその他の AMI を使用してインスタンスを起動することはできません。ユーザーは、 インスタンスをサブネットに起動することができます。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*" ], "Condition": { "StringEquals": { "ec2:Owner": "amazon" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:subnet/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:network-interface/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*" ] } ] } [b. Instance type] 622 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー 次のポリシーにより、ユーザーは t2.micro または t2.small インスタンスタイプのみを使用してイ ンスタンスを起動できます。これにより、コストを管理することができます。最初のステートメント の Condition エレメントは ec2:InstanceType が t2.micro または t2.small のどちらであるか をテストするため、ユーザーは大きなインスタンスを起動することはできません。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account:instance/*" ], "Condition": { "StringEquals": { "ec2:InstanceType": ["t2.micro", "t2.small"] } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account:subnet/*", "arn:aws:ec2:region:account:network-interface/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*" ] } ] } また、ユーザーが t2.micro と t2.small のインスタンスタイプ以外のすべてのインスタンス起動へ のアクセスを拒否するポリシーを作成することもできます。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account:instance/*" ], "Condition": { "StringNotEquals": { "ec2:InstanceType": ["t2.micro", "t2.small"] } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account:network-interface/*", "arn:aws:ec2:region:account:instance/*", 623 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー "arn:aws:ec2:region:account:subnet/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*" ] } ] } [c. Subnet] 次のポリシーにより、ユーザーは指定したサブネット subnet-12345678 のみを使用してインスタン スを起動できます。グループは、インスタンスを他のサブネットに起動することはできません (他の ステートメントがそのような許可をユーザーに与えている場合はその限りではありません)。ただし、 ユーザーは EC2-Classic にインスタンスを起動できます。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account:subnet/subnet-12345678", "arn:aws:ec2:region:account:network-interface/*", "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*" ] } ] } また、ユーザーがその他のサブネットにインスタンスを起動するアクセス許可を拒否するポリシーを 作成することもできます。ステートメントでは、サブネット subnet-12345678 が指定されている場 合以外は、ネットワークインターフェイスの作成を拒否することでこれを実行します。この拒否は、 他のサブネットへのインスタンスの起動を許可する他のすべてのポリシーよりも優先されます。ただ し、ユーザーは EC2-Classic にインスタンスを起動できます。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account:network-interface/*" ], "Condition": { "ArnNotEquals": { "ec2:Subnet": "arn:aws:ec2:region:account:subnet/subnet-12345678" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", 624 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー "Resource": [ "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account:network-interface/*", "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:subnet/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*" ] } ] } Example 6. ClassicLink を使用する ClassicLink で VPC を有効にし、EC2-Classic インスタンスと VPC にリンクできます。ClassicLink が有効な VPC と、VPC にリンクされたすべての EC2-Classic インスタンスを表示することもできま す。ec2:EnableVpcClassicLink、ec2:DisableVpcClassicLink、ec2:AttachClassicLinkVpc、ec2:Detach の各アクションのリソースレベルのアクセス許可を使用してポリシーを作成し、ユーザーが それらのアクションを使用できるかどうかを制御できます。リソースレベルのアクセス許可 は、ec2:Describe* アクションではサポートされません。 a. ClassicLink を使用する完全なアクセス許可 次のポリシーでは、ClassicLink が有効な VPC とリンクされた EC2-Classic インスタンスを表示する アクセス許可、ClassicLink で VPC を有効化および無効化するアクセス許可、ClassicLink が有効な VPC からインスタンスをリンクおよびリンク解除するアクセス許可をユーザーに付与します。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeClassicLinkInstances", "ec2:DescribeVpcClassicLink", "ec2:EnableVpcClassicLink", "ec2:DisableVpcClassicLink", "ec2:AttachClassicLinkVpc", "ec2:DetachClassicLinkVpc" ], "Resource": "*" } ] } b. ClassicLink で VPC を有効化および無効化する 次のポリシーでは、特定のタグ「purpose=classiclink」を持つ VPC を ClassicLink で有効化およ び無効化することをユーザーに許可します。ユーザーは、ClassicLink で他の VPC を有効化または無 効化することができません。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*VpcClassicLink", "Resource": "arn:aws:ec2:region:account:vpc/*", "Condition": { "StringEquals": { 625 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー "ec2:ResourceTag/purpose":"classiclink" } } } ] } c. インスタンスをリンクする 次のポリシーでは、インスタンスが m3.large インスタンスタイプの場合に、インスタンスを VPC にのみリンクするアクセス許可をユーザーに付与します。2 番目のステートメントでは、VPC にイン スタンスをリンクするのに必要な、VPC およびセキュリティグループリソースを使用することをユー ザーに許可します。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:AttachClassicLinkVpc", "Resource": "arn:aws:ec2:region:account:instance/*", "Condition": { "StringEquals": { "ec2:InstanceType":"m3.large" } } }, { "Effect": "Allow", "Action": "ec2:AttachClassicLinkVpc", "Resource": [ "arn:aws:ec2:region:account:vpc/*", "arn:aws:ec2:region:account:security-group/*" ] } ] } 次のポリシーでは、インスタンスを特定の VPC (vpc-1a2b3c4d) にのみリンクするアクセス許 可、VPC の特定のセキュリティグループのみインスタンス (sg-1122aabb と sg-aabb2233) に関連 付けるアクセス許可をユーザーに付与します。ユーザーは、インスタンスを他の VPC にリンクするこ とはできず、他の VPC のセキュリティグループを指定してリクエスト内のインスタンスに関連付ける ことはできません。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:AttachClassicLinkVpc", "Resource": [ "arn:aws:ec2:region:account:vpc/vpc-1a2b3c4d", "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:security-group/sg-1122aabb", "arn:aws:ec2:region:account:security-group/sg-aabb2233" ] } 626 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー ] } d. インスタンスをリンク解除する 次のポリシーでは、インスタンスが「unlink=true」タグを持つ場合にのみ、リンクされた EC2Classic インスタンスを VPC からリンク解除するアクセス許可をユーザーに付与します。2 番目のス テートメントでは、VPC からインスタンスをリンク解除するのに必要な、VPC リソースを使用する アクセス許可をユーザーに付与します。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:DetachClassicLinkVpc", "Resource": [ "arn:aws:ec2:region:account:instance/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/unlink":"true" } } }, { "Effect": "Allow", "Action": "ec2:DetachClassicLinkVpc", "Resource": [ "arn:aws:ec2:region:account:vpc/*" ] } ] } Example 7. リザーブドインスタンスを使用する 次のポリシーでは、アカウントでリザーブドインスタンスを表示、変更、購入するアクセス権限を ユーザーに与えます。 個別のリザーブドインスタンスにリソースレベルのアクセス権限を設定することはできません。この ポリシーは、ユーザーがアカウントのすべてのリザーブドインスタンスにアクセスできることを意味 します。 Resource 要素は * ワイルドカードを使用して、ユーザーがそのアクションにすべてのリソースを指 定できることを示しています。この場合、アカウントのすべてのリザーブドインスタンスをリスト して変更できます。ユーザーは、アカウント認証情報を使用してリザーブドインスタンスを購入する こともできます。また、API アクションがリソースレベルのアクセス許可をサポートしていない場合 も、* ワイルドカードが必要です。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeReservedInstances", "ec2:ModifyReservedInstances", "ec2:PurchaseReservedInstancesOffering", "ec2:DescribeAvailabilityZones", 627 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー "ec2:DescribeReservedInstancesOfferings" ], "Resource": "*" } ] } 次のコードでは、アカウント内のリザーブドインスタンスを表示および変更できるようにユーザーに 許可しています。新しいリザーブドインスタンスの購入は、許可していません。 { ""Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeReservedInstances", "ec2:ModifyReservedInstances", "ec2:DescribeAvailabilityZones" ], "Resource": "*" } ] } Amazon EC2 コンソールで機能するサンプル ポリシー IAM ポリシーを使用して、Amazon EC2 コンソールで特定のリソースを表示、および操作するアクセ ス許可をユーザーに付与することができます。上記のセクションのサンプルポリシーを使用すること はできますが、これらは AWS CLI または AWS SDK で作成されたリクエスト向けに設計されていま す。コンソールではこの機能を実行するために追加の API アクションを使用するので、これらのポリ シーは正常に動作しない可能性があります。たとえば、DescribeVolumes API アクションのみを使 用するアクセス許可を持つユーザーがコンソールでボリュームを表示しようとすると、エラーが発生 します。このセクションでは、コンソールの特定の部分をユーザーが操作できるようになるポリシー を説明します。 • 1: 読み取り専用アクセス (p. 629) • 2: EC2 起動ウィザードを使用する (p. 630) • 3: ボリュームを操作する (p. 631) • 4: セキュリティグループを操作する (p. 632) • 5: Elastic IP アドレスの操作 (p. 633) • 6. リザーブドインスタンスを使用する (p. 634) Note コンソールでタスクを実行するために必要な API アクションを探すには、AWS CloudTrail な どのサービスを使用できます。詳細については、AWS CloudTrail User Guide を参照してく ださい。ポリシーにより特定のリソースを作成または変更するアクセス許可が付与されない 場合、コンソールではエンコードされた診断情報のメッセージが表示されます。AWS STS の DecodeAuthorizationMessage API アクション、または AWS CLI の decode-authorizationmessage コマンドを使用してメッセージをデコードできます。 Amazon EC2 向けのポリシー作成の詳細については、AWS セキュリティブログの投稿「Granting Users Permission to Work in the Amazon EC2 Console」を参照してください。 628 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー Example 1: 読み取り専用アクセス ユーザーが Amazon EC2 コンソールですべてのリソースを表示できるようにするには、次の例と同じ ポリシーを使用します: 1: 読み取り専用アクセス (p. 618)。別のステートメントによりユーザーにア クセス許可が与えられない限り、ユーザーはリソースのアクションを実行したり新しいリソースを作 成することができません。 a. インスタンス、AMIS、スナップショットを表示する 代わりに、リソースのサブセットへの読み取り専用アクセスを提供できます。これを行うに は、ec2:Describe API アクションの * (ワイルドカード) を各リソースの固有の ec2:Describe ア クションに置き換えます。次のポリシーによりユーザーは Amazon EC2 コンソールですべてのインス タンス、AMI、およびスナップショットを表示できます。ec2:DescribeTags アクションにより、 ユーザーはパブリック AMI を表示できます。コンソールでタグ付け情報にパブリック AMI を表示さ せる必要がありますが、ユーザーがプライベート AMI だけを表示できるようにする場合は、このアク ションを削除できます。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeTags", "ec2:DescribeSnapshots" ], "Resource": "*" } ] } Note 現在、Amazon EC2 ec2:Describe* API アクションは、リソースレベルのアクセス許可を サポートしていません。そのため、ユーザーがコンソールで表示できる個人のリソースを 制御できません。したがって、上記のステートメントの Resource エレメントには、* (ワ イルドカード) が必要です。どの Amazon EC2 API アクションでどの ARN を使用できるか については、Amazon EC2 API アクションでサポートされるリソースレベルのアクセス許 可 (p. 604) を参照してください。 b. インスタンスと CloudWatch メトリクスを表示する 以下のポリシーは、ユーザーに対して Amazon EC2 コンソールでのインスタンスの表示、 [Instances] ページの [Monitoring] タブでの CloudWatch アラームおよびメトリクスの表示を許可しま す。Amazon EC2 コンソールでは、CloudWatch API がアラームとメトリクスの表示に使用されるた め、cloudwatch:DescribeAlarms および cloudwatch:GetMetricStatistics アクションを使 用するアクセス権限をユーザーに付与する必要があります。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics" ], "Resource": "*" } ] } 629 の画面です。ユーザーがウィザードのオプションを操作できるように、API アクションを使用するア { クセス許可をポリシーに含める必要があります。ポリシーにそれらのアクションを使用するアクセス "Version": "2012-10-17", 許可が含まれない場合、ウィザードの一部の項目は適切にロードされず、ユーザーは起動を完了でき "Statement": [{ ません。"Effect": "Allow", Amazon Elastic Compute Cloud "Action": [ Linux インスタンス用ユーザーガイド "ec2:DescribeInstances", "ec2:DescribeImages", IAM ポリシー "ec2:DescribeKeyPairs","ec2:DescribeVpcs", "ec2:DescribeSubnets", ユーザーに ec2:CreateTags アクションを使用するアクセス許可を付与するには注意が "ec2:DescribeSecurityGroups" { 最初のステートメントでは、上記の例に示したように、起動ウィザードでオプションを表示するアク Example 2: EC2 起動ウィザードを使用する 必要です。これにより、 ec2:ResourceTag 条件キーを使用する能力が限定され、他のリ ], "Version": "2012-10-17", セス許可がユーザーに付与されます。2 番目のステートメントでは、ec2:RunInstances アクショ ポリシーに次のような API アクションを追加して、ユーザーに追加のオプションを提供できます。 ソースの使用が制限されます。ユーザーは、リソースのタグを変更してその制限を回避で "Resource": "*" "Statement": [{ ンでネットワークインターフェイス、ボリューム、キーペア、セキュリティグループ、サブネットリ きます。 "Allow", },"Effect": ソースを使用するアクセス許可が付与されます。これは、ユーザーが VPC でインスタンスを起動す • ec2:DescribeAvailabilityZones : EC2 Classic 内で起動している場合、特定のアベイラビリ { "Action": ec2:RunInstances [ るために必要です。 アクションの使用方法の詳細については、「5: インスタン ティゾーンを表示して選択します。 "Effect": "Allow", "ec2:DescribeInstances", "ec2:DescribeImages", スを起動する (RunInstances) (p. 621)」を参照してください。3 番目と 4 番目のステートメントで • ec2:DescribeNetworkInterfaces : VPC 内で起動している場合、選択したサブネット内に存在 "Action": "ec2:RunInstances", "ec2:DescribeKeyPairs","ec2:DescribeVpcs", "ec2:DescribeSubnets", 次のポリシーにより、ユーザーは Amazon が所有する AMI を使用して m1.small インスタンスを は、インスタンスと AMI リソースを使用するアクセス許可がそれぞれ付与されますが、インスタンス するネットワークインターフェイスを表示して選択します。 "Resource": "*" "ec2:DescribeSecurityGroups" 特定のサブネット ( subnet-1a2b3c4d ) でのみ起動することができます。ユーザーは sa-east-1 リー が m1.small インスタンスの場合のみ、および AMI が Amazon によって所有されている場合のみ付 } •与されます。 ec2:CreateSecurityGroup : 新しいセキュリティグループを作成します。たとえば、ウィザード ], ジョンでのみ起動できます。ユーザーが異なるリージョンを選択するか、起動ウィザードで異なるイ ] の推奨される launch-wizard-x セキュリティグループを作成します。ただし、このアクション単 "Resource": "*" ンスタンスタイプ、AMI、またはサブネットを選択すると、起動は失敗します。 } 独では、セキュリティグループが作成されるだけです。ルールは追加または変更されません。イン }, バウンドルールを追加するには、ユーザーに ec2:AuthorizeSecurityGroupIngress API アク { ションを使用するアクセス許可を付与する必要があります。VPC セキュリティグループにアウトバ "Effect": "Allow", Important ウンドルールを追加するには、ユーザーに "Action":"ec2:RunInstances", ec2:AuthorizeSecurityGroupEgress API アクショ ンを使用するアクセス許可を付与する必要があります。既存のルールを変更または削除するには、 "Resource": [ "arn:aws:ec2:sa-east-1:111122223333:network-interface/*", ec2:RevokeSecurityGroup* API アクションを使用するアクセス許可を付与 b. ユーザーに関連する 特定のインスタンスのタイプ、サブネット、リージョンへのアクセスを制限する "arn:aws:ec2:sa-east-1:111122223333:volume/*", する必要があります。 "arn:aws:ec2:sa-east-1:111122223333:key-pair/*", • ec2:CreateTags : インスタンスにタグを追加します。起動ウィザードはデフォルトで Name の "arn:aws:ec2:sa-east-1:111122223333:security-group/*", キーを含むタグをインスタンスに追加しようとします。このアクションを使用するアクセス許可を "arn:aws:ec2:sa-east-1:111122223333:subnet/subnet-1a2b3c4d" 持たないユーザーには、このタグをインスタンスに適用できなかったという警告が表示されます。 ] 現在、Amazon EC2 Describe* API アクションは、リソースレベルのアクセス許可をサポートして ただし、これが起動の成功に影響を与えることはありません。したがって絶対に必要な場合のみ }, いません。そのため、ユーザーが起動ウィザードで表示できる個人のリソースを制限することはでき ユーザーにこのアクションを使用するアクセス許可を付与することをお勧めします。 { ません。ただし、 ec2:RunInstances API アクションにリソースレベルのアクセス許可を適用して、 "Effect": "Allow", ユーザーがインスタンスの起動に使用できるリソースを制限できます。ユーザーが使用する権限がな "Action": "ec2:RunInstances", いオプションを選択すると、起動は失敗します。 "Resource": [ "arn:aws:ec2:sa-east-1:111122223333:instance/*" ], "Condition": { "StringEquals": { "ec2:InstanceType": "m1.small" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:sa-east-1::image/ami-*" ], "Condition": { "StringEquals": { "ec2:Owner": "amazon" } } } ] } 630 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー Example 3: ボリュームを操作する 次のポリシーは、ボリュームを表示して作成し、特定のインスタンスにボリュームをアタッチ、およ びデタッチするアクセス許可をユーザーに付与します。 ユーザーは、"purpose=test" というタグを含むインスタンスに対してどのボリュームもアタッチ できます。同様に、それらのインスタンスからボリュームをデタッチすることもできます。Amazon EC2 コンソールを使用してボリュームをアタッチするには、ユーザーに ec2:DescribeInstances アクションを使用するアクセス許可があると、[Attach Volume] ダイアログボックスのあらかじめ用意 されたリストからインスタンスを選択できるため、役立ちます。 ただし、これにより、コンソールの [Instances] ページでもすべてのインスタンスが表示されるため、このアクションを省略することもで きます。 最初のステートメントの ec2:DescribeVolumeStatus および ec2:DescribeAvailabilityZones アクションは、コンソールでボリュームを正しく表示するため に必須です。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeVolumeStatus", "ec2:DescribeAvailabilityZones", "ec2:CreateVolume", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:region:111122223333:instance/*", "Condition": { "StringEquals": { "ec2:ResourceTag/purpose": "test" } } }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:region:111122223333:volume/*" } ] } 631 "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupEgress" ], ユーザーが Amazon EC2 "Resource": [ コンソールの [Create Security Group] ダイアログボックスを使用して作業で a. セキュリティグループを表示し、ルールを追加/削除する きるようにするポリシーを作成できます。このダイアログボックスを使用するには、ユーザーに少な "arn:aws:ec2:region:111122223333:security-group/*" Amazon Elastic Compute Cloud くとも以下の API アクションを使用するアクセス許可を付与する必要があります。 ], Linux インスタンス用ユーザーガイド "Condition": { IAM ポリシー • ec2:CreateSecurityGroup "StringEquals": :{新しいセキュリティグループを作成するには •b. ec2:DescribeVpcs : [VPC] リストに既存の VPC のリストを表示します。VPC のセキュリティグ "ec2:ResourceTag/Department": "Test" [Create 4: Security Group] ダイアログボックスを使用する Example セキュリティグループを操作する } ループを作成していなくてもこのアクションは必須です。 } } これらのアクセス許可で、ユーザーは新しいセキュリティグループを正常に作成できますが、ルー ] ルを追加することはできません。[Create Security Group] ダイアログボックスでルールを操作するに } は、ポリシーに次の API アクションを追加します。 • ec2:AuthorizeSecurityGroupIngress: インバウンドルールを追加します。 • ec2:AuthorizeSecurityGroupEgress: VPC セキュリティグループにアウトバウンドルールを 追加します。 • ec2:RevokeSecurityGroupIngress: 既存のインバウンドルールを変更または削除します。こ れは、ユーザーがコンソールで [Copy to new] 機能を使用する場合に役に立ちます。この機能によ り、[Create Security Group] ダイアログボックスが開き、選択したセキュリティグループと同じ ルールが追加されます。 • ec2:RevokeSecurityGroupEgress: VPC セキュリティグループのアウトバウンドルールを変更 または削除します。これは、すべてのアウトバウンドトラフィックを許可するデフォルトのアウト バウンドルールを変更または削除する場合に役に立ちます。 • ec2:DeleteSecurityGroup: 無効なルールを保存できない状況に対応します。ユーザーが無効 なルールを持つセキュリティグループを作成する場合、コンソールは最初にセキュリティグループ を作成し、ルールを追加しようとします。ルールの追加に失敗した後、セキュリティグループは削 除されます。ユーザーには [Create Security Group] ダイアログボックスにエラーが表示されたまま です。ルールは一覧に表示されたままなので、ユーザーは無効なルールを修正し、セキュリティグ ループを再作成してみることができます。この API アクションは必須ではありませんが、ユーザー にこのアクションを使用するアクセス許可が付与されておらず、無効なルールを持つセキュリティ グループを作成しようとすると、ルールのないセキュリティグループが作成され、後でルールを追 加することが必要になります。 次のポリシーは、[Create Security Group] ダイアログボックスを使用し、特定の VPC (vpc-1a2b3c4d) に関連付けられたセキュリティグループに対してインバウンドおよびアウトバウン ドのルールを作成するアクセス許可をユーザーに付与します。ユーザーは EC2-Classic または別の 現在、ec2:CreateSecurityGroup API アクションは、リソースのレベルのアクセス許 VPC のセキュリティグループを作成できますが、ルールを追加することはできません。同様に、ユー 可をサポートしていません。ただし、 ec2:AuthorizeSecurityGroupIngress および { ザーは VPC vpc-1a2b3c4d に関連付けられていないの既存のセキュリティグループにルールを追加 ec2:AuthorizeSecurityGroupEgress アクションにリソースレベルのアクセス許可を適用して "Version": "2012-10-17", することもできません。ユーザーには、コンソールですべてのセキュリティグループを表示するア ルールを作成する方法を制御できます。 "Statement": [{ クセス許可も付与されます。これにより、ユーザーはインバウンドルールを追加するセキュリティグ "Effect": "Allow", ループをより簡単に識別できるようになります。このポリシーは、ユーザーに VPC vpc-1a2b3c4d "Action": [ に関連付けられたセキュリティグループを削除するアクセス許可も付与します。 "ec2:DescribeSecurityGroups", "ec2:CreateSecurityGroup", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress" ], "Resource": "arn:aws:ec2:region:111122223333:security-group/*", "Condition":{ "ArnEquals": { "ec2:Vpc": "arn:aws:ec2:region:111122223333:vpc/vpc-1a2b3c4d" } } } ] } 632 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ポリシー Example 5: Elastic IP アドレスの操作 次のポリシーでは、Amazon EC2 コンソールで Elastic IP アドレスを表示するアクセス許可がユー ザーに付与されます。コンソールには、ec2:DescribeInstances アクションを使用して、Elastic IP アドレスが関連付けられているインスタンスに関する情報が表示されます。ユーザーにこのアク ションを使用するアクセス許可が付与されていない場合、Elastic IP アドレスは正しくロードされませ ん。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeAddresses", "ec2:DescribeInstances" ], "Resource": "*" } ] } ユーザーが Elastic IP アドレスを使用できるようにするには、ポリシーに次のアクションを追加でき ます。 • ec2:AllocateAddress: VPC または EC2-Classic で使用するアドレスを割り当てます。 • ec2:ReleaseAddress: Elastic IP アドレスを解放するには • ec2:DescribeNetworkInterfaces: [Associate Address] ダイアログボックスで使用します。こ のダイアログボックスには、Elastic IP アドレスを関連付けることができるネットワークインター フェイスが表示されます。ユーザーにこのアクションを使用するアクセス許可が付与されていな い場合は開きません。ただし、これは EC2-VPC にのみ適用されます。このアクションは、EC2Classic でインスタンスに Elastic IP アドレスを関連付ける場合は必要ありません。 • ec2:AssociateAddress: Elastic IP アドレスをインスタンスまたはネットワークインターフェイ スに関連付けます。 • ec2:DisassociateAddress: Elastic IP アドレスとインスタンスまたはネットワークインターフェ イスの関連付けを解除します。 633 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ロール Example 6. リザーブドインスタンスを使用する 以下のポリシーを IAM ユーザーにアタッチすることができます。これにより、アカウントのリザーブ ドインスタンスの表示と変更、および AWS マネジメントコンソールでの新しいリザーブドインスタ ンス購入のアクセス権限がユーザーに付与されます。 このポリシーにより、ユーザーはアカウントのすべてのリザーブドインスタンスと、オンデマンドイ ンスタンスを表示できます。個別のリザーブドインスタンスにリソースレベルのアクセス権限を設定 することはできません。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeReservedInstances", "ec2:ModifyReservedInstances", "ec2:PurchaseReservedInstancesOffering", "ec2:DescribeInstances", "ec2:DescribeAvailabilityZones", "ec2:DescribeReservedInstancesOfferings" ], "Resource": "*" } ] } ec2:DescribeAvailabilityZones アクションは、リザーブドインスタンスを購入できるアベイ ラビリティーゾーンに関する情報を Amazon EC2 コンソールで表示できるようにするために必要で す。ec2:DescribeInstances アクションは必須ではありませんが、このアクションにより、ユー ザーがアカウントのインスタンスを表示し、正しい仕様に合わせて予約を購入できるようになりま す。 ec2:DescribeInstances を削除するなど、API アクションを調整してユーザーアクセスを制限でき ます。ec2:DescribeAvailabilityZones はユーザーが読み取り専用アクセスを持っていることを 意味します。 Amazon EC2 の IAM ロール アプリケーションは AWS 認証情報で API リクエストに署名する必要があります。したがって、アプ リケーション開発者である場合、EC2 インスタンスで実行するアプリケーションの認証情報を管理 する戦略が必要です。たとえば、インスタンスに AWS 認証情報を安全に配布することができ、他の ユーザーから保護しながら、インスタンスのアプリケーションを有効にし、リクエストに署名するた めに認証情報を使用できます。ただし、特に AWS が代理で作成するスポットインスタンスや Auto Scaling グループのインスタンスなどにおいて、またその他の各インスタンスに認証情報を安全に配布 することは難しい場合があります。 また、AWS 認証情報を循環させる場合、各インスタンスの認証 情報を更新できる必要もあります。 アプリケーションが使用するセキュリティ認証情報をお客様が管理する必要なく、アプリケーショ ンがインスタンスから API リクエストを安全に作成できるように、IAM ロールをデザインしまし た。AWS 認証情報を作成および配布する代わりに、以下の IAM ロールを使用して API リクエストを 作成するアクセス許可を委任できます。 1. IAM ロールを作成する 2. ロールを行うアカウントまたは AWS サービスを定義する 3. ロールを仮定してからアプリケーションが使用できる API アクションおよびリソースを定義する 4. インスタンスを起動する際にロールを指定する 5. 一時的な認証情報のセットを取得およびそれらを使用するアプリケーションを入手する 634 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ロール たとえば、IAM ロールを使用し、Amazon S3 のバケットを使用する必要のあるインスタンスで実行中 のアプリケーションに、アクセス許可を与えることができます。 Note Amazon EC2 は、IAM ロールのコンテナとしてインスタンププロファイルを使用します。コ ンソールを使用して IAM ロールを作成すると、コンソールによりインスタンスプロファイル が自動的に作成され、対応するロールと同じ名前が付けられます。AWS CLI、API、または AWS SDK を使用してロールを作成する場合、ロールとインスタンスプロファイルを別個のア クションとして作成し、異なる名前を付けます。IAM ロールを使用してインスタンスを起動 するには、そのインスタンスプロファイルの名前を指定します。Amazon EC2 コンソールを 使用してインスタンスを起動する場合、インスタンスと関連付けるロールを選択する必要が ありますが、実際に表示されるリストは、インスタンスプロファイル名のリストです。詳細 については、「インスタンスプロファイル」 (IAM ユーザーガイド) を参照してください。 JSON 形式のポリシーを作成することにより、IAM ロールのアクセス許可を指定できます。これらの ポリシーは、IAM ユーザー用に作成するポリシーに類似しています。ロールに変更を加える場合、変 更は認証情報の管理を単純化するためにすべてのインスタンスに反映されます。 Note ロールを既存のインスタンスに割り当てることはできません。ロールは新しいインスタンス を起動するときのみ指定できます。 IAM ロールの作成と使用の詳細については、IAM ユーザーガイド の「Roles」を参照してください。 トピック • インスタンスメタデータからセキュリティ認証情報を取得する (p. 635) • IAM ロールを使用してインスタンスを起動するための、IAM ユーザーアクセス許可の付 与 (p. 636) • コンソールを使用して IAM ロールを作成する (p. 636) • コンソールから IAM ロールを使用してインスタンスを起動する (p. 637) • AWS CLI を使用して IAM ロールを作成する (p. 638) • AWS CLI から IAM ロールを使用してインスタンスを起動する (p. 639) インスタンスメタデータからセキュリティ認証情報を取得する インスタンスのアプリケーションは、インスタンスメタデータアイテム iam/securitycredentials/role-name のロールから提供されたセキュリティ認証情報を取得します。アプリケー ションには、ロールに関連付けられたセキュリティ認証情報によって、ロールに対して定義したアク ションおよびリソースのアクセス許可が付与されます。これらのセキュリティ認証情報は一時的なも のであり、私たちが自動的に循環させます。新しい認証情報は、古い認証情報が失効する少なくとも 5 分前から有効になるようにします。 Warning IAM ロールでインスタンスメタデータを使用するサービスを使用する場合は、サービスで HTTP 呼び出しが行われるときに認証情報を公開しないように注意する必要があります。認証 情報を公開できるサービスの種類には、HTTP プロキシ、HTML/CSS 検証サービス、および XML インクルードをサポートする XML プロセッサーが含まれます。 以下のコマンドでは、s3access という名前の IAM ロールのセキュリティ認証情報を取得します。 635 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ロール $ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ s3access 出力例を次に示します。 { "Code" : "Success", "LastUpdated" : "2012-04-26T16:39:16Z", "Type" : "AWS-HMAC", "AccessKeyId" : "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "Token" : "token", "Expiration" : "2012-04-27T22:39:16Z" } インスタンスで実行されるアプリケーション、AWS CLI、および Tools for Windows PowerShell コマンドについて、一時的なセキュリティ認証情報を明示的に取得する必要はありません。AWS SDK、AWS CLI、および Tools for Windows PowerShell は EC2 インスタンスメタデータサービスか ら自動的に認証情報を取得して使用します。一時的なセキュリティ認証情報を使用してインスタンス の外部で呼び出しを行う (IAM ポリシーをテストするなど) には、アクセスキー、秘密キー、および セッショントークンを提供する必要があります。詳細については、「一時的なセキュリティ認証情報 を使用して AWS リソースへのアクセスをリクエストする」 (IAM ユーザーガイド) を参照してくださ い。 インスタンスのメタデータの詳細については、「インスタンスメタデータとユーザーデー タ (p. 367)」を参照してください。 IAM ロールを使用してインスタンスを起動するための、IAM ユーザーアクセス許可の付与 IAM ユーザーが IAM ロールでインスタンスを起動できるようにするには、ロールをインスタンスにわ たすユーザーアクセス許可を与える必要があります。 たとえば以下の IAM ポリシーは、s3access という名前の IAM ロールを使用してインスタンスを起動 するアクセス許可をユーザーに与えます。 { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/s3access" }] } または、ポリシー内でリソースを「*」と指定することで、IAM ユーザーに対し、お客様のすべての ロールへのアクセス許可を与えることができます。ただし、お客様のロール (既存のロールおよび今後 作成するロールを含む) を使用してインスタンスを起動するユーザーに、必要ではない、または与える べきではないアクセス許可が与えられる可能性があることを考慮してください。 詳細については、IAM ユーザーガイド の「Permissions Required for Using Roles with Amazon EC2」 を参照してください。 コンソールを使用して IAM ロールを作成する ロールでインスタンスを起動するには、事前に IAM ロールを作成する必要があります。 636 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ロール IAM コンソールを使用して IAM ロールを作成するには 1. https://console.aws.amazon.com/iam/ で Identity and Access Management (IAM) コンソールにサ インインします。 2. ナビゲーションペインで [Roles] を選択し、続いて [Create New Role] を選択します。 3. [Set Role Name] ページで、ロールの名前を入力し、[Next Step] を選択します。 4. [Select Role Type] ページで、[Amazon EC2 ] の隣にある [Select] を選択します。 5. [Attach Policy] ページで、AWS 管理ポリシーを選択します。たとえば、Amazon EC2 では以下の AWS 管理ポリシーのいずれかが、ニーズを満たす場合があります。 • PowerUserAccess • ReadOnlyAccess • AmazonEC2FullAccess • AmazonEC2ReadOnlyAccess 6. ロール情報を確認し、必要に応じてロールを編集して、[Create Role] を選択します。 コンソールから IAM ロールを使用してインスタンスを起動す る IAM ロールを作成した後、インスタンスを起動して、起動中にそのロールをインスタンスに関連付け ることができます。 Important IAM ロールを作成した後、適切なアクセス許可が反映されるまで数秒ほどかかります。ロー ルを使用した最初のインスタンスの起動が失敗した場合は、数秒待ってからもう一度試して ください。詳細については、IAM ユーザーガイド の「Troubleshooting Working with Roles」 を参照してください。 IAM ロールを使用してインスタンスを起動するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ダッシュボードで、[Launch Instance] を選択します。 3. AMI を選択し、インスタンスタイプを選択して、[Next: Configure Instance Details] を選択しま す。 4. [Configure Instance Details] ページで、作成した IAM ロールを [IAM role] リストから選択しま す。 Note [IAM role] リストには、IAM ロールの作成時に作成したインスタンスプロファイルの名前 が表示されます。コンソールを使用して IAM ロールを作成した場合、インスタンスプロ ファイルが自動的に作成され、ロールと同じ名前が付けられます。AWS CLI、API、また は AWS SDK を使用して IAM を作成した場合、インスタンスプロファイルに異なる名前 を付けた可能性があります。 5. その他の詳細を設定し、ウィザードの残りの部分の指示に従うか、[Review and Launch] を選択し てデフォルト設定を受け入れ、直接 [Review Instance Launch] ページに移動します。 6. 設定を確認して [Launch] を選択し、キーペアを選択してインスタンスを起動します。 7. アプリケーションで Amazon EC2 API アクションを使用している場合、インスタンスで有効にさ れている AWS セキュリティ認証情報を取得し、それを使用しリクエストに署名します。これは AWS SDK によって実行されますのでご注意ください。 637 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ロール $ curl http://169.254.169.254/latest/meta-data/iam/securitycredentials/role-name AWS CLI を使用して IAM ロールを作成する ロールでインスタンスを起動するには、事前に IAM ロールを作成する必要があります。 AWS CLI を使用して IAM ロールを作成するには • Amazon S3 バケットの使用を許可するポリシーを設定した IAM ロールを作成します。 a. 以下の信頼ポリシーを作成し、ec2-role-trust-policy.json という名前のテキストファ イルに保存します。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] } b. s3access ロールを作成し、作成した信頼ポリシーを指定します。 $ aws iam create-role --role-name s3access --assume-role-policydocument file://ec2-role-trust-policy.json { "Role": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROAIIZKPBKS2LEXAMPLE", "CreateDate": "2013-12-12T23:46:37.247Z", "RoleName": "s3access", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/s3access" } } c. アクセスポリシーを作成し、ec2-role-access-policy.json という名前のテキストファ イルに保存します。たとえば、このポリシーは、インスタンスで実行しているアプリケー ションに対し、Amazon S3 の管理権限を与えます。 638 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド IAM ロール { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": ["*"] } ] } d. アクセスポリシーをロールに付与します。 $ aws iam put-role-policy --role-name s3access --policy-name S3Permissions --policy-document file://ec2-role-access-policy.json e. s3access-profile という名前のインスタンスプロファイルを作成します。 $ aws iam create-instance-profile --instance-profile-name s3accessprofile { "InstanceProfile": { "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE", "Roles": [], "CreateDate": "2013-12-12T23:53:34.093Z", "InstanceProfileName": "s3access-profile", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/s3accessprofile" } } f. s3access-profile インスタンスプロファイルに s3access ロールを追加します。 $ aws iam add-role-to-instance-profile --instance-profile-name s3access-profile --role-name s3access これらのコマンドの詳細については、AWS Command Line Interface Reference にある createrole、put-role-policy および create-instance-profile を参照してください。 AWS CLI から IAM ロールを使用してインスタンスを起動する IAM ロールを作成した後、インスタンスを起動して、起動中にそのロールをインスタンスに関連付け ることができます。 Important IAM ロールを作成した後、適切なアクセス許可が反映されるまで数秒ほどかかります。ロー ルを使用した最初のインスタンスの起動が失敗した場合は、数秒待ってからもう一度試して ください。詳細については、IAM ユーザーガイド の「Troubleshooting Working with Roles」 を参照してください。 639 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ネットワークアクセス AWS CLI から IAM ロールを使用してインスタンスを起動するには 1. インスタンスプロファイルを使用してインスタンスを起動します。以下の例は、インスタンスプ ロファイルを使用してインスタンスを起動する方法を示しています。 $ aws ec2 run-instances --image-id ami-11aa22bb --iam-instance-profile Name="s3access-profile" --key-name my-key-pair --security-groups mysecurity-group --subnet-id subnet-1a2b3c4d 詳細については、AWS Command Line Interface Reference の run-instances を参照してくださ い。 2. アプリケーションで Amazon EC2 API アクションを使用している場合、インスタンスで有効にさ れている AWS セキュリティ認証情報を取得し、それを使用しリクエストに署名します。これは AWS SDK によって実行されますのでご注意ください。 $ curl http://169.254.169.254/latest/meta-data/iam/securitycredentials/role-name Linux インスタンス用の受信トラフィックの認可 セキュリティグループを使用すると、どのトラフィックがインスタンスに到達できるかなど、インス タンスへのトラフィックを制御できます。たとえば、ホームネットワークからのコンピュータのみが SSH を使用してインスタンスにアクセスできるように許可できます。インスタンスがウェブサーバー の場合、すべての IP アドレスが HTTP 経由でインスタンスにアクセスできるようにすることで、外 部ユーザーはウェブサーバーのコンテンツを閲覧できるようなります。 インスタンスへのネットワークアクセスを有効にするには、インスタンスへのインバウンドトラ フィックを許可する必要があります。受信トラフィック用のポートを開くには、起動時にインスタン スに関連付けたセキュリティグループにルールを追加します。 インスタンスに接続するには、コンピュータのパブリック IPv4 アドレスからの SSH トラフィックを 承認するルールをセットアップする必要があります。追加の IP アドレス範囲からの SSH トラフィッ クを許可するには、承認する必要がある範囲ごとに別のルールを追加します。 IPv6 の VPC を有効にして IPv6 アドレスを使用してインスタンスを起動している場合は、パブリック IPv4 アドレスではなくインスタンスの IPv6 アドレスを使用してインスタンスに接続できます。ロー カルコンピュータに IPv6 アドレスがあり、IPv6 を使用するように設定されている必要があります。 Windows インスタンスへのネットワークアクセスを利用可能にする必要がある場合は、「Windows インスタンス用の受信トラフィックの認可」 (Windows インスタンスの Amazon EC2 ユーザーガイ ド) を参照してください。 開始する前に だれがインスタンスへのアクセスを必要としているか (信頼する単一のホストや特定のネットワーク であるか、ローカルコンピュータのパブリック IPv4 アドレスであるかなど) を判断します。Amazon EC2 コンソールのセキュリティグループエディタは、ローカルコンピュータのパブリック IPv4 アド レスを自動的に検出できます。別の方法として、インターネットブラウザで検索文字列として「私の IP アドレスは何ですか?」を使用するか、次のサービス: http://checkip.amazonaws.com/ を使用する こともできます。ISP 経由で、またはファイアウォールの内側から静的な IP アドレスなしで接続して いる場合は、クライアントコンピュータで使用されている IP アドレスの範囲を見つける必要がありま す。 640 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ネットワークアクセス Caution 0.0.0.0/0 を使用すると、すべての IPv4 アドレスから SSH を使用してインスタンスにアク セスできるようになります。::/0 を使用すると、すべての IPv6 アドレスからインスタンス にアクセスできるようになります。これはテスト環境で短時間なら許容できますが、実稼働 環境で行うのは安全ではありません。実稼働環境では、特定の IP アドレスまたは特定のアド レス範囲にのみ、インスタンスへのアクセスを限定します。 セキュリティグループの詳細については、Linux インスタンスの Amazon EC2 セキュリティグルー プ (p. 579) を参照してください。 Linux インスタンスに対するインバウンド SSH トラフィック のルールの追加 セキュリティグループは、関連付けられたインスタンスのファイアウォールとして動作し、インバウ ンドトラフィックとアウトバウンドトラフィックの両方をインスタンスレベルでコントロールしま す。SSH を使用して IP アドレスから Linux インスタンスに接続できるようにするためのルールをセ キュリティグループに追加します。 コンソールを使用して、IPv4 でインバウンド SSH トラフィック用のルールをセキュリティグ ループに追加するには 1. Amazon EC2 コンソールのナビゲーションペインで、[Instances] を選択します。インスタンスを 選択し、[Description] タブを確認します。[Security groups] リストに、インスタンスに関連付けら れたセキュリティグループが表示されます。[view rules] を選択して、インスタンスに対して有効 なルールのリストを表示します。 2. ナビゲーションペインで、[Security Groups] を選択します。インスタンスに関連付けられている セキュリティグループのいずれかを選択します。 3. 詳細ペインの [Inbound] タブで、[Edit] を選択します。ダイアログで [Add Rule] を選択し、[Type] リストから [SSH] を選択します。 4. [Source] フィールドで [My IP] を選択すると、ローカルコンピューターのパブリック IPv4 アドレ スが自動的にフィールドに入力されます。別の方法として、[Custom] を選択してコンピューター またはネットワークのパブリック IPv4 アドレスを CIDR 表記で指定することもできます。たとえ ば、IPv4 アドレスが 203.0.113.25 である場合、この単一の IPv4 アドレスを CIDR 表記で示す には 203.0.113.25/32 と指定します。会社が特定の範囲からアドレスを割り当てている場合、 範囲全体 (203.0.113.0/24など) を指定します。 IP アドレスを見つける方法については、開始する前に (p. 640) を参照してください。 5. [Save] を選択します。 (VPC のみ) IPv6 アドレスを持つインスタンスを起動して、その IPv6 アドレスを使用してインスタン スに接続する場合は、SSH でインバウンド IPv6 トラフィックを許可するルールを追加する必要があ ります。 コンソールを使用して、IPv6 でインバウンド SSH トラフィック用のルールをセキュリティグ ループに追加するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Security Groups] を選択します。インスタンスのセキュリティグルー プを選択します。 3. [Inbound]、[Edit]、[Add Rule] の順に選択します。 4. [Type] で [SSH] を選択します。 5. [Source] フィールドで、コンピューターの IPv6 アドレスを CIDR 表記で指定します。たとえ ば、IPv6 アドレスが 2001:db8:1234:1a00:9691:9503:25ad:1761 である場合、この単一 641 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon VPC の IP アドレスを CIDR 表記で示すには 2001:db8:1234:1a00:9691:9503:25ad:1761/128 と指定します。会社が特定の範囲からアドレスを割り当てている場合、範囲全体 (2001:db8:1234:1a00::/64など) を指定します。 6. [Save] を選択します。 コマンドラインを使用してセキュリティグループにルールを追加するには 次のコマンドの 1 つを使用できます。このコマンドは、インスタンスではなく、ローカルシステムで 実行されていることを確認してください。これらのコマンドラインインターフェイスの詳細について は、「Amazon EC2 へのアクセス (p. 3)」を参照してください。 • authorize-security-group-ingress (AWS CLI) • Grant-EC2SecurityGroupIngress (AWS Tools for Windows PowerShell) インスタンスへのセキュリティグループの割り当て インスタンスを起動する際に、インスタンスにセキュリティグループを割り当てることができます。 ルールを追加または削除すると、それらの変更は、そのセキュリティグループを割り当てたすべての インスタンスに自動的に適用されます。 EC2-Classic でインスタンスを起動した後でセキュリティグループを変更することはできませ ん。VPC でインスタンスを起動した後、そのセキュリティグループを変更することができます。詳細 については、Amazon VPC ユーザーガイド の Changing an Instance's Security Groups を参照してく ださい。 Amazon EC2 と Amazon Virtual Private Cloud Amazon Virtual Private Cloud (Amazon VPC) を使用すると、AWS クラウド内の独自の論理的に分離 された領域の仮想ネットワーク (Virtual Private Cloud (VPC) とも呼ばれます) を定義できます。AWS のリソース (インスタンスなど) を VPC 内部で起動できます。VPC は、お客様自身のデータセンター で運用されている従来のネットワークによく似ていますが、AWS のスケーラブルなインフラストラク チャを使用できるというメリットがあります。お客様の VPC はお客様が設定できます。たとえば、IP アドレス範囲の選択、サブネットの作成、ルートテーブル、ネットワークゲートウェイ、セキュリ ティの設定などが可能です。VPC のインスタンスをインターネットに接続できます。VPC を自社の データセンターに接続し、AWS クラウドを使用してデータセンターを拡張できます。各サブネットで のリソースの保護には、セキュリティグループ、ネットワークアクセスコントロールリストなど、複 数のセキュリティレイヤーを使用できます。詳細については、「Amazon VPC ユーザーガイド」を参 照してください。 アカウントは、リージョンごとに、EC2-VPC と EC2-Classic プラットフォームの両方をサポートし ている場合があります。2013 年 12 月 4 日より後にアカウントを作成した場合、EC2-VPC のみサ ポートされます。アカウントでサポートされるプラットフォームを調べるには、「サポートされてい るプラットフォーム (p. 649)」を参照してください。アカウントで EC2-VPC のみサポートされる場 合は、デフォルトの VPC が作成されます。デフォルトの VPC は、設定済みですぐに使用できる VPC です。デフォルトの VPC にすぐにインスタンスを起動できます。詳細については、Amazon VPC ユーザーガイド の「デフォルトの VPC とサブネット」を参照してください。アカウントで EC2Classic および EC2-VPC がサポートされる場合、どちらのプラットフォームにもインスタンスを起動 できます。アカウントがサポートするプラットフォームのタイプにかわらず、必要に応じた独自でデ フォルト以外の VPC を作成および設定をすることができます。 目次 • VPC を使用する利点 (p. 643) • EC2-Classic と EC2-VPC の違い (p. 643) 642 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド VPC を使用する利点 • EC2-Classic と EC2-VPC との間でのリソースの共有とアクセス (p. 646) • VPC でのみ利用可能なインスタンスタイプ (p. 648) • Amazon VPC ドキュメント (p. 649) • サポートされているプラットフォーム (p. 649) • ClassicLink (p. 650) • EC2-Classic の Linux インスタンスから VPC の Linux インスタンスへの移行 (p. 661) VPC を使用する利点 EC2-Classic の代わりに VPC でインスタンスを起動すると、次が可能になります。 • 開始から停止までの間に維持される静的プライベート IPv4 アドレスをインスタンスに割り当てる。 • 複数の IPv4 アドレスをインスタンスに割り当てる。 • ネットワークインターフェイスを定義し、1 つまたは複数のネットワークインターフェイスをイン スタンスに割り当てる • 実行中にインスタンスのセキュリティグループメンバーシップを変更する • インスタンスからのアウトバウンドトラフィックを制御し (egress フィルタリング)、インスタンス へのインバウンドトラフィックを制御する (ingress フィルタリング) • ネットワークアクセスコントロールリスト (ACL) の形でインスタンスにアクセス制御の層を追加す る • 単一テナントハードウェアでインスタンスを実行する • IPv6 アドレスをインスタンスに割り当てる。 EC2-Classic と EC2-VPC の違い 次の表は、EC2-Classic で起動したインスタンス、デフォルト VPC で起動したインスタンス、非デ フォルト VPC で起動したインスタンスの違いをまとめたものです。 特徴 EC2-Classic デフォルト VPC デフォルトではない VPC パブリック IPv4 アドレス (Amazon の パブリック IP アドレスプー ルより) インスタンスはパブリッ ク IPv4 アドレスを受け取 ります。 デフォルトのサブネット で起動されたインスタン スは、起動時に特に IPv4 アドレスを指定しない場 合、またはサブネットの パブリック IPv4 アドレス 属性を変更しない場合、 デフォルトでパブリック IPv4 アドレスを受け取り ます。 インスタンスは、起動時 に特に IPv4 アドレスを指 定しない場合、またはサ ブネットのパブリック IP アドレス属性を変更しな い場合、デフォルトでは パブリック IPv4 アドレス を受け取りません。 プライベート IPv4 アドレス インスタンスは、起動す るたびに、EC2-Classic の アドレス範囲からプライ ベート IPv4 アドレスを受 け取ります。 インスタンスはデフォル ト VPC のアドレス範囲か ら静的プライベート IPv4 アドレスを受け取りま す。 インスタンスは VPC のア ドレス範囲から静的プラ イベート IPv4 アドレスを 受け取ります。 複数のプライ ベート IPv4 アドレス 1 つのインスタンスには 1 つのプライベート IP アド レスを選択します。複数 の IP アドレスはサポート されません。 複数のプライベート IPv4 アドレスを 1 つのインス タンスに割り当てること ができます。 複数のプライベート IPv4 アドレスを 1 つのインス タンスに割り当てること ができます。 643 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic と EC2-VPC の違い 特徴 EC2-Classic デフォルト VPC デフォルトではない VPC Elastic IP ア ドレス (IPv4) 停止すると、Elastic IP と インスタンスの関連付け が解除されます。 停止しても、Elastic IP と インスタンスの関連付け が維持されます。 停止しても、Elastic IP と インスタンスの関連付け が維持されます。 DNS ホスト 名 DNS ホスト名はデフォ ルトで有効化されていま す。 DNS ホスト名はデフォ ルトで有効化されていま す。 DNS ホスト名はデフォ ルトで無効化されていま す。 セキュリティ グループ セキュリティグループ は、その他の AWS アカ ウントに属するセキュリ ティグループを参照でき ます。 セキュリティグループ は、VPC のみのセキュリ ティグループを参照でき ます。 セキュリティグループ は、VPC のみのセキュリ ティグループを参照でき ます。 VPC ごとに最大 100 のセ キュリティグループを作 成できます。 VPC ごとに最大 100 のセ キュリティグループを作 成できます。 インスタンスを起動する 際、セキュリティグルー プをいくつでも割り当て ることができます。 最大 5 つのセキュリティ グループを 1 つのインス タンスに割り当てること ができます。 最大 5 つのセキュリティ グループを 1 つのインス タンスに割り当てること ができます。 実行中のインスタンスの セキュリティグループは 変更できません。割り当 て済みのセキュリティグ ループのルールを変更す るか、インスタンスを新 しいインスタンスと置き 換える必要があります (置 き換えるには、まずイン スタンスから AMI を作成 し、この AMI から、目的 のセキュリティグループ を使用して新しいインス タンスを起動し、元のイ ンスタンスから Elastic IP アドレスに関連付けられ ているものをすべて解除 し、新しいインスタンス に関連付け、その後、元 のインスタンスを終了し ます)。 セキュリティグループを インスタンスに割り当 てられるのは、インスタ ンスの起動時と実行中で す。 セキュリティグループを インスタンスに割り当 てられるのは、インスタ ンスの起動時と実行中で す。 インバウンドトラフィッ クのみにルールを追加で きます。 インバウンドトラフィッ クとアウトバウンドトラ フィックのルールを追加 できます。 インバウンドトラフィッ クとアウトバウンドトラ フィックのルールを追加 できます。 最大 50 のルールをセキュ リティグループに追加で きます。 最大 50 のルールをセキュ リティグループに追加で きます。 リージョンごとに最大 500 のセキュリティグ ループを作成できます。 セキュリティ グループの関 連付け セキュリティ グループの ルール 最大 100 のルールをセ キュリティグループに追 加できます。 644 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic と EC2-VPC の違い 特徴 EC2-Classic デフォルト VPC デフォルトではない VPC テナンシー インスタンスは共有する ハードウェアで実行され ます。 共有ハードウェアまたは シングルテナントハード ウェアでインスタンスを 実行できます。 共有ハードウェアまたは シングルテナントハード ウェアでインスタンスを 実行できます。 インターネッ トにアクセス する インスタンスはインター ネットにアクセスできま す。インスタンスは自動 的にパブリック IP アドレ スを受信し、AWS ネット ワークエッジを通してイ ンターネットに直接アク セスできます。 デフォルトでは、インス タンスはインターネット にアクセスできます。イ ンスタンスはデフォルト でパブリック IP アドレ スを受け取ります。イン ターネットゲートウェイ はデフォルトの VPC に アタッチされ、デフォル トのサブネットにはイン ターネットゲートウェイ へのルートがあります。 デフォルトでは、インス タンスはインターネット にアクセスできません。 インスタンスはデフォ ルトでパブリック IP ア ドレスを受け取りませ ん。VPC は、作成方法に よってはインターネット ゲートウェイを持つ場合 があります。 IPv6 アドレス 指定 IPv6 アドレス指定は サポートされていませ ん。IPv6 アドレスをイン スタンスに割り当てるこ とはできません。 オプションで、VPC に IPv6 CIDR ブロックを関 連付け、VPC のインスタ ンスに IPv6 アドレスを 割り当てることができま す。 オプションで、VPC に IPv6 CIDR ブロックを関 連付け、VPC のインスタ ンスに IPv6 アドレスを 割り当てることができま す。 次の図では、各プラットフォームのインスタンスを示します。次の点に注意してください。 • インスタンス 1、2、3、および 4 は、EC2-Classic プラットフォーム内にあります。1 と 2 は 1 つ のアカウントによって起動され、3 と 4 はそれとは異なるアカウントによって起動されました。こ れらのインスタンスは相互に通信でき、インターネットに直接アクセスできます。 • インスタンス 5 と 6 は、EC2-VPC プラットフォームの同じ VPC 内の異なるサブネットにありま す。これらは VPC を所有するアカウントによって起動されました。他のアカウントはこの VPC で はインスタンスを起動できません。これらのインスタンスは、相互に通信でき、インターネット ゲートウェイを通して EC2-Classic 内のインスタンスおよびインターネットにアクセスできます。 645 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic と EC2-VPC との間 でのリソースの共有とアクセス EC2-Classic と EC2-VPC との間でのリソースの共 有とアクセス AWS アカウントのリソースと機能は、ClassicLink などを通じて、EC2-Classic と EC2-VPC のプラッ トフォーム間で共有できます。 ClassicLink の詳細については、「ClassicLink (p. 650)」を参照して ください。 646 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic と EC2-VPC との間 でのリソースの共有とアクセス アカウントが EC2-Classic をサポートしている場合、EC2-Classic 用にリソースの設定を行った場合 があります。 EC2-Classic から VPC に移行する場合は、VPC 内でこれらのリソースを再作成する必 要があります。 EC2-Classic から VPC への移行に関する詳細については、「EC2-Classic の Linux イ ンスタンスから VPC の Linux インスタンスへの移行 (p. 661)」を参照してください。 以下のリソースは、EC2-Classic と VPC の間で共有したりアクセスすることができます。 リソース コメント AMI バンドルタスク EBS ボリューム Elastic IP アドレス (IPv4) Elastic IP アドレスを EC2-Classic から EC2VPC に移行できます。もともと VPC で使用す るために割り当てられていた Elastic IP アドレス を EC2-Classic に移行することはできません。 詳細については、「EC2-Classic から EC2-VPC への Elastic IP アドレスの移行 (p. 692)」を参 照してください。 インスタンス EC2-Classic インスタンスは、パブリック IPv4 アドレスを使用して VPC 内のインスタンスと通 信できます。または、ClassicLink を使用して、 プライベート IPv4 アドレス経由の通信を有効に することができます。 インスタンスを EC2-Classic から VPC に移行す ることはできません。 しかし、アプリケーショ ンを EC2-Classic のインスタンスから VPC の インスタンスに移行することはできます。 詳 細については、「EC2-Classic の Linux インス タンスから VPC の Linux インスタンスへの移 行 (p. 661)」を参照してください。 キーペア ロードバランサー ClassicLink を使用している場合、ロードバラン サーのあるリンクされた EC2-Classic インスタ ンスを VPC に登録することができます。こうし てこの VPC はそのインスタンスと同じアベイラ ビリティーゾーンにサブネットがあることにな ります。 ロードバランサーを EC2-Classic から VPC に移 行することはできません。 EC2-Classic でロー ドバランサーがある VPC にインスタンスを登録 することはできません。 配置グループ リザーブドインスタンス リザーブドインスタンスのネットワークプラッ トフォームを EC2-Classic から EC2-VPC に変 更できます。詳細については、「Standard リ ザーブドインスタンスの変更 (p. 224)」を参照し てください。 セキュリティグループ リンクされた EC2-Classic インスタンス は、VPC からのトラフィックを監視するため 647 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド VPC でのみ利用可能なインスタンスタイプ リソース コメント に、ClassicLink を通して VPC のセキュリティ クループを使用することができます。 VPC イン スタンスは、EC2-Classic セキュリティグループ を使用できません。 EC2-Classic から VPC にセキュリティグループ を移行することはできません。 EC2-Classic の セキュリティグループのルールを VPC のセキュ リティグループにコピーすることはできます。 詳細については、「セキュリティグループを作 成する (p. 584)」を参照してください。 スナップショット EC2-Classic と VPC の間で以下のリソースを共有したり、移動することはできません。 • スポットインスタンス VPC でのみ利用可能なインスタンスタイプ 次のインスタンスタイプのインスタンスは、EC2-Classic でサポートされていないため、VPC で起動 する必要があります。 • C4 • M4 • P2 • R4 • T2 • X1 アカウントで EC2-Classic がサポートされる場合で、デフォルト以外の VPC を作成していない場 合、次のいずれかを行って VPC 専用インスタンスを起動できます。 • サブネット ID またはネットワークインターフェイス ID をリクエストで指定して、デフォルト以外 の VPC を作成し、VPC 専用インスタンスを起動します。デフォルトの VPC がない場合に、AWS CLI、Amazon EC2 API、または AWS SDK を使用して VPC 専用インスタンスを起動するには、デ フォルト以外の VPC を作成する必要があります。詳細については、「Virtual Private Cloud (VPC) の作成 (p. 26)」を参照してください。 • Amazon EC2 コンソールを使用して VPC 専用インスタンスを起動します。Amazon EC2 コンソー ルによって、アカウントにデフォルト以外の VPC が作成され、最初のアベイラビリティーゾーン内 のサブネットにインスタンスが起動します。コンソールによって、次の属性を持つ VPC が作成され ます。 • 各アベイラビリティーゾーンにパブリック IPv4 アドレス指定属性が true に設定されたサブネッ トが 1 つずつ。これにより、インスタンスがパブリック IPv4 アドレスを受け取ることができる ようになります。詳細については、Amazon VPC ユーザーガイド の「VPC の IP アドレス指定」 を参照してください。 • インターネットゲートウェイ、およびインターネットゲートウェイに VPC のトラフィックをルー ティングするメインルートテーブル。これにより、VPC で起動したインスタンスがインターネッ ト経由で通信できるようになります。詳細については、Amazon VPC ユーザーガイド のインター ネットゲートウェイを参照してください。 648 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon VPC ドキュメント • VPC のデフォルトのセキュリティグループおよび各サブネットに関連付けられたデフォルトの ネットワーク ACL。詳細については、Amazon VPC ユーザーガイド の「VPC のセキュリティ」 を参照してください。 EC2-Classic にその他のリソースがある場合は、それらを EC2-VPC 移行する手順を実行することが できます。詳細については、「EC2-Classic の Linux インスタンスから VPC の Linux インスタンスへ の移行 (p. 661)」を参照してください。 Amazon VPC ドキュメント Amazon VPC の詳細については、次のドキュメントを参照してください。 ガイド 説明 Amazon VPC 入門ガイド Amazon VPC の実践的入門を提供します。 Amazon VPC ユーザーガイド Amazon VPC の使用方法に関する詳細を提供し ます。 Amazon VPC ネットワーク管理者ガイド ネットワーク管理者がカスタマーゲートウェイ を設定する際に役立ちます。 サポートされているプラットフォーム Amazon EC2 は以下のプラットフォームをサポートします。お客様の AWS アカウントでは、インス タンスを両方のプラットフォームで起動できる場合と、EC2-VPC だけで起動できる場合があり、どち らになるかはリージョンごとに異なります。 プラット フォーム 導入時期 説明 EC2Classic Amazon EC2 のオリジナ ルリリース お客様のインスタンスは他のユーザー様と共有する単一 のフラットネットワーク内で稼働します。 EC2-VPC Amazon VPC のオリジナ ルリリース お客様のインスタンスはご自分の AWS アカウントから 論理的に独立した仮想プライベートクラウド (VPC) 内で 稼働します。 アカウントでどちらのプラットフォームを使用できるのかについて詳しくは、Amazon VPC ユーザー ガイド の「可用性」を参照してください。EC2-Classic と EC2-VPC の相違点の詳細については、 「EC2-Classic と EC2-VPC の違い (p. 643)」を参照してください。 Amazon EC2 コンソールでサポートされるプラットフォーム Amazon EC2 コンソールを見れば、指定したリージョンでインスタンスを起動可能なプラットフォー ムや、そのリージョンにデフォルト VPC があるかどうかがわかります。 使用するリージョンがナビゲーションバーで選択されていることを確認してください。Amazon EC2 コンソールダッシュボード上で、 Account Attributes の下にある Supported Platforms を探します。 そこに値が 2 つ (EC2 と VPC) あれば、どちらのプラットフォームにもインスタンスを起動できます。 値が 1 つ (VPC) なら、EC2-VPC にのみインスタンスを起動できます。 インスタンスを起動できるのが EC2-VPC だけである場合は、デフォルトの VPC が自動的に作成され ます。これで、お客様がインスタンスを起動するときは、デフォルトの VPC で起動されるようになり ます。ただし、お客様が非デフォルト VPC を作成してその VPC でインスタンスを起動するよう指定 した場合を除きます。 649 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink EC2-VPC ダッシュボードの [Account Attributes] に次のように表示される場合は、アカウントが EC2-VPC プ ラットフォームのみをサポートし、識別子 vpc-1a2b3c4d のデフォルトの VPC があることを示しま す。 アカウントが EC2-VPC だけをサポートしている場合は、起動ウィザードを使用してインスタンスを 起動するときに、[Network] リストで VPC を選択し、[Subnet] リストでサブネットを選択できます。 EC2-Classic、EC2-VPC ダッシュボードの [Account Attributes] に次のように表示される場合は、アカウントが EC2-Classic と EC2-VPC の両方のプラットフォームをサポートすることを示します。 アカウントが EC2-Classic と EC2-VPC をサポートしている場合は、[Network] リストから [Launch into EC2-Classic] を選択すると、起動ウィザードが EC2-Classic を起動します。VPC で起動するに は、[Network] リストで VPC を選択し、[Subnet] リストでサブネットを選択します。 関連トピック インスタンスを起動できるプラットフォームを確認する方法の詳細については、Amazon VPC ユー ザーガイド の「Detecting Your Supported Platforms」を参照してください。 ClassicLink ClassicLink は、EC2-Classic インスタンスを同じリージョンにあるアカウント内の VPC にリンクで きるようにします。これによって、VPC のセキュリティグループを EC2-Classic インスタンスに関連 付けることができ、プライベート IPv4 アドレスを使用して EC2-Classic インスタンスと VPC 内のイ ンスタンスが通信できるようになります。ClassicLink により、パブリック IPv4 アドレスや Elastic IP アドレスを使用しなくても、これらのプラットフォーム内のインスタンス間で通信できます。プライ ベート IPv4 アドレスとパブリック IPv4 アドレスの詳細については、「VPC の IP アドレス指定」を 参照してください。 ClassicLink は、EC2-Classic プラットフォームをサポートするアカウントを持つすべてのユーザーが 利用でき、任意のインスタンスタイプの EC2-Classic インスタンスで使用できます。アカウントでサ ポートされるプラットフォームを調べるには、「サポートされているプラットフォーム (p. 649)」 を参照してください。VPC を使用するメリットの詳細については、「Amazon EC2 と Amazon Virtual Private Cloud (p. 642)」を参照してください。VPC へのリソースの移行の詳細については、「EC2Classic の Linux インスタンスから VPC の Linux インスタンスへの移行 (p. 661)」を参照してくださ い。 ClassicLink は追加料金なしで使用できます。データ転送とインスタンス時間の使用量に対する標準料 金が適用されます。 650 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink Note IPv6 の通信用に EC2-Classic インスタンスを有効にすることはできません。IPv6 CIDR ブ ロックを VPC に関連付けて、IPv6 アドレスを VPC 内のリソースに割り当てることはできま すが、ClassicLinked インスタンスと VPC 内のリソースの間で通信できるのは、IPv4 経由に 限られます。 トピック • ClassicLink の基礎 (p. 651) • ClassicLink の制限事項 (p. 653) • ClassicLink の使用 (p. 654) • API と CLI の概要 (p. 658) • 例: 3 層ウェブアプリケーションの ClassicLink セキュリティグループ設定 (p. 659) ClassicLink の基礎 ClassicLink を使用して EC2-Classic インスタンスを VPC にリンクする場合、2 つの作業が含まれま す。まず、ClassicLink 用に VPC を有効にする必要があります。デフォルトでは、アカウントのすべ ての VPC は、その分離を維持するために ClassicLink 用に有効になっていません。ClassicLink 用に VPC を有効にすると、アカウント内の同じリージョンにある任意の実行中の EC2-Classic インスタ ンスをその VPC にリンクすることができます。インスタンスをリンクするには、VPC からセキュリ ティグループを選択して、EC2-Classic インスタンスに関連付ける作業も必要です。インスタンスを リンクすると、VPC セキュリティグループで許可されている場合は、プライベート IP アドレスを使 用して VPC 内のインスタンスと通信できます。EC2-Classic インスタンスは、VPC にリンクされた ときに、プライベート IP アドレスを失いません。 Note インスタンスを VPC にリンクすることを、インスタンスをアタッチするということもありま す。 リンクされた EC2-Classic インスタンスは VPC 内のインスタンスと通信できますが、VPC の一部と はなりません。たとえば、DescribeInstances API リクエストでインスタンスを表示して VPC で フィルタリングする場合や、Amazon EC2 コンソールの [Instances] 画面を使用して VPC でフィルタ リングする場合、その結果には VPC にリンクされた EC2-Classic インスタンスは含まれません。リ ンクされた EC2-Classic インスタンスの表示の詳細については、「ClassicLink が有効な VPC とリン クされた EC2-Classic インスタンスの表示 (p. 656)」を参照してください。 デフォルトでは、リンクされた EC2-Classic インスタンスから VPC のインスタンスに対応するため にパブリック DNS ホスト名を使用する場合、ホスト名はインスタンスのパブリック IP アドレスに解 決されます。VPC のインスタンスからリンクされた EC2-Classic インスタンスに対応するためにパ ブリック DNS ホスト名を使用する場合も同じになります。パブリック DNS ホスト名をプライベート IP アドレスに解決するには、VPC の ClassicLink DNS サポートを有効にできます。詳細については、 「ClassicLink DNS サポートの有効化 (p. 657)」を参照してください。 インスタンスと VPC の間の ClassicLink 接続が不要になった場合、VPC から EC2-Classic インスタン スのリンクを解除できます。これにより、EC2-Classic インスタンスから VPC セキュリティグループ の関連付けが解除されます。リンクされた EC2-Classic インスタンスは、停止されたときに自動的に VPC からリンク解除されます。VPC からすべてのリンクされた EC2-Classic インスタンスのリンク を解除した後、VPC の ClassicLink を無効にすることができます。 ClassicLink による VPC 内の他の AWS サービスの使用 リンクされた EC2-Classic インスタンスは、VPC 内の Amazon Redshift、Amazon ElastiCache、Elastic Load Balancing、および Amazon RDS の各 AWS サービスにアクセスできま 651 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink す。ただし、VPC 内のインスタンスは、ClassicLink を使用して、EC2-Classic プラットフォームでプ ロビジョニングされる AWS サービスにアクセスすることはできません。 VPC 内で Elastic Load Balancing を使用する場合、インスタンスが、VPC のサブネットがあるアベイ ラビリティーゾーンにあることを前提として、リンクされた EC2-Classic インスタンスをロードバラ ンサーに登録できます。リンクされた EC2-Classic インスタンスを終了する場合、ロードバランサー はインスタンスの登録を解除します。VPC でのロードバランサーの使用の詳細については、Elastic Load Balancing ユーザーガイド の「Amazon VPC の Elastic Load Balancing」を参照してください。 Auto Scaling を使用する場合、起動時に指定した ClassicLink が有効な VPC に自動的にリンクされる インスタンスを含む Auto Scaling グループを作成できます。詳細については、Auto Scaling ユーザー ガイド の「EC2-Classic インスタンスの VPC へのリンク」を参照してください。 VPC で Amazon RDS インスタンスまたは Amazon Redshift クラスターを使用し、パブリックにアク セス可能 (インターネットからアクセス可能) である場合、リンクされた EC2-Classic インスタンスか らこれらのリソースに対応するために使用するエンドポイントは、デフォルトでパブリック IP アドレ スに解決されます。これらのリソースがパブリックにアクセス可能でない場合、エンドポイントはプ ライベート IP アドレスに解決されます。ClassicLink を使用してプライベート IP 経由でパブリックに アクセス可能な RDS インスタンスまたは Redshift クラスターに対応するには、プライベート IP アド レスまたはプライベート DNS ホスト名を使用するか、ClassicLinkVPC の DNS サポートを有効にす る必要があります。 プライベート DNS ホスト名またはプライベート IP アドレスを使用して RDS インスタンスに対応す る場合、リンクされた EC2-Classic インスタンスは、マルチ AZ 配置に使用できるフェイルオーバー のサポートを使用することはできません。 Amazon EC2 コンソールを使用して、Amazon Redshift、Amazon ElastiCache、または Amazon RDS リソースのプライベート IP アドレスを検索できます。 VPC 内の AWS リソースのプライベート IP アドレスを見つけるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. 4. ナビゲーションペインで、[Network Interfaces] を選択します。 [Description] 列のネットワークインターフェイスの説明を確認します。 Amazon Redshift、Amazon ElastiCache、Amazon RDS で使用されるネットワークインターフェイスに は、説明に含まれるサービスの名前が付けられます。たとえば、Amazon RDS インスタンスにア タッチされるネットワークインターフェイスの説明は、RDSNetworkInterface のようになりま す。 必要なネットワークインターフェイスを選択します。 5. 詳細ペインで、[Primary private IPv4 IP] フィールドからプライベート IP アドレスを取得します。 ClassicLink の使用の管理 デフォルトでは、IAM ユーザーには ClassicLink を使用するためのアクセス許可がありませ ん。ClassicLink 用の VPC の有効化と無効化、ClassicLink が有効な VPC へのインターフェイスのリ ンクとリンク解除、および ClassicLink が有効な VPC とリンクされた EC2-Classic インスタンスの表 示の権限をユーザーに付与する IAM ポリシーを作成できます。Amazon EC2 に対する IAM ポリシー の詳細については、「Amazon EC2 の IAM ポリシー (p. 596)」を参照してください。 ClassicLink を操作するためのポリシーの詳細については、次の例 (6. ClassicLink を使用す る (p. 625)) を参照してください。 ClassicLink のセキュリティグループ EC2-Classic インスタンスを VPC にリンクしても、EC2-Classic セキュリティグループには影響しま せん。これらのセキュリティグループは、引き続きインスタンスに出入りするすべてのトラフィック を管理します。ただし、VPC 内のインスタンスに出入りするトラフィックは例外で、EC2-Classic イ ンスタンスに関連付けられた VPC セキュリティグループによって管理されます。同じ VPC にリンク 652 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink された複数の EC2-Classic インスタンスは、同じ VPC セキュリティグループに関連付けられている かどうかに関係なく、VPC を介して相互に通信できません。EC2-Classic インスタンス間の通信は、 それらのインスタンスに関連付けられた EC2-Classic セキュリティグループによって制御されます。 セキュリティグループ設定の例については、例: 3 層ウェブアプリケーションの ClassicLink セキュリ ティグループ設定 (p. 659)を参照してください。 VPC にインスタンスをリンクすると、インスタンスに関連付けられる VPC セキュリティグループを 変更することはできなくなります。インスタンスに別のセキュリティグループを関連付けるには、最 初にインスタンスのリンクを解除し、次にもう一度 VPC にリンクして、必要なセキュリティグループ を選択する必要があります。 ClassicLink のルーティング ClassicLink 用に VPC を有効にすると、VPC のすべてのルートテーブルに、送信先が 10.0.0.0/8 で、ターゲットが local である静的ルートが追加されます。これによって、VPC 内のインスタンス と、VPC にリンクされている EC2-Classic インスタンスとの間で通信が可能になります。ClassicLink が有効な VPC にカスタムルートテーブルを追加する場合、送信先が 10.0.0.0/8 で、ターゲットが local である静的ルートが自動的に追加されます。VPC の ClassicLink を無効にすると、このルート は VPC のすべてのルートテーブルから自動的に削除されます。 10.0.0.0/16 および 10.1.0.0/16 IP アドレス範囲にある VPC で ClassicLink を有効にすることが できるのは、VPC の作成時に自動的に追加されたローカルルートを除き、10.0.0.0/8 IP アドレス 範囲のルートテーブルに既存の静的ルートがない場合のみです。同様に、ClassicLink 用に VPC を有 効にしている場合、10.0.0.0/8 IP アドレス範囲内のルートテーブルに、より詳細なルートを追加で きない場合があります。 Important VPC CIDR ブロックがパブリックにルーティング可能な IP アドレス範囲である場合は、EC2Classic インスタンスを VPC にリンクする前にセキュリティへの影響を考慮してください。 たとえば、リンクされた EC2-Classic インスタンスが、VPC の IP アドレス範囲内にあるソー ス IP アドレスからサービス拒否 (DoS) リクエストによるフラッド攻撃を受けた場合、応答ト ラフィックは VPC に送信されます。RFC 1918 に規定されているように、プライベート IP ア ドレスの範囲を使用して VPC を作成することを強くお勧めします。 ルートテーブルと VPC でのルーティングに関する詳細については、Amazon VPC ユーザーガイド の 「ルートテーブル」を参照してください。 ClassicLink の VPC ピア接続の有効化 2 つの VPC 間に VPC ピア接続があり、ClassicLink を介して 1 つまたは両方の VPC にリンクされ た 1 つ以上の EC2-Classic インスタンスが存在する場合は、VPC ピア接続を拡大して、EC2-Classic インスタンスと VPC ピア接続の他方の側の VPC のインスタンス間の通信を有効にすることができ ます。これにより、EC2-Classic インスタンスと VPC のインスタンスは、プライベート IP アドレス を使用して通信することができます。これを行うには、ローカル VPC がピア VPC でリンクされた EC2-Classic インスタンスと通信できるようにするか、リンクされたローカル EC2-Classic インスタ ンスがピア VPC のインスタンスと通信できるようにします。 ローカル VPC が、ピア VPC 内のリンクされた EC2-Classic インスタンスと通信できるようにする場 合、宛先が 10.0.0.0/8、ターゲットが local として、静的ルートが自動的にルートテーブルに追加 されます。 詳細および例については、Amazon VPC Peering Guide の「ClassicLink を使用した設定」を参照して ください。 ClassicLink の制限事項 ClassicLink 機能を使用するには、次の制限事項に注意する必要があります。 653 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink • EC2-Classic インスタンスは、一度に 1 つの VPC にのみリンクすることができます。 • リンクされた EC2-Classic インスタンスを停止した場合、インスタンスは VPC から自動的にリン クが解除され、VPC セキュリティグループはインスタンスとの関連付けが失われます。インスタン スを再起動した後、インスタンスを VPC に再びリンクできます。 • EC2-Classic インスタンスを、別のリージョンにある VPC や別の AWS アカウントの VPC にリン クすることはできません。 • 専用ハードウェアテナンシー用に設定された VPC は、ClassicLink 用に有効にすることはできませ ん。専用テナンシー VPC を ClassicLink に対して有効にするようにリクエストするには、AWS サ ポートまでお問い合わせください。 Important EC2-Classic インスタンスは共有ハードウェアで実行されます。規制またはセキュリティ 要件のために VPC のテナンシーを dedicated に設定した場合、EC2-Classic インスタン スを VPC にリンクすると、その要件に準拠しない可能性があります。共有テナンシーのリ ソースが、プライベート IP アドレスを使用して、隔離されたリソースに直接アドレス指定 できるようになるためです。ClassicLink 用に専用 VPC を有効にする場合は、詳細な動機を 添えて AWS サポートにリクエストしてください。 • EC2-Classic のプライベート IP アドレス範囲の 10/8 と競合するルートを持つ VPC は ClassicLink 用に有効にすることはできません。これには、ルートテーブルに既にローカルルートがあり、IP ア ドレス範囲が 10.0.0.0/16 および 10.1.0.0/16 である VPC は含まれません。詳細については、 「ClassicLink のルーティング (p. 653)」を参照してください。 • VPC の Elastic IP アドレスをリンクされた EC2-Classic インスタンスに関連付けることはできませ ん。 • 実行中のスポットインスタンスを VPC にリンクできます。 スポットインスタンスリクエスト で、リクエストが受理されたときにインスタンスを VPC にリンクする必要があることを示すに は、Amazon EC2 コンソールで起動ウィザードを使用する必要があります。 • ClassicLink は VPC からの推移関係をサポートしていません。リンクされた EC2-Classic インスタ ンスは、VPN 接続、VPC エンドポイント、または VPC に関連付けられたインターネットゲート ウェイにアクセスできません。同様に、VPN 接続、またはインターネットゲートウェイのもう一方 の側のリソースは、リンクされた EC2-Classic インスタンスにアクセスできません。 • ClassicLink を使用して、VPC インスタンスを別の VPC または EC2-Classic リソースにリンクする ことはできません。VPC 間のプライベート接続を確立するには、VPC ピア接続を使用できます。 詳細については、「Amazon VPC Peering Guide」を参照してください。 • 172.16.0.0/16 の範囲内の VPC に EC2-Classic インスタンスをリンクする場合で、VPC 内に 172.16.0.23/32 IP アドレスで稼働する DNS サーバーがある場合、リンクした EC2-Classic イ ンスタンスは VPC DNS サーバーにアクセスできません。この問題を回避するためには、DNS サー バーを VPC 内の違う IP アドレスで稼働させてください。 ClassicLink の使用 Amazon EC2 コンソールと Amazon VPC コンソールを使用して、ClassicLink 機能を使用できま す。ClassicLink 用の VPC の有効化と無効化、および VPC と EC2-Classic インスタンスのリンクとリ ンク解除を行うことができます。 Note ClassicLink 機能は、EC2-Classic をサポートするアカウントとリージョンのコンソールにの み表示されます。 トピック • ClassicLink 用の VPC の有効化 (p. 655) • VPC へのインスタンスのリンク (p. 655) 654 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink • ClassicLink が有効になった VPC の作成 (p. 655) • 起動時の EC2-Classic インスタンスの VPC へのリンク (p. 656) • ClassicLink が有効な VPC とリンクされた EC2-Classic インスタンスの表示 (p. 656) • ClassicLink DNS サポートの有効化 (p. 657) • ClassicLinkDNS サポートを無効にする (p. 657) • VPC からの EC2-Classic インスタンスのリンク解除 (p. 657) • VPC に対する ClassicLink の無効化 (p. 658) ClassicLink 用の VPC の有効化 EC2-Classic インスタンスを VPC にリンクするには、まず ClassicLink 用の VPC を有効にする必 要があります。VPC のルーティングが EC2-Classic のプライベート IP アドレス範囲と競合する場 合、ClassicLink 用の VPC を有効にすることはできません。詳細については、「ClassicLink のルー ティング (p. 653)」を参照してください。 ClassicLink 用に VPC を有効にするには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. 画面左枠のナビゲーションペインで、[VPC] を選択します。 3. VPC を選択し、[Actions]、[Enable ClassicLink] の順に選択します。 4. 確認ダイアログボックスで、[Yes, Enable] を選択します。 VPC へのインスタンスのリンク ClassicLink 用の VPC を有効にした後、EC2-Classic インスタンスを VPC にリンクすることができま す。 Note 実行中の EC2-Classic インスタンスのみを VPC にリンクできます。stopped 状態にあるイ ンスタンスをリンクすることはできません。 インスタンスを VPC にリンクするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. 実行中の EC2-Classic インスタンスを選択し、[Actions]、[ClassicLink]、[Link to VPC] の順に選択 します。 複数のインスタンスを選択して、同じ VPC にリンクすることができます。 4. 表示されたダイアログボックスで、リストから VPC を選択します。ClassicLink 用に有効になっ た VPC のみが表示されます。 5. インスタンスに関連付ける VPC セキュリティグループを 1 つ以上選択します。終了したら [Link to VPC] を選択します。 ClassicLink が有効になった VPC の作成 Amazon VPC コンソールの VPC ウィザードを使用することによって、新しい VPC を作成し、すぐに ClassicLink 用に有効にすることができます。 ClassicLink が有効になった VPC を作成するには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 655 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink 2. Amazon VPC ダッシュボードで、[Start VPC Wizard] を選択します。 3. VPC 設定オプションの 1 つを選択し、[Select] を選択します。 4. ウィザードの次のページで、[Enable ClassicLink] の [Yes] を選択します。ウィザードの残りの 手順を完了して、VPC を作成します。VPC ウィザードの使用の詳細については、Amazon VPC ユーザーガイド の「Amazon VPC のシナリオ」を参照してください。 起動時の EC2-Classic インスタンスの VPC へのリンク Amazon EC2 コンソールの起動ウィザードを使用して、EC2-Classic インスタンスを起動し、すぐに ClassicLink が有効な VPC にリンクすることができます。 起動時にインスタンスを VPC にリンクするには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. Amazon EC2 ダッシュボードから、[Launch Instance] を選択します。 3. AMI を選択し、インスタンスタイプを選択します。[Configure Instance Details] ページで、 [Network] リストから [Launch into EC2-Classic] を選択していることを確認します。 Note T2 インスタンスタイプなど、一部のインスタンスタイプは VPC でのみ起動できま す。EC2-Classic で起動できるインスタンスタイプを選択していることを確認します。 4. [Link to VPC (ClassicLink)] セクションで、[Link to VPC] から VPC を選択します。ClassicLink が 有効な VPC のみが表示されます。インスタンスに関連付ける VPC のセキュリティグループを選 択します。ページの他の設定オプションを完了した後、ウィザードの残りの手順を完了して、イ ンスタンスを起動します。起動ウィザードの使用の詳細については、「AMI からのインスタンス の起動 (p. 303)」を参照してください。 ClassicLink が有効な VPC とリンクされた EC2-Classic インスタンスの表示 Amazon VPC コンソールで ClassicLink が有効な VPC をすべて表示し、Amazon EC2 コンソールで リンクされた EC2-Classic インスタンスをすべて表示できます。 ClassicLink が有効な VPC を表示するには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. 画面左枠のナビゲーションペインで、[VPC] を選択します。 3. VPC を選択し、[Summary] タブで、[ClassicLink] フィールドを探します。値 [Enabled] は、VPC が ClassicLink に対して有効であることを示します。 4. または、[ClassicLink] 列を探し、各 VPC に表示される値 ([Enabled] または [Disabled]) を確認し ます。この列が表示されない場合は、[Edit Table Columns」(歯車型のアイコン) をクリックし、 [ClassicLink] 属性を選択してから、[Close] を選択します。 リンクされた EC2-Classic インスタンスを表示するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. EC2-Classic インスタンスを選択し、[Description] タブで、[ClassicLink] フィールドを探します。 インスタンスが VPC にリンクされている場合、このフィールドにはインスタンスのリンク先 VPC の ID が表示されます。インスタンスが VPC にリンクされていない場合、フィールドには [Unlinked] と表示されます。 4. または、インスタンスをフィルタリングして、特定の VPC やセキュリティグループのリンクされ た EC2-Classic インスタンスのみを表示できます。検索バーで「ClassicLink」と入力し、関連 656 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink する ClassicLink リソース属性を選択して、セキュリティグループ ID または VPC ID を選択しま す。 ClassicLink DNS サポートの有効化 VPC の ClassicLink DNS サポートを有効にして、リンクされた EC2-Classic インスタンスと VPC の インスタンス間で対応された DNS ホスト名がプライベート IP アドレスに解決され、パブリック IP アドレスに解決されないようにします。この機能を有効にするには、DNS ホスト名および DNS の解 決について VPC が有効になっている必要があります。 Note VPC に対して ClassicLink DNS サポートを有効にした場合、リンクされた EC2-Classic イン スタンスは、VPC に関連付けられた任意のプライベートホストゾーンにアクセスできます。 詳細については、Amazon Route 53 開発者ガイド の「プライベートホストゾーンの使用」を 参照してください。 ClassicLink DNS サポートを有効にするには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. 画面左枠のナビゲーションペインで、[VPC] を選択します。 3. VPC を選択し、[Actions]、[Edit ClassicLink DNS Support] の順に選択します。 4. [Yes] を選択して ClassicLink DNS サポートを有効にし、[Save] を選択します。 ClassicLinkDNS サポートを無効にする VPC の ClassicLink DNS サポートを無効にして、リンクされた EC2-Classic インスタンスと VPC の インスタンス間で対応された DNS ホスト名がパブリック IP アドレスに解決され、プライベート IP アドレスに解決されないようにします。 ClassicLink DNS サポートを無効にするには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. 画面左枠のナビゲーションペインで、[VPC] を選択します。 3. VPC を選択し、[Actions]、[Edit ClassicLink DNS Support] の順に選択します。 4. [No] を選択して ClassicLink DNS サポートを無効にし、[Save] を選択します。 VPC からの EC2-Classic インスタンスのリンク解除 EC2-Classic インスタンスと VPC の間の ClassicLink 接続が不要になった場合、VPC からインスタン スのリンクを解除できます。インスタンスのリンクを解除すると、インスタンスから VPC セキュリ ティグループの関連付けが解除されます。 Note 停止したインスタンスは、VPC から自動的にリンクが解除されます。 VPC からインスタンスのリンクを解除するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。 657 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink 3. [Actions] リストで、[ClassicLink] を選択し、[Unlink Instance] を選択します。複数のインスタン スを選択して、同じ VPC からリンクを解除することができます。 4. 確認ダイアログボックスで [Yes] を選択します。 VPC に対する ClassicLink の無効化 EC2-Classic インスタンスと VPC の間の接続が不要になった場合は、VPC の ClassicLink を無効にす ることができます。最初に、VPC にリンクされたすべての EC2-Classic インスタンスのリンクを解除 します。 VPC の ClassicLink を無効にするには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. 画面左枠のナビゲーションペインで、[VPC] を選択します。 3. VPC を選択し、[Actions]、[Disable ClassicLink] の順に選択します。 4. 確認ダイアログボックスで、[Yes, Disable] を選択します。 API と CLI の概要 このページで説明しているタスクは、コマンドラインまたはクエリ API を使用して実行できま す。コマンドラインインターフェイスの詳細および利用できる API アクションの一覧については、 「Amazon EC2 へのアクセス (p. 3)」を参照してください。 ClassicLink 用の VPC の有効化 • enable-vpc-classic-link (AWS CLI) • Enable-EC2VpcClassicLink (AWS Tools for Windows PowerShell) • EnableVpcClassicLink (Amazon EC2 クエリ API) VPC への EC2-Classic インスタンスのリンク (アタッチ) • attach-classic-link-vpc (AWS CLI) • Add-EC2ClassicLinkVpc (AWS Tools for Windows PowerShell) • AttachClassicLinkVpc (Amazon EC2 クエリ API) VPC からの EC2-Classic インスタンスのリンク解除 (デタッチ) • detach-classic-link-vpc (AWS CLI) • Dismount-EC2ClassicLinkVpc (AWS Tools for Windows PowerShell) • DetachClassicLinkVpc (Amazon EC2 クエリ API) VPC の ClassicLink の無効化 • disable-vpc-classic-link (AWS CLI) • Disable-EC2VpcClassicLink (AWS Tools for Windows PowerShell) • DisableVpcClassicLink (Amazon EC2 クエリ API) VPC の ClassicLink ステータスの表示 • describe-vpc-classic-link (AWS CLI) 658 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink • Get-EC2VpcClassicLink (AWS Tools for Windows PowerShell) • DescribeVpcClassicLink (Amazon EC2 クエリ API) リンクされた EC2-Classic インスタンスの表示 • describe-classic-link-instances (AWS CLI) • Get-EC2ClassicLinkInstance (AWS Tools for Windows PowerShell) • DescribeClassicLinkInstances (Amazon EC2 クエリ API) ClassicLink の VPC ピア接続の有効化 • modify-vpc-peering-connection-options (AWS CLI) • Edit-EC2VpcPeeringConnectionOption (AWS Tools for Windows PowerShell) • ModifyVpcPeeringConnectionOptions (Amazon EC2 Query API) ClassicLink DNS サポートに対する VPC の有効化 • enable-vpc-classic-link-dns-support (AWS CLI) • Enable-EC2VpcClassicLinkDnsSupport (AWS Tools for Windows PowerShell) • EnableVpcClassicLinkDnsSupport (Amazon EC2 Query API) ClassicLink DNS サポートに対する VPC の無効化 • disable-vpc-classic-link-dns-support (AWS CLI) • Disable-EC2VpcClassicLinkDnsSupport (AWS Tools for Windows PowerShell) • DisableVpcClassicLinkDnsSupport (Amazon EC2 Query API) VPC の ClassicLink DNS サポートの説明 • describe-vpc-classic-link-dns-support (AWS CLI) • Get-EC2VpcClassicLinkDnsSupport (AWS Tools for Windows PowerShell) • DescribeVpcClassicLinkDnsSupport (Amazon EC2 Query API) 例: 3 層ウェブアプリケーションの ClassicLink セキュリティグ ループ設定 この例では、次の 3 つのインスタンスを持つアプリケーションを使用します。public-facing ウェブ サーバー、アプリケーションサーバー、データベースサーバー。ウェブサーバーは、インターネット からの HTTPS トラフィックを受け入れ、TCP ポート 6001 を介してアプリケーションサーバーと通 信します。次に、アプリケーションサーバーが TCP ポート 6004 を介してデータベースサーバーと通 信します。アプリケーション全体をアカウントの VPC に移行しています。アプリケーションサーバー とデータベースサーバーは、すでに VPC に移行しました。ウェブサーバーはまだ EC2-Classic にあ り、ClassicLink を介して VPC にリンクされています。 これらのインスタンス間でのみトラフィックが流れるようにセキュリティグループを設定す る必要があります。次の 4 つのセキュリティグループがあります。ウェブサーバー用に 2 つ (sg-1a1a1a1aとsg-2b2b2b2b)、アプリケーションサーバー用に 1 つ (sg-3c3c3c3c)、およびデー タベースサーバー用に 1 つ (sg-4d4d4d4d)。 次の図は、インスタンスのアーキテクチャーとそれらのセキュリティグループ設定を示しています。 659 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド ClassicLink ウェブサーバーのセキュリティグループ (sg-1a1a1a1a および sg-2b2b2b2b) EC2-Classic に 1 つのセキュリティグループ、VPC にその他のセキュリティグループがありま す。ClassicLink を介してインスタンスを VPC にリンクしたときに、VPC のセキュリティグループが ウェブサーバーインスタンスに関連付けられています。VPC セキュリティグループを使用すると、 ウェブサーバーからアプリケーションサーバーへのアウトバウンドトラフィックを制御することがで きます。 EC2-Classic セキュリティグループ (sg-1a1a1a1a) のセキュリティグループルールを以下に示しま す。 インバウンド 送信元 タイプ ポート範 囲 コメント 0.0.0.0/0 HTTPS 443 インターネットトラフィックがウェブサーバーに 到達できるようにします。 VPC セキュリティグループ (sg-2b2b2b2b) のセキュリティグループルールを以下に示します。 660 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 アウトバウンド 送信先 タイプ ポート範 囲 コメント sg-3c3c3c3c TCP 6001 ウェブサーバーから VPC のアプリケーション サーバーへの (または sg-3c3c3c3c に関連付け られている他のインスタンスへの) アウトバウン ドトラフィックを許可します。 アプリケーションサーバーのセキュリティグループ (sg-3c3c3c3c) アプリケーションサーバーに関連付けられている VPC セキュリティグループのセキュリティグループ ルールを以下に示します。 インバウンド 送信元 タイプ ポート範 囲 コメント sg-2b2b2b2b TCP 6001 ウェブサーバー (または sg-2b2b2b2b に関連付 けられている他のインスタンス) から、指定した タイプのトラフィックがアプリケーションサー バーに到達できるようにします。 送信先 タイプ ポート範 囲 コメント sg-4d4d4d4d TCP 6004 アプリケーションサーバーからデータベースサー バー (または sg-4d4d4d4d に関連付けられて いる他のインスタンス) へのアウトバウンドトラ フィックを許可します。 アウトバウンド データベースサーバーのセキュリティグループ (sg-4d4d4d4d) データベースサーバーに関連付けられている VPC セキュリティグループのセキュリティグループルー ルを以下に示します。 インバウンド 送信元 タイプ ポート範 囲 コメント sg-3c3c3c3c TCP 6004 アプリケーションサーバー (または sg-3c3c3c3c に関連付けられている他のインスタンス) から、 指定したタイプのトラフィックがデータベース サーバーに到達できるようにします。 EC2-Classic の Linux インスタンスから VPC の Linux インスタンスへの移行 アカウントを作成した時期、および使用するリージョンによって、AWS アカウントで EC2-Classic と EC2-VPC の両方がサポートされる可能性があります。詳細について、およびアカウントでサポート 661 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 されるプラットフォームを確認するには、「サポートされているプラットフォーム (p. 649)」を参照 してください。VPC を使用するメリットについて、および EC2-Classic と EC2-VPC の違いについて は、「Amazon EC2 と Amazon Virtual Private Cloud (p. 642)」を参照してください。 AWS アカウントでリソースを作成して使用します。拡張ネットワーキングや特定のインスタンスタ イプなど、VPC でのみ使用できるリソースと機能もあります。いくつかのリソースは EC2-Classic と VPC の間で共有できますが、ほかのリソースは共有できません。詳細については「EC2-Classic と EC2-VPC との間でのリソースの共有とアクセス (p. 646)」を参照してください。 アカウントが EC2-Classic をサポートしている場合、EC2-Classic 用にリソースの設定を行った場合 があります。 EC2-Classic から VPC へ移行する場合には、お使いの VPC でこれらのリソースを再作 成する必要があります。 VPC への移行には 2 つの方法があります。 完全移行する、または時間をかけて少しずつ移行する方 法が利用できます。 選択する方法は EC2-Classic アプリケーションのサイズと複雑さによって異な ります。たとえば、静的なウェブサイトを 1 つまたは 2 つのインスタンスで実行しているアプリケー ションの場合、短期間のダウンタイムを許容することができ、よって完全移行ができます。 プロセス を中断できない多層アプリケーションの場合は、ClassicLink を使用して増分移行を実行できます。こ れによって、アプリケーションが完全に VPC で実行されるようになるまで、機能のコンポーネントを 1 つずつ転送できます。 Windows インスタンスを移行する必要がある場合は、「EC2-Classic から VPC への Windows インス タンスの移行」 (Windows インスタンスの Amazon EC2 ユーザーガイド) を参照してください。 目次 • VPC への完全移行 (p. 662) • ClassicLink を使用したVPC への増分移行 (p. 668) VPC への完全移行 以下のタスクを実行して、EC2-Classic から VPC へアプリケーションを完全移行します。 タスク • ステップ 1: VPC を作成する (p. 662) • ステップ 2: セキュリティグループを設定する (p. 663) • ステップ 3: EC2-Classic インスタンスから AMI を作成する (p. 663) • ステップ 4: VPC でインスタンスを起動する (p. 665) • 例: シンプルなウェブのアプリケーションの移行 (p. 666) ステップ 1: VPC を作成する VPC の使用を開始するには、アカウントに VPC があることを確認します。VPC は次のいずれかの方 法で作成できます。 • 新しい、EC2-VPC のみの AWS アカウントを使用します。EC2-VPC のみのアカウントは、各リー ジョンで用意されているデフォルトの VPC に搭載されています。起動するインスタンスは、他に指 定がない限りデフォルトでこの VPC で起動されます。デフォルトの VPC の詳細については、「デ フォルトの VPC とサブネット」を参照してください。独自の VPC を設定しない場合、または VPC の設定に特定の要件を必要としない場合は、このオプションを使用します。 • 既存の AWS アカウントでは、Amazon VPC コンソールを開き、VPC ウィザードを使用して、新し い VPC を作成します。詳細については、「Amazon VPC のシナリオ」を参照してください。ウィ ザードで利用可能ないずれかの設定セットを使用して、既存の EC2-Classic アカウントで VPC を すぐに設定する場合は、このオプションを使用します。インスタンスを起動するたびにこの VPC を 指定します。 662 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 • 既存の AWS アカウントでは、Amazon VPC コンソールを開き、要件に応じて VPC のコンポーネ ントを設定します。詳細については、「VPC とサブネット」を参照してください。特定のサブネッ トの番号など、VPC に特定の要件がある場合は、このオプションを使用します。インスタンスを起 動するたびにこの VPC を指定します。 ステップ 2: セキュリティグループを設定する EC2-Classic と VPC で同じセキュリティグループを使用することはできません。ただし、VPC の インスタンスで EC2-Classic のインスタンスと同じセキュリティグループのルールを使用したい場 合、Amazon EC2 コンソールを使用して既存の EC2-Classic のセキュリティグループのルールを新し い VPC のセキュリティグループにコピーすることができます。 Important 同じリージョンの同じ AWS アカウントの新しいセキュリティグループにのみセキュリティグ ループのルールをコピーできます。新しい AWS アカウントを作成した場合、この方法を使用 して新しいアカウントに既存のセキュリティグループのルールをコピーすることはできませ ん。新しいセキュリティグループを作成し、独自ルールを追加する必要があります。新しい セキュリティグループの作成方法については、「Linux インスタンスの Amazon EC2 セキュ リティグループ (p. 579)」を参照してください。 セキュリティグループのルールを新しいセキュリティグループにコピーするには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Security Groups] を選択します。 3. EC2-Classic インスタンスに関連付けられたセキュリティグループを選択し、[Actions] を選択し て、[Copy to new] を選択します。 [Create Security Group] ダイアログボックスで、新しいセキュリティグループの名前と説明を指 定します。[VPC] リストから使用している VPC を選択します。 [Inbound] タブには、EC2-Classic セキュリティグループのルールが自動入力されます。必要に応 じてルールを変更できます。[Outbound] タブには、すべてのアウトバウンドトラフィックを許 可するルールが自動的に作成されます。セキュリティグループのルールの変更方法については、 「Linux インスタンスの Amazon EC2 セキュリティグループ (p. 579)」を参照してください。 4. 5. Note 6. 他のセキュリティグループを参照する EC2-Classic セキュリティグループのルールを定 義した場合、VPC セキュリティグループでそのルールを使用することはできません。同 じ VPC のセキュリティグループを参照するようにルールを変更します。 [Create] を選択します。 ステップ 3: EC2-Classic インスタンスから AMI を作成する AMI はインスタンスを起動するためのテンプレートです。既存の EC2-Classic インスタンスに基づい て独自の AMI を作成し、その AMI を使用して VPC でインスタンスを起動できます。 AMI の作成に使用する方法は、インスタンスのルートデバイスタイプと、インスタンスが実行される オペレーティングシステムのプラットフォームによって異なります。インスタンスのルートデバイス タイプを確認するには、[Instances] ページに移動し、インスタンスを選択して、[Description ] タブ の [Root device type] フィールドの情報を確認します。この値が ebs の場合、インスタンスは EBSBacked です。この値が instance-storeの場合、インスタンスは、Instance Store-Backed です。ま た、describe-instances AWS CLI コマンドを使用してルートデバイスタイプを確認することもできま す。 次の表は、インスタンスのルートデバイスタイプ、およびソフトウェアプラットフォームに基づいて AMI を作成するオプションを示します。 663 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 Important インスタンスタイプには、PV と HVM 仮想化の両方をサポートするものもありますが、どち らか一方のみサポートするものもあります。AMI を使用して現在のインスタンスタイプと異 なるインスタンスタイプを起動する場合、そのインスタンスタイプで AMI が提供する仮想化 のタイプがサポートされていることを確認します。AMI で PV 仮想化がサポートされ、HVM 仮想化をサポートするインスタンスタイプを使用する場合、HVM ベースの AMI にソフトウェ アを再インストールする必要がある場合があります。PV および HVM 仮想化に関する詳細に ついては、「Linux AMI 仮想化タイプ (p. 80)」を参照してください。 インスタンスのルート デバイスタイプ アクション EBS インスタンスから EBS-backed AMI を作成します。詳細については、 「Amazon EBS-Backed Linux AMI の作成 (p. 96)」を参照してください。 インスタンスストア AMI ツールを使用してインスタンスから instance store-backed AMI を 作成します。詳細については、「Instance Store-Backed Linux AMI の作 成 (p. 100)」を参照してください。 インスタンスストア インスタンスデータを EBS ボリュームに転送し、ボリュームのスナップ ショットを作成して、スナップショットから AMI を作成します。詳細に ついては、「Instance Store-Backed AMI を Amazon EBS-Backed AMI に 変換する (p. 137)」を参照してください。 Note この方法では、instance store-backed インスタンスが EBSbacked インスタンスに変換されます。 (オプション) Amazon EBS ボリュームにデータを保存する Amazon EBS ボリュームを作成して、物理ハードドライブを使用するようにそのボリュームを使用し てインスタンスのデータをバックアップおよび保存できます。Amazon EBS ボリュームは同アベイラ ビリティーゾーンのすべてのインスタンスにアタッチおよびデタッチできます。EC2-Classic のイン スタンスからボリュームをデタッチして、同じアベイラビリティーゾーンの VPC で起動する新しいイ ンスタンスにアタッチできます。 Amazon EBS ボリュームの詳細については、次のトピックを参照してください。 • Amazon EBS ボリューム (p. 752) • Amazon EBS ボリュームの作成 (p. 767) • インスタンスへの Amazon EBS ボリュームのアタッチ (p. 772) Amazon EBS ボリュームのデータをバックアップするには、定期的にボリュームのスナップショッ トを作成します。必要な場合は、スナップショットから Amazon EBS ボリュームを復元できま す。Amazon EBS スナップショットの詳細については、次のトピックを参照してください。 • Amazon EBS スナップショット (p. 805) • Amazon EBS スナップショットの作成 (p. 806) • スナップショットからの Amazon EBS ボリュームの復元 (p. 769) 664 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 ステップ 4: VPC でインスタンスを起動する AMI を作成した後、VPC でインスタンスを起動できます。インスタンスは、既存の EC2-Classic イン スタンスと同じデータと構成です。 既存のアカウントで作成した VPC、または新しい VPC のみの AWS アカウントで、インスタンスを 起動できます。 既存の EC2-Classic アカウントを使用する Amazon EC2 起動ウィザードを使用して、VPC でインスタンスを起動できます。 VPC でインスタンスを起動するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ダッシュボードで、[Launch Instance] を選択します。 3. [ Choose an Amazon Machine Image] ページで、[My AMIs] カテゴリを選択し、作成した AMI を 選択します。 4. [Choose an Instance Type] ページで、インスタンスのタイプを選択し、[Next: Configure Instance Details] を選択します。 5. [Configure Instance Details] ページで、[Network] リストから VPC を選択します。[Subnet] リス トから必要なサブネットを選択します。必要な他の詳細を設定し、[Configure Security Group] ページが表示されるまでウィザードの次のページに進みます。 6. [Select an existing group] を選択し、前に作成したセキュリティグループを選択します。[Review and Launch] を選択します。 7. インスタンスの詳細を確認し、[Launch] を選択して、キーペアを指定し、インスタンスを起動し ます。 ウィザードの各ステップで設定できるパラメーターの詳細については、「インスタンスの作 成 (p. 303)」を参照してください。 新しい、VPC のみのアカウントを使用する 新しい AWS アカウントでインスタンスを起動するには、最初に新しいアカウントで作成した AMI を 共有する必要があります。その後、Amazon EC2 起動ウィザードを使用して、デフォルトの VPC で インスタンスを起動できます。 新しい AWS アカウントと AMI を共有するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. AMI で作成したアカウントに切り替えます。 3. ナビゲーションペインで [AMIs] を選択します。 4. [Filter] リストで、[Owned by me] が選択されていることを確認し、AMI を選択します。 5. [Permissions] タブで、[Edit] を選択します。新しい AWS アカウントのアカウント番号を入力 し、[Add Permission] を選択して、[Save] を選択します。 インスタンスをデフォルトの VPC 内に起動するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 新しい AWS アカウントに切り替えます。 3. ナビゲーションペインで [AMIs] を選択します。 4. [Filter] リストで [Private images] を選択します。EC2-Classic アカウントから共有した AMI を選 択し、[Launch] を選択します。 665 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 5. [Choose an Instance Type] ページで、インスタンスのタイプを選択し、[Next: Configure Instance Details] を選択します。 6. [Configure Instance Details] ページの [Network] リストでデフォルトの VPC が選択されている必 要があります。必要な他の詳細を設定し、[Configure Security Group] ページが表示されるまで ウィザードの次のページに進みます。 7. [Select an existing group] を選択し、前に作成したセキュリティグループを選択します。[Review and Launch] を選択します。 8. インスタンスの詳細を確認し、[Launch] を選択して、キーペアを指定し、インスタンスを起動し ます。 ウィザードの各ステップで設定できるパラメーターの詳細については、「インスタンスの作 成 (p. 303)」を参照してください。 例: シンプルなウェブのアプリケーションの移行 この例では、AWS を使用して、ガーデニングウェブサイトをホストします。ウェブサイトを管理 するには、EC2-Classic で 3 個のインスタンスを実行します。インスタンス A と B はパブリックな ウェブアプリケーションをホストし、インスタンス間でトラフィックの負荷を分散するために Elastic Load Balancer を使用します。インスタンス A と B に Elastic IP アドレスを割り当てると、これら のインスタンスの設定と管理に使用する静的 IP アドレスが割り当てられます。インスタンス C は、 ウェブサイトの MySQL データベースを保持します。ドメイン名 www.garden.example.com を登 録し、Amazon Route 53 を使用すると、ロードバランサーの DNS 名と関連付けられたエイリアスレ コードが設定されたホストゾーンが作成されます。 VPC への移行の最初の部分では、ニーズに適合する VPC アーキテクチャの種類を決定します。この 場合、次のように決定しました: ウェブサーバーに 1 つのパブリックサブネット、データベースサー バーに 1 つのプライベートサブネット。ウェブサイトが成長したら、サブネットにウェブサーバーと データベースサーバーを追加できます。デフォルトでは、プライベートサブネットのインスタンスは インターネットにアクセスできません。ただし、パブリックサブネットのネットワークアドレス変換 (NAT) デバイスを介してインターネットアクセスを有効にすることができます。インターネットから 提供されるデータベースサーバーの定期的な更新やパッチをサポートするように、NAT デバイスを設 定できます。EC2-VPC に Elastic IP アドレスを移行し、ウェブサーバー間のトラフィックの負荷を分 散するため、パブリックサブネットで Elastic Load Balancer を作成します。 666 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 VPC にウェブアプリケーションを移行するには、次の手順に従います。 • VPC を作成する: この場合、Amazon VPC コンソールで VPC ウィザードを使用して、VPC と サ ブネットを作成できます。2 番目のウィザード設定では 1 つのプライベートサブネットと 1 つのパ ブリックサブネットを持つ VPC を作成し、自分のパブリックサブネットの NAT デバイスを起動し て、設定します。 詳細については、「Amazon VPC ユーザーガイド」の「シナリオ 2: パブリック サブネットとプライベートサブネットを持つ VPC」を参照してください。 • インスタンスから AMI を作成する: いずれかのウェブサーバーから AMI を作成し、データベース サーバーから 2 番目の AMI を作成します。詳細については、「ステップ 3: EC2-Classic インスタン スから AMI を作成する (p. 663)」を参照してください。 • セキュリティグループを設定する: EC2-Classic 環境では、ウェブサーバー用に 1 つのセキュリティ グループ、データベースサーバー用にもう 1 つのセキュリティグループを設定します。Amazon EC2 コンソールを使用して、VPC の新しいセキュリティグループに、各セキュリティグルー プのルールをコピーします。詳細については、「ステップ 2: セキュリティグループを設定す る (p. 663)」を参照してください。 Tip 最初に他のセキュリティグループから参照されるセキュリティグループを作成します。 • 新しい VPC でインスタンスを起動する: パブリックサブネットで代替ウェブサーバーを起動し、プ ライベートサブネットで代替データベースサーバーを起動します。詳細については、「ステップ 4: VPC でインスタンスを起動する (p. 665)」を参照してください。 667 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 • NAT デバイスを設定する: NAT インスタンスを使用している場合、プライベートサブネットからの HTTP および HTTPS トラフィックを許可するためのセキュリティグループを作成する必要があり ます。詳細については、「NAT インスタンス」を参照してください。NAT ゲートウェイを使用して いる場合は、プライベートサブネットからのトラフィックは自動的に許可されます。 • データベースを設定する: EC2-Classic でデータベースサーバーから AMI を作成したとき、そのイ ンスタンスに格納されているすべての設定情報は AMI にコピーされています。新しいデータベース サーバーに接続し、設定の詳細を更新する必要がある可能性があります。たとえば、EC2-Classic のウェブサーバーに完全な読み取り、書き込み、変更のアクセス許可を付与するようにデータベー スを設定した場合、代わりに新しいウェブサーバーに同じアクセス許可を付与するように設定ファ イルを更新する必要があります。 • ウェブサーバーを設定する: ウェブサーバーは EC2-Classic のインスタンスと同じ設定にします。 たとえば、EC2-Classic でデータベースを使用するようにウェブサーバーを構成した場合、新しい データベースインスタンスをポイントするようにウェブサーバーの設定を更新します。 Note 起動時に別の方法で指定しない限り、デフォルト以外のサブネットで起動されたインスタ ンスにデフォルトでパブリック IP アドレスは割り当てられません。新しいデータベース サーバーにパブリック IP アドレスが割り当てられていない可能性があります。この場合、 新しいデータベースサーバーのプライベート DNS 名を使用するようにウェブサーバーの設 定ファイルを更新できます。同じ VPC のインスタンスはプライベート IP アドレスを使用 して互いに通信できます。 • Elastic IP アドレスを移行する: Elastic IP アドレスと EC2-Classic のウェブサーバーの関連付け を解除し、EC2-VPC に移行します。移行した後、VPC 内の新しいウェブサーバーに関連付ける ことができます。詳細については、「EC2-Classic から EC2-VPC への Elastic IP アドレスの移 行 (p. 692)」を参照してください。 • 新しいロードバランサーを作成する: インスタンスへのトラフィックの負荷を分散するために引き続 き Elastic Load Balancing を使用するには、VPC のロードバランサーのさまざまな設定方法を知っ ている必要があります。詳細については、「Amazon VPC の Elastic Load Balancing」を参照して ください。 • DNS レコードを更新する: パブリックサブネットのロードバランサーを設定した 後、www.garden.example.com ドメインが新しいロードバランサーをポイントしていることを確 認します。これを行うには、DNS レコードを更新して、Amazon Route 53 のエイリアスレコード を更新する必要があります。Amazon Route 53 の使用の詳細については、「Amazon Route 53 の使 用を開始する」を参照してください。 • EC2-Classic のリソースをシャットダウンする: ウェブアプリケーションが VPC アーキテクチャ内 で動作していることを確認した後、EC2-Classic のリソースをシャットダウンして、これらに対す る課金を停止することができます。EC2-Classic インスタンスを終了し、EC2-Classic Elastic IP ア ドレスを解放します。 ClassicLink を使用したVPC への増分移行 ClassicLink 機能によって、VPC への増分移行の管理が容易になります。ClassicLink を使用する と、EC2-Classic インスタンスを同じリージョンのアカウント内の VPC にリンクできます。これによ り、新しい VPC リソースは、プライベート IPv4 アドレスを使用して、EC2-Classic インスタンスと 通信できます。次に、機能を 1 つずつ VPC に移行できます。このトピックでは、EC2-Classic から VPC への増分移行を管理するための基本的な手順を説明し、。 ClassicLink の詳細については、「ClassicLink (p. 650)」を参照してください。 トピック • ステップ 1: 移行シーケンスを準備する (p. 669) • ステップ 2: VPC を作成する (p. 669) • ステップ 3: ClassicLink 用に VPC を有効にする (p. 669) 668 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 • ステップ 4: EC2-Classic インスタンスから AMI を作成する (p. 669) • ステップ 5: VPC でインスタンスを起動する (p. 671) • ステップ 6: EC2-Classic インスタンスを VPC にリンクする (p. 671) • ステップ 7: VPC への移行を完了する (p. 671) ステップ 1: 移行シーケンスを準備する ClassicLink を効果的に使用するには、最初に、VPC に移行する必要があるアプリケーションのコン ポーネントを把握し、その機能を移行する順序を確認する必要があります。 たとえば、プレゼンテーションのウェブサーバー、バックエンドのデータベースサーバー、トランザ クションの認証ロジックを利用するアプリケーションがあるとします。この場合、認証ロジックから 移行プロセスを開始し、次にデータベースサーバー、最後にウェブサーバーの順に移行することを決 定できます。 ステップ 2: VPC を作成する VPC の使用を開始するには、アカウントに VPC があることを確認します。VPC は次のいずれかの方 法で作成できます。 • 既存の AWS アカウントでは、Amazon VPC コンソールを開き、VPC ウィザードを使用して、新し い VPC を作成します。詳細については、「Amazon VPC のシナリオ」を参照してください。ウィ ザードで利用可能ないずれかの設定セットを使用して、既存の EC2-Classic アカウントで VPC を すぐに設定する場合は、このオプションを使用します。インスタンスを起動するたびにこの VPC を 指定します。 • 既存の AWS アカウントでは、Amazon VPC コンソールを開き、要件に応じて VPC のコンポーネ ントを設定します。詳細については、「VPC とサブネット」を参照してください。特定のサブネッ トの番号など、VPC に特定の要件がある場合は、このオプションを使用します。インスタンスを起 動するたびにこの VPC を指定します。 ステップ 3: ClassicLink 用に VPC を有効にする VPC を作成した後、ClassicLink 用に VPC を有効にすることができます。ClassicLink の詳細について は、「ClassicLink (p. 650)」を参照してください。 ClassicLink 用に VPC を有効にするには 1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。 2. 画面左枠のナビゲーションペインで、[Your VPCs] を選択します。 3. VPC を選択し、[Actions] リストから [Enable ClassicLink] を選択します。 4. 確認ダイアログボックスで、[Yes, Enable] を選択します。 ステップ 4: EC2-Classic インスタンスから AMI を作成する AMI はインスタンスを起動するためのテンプレートです。既存の EC2-Classic インスタンスに基づい て独自の AMI を作成し、その AMI を使用して VPC でインスタンスを起動できます。 AMI の作成に使用する方法は、インスタンスのルートデバイスタイプと、インスタンスが実行される オペレーティングシステムのプラットフォームによって異なります。インスタンスのルートデバイス タイプを確認するには、[Instances] ページに移動し、インスタンスを選択して、[Description ] タブ の [Root device type] フィールドの情報を確認します。この値が ebs の場合、インスタンスは EBSBacked です。この値が instance-storeの場合、インスタンスは、Instance Store-Backed です。ま た、describe-instances AWS CLI コマンドを使用してルートデバイスタイプを確認することもできま す。 669 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 次の表は、インスタンスのルートデバイスタイプ、およびソフトウェアプラットフォームに基づいて AMI を作成するオプションを示します。 Important インスタンスタイプには、PV と HVM 仮想化の両方をサポートするものもありますが、どち らか一方のみサポートするものもあります。AMI を使用して現在のインスタンスタイプと異 なるインスタンスタイプを起動する場合、そのインスタンスタイプで AMI が提供する仮想化 のタイプがサポートされていることを確認します。AMI で PV 仮想化がサポートされ、HVM 仮想化をサポートするインスタンスタイプを使用する場合、HVM ベースの AMI にソフトウェ アを再インストールする必要がある場合があります。PV および HVM 仮想化に関する詳細に ついては、「Linux AMI 仮想化タイプ (p. 80)」を参照してください。 インスタンスのルート デバイスタイプ アクション EBS インスタンスから EBS-backed AMI を作成します。詳細については、 「Amazon EBS-Backed Linux AMI の作成 (p. 96)」を参照してください。 インスタンスストア AMI ツールを使用してインスタンスから instance store-backed AMI を 作成します。詳細については、「Instance Store-Backed Linux AMI の作 成 (p. 100)」を参照してください。 インスタンスストア インスタンスデータを EBS ボリュームに転送し、ボリュームのスナップ ショットを作成して、スナップショットから AMI を作成します。詳細に ついては、「Instance Store-Backed AMI を Amazon EBS-Backed AMI に 変換する (p. 137)」を参照してください。 Note この方法では、instance store-backed インスタンスが EBSbacked インスタンスに変換されます。 (オプション) Amazon EBS ボリュームにデータを保存する Amazon EBS ボリュームを作成して、物理ハードドライブを使用するようにそのボリュームを使用し てインスタンスのデータをバックアップおよび保存できます。Amazon EBS ボリュームは同アベイラ ビリティーゾーンのすべてのインスタンスにアタッチおよびデタッチできます。EC2-Classic のイン スタンスからボリュームをデタッチして、同じアベイラビリティーゾーンの VPC で起動する新しいイ ンスタンスにアタッチできます。 Amazon EBS ボリュームの詳細については、次のトピックを参照してください。 • Amazon EBS ボリューム (p. 752) • Amazon EBS ボリュームの作成 (p. 767) • インスタンスへの Amazon EBS ボリュームのアタッチ (p. 772) Amazon EBS ボリュームのデータをバックアップするには、定期的にボリュームのスナップショッ トを作成します。必要な場合は、スナップショットから Amazon EBS ボリュームを復元できま す。Amazon EBS スナップショットの詳細については、次のトピックを参照してください。 • Amazon EBS スナップショット (p. 805) • Amazon EBS スナップショットの作成 (p. 806) • スナップショットからの Amazon EBS ボリュームの復元 (p. 769) 670 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic から VPC への移行 ステップ 5: VPC でインスタンスを起動する 移行プロセスの次のステップでは、機能の転送を開始できるように VPC でインスタンスを起動しま す。前のステップで作成した AMI を使用して、VPC 内でインスタンスを起動できます。このインス タンスでは、既存の EC2-Classic インスタンスと同じデータおよび設定が使用されます。 カスタム AMI を使用して VPC でインスタンスを起動するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ダッシュボードで、[Launch Instance] を選択します。 3. [ Choose an Amazon Machine Image] ページで、[My AMIs] カテゴリを選択し、作成した AMI を 選択します。 4. [Choose an Instance Type] ページで、インスタンスのタイプを選択し、[Next: Configure Instance Details] を選択します。 5. [Configure Instance Details] ページで、[Network] リストから VPC を選択します。[Subnet] リス トから必要なサブネットを選択します。必要な他の詳細を設定し、[Configure Security Group] ページが表示されるまでウィザードの次のページに進みます。 6. [Select an existing group] を選択し、前に作成したセキュリティグループを選択します。[Review and Launch] を選択します。 インスタンスの詳細を確認し、[Launch] を選択して、キーペアを指定し、インスタンスを起動し ます。 7. ウィザードの各ステップで設定できるパラメーターの詳細については、「インスタンスの作 成 (p. 303)」を参照してください。 インスタンスを起動し、running 状態になったら、必要に応じて、インスタンスに接続してインスタ ンスを設定できます。 ステップ 6: EC2-Classic インスタンスを VPC にリンクする インスタンスを設定し、アプリケーションの機能を VPC で利用できるようにした後、ClassicLink を 使用して、新しい VPC のインスタンスと EC2-Classic インスタンスの間のプライベート IP 通信を有 効にすることができます。 インスタンスを VPC にリンクするには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Instances] を選択します。 3. EC2-Classic インスタンスを選択し、[Actions]、[ClassicLink]、[Link to VPC] の順に選択します。 Note 4. 5. インスタンスが running 状態であることを確認します。 ダイアログボックスで、ClassicLink が有効な VPC を選択します (ClassicLink が有効になってい る VPC のみが表示されます)。 インスタンスに関連付ける VPC セキュリティグループを 1 つ以上選択します。終了したら [Link to VPC] を選択します。 ステップ 7: VPC への移行を完了する アプリケーションのサイズや移行する必要がある機能に応じて、アプリケーションのすべてのコン ポーネントを EC2-Classic から VPC に移動するまで、ステップ 4 ~ 6 を繰り返します。 EC2-Classic インスタンスと VPC インスタンスの間で内部コミュニケーションを有効にした後、アプ リケーションが EC2-Classic プラットフォーム内のサービスではなく、VPC 内の移行されたサービ 671 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの IP アドレッシング スを使用するように、アプリケーションを更新する必要があります。そのための詳細な手順は、アプ リケーションの設計によって異なります。通常、この作業では、EC2-Classic インスタンスではなく VPC インスタンスの IP アドレスを指すように送信先 IP アドレスを更新します。EC2-Classic プラッ トフォームで現在使用している Elastic IP アドレスを EC2-VPC プラットフォームに移行できます。詳 細については、「EC2-Classic から EC2-VPC への Elastic IP アドレスの移行 (p. 692)」を参照して ください。 このステップを完了し、アプリケーションが VPC から機能していることをテストしたら、EC2Classic インスタンスを終了し、VPC の ClassicLink を無効にすることができます。また、不要になっ た EC2-Classic リソースをクリーンアップして、リソースの料金が発生することを回避できます。た とえば、Elastic IP アドレスを解放し、EC2-Classic インスタンスに関連付けられていたボリュームを 削除できます。 Amazon EC2 インスタンスの IP アドレッシング インスタンスには、IP アドレスと IPv4 DNS ホスト名が付与されます。これらは、インスタンスが EC2-Classic プラットフォームと Virtual Private Cloud (VPC) のどちらで起動されたかに応じて異なる ことがあります。EC2-Classic および EC2-VPC プラットフォームの詳細については、「サポートさ れているプラットフォーム (p. 649)」を参照してください。 Amazon EC2 と Amazon VPC は、IPv4 と IPv6 の両方のアドレス設定プロトコルをサポートします。 デフォルトでは、Amazon EC2 と Amazon VPC は IPv4 アドレス設定プロトコルを使用します。この 動作を無効にすることはできません。VPC の作成時には IPv4 CIDR ブロック (プライベート IPv4 ア ドレスの範囲) を指定する必要があります。必要に応じて、IPv6 CIDR ブロックを VPC とサブネット に割り当て、そのブロックからサブネットのインスタンスに IPv6 アドレスを割り当てることができま す。IPv6 アドレスはインターネットから到達できます。IPv6 の詳細については、「VPC の IP アドレ ス指定」 (&guide-vpc-user;) を参照してください。 IPv6 は、EC2-Classic プラットフォームではサポートされません。IPv6 は、現在 米国東部 (オハイオ) リージョンでのみサポートされています。 目次 • プライベート IPv4 アドレスと内部 DNS ホスト名 (p. 672) • パブリック IPv4 アドレスと外部 DNS ホスト名 (p. 673) • Elastic IP アドレス (IPv4) (p. 674) • Amazon DNS サーバー (p. 675) • IPv6 アドレス (p. 675) • EC2-Classic と EC2-VPC の IP アドレスの違い (p. 675) • インスタンスの IP アドレスの使用 (p. 677) • 複数の IP アドレス (p. 681) プライベート IPv4 アドレスと内部 DNS ホスト名 プライベート IPv4 アドレスは、インターネットから到達できない IP アドレスです。プライベート IPv4 アドレスは、同じネットワーク (EC2-Classic または VPC) 内のインスタンス間の通信に使用でき ます。プライベート IPv4 アドレスの標準および仕様については、RFC 1918 を参照してください。 Note RFC 1918 に指定されているプライベート IPv4 アドレスの範囲に含まれない、パブリックに ルーティングできる CIDR ブロックを持つ VPC を作成できます。ただし、このドキュメント 672 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド パブリック IPv4 アドレスと外部 DNS ホスト名 でプライベート IPv4 アドレス (または「プライベート IP アドレス」) と言う場合は、VPC の IPv4 CIDR 範囲に含まれる IP アドレスを指します。 インスタンスを起動すると、そのインスタンスのプライベート IPv4 アドレスが DHCP を使用して割 り当てられます。また、各インスタンスには、インスタンスのプライベート IPv4 アドレスに解決され る内部 DNS ホスト名 (ip-10-251-50-12.ec2.internal など) が割り当てられます。内部 DNS ホ スト名は同じネットワーク内のインスタンス間の通信に使用できます。ただし、インスタンスが含ま れるネットワークの外部の DNS ホスト名を解決することはできません。 VPC で起動されるインスタンスには、サブネットの IPv4 アドレス範囲のプライマリプライベート IP アドレスが割り当てられます。詳細については、Amazon VPC ユーザーガイド の「サブネットのサイ ズ設定」を参照してください。プライマリプライベート IP アドレスを指定しないでインスタンスを起 動すると、サブネットの IPv4 範囲内で使用可能な IP アドレスが自動的に選択されます。VPC の各イ ンスタンスには、プライマリプライベート IPv4 アドレスが割り当てられたデフォルトのネットワー クインターフェイス (eth0) があります。追加のプライベート IPv4 アドレス (セカンダリプライベート IPv4 アドレス) も指定できます。プライマリプライベート IP アドレスとは異なり、セカンダリプライ ベート IP アドレスは、別のインスタンスに割り当て直すことができます。詳細については、「複数の IP アドレス (p. 681)」を参照してください。 EC2-Classic で起動されるインスタンスでは、インスタンスが停止または終了したときにプライベー ト IPv4 アドレスが解放されます。停止したインスタンスを再開すると、インスタンスには新しいプラ イベート IPv4 アドレスが割り当てられます。 VPC で起動されたインスタンスの場合、インスタンスが停止後に再開されたときはプライベート IPv4 アドレスとネットワークインターフェイスの関連付けが維持され、インスタンスが終了されたときは 解放されます。 EC2-Classic でカスタムファイアウォール構成を作成した場合、Amazon DNS サーバーのアドレス からのポート 53 (DNS) (エフェメラル範囲の送信先ポート) からのインバウンドトラフィックを許 可するルールをファイウォールに作成する必要があります。そうしない場合、インスタンスからの 内部 DNS 解決に失敗します。ファイアウォールが自動的に DNS クエリレスポンスを自動的に許可 しない場合は、Amazon DNS サーバーの IP アドレスからのトラフィックを許可する必要がありま す。Amazon DNS サーバーの IP アドレスを取得するには、インスタンス内から以下のコマンドを使 用します。 • Linux grep nameserver /etc/resolv.conf パブリック IPv4 アドレスと外部 DNS ホスト名 パブリック IP アドレスは、インターネットから到達可能な IPv4 アドレスです。インスタンスとイン ターネット間で通信するには、パブリック アドレスを使用できます。 パブリック IP アドレスを受け取る各インスタンスには、外部 DNS ホスト名 (ec2-203-0-113-25.compute-1.amazonaws.com など) が割り当てられます。外部 DNS ホスト名 を解決すると、インスタンスのパブリック IP アドレス (インスタンスのネットワーク外の場合) およ びインスタンスのプライベート IPv4 アドレス (インスタンスのネットワーク内からの場合) となりま す。パブリック IP アドレスは、ネットワークアドレス変換 (NAT) によって、プライマリプライベー ト IP アドレスにマッピングされます。NAT の詳細については、RFC 1631: The IP Network Address Translator (NAT) を参照してください。 EC2-Classic でインスタンスを起動すると、EC2-Classic パブリック IPv4 アドレスプールからインス タンスにパブリック IP アドレスが自動的に割り当てられます。この動作を変更することはできませ ん。VPC でインスタンスを起動するとき、サブネットには、そのサブネットで起動するインスタン スが EC2-VPC パブリック IPv4 アドレスプールからパブリック IP アドレスを受け取るかどうかを決 673 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Elastic IP アドレス (IPv4) 定する属性があります。デフォルトでは、デフォルト VPC で起動されたインスタンスにパブリック IP アドレスが割り当てられます。デフォルト以外のサブネットで起動されたインスタンスには、パブ リック IP アドレスが割り当てられません。 VPC のインスタンスでパブリック IP アドレスを受け取るかどうかを制御するには、次の方法を使用 します。 • サブネットのパブリック IP アドレス属性を変更する。詳細については、Amazon VPC ユーザーガ イド の「サブネットのパブリック IPv4 アドレス指定属性の変更」を参照してください。 • 起動時にパブリック IP アドレス機能を有効または無効にする。これにより、サブネットのパブリッ ク IP アドレス属性がオーバーライドされます。詳細については、「インスタンス起動時のパブリッ ク IPv4 アドレスの割り当て (p. 679)」を参照してください。 パブリック IP アドレスは、Amazon のパブリック IPv4 アドレスプールからインスタンスに割り当て られ、お客様の AWS アカウントには関連付けられません。パブリック IP アドレスをインスタンスか ら割り当て解除すると、そのパブリック IPv4 アドレスはパブリック IP アドレスプールに戻され、再 利用することはできません。 手動でパブリック IP アドレスをインスタンスに関連付けること、また、手動でインスタンスから割り 当て解除することはできません。場合によって、パブリック IP アドレスはインスタンスから解放され たり、新しいインスタンスに割り当てられたりします。 • インスタンスが停止または終了されると、インスタンスのパブリック IP アドレスは解放されます。 停止していたインスタンスが再起動されると、そのインスタンスには新しいパブリック IP アドレス が送信されます。 • Elastic IP アドレスをインスタンスに関連付けた場合、または Elastic IP アドレスを VPC 内のイン スタンスのプライマリネットワークインターフェイス (eth0) に関連付けた場合、インスタンスの パブリック IP アドレスは解放されます。Elastic IP アドレスをインスタンスから割り当て解除する と、そのインスタンスには新しいパブリック IP アドレスが送信されます。 • VPC 内のインスタンスのパブリック IP アドレスが既に解放されている場合には、複数のネット ワークインターフェイスがインスタンスにアタッチされていると、インスタンスに新しいパブリッ ク IP アドレスは送信されません。 必要に応じて、インスタンスに関連付けおよびインスタンスから関連付けできる永続的なパブリック IP アドレスが必要な場合は、Elastic IP アドレスを使用します。たとえば、動的 DNS を使用して既存 の DNS 名を新しいインスタンスのパブリック IP アドレスにマッピングした場合、その IP アドレス がインターネット内に伝達されるまでに最大 24 時間かかることがあります。その結果、新しいイン スタンスはトラフィックを受信せず、終了したインスタンスがリクエストの受信を継続することがあ ります。この問題を解決するには、Elastic IP アドレスを使用します。独自の Elastic IP アドレスを割 り当てて、それをインスタンスに関連付けることができます。詳細については、「Elastic IP アドレ ス (p. 689)」を参照してください。 VPC 内のインスタンスに Elastic IP アドレスを割り当てると、DNS ホスト名が有効な場合、インス タンスは IPv4 DNS ホスト名を受け取ります。詳細については、「Amazon VPC ユーザーガイド」の 「VPC での DNS の使用」を参照してください。 Note インスタンスがパブリック NAT IP アドレスを使用して他のインスタンスにアクセスする場 合、アクセス先のインスタンスが同じリージョンにあるかどうかによって、リージョンデー タ転送またはインターネットデータ転送に対して課金されます。 Elastic IP アドレス (IPv4) Elastic IP アドレスは、アカウントに割り当てることができるパブリック IPv4 アドレスです。必要に 応じて、インスタンスに関連付けることができます。これは、解放するように選択しない限り、イン 674 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Amazon DNS サーバー スタンスに割り当てられたままです。Elastic IP アドレスとその使用方法の詳細については、「Elastic IP アドレス (p. 689)」を参照してください。 IPv6 に対する Elastic IP アドレスはサポートされていません。 Amazon DNS サーバー Amazon は、Amazon が提供する IPv4 DNS ホスト名を解決する DNS サーバーを IPv4 アドレス に提供します。EC2-Classic で、Amazon DNS サーバーは 172.16.0.23 にあります。EC2-VPC で、Amazon DNS サーバーは VPC ネットワークの範囲に 2 をプラスしたアドレスにあります。詳細 については、Amazon VPC ユーザーガイド の「Amazon DNS サーバー」を参照してください。 IPv6 アドレス 必要に応じて、IPv6 CIDR ブロックを VPC と関連付けることができます。また、IPv6 CIDR ブロック をサブネットと関連付けることができます。VPC の IPv6 CIDR ブロックは、Amazon の IPv6 アドレ スのプールから自動的に割り当てられます。独自にアドレス範囲を選択することはできません。詳細 については、Amazon VPC ユーザーガイド の次のトピックを参照してください。 • IPv6 用の VPC とサブネットのサイズ設定 • IPv6 CIDR ブロックと VPC の関連付け • IPv6 CIDR ブロックとサブネットの関連付け IPv6 アドレスはグローバルに一意であるため、インターネット経由で到達可能です。IPv6 CIDR ブ ロックが VPC およびサブネットと関連付けられていて、以下のいずれかに該当する場合、VPC 内の インスタンスには IPv6 アドレスが割り当てられます。 • 起動時にサブネットからインスタンスに IPv6 アドレスが自動的に割り当てられるように設定されて いる。詳細については、「サブネットの IPv6 アドレス指定属性の変更」を参照してください。 • 起動時に IPv6 アドレスをインスタンスに割り当てる。 • 起動後に IPv6 アドレスをインスタンスのプライマリネットワークインターフェイスに割り当てる。 • 起動後に IPv6 アドレスを同じサブネットのネットワークインターフェイスに割り当て、そのネット ワークインターフェイスをインスタンスにアタッチする。 起動時にインスタンスに IPv6 アドレスが割り当てられると、そのアドレスはインスタンスのプライ マリネットワークインターフェイス (eth0) と関連付けられます。IPv6 アドレスとネットワークイン ターフェイスの関連付けは解除できます。インスタンスの IPv6 DNS ホスト名はサポートされていま せん。 IPv6 アドレスは、インスタンスの停止時および終了時に保持され、インスタンスの終了時に解放され ます。IPv6 アドレスは、別のネットワークインターフェイスに割り当てられている間は再割り当てで きません。最初に割り当てを解除する必要があります。 追加の IPv6 アドレスをインスタンスに割り当てるには、インスタンスにアタッチされたネットワーク インターフェイスにアドレスを割り当てます。ネットワークインターフェイスに割り当てることがで きる IPv6 アドレスの数と、インスタンスにアタッチできるネットワークインターフェイスの数は、イ ンスタンスタイプごとに異なります。詳細については、「各インスタンスタイプのネットワークイン ターフェイスあたりの IP アドレス数 (p. 698)」を参照してください。 EC2-Classic と EC2-VPC の IP アドレスの違い 次の表では、EC2-Classic で起動されたインスタンス、デフォルトサブネットで起動されたインスタ ンス、デフォルト以外のサブネットで起動されたインスタンスの IP アドレスの違いをまとめていま す。 675 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic と EC2-VPC の IP アドレスの違い 特徴 EC2-Classic デフォルトのサブネット デフォルト以外のサブネッ ト パブリック IP アドレス (Amazon の パブリック IPv4 アドレ スプールよ り) インスタンスはパブリック IP アドレスを受け取りま す。 インスタンスは、起動時 に特に IP アドレスを指定 しない場合、またはサブ ネットのパブリック IP ア ドレス属性を変更しない 場合、デフォルトではパ ブリック IP アドレスを受 け取ります。 インスタンスは、起動時に 特に IP アドレスを指定し ない場合、またはサブネッ トのパブリック IP アドレ ス属性を変更しない場合、 デフォルトではパブリック IP アドレスを受け取りませ ん。 プライベー ト IPv4 ア ドレス インスタンスは、起動する たびに、EC2-Classic の範 囲に含まれるプライベート IP アドレスを受け取りま す。 インスタンスはデフォル トサブネットの IPv4 アド レス範囲から静的プライ ベート IP アドレスを受け 取ります。 インスタンスはサブネット の IPv4 アドレス範囲から 静的プライベート IP アド レスを受け取ります。 複数の IPv4 アドレス 1 つのインスタンスには 1 つのプライベート IP アド レスを選択します。複数の IP アドレスはサポートされ ません。 複数のプライベート IP ア ドレスを 1 つのインスタ ンスに割り当てることが できます。 複数のプライベート IP ア ドレスを 1 つのインスタン スに割り当てることができ ます。 ネットワー クインター フェイス IP アドレスが 1 つのイン スタンスに関連付けられま す。ネットワークインター フェイスはサポートされま せん。 IP アドレスはネットワー クインターフェイスに関 連付けられます。各イン スタンスには 1 つまた は複数のネットワークイ ンターフェイスがありま す。 IP アドレスはネットワー クインターフェイスに関連 付けられます。各インスタ ンスには 1 つまたは複数の ネットワークインターフェ イスがあります。 Elastic IP アドレス (IPv4) 停止すると、Elastic IP ア ドレスとインスタンスの関 連付けが解除されます。 停止しても、Elastic IP アドレスとインスタンス の関連付けが維持されま す。 停止しても、Elastic IP ア ドレスとインスタンスの関 連付けが維持されます。 DNS ホスト 名 (IPv4) DNS ホスト名はデフォル トで有効化されています。 DNS ホスト名はデフォ ルトで有効化されていま す。 DNS ホスト名は、Amazon VPC コンソールの VPC ウィザードを使用して VPC を作成していない限 り、デフォルトで無効に なっています。 IPv6 アドレ ス サポート外。インスタンス は IPv6 アドレスを受け取 ることができません。 デフォルトで、インスタ ンスは IPv6 アドレスを 受け取りません。ただ し、IPv6 CIDR ブロック を VPC およびサブネット と関連付け、IPv6 アドレ スを起動時に指定した場 合やサブネットの IPv6 ア ドレス指定属性を変更し た場合は除きます。 デフォルトで、インスタン スは IPv6 アドレスを受け 取りません。ただし、IPv6 CIDR ブロックを VPC お よびサブネットと関連付 け、IPv6 アドレスを起動時 に指定した場合やサブネッ トの IPv6 アドレス指定属 性を変更した場合は除きま す。 676 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの IP アドレスの使用 インスタンスの IP アドレスの使用 インスタンスに割り当てられた IP アドレスを表示し、起動時にパブリック IPv4 アドレスまたは IPv6 アドレスをインスタンスに割り当てることができます。 目次 • パブリック IP アドレス、プライベート IP アドレス、Elastic IP アドレスの確認 (p. 677) • IPv6 アドレスの確認 (p. 678) • インスタンス起動時のパブリック IPv4 アドレスの割り当て (p. 679) • インスタンスへの IPv6 アドレスの割り当て (p. 680) • インスタンスからの IPv6 アドレスの割り当て解除 (p. 681) パブリック IP アドレス、プライベート IP アドレス、Elastic IP アドレスの確認 Amazon EC2 コンソールを使用して、インスタンスのプライベート IPv4 アドレス、パブリック IPv4 アドレス、および Elastic IP アドレスを確認できます。また、インスタンスメタデータを使用して、 インスタンス内からインスタンスのパブリック IPv4 アドレスとプライベート IPv4 アドレスを確認す ることもできます。詳細については、「インスタンスメタデータとユーザーデータ (p. 367)」を参照 してください。 コンソールを使用してインスタンスのプライベート IPv4 アドレスを確認するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択します。詳細ペインで、[Private IPs] フィールドからプライベート IPv4 アド レスを取得し、[Private DNS] フィールドから内部 DNS ホスト名を取得します。 4. (VPC のみ) インスタンスに接続されているネットワークインターフェイスに割り当てられた 1 つ 以上のセカンダリプライベート IPv4 アドレスがある場合は、[Secondary private IPs] フィールド からこれらの IP アドレスを取得します。 5. (VPC のみ) または、ナビゲーションペインで [Network Interfaces] を選択し、インスタンスに関 連付けられているネットワークインターフェイスを選択します。 6. [Primary private IPv4 IP] フィールドからプライマリプライベート IP アドレス、および [Private DNS (IPv4)] フィールドから内部 DNS ホスト名を取得します。 7. ネットワークインターフェイスにセカンダリプライベート IP アドレスを割り当てている場合は、 [Secondary private IPv4 IPs] フィールドからこれらの IP アドレスを取得します。 コンソールを使用してインスタンスのパブリック IPv4 アドレスを確認するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択します。詳細ペインで、[IPv4 Public IP] フィールドからパブリック IP アドレ スを、[Public DNS (IPv4)] フィールドから外部 DNS ホスト名を取得します。 4. Elastic IP アドレスがインスタンスに関連付けられている場合は、Elastic IP アドレスを [Elastic IPs] フィールドから取得します。 Note Elastic IP アドレスをインスタンスに関連付けている場合は、[IPv4 Public IP] フィールド にも Elastic IP アドレスが表示されます。 677 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの IP アドレスの使用 5. (VPC のみ) または、ナビゲーションペインで [Network Interfaces] を選択し、インスタンスに関 連付けられているネットワークインターフェイスを選択します。 6. [IPv4 Public IP] フィールドからパブリック IP アドレスを取得します。アスタリスク (*) は、プ ライマリプライベート IPv4 アドレスにマッピングされているパブリック IPv4 アドレスまたは Elastic IP アドレスを示します。 Note パブリック IPv4 アドレスは、コンソールのネットワークインターフェイスのプロパティ として表示されますが、NAT によってプライマリプライベート IPv4 アドレスにマッピン グされます。したがって、インスタンスのネットワークインターフェイスのプロパティ を、たとえば ifconfig (Linux) または ipconfig (Windows) を通して調べてみると、パ ブリック IPv4 アドレスは表示されていません。インスタンス内からインスタンスのパブ リック IPv4 アドレスを確認するには、インスタンスのメタデータを使用できます。 インスタンスのメタデータを使用してインスタンスの IPv4 アドレスを確認するには 1. インスタンスに接続します。 2. プライベート IP アドレスにアクセスするには、次のコマンドを使用します。 • Linux $ curl http://169.254.169.254/latest/meta-data/local-ipv4 • Windows $ wget http://169.254.169.254/latest/meta-data/local-ipv4 3. パブリック IP アドレスにアクセスするには、次のコマンドを使用します。 • Linux $ curl http://169.254.169.254/latest/meta-data/public-ipv4 • Windows $ wget http://169.254.169.254/latest/meta-data/public-ipv4 インスタンスに Elastic IP アドレスが関連付けられている場合、返される値は Elastic IP アドレス の値です。 IPv6 アドレスの確認 (VPC のみ) Amazon EC2 コンソールを使用してインスタンスの IPv6 アドレスを確認できます。 コンソールを使用してインスタンスの IPv6 アドレスを確認するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択します。詳細ペインで、[IPv6 IPs] フィールドから IPv6 アドレスを取得しま す。 インスタンスのメタデータを使用してインスタンスの IPv6 アドレスを確認するには 1. インスタンスに接続します。 678 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの IP アドレスの使用 2. 次のコマンドを使用して IPv6 アドレスを表示します (http://169.254.169.254/latest/ meta-data/network/interfaces/macs/ から MAC アドレスを取得できます)。 • Linux $ curl http://169.254.169.254/latest/meta-data/network/interfaces/ macs/mac-address/ipv6s • Windows $ wget http://169.254.169.254/latest/meta-data/network/interfaces/ macs/mac-address/ipv6s インスタンス起動時のパブリック IPv4 アドレスの割り当て EC2-Classic でインスタンスを起動すると、そのインスタンスにはパブリック IPv4 アドレスがデフォ ルトで割り当てられます。この動作を変更することはできません。 VPC では、すべてのサブネットに、そのサブネット内で起動されるインスタンスにパブリック IP ア ドレスが割り当てられるかどうかを決定する属性があります。デフォルトでは、デフォルト以外のサ ブネットではこの属性が false に設定されており、デフォルトのサブネットではこの属性が true に設 定されています。インスタンスを起動する場合、パブリック IPv4 アドレス指定機能を使用してイン スタンスにパブリック IPv4 アドレスを割り当てるかどうかを制御することもできます。サブネット の IP アドレス指定属性のデフォルトの動作をオーバーライドできます。パブリック IPv4 アドレス は、Amazon のパブリック IPv4 アドレスプールから割り当てられ、デバイスインデックス eth0 を持 つネットワークインターフェイスに割り当てられます。この機能は、インスタンス起動時の特定の条 件により異なります。 Important 起動後に、インスタンスからパブリック IP アドレスの割り当てを手動で解除することはでき ません。ただし、特定の場合に、アドレスが自動的に解放され、その後再利用できなくなり ます。詳細については、「パブリック IPv4 アドレスと外部 DNS ホスト名 (p. 673)」を参 照してください。お客様の意志で関連付けしたり関連付けを解除したりできる永続的なパブ リック IP アドレスを必要とする場合は、起動してからインスタンスに Elastic IP アドレスを 割り当てます。詳細については、「Elastic IP アドレス (p. 689)」を参照してください。 インスタンス起動時にパブリック IP アドレス機能にアクセスするには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 [インスタンスの作成] を選択します。 3. 4. AMI およびインスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 [Configure Instance Details] ページの [Network] で VPC を選択します。[Auto-assign Public IP] リ ストが表示されます。[Enable] または [Disable] を選択して、サブネットのデフォルトの設定を オーバーライドします。 Important 5. 複数のネットワークインターフェイスを指定した場合、パブリック IP アドレスを自動割 り当てすることはできません。さらに、eth0 のように既存のネットワークインターフェ イスを指定すると、パブリック IP の自動割り当て機能を使用してサブネット設定をオー バーライドすることはできません。 ウィザードの後続ページに表示されるステップにしたがって、インスタンスのセットアップを最 後まで実行します。ウィザード設定オプションの詳細については、インスタンスの作成 (p. 303) を参照してください。最終ページの [Review Instance Launch] で、設定内容を確認します。 [Launch] を選択してキーペアを選択し、インスタンスを起動します。 679 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド インスタンスの IP アドレスの使用 6. [Instances] ページで、新しいインスタンスを選択し、そのパブリック IP アドレスを、詳細ペイン の [IPv4 Public IP] フィールドで確認します。 パブリック IP アドレス機能は起動時にのみ使用できます。ただし、起動時にパブリック IP アドレ スをインスタンスに割り当てるかどうかにかかわらず、起動後に Elastic IP アドレスをインスタンス に関連付けることができます。詳細については、「Elastic IP アドレス (p. 689)」を参照してくださ い。サブネットのパブリック IPv4 アドレス指定動作を変更することもできます。詳細については、 「サブネットの IPv4 アドレス指定属性の変更」を参照してください。 コマンドラインを使用してパブリック IP アドレス指定機能を有効または無効にするには • 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • run-instances コマンド (AWS CLI) で、--associate-public-ip-address または --noassociate-public-ip-address オプションを使用する • New-EC2Instance コマンド (AWS Tools for Windows PowerShell) で -AssociatePublicIp パラメーターを使用する インスタンスへの IPv6 アドレスの割り当て VPC とサブネットに IPv6 CIDR ブロックが関連付けられている場合は、起動時または起動後に IPv6 アドレスをインスタンスに割り当てることができます。IPv6 アドレスは、サブネットの IPv6 アドレ ス範囲から割り当てられ、デバイスインデックス eth0 を持つネットワークインターフェイスに割り当 てられます。 起動時に IPv6 アドレスをインスタンスに割り当てるには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 AMI およびインスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。 Note IPv6 アドレスをサポートするインスタンスタイプを必ず選択します。詳細については、 「インスタンスタイプ (p. 167)」を参照してください。 3. 4. [Configure Instance Details] ページで、[Network] から VPC を選択し、[Subnet] からサブネット を選択します。[Auto-assign IPv6 IP] で、[Enable] を選択します。 ウィザードの残りの手順に従ってインスタンスを起動します。 別の方法として、起動後に IPv6 アドレスをインスタンスに割り当てることもできます。 起動後に IPv6 アドレスをインスタンスに割り当てるには 1. 2. 3. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Instances] を選択します。 インスタンスを選択し、[Actions]、[Manage IP Addresses] の順に選択します。 4. [IPv6 Addresses] で、[Assign new IP] を選択します。サブネットの範囲から IPv6 アドレスを指定 するか、[Auto-assign] を使って IPv6 アドレスを自動的に選択することができます。 [Save] を選択します。 5. Note Amazon Linux 2016.09.0 以降または Windows Server 2008 R2 以降を使用してインスタンス を起動した場合、インスタンスは IPv6 用に設定されるため、インスタンスで IPv6 アドレス 680 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 複数の IP アドレス を認識するための追加のステップは不要です。古い AMI からインスタンスを起動した場合 は、必要に応じてインスタンスを手動で設定します。詳細については、Amazon VPC ユー ザーガイド の「インスタンスでの IPv6 の設定」を参照してください。 コマンドラインを使用して IPv6 アドレスを割り当てるには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • run-instances コマンド (AWS CLI) で --ipv6-addresses オプションを使用する • New-EC2Instance コマンド (AWS Tools for Windows PowerShell) で -NetworkInterface の Ipv6Addresses プロパティを使用する • assign-ipv6-addresses (AWS CLI) • Register-EC2Ipv6AddressList (AWS Tools for Windows PowerShell) インスタンスからの IPv6 アドレスの割り当て解除 Amazon EC2 コンソールを使用してインスタンスから IPv6 アドレスを割り当て解除できます。 インスタンスから IPv6 アドレスを割り当て解除するには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Instances] を選択します。 3. 4. インスタンスを選択し、[Actions]、[Manage IP Addresses] の順に選択します。 [IPv6 Addresses] で、割り当て解除する IPv6 アドレスに対して Unassign を選択します。 5. [Yes, Update] を選択します。 コマンドラインを使用して IPv6 アドレスを割り当て解除するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • unassign-ipv6-addresses (AWS CLI) • Unregister-EC2Ipv6AddressList (AWS Tools for Windows PowerShell) 複数の IP アドレス &EC2Vpc; では、インスタンスに複数のプライベート IPv4 および IPv6 アドレスを指定できます。イ ンスタンスに指定できるネットワークインターフェイスとプライベート IPv4 および IPv6 アドレスの 数は、インスタンスタイプによって異なります。詳細については、「各インスタンスタイプのネット ワークインターフェイスあたりの IP アドレス数 (p. 698)」を参照してください。 次のような場合、複数の IP アドレスを VPC 内のインスタンスに割り当てると便利です。 • 1 つのサーバーで複数の SSL 証明書を使用し、各インターフェイスに各 IP アドレスに割り当てる ことで、1 つのサーバーで複数のウェブサイトをホストする。 • 各ネットワークインターフェイス用に複数の IP アドレスを持つネットワークアプライアンス (ファ イアウォールやロードバランサーなど) を運用する。 • インスタンスでエラーが発生した場合に、セカンダリ IP アドレスをスタンバイインスタンスに再割 り当てすることによって、内部トラフィックをスタンバイインスタンスにリダイレクトする。 目次 681 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 複数の IP アドレス • 複数の IP アドレスを使用する方法 (p. 682) • 複数の IPv4 アドレスの使用 (p. 682) • 複数の IPv6 アドレスの使用 (p. 686) 複数の IP アドレスを使用する方法 次の一覧は、ネットワークインターフェイスで複数の IP アドレスを使用する方法の説明です。 • セカンダリプライベート IPv4 アドレスをネットワークインターフェイスに割り当てることができま す。ネットワークインターフェイスは、インスタンスにアタッチしたり、インスタンスからデタッ チすることができます。 • IPv6 CIDR ブロックが関連付けられているサブネット内のネットワークインターフェイスに複数の IPv6 アドレスを割り当てることができます。 • ネットワークインターフェイスのサブネットの IPv4 CIDR ブロック範囲からセカンダリ IPv4 を選 択する必要があります。 • ネットワークインターフェイスのサブネットの IPv6 CIDR ブロック範囲から IPv6 アドレスを選択 する必要があります。 • セキュリティグループは、IP アドレスではなく、ネットワークインターフェイスに適用されます。 そのため、IP アドレスは、そのアドレスが指定されているネットワークインターフェイスのセキュ リティグループの対象です。 • 複数の IP アドレスは、実行中または停止したインスタンスにアタッチされたネットワークインター フェイスに割り当てたり、割り当て解除したりできます。 • ネットワークインターフェイスに割り当てられているセカンダリプライベート IPv4 アドレスは、明 示的に許可された場合、別のネットワークインターフェイスに割り当て直すことができます。 • IPv6 アドレスは、最初に既存のネットワークインターフェイスから割り当て解除しない限り、別の ネットワークインターフェイスに再割り当てすることはできません。 • コマンドラインツールまたは API を使用して複数の IP アドレスをネットワークインターフェイス に割り当てるときに、いずれかの IP アドレスを割り当てることができない場合、オペレーション全 体が失敗します。 • プライマリプライベート IPv4 アドレス、セカンダリプライベート IPv4 アドレス、Elastic IP アドレ ス、および IPv6 アドレスは、ネットワークインターフェイスをインスタンスからデタッチしたり、 別のインスタンスにアタッチしても、ネットワークインターフェイスへの割り当ては維持します。 • プライマリネットワークインターフェイスをインスタンスから移動することはできませんが、プラ イマリネットワークインターフェイスのセカンダリプライベート IPv4 アドレスを別のネットワーク インターフェイスに再割り当てすることはできます。 • 追加のネットワークインターフェイスは、あるインスタンスから別のインスタンスに移動できま す。 次の一覧は、Elastic IP アドレスで複数の IP アドレスを使用する方法の説明です (IPv4 のみ)。 • 各プライベート IPv4 アドレスを関連付けることができる Elastic IP アドレスは 1 つであり、逆に各 Elastic IP アドレスを関連付けることができるプライベート IPv4 アドレスは 1 つです。 • セカンダリプライベート IPv4 アドレスを別のインターフェイスに再割り当てした場合、セカンダリ プライベート IPv4 アドレスと Elastic IP アドレスの関連付けは維持されます。 • セカンダリプライベート IPv4 アドレスとインターフェイスの割り当てを解除すると、関連付けられ た Elastic IP アドレスとセカンダリプライベート IPv4 アドレスとの関連付けは自動的に解除されま す。 複数の IPv4 アドレスの使用 セカンダリプライベート IPv4 アドレスは、インスタンスに割り当てたり、Elastic IPv4 アドレスと関 連付けたり、割り当て解除したりできます。 682 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 複数の IP アドレス 目次 • セカンダリプライベート IPv4 アドレスを割り当てる (p. 683) • セカンダリプライベート IPv4 アドレスを認識するようにインスタンスのオペレーティングシステ ムを設定する (p. 685) • Elastic IP アドレスをセカンダリプライベート IPv4 アドレスに割り当てる (p. 685) • セカンダリプライベート IPv4 アドレスを確認する (p. 685) • セカンダリプライベート IPv4 アドレスを割り当て解除する (p. 686) セカンダリプライベート IPv4 アドレスを割り当てる セカンダリプライベート IPv4 アドレスは、インスタンスの起動時または起動後に、インスタンスの ネットワークインターフェイスに割り当てることができます。このセクションでは、次の手順を紹介 します。 • EC2-VPC でインスタンスの起動時にセカンダリプライベート IPv4 アドレスを割り当てるに は (p. 683) • コマンドラインを使用して起動時にセカンダリ IPv4 アドレスを割り当てるには (p. 684) • セカンダリプライベート IPv4 アドレスをネットワークインターフェイスに割り当てるに は (p. 684) • コマンドラインを使用して既存のインスタンスにセカンダリプライベート IPv4 を割り当てるに は (p. 684) EC2-VPC でインスタンスの起動時にセカンダリプライベート IPv4 アドレスを割り当てるに は 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. [インスタンスの作成] を選択します。 3. AMI を選択し、次にインスタンスタイプを選択して、[Next: Configure Instance Details] を選択し ます。 4. [Configure Instance Details] ページで、[Network] から VPC を選択し、[Subnet] からサブネット を選択します。 5. [Network Interfaces] セクションで、次の手順を実行し、[Next: Add Storage] を選択します。 • 別のネットワークインターフェイスを追加するには、[Add Device] を選択します。コンソール では、インスタンス起動時のネットワークインターフェイスを最大 2 つ指定できます。インス タンスを起動したら、ナビゲーションペインで [Network Interfaces] を選択し、ネットワークイ ンターフェイスを追加します。アタッチできるネットワークインターフェイスの合計数はイン スタンスタイプによって異なります。詳細については、「各インスタンスタイプのネットワー クインターフェイスあたりの IP アドレス数 (p. 698)」を参照してください。 Important 2 つ目のネットワークインターフェイスを追加すると、システムは、パブリック IPv4 アドレスを自動的に割り当てることができなくなります。プライマリネットワークイ ンターフェイス (eth0) に Elastic IP アドレスを割り当てない限り、IPv4 経由でイン スタンスに接続することはできません。起動ウィザードを完了した後は、Elastic IP アドレスを割り当てることができます。詳細については、「Elastic IP アドレスの操 作 (p. 692)」を参照してください。 • ネットワークインターフェイスごとに、[Secondary IP addresses] の下にある [Add IP] を選 択し、サブネットの範囲に含まれるプライベート IP アドレスを入力するか、デフォルトの Auto-assign のままにしてアドレスを自動的に選択します。 6. 次の [Add Storage] ページで、AMI によって指定されるボリューム (ルートデバイスボリュームな ど) 以外にインスタンスにアタッチするボリュームを指定し、[Next: Add Tags] を選択します。 683 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 複数の IP アドレス 7. [Add Tags] ページで、ユーザーフレンドリーな名前などを使ってインスタンスのタグを指定し、 [Next: Configure Security Group] を選択します。 8. [Configure Security Group] ページで、既存のセキュリティグループを選択するか、新しいグルー プを作成します。[Review and Launch] を選択します。 9. [Review Instance Launch] ページで、設定内容を確認します。[Launch] を選択して、キーペアを 選択し、インスタンスを起動します。Amazon EC2 を初めて使用する場合、これまでにキーペア を作成したことがなければ、ウィザードによってキーペアを作成するよう求めるメッセージが表 示されます。 Important セカンダリプライベート IP アドレスをネットワークインターフェイスに追加した後、インス タンスに接続して、インスタンス自体でセカンダリプライベート IP アドレスを設定する必要 があります。詳細については、「セカンダリプライベート IPv4 アドレスを認識するようにイ ンスタンスのオペレーティングシステムを設定する (p. 685)」を参照してください。 コマンドラインを使用して起動時にセカンダリ IPv4 アドレスを割り当てるには • 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • run-instances コマンド (AWS CLI) の --secondary-private-ip-addresses オプション • -NetworkInterface を定義し、New-EC2Instance コマンド (AWS Tools for Windows PowerShell) に PrivateIpAddresses パラメーターを指定します。 セカンダリプライベート IPv4 アドレスをネットワークインターフェイスに割り当てるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Network Interfaces] を選択し、インスタンスにアタッチされている ネットワークインターフェイスを選択します。 3. [Actions]、[Manage IP Addresses] の順に選択します。 4. [IPv4 Addresses] で、[Assign new IP] を選択します。 5. インスタンスのサブネットの範囲に含まれる特定の IPv4 アドレスを入力するか、フィールドを空 のままにして IP アドレスを自動的に選択します。 6. (省略可能) セカンダリプライベート IP アドレスがすでに別のネットワークインターフェイスに割 り当てられている場合、[Allow reassignment] を選択して、セカンダリプライベート IP アドレス を割り当て直すことができます。 7. [Yes, Update] を選択します。 または、インスタンスにセカンダリプライベート IPv4 アドレスを割り当てることができます。ナビ ゲーションペインで [Instances] を選択し、インスタンスを選択します。次に、[Actions] を選択し、 [Networking]、[Manage IP Addresses] の順に選択します。上記のステップに従って、同じ情報を設定 できます。IP アドレスは、インスタンスのプライマリネットワークインターフェイス (eth0) に割り当 てられます。 コマンドラインを使用して既存のインスタンスにセカンダリプライベート IPv4 を割り当てる には • 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • assign-private-ip-addresses (AWS CLI) • Register-EC2PrivateIpAddress (AWS Tools for Windows PowerShell) 684 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 複数の IP アドレス セカンダリプライベート IPv4 アドレスを認識するようにインスタンスのオペ レーティングシステムを設定する セカンダリプライベート IPv4 アドレスをインスタンスに割り当てたら、セカンダリプライベート IP アドレスを認識するようにインスタンスのオペレーティングシステムを設定する必要があります。 • Amazon Linux を使用している場合、ec2-net-utils パッケージがこの処理を自動実行します。この パッケージは、インスタンスの実行中にアタッチされる追加のネットワークインターフェイスを設 定し、DHCP リースの更新中にセカンダリ IPv4 アドレスを更新して、関連するルーティングルー ルを更新します。コマンド sudo service network restart を使用して即座にインターフェー スの一覧を更新し、ip addr li を使用することで最新の一覧を表示することができます。ネット ワーク構成を手動で構成する必要がある場合、ec2-net-utils パッケージを削除できます。詳細につ いては、「ec2-net-utils を使用したネットワークインターフェイスの設定 (p. 704)」を参照してく ださい。 • 別の Linux ディストリビューションを使用している場合、Linux ディストリビューションのドキュメ ントを参照してください。追加のネットワークインターフェイスとセカンダリ IPv4 アドレスの設定 に関する情報が記載されています。同じサブネットのインスタンスに複数のインターフェイスがあ る場合、非同期のルーティングに対処する方法については、ルーティングルールの使用に関する情 報を検索してください。 Windows インスタンスの設定については、Windows インスタンスの Amazon EC2 ユーザーガイド の「Windows インスタンスのセカンダリプライベート IP アドレスの設定」を参照してください。 Elastic IP アドレスをセカンダリプライベート IPv4 アドレスに割り当てる EC2-VPC で、Elastic IP アドレスをセカンダリプライベート IPv4 アドレスに関連付けるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで [Elastic IPs] を選択します。 [Actions] を選択し、次に [Associate address] を選択します。 4. [Network interface] でネットワークインターフェイスを選択し、次に [Private IP] リストからセカ ンダリ IP アドレスを選択します。 5. [Associate] を選択します。 コマンドラインを使用して Elastic IP アドレスにセカンダリプライベート IPv4 アドレスを関 連付けるには • 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • associate-address (AWS CLI) • Register-EC2Address (AWS Tools for Windows PowerShell) セカンダリプライベート IPv4 アドレスを確認する EC2-VPC のネットワークインターフェイスに割り当てられたプライベート IPv4 アドレスを 確認するには 1. 2. 3. 4. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで、[Network Interfaces] を選択します。 確認するプライベート IP アドレスがあるネットワークインターフェイスを選択します。 詳細ペインの [Details] タブで、[Primary private IPv4 IP] フィールドと [Secondary private IPv4 IPs] フィールドに表示されている、ネットワークインターフェイスに割り当てられているプライ マリプライベート IPv4 アドレスとセカンダリプライベート IPv4 アドレスを確認します。 685 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 複数の IP アドレス インスタンスに割り当てられたプライベート IPv4 アドレスを確認するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. 確認するプライベート IPv4 アドレスがあるインスタンスを選択します。 4. 詳細ペインの [Description] タブで、ネットワークインターフェイス経由でインスタンスに割り当 てられているプライマリプライベート IPv4 アドレスとセカンダリプライベート IPv4 アドレスの [Private IPs] フィールドと [Secondary Private IPs] フィールドを確認します。 セカンダリプライベート IPv4 アドレスを割り当て解除する セカンダリプライベート IPv4 アドレスが不要になった場合、インスタンスやネットワークインター フェイスから割り当て解除できます。セカンダリプライベート IPv4 アドレスをネットワークインター フェイスから割り当て解除した場合、Elastic IP アドレス (存在する場合) の関連付けも解除されま す。 インスタンスからセカンダリプライベート IPv4 アドレスを割り当て解除するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択し、[Actions]、[Networking]、[Manage IP Addresses] の順に選択します。 4. [IPv4 Addresses] で、割り当て解除する IPv4 アドレスに対して [Unassign] を選択します。 5. [Yes, Update] を選択します。 ネットワークインターフェイスからセカンダリプライベート IPv4 アドレスを割り当て解除す るには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Network Interfaces] を選択します。 3. ネットワークインターフェースを選択し、[Actions]、[Manage IP Addresses] の順に選択します。 4. [IPv4 Addresses] で、割り当て解除する IPv4 アドレスに対して [Unassign] を選択します。 5. [Yes, Update] を選択します。 コマンドラインを使用してセカンダリプライベート IPv4 アドレスを割り当て解除するには • 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • unassign-private-ip-addresses (AWS CLI) • Unregister-EC2PrivateIpAddress (AWS Tools for Windows PowerShell) 複数の IPv6 アドレスの使用 インスタンスに複数の IPv6 アドレスを割り当て、インスタンスに割り当てられている IPv6 アドレス を表示したり、インスタンスから IPv6 アドレスを割り当て解除したりできます。 目次 • 複数の IPv6 アドレスを割り当てる (p. 687) • IPv6 アドレスを確認する (p. 688) • IPv6 アドレスの割り当て解除 (p. 689) 686 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 複数の IP アドレス 複数の IPv6 アドレスを割り当てる 起動時または起動後のインスタンスに 1 つ以上の IPv6 アドレスを割り当てることができます。IPv6 アドレスをインスタンスに割り当てるには、インスタンスを起動した VPC およびサブネットに IPv6 CIDR ブロックが関連付けられている必要があります。詳細については、Amazon VPC ユーザーガイ ド の「VPC とサブネット」を参照してください。 起動時に複数の IPv6 アドレスを割り当てるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ダッシュボードから、[Launch Instance] を選択します。 3. AMI を選択し、次にインスタンスタイプを選択して、[Next: Configure Instance Details] を選択し ます。IPv6 をサポートするインスタンスタイプを必ず選択します。詳細については、「インスタ ンスタイプ (p. 167)」を参照してください。 4. [Configure Instance Details] ページで、[Network] リストから VPC を選択し、[Subnet] リストか らサブネットを選択します。 5. [Network Interfaces] セクションで、次の手順を実行し、[Next: Add Storage] を選択します。 • IPv6 アドレスをプライマリネットワークインターフェイス (eth0) に割り当てるには、[IPv6 IPs]、[Add IP] の順に選択します。セカンダリ IPv6 アドレスを追加するには、再度 [Add IP] 選 択します。サブネットの範囲から IPv6 アドレスを入力するか、デフォルトの [Auto-assign] を 使用してサブネットから自動的に IPv6 アドレスを選択することができます。 • [Add Device] を選択して別のネットワークインターフェイスを追加し、上記のステップを繰 り返してそのネットワークインターフェイスに 1 つ以上の IPv6 アドレスを追加します。コン ソールでは、インスタンス起動時のネットワークインターフェイスを最大 2 つ指定できます。 インスタンスを起動したら、ナビゲーションペインで [Network Interfaces] を選択し、ネット ワークインターフェイスを追加します。アタッチできるネットワークインターフェイスの合 計数はインスタンスタイプによって異なります。詳細については、「各インスタンスタイプの ネットワークインターフェイスあたりの IP アドレス数 (p. 698)」を参照してください。 6. ボリュームをアタッチしてインスタンスにタグを付けるには、ウィザードの以下のステップに 従ってください。 7. [Configure Security Group] ページで、既存のセキュリティグループを選択するか、新しいグルー プを作成します。IPv6 経由でインスタンスに到達可能にする場合は、IPv6 アドレスからのア クセスを許可するルールがセキュリティグループにあることを確認します。詳細については、 「セキュリティグループのルールのリファレンス (p. 587)」を参照してください。[Review and Launch] を選択します。 8. [Review Instance Launch] ページで、設定内容を確認します。[Launch] を選択して、キーペアを 選択し、インスタンスを起動します。Amazon EC2 を初めて使用する場合、これまでにキーペア を作成したことがなければ、ウィザードによってキーペアを作成するよう求めるメッセージが表 示されます。 Amazon EC2 コンソールの [Instances] 画面を使用して、既存のインスタンスに複数の IPv6 アドレス を割り当てることができます。IPv6 アドレスは、インスタンスのプライマリネットワークインター フェイス (eth0) に割り当てられます。IPv6 アドレスをインタンスに割り当てるには、IPv6 アドレス が別のインスタンスやネットワークインターフェイスにまだ割り当てられていないことを確認しま す。 複数の IPv6 アドレスを既存のインスタンスに割り当てるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択し、[Actions]、[Manage IP Addresses] の順に選択します。 4. [IPv6 Addresses] で、追加する IPv6 アドレスごとに [Assign new IP] を選択します。サブネット の範囲から IPv6 アドレスを指定するか、[Auto-assign] を使って IPv6 アドレスを自動的に選択す ることができます。 687 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド 複数の IP アドレス 5. [Yes, Update] を選択します。 また、既存のネットワークインターフェイスに複数の IPv6 アドレスを割り当てることができます。そ のネットワークインターフェイスは、IPv6 CIDR ブロックが関連付けられているサブネットで作成さ れている必要があります。特定の IPv6 アドレスをネットワークインターフェイスに割り当てるには、 その IPv6 アドレスが別のネットワークインターフェイスにまだ割り当てられていないことを確認しま す。 複数の IPv6 アドレスをネットワークインターフェイスに割り当てるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Network Interfaces] を選択します。 3. ネットワークインターフェースを選択し、[Actions]、[Manage IP Addresses] の順に選択します。 4. [IPv6 Addresses] で、追加する IPv6 アドレスごとに [Assign new IP] を選択します。サブネット の範囲から IPv6 アドレスを指定するか、[Auto-assign] を使って IPv6 アドレスを自動的に選択す ることができます。 5. [Yes, Update] を選択します。 CLI の概要 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • 起動時に IPv6 アドレスを割り当てる: • run-instances コマンド (AWS CLI) で、--ipv6-addresses または --ipv6-address-count オ プションを使用する • -NetworkInterface を定義し、New-EC2Instance コマンド (AWS Tools for Windows PowerShell) で、Ipv6Addresses パラメーターまたは Ipv6AddressCount パラメーターを指定 する • IPv6 アドレスをネットワークインターフェイスに割り当てる: • assign-ipv6-addresses (AWS CLI) • Register-EC2Ipv6AddressList (AWS Tools for Windows PowerShell) IPv6 アドレスを確認する インスタンスまたはネットワークインターフェイスの IPv6 アドレスを確認できます。 インスタンスに割り当てられた IPv6 アドレスを確認するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. インスタンスを選択します。詳細ペインで、[IPv6 IPs] フィールドを確認します。 ネットワークインターフェイスに割り当てられた IPv6 アドレスを確認するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Network Interfaces] を選択します。 3. ネットワークインターフェイスを選択します。詳細ペインで、[IPv6 IPs] フィールドを確認しま す。 688 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Elastic IP アドレス CLI の概要 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • インスタンスの IPv6 アドレスを確認する場合 • describe-instances (AWS CLI) • Get-EC2Instance (AWS Tools for Windows PowerShell) • ネットワークインターフェイスの IPv6 アドレスを確認する場合 • describe-network-interfaces (AWS CLI) • Get-EC2NetworkInterface (AWS Tools for Windows PowerShell) IPv6 アドレスの割り当て解除 インスタンスのプライマリネットワークインターフェイスから IPv6 アドレスを割り当て解除できま す。またはネットワークインターフェイスから IPv6 アドレスを割り当て解除できます。 インスタンスから IPv6 アドレスを割り当て解除するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで、[Instances] を選択します。 3. 4. インスタンスを選択し、[Actions]、[Manage IP Addresses] の順に選択します。 [IPv6 Addresses] で、割り当て解除する IPv6 アドレスに対して Unassign を選択します。 5. [Yes, Update] を選択します。 ネットワークインターフェイスから IPv6 アドレスを割り当て解除するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで、[Network Interfaces] を選択します。 ネットワークインターフェースを選択し、[Actions]、[Manage IP Addresses] の順に選択します。 4. 5. [IPv6 Addresses] で、割り当て解除する IPv6 アドレスに対して Unassign を選択します。 [Save] を選択します。 CLI の概要 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • unassign-ipv6-addresses (AWS CLI) • Unregister-EC2Ipv6AddressList (AWS Tools for Windows PowerShell) Elastic IP アドレス Elastic IP アドレスは、動的なクラウドコンピューティングのために設計された静的 IPv4 アドレスで す。Elastic IP アドレスは、AWS アカウントに関連付けられます。Elastic IP アドレスを使用すると、 アドレスをアカウント内の別のインスタンスに迅速に再マップして、インスタンスやソフトウェアの エラーを隠すことができます。 Elastic IP アドレスは、インターネットからアクセス可能なパブリック IPv4 アドレスです。インス タンスにパブリック IPv4 アドレスがない場合、Elastic IP アドレスとインスタンスを関連付けてイン ターネットとの通信を有効にすることができます (ローカルコンピュータからインスタンスに接続する など)。 689 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Elastic IP アドレスの基本 現在、IPv6 に対する Elastic IP アドレスはサポートされていません。 トピック • Elastic IP アドレスの基本 (p. 690) • EC2-Classic と EC2-VPC の Elastic IP アドレスの相違点 (p. 690) • Elastic IP アドレスの操作 (p. 692) • 電子メールアプリケーションでの逆引き DNS の使用 (p. 696) • Elastic IP アドレスの制限 (p. 696) Elastic IP アドレスの基本 Elastic IP アドレスの基本的な特徴を次に示します。 • Elastic IP アドレスを使用するには、まずアカウントに 1 つ割り当ててから、それをインスタンスま たはネットワークインターフェイスに関連付けます。 • Elastic IP アドレスをインスタンスまたはそのプライマリネットワークインターフェイスに関連付け ると、インスタンスのパブリック IPv4 アドレス (既に割り当てられていた場合) が Amazon のパブ リック IPv4 アドレスのプールに戻されます。パブリック IPv4 アドレスを再利用することはできま せん。詳細については、「パブリック IPv4 アドレスと外部 DNS ホスト名 (p. 673)」を参照して ください。 • リソースから Elastic IP アドレスの関連付けを解除し、別のリソースと関連付けることができま す。 • 関連付けが解除された Elastic IP アドレスは、明示的に解放するまでアカウントに割り当てられた ままです。 • Elastic IP アドレスを効率的に使用するため、Elastic IP アドレスが実行中のインスタンスに関連付 けられていない場合や、停止しているインスタンスやアタッチされていないネットワークインター フェイスに関連付けられている場合は、時間毎に小額の料金が請求されます。インスタンスを実行 しているときは、インスタンスに関連付けられた 1 つの Elastic IP アドレスに対して料金は発生し ませんが、インスタンスに関連付けられた追加の Elastic IP アドレスがある場合、その追加分に対 しては料金が発生します。詳細については、Amazon EC2 料金表を参照してください。 • Elastic IP アドレスはリージョン別に専用になっています。 • パブリック IPv4 アドレスが前回割り当てられたインスタンスに Elastic IP アドレスを関連付ける と、インスタンスのパブリック DNS ホスト名は、Elastic IP アドレスに一致するように変更されま す。 • パブリック DNS ホスト名を解決すると、インスタンスのパブリック IPv4 アドレスまたは Elastic IP アドレス (インスタンスのネットワークの外部の場合)、およびインスタンスのプライベート IPv4 アドレス (インスタンスのネットワーク内からの場合) となります。 アカウントで EC2-Classic がサポートされている場合、Elastic IP アドレスの使用方法と動作は EC2Classic と EC2-VPC で異なる可能性があります。詳細については、「EC2-Classic と EC2-VPC の Elastic IP アドレスの相違点 (p. 690)」を参照してください。 EC2-Classic と EC2-VPC の Elastic IP アドレスの 相違点 アカウントで EC2-Classic がサポートされている場合、EC2-Classic プラットフォームで使用する Elastic IP アドレスのプールと、EC2-VPC プラットフォームで使用する別のプールがあります。VPC で使用するために割り当てた Elastic IP アドレスを EC2-Classic のインスタンスに関連付けること や、その逆を行うことはできません。ただし、EC2-Classic プラットフォームで使用するために割り 当てた Elastic IP アドレスを EC2-VPC プラットフォームに移行することはできます。Elastic IP アド レスを別のリージョンに移行することはできません。EC2-Classic と EC2-VPC の詳細については、 「サポートされているプラットフォーム (p. 649)」を参照してください。 690 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド EC2-Classic と EC2-VPC の Elastic IP アドレスの相違点 Elastic IP アドレスを &EC2Classic; のインスタンス、デフォルトの VPC、または起動時にパブリッ ク IPv4 を eth0 ネットワークインターフェイスに割り当てたデフォルト以外の VPC のインスタンス に関連付けた場合、インスタンスの現在のパブリック IPv4 アドレスはパブリック IP アドレスプール に戻されます。インスタンスから Elastic IP アドレスの関連付けを解除すると、数分内に自動的に新 しいパブリック IPv4 アドレスがインスタンスに割り当てられます。ただし、2 つ目のネットワークイ ンターフェイスを VPC のインスタンスに関連付けた場合、そのインスタンスには自動的に新しいパ ブリック IPv4 アドレスは割り当てられません。パブリック IPv4 アドレスの詳細については、「パブ リック IPv4 アドレスと外部 DNS ホスト名 (p. 673)」を参照してください。 Elastic IP アドレスと VPC のインスタンスの使用に関する詳細は、Amazon VPC ユーザーガイド の 「Elastic IP アドレス」を参照してください。 次の表は、EC2-Classic の Elastic IP アドレスと EC2-VPC の Elastic IP アドレスの違いをまとめたも のです。プライベート IP アドレスとパブリック IP アドレスの違いの詳細については、「EC2-Classic と EC2-VPC の IP アドレスの違い (p. 675)」を参照してください。 特徴 EC2-Classic EC2-VPC Elastic IP アドレ スの割り当て Elastic IP アドレスを割り当てた 場合は EC2-Classic で使用します が、Elastic IP アドレスを EC2-VPC プラットフォームに移行することも できます。詳細については、「EC2Classic から EC2-VPC への Elastic IP アドレスの移行 (p. 692)」を参照し てください。 関連付けた Elastic IP アドレス は、VPC 内でのみ使用できます。 Elastic IP アドレ スを関連付ける Elastic IP アドレスはインスタンスに 関連付けます。 Elastic IP アドレスはネットワークイ ンターフェイスのプロパティの 1 つ です。Elastic IP アドレス をインスタ ンスに割り当てるには、そのインスタ ンスにアタッチされているネットワー クインターフェイスを更新します。 詳細については、「Elastic Network Interface (p. 697)」を参照してくだ さい。 Elastic IP アドレ スの関連付けを解 除する 既に別のインスタンスに関連付けられ ている Elastic IP アドレスを関連付け ようとすると、アドレスは自動的に 新しいインスタンスに関連付けられま す。 アカウントで EC2-VPC のみをサポー トしている場合、既に別のインスタン スに関連付けられている Elastic IP ア ドレスを関連付けようとすると、ア ドレスは自動的に新しいインスタン スに関連付けられます。EC2-Classic で VPC を使用している場合、既に別 のインスタンスに関連付けられている Elastic IP アドレスを関連付けようと すると、再関連付けを許可している場 合にのみ成功します。 インスタンスの停 止 インスタンスを停止した場合、Elastic IP アドレスの関連付けが解除され ます。インスタンスを再開する際に Elastic IP アドレスを再関連付けする 必要があります。 インスタンスを停止した場合、Elastic IP アドレスのマッピングは維持されま す。 複数の IP アドレ スを割り当てる インスタンスは単一のプライベート IPv4 アドレスと対応する Elastic IP ア ドレスのみをサポートします。 インスタンスは複数の IPv4 アドレス をサポートし、それぞれの IPv4 アド レスに対応する Elastic IP アドレスを 設定できます。詳細については、「複 691 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Elastic IP アドレスの操作 特徴 EC2-Classic EC2-VPC 数の IP アドレス (p. 681)」を参照し てください。 EC2-Classic から EC2-VPC への Elastic IP アドレスの移行 アカウントで EC2-Classic がサポートされている場合、EC2-Classic プラットフォームで使用する ために割り当てた Elastic IP アドレスを、同じリージョン内の EC2-VPC プラットフォームに移行す ることができます。これは、リソースを EC2-Classic から VPC に移行するのに役立ちます。たとえ ば、VPC で新しいウェブサーバーを起動した後、EC2-Classic でウェブサーバーに使用していたのと 同じ Elastic IP アドレスを新しい VPC ウェブサーバーに使用できます。 Elastic IP アドレスを EC2-VPC に移行した後、EC2-Classic プラットフォームで使用することはで きません。ただし、必要に応じて、EC2-Classic に復元することができます。Elastic IP アドレスを EC2-Classic に復元した後は、再度移行するまで EC2-VPC で使用することはできません。Elastic IP アドレスは EC2-Classic から EC2-VPC にのみ移行できます。もともと EC2-VPC で使用するために 割り当てられていた Elastic IP アドレスを EC2-Classic に移行することはできません。 Elastic IP アドレスを移行する場合、インスタンスに関連付けないでください。インスタンスからの Elastic IP アドレスの関連付け解除の詳細については、「Elastic IP アドレスの関連付け解除と別のイ ンスタンスへの再関連付け (p. 694)」を参照してください。 アカウントに設定できる数であれば、EC2-Classic Elastic IP アドレスはいくつでも移行できます。た だし、Elastic IP アドレスを EC2-VPC に移行すると、EC2-VPC の Elastic IP アドレス制限にカウント されます。制限を超過した場合、Elastic IP アドレスを移行することはできません。同様に、Elastic IP アドレスを EC2-Classic に復元すると、EC2-Classic の Elastic IP アドレス制限にカウントされます。 詳細については、「Elastic IP アドレスの制限 (p. 696)」を参照してください。 24 時間以内にアカウントに割り当てられた Elastic IP アドレスを移行することはできません。 詳細については、「Elastic IP アドレスの移動 (p. 694)」を参照してください。 Elastic IP アドレスの操作 以下のセクションでは、Elastic IP アドレスの使用方法について説明します。 トピック • Elastic IP アドレスの割り当て (p. 692) • Elastic IP アドレスの説明 (p. 693) • Elastic IP アドレスを実行中のインスタンスに関連付ける (p. 693) • Elastic IP アドレスの関連付け解除と別のインスタンスへの再関連付け (p. 694) • Elastic IP アドレスの移動 (p. 694) • Elastic IP アドレスを解放する (p. 696) Elastic IP アドレスの割り当て Elastic IP アドレスは、Amazon EC2 コンソールまたはコマンドラインを使用して割り当てることがで きます。アカウントが EC2-Classic をサポートしている場合、EC2-Classic または EC2-VPC で使用 するためのアドレスを割り当てることができます。 コンソールを使用して、EC2-VPC で使用する elastic IP アドレス (EIP) を割り当てるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. ナビゲーションペインで [Elastic IPs] を選択します。 692 Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド Elastic IP アドレスの操作 3. [Allocate new address] を選択します。 4. 5. (EC2-Classic アカウント) [VPC] を選択し、次に [Allocate] を選択します。確認画面を閉じます。 (VPC のみのアカウント) [Allocate] を選択し、確認画面を閉じます。 コンソールを使用して、EC2-Classic で使用する Elastic IP アドレスを割り当てるには 1. 2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 ナビゲーションペインで [Elastic IPs] を選択します。 3. 4. [Allocate new address] を選択します。 [Classic] を選択し、次に [Allocate] を選択します。確認画面を閉じます。 コマンドラインを使用して Elastic IP アドレスを割り当てるには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • allocate-address (AWS CLI) • New-EC2Address (AWS Tools for Windows PowerShell) Elastic IP アドレスの説明 Elastic IP アドレスは、Amazon EC2 またはコマンドラインを使用して記述することができます。 コンソールを使用して Elastic IP アドレスを記述するには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. ナビゲーションペインで [Elastic IPs] を選択します。 リソース属性リストからフィルタを選択して検索を開始します。単一の検索に複数のフィルタを 使用できます。 コマンドラインを使用して Elastic IP アドレスを記述するには 次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細について は、Amazon EC2 へのアクセス (p. 3) を参照してください。 • describe-addresses (AWS CLI) • Get-EC2Address (AWS Tools for Windows PowerShell) Elastic IP アドレスを実行中のインスタンスに関連付ける Elastic IP アドレスは、Amazon EC2 コンソールまたはコマンドラインを使用してインスタンスに関連 付けることができます。 (VPC のみ) Elastic IP アドレスをインスタンスに関連付けてインターネットとの通信を有効にする場 合、インスタンスがパブリックサブネットに属していることも確認する必要があります。詳細につい ては、Amazon VPC ユーザーガイド のインターネットゲートウェイを参照してください。 コンソールを使用して Elastic IP アドレスをインスタンスに関連付けるには 1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。 2. 3. 4. ナビゲーションペインで [Elastic IPs] を選択します。 Elastic IP アドレスを選択し、[Actions]、[Associate address] の順に選択します。 [Instance] からインスタンスを選択し、次に [A
© Copyright 2025 Paperzz