Amazon Elastic Compute Cloud - Linux インスタンス用

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