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

Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon Elastic Compute Cloud: Linux インスタンス用ユーザーガイド
Copyright © 2016 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
関連サービス ........................................................................................................................ 3
Amazon EC2 へのアクセス ..................................................................................................... 3
Amazon EC2 の料金表 ........................................................................................................... 4
PCI DSS への準拠 ................................................................................................................. 5
インスタンスと AMI .............................................................................................................. 5
インスタンス ................................................................................................................ 5
AMI ............................................................................................................................. 7
リージョンとアベイラビリティーゾーン ................................................................................... 8
リージョンとアベイラビリティーゾーンに関する概念 ........................................................ 8
利用できるリージョン ................................................................................................... 9
リージョンとエンドポイント ......................................................................................... 10
リージョンとアベイラビリティーゾーンの記述 ................................................................ 10
リソースのリージョンの指定 ......................................................................................... 13
アベイラビリティーゾーンでのインスタンスの起動 .......................................................... 14
別のアベイラビリティゾーンへのインスタンスの移行 ....................................................... 15
ルートデバイスボリューム .................................................................................................... 16
ルートデバイスストレージの概念 .................................................................................. 16
ルートデバイスタイプによる AMI の選択 ........................................................................ 18
インスタンスのルートデバイスタイプの判別 ................................................................... 18
永続的ルートデバイスボリュームへの変更 ...................................................................... 19
セットアップ .............................................................................................................................. 22
AWS にサインアップする ..................................................................................................... 22
IAM ユーザーを作成する ...................................................................................................... 23
キーペアを作成する ............................................................................................................. 24
Virtual Private Cloud(VPC)の作成 ....................................................................................... 26
セキュリティグループの作成 ................................................................................................. 27
はじめに .................................................................................................................................... 30
概要 .................................................................................................................................. 30
前提条件 ............................................................................................................................ 31
ステップ 1: インスタンスを起動する ...................................................................................... 31
ステップ 2: インスタンスに接続 ............................................................................................ 33
ステップ 3: インスタンスをクリーンアップする ....................................................................... 34
次のステップ ...................................................................................................................... 34
ベストプラクティス ..................................................................................................................... 35
チュートリアル ........................................................................................................................... 37
チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール .................................. 37
チュートリアル: WordPress ブログのホスティング ................................................................... 46
前提条件 .................................................................................................................... 47
WordPress のインストール ........................................................................................... 47
次のステップ .............................................................................................................. 54
ヘルプ! パブリック DNS 名が変更されたため、ブログが壊れました .................................... 55
チュートリアル: Amazon Linux で SSL/TLS を使用できるように Apache ウェブサーバーを設定す
る ..................................................................................................................................... 56
前提条件 .................................................................................................................... 57
ステップ 1: サーバーでの SSL/TLS の有効化 ................................................................... 57
ステップ 2: CA 署名証明書の取得 .................................................................................. 59
ステップ 3: セキュリティ設定のテストと強化 .................................................................. 62
チュートリアル: アプリケーションの可用性の向上 ................................................................... 64
前提条件 .................................................................................................................... 65
アプリケーションのスケーリングと負荷分散 ................................................................... 66
ロードバランサーをテストする ..................................................................................... 67
Amazon マシンイメージ ............................................................................................................... 69
iii
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI の使用 ......................................................................................................................... 69
独自の AMI の作成 ............................................................................................................... 70
AMI の購入、共有、販売 ...................................................................................................... 70
AMI の登録解除 ................................................................................................................... 70
Amazon Linux ..................................................................................................................... 70
AMI タイプ ......................................................................................................................... 71
起動許可 .................................................................................................................... 71
ルートデバイスのストレージ ......................................................................................... 71
仮想化タイプ ...................................................................................................................... 74
Linux AMI の検索 ................................................................................................................. 75
Amazon EC2 コンソールを使用した Linux AMI の検索 ...................................................... 76
AWS CLI を使用した AMI の検索 ................................................................................... 76
Amazon EC2 CLI を使用して AMI を見つける .................................................................. 77
共有 AMI ............................................................................................................................ 77
共有 AMI を見つける .................................................................................................... 77
AMI を一般公開する ..................................................................................................... 80
特定の AWS アカウントと AMI を共有する ...................................................................... 82
ブックマークの使用 ..................................................................................................... 83
共有 Linux AMI のガイドライン ..................................................................................... 84
有料 AMI ............................................................................................................................ 89
ご自分の AMI を販売する .............................................................................................. 89
有料 AMI を見つける .................................................................................................... 89
有料 AMI の購入 .......................................................................................................... 91
インスタンスの製品コードを取得する ............................................................................ 91
有料サポートの利用 ..................................................................................................... 91
有料およびサポート対象の AMI の請求書 ........................................................................ 92
AWS Marketplace サブスクリプションの管理 .................................................................. 92
Amazon EBS-Backed Linux AMI の作成 .................................................................................. 93
Amazon EBS-backed AMI の作成の概要 .......................................................................... 93
インスタンスからの Linux AMI の作成 ............................................................................ 94
スナップショットからの Linux AMI の作成 ...................................................................... 96
Instance Store-Backed Linux AMI の作成 ................................................................................. 97
Instance Store-Backed AMI の作成プロセスの概要 ............................................................ 97
前提条件 .................................................................................................................... 98
インスタンスから AMI を作成するStore-Backed Linux インスタンス ................................... 99
Instance Store-Backed AMI を Amazon EBS-Backed AMI に変換する ................................. 104
暗号化されたスナップショットを持つ AMI ............................................................................ 108
暗号化された EBS スナップショットを含める AMI シナリオ ............................................ 108
AMI のコピー .................................................................................................................... 111
所有している AMI のコピー ......................................................................................... 112
別の AWS アカウントからの AMI のコピー .................................................................... 112
リージョンをまたがるコピー ....................................................................................... 112
暗号化してコピー ...................................................................................................... 113
AMI コピーのシナリオ ................................................................................................ 114
コンソールまたはコマンドラインを使用した AMI のコピー .............................................. 115
保留中の AMI コピー操作を中止する ............................................................................. 116
AMI の登録解除 ................................................................................................................. 117
Amazon EBS-Backed AMI をクリーンアップする ........................................................... 117
Instance Store-Backed AMI をクリーンアップする .......................................................... 118
Amazon Linux ................................................................................................................... 119
Amazon Linux AMI の検索 ........................................................................................... 119
Amazon Linux インスタンスを起動し、それに接続する ................................................... 120
Amazon Linux AMI イメージの特定 ............................................................................... 120
組み込まれている AWS コマンドラインツール ............................................................... 121
cloud-init ............................................................................................................. 121
リポジトリの設定 ...................................................................................................... 123
パッケージの追加 ...................................................................................................... 123
参照のためのソースパッケージへのアクセス ................................................................. 124
iv
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
アプリケーションの開発 .............................................................................................
インスタンスストアアクセス .......................................................................................
製品ライフサイクル ...................................................................................................
セキュリティの更新 ...................................................................................................
サポート ..................................................................................................................
PV-GRUB .........................................................................................................................
PV-GRUB の制約事項 .................................................................................................
GRUB の設定 ............................................................................................................
Amazon PV-GRUB カーネルイメージ ID .......................................................................
PV-GRUB の更新 .......................................................................................................
インスタンス ............................................................................................................................
インスタンスタイプ ...........................................................................................................
利用可能なインスタンスタイプ ....................................................................................
ハードウェア仕様 ......................................................................................................
仮想化タイプ ............................................................................................................
ネットワーキング機能とストレージ機能 .......................................................................
インスタンスの制限 ...................................................................................................
T2 インスタンス ........................................................................................................
C4 インスタンス ........................................................................................................
GPU インスタンス .....................................................................................................
I2 インスタンス .........................................................................................................
D2 インスタンス ........................................................................................................
HI1 インスタンス .......................................................................................................
HS1 インスタンス .....................................................................................................
T1 マイクロインスタンス ............................................................................................
インスタンスのサイズ変更 ..........................................................................................
インスタンス購入オプション ...............................................................................................
インスタンスのライフサイクルの決定 ...........................................................................
リザーブドインスタンス .............................................................................................
スケジュールされたインスタンス .................................................................................
スポットインスタンス ................................................................................................
Dedicated Hosts ........................................................................................................
インスタンスのライフサイクル ............................................................................................
インスタンスの作成 ...................................................................................................
インスタンスの停止と起動(Amazon EBS-Backed インスタンスのみ) .............................
インスタンスの再起動 ................................................................................................
インスタンスのリタイア .............................................................................................
インスタンスの終了 ...................................................................................................
再起動、停止、終了の違い ..........................................................................................
作成する ..................................................................................................................
接続 .........................................................................................................................
停止と起動 ...............................................................................................................
再起動 .....................................................................................................................
リタイア ..................................................................................................................
削除 .........................................................................................................................
復旧 .........................................................................................................................
インスタンスの設定 ...........................................................................................................
一般的な設定シナリオ ................................................................................................
ソフトウェアの管理 ...................................................................................................
ユーザーの管理 .........................................................................................................
プロセッサのステート制御 ..........................................................................................
時刻の設定 ...............................................................................................................
ホスト名の変更 .........................................................................................................
動的な DNS のセットアップ ........................................................................................
起動時のコマンドの実行 .............................................................................................
インスタンスメタデータとユーザーデータ ....................................................................
インスタンスのリモート管理 ...............................................................................................
前提条件 ..................................................................................................................
v
125
125
125
125
126
126
127
127
128
130
132
133
133
134
134
135
136
136
140
143
146
148
151
153
154
161
165
166
167
190
193
239
251
252
252
252
253
253
253
254
266
278
282
282
285
290
292
292
293
302
304
309
313
315
317
321
337
338
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command 用の IAM ロールとユーザーの設定 ...................................................
SSM エージェントの設定 ............................................................................................
SSM Run Command へのアクセスの委任 ......................................................................
SSM Run Command を使用したコマンドの実行 .............................................................
Amazon EC2 コンソールでのコマンド出力の確認 ...........................................................
独自のコマンドを作成する ..........................................................................................
SSM Run Command のウォークスルー .........................................................................
コマンドをキャンセルする ..........................................................................................
コマンドを監視する ...................................................................................................
SSM Run Command のトラブルシューティング .............................................................
インスタンスのインポートとエクスポート ............................................................................
前提条件 ..................................................................................................................
VM をイメージとして Amazon EC2 にインポートする ....................................................
VM をインスタンスとして Amazon EC2 にインポートする ..............................................
Amazon EC2 インスタンスをエクスポートする ..............................................................
トラブルシューティング .............................................................................................
モニタリング ............................................................................................................................
自動モニタリングと手動モニタリング ...................................................................................
自動モニタリングツール .............................................................................................
手動モニタリングツール .............................................................................................
モニタリングのベストプラクティス ......................................................................................
インスタンスのステータスのモニタリング ............................................................................
インスタンスの状態チェック .......................................................................................
予定されているイベント .............................................................................................
CloudWatch によるインスタンスのモニタリング ....................................................................
Amazon EC2 インスタンスの詳細モニタリングの有効化または無効化 ...............................
Amazon EC2 メトリックスを表示する ..........................................................................
メトリックスの統計情報を取得する ..............................................................................
メトリックスのグラフ化 .............................................................................................
CloudWatch アラームを作成する ..................................................................................
インスタンスを停止、終了、再起動、または復旧するアラームを作成する .........................
メモリとディスクのメトリックスのモニタリング ...................................................................
前提条件 ..................................................................................................................
ご利用開始にあたって ................................................................................................
mon-put-instance-data.pl .............................................................................................
mon-get-instance-stats.pl ...........................................................................................
コンソールでのカスタムメトリックスの表示 .................................................................
ネットワークとセキュリティ .......................................................................................................
キーペア ..........................................................................................................................
Amazon EC2 を使用してキーペアを作成する .................................................................
独自のキーペアを Amazon EC2 にインポートする ..........................................................
キーペアのパブリックキーを取得する(Linux) .............................................................
キーペアのパブリックキーを取得する(Windows) ........................................................
キーペアのフィンガープリントの確認 ...........................................................................
キーペアの削除 .........................................................................................................
プライベートキーを紛失した場合の Linux インスタンスへの接続 ......................................
セキュリティグループ ........................................................................................................
EC2-Classic 用セキュリティグループ ...........................................................................
EC2-VPC 用セキュリティグループ ...............................................................................
セキュリティグループのルール ....................................................................................
デフォルトのセキュリティグループ ..............................................................................
カスタムのセキュリティグループ .................................................................................
セキュリティグループを作成する .................................................................................
セキュリティグループについて説明する .......................................................................
セキュリティグループへのルールの追加 .......................................................................
ルールの削除(セキュリティグループから) .................................................................
セキュリティグループの削除 .......................................................................................
API とコマンドの概要 ................................................................................................
vi
340
345
354
356
359
360
360
368
368
370
371
372
381
391
402
404
412
414
414
415
416
416
416
421
425
426
429
437
454
458
466
494
495
496
497
501
502
503
504
505
506
508
509
509
510
511
514
515
515
516
518
518
519
520
520
522
522
522
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
アクセスの制御 .................................................................................................................
インスタンスへのネットワークアクセス .......................................................................
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 アドレッシング .......................................................................................
プライベート IP アドレスと内部 DNS ホスト名 ..............................................................
パブリック IP アドレスと外部 DNS ホスト名 .................................................................
Elastic IP アドレス .....................................................................................................
Amazon DNS サーバー ...............................................................................................
EC2-Classic と EC2-VPC の IP アドレスの違い ..............................................................
パブリック IP アドレス、プライベート IP アドレス、Elastic IP アドレスの決定 ..................
パブリック IP アドレスの割り当て ...............................................................................
複数のプライベート IP アドレス ..................................................................................
Elastic IP アドレス .............................................................................................................
EC2-Classic の Elastic IP アドレス ...............................................................................
VPC の Elastic IP アドレス ..........................................................................................
EC2-Classic と EC2-VPC における Elastic IP アドレスの相違点 ........................................
EC2-Classic から EC2-VPC への Elastic IP アドレスの移行 ..............................................
Elastic IP アドレスの操作 ............................................................................................
電子メールアプリケーションでの逆引き DNS の使用 ......................................................
Elastic IP アドレスの制限 ............................................................................................
Elastic Network Interface .....................................................................................................
インスタンスタイプあたりの ENI ごとのプライベート IP アドレス ....................................
管理用ネットワークの作成 ..........................................................................................
VPC 内でネットワークアプライアンスとセキュリティアプライアンスを使用する ...............
別個のサブネット上のワークロード/ロールを使用するデュアルホーム接続インスタンスを作
成する .....................................................................................................................
低予算で可用性の高いソリューションを構築する ...........................................................
ネットワークインターフェイスの IP トラフィックのモニタリング ....................................
Elastic Network Interface の設定に関するベストプラクティス ...........................................
ec2-net-utils を使用したネットワークインターフェイスの設定 ..........................................
Elastic Network Interface の作成 ...................................................................................
Elastic Network Interface の削除 ...................................................................................
Elastic Network Interface に関する詳細情報の表示 ..........................................................
インスタンスの起動時に Elastic Network Interface をアタッチする ....................................
停止したインスタンスまたは実行中のインスタンスに Elastic Network Interface をアタッチ
する .........................................................................................................................
Elastic Network Interface をインスタンスからデタッチする ..............................................
Elastic Network Interface のセキュリティグループを変更する ...........................................
Elastic Network Interface の送信元/送信先チェックを変更する ..........................................
Elastic IP アドレスと Elastic Network Interface を関連付ける ............................................
Elastic IP アドレスと Elastic Network Interface の関連付けを解除する ...............................
Elastic Network Interface の終了動作を変更する .............................................................
Elastic Network Interface の説明を追加または編集する ....................................................
Elastic Network Interface のタグを追加または編集する ....................................................
プレイスメントグループ .....................................................................................................
vii
524
524
524
524
526
570
576
578
578
579
582
583
584
584
585
596
607
607
608
609
609
609
610
612
613
619
619
620
620
621
622
626
626
626
628
630
630
631
631
631
631
632
633
633
634
635
636
636
637
638
638
639
639
640
641
641
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プレイスメントグループの制限 ....................................................................................
プレイスメントグループへのインスタンスの起動 ...........................................................
プレイスメントグループを削除する ..............................................................................
ネットワーク MTU .............................................................................................................
ジャンボフレーム(9001 MTU) ..................................................................................
パス MTU 検出 ..........................................................................................................
2 つホスト間のパス MTU の確認 ..................................................................................
Amazon EC2 インスタンス上の MTU の確認および設定 ..................................................
トラブルシューティング .............................................................................................
拡張ネットワーキングの有効化 ............................................................................................
拡張ネットワーキングをサポートするインスタンス ........................................................
要件 .........................................................................................................................
拡張ネットワーキングが有効化されているかどうかのテスト ............................................
Amazon Linux での拡張ネットワーキングの有効化 .........................................................
Ubuntu での拡張ネットワーキングの有効化 ...................................................................
他の Linux ディストリビューションでの拡張ネットワーキングの有効化 .............................
接続性の問題のトラブルシューティング .......................................................................
ストレージ ...............................................................................................................................
Amazon EBS ....................................................................................................................
Amazon EBS の機能 ..................................................................................................
EBS ボリューム ........................................................................................................
EBS スナップショット ...............................................................................................
EBS 最適化 ...............................................................................................................
EBS 暗号化 ...............................................................................................................
EBS パフォーマンス ..................................................................................................
インスタンスストア ...........................................................................................................
インスタンスストアの存続期間 ....................................................................................
インスタンスストアボリューム ....................................................................................
インスタンスストアボリュームを追加する ....................................................................
SSD インスタンスストアボリューム .............................................................................
インスタンスストアスワップボリューム .......................................................................
ディスクパフォーマンスの最適化 .................................................................................
Amazon S3 .......................................................................................................................
Amazon S3 と Amazon EC2 ........................................................................................
インスタンスボリューム数の制限 .........................................................................................
Linux 固有のボリュームの制限 .....................................................................................
Windows 固有のボリュームの制限 ................................................................................
帯域幅と容量 ............................................................................................................
デバイスの名前付け ...........................................................................................................
使用できるデバイス名 ................................................................................................
デバイス名に関する考慮事項 .......................................................................................
ブロックデバイスマッピング ...............................................................................................
ブロックデバイスマッピングの概念 ..............................................................................
AMI ブロックデバイスマッピング .................................................................................
インスタンスブロックデバイスマッピング ....................................................................
パブリックデータセットの使用 ............................................................................................
パブリックデータセットの概念 ....................................................................................
パブリックデータセットの検索 ....................................................................................
スナップショットからパブリックデータセットボリュームを作成する ................................
パブリックデータセットボリュームをアタッチしてマウントする ......................................
リソースとタグ .........................................................................................................................
リソースの場所 .................................................................................................................
リソース ID .......................................................................................................................
長い ID の使用 ...........................................................................................................
長い ID 設定に対するアクセスの制御 ............................................................................
リソースのリスト表示とフィルタリング ...............................................................................
高度な検索 ...............................................................................................................
コンソールを使用してリソースをリスト表示する ...........................................................
viii
642
642
644
644
645
645
646
647
648
648
648
649
649
652
654
657
660
661
663
664
665
709
716
719
722
735
735
736
738
741
743
745
746
747
749
749
749
750
750
750
751
752
752
755
758
763
763
763
764
765
766
766
767
768
770
770
771
772
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
コンソールを使用してリソースをフィルタリングする .....................................................
CLI および API を使用した一覧表示とフィルタリング .....................................................
リソースにタグを付ける .....................................................................................................
タグの基本 ...............................................................................................................
タグの制限 ...............................................................................................................
請求用のリソースにタグを付ける .................................................................................
コンソールでのタグの処理 ..........................................................................................
CLI または API でのタグの操作 ....................................................................................
サービス制限 ....................................................................................................................
現在の制限との表示 ...................................................................................................
制限の引き上げのリクエスト .......................................................................................
使用状況レポート ..............................................................................................................
使用可能なレポート ...................................................................................................
使用状況レポートをセットアップする ...........................................................................
IAM ユーザーに Amazon EC2 使用状況レポートへのアクセス権を付与する ........................
インスタンスの使用 ...................................................................................................
リザーブドインスタンスの使用率 .................................................................................
トラブルシューティング .............................................................................................................
インスタンスの起動 ...........................................................................................................
インスタンスの終了理由の取得 ....................................................................................
インスタンスへの接続 ........................................................................................................
インスタンスへの接続エラー: 接続タイムアウト .............................................................
エラー: ユーザーキーがサーバーによって認識されない ...................................................
エラー: Host key not found、Permission denied (publickey)、または Authentication failed,
permission denied(ホストキーが見つかりません、権限の拒否(publickey)、または認証失
敗、権限の拒否) ......................................................................................................
エラー: Unprotected Private Key File(保護されていないプライベートキーファイル) .........
エラー: Server refused our key または No supported authentication methods available(サー
バーはキーを拒否しましたまたは利用可能なサポートされる認証方法はありません) ..........
Safari ブラウザでの MindTerm 使用のエラー ..................................................................
Mac OS X RDP クライアント使用時のエラー .................................................................
インスタンスに対して Ping を実行できない ...................................................................
インスタンスの停止 ...........................................................................................................
インスタンスの終了 ...........................................................................................................
インスタンスの終了の遅延 ..........................................................................................
表示されているインスタンスを終了する .......................................................................
インスタンスを自動的に起動または終了する .................................................................
インスタンスの復旧の失敗 ..................................................................................................
失敗したステータスチェック ...............................................................................................
最初の手順 ...............................................................................................................
システムログの取得 ...................................................................................................
Linux ベースのインスタンスに関するシステムログエラーのトラブルシューティング ...........
メモリ不足: プロセスの終了 ........................................................................................
エラー: mmu_update failed(メモリ管理の更新に失敗しました) ......................................
I/O エラー(ブロックデバイス障害) ............................................................................
I/O エラー: ローカルでもリモートディスクでもありません(破損した分散ブロックデバイ
ス) .........................................................................................................................
request_module: runaway loop modprobe(古い Linux バージョンでレガシーカーネル modprobe
がループしている) ...................................................................................................
「FATAL: kernel too old」および「fsck: No such file or directory while trying to open /dev」
(カーネルと AMI の不一致) .....................................................................................
「FATAL: Could not load /lib/modules」または「BusyBox」(カーネルモジュールの欠
如) .........................................................................................................................
エラー: 無効のカーネル(EC2 と互換性のないカーネル) ................................................
request_module: runaway loop modprobe(古い Linux バージョンでレガシーカーネル modprobe
がループしている) ...................................................................................................
fsck: No such file or directory while trying to open...(ファイルシステムが見つからない) .....
General error mounting filesystems(マウント失敗) ......................................................
ix
773
773
774
775
775
777
778
783
784
784
785
785
785
786
787
788
791
797
797
798
798
799
801
802
803
803
804
804
804
805
806
806
806
806
807
807
808
808
809
810
811
811
813
813
814
815
817
818
819
821
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VFS: Unable to mount root fs on unknown-block(ルートファイルシステム不一致) .............
エラー: Unable to determine major/minor number of root device...(ルートファイルシステム/
デバイス不一致) .....................................................................................................
XENBUS: Device with no driver... .................................................................................
... days without being checked, check forced(ファイルシステムのチェックが必要です) .....
fsck died with exit status...(デバイスが見つかりません) ................................................
GRUB プロンプト(grubdom>) ..................................................................................
Bringing up interface eth0: Device eth0 has different MAC address than expected, ignoring.
(ハードコードされた MAC アドレス) .......................................................................
SELinux ポリシーを読み込めません。Machine is in enforcing mode. Halting now. (SELinux
の誤設定) ...............................................................................................................
XENBUS: Timeout connecting to devices(Xenbus タイムアウト) ...................................
インスタンスの容量 ...........................................................................................................
エラー: InsufficientInstanceCapacity ..............................................................................
エラー: InstanceLimitExceeded ....................................................................................
全般 .................................................................................................................................
インスタンスの再起動 ................................................................................................
インスタンスコンソール出力 .......................................................................................
ホストコンピュータに障害が発生した場合のインスタンスの復旧 ......................................
インスタンスが間違ったボリュームで起動する ......................................................................
API リクエストを行う ................................................................................................................
ドキュメント履歴 ......................................................................................................................
AWS の用語集 ...........................................................................................................................
x
823
824
825
826
826
827
830
831
832
833
833
834
834
834
834
835
836
838
839
854
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 の機能
Amazon EC2 とは
Abstract
ハードウェアの制約を受けずにアプリケーションを開発およびデプロイできるように、Amazon EC2 を使用して、
AWS クラウドでサイズ変更可能なコンピューティングキャパシティを実現します。
Amazon Elastic Compute Cloud(Amazon EC2)は、アマゾン ウェブ サービス(AWS)クラウドでサ
イズが変更できるコンピューティングキャパシティを提供します。Amazon EC2 の使用により、ハー
ドウェアに事前投資する必要がなくなり、アプリケーションをより速く開発およびデプロイできます。
Amazon EC2 を使用すると、必要な数(またはそれ以下)の仮想サーバーを起動でき、セキュリティ
およびネットワーキングを構成でき、ストレージを管理できます。Amazon EC2 により、要件変更や
需要増に対応して拡張または縮小できるため、トラフィック予測が不要になります。
クラウドコンピューティングの詳細については、「クラウドコンピューティングとは」を参照してくだ
さい。
Amazon EC2 の機能
Amazon EC2 には次の機能があります。
• インスタンスと呼ばれる仮想コンピューティング環境
• サーバーに必要なビットをパッケージ化した(オペレーティングシステムおよび追加のソフトウェア
を含む)、Amazon マシンイメージ(AMI)と呼ばれる、インスタンス用に事前に設定されたテンプ
レート。
• インスタンスタイプと呼ばれる、インスタンス用の CPU、メモリ、ストレージ、ネットワーキング
キャパシティのさまざまな構成
• キーペアを使用したインスタンス用の安全なログイン情報(AWS はパブリックキーを保存し、ユー
ザーはプライベートキーを安全な場所に保存します)。
• インスタンスストアボリュームと呼ばれる、インスタンスを停止または終了するときに削除される一
時データ用のストレージボリューム
• Amazon EBS ボリュームと呼ばれる、Amazon Elastic Block Store(Amazon EBS)を使用したデー
タ用の永続的ストレージボリューム
• リージョンおよびアベイラビリティゾーンと呼ばれる、インスタンスや Amazon EBS ボリュームな
どのリソース用の複数の物理的な場所
• セキュリティグループを使用してインスタンスに到達可能で、プロトコル、ポート、ソース IP 範囲
を指定できるファイアウォール
1
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 の使用を開始する方法
• Elastic IP アドレスと呼ばれる、動的クラウドコンピューティング用の静的な IP アドレス
• タグと呼ばれ、作成して Amazon EC2 リソースに割り当てることができるメタデータ
• 残りの AWS クラウドから論理的に分離され、ユーザー独自のネットワークにオプションで接続でき
る、仮想プライベートクラウド(VPC)と呼ばれる仮想ネットワーク
Amazon EC2 の機能詳細については、Amazon EC2 製品ページを参照してください。
AWS でのウェブサイトの実行の詳細については、「ウェブサイトとウェブサイトホスティング」を参
照してください。
Amazon EC2 の使用を開始する方法
最初に必要なことは、Amazon EC2 を使用するようにセットアップすることです。セットアップが終
了したら、Amazon EC2 の使用開始チュートリアルを完了する準備が整います。Amazon EC2 の機能
について詳細情報が必要なときは、技術ドキュメントを参照できます。
起動と実行
• Amazon EC2 でのセットアップ (p. 22)
• Amazon EC2 Linux インスタンスの開始方法 (p. 30)
基礎
• インスタンスと AMI (p. 5)
• リージョンとアベイラビリティーゾーン (p. 8)
• インスタンスタイプ (p. 133)
• Tags (p. 774)
ネットワークとセキュリティ
• Amazon EC2 のキーペア (p. 504)
• 個のセキュリティグループ (p. 514)
• Elastic IP アドレス (p. 619)
• Amazon EC2 と Amazon VPC (p. 578)
ストレージ
• Amazon EBS (p. 663)
• インスタンスストア (p. 735)
Linux インスタンスの使用
• チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール (p. 37)
• チュートリアル: Amazon Linux で SSL/TLS を使用できるように Apache ウェブサーバーを設定す
る (p. 56)
• Getting Started with AWS: Hosting a Web App for Linux
2
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
関連サービス
AWS がお客様に最適かどうかご質問がある場合は、AWS セールスまでお問い合わせください。Amazon
EC2 について質問がある場合は、Amazon EC2 forum をご利用ください。
関連サービス
インスタンスやボリュームなど、Amazon EC2 のリソースは Amazon EC2 を使用して直接プロビジョ
ニングできます。また、AWS の他のサービスを使用して 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 開発者ガイド」を参照してください。
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」
を参照してください。
Amazon EC2 コマンドラインインターフェイス(CLI)ツール
Amazon EC2、Amazon EBS、および Amazon VPC 用のコマンドを提供し、Windows、Mac、お
よび Linux でサポートされています。開始するには、『Amazon EC2 コマンドラインリファレン
ス』の「Linux での Amazon EC2 コマンドラインインターフェイスツールのセットアップ」、「」、
および「コマンド(CLI ツール)」を参照してください。
3
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon 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 には、ソフトウェア開発者向けのライブラリ、
サンプルコード、チュートリアル、その他のリソースが用意されています。これらのライブラリには、
リクエストの暗号化署名、リクエストの再試行、エラーレスポンスの処理などのタスクを自動化する基
本機能が用意されているので、開発を簡単に始められます。詳細については、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 を参照してください。
4
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
PCI DSS への準拠
PCI DSS への準拠
Amazon EC2 は、マーチャントまたはサービスプロバイダーによるクレジットカードデータの処理、
ストレージ、および伝送をサポートしており、Payment Card Industry(PCI)Data Security Standard
(DSS)に準拠していることが確認されています。PCI DSS の詳細(AWS PCI Compliance Package
のコピーをリクエストする方法など)については、「PCI DSS レベル 1」を参照してください。
インスタンスと AMI
Abstract
Amazon EC2 の核となる概念であるインスタンスと AMI について学習します。
Amazon マシンイメージ(AMI)は、ソフトウェア構成(オペレーティングシステム、アプリケーショ
ンサーバー、アプリケーションなど)を記録したテンプレートです。AMI から、クラウドで仮想サー
バーとして実行される AMI のコピーであるインスタンスを起動します。以下の図に示すように、1 つ
の AMI の複数のインスタンスを起動することができます。
インスタンスは、停止または終了させるか、エラーが発生するまで実行を続けます。インスタンスがエ
ラーで終了した場合は、元の AMI から新しいインスタンスを起動できます。
インスタンス
1 つの AMI から、複数の異なるタイプのインスタンスを起動することもできます。インスタンスタイ
プとは本質的に、インスタンスに使用されるホストコンピュータのハードウェアを決定するものです。
インスタンスタイプごとに異なる処理内容やメモリの機能が提供されます。インスタンスタイプは、イ
ンスタンス上で実行するアプリケーションやソフトウェアに必要なメモリの量と処理能力に応じて選択
します。各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インス
タンス」を参照してください。
インスタンスの起動後は、通常のホストのように表示され、任意のコンピュータと同じように操作でき
ます。インスタンスは完全に制御でき、sudo を使用して、ルート権限を必要とするコマンドを実行で
きます。
AWS アカウントでは、稼動できるインスタンスの数に制限があります。この制限の詳細、および増加
を要求する方法については、Amazon EC2 の全般的なよくある質問の「 Amazon EC2 ではいくつのイ
ンスタンスを稼動できますか」を参照してください。
5
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンス
実行中インスタンス数が制限され、保有できるインスタンスの合計数も制限されます(実行中、停止済
み、または終了済みを除くその他の状態を含む)。この全体的なインスタンス制限は、実行中インスタ
ンス制限の 2 倍です。
インスタンスのストレージ
インスタンスのルートデバイスには、インスタンスの起動に使用されるイメージが含まれています。詳
細については、「Amazon EC2 ルートデバイスボリューム (p. 16)」を参照してください。
インスタンスには、インスタンスストアボリュームと呼ばれるローカルストレージボリュームを含める
ことができます。これはブロックデバイスマッピングによって起動時に設定できます。詳細について
は、「ブロックデバイスマッピング (p. 752)」を参照してください。これらのボリュームがインスタン
スに追加およびマッピングされたら、マウントして使用することができます。インスタンスが失敗、停
止、または終了した場合、それらのボリュームのデータは失われます。したがって、これらのボリュー
ムは一時データとして使用するのが最適です。重要なデータの場合、データの安全を維持するには、複
数のインスタンスにわたるレプリケーション方法を使用する必要があります。あるいは、永続的なデー
タを Amazon S3 または Amazon EBS ボリュームに格納してください。詳細については、「ストレー
ジ (p. 661)」を参照してください。
セキュリティのベストプラクティス
• AWS Identity and Access Management(IAM)を使用して、ご利用のインスタンスを含め、AWS リ
ソースへのアクセスを制御します。AWS アカウントで IAM ユーザーとグループを作成し、それぞれ
にセキュリティ認証情報を割り当て、それぞれが AWS のリソースとサービスに対して持つアクセス
を制御できます。詳細については、「Amazon EC2 のリソースに対するアクセスの制御 (p. 524)」を
参照してください。
• 信頼されたホストまたはネットワークのみがインスタンスのポートにアクセスできるように制限しま
す。たとえば、ポート 22 の受信トラフィックを制限することで SSH アクセスを制限できます。詳
細については、「Linux インスタンスの Amazon EC2 セキュリティグループ (p. 514)」を参照してく
ださい。
• セキュリティグループのルールを定期的に確認し、最小権限の原則を適用してください。つまり、必
要なアクセス許可のみを開きます。また、さまざまなセキュリティグループを作成して、異なるセ
キュリティ要件を持つ各インスタンスに対応することもできます。外部ログインが許可された基本と
なるセキュリティグループの作成を検討し、外部ログインが許可されていないグループで残りのイン
スタンスを管理してください。
• AMI から起動されるインスタンスについてはパスワードベースのログインを無効にしてください。パ
スワードは検知または解読される恐れがあり、セキュリティ上のリスクです。詳細については、「ルー
トのパスワードベースのリモートログインを無効にする (p. 85)」を参照してください。AMI の安全
な共有の詳細については、「共有 AMI (p. 77)」を参照してください。
インスタンスの停止、開始、および終了
インスタンスの停止
インスタンスが停止されると、インスタンスは通常のシャットダウンを実行してから、stopped 状態
に移行します。そのすべての Amazon EBS ボリュームはアタッチされたままになり、後でインスタン
スを再び開始することができます。
インスタンスが停止状態にあるとき、追加のインスタンス時間分が課金されることはありません。イン
スタンスを停止状態から実行状態に移行するたびに 1 時間分のインスタンス時間が課金されます。この
ような移行が 1 時間の間に何度も行われる場合であっても、その回数ごとに 1 時間分が課金されます。
インスタンスが停止状態にあるときにインスタンスタイプを変更した場合、インスタンスを起動すると
同時に新しいインスタンスタイプの料金が課金されます。ルートデバイスの使用を含め、インスタンス
に関連する Amazon EBS の使用はすべて、Amazon EBS 料金で課金されます。
6
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI
インスタンスが停止状態の場合は、Amazon EBS ボリュームをアタッチおよびデタッチできます。イ
ンスタンスから AMI を作成し、カーネル、RAM ディスク、インスタンスタイプを変更することもでき
ます。
インスタンスを終了した
インスタンスを終了すると、そのインスタンスは標準のシャットダウンを実行します。その後、ボリュー
ムの deleteOnTermination 属性が false に設定されない限り、アタッチされている Amazon EBS
ボリュームが削除されます。インスタンスそのものも削除され、後でインスタンスを再度起動すること
はできません。
間違って終了しないようにするため、インスタンスの終了を無効にすることができます。この場合、イ
ンスタンスの disableApiTermination 属性は必ず true にします。インスタンスのシャットダウン
時の動作を制御するには(Linux の shutdown -h や Windows の shutdown など)、
instanceInitiatedShutdownBehavior インスタンス属性を必要に応じて stop または terminate
に設定します。Amazon EBS ボリュームをルートデバイスに持つインスタンスはデフォルトで stop に
設定されます。インスタンスストアをルートデバイスに持つインスタンスはシャットダウンの結果とし
て常に終了されます。
詳細については、「インスタンスのライフサイクル (p. 251)」を参照してください。
AMI
アマゾン ウェブ サービス(AWS)は、一般的な用途のための共通のソフトウェア設定を含む多くの
Amazon マシンイメージ(AMI)を公開しています。加えて、AWS 開発者コミュニティのメンバーに
よって作成された、独自のカスタム AMI もあります。お客様自身でカスタム AMI を作成することもで
きます。必要なものがすべて含まれた新しいインスタンスを、すばやく簡単に起動できるようになりま
す。たとえば、ウェブサイトまたはウェブサービスに使用する場合は、AMI に含まれるものとして、
ウェブサーバー、関連する静的コンテンツ、動的ページ用のコードが考えられます。この AMI からイ
ンスタンスを起動すると、ウェブサーバーが起動し、アプリケーションはリクエストを受け付け可能な
状態になります。
すべての AMI は、Amazon EBS-backed(AMI からインスタンスを起動するときのルートデバイスは
Amazon EBS ボリュームである)と Instance-store backed(AMI からインスタンスを起動するときの
ルートデバイスは、Amazon S3 に格納されているテンプレートから作成されたインスタンスストアボ
リュームである)のいずれかに分類されます。
AMI の説明に、ルートデバイスのタイプ(ebs または instance store)が明記されています。この
ことが重要であるのは、AMI のタイプによって、実行できる機能が大きく異なるからです。違いについ
ての詳細は ルートデバイスのストレージ (p. 71) を参照してください。
7
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リージョンとアベイラビリティーゾーン
リージョンとアベイラビリティーゾーン
Abstract
インスタンスをホストできる世界各地のリージョンとアベイラビリティーゾーンを説明します。
Amazon EC2 は、世界各地のロケーションでホスティングされています。これらのロケーションは、
リージョンとアベイラビリティーゾーンから構成されています。リージョンはそれぞれ、地理的に離れ
た領域です。1 つのリージョンに複数のそれぞれ独立したロケーションがあり、このロケーションを
「アベイラビリティーゾーン」といいます。Amazon EC2 では、お客様がインスタンスなどのリソー
スとデータを複数のロケーションに配置できます。複数のリージョンにまたがってリソースのレプリ
ケーションを行うには、お客様がそのように指定する必要があります。
Amazon は、アベイラビリティーの高い最新のデータセンターを運用しています。しかし、非常にまれ
ですが、同じ場所にあるインスタンスすべての可用性に影響する障害が発生することもあります。も
し、すべてのインスタンスを 1 か所でホストしている場合、そのような障害が起きたとき、インスタン
スがすべて利用できなくなります。
目次
• リージョンとアベイラビリティーゾーンに関する概念 (p. 8)
• 利用できるリージョン (p. 9)
• リージョンとエンドポイント (p. 10)
• リージョンとアベイラビリティーゾーンの記述 (p. 10)
• リソースのリージョンの指定 (p. 13)
• アベイラビリティーゾーンでのインスタンスの起動 (p. 14)
• 別のアベイラビリティゾーンへのインスタンスの移行 (p. 15)
リージョンとアベイラビリティーゾーンに関する概
念
各リージョンは完全に独立しています。各アベイラビリティーゾーンは独立していますが、同じリー
ジョン内のアベイラビリティーゾーンどうしは低レイテンシーのリンクで接続されています。次の図
に、リージョンとアベイラビリティーゾーンの関係を示します。
Amazon EC2 リソースには、グローバルなもの、リージョンに結び付けられているもの、アベイラビ
リティーゾーンに結び付けられているものがあります。詳細については、「リソースの場所 (p. 766)」
を参照してください。
8
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
利用できるリージョン
リージョン
各 Amazon EC2 リージョンは、他の Amazon EC2 リージョンと完全に分離されるように設計されてい
ます。これにより、最大限の耐障害性と安定性が達成されます。
リソースを表示すると、指定したリージョンに結び付けられているリソースだけが表示されます。これ
は、リソースは相互に分離されており、リージョン間のリソースのレプリケーションは自動的に行われ
ないためです。
インスタンスを起動するときは、同じリージョン内にある AMI を選択する必要があります。AMI が別
のリージョンにある場合は、使用しているリージョンに AMI をコピーできます。詳細については、
「AMI のコピー (p. 111)」を参照してください。
リージョン間のすべての通信は、パブリックインターネットを通して行われます。したがって、適切な
暗号方式を使用してデータを保護する必要があります。リージョン間でデータを転送すると、送信側と
受信側の両方のインスタンスで、インターネットデータ転送速度に応じて料金が発生します。詳細につ
いては、「Amazon EC2 Pricing - Data Transfer」を参照してください。
アベイラビリティーゾーン
自分のアカウントで使用できるアベイラビリティーゾーンをリストできます。詳細については、「リー
ジョンとアベイラビリティーゾーンの記述 (p. 10)」を参照してください。
インスタンスを起動するときに、アベイラビリティーゾーンを自分で選択するか、自動的に選択される
ようにできます。インスタンスを複数のアベイラビリティーゾーンに配布する場合は、1 つのインスタ
ンスで障害が発生したら別のアベイラビリティーゾーンのインスタンスが要求を処理するように、アプ
リケーションを設計できます。
また、伸縮自在な IP アドレスを使用すると、あるアベイラビリティーゾーンのインスタンスの障害を、
別のアベイラビリティーゾーンのインスタンスにアドレスをすばやく再マッピングすることによってマ
スクできます。詳細については、「Elastic IP アドレス (p. 619)」を参照してください。
リソースがリージョンの複数のアベイラビリティーゾーンに分散されるようにするため、アベイラビリ
ティーゾーンは各アカウントの識別子に個別にマップされます。たとえば、あるアカウントのアベイラ
ビリティーゾーンは別のアカウントのus-east-1aアベイラビリティーゾーンと同じ場所にはない可能
性がありますus-east-1a。ユーザーがアカウント間でアベイラビリティーゾーンを調整する手段はあ
りません。
アベイラビリティーゾーンが拡大すると、アベイラビリティーゾーンを拡張しにくくなる場合がありま
す。その場合、ユーザーがアベイラビリティーゾーンに既にインスタンスを持っているのでない場合
は、制約のあるアベイラビリティーゾーンでのインスタンスの起動を制限する場合があります。最終的
に、制約のあるアベイラビリティーゾーンを新しいお客様に対するアベイラビリティーゾーンのリスト
から削除することもあります。したがって、アカウントによってリージョン内で使用できるアベイラビ
リティーゾーンの数が異なる場合があります。
利用できるリージョン
アカウントにより、利用できるリージョンが決まります。以下に例を示します。
• AWS アカウントでは複数のリージョンが提供されるため、それぞれの要件に合った場所で Amazon
EC2 インスタンスを起動できます。たとえば、ヨーロッパの顧客に近づけるため、または法的要件
を満たすために、ヨーロッパでインスタンスを起動することができます。
• AWS GovCloud (米国) アカウントでは、AWS GovCloud (米国) リージョンにアクセスできます。詳
細については、「AWS GovCloud (米国) リージョン」を参照してください。
• Amazon AWS アカウントでは、中国(北京) リージョンにアクセスできます。
9
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リージョンとエンドポイント
次の表に、AWS アカウントで提供されるリージョンのリストを示します。AWS GovCloud (米国) や 中
国(北京) など、AWS アカウントの追加のリージョンを記述またはアクセスできないことに注意して
ください。
コード
名前
us-east-1
US East (N. Virginia)
us-west-2
米国西部(オレゴン)
us-west-1
米国西部(北カリフォルニア)
eu-west-1
欧州(アイルランド)
eu-central-1
欧州(フランクフルト)
ap-southeast-1
アジアパシフィック(シンガポール)
ap-northeast-1
アジアパシフィック(東京)
ap-southeast-2
アジアパシフィック(シドニー)
ap-northeast-2
アジアパシフィック (ソウル)
sa-east-1
南米(サンパウロ)
詳細については、「AWS グローバルインフラストラクチャ」を参照してください。
リージョンとエンドポイント
コマンドラインインターフェイスまたは API アクションを使用してインスタンスを操作するときは、
そのリージョンエンドポイントを指定する必要があります。Amazon EC2 のリージョンおよびエンド
ポイントの詳細については、『Amazon Web Services General Reference』の「リージョンとエンドポ
イント」を参照してください。
AWS GovCloud (米国) のエンドポイントとプロトコルの詳細については、『AWS GovCloud (US) User
Guide』の「AWS GovCloud (米国) エンドポイント」を参照してください。
リージョンとアベイラビリティーゾーンの記述
AWS マネジメントコンソール またはコマンドラインインターフェイスを使用して、アカウントで使用
できるリージョンおよびアベイラビリティーゾーンを特定できます。これらのコマンドラインインター
フェイスの詳細については、「Amazon EC2 へのアクセス (p. 3)」を参照してください。
AWS マネジメントコンソール を使用してリージョンとアベイラビリティーゾーンを検索する
には
1.
2.
AWS マネジメントコンソール を開きます。
ナビゲーションバーから、リージョンセレクターのオプションを表示します。
10
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リージョンとアベイラビリティーゾーンの記述
3.
Amazon EC2 コンソールを開きます。アベイラビリティーゾーンは、ダッシュボードの [Service
Health] の [Availability Zone Status] に一覧表示されます。
AWS CLI を使用してリージョンとアベイラビリティーゾーンを見つけるには
1.
次のように describe-regions コマンドを使用してリージョンを記述します。
$ aws ec2 describe-regions
{
"Regions": [
11
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リージョンとアベイラビリティーゾーンの記述
{
"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"
}
]
}
Amazon EC2 CLI を使用してリージョンとアベイラビリティーゾーンを見つけるには
1.
次のように ec2-describe-regions コマンドを使用してリージョンを記述します。
PROMPT> ec2-describe-regions
REGION ap-northeast-1
ec2.ap-northeast-1.amazonaws.com
REGION ap-southeast-1
ec2.ap-southeast-1.amazonaws.com
..
2.
次のように ec2-describe-availability-zones コマンドを使用してリージョン内のアベイラビリティー
ゾーンを記述します。us-east-1
12
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リソースのリージョンの指定
PROMPT> ec2-describe-availability-zones --region us-east-1
AVAILABILITYZONE us-east-1a available us-east-1
AVAILABILITYZONE us-east-1b available us-east-1
AVAILABILITYZONE us-east-1c available us-east-1
AVAILABILITYZONE us-east-1d available us-east-1
リソースのリージョンの指定
Amazon EC2 リソースを作成するたびに、リソースのリージョンを指定できます。リソースのリージョ
ンは AWS マネジメントコンソール またはコマンドラインを使用して指定できます。
Note
一部の AWS リソースは、リージョンおよびアベイラビリティーゾーンによっては利用できな
い場合があります。特定のアベイラビリティーゾーンでインスタンスを起動する前に、目的の
リージョンまたはアベイラビリティーゾーンで必要なリソースを作成できることを確認してく
ださい。
コンソールを使用してリソースのリージョンを指定するには
1.
2.
Amazon EC2 コンソールを開きます。
ナビゲーションバーのリージョンセレクターを使用します。
13
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
アベイラビリティーゾーンでのインスタンスの起動
コマンドラインを使用してデフォルトのリージョンを指定するには
環境変数の値を、目的のリージョンエンドポイント(例: https://ec2.us-west-1.amazonaws.com)
に設定できます。
• AWS_DEFAULT_REGION(AWS CLI)
• EC2_URL(Amazon EC2 CLI)
または、各コマンドで --region コマンドラインオプションを使用することもできます。たとえば、
--region us-west-1 と指定します。
Amazon EC2 のエンドポイントの詳細については、「Amazon Elastic Compute Cloud Endpoints」を参
照してください。
アベイラビリティーゾーンでのインスタンスの起動
インスタンスを起動するときは、特定のお客様にインスタンスを近付けるリージョン、または法律や他
の要件を満たすリージョンを選択します。個別のアベイラビリティーゾーンでインスタンスを起動する
ことにより、1 つの場所で障害が発生しても、アプリケーションを保護することができます。
インスタンスを起動するときは、必要に応じて、使用するリージョン内のアベイラビリティーゾーンを
指定できます。アベイラビリティーゾーンを指定しないと、自動的に選択されます。初期インスタンス
を起動するときには、デフォルトのアベイラビリティーゾーンを受け入れることをお勧めします。これ
により Amazon EC2 が、システムの状態と利用可能な機能に基づいて、最適なアベイラビリティーゾー
ンを選択できます。追加インスタンスを起動する場合、新しいインスタンスが実行中のインスタンスに
近いか、分かれている必要がある場合は、アベイラビリティーゾーンだけを指定します。
コンソールを使用してインスタンスのアベイラビリティーゾーンを指定するには
1.
2.
3.
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
14
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
別のアベイラビリティゾーンへのインスタンスの移行
Amazon EC2 CLI を使用してインスタンスのアベイラビリティーゾーンを指定するには
ec2-run-instances コマンドと次のいずれかのオプションを使用できます。
• [EC2-Classic] --availability-zone
• [EC2-VPC] --subnet
別のアベイラビリティゾーンへのインスタンスの移
行
必要な場合は、1 つのアベイラビリティゾーンから別のアベイラビリティゾーンにインスタンスを移行
できます。たとえば、インスタンスのインスタンスタイプを変更しようとしたときに、現在のアベイラ
ビリティゾーンでは新しいタイプのインスタンスを起動できない場合は、そのタイプのインスタンスを
起動できるアベイラビリティゾーンにインスタンスを移行することもできます。
移行プロセスでは、次の手順に示すように、元のインスタンスから AMI を作成し、新しいアベイラビ
リティゾーンでインスタンスを起動して、新しいインスタンスの設定を更新します。
別のアベイラビリティゾーンにインスタンスを移行するには
1.
インスタンスから AMI を作成します。手順は、オペレーティングシステムとインスタンスのルー
トデバイスボリュームの種類によって異なります。詳細については、使用しているオペレーティン
グシステムとルートデバイスボリュームに対応するドキュメントを参照してください。
•
•
•
•
2.
3.
4.
5.
6.
Amazon EBS-Backed Linux AMI の作成 (p. 93)
Instance Store-Backed Linux AMI の作成 (p. 97)
Amazon EBS-backed Windows AMI の作成
Instance Store-Backed Windows AMI の作成
[EC2-VPC] インスタンスのプライベート IP アドレスを維持する必要がある場合は、現在のアベイ
ラビリティゾーンのサブネットを削除してから、新しいアベイラビリティゾーンに元のサブネット
と同じ IP アドレス範囲のサブネットを作成する必要があります。サブネットを削除する前に、そ
の中のすべてのインスタンスを終了する必要があります。したがって、現在のサブネット内のすべ
てのインスタンスを新しいサブネットに移動しなければなりません。
新しいアベイラビリティゾーンまたはサブネットを指定して、作成した AMI からインスタンスを
起動します。インスタンスタイプは、元のインスタンスと同じにすることも、新しいインスタンス
タイプを選択することもできます。詳細については、「アベイラビリティーゾーンでのインスタン
スの起動 (p. 14)」を参照してください。
元のインスタンスに Elastic IP アドレスが関連付けられていた場合は、それを新しいインスタンス
に関連付けます。詳細については、「Elastic IP アドレスの関連付け解除と別のインスタンスへの
再関連付け (p. 623)」を参照してください。
元のインスタンスがリザーブドインスタンスの場合、予約のアベイラビリティゾーンを変更しま
す。(また、インスタンスタイプも変更する場合は、予約のインスタンスタイプも変更できます)。
詳細については、「変更リクエストの送信 (p. 187)」を参照してください。
(オプション)元のインスタンスを終了します。詳細については、「インスタンスを終了す
る (p. 286)」を参照してください。
15
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ルートデバイスボリューム
Amazon EC2 ルートデバイスボリューム
Abstract
インスタンスのブートボリュームのタイプを選択します。
インスタンスを起動するときは、ルートデバイスボリュームに格納されているイメージを使用してイン
スタンスがブートされます。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 は
起動が高速であり、永続的ストレージを使用しているからです。
トピック
• ルートデバイスストレージの概念 (p. 16)
• ルートデバイスタイプによる AMI の選択 (p. 18)
• インスタンスのルートデバイスタイプの判別 (p. 18)
• 永続的ルートデバイスボリュームへの変更 (p. 19)
ルートデバイスストレージの概念
Instance store-Backed AMI と Amazon EBS-Backed AMI という 2 種類の AMI のいずれかからインスタ
ンスを起動できます。AMI の説明にはそのタイプが含まれており、場所によってルートデバイスが ebs
(Amazon EBS-Backed の場合)または instance store(Instance store-Backed の場合)と表示さ
れます。各タイプの AMI を使用して実行できることには大きな違いがあるため、タイプを区別できる
ことは重要です。違いについての詳細は ルートデバイスのストレージ (p. 71) を参照してください。
instance store-backed のインスタンス
インスタンスストアをルートデバイスに使用するインスタンスでは自動的に、インスタンスストアボ
リュームを利用できるようになり、その 1 つがルートデバイスボリュームとなります。インスタンスを
起動すると、インスタンスのブートに使用されるイメージがルートボリューム(通常は sda1)にコピー
されます。インスタンスストアボリュームのデータはインスタンスが実行している間は維持されます
が、インスタンスが終了すると(Instance store-Backed インスタンスは [Stop] アクションをサポート
していません)、またはインスタンスが失敗すると(基盤となるドライブに問題がある場合など)、削
除されます。
16
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ルートデバイスストレージの概念
障害が発生したり終了されたりした instance store-backed インスタンスは復元できません。Amazon
EC2 instance store-backed インスタンスの使用を予定している場合は、インスタンスストアのデータ
を複数のアベイラビリティーゾーンにまたがって分散させることを強くお勧めします。また、インスタ
ンスストアボリュームのデータを永続的ストレージに定期的にバックアップする必要があります。
詳細については、「Amazon EC2 インスタンスストア (p. 735)」を参照してください。
Amazon EBS-backed インスタンス
Amazon EBS をルートデバイスに使用するインスタンスには自動的に、Amazon EBS ボリュームがア
タッチされます。Amazon EBS Backed インスタンスを起動するときに、AMI で参照されている Amazon
EBS スナップショットごとに 1 つの Amazon EBS ボリュームが作成されます。他の Amazon EBS ボ
リュームやインスタンスストアボリュームを使用することもできます。
Amazon EBS-backed インスタンスは、停止後に再起動できます。アタッチされているボリュームに格
納されているデータに影響を及ぼすこともありません。Amazon EBS-backed インスタンスが停止状態
にあるときは、インスタンス関連およびボリューム関連の様々なタスクを実行できます。たとえば、イ
ンスタンスのプロパティの変更、インスタンスのサイズの変更、使用しているカーネルの更新が可能で
す。また、デバッグなどの目的で別の実行中インスタンスにルートボリュームをアタッチすることもで
きます。
デフォルトでは、Amazon EBS-backed インスタンスを起動するとアタッチされるルートデバイスボ
リュームおよびその他の Amazon EBS ボリュームは、インスタンスが終了すると自動的に削除されま
す。インスタンス起動時のこの動作を変更する方法については、「永続的ルートデバイスボリュームへ
の変更 (p. 19)」を参照してください。
デフォルトでは、実行中のインスタンスにお客様が接続したすべての Amazon EBS ボリュームは、イ
ンスタンスが終了すると、データはそのままの状態でデタッチされます。デタッチされたボリューム
を、実行中の任意のインスタンスにアタッチできます。
Amazon EBS-backed インスタンスに障害が発生した場合は、以下のいずれかの方法によってセッショ
ンを復元できます。
• 停止して再起動します(最初にこの方法を試してください)。
• 関連するすべてのボリュームのスナップショットを自動的に作成し、新しい AMI を作成します。詳
細については、「Amazon EBS-Backed Linux AMI の作成 (p. 93)」を参照してください。
• 以下の手順に従って、ボリュームを新しいインスタンスにアタッチします。
1. ルートボリュームのスナップショットを作成します。
2. 作成したスナップショットを使用して新しい AMI を登録します。
3. 新しい AMI から新しいインスタンスを起動します。
4. 残りの Amazon EBS ボリュームを古いインスタンスからデタッチします。
5. Amazon EBS ボリュームを新しいインスタンスに再アタッチします。
17
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ルートデバイスタイプによる AMI の選択
ルートデバイスタイプによる AMI の選択
インスタンスの起動時に指定する AMI によって、インスタンスのルートデバイスボリュームのタイプ
が決まります。
Amazon EBS-Backed AMI を選択するには コンソールを使用する
1.
2.
3.
Amazon EC2 コンソールを開きます。
ナビゲーションペインの [AMIs] をクリックします。
フィルタの一覧から、イメージタイプ([Public images] など)を選択します。検索バーで、[Platform]
をクリックしてオペレーティングシステム([Amazon Linux] など)を選択し、[Root Device Type]
をクリックして [EBS images] を選択します。
4.
(オプション)選択の参考になる追加情報を表示するには、[Show/Hide Columns] アイコンをク
リックし、表示する列を更新して、[Close] をクリックします。
5.
AMI を選択し、その AMI ID を記録します。
Instance store-Backed AMI を選択するには コンソールを使用する
1.
2.
3.
4.
5.
Amazon EC2 コンソールを開きます。
ナビゲーションペインの [AMIs] をクリックします。
フィルタの一覧から、イメージタイプ([Public images] など)を選択します。検索バーで、
[<Platform] をクリックしてオペレーティングシステム([Amazon Linux] など)を選択し、[Root
Device Type] をクリックして [Instance store] を選択します。
(オプション)選択の参考になる追加情報を表示するには、[Show/Hide Columns] アイコンをク
リックし、表示する列を更新して、[Close] をクリックします。
AMI を選択し、その AMI ID を記録します。
コマンドラインを使用して AMI のルートデバイスボリュームの種類を確認するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-images (AWS CLI)
• ec2-describe-images (Amazon EC2 CLI)
• Get-EC2Image(AWS Tools for Windows PowerShell)
インスタンスのルートデバイスタイプの判別
コンソールを使用してインスタンスのルートデバイスタイプを判別するには
1.
2.
Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Instances] をクリックし、インスタンスを変更します。
3.
次のように、[Description] タブで [Root device type] の値を確認します。
• 値が ebs の場合、これは Amazon EBS-Backed インスタンスです。
• 値が instance store の場合、これは Instance store-Backed インスタンスです。
18
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
永続的ルートデバイスボリュームへの変更
コマンドラインを使用してインスタンスのルートデバイスタイプを判別するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-instances(AWS CLI)
• ec2-describe-instances(Amazon EC2 CLI)
• Get-EC2Instance(AWS Tools for Windows PowerShell)
永続的ルートデバイスボリュームへの変更
デフォルトでは、Amazon EBS-backed AMI のルートデバイスボリュームは、インスタンスを終了する
と削除されます。デフォルトの動作を変更するには、ブロックデバイスマッピングを使用して、
DeleteOnTermination 属性を false に設定します。
コンソールを使用したルートボリュームの永続的な変更
コンソールを使用して、インスタンスの起動時に DeleteOnTermination 属性を変更できます。実行
中のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。
コンソールを使用して、起動時にインスタンスのルートデバイスボリュームが存続するように
変更するには
1.
2.
3.
4.
5.
6.
Amazon EC2 コンソールを開きます。
Amazon EC2 コンソールダッシュボードで、[Launch Instance] をクリックします。
[Choose an Amazon Machine Image (AMI)] ページで、使用する AMI を選択し、[Select] をクリッ
クします。
ウィザードにしたがって [Choose an Instance Type] ページと [Configure Instance Details] ページ
を設定します。
[Add Storage] ページで、ルートボリュームの [Delete On Termination] チェックボックスの選択を
解除します。
ウィザードの残りのページを完了した後、[Launch ] をクリックします。
インスタンスの詳細ペインでルートデバイスボリュームの詳細を表示することにより、設定を確認でき
ます。[Block devices] の隣にあるルートデバイスボリュームのエントリをクリックします。デフォルト
では、[Delete on termination] は [True] です。デフォルトの動作を変更した場合は、[Delete on termination]
が [False] になっています。
AWS CLI を使用して、インスタンスのルートボリュームが存続
するように変更するには
AWS CLI を使用して、インスタンスの起動時またはインスタンスの実行中に DeleteOnTermination
属性を変更することができます。ルートデバイスは通常、/dev/sda1(Linux)または xvda(Windows)
です。
Example 起動時
run-instances コマンドを使用して、DeleteOnTermination 属性を false に設定するブロックデバ
イスマッピングを含めることにより、ルートボリュームを保持します。
19
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
永続的ルートデバイスボリュームへの変更
$ aws ec2 run-instances --image-id ami-1a2b3c4d --block-device-mappings
'[{"DeviceName":"/dev/sda1","Ebs":{"DeleteOnTermination":false}}]' other para
meters...
describe-instances コマンドを使用して、次に示すようにコマンド出力の /dev/sda1 で
BlockDeviceMappings エントリを探すことで、DeleteOnTermination が false であることを確
認します。
...
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sda1",
"Ebs": {
"Status": "attached",
"DeleteOnTermination": false,
"VolumeId": "vol-877166c8",
"AttachTime": "2013-07-19T02:42:39.000Z"
}
}
...
Example インスタンスの実行中
modify-instance-attribute コマンドを使用して、DeleteOnTermination 属性を false に設定するブ
ロックデバイスマッピングを含めることにより、ルートボリュームを保持します。
$ aws ec2 modify-instance-attribute --instance-id i-5203422c --block-devicemappings '[{"DeviceName":"/dev/sda1","Ebs":{"DeleteOnTermination":false}}]'
Amazon EC2 CLI を使用して、インスタンスのルートデバイス
ボリュームが存続するように変更するには
Amazon EC2 CLI を使用して、インスタンスの起動時またはインスタンスの実行中に
DeleteOnTermination 属性を変更することができます。ルートデバイスは通常、/dev/sda1(Linux)
または xvda(Windows)です。
Example 起動時
ec2-run-instances コマンドを使用して、ルートデバイスの DeleteOnTermination フラグを false
に設定するブロックデバイスマッピングを含めます。コマンドを詳細モードで実行するための -v オプ
ションを追加します。
$ ec2-run-instances ami-1a2b3c4d
-v
-b "/dev/sda1=::false" other parameters...
詳細モードでコマンドを実行すると、基になるリクエストとレスポンスを見ることができ、ここで示す
ように、DeleteOnTermination が false であることを確認できます。
...
<blockDeviceMapping>
<item>
<deviceName>/dev/sda1</deviceName>
<ebs>
20
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
永続的ルートデバイスボリュームへの変更
<deleteOnTermination>false</deleteOnTermination>
</ebs>
</item>
</blockDeviceMapping>
...
Example インスタンスの実行中
ec2-modify-instance-attribute コマンドを使用して、DeleteOnTermination 属性を false に設定する
ことにより、ルートボリュームを保持します。
$ ec2-modify-instance-attribute i-5203422c -b "/dev/sda1=::false"
21
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AWS にサインアップする
Amazon EC2 でのセットアップ
Abstract
Amazon EC2 を初めて使用する準備を整えるには、以下の手順を実行します。
アマゾンウェブサービス(AWS)に既にサインアップしている場合は、Amazon EC2 をすぐに使用で
きます。Amazon EC2 コンソールを開き、[Launch Instance] をクリックし、起動ウィザードの手順に
従って最初のインスタンスを起動します。
AWS にまだサインアップしていない場合、または最初のインスタンスの起動についてサポートが必要
な場合は、次のタスクを実行して、Amazon EC2 を使用するための設定を行ってください。
1. AWS にサインアップする (p. 22)
2. IAM ユーザーを作成する (p. 23)
3. キーペアを作成する (p. 24)
4. Virtual Private Cloud(VPC)の作成 (p. 26)
5. セキュリティグループの作成 (p. 27)
AWS にサインアップする
アマゾン ウェブ サービス(AWS)にサインアップすると、AWS アカウントが AWS 内のすべてのサー
バー(Amazon EC2 など)に自動的にサインアップされます。料金が発生するのは、実際に使用した
サービスの分のみです。
Amazon EC2 については、お客様が利用された分のみのお支払いとなります。AWS の新規のお客様の
場合、Amazon EC2 を無料で使い始めることができます。詳細については、「AWS Free Tier」を参照
してください。
既に AWS アカウントをお持ちの場合は次のタスクに進んでください。AWS アカウントをお持ちでな
い場合は、次に説明する手順にしたがってアカウントを作成してください。
AWS アカウントを作成するには
1.
http://aws.amazon.com/ を開き、[AWS アカウントの作成] を選択します。
2.
オンラインの手順に従います。
22
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ユーザーを作成する
サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入
力することが求められます。
次のタスクで AWS アカウント番号が必要となるので、メモしておいてください。
IAM ユーザーを作成する
AWS のサービス(Amazon EC2 など)の場合は、サービスにアクセスする際に認証情報を提供する必
要があります。このため、サービスのリソースにアクセスする権限があるかどうかがサービスによって
判定されます。コンソールを使用するにはパスワードが必要です。AWS アカウントのアクセスキーを
作成して、コマンドラインインターフェイスまたは API にアクセスすることができます。ただし、AWS
アカウントの認証情報を使って AWS にアクセスすることはお勧めしません。代わりに AWS Identity
and Access Management(IAM)を使用することをお勧めします。IAM ユーザーを作成して、管理権限
を使ってこのユーザーを IAM グループに追加するか、管理権限を付与します。これで、特殊な URL と
IAM ユーザーの認証情報を使って、AWS にアクセスできます。
AWS にサインアップしても、ご自分の IAM ユーザーをまだ作成していない場合は、IAM コンソールを
使用して作成できます。コンソールの使用に慣れていない場合は、「AWS マネジメントコンソール の
使用」で概要を参照してください。
管理者グループを作成するには
1.
2.
3.
4.
5.
AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/
iam/)を開きます。
ナビゲーションペインで、[Groups]、[Create New Group] の順に選択します。
[Group Name] ボックスにグループの名前(Administrators など)を入力し、[Next Step] を選
択します。
ポリシーのリストで、AdministratorAccess ポリシーの横にあるチェックボックスを選択します。
[Filter] メニューと [Search] ボックスを使用して、ポリシーのリストをフィルタリングできます。
[Next Step]、[Create Group] の順に選択します。
新しいグループは、[Group Name] の下に表示されます。
自分用の IAM ユーザーを作成するには、管理者グループにユーザーを追加し、ユーザーのパス
ワードを作成します。
1.
2.
3.
ナビゲーションペインで [Users] を選択し、続いて [Create New Users] を選択します。
[1] ボックスにユーザー名を入力します。
[Generate an access key for each user] の横にあるチェックボックスをオフにします。
4.
5.
[Create] を選択します。
ユーザーのリストで、先ほど作成したユーザーの名前(チェックボックスではない)を選択しま
す。[Search] ボックスを使用してユーザー名を検索できます。
[Groups] タブを選択し、[Add User to Groups] を選択します。
6.
7.
8.
9.
管理者グループの横にあるチェックボックスを選択します。続いて、[Add to Groups] を選択しま
す。
[Security Credentials] タブを選択します。[Sign-In Credentials] で、[Manage Password] を選択し
ます。
[Assign a custom password] を選択します。 続いて [Password] と [Confirm Password] ボックスに
パスワードを入力します。 完了したら、[Apply] を選択します。
23
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
キーペアを作成する
新規の 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/
先ほど作成した 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. 524)」を参照してください。
キーペアを作成する
AWS では公開キー暗号化を使用して、お客様のインスタンスのログイン情報の安全性を保護します。
Linux インスタンスにはパスワードがありませんが、キーペアを使用することでインスタンスに安全に
ログインできます。インスタンスを起動するときにキーペアの名前を指定し、プライベートキーを指定
して、SSH を使ってログインします。
キーペアをまだ作成していない場合は、Amazon EC2 コンソールを使用して作成できます。複数のリー
ジョンでインスタンスを起動する予定がある場合は、各リージョンでキーペアを作成する必要がありま
す。リージョンの詳細については、「リージョンとアベイラビリティーゾーン (p. 8)」を参照してく
ださい。
キーペアを作成するには
1.
前のセクションで作成した URL を使用して AWS にサインインします。
2.
3.
AWS ダッシュボードから、[EC2] を選択して Amazon EC2 コンソールを開きます。
ナビゲーションバーで、キーペアを生成するリージョンを選択します。お客様は場所に関係なく、
使用できるリージョンをどれでも選択できます。ただし、キーペアはリージョンに固有です。たと
えば、米国西部(オレゴンリージョン) でインスタンスを起動する予定がある場合、米国西部(オ
レゴンリージョン) のインスタンス用にキーペアを作成する必要があります。
24
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
キーペアを作成する
4.
ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] をクリックします。
Tip
ナビゲーションペインはコンソールの左側にあります。ペインが表示されない場合、最小
化されている可能性があります。矢印をクリックしてペインを展開します。必要に応じ
て、下へスクロールして [Key Pairs] リンクを表示します。
5.
[Create Key Pair] をクリックします。
6.
[Create Key Pair] ダイアログボックスの [Key Pair Name] フィールドに新しいキーペアの名前を入
力し、[Create] をクリックします。覚えやすい名前(IAM ユーザー名など)を選び、その後に
-key-pair を続け、さらにリージョン名を続けます。たとえば、me-key-pair-uswest2 などです。
7.
ブラウザによって秘密キーファイルが自動的にダウンロードされます。ベースファイル名はキーペ
アの名前として指定した名前となり、ファイル名の拡張子は .pem となります。プライベートキー
ファイルを安全な場所に保存します。
Important
これは、プライベートキーを保存する唯一のチャンスです。インスタンスと対応するプラ
イベートキーの起動時には、毎回インスタンスに接続するたびに、キーペアの名前を入力
する必要があります。
25
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Virtual Private Cloud(VPC)の作成
8.
Mac または Linux コンピュータの SSH クライアントを使用して Linux インスタンスに接続する場
合は、次のコマンドを使用してプライベートキーファイルの権限を設定すると、お客様以外のユー
ザーはそれを読み取ることができないようになります。
$ chmod 400 your_user_name-key-pair-region_name.pem
詳細については、「Amazon EC2 のキーペア (p. 504)」を参照してください。
キーペアを使用してインスタンスに接続するには
Mac または Linux を実行しているコンピュータから Linux インスタンスに接続する場合、-i オプショ
ンとプライベートキーのパスを指定して、SSH クライアントに対する .pem ファイルを指定します。
Windows を実行しているコンピュータから Linux インスタンスに接続する場合は、MindTerm または
PuTTY のどちらかを使用できます。PuTTY を使用する予定がある場合は、それをインストールしてか
ら、次のプロシージャを使用して .pem ファイルを .ppk ファイルに変換します。
(オプション)PuTTY を使用して Windows から Linux インスタンスに接続するには
1.
2.
3.
http://www.chiark.greenend.org.uk/~sgtatham/putty/ から PuTTY をダウンロードしてインストール
します。必ずスイート全体をインストールします。
PuTTYgen を開始します(例:[スタート] メニューで [すべてのプログラム] > [PuTTY] > [PuTTYgen]
をクリック)。
[Type of key to generate] の下で、[SSH-2 RSA] を選択します。
4.
[Load] をクリックします。デフォルトでは、PuTTYgen には拡張子 .ppk を持つファイルだけが表
示されます。.pem ファイルの場所を特定するには、すべてのタイプのファイルを表示するオプショ
ンを選択します。
5.
前の手順で作成した作成した秘密キーファイルを選択し、[Open] をクリックします。[OK] をクリッ
クして、確認ダイアログボックスを閉じます。
[Save private key] をクリックします。PuTTYgen に、パスフレーズなしでキーを保存することに
関する警告が表示されます。[Yes] をクリックします。
キーペアに使用した名前と同じ名前をキーに指定します。PuTTY は自動的にファイル拡張子 .ppk
を加えます。
6.
7.
Virtual Private Cloud(VPC)の作成
Amazon VPC を使用すると、定義した仮想ネットワーク内で AWSリソースを起動できます。デフォル
トの VPC がある場合は、このセクションをスキップして、次のタスク「セキュリティグループの作
成 (p. 27)」に移動できます。デフォルトの VPC があるかどうかを判断するには、「Amazon EC2 コン
ソールでサポートされるプラットフォーム (p. 584)」を参照してください。また、次の手順を使用して、
アカウントにデフォルト以外の VPC を作成することもできます。
26
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループの作成
Important
アカウントがリージョン内で EC2-Classic をサポートしている場合、そのリージョンにはデ
フォルトの VPC はありません。VPC で T2 インスタンスを起動する必要があります。
デフォルト以外の VPC を作成するには
1.
https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。
2.
ナビゲーションバーで、VPC のリージョンを選択します。VPC はリージョンに固有であるため、
キーペアを作成したリージョンと同じリージョンを選択してください。
VPC ダッシュボードで、[Start VPC Wizard] をクリックします。
[Step 1: Select a VPC Configuration] ページで、[VPC with a Single Public Subnet] が選択されてい
ることを確認し、[Select] をクリックします。
3.
4.
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)」を参照してください。
前提条件
ローカルコンピュータのパブリック IP アドレスが必要になります。このアドレスはサービスを使って
取得できます。たとえば、次のサービスが提供されています。http://checkip.amazonaws.com/IP アド
レスを提供する別のサービスを検索するには、検索フレーズ「what is my IP address」を使用します。
インターネットサービスプロバイダー(ISP)経由で、またはファイアウォールの内側から静的な IP ア
ドレスなしで接続する場合は、クライアントコンピュータで使用されている IP アドレスの範囲を見つ
ける必要があります。
最小限の権限でセキュリティグループを作成するには
1.
Amazon EC2 コンソールを開きます。
Tip
または、Amazon VPC コンソールを使用してセキュリティグループを作成することもでき
ます。ただし、ここで説明する手順は、Amazon VPC コンソールと一致しません。した
がって、前のセクションで Amazon VPC コンソールに切り替えた場合は、Amazon EC2
コンソールに戻ってここで説明する手順に従うか、『Amazon VPC 入門ガイド』の「VPC
のセキュリティグループをセットアップする」の手順に従います。
27
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループの作成
2.
ナビゲーションバーで、セキュリティグループのリージョンを選択します。セキュリティグループ
はリージョンに固有であるため、キーペアを作成したリージョンと同じリージョンを選択してくだ
さい。
3.
4.
5.
ナビゲーションペインで [Security Groups] をクリックします。
[Create Security Group] をクリックします。
新しいセキュリティグループの名前と説明を入力します。覚えやすい名前(IAM ユーザー名など)
を選び、その後に _SG_ を続け、さらにリージョン名を続けます。たとえば、me_SG_uswest2 な
どです。
[VPC] リストで、使用している VPC を選択します。デフォルト VPC がある場合、デフォルト VPC
にはアスタリスク(*)が付いています。
6.
Note
アカウントが EC2-Classic をサポートしている場合は、前のタスクで作成した VPC を選
択します。
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] ボックスで、[Custom IP] が選択されているこ
とを確認し、コンピュータまたはネットワークのパブリック IP アドレスを CIDR 表記で指定し
ます。CIDR 表記で個々の IP アドレスを指定するには、ルーティングプレフィックスを追加し
ます。/32たとえば、IP アドレスが 216.182.234.123 の場合は、216.182.234.123/32 を
指定します。会社が特定の範囲からアドレスを割り当てている場合、範囲全体(203.0.113.0/24
など)を指定します。
28
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループの作成
Caution
セキュリティ上の理由で、すべての IP アドレス(0.0.0.0/0)からインスタンスへの
SSH アクセスを許可することはお勧めしません。ただし、それがテスト目的で短期間の
場合は例外です。
詳細については、「Linux インスタンスの Amazon EC2 セキュリティグループ (p. 514)」を参照してく
ださい。
29
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
概要
Amazon EC2 Linux インスタンスの
開始方法
Abstract
Linux インスタンスを起動、接続、使用して Amazon EC2 の使用を開始しましょう。
Linux インスタンスを起動、接続、使用して Amazon Elastic Compute Cloud (Amazon EC2) の使用を
開始しましょう。インスタンスとは、AWS クラウドにある仮想サーバーです。Amazon EC2 を使用し
て、インスタンスで実行されるオペレーティングシステムとアプリケーションをセットアップし、設定
することができます。
AWS にサインアップすると、AWS 無料利用枠を使って、Amazon EC2 を無料で開始することができ
ます。AWS アカウントを作成したのが過去 12 か月以内で、Amazon EC2 の無料利用枠を使い切って
いない場合、無料利用枠内で利用できるオプションを選択することで、このチュートリアルでは一切費
用がかかりません。それ以外の場合、インスタンスを起動したときから、インスタンスを終了するまで
(このチュートリアルの最終タスク)、アイドル状態のままでも標準の Amazon EC2 使用料が発生し
ます。
目次
• 概要 (p. 30)
• 前提条件 (p. 31)
• ステップ 1: インスタンスを起動する (p. 31)
• ステップ 2: インスタンスに接続 (p. 33)
• ステップ 3: インスタンスをクリーンアップする (p. 34)
• 次のステップ (p. 34)
概要
インスタンスは Amazon EBS-backed インスタンスです (ルートボリュームが EBS ボリュームである
ことを意味します)。インスタンスが実行されるアベイラビリティゾーンは、指定するか、Amazon EC2
によって自動的に選択されます。インスタンスを起動するときは、キーペアとセキュリティグループを
指定してインスタンスをセキュリティで保護しますインスタンスに接続するときは、インスタンスの起
動時に指定したキーペアの秘密キーを指定する必要があります。
30
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
タスク
このチュートリアルを完了するには、次のタスクを実行します。
1. インスタンスを起動する (p. 31)
2. インスタンスへの接続 (p. 33)
3. インスタンスのクリーンアップ (p. 34)
関連チュートリアル
• Windows インスタンスを起動する場合は、『Microsoft Windows インスタンスの Amazon EC2 ユー
ザーガイド』のチュートリアル「 Amazon EC2 Windows インスタンスの使用開始」を参照してくだ
さい。
• コマンドラインを使用する方法については、AWS Command Line Interface ユーザーガイド のチュー
トリアル「Using Amazon EC2 through the AWS CLI」を参照してください。
前提条件
開始する前に、必ず「Amazon EC2 でのセットアップ (p. 22)
」の手順を完了してください。
ステップ 1: インスタンスを起動する
以下の手順で説明しているように AWS マネジメントコンソール を使用して Linux インスタンスを起動
できます。このチュートリアルは、初めてのインスタンスをすばやく起動できるように設計されていま
す。そのため、可能なすべてのオプションを扱ってはいません。オプションの詳細については、
「Launching an Instance」を参照してください。
インスタンスを起動するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
コンソールダッシュボードで、[Launch Instance] を選択します。
[Choose an Amazon Machine Image (AMI)] ページに、Amazon マシンイメージ(AMI)と呼ばれ
る基本設定のリストが表示されます。これは、インスタンスのテンプレートとして機能します。
Amazon Linux AMI の HVM エディションを選択します。 この AMI は "Free tier eligible" と表示さ
れていることに注意してください。
31
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 1: インスタンスを起動する
4.
[Choose an Instance Type] ページで、インスタンスのハードウェア構成を選択できます。t2.micro
タイプを選択します。これはデフォルトで選択されています。このインスタンスタイプは無料利用
枠であることに注意してください。
Note
t2.micro などの T2 インスタンスは、VPC で起動する必要があります。AWS アカウン
トで EC2-Classic がサポートされていて、選択されているリージョンに VPC がない場合
は、起動ウィザードによってお客様の VPC が作成されるので、次のステップに進むこと
ができます。その他の場合は、[Review and Launch] ボタンが無効になり、[Next: Configure
Instance Details] をクリックして、サブネットを選択する指示に従う必要があります。
5.
6.
[Review and Launch] を選択して、ウィザードが他の設定を完了できるようにします。
[Review Instance Launch] ページの [Security Groups] に、ウィザードで作成および選択したセキュ
リティグループが表示されます。このセキュリティグループを使用するか、または次のステップを
使用して設定を行うときに作成したセキュリティグループを選択できます。
a.
b.
c.
7.
8.
[Edit security groups] を選択します。
[Configure Security Group] ページで、[Select an existing security group] が選択されているこ
とを確認します。
既存のセキュリティグループのリストからセキュリティグループを選択してから、[Review
and Launch] を選択します。
[Review Instance Launch] ページで、[Launch] を選択します。
キーペアの入力を求められたら、[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] 列が非表示で
ある場合、ページの右上隅にある [Show/Hide] アイコンを選択してから、[Public DNS] を選択しま
す)。
11. インスタンスの準備ができて接続できるようになるまでには、数分かかる場合があります。インス
タンスのステータスチェックが正常に終了したことを確認してください。この情報は [Status Checks]
列で確認できます。
32
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 2: インスタンスに接続
ステップ 2: インスタンスに接続
Linux インスタンスに接続するにはいくつかの方法があります。この手順では、ブラウザを使用して接
続します。また、PuTTY または SSH クライアントを使用して接続することもできます。さらに、この
手順では、前のステップに従っていること、特定のユーザー名を持つインスタンスを Amazon Linux
AMI から起動していることを前提とします。Linux ディストリビューション別に使用されるユーザー名
は異なる場合があります。詳細については、「PuTTY を使用した Windows から Linux インスタンスへ
の接続 (p. 271)」または「SSH を使用した Linux インスタンスへの接続 (p. 266)」を参照してください。
Important
.pem ファイルがあるキーペアで起動し、SSH アクセスを許可するセキュリティグループで起
動していない限り、インスタンスに接続することはできません。インスタンスに接続できない
場合は、「インスタンスへの接続に関するトラブルシューティング (p. 798)」を参照してくださ
い。
ウェブブラウザを使用して Linux インスタンスに接続するには
1.
2.
3.
4.
5.
ブラウザに Java がインストールされて有効になっている必要があります。Java を持っていない場
合は、システム管理者に連絡してインストールしてもらうか、「Install Java」および「Enable Java
in your web browser」の各ページに説明されているステップに従います。
Amazon EC2 コンソールのナビゲーションペインで、[Instances] を選択します。
インスタンスを選択し、[Connect] を選択します。
[A Java SSH client directly from my browser (Java required)] を選択します。
Amazon EC2 は、インスタンスのパブリック DNS 名を自動的に検出して、[Public DNS] に自動的
に入力します。インスタンス起動時に指定したキーペアも自動的に検出します。次のように入力
し、[Launch SSH Client] を選択します。
a.
[User name] に「ec2-user」と入力します。
b.
[Private key path] に、プライベートキー (.pem) ファイルへの完全修飾パスを入力します (キー
ペア名を含む)。
(オプション) [Store in browser cache] を選択して、ブラウザキャッシュにプライベートキーの
場所を保存します。これにより、Amazon EC2 はユーザーがブラウザのキャッシュをクリア
するまで、以降のブラウザセッションでプライベートキーの場所を検出します。
c.
6.
必要に応じて、[Yes] を選択して証明書を信頼し、[Run] を選択して MindTerm クライアントを実
行します。
7.
初めて MindTerm を実行した場合、一連のダイアログボックスにより、ライセンス契約への同意、
ホームディレクトリの設定確認、既知のホストディレクトリの設定確認が求められます。これらの
設定を確認します。
既知のホストセットにホストを追加するよう求めるダイアログが表示されます。ホストキー情報を
ローカルコンピューターに保存しない場合は、[No] を選択します。
8.
9.
ウィンドウが開き、インスタンスに接続した状態になります。
Note
前のステップで [No] を選択した場合は、次のメッセージが表示されます (正常です)。
Verification of server key disabled in this session.
33
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 3: インスタンスをクリーンアップする
ステップ 3: インスタンスをクリーンアップする
このチュートリアル用に作成したインスタンスを使用した操作が終了したら、インスタンスを終了して
クリーンアップする必要があります。クリーンアップする前にこのインスタンスでやることがある場合
は、「次のステップ (p. 34)」を参照してください。
Important
インスタンスを終了するということは、実質的には、そのインスタンスを削除するということ
です。いったん終了したインスタンスに再接続することはできません。
AWS 無料利用枠外でインスタンスを起動した場合は、インスタンスのステータスが shutting down
または terminated に変わるとインスタンスの課金が停止します。後のためにインスタンスを維持し
たいが料金を発生させたくない場合は、インスタンスを停止して後で再び開始できます。詳細について
は、Stopping Instances をご覧ください。
インスタンスを終了するには
1.
2.
3.
ナビゲーションペインで、[Instances] を選択します。インスタンスの一覧で、インスタンスを選択
します。
[Actions]、[Instance State]、[Terminate] の順に選択します。
確認を求めるメッセージが表示されたら、[Yes, Terminate] を選択します。
Amazon EC2 によって、インスタンスがシャットダウンおよび終了します。インスタンスの終了
後、インスタンスはしばらくの間コンソールに表示されたままですが、エントリは削除されます。
次のステップ
インスタンスを起動した後で、次の演習の一部を行ってみるといいかもしれません。
• 使用量が無料利用枠を超えた場合に通知する CloudWatch アラームの設定。詳細については、AWS
Billing and Cost Management ユーザーガイドの「請求アラームの作成」を参照してください。
• EBS ボリュームの追加。詳細については、「Amazon EBS ボリュームの作成 (p. 672)」および「イン
スタンスへの Amazon EBS ボリュームのアタッチ (p. 676)」を参照してください。
• LAMP スタックのインストール。詳細については、「チュートリアル: Amazon Linux への LAMP ウェ
ブサーバーのインストール (p. 37)」を参照してください。
34
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 のベストプラクティス
Abstract
このチェックリストを使用して、Amazon EC2 の使用を評価します。
このチェックリストは、Amazon EC2 のメリットと満足感を最大限に引き出せるようにするためのも
のです。
セキュリティとネットワーク
• ID フェデレーション、IAM ユーザー、IAM ロールを使用して、AWS リソースおよび API へのアクセ
スを管理します。AWS アクセス認証情報の作成、配布、ローテーション、および取り消しを行うた
めの認証情報管理のポリシーおよび手順を確立します。詳細については、IAM ユーザーガイド の
「IAM のベストプラクティス」を参照してください。
• セキュリティグループに対して、最も制限のないルールを適用します。詳細については、「セキュリ
ティグループのルール (p. 516)」を参照してください。
• 定期的にインスタンスのオペレーティングシステムやアプリケーションに対してパッチ処理、更新、
および保護を行います。Amazon Linux の更新の詳細については、「ソフトウェアの管理(Linux イ
ンスタンスの場合)」を参照してください。Windows インスタンスの更新の詳細については、
『Microsoft Windows インスタンスの Amazon EC2 ユーザーガイド』の「Windows インスタンスの
更新」を参照してください。
• EC2-Classic ではなく VPC でインスタンスを起動します。2013 年 12 月 4 日以降に AWS アカウン
トを作成した場合は、VPC でインスタンスが自動的に起動されることに注意してください。この動
作を行う利点については、「Amazon EC2 と Amazon Virtual Private Cloud (p. 578)」を参照してくだ
さい。
ストレージ
• データの永続性、バックアップ、および復元に対するルートデバイスタイプの影響について理解しま
す。詳細については、「ルートデバイスのストレージ (p. 71)」を参照してください。
• オペレーティングシステム用およびデータ用として個別に Amazon EBS ボリュームを使用します。
データのボリュームがインスタンス終了後も保持されることを確認します。詳細については、「イン
スタンスの終了で Amazon EBS ボリュームを保持する (p. 288)」を参照してください。
• インスタンスで一時データの格納に使用できるインスタンスストアを使用します。インスタンスを停
止または終了すると、インスタンスストアに格納されたデータは削除されることに注意してくださ
い。データベースストレージにインスタンスストアを使用する場合は、耐障害性を確保するレプリ
ケーション係数が設定されたクラスターがあることを確認します。
35
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リソース管理
• AWS リソースを追跡および識別するために、インスタンスメタデータおよびリソースのカスタムタ
グを使用します。詳細については、「インスタンスメタデータとユーザーデータ (p. 321)」および
「Amazon EC2 リソースにタグを付ける (p. 774)」を参照してください。
• Amazon EC2 の現在の制限を表示します。制限の引き上げに対するリクエストは、制限の引き上げ
が必要となる前に計画してください。詳細については、「Amazon EC2 サービスの制限 (p. 784)」を
参照してください。
バックアップ&リストア
• Amazon EBS スナップショット (p. 709)またはバックアップツールを使用して、定期的にインスタン
スをバックアップします。
• 複数のアベイラビリティゾーンにアプリケーションの重要なコンポーネントをデプロイし、データを
適切にレプリケートします。
• インスタンスが再開したときに、動的な IP アドレスを処理するアプリケーションを設計します。詳
細については、「Amazon EC2 インスタンスの IP アドレッシング (p. 607)」を参照してください。
• イベントを管理し、対応します。詳細については、「Amazon EC2 のモニタリング (p. 412)」を参照
してください。
• フェイルオーバーを処理する準備が整っていることを確認します。基本的な解決策として、手動で
ネットワークインターフェイスをアタッチすることも、代替インスタンスに Elastic IP アドレスを関
連付けることもできます。詳細については、「Elastic Network Interface(ENI) (p. 626)」を参照して
ください。自動化されたソリューションとして Auto Scaling を使用できます。詳細については、Auto
Scaling 開発者ガイド を参照してください。
• 障害が発生した場合にインスタンスと Amazon EBS ボリュームを復元するプロセスを定期的にテス
トします。
36
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux への LAMP ウェブサーバー
のインストール
Linux を実行する Amazon EC2 イン
スタンスのチュートリアル
Abstract
Linux を実行する Amazon EC2 インスタンスのチュートリアルです。
次のチュートリアルでは、Linux を実行する EC2 インスタンスを使用して一般的なタスクを実行する
方法を示します。
チュートリアル
• チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール (p. 37)
• チュートリアル: Amazon Linux を使った WordPress ブログのホスティング (p. 46)
• チュートリアル: Amazon Linux で SSL/TLS を使用できるように Apache ウェブサーバーを設定す
る (p. 56)
• チュートリアル: Amazon EC2 のアプリケーションの可用性の向上 (p. 64)
チュートリアル: Amazon Linux への LAMP ウェブ
サーバーのインストール
Abstract
チュートリアル – Apache ウェブサーバーを PHP と MySQL のサポートとともに Amazon EC2 インスタンスにイ
ンストールします。
次の手順では、Apache ウェブサーバーを PHP と MySQL のサポートとともに Amazon Linux インスタ
ンスにインストールします(LAMP ウェブサーバーまたは LAMP スタックとも呼ばれます)。このサー
バーを使用して静的ウェブサイトをホストしたり、データベースとの情報の読み取りと書き込みを行う
動的な PHP アプリケーションをデプロイしたりできます。
前提条件
このチュートリアルでは、インターネットからアクセス可能なパブリック DNS 名を持つインスタンス
を既に起動したことを前提にしています。詳細については、「ステップ 1: インスタンスを起動す
37
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux への LAMP ウェブサーバー
のインストール
る (p. 31)」を参照してください。また、セキュリティグループを設定して、SSH(ポート 22)、HTTP
(ポート 80)、HTTPS(ポート 443)接続を有効にしている必要もあります。前提条件の詳細につい
ては、Amazon EC2 でのセットアップ (p. 22) を参照してください。
Important
これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション
の詳細については、各ドキュメントを参照してください。Ubuntu インスタンスでの LAMP ウェ
ブサーバーのセットアップは、このチュートリアルの範囲外です。 Ubuntu の LAMP ウェブ
サーバーについては、Ubuntu コミュニティのドキュメントの ApacheMySQLPHP トピックを
参照してください。
Amazon Linux に LAMP ウェブサーバーをインストールして起動するには
1.
2.
インスタンスに接続します (p. 33)。
すべてのソフトウェアパッケージが最新の状態であることを確認するため、インスタンスでソフト
ウェアの更新を実行します。この処理には数分かかりますが、最新の更新とバグ修正を確実に適用
することが重要です。
Note
-y オプションを指定すると、確認メッセージを表示せずに更新をインストールできます。
インストール前に更新を検査する場合は、このオプションを省略できます。
[ec2-user ~]$ sudo yum update -y
3.
これでインスタンスが最新状態になったので、Apache ウェブサーバー、MySQL、PHP ソフトウェ
アパッケージをインストールできます。yum install コマンドを使用すると、複数のソフトウェア
パッケージと関連するすべての依存関係を同時にインストールできます。
[ec2-user ~]$ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd
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 です(これらの値である必要があります)。
38
6.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux への LAMP ウェブサーバー
のインストール
ウェブサーバーをテストします。ウェブブラウザで、インスタンスのパブリック DNS アドレス
(またはパブリック IP アドレス)を入力すると、Apache テストページが表示されます。Amazon
EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます([Public DNS] 列を
チェックします。列が非表示の場合は、[Show/Hide] アイコンをクリックして、[Public DNS] を選
択します)。
Tip
Apache テストページが表示されない場合、使用しているセキュリティグループに、HTTP
(ポート 80)トラフィックを許可するルールが含まれていることを確認します。HTTP
ルールをセキュリティグループに追加する方法については、セキュリティグループへの
ルールの追加 (p. 520) を参照してください。
Important
Amazon Linux を使用していない場合は、それらの接続を許可するようにインスタンスの
ファイアウォールを設定する必要があるかもしれません。ファイアウォールの設定方法の
詳細については、ディストリビューション用のドキュメントを参照してください。
Note
このテストページが表示されるのは、/var/www/html にコンテンツがない場合のみです。
ドキュメントルートにコンテンツを追加すると、コンテンツはこのテストページではな
く、インスタンスのパブリック DNS アドレスに表示されます。
Apache httpd は、Apache ドキュメントルートと呼ばれるディレクトリに維持されるファイルを提供し
ます。Amazon Linux Apache ドキュメントルートは /var/www/html であり、デフォルトでは root
によって所有されます。
[ec2-user ~]$ ls -l /var/www
total 16
39
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux への LAMP ウェブサーバー
のインストール
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
2
3
2
3
root
root
root
root
root
root
root
root
4096
4096
4096
4096
Jul 12 01:00 cgi-bin
Aug 7 00:02 error
Jan 6 2012 html
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 {} \;
40
6.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux への LAMP ウェブサーバー
のインストール
/var/www およびそのサブディレクトリのファイル許可を繰り返し変更してグループの書き込み許
可を追加します。
[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;
ここで、ec2_user(および www グループの将来のメンバー)は、Apache ドキュメントルートでファ
イルを追加、削除、編集できるようになります。これで、静的なウェブサイトや PHP アプリケーショ
ンなどのコンテンツを追加できます。
LAMP ウェブサーバーをテストするには
サーバーがインストールおよび実行されており、ファイルの許可が正しく設定されている場合、ec2-user
アカウントはインターネットから使用できる /var/www/html ディレクトリにシンプルな PHP ファイ
ルを作成できます。
1.
Apache ドキュメントルートでシンプルな PHP ファイルを作成します。
[ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
Tip
このコマンドを実行しようとしたときに「Permission denied」というエラーが表示さ
れた場合は、ログアウトし、再度ログインして、ファイルの許可を設定するには (p. 40)
で設定した正しいグループ許可を取得します。
2.
ウェブブラウザで、作成したファイルの URL を入力します。この URL は、インスタンスのパブ
リック DNS アドレスにスラッシュとファイル名を追加したものです。例:
http://my.public.dns.amazonaws.com/phpinfo.php
PHP 情報ページが表示されます。
Note
このページが表示されない場合は、前のステップで /var/www/html/phpinfo.php ファ
イルが正しく作成されたことを確認します。必要なすべてのパッケージが、次のコマンド
でインストールされたことも確認できます (2 番目の列のパッケージのバージョンが、この
出力例に一致する必要はありません)。
41
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux への LAMP ウェブサーバー
のインストール
[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
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.
[
mysql_secure_installation を実行します。
[ec2-user ~]$ sudo mysql_secure_installation
a.
プロンプトが表示されたら、root アカウントのパスワードを入力します。
42
OK
]
i.
ii.
3.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux への LAMP ウェブサーバー
のインストール
現在の root パスワードを入力します。デフォルトでは、root アカウントにはパスワー
ドが設定されていないので、Enter を押します。
「Y」と入力してパスワードを設定し、安全なパスワードを 2 回入力します。安全なパス
ワードの作成の詳細については、http://www.pctools.com/guides/password/ を参照してく
ださい。このパスワードは必ず安全な場所に保管します。
b.
「Y」と入力して匿名ユーザーアカウントを削除します。
c.
「Y」と入力して root ログインを無効にします。
d.
e.
「Y」と入力してテストデータベースを削除します。
「Y」と入力して権限テーブルを再ロードし、変更を保存します。
(オプション)すぐに使用する予定がない場合は、MySQL サーバーを停止します。再び必要になっ
たときに、サーバーを再起動できます。
[ec2-user ~]$ sudo service mysqld stop
Stopping mysqld:
4.
[
OK
]
(オプション)ブート時に必ず MySQL サーバーを起動させる場合は、次のコマンドを入力しま
す。
[ec2-user ~]$ sudo chkconfig mysqld on
これで、完全に機能する LAMP ウェブサーバーを設定しました。/var/www/html の Apache ドキュメ
ントルートにコンテンツを追加する場合、そのコンテンツはインスタンスのパブリック DNS アドレス
で表示できます。
(オプション) phpMyAdmin のインストール
phpMyAdmin は、EC2 インスタンスで MySQL データベースを表示して編集するために使用できる、
ウェブベースのデータベース管理ツールです。Amazon Linux インスタンスで phpMyAdmin をインス
トールして設定には、以下の手順に従ってください。
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
にはウェブブラウザが含まれないため、これはあまり有益ではありません。
43
a.
b.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux への LAMP ウェブサーバー
のインストール
whatismyip.com のようなサービスを参照して、ローカル IP アドレスを見つけます。
/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/ht
tpd/conf.d/phpMyAdmin.conf
4.
Apache ウェブサーバーを再起動して、新しい設定を有効にします。
[ec2-user ~]$ sudo service httpd restart
Stopping httpd:
Starting httpd:
5.
[
[
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 インスタンス用ユー
ザーガイド
チュートリアル: WordPress ブログのホスティング
[ec2-user ~]$ sudo tail -n 1 /var/log/httpd/access_log | awk '{ print
$1 }'
205.251.233.48
ここで返された IP アドレスで Step 3.b (p. 44) を繰り返し、Step 4 (p. 44) で httpd サー
ビスを再起動します。
6.
前に作成した root ユーザー名と MySQL のルートパスワードを使って、phpMyAdmin インストー
ルにログインします。phpMyAdmin の詳細と使用のヘルプについては、「phpMyAdmin ユーザー
ガイド」を参照してください。
関連トピック
インスタンスへのファイルの転送、またはウェブサーバーへの WordPress ブログのインストールの詳
細については、次のトピックを参照してください。
• WinSCP を使用した Linux インスタンスへのファイルの転送 (p. 275)
• SCP を使用した Linux から Linux インスタンスへのファイルの転送 (p. 268)
• チュートリアル: 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
ブログのホスティング
Abstract
チュートリアル – Amazon Linux インスタンスでの WordPress ブログのインストール、構成、およびセキュリティ
の確保。
次の手順では、お客様の Amazon Linux インスタンスで、WordPress ブログのインストール、構成を実
行し、安全性を確立します。
Important
これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション
の詳細については、各ドキュメントを参照してください。このチュートリアルの多くの手順
は、Ubuntu インスタンスには使用できません。Ubuntu インスタンスでの WordPress のイン
ストールについては、Ubuntu のドキュメントで「WordPress」を参照してください。
46
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
前提条件
このチュートリアルでは、「チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストー
ル (p. 37)」のすべての手順に従って、PHP と MySQL をサポートする機能的なウェブサーバーを含む
Amazon Linux インスタンスを起動したことを前提としています。このチュートリアルでは、セキュリ
ティグループで HTTP および HTTPS トラフィックを許可するように設定する手順や、ウェブサーバー
用にファイルアクセス許可が正しく設定されていることを確認する手順も示します。まだそうしていな
い場合は、「チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール (p. 37)」を参
照してこれらの前提条件を満たした後、このチュートリアルに戻って WordPress をインストールしま
す。セキュリティグループへのルール追加の詳細については、セキュリティグループへのルールの追
加 (p. 520) を参照してください。
Elastic IP アドレス (EIP) は、WordPress ブログのホストに使用しているインスタンスに関連付けるこ
とを強くお勧めします。これにより、インスタンスのパブリック DNS アドレスが変更されて、インス
トールが破損することを防止できます。ドメイン名を所有していてそのドメインをブログに使用する場
合、EIP アドレスをポイントするようにドメイン名の DNS レコードを更新できます(これを行うには、
ドメイン名レジストラに問い合わせてください)。実行中のインスタンスに関連付けられた EIP アド
レスを無料で 1 つ取得できます。詳細については、「Elastic IP アドレス (p. 619)」を参照してくださ
い。
ブログのドメイン名がまだない場合は、Amazon Route 53 にドメイン名を登録し、インスタンスの EIP
アドレスをドメイン名に関連付けることができます。詳細については、Amazon Route 53 開発者ガイ
ドの「Amazon Route 53 を使用したドメイン名の登録」を参照してください。
WordPress のインストール
このチュートリアルは、WordPress ブログをホストするウェブサーバーを完全に制御する(これは従
来のホスティングサービスでは一般的なことではありません)という点で、Amazon EC2 を使用する
ための優れた手引きになります。もちろんこれは、サーバーに対するソフトウェアパッケージの更新
と、セキュリティパッチの維持は、お客様の責任であることも意味します。ウェブサーバー構成との直
接的な対話操作を必要としない、より自動化された WordPress をインストールする場合、AWS
CloudFormation サービスは、迅速に始められる WordPress テンプレートを提供します。詳細について
は、AWS CloudFormation ユーザーガイド の「ご利用開始にあたって」を参照してください。Windows
インスタンスで WordPress ブログをホスティングする場合は、Microsoft 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
20.1MB/s
in 0.2s
2013-08-09 17:19:02 (20.1 MB/s) - latest.tar.gz saved [4028740/4028740]
2.
インストールパッケージを解凍します。インストールフォルダは、wordpress という名前のフォ
ルダに解凍されます。
47
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
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 "wordpress-user"@"local
host";
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');
49
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
WordPress のインストール
c.
DB_PASSWORD を定義する行を探して、password_here を WordPress インストール用に
MySQL ユーザーとデータベースを作成するには (p. 48) の Step 3 (p. 48) で作成した強力なパ
スワードに変更します。
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_wp-config.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.AV0pCK
ZZB,*~*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 だけを実行します。
50
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
WordPress のインストール
Important
以下の両方のコマンドセットを実行する場合、2 番目の mv コマンドでエラーメッセージ
が表示されます。これは、移動しようとしたファイルが存在していないことを意味しま
す。
•
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 Mul
tiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
51
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
WordPress のインストール
#
# The Options directive is both complicated and important.
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
Please see
#
# 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. 37)で作成した 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
52
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
WordPress のインストール
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 ウェブサーバーを再起動して、新しいグループと許可を有効にします。
[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 インストール画面が表示されるはずで
す。
53
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
次のステップ
http://my.public.dns.amazonaws.com
5.
6.
残りのインストール情報を WordPress インストールウィザードに入力します。
フィールド
値
[Site Title]
WordPress サイトの名前を入力します。
[Username]
WordPress 管理者の名前を入力します。セキュ
リティ上の理由から、このユーザーには一意の
名前を選択します。これにより、デフォルトの
ユーザー名である admin よりも悪用される可
能性が低くなるためです。
パスワード
強力なパスワードを入力し、確認のために再入
力します。既存のパスワードを再利用しないで
ください。また、このパスワードは必ず安全な
場所に保管してください。
[Your E-mail]
通知に使用する E メールアドレスを入力しま
す。
[Install WordPress] をクリックして、インストールを完了します。
これで、WordPress ブログにログインして、エントリの投稿を開始することができます。
次のステップ
最初の WordPress ブログをテストした後、構成を更新するかどうかを検討します。
54
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ヘルプ! パブリック DNS 名が変更されたため、ブログが壊
れました
カスタムドメイン名を使用する
EC2 インスタンスの EIP アドレスに関連付けられたドメイン名がある場合、EC2 パブリック DNS ア
ドレスの代わりにその名前を使用するようにブログを設定できます。詳細については、http://
codex.wordpress.org/Changing_The_Site_URL を参照してください。
ブログの構成
読者にパーソナライズされた体験を提供するため、さまざまなテーマやプラグインを使用するようにブ
ログを設定できます。ただし、インストールプロセスで問題が発生してブログ全体が失われることがあ
ります。インストール中に問題が発生した場合もブログを復元できるように、テーマやプラグインを員
ストーする前にインスタンスのバックアップ Amazon マシンイメージ (AMI) を作成しておくことを強
くお勧めします。詳細については、「独自の AMI の作成 (p. 70)」を参照してください。
容量の拡大
WordPress ブログが人気になり処理能力やストレージを増やす必要がある場合は、次のステップを検
討してください。
• インスタンスのストレージ領域を拡張する。詳細については、「Linux で EBS ボリュームのストレー
ジ領域を拡張する (p. 694)」を参照してください。
• MySQL データベースを Amazon RDS に移動して、サービスが持つ自動的にスケールする機能を活
用する。
• より大きなインスタンスタイプに移行する。詳細については、「インスタンスのサイズ変更 (p. 161)」
を参照してください。
• 追加インスタンスを追加する。詳細については、「チュートリアル: Amazon EC2 のアプリケーショ
ンの可用性の向上 (p. 64)」を参照してください。
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.
SSH を使って EC2 インスタンスに接続します。
2.
インスタンスの古いサイト URL と新しいサイト URL を書き留めます。古いサイト URL は、
WordPress をインストールした時点での EC2 インスタンスのパブリック DNS 名と考えられます。
55
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: Amazon Linux で SSL/TLS を使用できる
ように Apache ウェブサーバーを設定する
新しいサイト URL は、EC2 インスタンスの現在のパブリック DNS 名です。古いサイト URL が不
明な場合、次のコマンドで curl を使用して調べることができます。
[ec2-user ~]$ curl localhost | grep wp-content
古いパブリック DNS 名への参照が出力に表示されます。次に例を示します(古いサイト URL は
赤色になっています)。
<script type='text/javascript' src='http://ec2-52-8-139-223.us-west-1.com
pute.amazonaws.com/wp-content/themes/twentyfifteen/js/func
tions.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 ウェブサーバーを設定する
Abstract
Amazon Linux と Apache ウェブサーバーを実行している単一の EC2 インスタンスで SSL/TLS をインストールし
て設定します。
Secure Sockets Layer/Transport Layer Security (SSL/TLS) は、ウェブサーバーとウェブクライアント
の間に、転送中のデータが傍受されないように保護する、暗号化されたチャネルを確立します。この
チュートリアルでは、Apache ウェブサーバーを実行している単一の Amazon Linux インスタンスに、
SSL/TLS のサポートを追加する方法を説明します。
Note
歴史的経緯から、ウェブの暗号化は、単純に SSL と呼ばれることが少なくありません。ウェブ
ブラウザでは今でも SSL がサポートされていますが、後継プロトコルである TLS プロトコル
の方が攻撃を受けにくいと考えられています。Amazon Linux ではデフォルトで SSL バージョ
ン 2 が無効になり、このチュートリアルでは次に示すように SSL バージョン 3 も無効にする
ことをお勧めします。推奨されている最新の暗号化標準については、RFC7568 を参照してく
ださい。
56
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
Important
これらの手順は Amazon Linux で使用するためのものです。他のディストリビューションのイ
ンスタンスでの LAMP ウェブサーバーのセットアップは、このチュートリアルの範囲外です。
Ubuntu の LAMP ウェブサーバーについては、Ubuntu コミュニティのドキュメントの
ApacheMySQLPHP トピックを参照してください。Red Hat Enterprise Linux については、
Customer Portal でウェブサーバーに関するトピックを参照してください。
トピック
• 前提条件 (p. 57)
• ステップ 1: サーバーでの SSL/TLS の有効化 (p. 57)
• ステップ 2: CA 署名証明書の取得 (p. 59)
• ステップ 3: セキュリティ設定のテストと強化 (p. 62)
前提条件
このチュートリアルを開始する前に、次のステップを完了してください。
• Amazon Linux インスタンスを起動します。詳細については、「ステップ 1: インスタンスを起動す
る (p. 31)」を参照してください。
• SSH (ポート 22)、HTTP (ポート 80)、HTTPS (ポート 443) の接続を許可するように、セキュリティグ
ループを設定します。詳細については、「Amazon EC2 でのセットアップ (p. 22)」を参照してくだ
さい。
• Apache ウェブサーバーをインストールします。手順については、チュートリアル: Amazon Linux へ
の LAMP ウェブサーバーのインストール (p. 37)」を参照してください。必要なのは 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. 33)し、Apache が実行されていることを確認します。
[ec2-user ~]$ sudo service httpd status
必要であれば、Apache を起動します。
[ec2-user ~]$ sudo service httpd start
2.
すべてのソフトウェアパッケージが最新の状態であることを確認するため、インスタンスでソフト
ウェアの更新を実行します。この処理には数分かかりますが、最新の更新とバグ修正を確実に適用
することが重要です。
57
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 1: サーバーでの SSL/TLS の有効化
Note
-y オプションを指定すると、確認メッセージを表示せずに更新をインストールできます。
インストール前に更新を検査する場合は、このオプションを省略できます。
[ec2-user ~]$ sudo yum update -y
3.
インスタンスが最新状態になったため、Apache のモジュールである mod_ssl をインストールする
ことで 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 が正しくセットアップされているかどうかをテストする場合に役立ちま
す。
4.
Apache を再起動します。
[ec2-user ~]$ sudo service httpd restart
5.
Apache ウェブサーバーではポート 443 経由で HTTPS (セキュア HTTP) がサポートされるように
なっています。これをテストするには、ブラウザの URL バーに、https:// というプレフィック
スを指定して、EC2 インスタンスの IP アドレスまたは完全修飾ドメイン名を入力します。信頼さ
れていない自己署名証明書を使用してサイトに接続しようとしているため、ブラウザには一連の警
告が表示されることがあります。
これらをオーバーライドし、サイトに進みます。サーバーで SSL/TLS を正しく設定できていれば、
Apache のデフォルトのウェルカムページが開きます。これで、ブラウザとサーバーの間で行き来
するデータはすべて、安全に暗号化されるようになりました。このことは、ブラウザの URL バー
のロックアイコンで示されます。
サイト訪問者に対して警告画面が表示されないようにするには、暗号化だけではなく、サイト所有
者のパブリック認証を行うための証明書を取得する必要があります。
58
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 2: CA 署名証明書の取得
ステップ 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. 33)して、/etc/pki/tls/private/ に移動します。これは、サーバーの SSL/TLS
用プライベートキーが格納されているディレクトリです。既存のホストキーを使用して CSR を生
成する場合は、ステップ 3 に進んでください。
(オプション) 新しいプライベートキーを生成します。開始点として、デフォルトのホストキーに似
たキーを作成するコマンドは次のとおりです。
[ec2-user ~]$ sudo openssl genrsa -out custom.key 2048
結果として生成されるファイル custom.key が、2048 ビットの RSA プライベートキーです。こ
れより大きなモジュラスサイズとパスワード保護を使用して、より強力なキーを作成するには、次
のコマンドを使用します。
[ec2-user ~]$ sudo openssl genrsa -aes128 -passout pass:abcde12345 -out
custom.key 4096
結果として、AES 128 ビット暗号化方式で暗号化された 4096 ビットの RSA プライベートキーが
生成されます。暗号化を使用するとセキュリティを強化できますが、暗号化キーにはパスワードが
必要であるため、暗号化に依存するサービスを自動的に開始することはできません。このキーを使
用するたびに、SSH 接続で "abcde12345" というパスワードを指定する必要があります。
RSA 暗号化は、桁数が大きい 2 つの素数の積を因数分解する困難さを安全性の根拠としているた
め、比較的低速になる場合があります。ただし、非 RSA 暗号化方式を使用する SSL/TLS 用のキー
を作成することも可能です。同等レベルのセキュリティを提供する場合は、楕円曲線の計算に基づ
いたキーの方が小さく高速です。例を示します。
[ec2-user ~]$ sudo openssl ecparam -name prime256v1 -out custom.key -genkey
59
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 2: CA 署名証明書の取得
この場合の出力は、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
3.
適切なキーを作成し、設定できたら、CSR を作成できます。
好みのキーを使用して CSR を作成します。次の例では、private.key を使用しています。
[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
ウェブアドレスと正確に一致します。通常、これはプレ
フィックス付きのホスト名またはエイリアスによるドメ
イン名 (www.example.com の形式) を意味します。自己
署名証明書を使用し、DNS 解決なしでテストを行う場
合、共通名の構成要素はホスト名のみになる場合があり
ます。CA では、*.example.com などのワイルドカー
ド名を許容する、よりコストの高い証明書も用意されて
います。
E メールアドレ サーバー管理者の E メールアドレス.
ス
60
[email protected]
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 2: CA 署名証明書の取得
最後に、OpenSSL により、オプションのチャレンジパスワードが求められます。このパスワード
は CSR と、ユーザーと CA の間のトランザクションのみに適用されるため、このフィールドと、
もう 1 つのオプションフィールドである、オプションの会社名については、CA の推奨事項に従っ
てください。CSR のチャレンジパスワードは、サーバー操作には影響しません。
4.
5.
結果として生成されるファイル csr.pem には、パブリックキー、パブリックキーのデジタル署
名、入札したメタデータが含まれています。
CA に CSR を送信します。この作業は通常、テキストエディタで CSR ファイルを開く動作と、内
容をウェブフォームにコピーする動作で構成されています。このとき、証明書に適用する 1 つ以上
のサブジェクト代替名 (SAN) を指定するように求められることがあります。共通名が
www.example.com の場合、有効な SAN は example.com になります (逆も同様です)。ユーザー
が、リストにあるいずれかの名前を入力すると、エラーなしの接続が提示されます。CA のウェブ
フォームで許可される場合は、SAN のリストに共通名を含めます (一部の CA では自動的に含めら
れます)。
リクエストが承認されると、CA によって署名された新しいホスト証明書が届きます。CA の信頼
チェーンを完成するために必要な、追加の証明書が含まれている中間証明書ファイルをダウンロー
ドするよう指示されることもあります。
元の自己署名ホスト証明書 (localhost.crt) を /etc/pki/tls/certs ディレクトリから削除し、新し
い CA 署名証明書を (すべての中間証明書と共に) そのディレクトリに置きます。
/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 の
SSLCertificateChainFile ディレクティブを使用して、このファイルのパスとファイル名を指定しま
す。
61
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 3: セキュリティ設定のテストと強化
SSLCertificateChainFile /etc/pki/tls/certs/intermediate.crt
7.
/etc/httpd/conf.d/ssl.conf を保存して、Apache を再起動します。
[ec2-user ~]$ sudo service httpd restart
ステップ 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
62
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ステップ 3: セキュリティ設定のテストと強化
SSL バージョン 2 の明示的な無効化に加えて、このコマンドを実行すると SSL バージョン 3 (セキュ
リティ監査で示されたもの) も無効化され、現在存在するすべてのバージョンの TLS が明示的に許可
されます。これによりサーバーでは、TLS 以外を使用した、クライアントとの暗号化された接続の受
け入れが拒否されます。ディレクティブに含める指定が多くなるほど、サーバーの動作に対する設定
内容が明確にわかりやすくなります。
• RC4 暗号化方式のサポート: 暗号化方式は、暗号化アルゴリズムの計算の中核です。SSL/TLS データ
ストリームの暗号化に使用される高速の暗号化方式である RC4 は、いくつかの重大な脆弱性を持つ
ことで知られています。対処方法は、ssl.conf で RC4 のサポートを無効にすることです。これは、
次回の修正に含められます。
• 前方秘匿性のサポートの欠落: 前方秘匿性とは、プライベートキーから派生した一時 (エフェメラル)
セッションキーを使用して暗号化を行う、プロトコルの機能です。これは、攻撃者がウェブサーバー
の長期的なプライベートキーを所有していても、HTTPS データを復号できないことを意味します。
Qualys の "リファレンスブラウザ" リストにあるウェブブラウザはすべて、前方秘匿性をサポートし
ています。
RC4 と前方秘匿性の両方の問題に対処するには、Apache で許可および禁止されている暗号化方式の
リストをカスタマイズし、弱い暗号化方式に対する強力な暗号化方式の優先を適用することです。こ
れは 2 つの設定の変更が必要です。
設定ファイル /etc/httpd/conf.d/ssl.conf で、SSLCipherSuite の設定に関してコメントアウトされた
例のあるセクションを見つけ、現在のリストを (削除はせずに) コメントアウトし、次のディレクティ
ブを追加します。
Note
ここでは読みやすくするために数行に示していますが、ディレクティブは全体を 1 行にする
必要があります。暗号化方式名はスペースで区切りません。
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHERSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128SHA256:ECDHE-ECDSA-AES128-SHA256:
AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256SHA256: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 は現在、リストの最後に近い位置にあり、
禁止された暗号化方式に含まれています。
デフォルトや、内容が見えない簡単なディレクティブに依存するのではなく、暗号化方式の明示的な
リストを使用することをお勧めします。
63
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
チュートリアル: アプリケーションの可用性の向上
Important
ここに示されている暗号化方式リストは、多数考えられるリストの 1 つに過ぎません。たと
えば、前方秘匿性よりスピードを重視したリストが必要になることもあります。
古いクライアントをサポートする必要性が予測される場合は、DES-CBC3-SHA 暗号化スイー
トを許可することができます。
最後に、OpenSSL の更新ごとに、新しい暗号化方式が導入され古い暗号化方式が廃止され
ます。EC2 の Amazon Linux インスタンスを最新の状態に維持し、セキュリティに関する
OpenSSL からの告知に注意して、技術分野の報道でセキュリティ面の新しい脆弱性に関す
るレポートを警戒してください。詳細については、Elastic Load Balancing 開発者ガイド の
「Elastic Load Balancing での事前定義された SSL のセキュリティポリシー」を参照してく
ださい。
次の行について、"#" を削除してコメント解除します。
#SSLHonorCipherOrder on
このコマンドは、(この場合) 前方秘匿性をサポートするものも含めて、ランクの高い暗号化方式を優
先するようサーバーに強制します。このディレクティブが有効になると、サーバーは、セキュリティ
の弱い暗号化方式に戻る前に、セキュリティが強力な接続を確立しようとします。
編集した設定ファイルを保存した後、Apache を再起動します。
Qualys SSL Labs でドメインをもう一度テストすると、脆弱性が解決し次のようなレポートが出力され
ます。
総合評価
A
証明書
100%
プロトコルサポート
95%
キー交換
90%
暗号強度
90%
チュートリアル: Amazon EC2 のアプリケーション
の可用性の向上
Abstract
Amazon EC2 のアプリケーションの可用性を向上させるために Auto Scaling および Elastic Load Balancing を使用
する方法を説明します。
単一の EC2 インスタンスで開始したアプリやウェブサイトが、時間が立つにつれてトラフィックが増
加し、需要を満たすために複数のインスタンスが必要な時点まで来ているとします。AMI から複数の
EC2 インスタンスを起動し、Elastic Load Balancing を使用してアプリケーションの受信トラフィック
をこれらの EC2 インスタンスに分配できます。これにより、アプリケーションの可用性が向上します。
複数のアベイラビリティーゾーンにインスタンスを置くことで、アプリケーションの耐障害性も向上し
ます。片方のアベイラビリティーゾーンが停止すると、トラフィックがもう片方のアベイラビリティー
ゾーンにルーティングされます。
64
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
Auto Scaling を使用して、アプリケーション用に実行するインスタンスを常に最小数に維持できます。
Auto Scaling はインスタンスやアプリケーションの不具合を検出し、自動的に置き換えて、アプリケー
ションの可用性を維持します。また、Auto Scaling を使用して、必要に応じて指定した条件に従って
Amazon EC2 の容量を自動的にスケールできます。
このチュートリアルでは、Auto Scaling で Elastic Load Balancing を使用して、ロードバランサーの背
後の正常な EC2 インスタンスの指定数を確実に維持します。トラフィックはロードバランサーにアク
セスし、その後インスタンスにルーティングされるので、これらのインスタンスにパブリック IP アド
レスが必要ないことに注目してください。詳細については、「Auto Scaling」および「Elastic Load
Balancing」を参照してください。
目次
• 前提条件 (p. 65)
• アプリケーションのスケーリングと負荷分散 (p. 66)
• ロードバランサーをテストする (p. 67)
前提条件
このチュートリアルでは、以下を実行済みであることを前提としています。
1.
デフォルトの仮想プライベートクラウド (VPC) がない場合は、複数のアベイラビリティーゾーン
に 1 つのパブリックサブネットを持つ VPC を作成します。詳細については、「Virtual Private Cloud
(VPC)の作成 (p. 26)」を参照してください。
2.
3.
VPC でインスタンスを起動します。
インスタンスに接続し、それをカスタマイズします。たとえば、ソフトウェアとアプリケーション
をインストールしたり、データをコピーしたり、追加の EBS ボリュームをアタッチしたりできま
す。インスタンスでのウェブサーバーの設定については、「チュートリアル: Amazon Linux への
LAMP ウェブサーバーのインストール (p. 37)」を参照してください。
4.
インスタンスが正しく設定されたことを確認するために、インスタンスでアプリケーションをテス
トします。
インスタンスからカスタム Amazon Machine Image (AMI) を作成します。詳細については「Amazon
EBS-Backed Linux AMI の作成 (p. 93)」または「Instance Store-Backed Linux AMI の作成 (p. 97)」
を参照してください。
(オプション) 必要がなくなった場合、インスタンスを終了します。
5.
6.
7.
アプリケーションに必要な AWS へのアクセスを付与する IAM ロールを作成します。詳細につい
ては、「コンソールを使用して IAM ロールを作成する (p. 573)」を参照してください。
65
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
アプリケーションのスケーリングと負荷分散
アプリケーションのスケーリングと負荷分散
以下の手順を使用して、ロードバランサーの作成、インスタンスの起動設定の作成、複数のインスタン
スを持つ Auto Scaling グループの作成、Auto Scaling グループへのロードバランサーの関連付けを行い
ます。
アプリケーションのスケーリングと負荷分散を行うには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインの [LOAD BALANCING] で [ Load Balancers] をクリックします。
[Create Load Balancer] をクリックします。
4.
[Define Load Balancer] ページで、以下を実行します。
a.
[Load Balancer name] に、ロードバランサーの名前を入力します。たとえば「my-lb」です。
b.
[Create LB Inside] で VPC を選択します。
c.
d.
HTTP リスナーである [Listener Configuration] はデフォルトのままにします。
デフォルト以外の VPC を選択すると、[Select Subnets] でサブネットを選択するよう求めら
れます。2 つのパブリックサブネットそれぞれの [Action] 列のアイコンをクリックします。
[Next: Assign Security Groups] をクリックします。
e.
5.
[Assign Security Groups] ページで、以下を指定します。
a.
b.
c.
6.
7.
8.
9.
[Create a new security group] をクリックします。
セキュリティグループの名前と説明を入力します。この新しいセキュリティグループには、
HTTP リスナーのポートへのトラフィックを許可するルールが含まれます。
[Next: Configure Security Settings] をクリックします。
HTTPS ロードバランサーは作成しないため、[Configure Security Settings] ページで、[Next: Configure
Health Check] をクリックして次のページに進みます。
[Configure Health Check] ページで、以下を実行します。
a.
b.
[Ping Protocol] と [Ping Port] はデフォルト値のままにしておきます。
[Ping Path] を「/」に設定します。これは、クエリをデフォルトページに送信します。デフォ
ルトページの名前は index.html かどうかを問いません。
c.
[Next: Add EC2 Instances] をクリックします。
Auto Scaling を使用して EC2 インスタンスをロードバランサーに追加するため、[Add EC2 Instances]
ページで、[Next: Add Tags] をクリックして次のページに進みます。
[Add Tags] ページで、必要なタグを追加し、[Review and Create] をクリックします。
10. [Review] ページで、設定を確認して [Create] をクリックします。ロードバランサーが作成された
ら、[Close] をクリックします。
11. ナビゲーションペインの [AUTO SCALING] で、[Launch Configurations] をクリックします。
•
Auto Scaling を初めて使用する場合は、ウェルカムページを参照してください。[Create Auto
Scaling group] をクリックして Create Auto Scaling Group ウィザードを起動してから、[Create
launch configuration] をクリックします。
•
その他の場合は、[Create launch configuration] をクリックします。
12. [Choose AMI] ページで、[My AMIs] タブを選択し、「前提条件 (p. 65)」で作成した AMI を選択し
ます。
13. [Choose Type] ページで、インスタンスタイプを選択し、[Next: Configure details] をクリックしま
す。
66
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ロードバランサーをテストする
14. [Configure details] ページで、以下を実行します。
a.
[Name] に起動設定の名前を入力します (例: my-launch-config)。
b.
[IAM role] で、「前提条件 (p. 65)」で作成した IAM ロールを選択します。
c.
(オプション) 起動スクリプトを実行する必要がある場合は、[Advanced Details] を展開して
[User data] にスクリプトを入力します。
[Skip to review] をクリックします。
d.
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.
Auto Scaling グループの名前を入力します。たとえば「my-asg」です。
b.
[Group size] で、テキストボックスにインスタンス数を入力します (例: 2)。各アベイラビリ
ティーゾーンのインスタンスをおよそ同数にすることが推奨されていることに注意してくださ
い。
[Network] から使用する VPC を選択し、[Subnet] から 2 つのパブリックサブネットを選択し
ます。
[Advanced Details] を展開します。[Receive traffic from Elastic Load Balancer(s)] を選択しま
す。テキストフィールドからロードバランサーを選択します。
[Next: Configure scaling policies] をクリックします。
c.
d.
e.
20. 単純に Auto Scaling にグループを指定したサイズに維持させるので、[Configure scaling policies]
ページで、[Review] をクリックします。後からこの Auto Scaling グループを手動でスケールした
り、グループをスケジュールでスケールするように構成したり、オンデマンドでグループをスケー
ルするように構成したりできることに注目してください。
21. [Review] ページで、[Create Auto Scaling group] をクリックします。
22. グループが作成されたら、[Close] をクリックします。
ロードバランサーをテストする
最初に、Auto Scaling がインスタンスを起動し、準備ができていることを確認します。[Auto Scaling
Groups] ページから Auto Scaling グループを選択して、[Instances] タブを選択します。
67
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ロードバランサーをテストする
当初、インスタンスの状態は Pending です。状態が InService になると、使用する準備が整ってい
ます。
次に、インスタンスがロードバランサーに登録されていて、ロードバランサーからのトラフィックを受
信する準備ができていることを確認します。[Load Balancers] ページからロードバランサーを選択し
て、[Instances] タブを選択します。
インスタンスの状態が OutOfService である場合は、まだ登録中の可能性があります。状態が
InService になると、使用する準備が整っています。インスタンスの準備が整ったら、次のようにし
てロードバランサーをテストできます。
ロードバランサーをテストするには
1.
2.
[Load Balancers] ページからロードバランサーを選択します。
[Description] タブで、DNS 名を見つけます。この名前は次の形式です。
my-lb-xxxxxxxxxx.us-west-2.elb.amazonaws.com
3.
ウェブブラウザで、ロードバランサーの DNS 名をアドレスバーに貼り付けて、Enter キーを押し
ます。ウェブサイトが表示されることを確認します。
動画については、AWS Instructional Videos and Labs を参照してください。
68
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI の使用
Amazon マシンイメージ(AMI)
Abstract
AMI はインスタンスのソフトウェア設定を提供します。
Amazon マシンイメージ(AMI)は、クラウドの仮想サーバーであるインスタンスの起動に必要な情報
を提供します。インスタンスを起動するときに AMI を指定します。AMI からは、必要な数のインスタ
ンスを起動できます。必要に応じて、異なる種類の AMI からインスタンスを起動することもできます。
AMI には次が含まれています。
• インスタンスのルートボリュームのテンプレート(オペレーティングシステム、アプリケーション
サーバー、アプリケーションなど)
• 起動許可(AMI を使用してインスタンスを起動する権限を特定の AWS アカウントに与える)
• インスタンスの起動時にインスタンスにアタッチするボリュームを指定するブロックデバイスマッピ
ング
AMI の使用
次の図は AMI のライフサイクルをまとめたものです。AMI を作成し、登録したら、それを使用して新
しいインスタンスを起動できます(AMI 所有者から起動許可を与えられた場合、AMI からインスタンス
を起動することもできます)。AMI は同じリージョンにコピーすることも、異なるリージョンにコピー
することもできます。AMI からインスタンスを起動したら、AMI の登録を解除できます。
ご自分のインスタンスの基準に一致する AMI を検索できます。AWS が提供する AMI またはコミュニ
ティが提供する AMI を検索できます。詳細については、「AMI タイプ (p. 71)」および「Linux AMI の
検索 (p. 75)」を参照してください。
69
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
独自の AMI の作成
インスタンスに接続したら、そのインスタンスを他のサーバーとまったく同じように使用できます。イ
ンスタンスの起動、接続、使用に関する詳細については、Amazon EC2 インスタンス (p. 132) を参照し
てください。
独自の AMI の作成
パブリック AMI から起動するインスタンスをカスタマイズし、その設定をお客様が使用するためのカ
スタム AMI として保存できます。ご自分の AMI から起動するインスタンスでは、お客様が行ったすべ
てのカスタマイズを使用します。
AMI の作成プロセスは、インスタンスのルートストレージデバイスにより決まります。インスタンスの
ルートボリュームは、Amazon EBS ボリュームまたはインスタンスストアボリュームのどちらかです。
詳細については、「Amazon EC2 ルートデバイスボリューム (p. 16)」を参照してください。
Amazon EBS-Backed AMI を作成するには、「Amazon EBS-Backed Linux AMI の作成 (p. 93)」を参照
してください。Instance Store-Backed AMI を作成するには、「Instance Store-Backed Linux AMI の作
成 (p. 97)」を参照してください。
AMI には分類や管理のために任意のタグを付けられます。詳細については、「Amazon EC2 リソース
にタグを付ける (p. 774)」を参照してください。
AMI の購入、共有、販売
AMI を作成したら、自分だけがそれを使用できるようにプライベートとして保存したり、あるいは、
AWS アカウントの指定リストと共有したりできます。コミュニティで利用できるように、カスタム
AMI を公開することもできます。安全で信頼性が高く、便利な AMI を作成して、一般公開する手順は
きわめて単純で、いくつかのシンプルなガイドラインにしたがうだけです。共有 AMI の作成および使
用方法の詳細については、共有 AMI (p. 77) を参照してください。
Red Hat のような組織のサービス契約に付属する AMI など、サードパーティから AMI を購入できます。
また、AMI を作成し、他の Amazon EC2 ユーザーに販売することもできます。AMI の購入と販売に関
する詳細については、有料 AMI (p. 89) を参照してください。
AMI の登録解除
AMI の利用が終わったら、その登録を解除できます。AMI の登録を解除すると、それを使用して新しい
インスタンスを起動できなくなります。詳細については、「AMI の登録解除 (p. 117)」を参照してくだ
さい。
Amazon Linux
Amazon Linux AMI は、AWS がサポートおよび保守管理している Linux イメージの 1 つです。次に示
すのは Amazon Linux の特徴の一部です。
• Amazon EC2 で実行されるアプリケーションのため、安定性があり、安全で高性能な実行環境。
• Amazon EC2 ユーザーには追加料金なしで提供。
• MySQL、PostgreSQL、Python、Ruby、Tomcat など多くの一般的なパッケージの複数バージョンへ
のリポジトリアクセスが可能。
• 定期的な更新で最新のコンポーネントが追加される。更新は、インスタンスを実行するインストール
の yum リポジトリでも利用可能。
70
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI タイプ
• AWS CLI Amazon EC2 API および AMI ツール、Python 用の Boto ライブラリ、Elastic Load Balancing
ツールなど、AWS サービスとの統合を簡単にするパッケージが含まれる。
詳細については、「Amazon Linux (p. 119)」を参照してください。
AMI タイプ
Abstract
リージョン、オペレーティングシステム、アーキテクチャ、ルートボリュームタイプに基づいて AMI を選択しま
す。
次の特性に基づき、使用する AMI を選択できます。
• リージョン(「リージョンとアベイラビリティーゾーン (p. 8)」を参照)
• オペレーティングシステム
• アーキテクチャ(32 ビットまたは 64 ビット)
• 起動許可 (p. 71)
• ルートデバイスのストレージ (p. 71)
起動許可
AMI の所有者は、起動許可を指定することで可用性を決定します。起動許可は次のように分類されま
す。
起動許可
説明
パブリック
所有者はすべての AWS アカウントに起動許可を与えます。
明示的
所有者は特定の AWS アカウントに起動許可を与えます。
暗示的
所有者には AMI の暗示的起動許可があります。
Amazon と Amazon EC2 コミュニティはさまざまなパブリック AMI を提供しています。詳細について
は、「共有 AMI (p. 77)」を参照してください。開発者は自分の AMI に料金を請求できます。詳細につ
いては、「有料 AMI (p. 89)」を参照してください。
ルートデバイスのストレージ
すべての AMI が Amazon EBS-Backed と Instance Store-Backed のいずれかに分類されます。前者は、
AMI から起動されるインスタンスのルートデバイスが、Amazon EBS スナップショットから作成され
る Amazon EBS ボリュームであるということです。後者は、AMI から起動されるインスタンスのルー
トデバイスが、Amazon S3 に格納されたテンプレートから作成されるインスタンスストアボリューム
であるということです。詳細については、「Amazon EC2 ルートデバイスボリューム (p. 16)」を参照
してください。
このセクションでは、2 種類の AMI の重要な相違点をまとめています。以下の表はこれらの相違点に
ついてまとめたものです。
71
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ルートデバイスのストレージ
特徴
Amazon EBS-Backed
Amazon Instance Store-Backed
作成時刻
通常 1 分以内
通常 5 分以内
サイズ制限
16 TiB
10 GiB
ルートデバイスボリュー Amazon EBS ボリューム
ム
インスタンスストアボリューム
データの永続性
デフォルトでは、インスタンスを終
了するとルートボリュームは削除さ
れます。* 他のすべての Amazon
EBS ボリュームにあるデータは、デ
フォルトでは、インスタンスの終了
後も保持されます。インスタンスス
トアボリューム上のデータは、イン
スタンスの存続中のみ使用できま
す。
インスタンスストアボリューム上の
データは、インスタンスの存続中の
み使用できます。すべての Amazon
EBS ボリュームにあるデータは、デ
フォルトでは、インスタンスの終了
後も保持されます。
アップグレード
インスタンスの停止中に、インスタ インスタンスの属性は、インスタン
ンスタイプ、カーネル、RAM ディ スを終了するまで固定。
スク、およびユーザーデータが変更
可能
料金
インスタンスの使用量、Amazon
インスタンスの使用量や Amazon S3
EBS ボリューム、また、Amazon
に保存した AMI に対して料金が発生
EBS スナップショットとして保存し します。
た AMI に対して料金が発生します。
AMI の作成/バンドル
単一のコマンドまたは呼び出しを使 AMI ツールをインストールして使用
用
する必要があります
停止状態
インスタンスが実行されていない停 インスタンスが実行中も終了後も、
止状態にできます。ただし、ルート 停止状態にすることができない
ボリュームは Amazon EBS に保持
されます。
* デフォルトでは、Amazon EBS-Backed インスタンスのルートボリュームで、DeleteOnTermination
フラグがtrue に設定されます。このフラグを変更し、終了後もボリュームを保持する方法については、
「永続的ルートデバイスボリュームへの変更 (p. 19)」を参照してください。
AMI のルートデバイスタイプの判別
コンソールを使用して AMI のルートデバイスタイプを判別するには
1.
Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[AMIs] をクリックし、AMI を選択します。
次のように、[Details] タブで [Root Device Type] の値を確認します。
• 値が ebs の場合、これは Amazon EBS-Backed AMI です。
• 値が instance store の場合、これは Instance store-Backed インスタンスです。
72
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ルートデバイスのストレージ
コマンドラインを使用して AMI のルートデバイスタイプを判別するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-images (AWS CLI)
• ec2-describe-images (Amazon EC2 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 インスタンスは再起動で
きません。Amazon EC2 Instance store-Backed AMI は停止できないため、実行中か終了のいずれかに
なります。インスタンスが停止している場合に何が行われ、何を実行できるかの詳細については、イン
スタンスの停止と起動 (p. 278)を参照してください。
デフォルトのデータストレージと永続性
ルートデバイスにインスタンスストアボリュームを使用するインスタンスでは、自動的にインスタンス
ストアが利用できます(ルートボリュームにルートパーティションが含まれ、追加のデータを保存でき
ます)。インスタンスが失敗するか終了すると、インスタンスストアボリューム上のすべてのデータが
削除されます(ルートデバイス上のデータを除く)。1 つまたは複数の Amazon EBS ボリュームをア
タッチすることで、永続的ストレージをインスタンスに追加できます。
Amazon EBS をルートデバイスに使用するインスタンスには自動的に、Amazon EBS ボリュームがア
タッチされます。ボリュームは、他のボリュームと同様に、ボリュームのリストに表示されます。デ
フォルトでは、インスタンスは利用可能なインスタンスストアボリュームを一切使用しません。ブロッ
クデバイスマッピングを使用して、インスタンスストレージまたは追加の Amazon EBS ボリュームを
追加できます。詳細については、「ブロックデバイスマッピング (p. 752)」を参照してください。イン
スタンスを停止すると、インスタンスストアボリュームに何が発生するかについては、「インスタンス
の停止と起動 (p. 278)」を参照してください。
作成時刻
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 EBS-Backed Linux
AMI の作成 (p. 93)」を参照してください。
73
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
仮想化タイプ
課金方法
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 である
とします。そのインスタンスを停止せずに実行した場合、0.10 USD 課金されます。その時間中に、そ
のインスタンスを 2 回停止し、再起動した場合、その使用時間に対して 0.30 USD 課金されます(最初
の 0.10 USD に再起動ごとの 2 x 0.10 USD をたす)。
Linux AMI 仮想化タイプ
Abstract
Amazon マシンイメージ では、2 つの仮想化タイプ(準仮想化(PV)およびハードウェア仮想マシン(HVM))
のどちらかを使用します。これらの仮想化タイプの違いを説明します。
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. 648)」および「Linux GPU のインスタンス (p. 143)」を参照してください。
74
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Linux AMI の検索
すべての現行世代のインスタンスタイプは 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 での使
用方法については、「PV-GRUB (p. 126)」を参照してください。
C3 および M3 の現行世代のインスタンスタイプは PV AMI をサポートします。C1、HI1、HS1、M1、
M2、および T1 の旧世代のインスタンスタイプは、PV AMI をサポートします。
PV AMI を見つけるには、コンソールまたは describe-images コマンドを使用して、AMI の仮想化タイ
プが paravirtual に設定されていることを確認します。
PV on HVM
従来、準仮想化のゲストはストレージやネットワークの操作については、HVM のゲストよりも高いパ
フォーマンスを実現していました。これは、準仮想化のゲストでは I/O 用の特別なドライバ(ネット
ワークとディスクのハードウェアをエミュレートする際のオーバーヘッドが回避されます)を活用する
ことができたためです。これに対して、HVM のゲストでは、エミュレートされたハードウェアに対す
る命令を変換する必要がありました。現在では、このような PV ドライバを HVM のゲストで利用でき
るようになりました。このため、準仮想化された環境で実行するための移植ができないオペレーティン
グシステム(Windows など)でも、これらのドライバを使用することで、ストレージやネットワーク
の I/O でパフォーマンスの向上を確認することができます。このような PV on HVM ドライバを使用す
ると、HVM のゲストで、準仮想化のゲストと同じまたはより優れたパフォーマンスを実現できます。
Linux AMI の検索
Abstract
要件に一致する AMI を検索します。
インスタンスを起動する前に、使用する AMI を選択する必要があります。AMI を選択するときに、起
動するインスタンスに関して、次の要件を検討します。
• リージョン
• オペレーティングシステム
• アーキテクチャ: 32 ビット(i386)または 64 ビット(x86_64)
• ルートデバイスタイプ: Amazon EBS またはインスタンスストア
• プロバイダ: Amazon Web Services、Oracle、IBM、Microsoft、またはコミュニティ
Windows AMI の検索方法については、『Microsoft Windows インスタンスの Amazon EC2 ユーザーガ
イド』の「Windows AMI を見つける」を参照してください。
目次
75
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 コンソールを使用した Linux AMI の検索
• Amazon EC2 コンソールを使用した Linux AMI の検索 (p. 76)
• AWS CLI を使用した AMI の検索 (p. 76)
• Amazon EC2 CLI を使用して AMI を見つける (p. 77)
Amazon EC2 コンソールを使用した Linux AMI の検
索
Amazon EC2 コンソールを使用して Linux AMI を検索できます。[Images] ページを使用してすべての
利用可能な AMI を検索できます。また、コンソールを使用してインスタンスを起動する場合は、[Quick
Launch] タブでよく使用されている AMI を選択できます。
[Images] ページを使用して Linux AMI を検索するには
1.
Amazon EC2 コンソールを開きます。
2.
ナビゲーションバーから、リージョンを選択します。お客様は場所に関係なく、使用できるリー
ジョンをどれでも選択できます。これは、お客様がインスタンスを起動するリージョンです。
ナビゲーションペインの [AMIs] をクリックします。
(オプション)[Filter] オプションを使用して、一覧表示された AMI を興味のある AMI に限定しま
す。たとえば、AWS で指定されたすべての Linux AMI を表示するには、[Public images] を選択し
ます。検索バーをクリックし、メニューから [Owner]、[Amazon images] の順に選択します。検索
バーをもう一度クリックし、[Platform] を選択します。次に、表示されたリストからオペレーティ
ングシステムを選択します。
(オプション)[Show/Hide Columns] アイコンをクリックして、ルートデバイスタイプなど、表示
するイメージ属性を選択します。あるいは、一覧から AMI を選択し、[Details] タブにそのプロパ
ティを表示できます。
AMI を選択する前に、その AMI が Instance Store-Backed と Amazon EBS-Backed のどちらであ
るかを確認し、その違いを認識しておくことが重要です。詳細については、「ルートデバイスのス
トレージ (p. 71)」を参照してください。
この AMI からインスタンスを起動するには、インスタンスを選択し、[Launch] をクリックします。
コンソールを使用したインスタンスの起動の詳細については、「AMI からのインスタンスの起
動 (p. 257)」を参照してください。まだインスタンスを起動する準備が整っていない場合は、後で
使用するために AMI ID(ami-xxxxxxxx)を書き留めておきます。
3.
4.
5.
6.
7.
インスタンスを起動するときに Linux AMI を検索するには
1.
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 のみを表示するには、前のコマンドに次のフィルタを追加します。
76
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 CLI を使用して AMI を見つける
--filters "Name=root-device-type,Values=ebs"
ニーズに合った AMI を見つけたら、その ID を書き留めます。ID の形式は ami-xxxxxxxx です。この
AMI を使用して、インスタンスを起動できます。詳細については、『AWS Command Line Interface
ユーザーガイド』の「AWS CLI を使用したインスタンスの起動」を参照してください。
Amazon EC2 CLI を使用して AMI を見つける
コマンドラインパラメータを使用して、関心のある AMI のタイプのみを表示できます。たとえば、次
のように ec2-describe-images コマンドを使用して、お客様または Amazon が所有しているパブリック
な AMI を検索できます。
$ ec2-describe-images -o self -o amazon
Amazon EBS-Backed AMI のみを表示するには、前のコマンドに次のフィルタを追加します。
--filter "root-device-type=ebs"
ニーズに合った AMI を見つけたら、その ID を書き留めます。ID の形式は ami-xxxxxxxx です。この
AMI を使用して、インスタンスを起動できます。詳細については、Amazon EC2 コマンドラインリファ
レンス の Launching an Instance Using the Amazon EC2 CLI を参照してください。
共有 AMI
Abstract
パブリック 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
EBS-Backed Linux AMI の作成」、「」を参照してください。AWS Marketplace でのアプリケーション
の構築、配信、保守の詳細については、AWS Marketplace User Guide および AWS Marketplace Seller
Guide をご覧ください。
共有 AMI を見つける
Abstract
共有 AMI を見つけます。
77
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
共有 AMI を見つける
Amazon EC2 コンソールまたはコマンドラインを使用して、共有 AMI を検索できます。
共有 AMI を見つける (コンソール)
コンソールを使用して、共有しているプライベート AMI を見つけるには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [AMIs] を選択します。
3.
最初のフィルタで、[Private images] を選択します。お客様が共有しているすべての AMI が一覧表
示されます。詳細な検索を行うには、検索バーを選択し、メニューに用意されたフィルタオプショ
ンを使用します。
コンソールを使用して、共有しているパブリック AMI を見つけるには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで [AMIs] を選択します。
共有 AMI を見つけるには、[Filter] リストから [Public images] を選択します。詳細な検索を行うに
は、検索バーを選択し、メニューに用意されたフィルタオプションを使用します。
興味のある種類の AMI のみを一覧表示するには、フィルタを使用します。たとえば、[Amazon
images] を選択すると、Amazon のパブリックイメージのみが表示されます。
4.
共有 AMI を見つける (AWS CLI)
[To find a shared public AMI using the command line tools]
AMI を一覧表示するには、-describe-images コマンドを使用します。次の例のように、興味のある種類
の 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 にエイリ
アスを設定できません。
$ aws ec2 describe-images --owners amazon
次のコマンドを使用すると、指定した AWS アカウントが所有する AMI が一覧表示されます。
$ aws ec2 describe-images --owners 123456789012
表示される AMI の数を減らすには、フィルタを使用して、興味のある種類の AMI に限定して表示しま
す。たとえば、次のフィルタを使用すると、EBS-backed AMI のみが表示されます。
78
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
共有 AMI を見つける
--filters "Name=root-device-type,Values=ebs"
共有 AMI を見つける (Amazon EC2 CLI)
[To find a shared public AMI using the command line tools]
AMI を一覧表示するには、ec2-describe-images コマンドを使用します。次の例のように、興味のある
種類の AMI に絞って一覧表示できます。
次のコマンドを使用すると、-x all オプションを使用するすべてのパブリック AMI が一覧表示されま
す。このリストには、お客様が所有するパブリック AMI が含まれます。
$ ec2-describe-images -x all
次のコマンドを使用すると、お客様が明示的な起動許可を持つ AMI が一覧表示されます。このリスト
では、お客様が所有するパブリック AMI が除外されています。
$ ec2-describe-images -x self
次のコマンドを使用すると、Amazon が所有する AMI が一覧表示されます。Amazon のパブリックイ
メージにはエイリアスの所有者が設定されており、アカウントフィールドに amazon として表示されま
す。これを利用すれば、Amazon から AMI を簡単に見つけられます。他のユーザーは、AMI にエイリ
アスを設定できません。
$ ec2-describe-images -o amazon
次のコマンドを使用すると、指定した AWS アカウントが所有する AMI が一覧表示されます。
$ ec2-describe-images -o <target_uid>
<target_uid> は、検索対象の AMI を所有しているアカウント ID です。
表示される AMI の数を減らすには、フィルタを使用して、興味のある種類の AMI に限定して表示しま
す。たとえば、次のフィルタを使用すると、EBS-backed AMI のみが表示されます。
--filter "root-device-type=ebs"
共有 AMI を使用する
共有 AMI を使用する前に、次の手順を実行して、インスタンスへの好ましくないアクセスを許可する
認証情報が第三者により事前にインストールされていないことと、機密データを第三者に送信する可能
性があるリモートロギングが事前設定されていないことを確認します。システムセキュリティ改善につ
いての詳細は、AMI で使用される Linux ディストリビューションの文書を確認してください。
インスタンスへのアクセスを誤って失わないように、SSH セッションを 2 つ開始して、見覚えのない
認証情報を削除し、その後も SSH を使用してインスタンスにログインできることが確認されるまで、
2 つ目のセッションを開いておくことをお勧めします。
1. 未許可のパブリック SSH キーを特定し、無効にします。ファイル内の唯一のキーは、AMI の起動に
使用したキーである必要があります。次のコマンドを使用すると、authorized_keys ファイルが
見つかります。
79
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI を一般公開する
$ 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 ジョブが正当であることを確認します。
セキュリティ上のリスクとして考えられるパブリック AMI を発見した場合、AWS セキュリティチーム
にご連絡ください。詳細については、AWS セキュリティセンターを参照してください。
AMI を一般公開する
Abstract
ご自分の AMI をすべての Amazon EC2 ユーザーと共有します。
Amazon EC2 では、自分の AMI を他の AWS アカウントと共有できます。すべての AWS アカウント
に AMI の起動を許可(AMI を一般公開する)することも、特定の少数のアカウントだけに AMI の起動
を許可することもできます。お客様の AMI が他の AWS アカウントによって起動されても、お客様に
料金は請求されません。AMI を起動するアカウントのみに料金が請求されます。
AMI を共有するときに重要なデータが公開されないようにするには、「共有 Linux AMI のガイドライ
ン (p. 84)」のセキュリティ考慮事項を読み、推奨アクションに従います。
Note
AMI に製品コードがある場合、それを一般公開することはできません。AMI は、特定の AWS
アカウントとのみ共有する必要があります。
80
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI を一般公開する
パブリック AMI を共有する (コンソール)
コンソールを使用してパブリック AMI を共有するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
ナビゲーションペインで [AMIs] を選択します。
リストで AMI を選択し、[Actions] リストから [Modify Image Permissions] を選択します。
[Public] を選択し、[Save] を選択します。
パブリック AMI を共有する (AWS CLI)
各 AMI には、所有者以外でその AMI を使用してインスタンスを起動できる AWS アカウントを制御す
る launchPermission プロパティがあります。AMI の launchPermission プロパティを変更するこ
とで、AMI を一般公開したり(この場合、すべての AWS アカウントに起動許可が与えられます)、あ
るいは指定した AWS アカウントとのみ AMI を共有したりできます。
AMI の起動許可を持つアカウントのリストにアカウント ID を追加したり、削除したりできます。AMI
を一般公開するには、all グループを指定します。パブリック起動許可と明示的起動許可の両方を指定
できます。
[To make an AMI public]
-modify-image-attribute コマンドを次のように使用して、指定した AMI の launchPermission リスト
に all グループを追加します。
$ aws ec2 modify-image-attribute --image-id ami-2bb65342 --launch-permission
"{\"Add\":[{\"Group\":\"all\"}]}"
AMI の起動許可を確認するには、次の describe-image-attribute コマンドを使用します。
$ aws ec2 describe-image-attribute --image-id ami-2bb65342 --attribute launch
Permission
(オプション)AMI をプライベートに戻すには、その起動許可から all グループを削除します。AMI
の所有者には常に起動許可が与えられるため、このコマンドの影響を受けないことにご注意ください。
$ aws ec2 modify-image-attribute --image-id ami-2bb65342 "{\"Re
move\":[{\"Group\":\"all\"}]}"
パブリック AMI を共有する (Amazon EC2 CLI)
各 AMI には、所有者以外でその AMI を使用してインスタンスを起動できる AWS アカウントを制御す
る launchPermission プロパティがあります。AMI の launchPermission プロパティを変更するこ
とで、AMI を一般公開できます。この場合、すべての AWS アカウントに起動許可を与えたり、あるい
は指定した AWS アカウントとのみ AMI を共有したりできます。
AMI の起動許可を持つアカウントのリストにアカウント ID を追加したり、削除したりできます。AMI
を一般公開するには、all グループを指定します。パブリック起動許可と明示的起動許可の両方を指定
できます。
[To make an AMI public]
81
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
特定の AWS アカウントと AMI を共有する
ec2-modify-image-attribute コマンドを次のように使用して、指定した AMI の launchPermission リ
ストに all グループを追加します。
$ ec2-modify-image-attribute ami-2bb65342
--launch-permission -a all
AMI の起動許可を検証するには、次のコマンドを使用します。
$ ec2-describe-image-attribute ami-2bb65342 -l
AMI をプライベートに戻すには、その起動許可から all グループを削除します。AMI の所有者には常
に起動許可が与えられるため、このコマンドの影響を受けないことにご注意ください。
$ ec2-modify-image-attribute ami-2bb65342 -l -r all
特定の AWS アカウントと AMI を共有する
Abstract
お客様の AMI を特定の Amazon EC2 ユーザーと共有します。
AMI を一般公開せず、特定の AWS アカウントとだけ共有することもできます。必要なものは AWS ア
カウント ID のみです。
AMI を共有する (コンソール)
コンソールを使用して明示的な起動許可を与えるには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [AMIs] を選択します。
リストで AMI を選択し、[Actions] リストから [Modify Image Permissions] を選択します。
[AWS Account Number] フィールドに AMI を共有するユーザーの AWS アカウント番号を指定し、
[Add Permission] を選択します。
この AMI を複数のユーザーと共有するには、上記の手順を繰り返して、必要なすべてのユーザー
を追加します。
スナップショットのボリューム作成権限を与えるには、[Add "create volume" permissions to the
following associated snapshots when creating permissions] を選択します。
Note
AMI を共有するために、AMI の参照先の Amazon EBS スナップショットを共有する必要
はありません。共有する必要があるのは AMI 自体だけです。起動の際に、参照先の Amazon
EBS スナップショットへのインスタンスアクセスが自動的に提供されます。
6.
完了したら、[Save] を選択します。
AMI を共有する (AWS CLI)
AMI を共有するには、次の例のように modify-image-attribute コマンドを使用します。
明示的な起動許可を与えるには
82
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ブックマークの使用
次のコマンドを使用すると、指定した AWS アカウントに指定した AMI の起動許可が与えられます。
$ aws ec2 modify-image-attribute --image-id ami-2bb65342 --launch-permission
"{\"Add\":[{\"UserId\":\"123456789012\"}]}"
[To remove launch permissions for an account]
次のコマンドを使用すると、指定した AWS アカウントから指定した AMI の起動許可が削除されます。
$ aws ec2 modify-image-attribute --image-id ami-2bb65342 "{\"Re
move\":[{\"UserId\":\"123456789012\"}]}"
[To remove all launch permissions]
次のコマンドを使用すると、指定した AMI からパブリック起動許可と明示的起動許可がすべて削除さ
れます。AMI の所有者には常に起動許可が与えられるため、このコマンドの影響を受けないことにご注
意ください。
$ aws ec2 reset-image-attribute --image-id ami-2bb65342 --attribute launchPer
mission
AMI を共有する (Amazon EC2 CLI)
AMI を共有するには、次の例のように、ec2-modify-image-attribute コマンドを使用します。
明示的な起動許可を与えるには
次のコマンドを使用すると、指定した AWS アカウントに指定した AMI の起動許可が与えられます。
$ ec2-modify-image-attribute ami-2bb65342 -l -a 111122223333
[To remove launch permissions for an account]
次のコマンドを使用すると、指定した AWS アカウントから指定した AMI の起動許可が削除されます。
$ ec2-modify-image-attribute ami-2bb65342 -l -r 111122223333
[To remove all launch permissions]
次のコマンドを使用すると、指定した AMI からパブリック起動許可と明示的起動許可がすべて削除さ
れます。AMI の所有者には常に起動許可が与えられるため、このコマンドの影響を受けないことにご注
意ください。
$ ec2-reset-image-attribute ami-2bb65342 -l
ブックマークの使用
Abstract
他の Amazon EC2 ユーザーがお客様の共有 AMI にアクセスし、使用することを許可します。
パブリック AMI を作成した場合、あるいは AMI を別の AWS ユーザーと共有した場合は、ブックマー
クを作成できます。ブックマークを作成すると、ユーザーは自分のアカウントですばやく AMI にアク
83
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
共有 Linux AMI のガイドライン
セスし、インスタンスを起動できます。これにより AMI リファレンスを簡単に共有できるため、時間
をかけず、使用する AMI を見つけることができます。
AMI はパブリックであるか、ブックマークの送信先ユーザーと共有している必要があります。
AMI のブックマークを作成するには
1.
次の情報が含まれる URL を入力します。<region> には AMI のリージョン、<ami_id> には AMI
の ID を指定します。
https://console.aws.amazon.com/ec2/v2/home?region=<region>#LaunchInstanceWiz
ard:ami=<ami_id>
たとえば、この URL は、us-east-1 リージョンの ami-2bb65342 AMI からインスタンスを起動しま
す。
https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWiz
ard:ami=ami-2bb65342
2.
3.
AMI を使用するユーザーにリンクを配信します。
ブックマークを使用するには、リンクを選択するか、そのリンクをコピーしてブラウザに貼り付け
ます。起動ウィザードが開きます。AMI が既に選択されています。
共有 Linux AMI のガイドライン
Abstract
共有 Linux AMI を作成するときは、これらのガイドラインにしたがいます。
攻撃対象領域を縮小し、作成する AMI の信頼性を向上させるためには、次のガイドラインを使用しま
す。
Note
セキュリティのガイドラインのリストは、いずれも完全ではありません。共有 AMI を注意深く
作成し、機密データが漏洩される可能性について十分考慮してください。
トピック
• 起動時に AMI ツールを更新する (p. 85)
• ルートのパスワードベースのリモートログインを無効にする (p. 85)
• ローカルルートアクセスを無効にする (p. 85)
• SSH ホストキーペアの削除 (p. 86)
• パブリックキー認証情報のインストール (p. 86)
• sshd DNS チェックの無効化(オプション) (p. 87)
• 公開元を明らかにする (p. 88)
• 自身の保護 (p. 88)
AWS Marketplace 向けの AMI を作成する場合、Building AMIs for AWS Marketplace のガイドライン、
ポリシー、ベストプラクティスを参照してください。
AMI の安全な共有についての詳細は、次の記事を参照してください。
84
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
共有 Linux 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 上の他のソフトウェア
が中断されるというリスクについて考慮してください。
他のディストリビューションの場合は、AMI ツールが最新版であることを確認してください。
ルートのパスワードベースのリモートログインを無効にする
パブリック AMI に固定のルートパスワードを使用することは、セキュリティの面で危険であり、すぐ
に知られるおそれがあります。初回ログイン後にパスワードを変更するようにユーザーに依存していま
すが、変更されるまでの一瞬の間にパスワードが悪用される危険性があります。
この問題を解決するには、ルートユーザーのパスワードベースのリモートログインを無効にします。
ルートのパスワードベースのリモートログインを無効にするには
1.
テキストエディタで /etc/ssh/sshd_config ファイルを開き、次の行を見つけ出します:
#PermitRootLogin yes
2.
行を次のように変更します:
PermitRootLogin without-password
この構成ファイルの場所は、ディストリビューションに応じて、または OpenSSH を実行していな
い場合は、異なることがあります。このような場合は、関連資料を参照してください。
ローカルルートアクセスを無効にする
共有 AMI を使用する際のベストプラクティスは、直接ルートログインを無効にすることです。これを
行うには、実行中のインスタンスにログインし、次のコマンドを発行します。
85
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
共有 Linux 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
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 を構成したら、ユーザーが別のメカニズムを使用し
てログインできるようにしておく必要があります。
86
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
共有 Linux 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/mykey
if [ $? -eq 0 ] ; then
cat /tmp/my-key >> /root/.ssh/authorized_keys
chmod 700 /root/.ssh/authorized_keys
rm /tmp/my-key
fi
この設定は、あらゆるユーザーアカウントに適用できます。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
87
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
共有 Linux AMI のガイドライン
Note
この構成ファイルの場所は、ディストリビューションに応じて、または OpenSSH を実行して
いない場合は、異なることがあります。このような場合は、関連資料を参照してください。
公開元を明らかにする
現在のところ、AMI はそれぞれアカウント ID で表されるため、共有 AMI を提供したのが誰かを簡単に
特定する方法はありません。
お客様の AMI の説明と AMI ID を Amazon EC2 forum に投稿することをお勧めします。これにより、
新しい共有 AMI の使用に関心があるユーザーに便利な中心となる場所が提供されます。AMI を Amazon
マシンイメージ(AMIs)ページに投稿することもできます。
自身の保護
前のセクションでは、共有 AMI を起動するユーザーに対して、共有 AMI をセキュアで安全にし、ま
た、便利にする方法について説明しました。このセクションでは、お客様の AMI を利用するユーザー
から、お客様ご自身を保護するためのガイドラインを説明します。
共有する AMI に、機密性のあるデータやソフトウェアは保管しないことをお勧めします。共有 AMI を
起動するユーザーは、それを再バンドルしたり、自分のものとして登録したりできる可能性がありま
す。以下のガイドラインに従って、見落としやすいセキュリティ上のリスクを回避してください:
• ec2-bundle-vol で --exclude directory オプションを使用して、バンドル操作に含めたくな
い機密情報が入っているディレクトリおよびサブディレクトリをスキップすることをお勧めします。
特に、イメージをバンドルするときに、すべてのユーザー所有の SSH パブリックキー/プライベート
キーペアおよび SSH authorized_keys ファイルを除外します。Amazon パブリック AMI で、これ
らのファイルは、root アカウントの場合は /root/.ssh、通常のユーザーアカウントの場合は
/home/user_name/.ssh/ に配置されています。詳細については、『Amazon EC2 コマンドライン
リファレンス』の「ec2-bundle-vol」を参照してください。
• バンドルの前に必ずシェル履歴を削除してください。同じ AMI で複数のバンドルのアップロードを
試行すると、シェル履歴にシークレットアクセスキーが含まれます。次の例は、インスタンス内から
のバンドルの前に実行される最後のコマンドとなる必要があります。
[ec2-user ~]$ shred -u ~/.*history
Warning
上記の警告で示した shred の制限は、ここにも適用されます。
bash は、終了時に現在のセッション履歴をディスクに書き込むことに注意してください。
~/.bash_history を削除後にインスタンスをログアウトし、再度ログインすると、
~/.bash_history が再作成され、前のセッション中に実行されたすべてのコマンドが含ま
れています。
bash 以外の他のプログラムもディスクに履歴を書き込むため、注意して不要な dot ファイル
と dot ディレクトリを削除または除外します。
• 実行中のインスタンスをバンドルするには、プライベートキーと X.509 証明書が必要です。これら
の証明書およびその他の証明書を、バンドルされていない場所(インスタンスストアなど)に書き込
みます。
88
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
有料 AMI
有料 AMI
Abstract
有料 AMI と呼ばれるカスタム 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. 89)
• 有料 AMI を見つける (p. 89)
• 有料 AMI の購入 (p. 91)
• インスタンスの製品コードを取得する (p. 91)
• 有料サポートの利用 (p. 91)
• 有料およびサポート対象の AMI の請求書 (p. 92)
• AWS Marketplace サブスクリプションの管理 (p. 92)
ご自分の 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 に関する情報をお客様にお
知らせすることがあります。
89
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
有料 AMI を見つける
コンソールを使用して有料 AMI を見つける
コンソールを使用して有料 AMI を見つけるには
1.
Amazon EC2 コンソールを開きます。
2.
ナビゲーションペインの [AMIs] をクリックします。
3.
最初の [Filter] リストから [Public Snapshots] を選択します。検索バーをクリックし、[Product Code]
を選択します。次に [Marketplace] を選択します。検索バーをもう一度クリックし、[Platform] を選
択します。次に、リストからオペレーティングシステムを選択します。
AWS Marketplace を使用して有料 AMI を見つける
AWS Marketplace を使用して有料 AMI を見つけるには
1.
AWS Marketplace を開きます。
2.
3.
4.
検索ボックスにオペレーティングシステムの名前を入力して、[Go] をクリックします。
検索結果をさらに絞るには、カテゴリまたはフィルタを利用します。
各製品には、製品タイプ(AMI または Software as a Service)のラベルが付けられています。
AWS CLI を使用して有料 AMI を見つける
次のように describe-images コマンドを使用して、有料 AMI を見つけることができます。
$ ec2-describe-images --owners aws-marketplace
このコマンドは、有料 AMI の製品コードなど、各 AMI を説明するさまざまな詳細を返します。
describe-images からの出力には、次のような製品コードのエントリがあります:
"ProductCodes": [
{
"ProductCodeId": "product_code",
"ProductCodeType": "marketplace"
}
],
Amazon EC2 CLI を使用して有料 AMI を見つける
次のように ec2-describe-images コマンドを使用して、有料 AMI を見つけることができます。
$ ec2-describe-images -o aws-marketplace
このコマンドは、有料 AMI の製品コードなど、各 AMI を説明するさまざまな詳細を返します。
ec2-describe-images からの次の出力例に製品コードが含まれています。
IMAGE
ami-a5bf59cc
image_source
product_code
x86_64
machine
90
123456789012
available public
instance-store
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
有料 AMI の購入
有料 AMI の購入
AMI を使用してインスタンスを起動するには、有料 AMI にサインアップする(購入する)必要があり
ます。
通常、有料 AMI の販売者は、価格や購入サイトへのリンクなど、AMI に関する情報を提供します。リ
ンクをクリックすると、最初に AWS へのログインが求められます。ログイン後、AMI を購入できま
す。
コンソールを使用して有料 AMI を購入する
Amazon EC2 起動ウィザードを使用して有料 AMI を購入できます。詳細については、「AWS Marketplace
インスタンスの起動 (p. 264)」を参照してください。
AWS Marketplace を使用した製品のサブスクライブ
AWS Marketplace を使用するには、AWS アカウントが必要です。AWS Marketplace 製品からインスタ
ンスを起動するには、Amazon EC2 サービスの利用にサインアップして、インスタンスの起動元から
製品の受信登録をする必要があります。AWS Marketplace の製品を受信登録するには、2 つの方法があ
ります。
• AWS Marketplace ウェブサイト: 1-Click デプロイメント機能で、事前に設定したソフトウェアをす
ばやく起動できます。
• Amazon EC2 起動ウィザード: AMI を検索し、ウィザードからインスタンスを直接起動できます。詳
細については、「AWS Marketplace インスタンスの起動 (p. 264)」を参照してください。
開発者から有料 AMI を購入する
有料 AMI の開発者は、AWS Marketplace のリストにない有料 AMI をユーザーが購入できるように手配
できます。開発者は、Amazon から製品を購入できるように、お客様にリンクを送ります。お客様がご
自分の Amazon.com 認証情報でサインインして、Amazon.com アカウントに保存しているクレジット
カードを選択すると、AMI の購入時に使用できます。
インスタンスの製品コードを取得する
インスタンスの AWS Marketplace 製品コードは、インスタンスメタデータを使用して取得できます。
メタデータの取得については、インスタンスメタデータとユーザーデータ (p. 321) を参照してください。
製品コードを取得するには、次のクエリを使用します。
$ GET http://169.254.169.254/latest/meta-data/product-codes
インスタンスに製品コードが含まれる場合、Amazon EC2 はそれを返します。以下に例を示します。
774F4FF8
有料サポートの利用
Amazon EC2 は、開発者がソフトウェア(またはそれに由来する AMI)のサポートを提供できるよう
に手配します。開発者は、お客様がサインアップして使用できるサポート製品を提供することができま
す。サポート製品にサインアップすると、開発者はお客様に製品コードを渡します。お客様はそのコー
ドをご自分の AMI に関連付ける必要があります。これにより、開発者は、ユーザーのインスタンスが
91
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
有料およびサポート対象の 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"
• ec2-modify-image-attribute(Amazon EC2 CLI)
$ ec2-modify-image-attribute ami_id --product-code 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.
b.
Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Instances] をクリックします。
c.
インスタンスを選択し、[Actions] をクリックして [Instance State] を選択した後、[Terminate]
をクリックします。プロンプトが表示されたら、[Yes, Terminate] をクリックします。
92
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EBS-Backed Linux AMI の作成
2.
3.
AWS Marketplace にログインし、[Your Account]、[Manage Your Software Subscriptions] の順に
クリックします。
[Cancel subscription] をクリックします。取り消しの確認を求めるプロンプトが表示されます。
Note
受信登録をキャンセルすると、その AMI からインスタンスを起動できなくなります。その
AMI を再度使用するには、AWS Marketplace ウェブサイトまたは Amazon EC2 コンソー
ルの起動ウィザードを使用して、その AMI を再度サブスクライブする必要があります。
Amazon EBS-Backed Linux AMI の作成
Abstract
カスタマイズした Amazon EBS-backed Linux インスタンスから、独自の AMI を作成します。
Amazon EBS-backed Linux AMI を作成するには、既存の Amazon EBS-backed Linux AMI から起動し
たインスタンスから開始します。ニーズに合わせてインスタンスをカスタマイズしたら、新しい AMI
を作成し、登録します。新しい AMI を使用して、カスタマイズした新しいインスタンスを起動できま
す。Amazon EBS-backed Windows AMI の作成の詳細については、Microsoft Windows インスタンスの
Amazon EC2 ユーザーガイドの「Amazon EBS-backed Windows AMI の作成」を参照してください。
いかに説明された手順は、暗号化された Amazon EBS ボリューム (ルートボリュームを含む) でバック
アップされた Amazon EC2 インスタンスにも、暗号化されていないボリューム同様に機能します。
AMI の作成プロセスは、instance store-backed AMI の場合とは異なります。Amazon EBS-backed イン
スタンスと instance store-backed インスタンスの違いの詳細と、インスタンスのルートデバイスタイ
プを判別する方法については、「ルートデバイスのストレージ (p. 71)」を参照してください。instance
store-backed Linux AMI の作成に関する詳細については、「Instance Store-Backed Linux AMI の作
成 (p. 97)」を参照してください。
Amazon EBS-backed AMI の作成の概要
最初に、作成する AMI に似ている AMI からインスタンスを起動します。インスタンスに接続し、それ
をカスタマイズできます。インスタンスを正しく設定したら、インスタンスを停止してデータ整合性を
確認してから、AMI を作成し、次にイメージを作成します。作成した Amazon EBS-backed AMI は自
動的に登録されます。
インスタンスをシャットダウンしてから AMI を作成するのは、インスタンス上のすべての動作を停止
し、作成プロセス中に一貫した状態が保たれるようにするためです。インスタンスが一貫した状態にあ
り、適切に AMI を作成できる場合、インスタンスの電源を落として再起動しないように、Amazon EC2
に指定できます。XFS などの一部のファイルシステムでは、アクティビティのフリーズおよびフリー
ズ解除が可能なため、インスタンスを再起動しなくてもイメージを安全に作成できます。
AMI 作成プロセスの間、Amazon EC2 はインスタンスのルートボリュームとインスタンスにアタッチ
されているその他の EBS ボリュームのスナップショットを作成します。インスタンスにアタッチされ
るいずれかのボリュームが暗号化されている場合、新しい AMI は、Amazon EBS 暗号化 をサポートす
るインスタンスでのみ正常に起動します。詳細については、「Amazon EBS Encryption (p. 719)」を参
照してください。
ボリュームサイズによっては、AMI 作成プロセスが完了するまでに数分 (時には最大 24 時間) かかる場
合があります。AMI を作成する前にボリュームのスナップショットを作成することで、より効率的にな
る場合があります。この方法では、AMI を作成する際に作成する必要があるのは小さい差分スナップ
93
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスからの Linux AMI の作成
ショットのみになるため、プロセスがよりすばやく完了します (スナップショット作成の合計時間は同
じです)。詳細については、「Amazon EBS スナップショットの作成 (p. 710)」を参照してください。
プロセスが完了すると、新しい AMI と、インスタンスのルートボリュームから作成されたスナップ
ショットが与えられます。ユーザーが新しい AMI を使用してインスタンスを起動すると、Amazon は
スナップショットを使用して、そのルートボリュームのために新しい EBS ボリュームを作成します。
AMI とスナップショットはどちらも削除されるまで、ユーザーのアカウントに料金を発生させます。詳
細については、「AMI の登録解除 (p. 117)」を参照してください。
ルートデバイスボリュームに加えて、インスタンスストアボリュームまたは EBS ボリュームをインス
タンスに追加した場合、新しい AMI のブロックデバイスマッピングにこれらのボリュームの情報が含
まれ、新しい AMI から起動するインスタンスのブロックデバイスマッピングに自動的にこれらのボ
リュームの情報が含まれます。新しいインスタンスのブロックデバイスマッピングに指定されているイ
ンスタンスストアボリュームは新しく、AMI の作成に使用したインスタンスのインスタンスストアボ
リュームからのデータは含まれていません。EBS ボリュームのデータは永続的です。詳細については、
「ブロックデバイスマッピング (p. 752)」を参照してください。
インスタンスからの Linux AMI の作成
AWS マネジメントコンソールまたはコマンドラインを利用して AMI を作成できます。次の図は、実行
中の EC2 インスタンスから Amazon EBS-backed AMI を作成するプロセスをまとめたものです。既存
の AMI から開始して、インスタンスを起動してカスタマイズし、そこから新しい AMI を作成して、最
後に新しい AMI のインスタンスを起動します。以下の図のステップは次の手順のステップに一致して
います。
コンソールを使用してインスタンスから AMI を作成するには
1.
2.
3.
新しい AMI の開始点として機能する適切な EBS-backed AMI を選択し、起動に先立って必要に応
じて設定します。詳細については、「インスタンスの作成 (p. 255)」を参照してください。
[Launch] を選択して、選択した EBS-backed AMI のインスタンスを起動します。デフォルト値を
そのまま使ってウィザードを完了します。詳細については、「インスタンスの作成 (p. 255)」を参
照してください。
インスタンスの実行中に、それに接続します。
必要に応じてインスタンスで次のアクションを実行してインスタンスをカスタマイズできます。
• ソフトウェアやアプリケーションをインストールする
• データをコピーする
• 起動時間を短縮するために一時ファイルの消去、ハードディスクのデフラグ、占有領域の開放処
理を行う。
• 追加の Amazon EBS ボリュームをアタッチする。
(オプション) インスタンスにアタッチされているすべてのボリュームのスナップショットを作成す
る。スナップショット作成についての詳細は、Amazon EBS スナップショットの作成 (p. 710) を参
照してください。
94
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 はこのス
ナップショットを使用して、ルートデバイスボリュームを作成します。
95
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スナップショットからの Linux AMI の作成
6.
7.
新しい AMI からインスタンスを起動します。詳細については、「インスタンスの作成 (p. 255)」を
参照してください。
新しい実行中インスタンスには、前のステップで適用したカスタム設定がすべて含まれます。
コマンドラインを使用してインスタンスから AMI を作成するに
は
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスについての詳細は、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• create-image(AWS CLI)
• ec2-create-image(Amazon EC2 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. 94)」を参照してください。
コンソールを使用してスナップショットから AMI を作成するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Elastic Block Store] の [Snapshots] を選択します。
3.
4.
スナップショットを選択し、[Actions]、[Create Image] を選択します。
[Create Image from EBS Snapshot] ダイアログボックスで、AMI を作成するためのフィールドに入
力し、[Create] を選択します。親インスタンスを再作成する場合は、親インスタンスと同じオプ
ションを選択します。
• Architecture: 32 ビットの場合は [i386] を、64 ビットの場合は [x86_64] を選択します。
• Root device name: ルートボリュームの適切な名前を入力します。詳細については、「Linux イ
ンスタンスでのデバイスの名前付け (p. 750)」を参照してください。
• [Virtualization type]: この AMI から起動されるインスタンスで準仮想化 (PV) またはハードウェア
仮想マシン (HVM) のいずれの仮想化を使用するかを選択します。詳細については、「Linux AMI
仮想化タイプ (p. 74)」を参照してください。
96
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Instance Store-Backed Linux AMI の作成
• (PV 仮想化タイプのみ)Kernel ID および RAM disk ID: リストから AKI と ARI を選択します。
デフォルトの AKI を選択するか、AKI を選択しない場合、この AMI を使用してインスタンスを
起動するたびに AKI を指定するように要求されます。また、デフォルトの AKI にインスタンス
との互換性がない場合、インスタンスのヘルスチェックが失敗する可能性があります。
• (オプション) [Block Device Mappings]: ボリュームを追加するか、AMI のルートボリュームのデ
フォルト容量を増やします。ボリュームの容量を増やした場合のインスタンスのファイルシステ
ムのサイズ変更の詳細については、「Linux ファイルシステムを拡張する (p. 696)」を参照してく
ださい。
コマンドラインを使用してスナップショットから AMI を作成す
るには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• register-image(AWS CLI)
• ec2-register (Amazon EC2 CLI)
• Register-EC2Image(AWS Tools for Windows PowerShell)
Instance Store-Backed Linux AMI の作成
Abstract
カスタマイズした Instance Store-Backed Linux インスタンスから独自の AMI を作成します。
Instance Store-Backed Linux AMI を作成するには、既存の Instance Store-Backed Linux AMI から起動
したインスタンスから始めます。ニーズに合わせてインスタンスをカスタマイズしたら、ボリュームを
バンドルし、新しい AMI を登録します。新しい AMI を使用して、カスタマイズした新しいインスタン
スを起動できます。
instance store-backed Windows AMI を作成する場合、『Microsoft Windows インスタンスの Amazon
EC2 ユーザーガイド』の「Instance Store-Backed Windows AMI の作成」を参照してください。
AMI の作成プロセスは、Instance Store-Backed AMI の場合とは異なります。Amazon EBS-Backed イ
ンスタンスと Instance store-Backed インスタンスの違いの詳細と、インスタンスのルートデバイスタ
イプを判別する方法については、「ルートデバイスのストレージ (p. 71)」を参照してください。Amazon
EBS-backed Linux AMI を作成する必要がある場合は、「Amazon EBS-Backed Linux AMI の作成 (p. 93)」
を参照してください。
トピック
• Instance Store-Backed AMI の作成プロセスの概要 (p. 97)
• 前提条件 (p. 98)
• インスタンスから AMI を作成するStore-Backed Linux インスタンス (p. 99)
• Instance Store-Backed AMI を Amazon EBS-Backed AMI に変換する (p. 104)
Instance Store-Backed AMI の作成プロセスの概要
次の図は、Instance Store-Backed インスタンスから AMI を作成するプロセスをまとめたものです。
97
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
最初に、作成する AMI に似ている AMI からインスタンスを起動します。インスタンスに接続し、それ
をカスタマイズできます。インスタンスのカスタマイズが終わったら、それをバンドルできます。バン
ドルプロセスが完了するには数分間かかります。プロセスが完了すると、バンドルが与えられます。バ
ンドルは、イメージマニフェスト(image.manifest.xml)と、ルートボリュームのテンプレートを
含むファイル(image.part.)から構成されます。次に、バンドルを Amazon S3 バケットにアップ
ロードし、AMI を登録します。
お客様が新しい AMI を使用してインスタンスを起動すると、Amazon はユーザーが Amazon S3 にアッ
プロードしたバンドルを使用してインスタンスのルートボリュームを作成します。Amazon S3 のバン
ドルで使用されるストレージ領域については、お客様がその領域を削除するまでアカウントに料金が発
生します。詳細については、「AMI の登録解除 (p. 117)」を参照してください。
ルートデバイスボリュームに加えて、インスタンスストアボリュームをインスタンスに追加した場合、
新しい AMI のブロックデバイスマッピングにこれらのボリュームの情報が含まれ、新しい AMI から起
動するインスタンスのブロックデバイスマッピングに自動的にこれらのボリュームの情報が含まれま
す。詳細については、「ブロックデバイスマッピング (p. 752)」を参照してください。
前提条件
AMI を作成するには、最初に次のタスクを完了する必要があります。
• AMI ツールをインストールします。詳細については、Set Up the AMI Tools を参照してください。
• API ツールをインストールします。詳細については、「Setting Up the Amazon EC2 Command Line
Interface Tools on Linux」を参照してください。
• バンドルに Amazon S3 バケットがあることを確認します。Amazon S3 バケットを作成するには、
Amazon S3 コンソールを開き、[Create Bucket] をクリックします。
Note
AWS CLI mb コマンドを使用して、バケットを作成することもできます。AWS CLI の使用を
開始するには、『AWS Command Line Interface ユーザーガイド』を参照してください。
• 次の認証情報があることを確認します。
• AWS アカウント ID。AWS マネジメントコンソール で AWS アカウント ID 番号を確認するには、
ナビゲーションバーの右上にある [Support] をクリックし、[Support Center] をクリックします。
現在サインインしているアカウント ID が [Support] メニューの下に表示されます。
• X.509 証明書とプライベートキー。X.509 証明書を作成する必要がある場合は、Amazon EC2 コマ
ンドラインリファレンスの「Managing Signing Certificates」を参照してください。X.509 証明書
とプライベートキーは、AMI の暗号化/復号に使用されます。
• AWS アカウントアクセスキー ID とシークレットアクセスキーです。詳細については、IAM ユー
ザーガイド の「アクセスキーの作成、修正、および表示」を参照してください。
98
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスから AMI を作成するStore-Backed Linux イン
スタンス
• インスタンスに接続し、カスタマイズします。たとえば、ソフトウェアとアプリケーションをインス
トールしたり、データをコピーしたり、一時ファイルを削除したり、Linux 設定を変更したりできま
す。
インスタンスから AMI を作成するStore-Backed Linux
インスタンス
Amazon EC2 AMI ツールの使用準備を整えるには(HVM インスタンスのみ)
Amazon EC2 AMI ツールでは、GRUB のレガシーが正常に起動する必要があります。一部の AMI (特
に Ubuntu)は GRUB 2.を使用するように設定されています。インスタンスで GRUB のレガシーを使
用しているかどうか確認し、使用していない場合はインストールして設定する必要があります。
AMI ツールが正常に機能するためには、HVM インスタンスにパーティションツールがインストールさ
れている必要もあります。
1.
インスタンスで GRUB のレガシーを使用しているかどうかを確認します。
a.
ブロックデバイスの一覧を表示し、ルートブロックデバイスを探します。
[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 /
xvdb
202:16
0 30G 0 disk /media/ephemeral0
この例では、ルートデバイス(/ の MOUNTPOINT で示される)は /dev/xvda1 です。ルート
ブロックデバイスは、その親 である /dev/xvda です。
b.
ルートブロックデバイス GRUB のバージョンを確認します。
[ec2-user ~]$ sudo file -s /dev/xvda
/dev/xvda: x86 boot sector; GRand Unified Bootloader, stage1 version
0x3, stage2 address 0x2000, 1st sector stage2 0x800, stage2 segment
0x200, GRUB version 0.94; partition 1: ID=0xee, starthead 254,
startsector 1, 16777215 sectors, extended partition table (last)\011,
code offset 0x48
前述の例では、GRUB バージョンは GRUB のレガシーである 0.94 です。GRUB バージョン
が 0.9x 以下の場合は、Step 3 (p. 100) に進むことができます。この出力で GRUB バージョン
を確認できない場合は、grub-install --version コマンドを試してください。
ubuntu:~$ grub-install --version
grub-install (GRUB) 1.99-21ubuntu3.10
この例では、GRUB バージョンが 0.9x よりも大きいため、GRUB のレガシーをインストール
する必要があります。Step 2 (p. 99) に進みます。
2.
お使いのディストリビューションのパッケージマネージャを使用して grub パッケージをインス
トールし、GRUB のレガシーをインストールします。Ubuntu インスタンスの場合は、次のコマン
ドを使用します。
99
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスから AMI を作成するStore-Backed Linux イン
スタンス
ubuntu:~$ sudo apt-get install -y grub
インスタンスで GRUB のレガシーを使用していることの検証は、grub --version コマンドを使用し
て行えます。
ubuntu:~$ grub --version
grub (GNU GRUB 0.97)
3.
お使いのディストリビューションのパッケージマネージャを使用して、次のパーティション管理
パッケージをインストールします。
• gdisk (ディストリビューションによっては代わりにパッケージ gptfdisk が呼び出される場
合があります)。
• kpartx
Ubuntu インスタンスの場合は、次のコマンドを使用します。
ubuntu:~$ sudo apt-get install -y gdisk kpartx
4.
インスタンスのカーネルパラメータを確認します。
ubuntu:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.2.0-54-virtual root=UUID=4f392932-ed93-4f8f-aee772bc5bb6ca9d ro console=ttyS0 xen_emul_unplug=unnecessary
カーネルおよびルートデバイスのパラメータ ro console=ttyS0 と
xen_emul_unplug=unnecessary を書き留めます。オプションは異なる場合があります。
5.
/boot/grub/menu.lst のカーネル エントリを確認します。
ubuntu:~$ grep ^kernel /boot/grub/menu.lst
kernel /boot/vmlinuz-3.2.0-54-virtual root=LABEL=cloudimg-rootfs ro con
sole=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 パラメータが未指定であることに注意してください。ここで
も、オプションは異なる場合があります。
6.
/boot/grub/menu.lst ファイルを任意のテキストエディタで(vim や nanoなど)で編集して、
コンソールを変更し、先ほど確認したパラメータをブートエントリに追加します。
title
Ubuntu 12.04.3 LTS, kernel 3.2.0-54-virtual
root
(hd0)
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
100
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスから AMI を作成するStore-Backed Linux イン
スタンス
7.
initrd
/boot/initrd.img-3.2.0-54-virtual
title
root
kernel
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 con
sole=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
8.
(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. 98)」に記載された前提条件が満たされていることを前提としています。
1.
インスタンスに認証情報をアップロードします。Amazon ではこれらの認証情報を使用して、お客
様と Amazon EC2 だけがお客様の AMI にアクセスできるようにします。
a.
次のように、認証情報のための一時ディレクトリをインスタンスに作成します。
[ec2-user ~]$ mkdir /tmp/cert
b.
それにより、作成したイメージから認証情報を除外できます。
scp (p. 268) などの安全なコピーツールを使用して、コンピュータからインスタンスの /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-HKZYK
TAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem /path/to/cert-HKZYKTAIG2ECMXY
IBH3HXV4ZBEXAMPLE.pem [email protected]
aws.com:/tmp/cert/
pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717
0.7KB/s
00:00
cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 685
0.7KB/s
00:00
101
2.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスから AMI を作成するStore-Backed Linux イン
スタンス
ec2-bundle-vol コマンドを使用して、バンドルを 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. 672)、アタッチ (p. 676)、およびマウント (p. 678)することもできます。
a.
ec2-bundle-vol コマンドは、root として実行する必要があります。ほとんどのコマンドで、
sudo を使用することでアクセス許可を昇格させることができますが、この場合は、環境変数
を維持するために sudo -E su を実行する必要があります。
[ec2-user ~]$ sudo -E su
b.
次の引数を指定して ec2-bundle-vol コマンドを実行します。バンドルを格納するのに十分な空
きディスク領域が /tmp にない場合は、-d /path/to/bundle/storage オプションを使用
して、利用可能な領域がある場所を指定します。HVM インスタンスの場合は、必ず
--partition type フラグを追加します。そうしないと、AMI が起動しません。このコマン
ドと使用可能なオプションの詳細については、『Amazon EC2 コマンドラインリファレンス』
の「ec2-bundle-vol」を参照してください。
Important
Ubuntu 14.04 以降の HVM インスタンスの場合、--partition mbr フラグを追加し
て起動手順を正しくバンドルします。それ以外の場合は、新しく作成された AMI は起
動しません。
[root ec2-user]# $EC2_AMITOOL_HOME/bin/ec2-bundle-vol -k /tmp/cert/pkHKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c /tmp/cert/cert-HKZYKTAIG2ECMXY
IBH3HXV4ZBEXAMPLE.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 の作成時にブロックデバイスマッピングでインスタン
102
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスから AMI を作成するStore-Backed Linux イン
スタンス
スストアボリュームのみを指定でき、これらのマッピングは image.manifest.xml ファイルで指
定されます。詳細については、「ブロックデバイスマッピング (p. 752)」を参照してください。
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 >
/tmp/image.manifest.xml
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 ファイルを保存し、テキストエディタを終了します。
ec2-upload-bundle コマンドを使用して、バンドルを Amazon S3 にアップロードします。バケッ
トとフォルダーのパスがない場合、このコマンドによって作成されます。US East (N. Virginia) 以
外のリージョンで AMI を登録する予定の場合、--region オプションと、すでにターゲットリー
ジョンに存在するバケットパス、またはターゲットリージョンで作成できる一意のバケットパスの
両方でターゲットリージョンを指定する必要があります。
Note
Step 2.b (p. 102) で -d /path/to/bundle/storage オプションを使用してパスを指定し
た場合は、次のコマンドで /tmp ではなく -m オプションで同じパスを使用します。
[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
103
5.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Instance Store-Backed AMI を Amazon EBS-Backed AMI
に変換する
(オプション)バンドルを Amazon S3 にアップロードしたら、次の rm コマンドを使用して、イ
ンスタンスの /tmp ディレクトリからバンドルを削除できます。
Note
Step 2.b (p. 102) で -d /path/to/bundle/storage オプションを使用してパスを指定し
た場合は、次のコマンドで /tmp ではなく同じパスを使用します。
[ec2-user ~]$ sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image
6.
ec2-register コマンドを使用して、AMI を登録します。-O と -W は、環境変数の AWS_ACCESS_KEY
と AWS_SECRET_KEY を設定している場合は必要ありません。ec2-upload-bundle コマンドでリー
ジョンを以前に指定した場合は、ここでもう一度そのリージョンを指定します。
Important
必ず AMI 用の正しい仮想化タイプ (hvm または paravirtual) を設定してください。
[ec2-user ~]$ ec2-register my-s3-bucket/bundle_folder/bundle_name/image.mani
fest.xml -n AMI_name -O your_access_key_id -W your_secret_access_key --vir
tualization-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. 255)」を参照してください。Amazon Linux インスタンスには、Amazon EC2
コマンドラインと 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. 268) ディレクトリ
に X.509 プライベートキーをコピーします。次のコマンドの my-private-key パラメータ
104
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Instance Store-Backed AMI を Amazon EBS-Backed AMI
に変換する
は、SSH でインスタンスに接続するために使用するプライベートキーです。以下に例を示し
ます。
you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYK
TAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem [email protected]:/tmp/cert/
pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717
0.7KB/s
00:00
3.
AWS アクセスキーおよび秘密キーの環境変数を設定します。
[ec2-user ~]$ export AWS_ACCESS_KEY=your_access_key_id
[ec2-user ~]$ export AWS_SECRET_KEY=your_secret_access_key
4.
新しい AMI の Amazon EBS ボリュームを準備します。
a.
ec2-create-volume コマンドを使用して、インスタンスと同じアベイラビリティーゾーンに空
の Amazon EBS ボリュームを作成します。コマンド出力のボリューム ID を書き留めてくださ
い。
Important
この Amazon EBS ボリュームは、元のインスタンスストアのルートボリュームと同
じサイズ以上である必要があります。
[ec2-user ~]$ ec2-create-volume --size 10 --region us-west-2 --availab
ility-zone us-west-2b
VOLUME volume_id 10 us-west-2b creating 2014-01-24T23:11:45+0000
standard
b.
ec2-attach-volume コマンドを使用して、Amazon EBS-Backed インスタンスにボリュームを
アタッチします。
[ec2-user ~]$ ec2-attach-volume volume_id -i instance_id --device /dev/sdb
--region us-west-2
ATTACHMENT volume_id instance_id /dev/sdb attaching 2014-0124T23:15:34+0000
5.
バンドルのフォルダを作成します。
[ec2-user ~]$ mkdir /tmp/bundle
6.
ec2-download-bundle コマンドを使用して、Instance Store-Backe AMI のバンドルを /tmp/bundle
にダウンロードします。
[ec2-user ~]$ ec2-download-bundle -b my-s3-bucket/bundle_folder/bundle_name
-m image.manifest.xml -a $AWS_ACCESS_KEY -s $AWS_SECRET_KEY --privatekey
/path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle
105
7.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Instance Store-Backed AMI を Amazon EBS-Backed AMI
に変換する
ec2-unbundle コマンドを使用して、バンドルからイメージファイルを再作成します。
a.
バンドルフォルダにディレクトリを変更します。
[ec2-user ~]$ cd /tmp/bundle/
b.
ec2-unbundle コマンドを実行します。
[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.
バンドルを解除した新しいパーティションのボリュームを調査します。
[ec2-user bundle]$ sudo partprobe /dev/sdb
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
#
LABEL=/
/
tmpfs
/dev/shm
devpts
/dev/pts
sysfs
/sys
proc
/proc
nano /mnt/ebs/etc/fstab
ext4
tmpfs
devpts
sysfs
proc
defaults,noatime 1
1
defaults
0
0
gid=5,mode=620 0
0
defaults
0
0
defaults
0
0
106
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Instance Store-Backed AMI を Amazon EBS-Backed AMI
に変換する
/dev/sdb
0
/media/ephemeral0
auto
defaults,comment=cloudconfig
2
前述の例では、最後の行を削除する必要があります。
13. ボリュームをアンマウントし、インスタンスからデタッチします。
[ec2-user bundle]$ sudo umount /mnt/ebs
[ec2-user bundle]$ ec2-detach-volume volume_id --region us-west-2
ATTACHMENT volume_id instance_id /dev/sdb detaching 2014-01-24T23:15:34+0000
14. 次のように、新しい Amazon EBS ボリュームから AMI を作成します。
a.
新しい Amazon EBS ボリュームのスナップショットを作成します。
[ec2-user bundle]$ ec2-create-snapshot --region us-west-2 -d
"your_snapshot_description" -O $AWS_ACCESS_KEY -W $AWS_SECRET_KEY
volume_id
SNAPSHOT snapshot_id volume_id pending 2014-01-25T00:18:48+000
1234567891011 10 your_snapshot_description
b.
スナップショットが完了していることを確認します。
[ec2-user bundle]$ ec2-describe-snapshots --region us-west-2 snapshot_id
SNAPSHOT snapshot_id volume_id completed 2014-01-25T00:18:48+0000 100%
1234567891011 10 your_snapshot_description
c.
元の AMI で使用されたプロセッサーアーキテクチャ、仮想化タイプ、カーネルイメージ(aki)
を、ec2-describe-images コマンドを使用して特定します。このステップでは、元の Instance
Store-Backed AMI の AMI ID が必要です。
[ec2-user bundle]$ ec2-describe-images --region us-west-2 ami-id
IMAGE ami-8ef297be amazon/amzn-ami-pv-2013.09.2.x86_64-s3 amazon available
public x86_64 machine aki-fc8f11cc
instance-store paravirtual xen
d.
この例では、アーキテクチャは x86_64 で、カーネルイメージ ID は aki-fc8f11cc です。
次のステップでこれらの値を使用します。前述のコマンドの出力では ari ID もリストされま
すので、これも書き留めます。
新しい Amazon EBS ボリュームのスナップショット ID と前のステップで書き留めた値を使用
して、新しい AMI を登録します。前述のコマンド出力に ari ID がリストされていた場合は、
その ID を次のコマンドで --ramdisk ari_id.
[ec2-user bundle]$ ec2-register --region us-west-2 -n your_new_ami_name
-s snapshot_id -a x86_64 --kernel aki-fc8f11cc
IMAGE new-ami-id
を使用して指定します。
15. (オプション)新しい AMI からインスタンスを起動できることをテストした後で、この手順で作
成した Amazon EBS ボリュームを削除できます。
107
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
暗号化されたスナップショットを持つ AMI
$ ec2-delete-volume volume_id
暗号化されたスナップショットを持つ AMI
Abstract
さまざまな構成の AMI で EBS 暗号化を使用します。
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、Amazon EC2 コマンドライン、または AWS CLI を使用してアクセス可能です。
CopyImage の暗号化パラメーターは、AWS KMS が使用可能な全リージョンで利用できます。
暗号化された EBS スナップショットを含める AMI
シナリオ
AWS マネジメントコンソールまたはコマンドラインを使用して、AMI をコピーすると同時に関連する
EBS スナップショットを暗号化できます。
暗号化されたデータスナップショットをともなう AMI のコピー
このシナリオでは、ステップ 1 に示されるように、EBS-backed AMI に、暗号化されていないルートス
ナップショットおよび暗号化されたデータスナップショットがあります。ステップ 2 で暗号化パラメー
ターを指定しない CopyImage アクションが呼びだされます。その結果、各スナップショットの暗号化
ステータスが保持され、ステップ 3 の宛先 AMI も暗号化されていないルートスナップショットと暗号
化されたデータスナップショットにバックアップされます。スナップショットには同じデータが含まれ
ますが互いに区別され、いずれかの AMI で起動するインスタンスに対する料金と同様に、両方の AMI
のスナップショットに対するストレージコストが発生します。
108
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
暗号化された EBS スナップショットを含める AMI シナリ
オ
このように、Amazon EC2 コンソールまたはコマンドラインのいずれかを使用して、単純なコピーを
実行できます。詳細については、「AMI のコピー (p. 111)」を参照してください。
暗号化されたルートスナップショットにバックアップされた
AMI のコピー
このシナリオでは、ステップ 1 に示すように、Amazon EBS-backed AMI に暗号化されたルートスナッ
プショットがあります。ステップ 2 で暗号化パラメーターを指定しない CopyImage アクションが呼び
だされます。その結果、スナップショットの暗号化ステータスは保持され、ステップ 3 の宛先 AMI も
暗号化されたルートスナップショットでバックアップされます。ルートスナップショットには同一のシ
ステムデータが含まれますが互いに区別され、いずれかの AMI で起動するインスタンスに対する料金
と同様に、両方の AMI のスナップショットに対するストレージコストが発生します。
このように、Amazon EC2 コンソールまたはコマンドラインのいずれかを使用して、単純なコピーを
実行できます。詳細については、「AMI のコピー (p. 111)」を参照してください。
暗号化されていない AMI からの暗号化されたルートスナップ
ショットを持つ AMI の作成
このシナリオでは、ステップ 1 に示すように Amazon EBS-backed AMI に暗号化されていないルート
スナップショットがあり、ステップ 3 に示すように暗号化されたルートスナップショットを持つ AMI
が作成されます。ステップ 2 で、CMK の選択を含む 2 つの暗号化パラメーターを指定した CopyImage
アクションが呼び出されます。その結果、ルートスナップショットの暗号化ステータスが変更され、
ターゲット AMI は、元のスナップショットと同じデータを含むが指定されたキーを使用して暗号化さ
れたルートスナップショットにバックアップされます。いずれかの AMI で起動するインスタンスに対
する料金と同様に、両方の AMI でスナップショットのストレージコストが発生します。
Amazon EC2 コンソールまたはコマンドラインを使用して、このようなコピーおよび暗号化オペレー
ションを実行できます。詳細については、「AMI のコピー (p. 111)」を参照してください。
109
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
暗号化された EBS スナップショットを含める AMI シナリ
オ
実行中のインスタンスからの暗号化されたルートスナップショッ
トを持つ AMI の作成
このシナリオでは、実行中の EC2 インスタンスから AMI を作成します。ステップ 1 の実行中インスタ
ンスには暗号化されたルートボリュームがあり、ステップ 3 の作成された AMI には元のボリュームと
同じキーに暗号化されたルートスナップショットがあります。CreateImage アクションは暗号化の有
無にかかわらずまったく同じ動作をします。
Amazon EC2 コンソールまたはコマンドラインのいずれかを使用して、実行中の Amazon EC2 インス
タンス (暗号化されたボリュームがあってもなくても) から AMI を作成できます。詳細については、
「Amazon EBS-Backed Linux AMI の作成 (p. 93)」を参照してください。
暗号化されたスナップショットそれぞれに一意の 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 に暗号化さ
れた) を作成します。
4. EC2 インスタンスに暗号化されたデータボリュームをアタッチします。
5. これで、EC2 インスタンスには暗号化されたルートボリュームと、2 つの暗号化されたデータボ
リュームがあり、すべて異なるキーを使用しています。
6. EC2 インスタンスで CreateImage アクションを使用します。
7. 結果としてターゲット AMI には 3 つの EBS ボリュームである暗号化されたスナップショットがあ
り、すべて異なるキーを使用しています。
110
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI のコピー
Amazon EC2 コンソールまたはコマンドラインのいずれかを使用してこの処理を実行できます。詳細
については、次のトピックを参照してください。
•
•
•
•
インスタンスの作成 (p. 254)
Amazon EBS-Backed Linux AMI の作成 (p. 93)。
Amazon EBS ボリューム (p. 665)
AWS Key Management Service Developer Guideの「AWS Key Management」
AMI のコピー
Abstract
AMI を別のリージョンにコピーしたり、暗号化された Amazon EBS スナップショットによってバックアップされ
たバージョンを作成します。
CopyImage アクションをサポートする AWS マネジメントコンソール、コマンドラインまたは Amazon
EC2 API を使用して、AWS リージョン内、またはリージョン間で (AMI を) コピーできます。Amazon
EBS-backed AMI および instance store-backed AMI のどちらもコピーできます。
ソース AMI をコピーすると、同一ではあるが独自の識別子を使用するターゲット AMI となります。
Amazon EBS-backed AMI の場合は、それぞれの AMI をバックアップするスナップショットは、デフォ
ルトでは、同一だが区別されるターゲットスナップショットにコピーされます。(唯一の例外は、以下
に説明するように、スナップショットの暗号化を選択した場合です。)ソース AMI は、ターゲット AMI
に影響を及ぼさずに変更または登録解除できます。逆の場合も同様です。
AMI のコピーには課金されません。ただし、標準のストレージ料金とデータ転送料金が適用されます。
AWS は元の AMI から新しい AMI に起動許可、ユーザー定義のタグ、Amazon S3 バケット許可をコ
ピーしません。コピー操作が完了すると、起動許可、ユーザー定義のタグ、Amazon S3 バケット許可
を新しい AMI に適用できます。
111
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
所有している AMI のコピー
所有している AMI のコピー
CopyImage アクションを使用して、所有している AMI をコピーできます。暗号化されたスナップショッ
トを持つ AMI も含まれます。
別の AWS アカウントからの AMI のコピー
必要なアクセス権限を持っている場合、自分のアカウントに属さない AMI もコピーできます。暗号化
されたスナップショットを持つ AMI も含まれます。アカウントの所有者は、関連 EBS スナップショッ
ト (Amazon EBS-backed AMI の場合) であっても関連 Amazon S3 バケット (instance-store-backed AMI
の場合) であっても、AMI をバックアップするストレージの読み取り権限を付与する必要があります。
他のアカウントに自分の AMI のコピーを許可するには、Amazon EBS または Amazon S3 アクセス管
理ツールを使用して、関連スナップショットまたはバケットの読み取り権限を付与する必要がありま
す。
Note
CopyImage アクションは、billingProduct コードが関連付けられたどのような AMI のコ
ピーもサポートしていません。これには、Windows AMI や、AWS Marketplace で購入した他
のアカウントが所有または共有する AMI が含まれます。billingProduct コードが関連付け
られた AMI のプライベートコピーを作成するには、コピーする AMI から EC2 インスタンスを
起動して、その実行中インスタンスからイメージを作成することをお勧めします。こうするこ
とで自分が所有するプライベート AMI となり、所有する他の AMI と同様にカスタマイズでき
ます。たとえば、EBS-backed Red Hat Enterprise Linux AMI のプライベートコピーを作成した
場合、その AMI に CopyImage を使用して Red Hat Enterprise Linux AMI を暗号化されたルー
トボリュームとともに作成できます。詳細については、「Amazon EBS-Backed Linux AMI の
作成 (p. 93)」を参照してください。
AMI がコピーされると、ソース AMI の所有者に標準の Amazon EBS または Amazon S3 移管費用が課
金され、ターゲット AMI の所有者には宛先リージョンのストレージ料金が課金されます。
リージョンをまたがるコピー
地理的に分散したリージョンに AMI をコピーすると、次のような利点があります。
• 一貫性のあるグローバルなデプロイメント: 1 つのリージョンから別のリージョンに AMI をコピーす
ることで、同じ AMI を基にして一貫性のあるインスタンスを別のリージョンに起動できます。
• スケーラビリティ: ユーザーの場所にかかわらず、ユーザーのニーズに合った世界規模のアプリケー
ションをより簡単に設計できます。
• パフォーマンス: アプリケーションを配布したり、アプリケーションの重要なコンポーネントをユー
ザーの近くに配置したりすることでパフォーマンスを向上できます。また、インスタンスの種類やそ
の他の AWS サービスなど、リージョン固有の機能を活用することもできます。
• 高可用性: アプリケーションを設計し、AWS リージョン全体にわたってデプロイして可用性を高める
ことができます。
次の図は、ソース AMI と異なるリージョンにある 2 つのコピーされた AMI、およびそこから起動され
る EC2 インスタンスの関係を示します。AMI からインスタンスを起動すると、AMI が存在する同じリー
ジョンに存在します。ソース AMI を変更し、それらの変更をターゲットリージョンの AMI に反映させ
る場合、ソース AMI をターゲットリージョンに再度コピーする必要があります。
112
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
暗号化してコピー
instance store-backed AMI を最初にリージョンにコピーするときに、そのリージョンにコピーされた
AMI に Amazon S3 バケットを作成します。そのリージョンにコピーするすべての instance store-backed
AMI が、このバケットに保存されます。これらのバケットの名前の形式は次のとおりです。amis-for- -in- - . 例: amis-for-123456789012-in-us-west-2-yhjmxvp6.
Note
コピー先のリージョンには、AMI の同時コピーが 50 個までという制限があり、1 つのコピー
元リージョンからは 25 個までです。この制限の増加をリクエストする方法については、Amazon
EC2 サービスの制限 (p. 784) を参照してください。
AMI をコピーする前に、ソース AMI のすべてのコンテンツが、異なるリージョンでの実行をサポート
するように更新されていることを確認する必要があります。たとえば、データベース接続文字列や同様
のアプリケーション設定データが、適切なリソースを指すように更新する必要があります。それ以外の
場合、対象のリージョンの新しい AMI から起動したインスタンスは元のリージョンのリソースをまだ
使用している可能性があり、それによりパフォーマンスとコストに影響が及ぶことがあります。
暗号化してコピー
コピー中の暗号化は、Amazon EBS-backed AMI のみに適用されます。instance store-backed AMI はス
ナップショットに依存しないため、CopyImage アクションを使用して暗号化ステータスを変更できま
せん。
CopyImage アクションは、暗号化された Amazon EBS スナップショットにバックアップされた新規
AMI の作成にも使用できます。AMI のコピー中に暗号化を呼び出すと、ルートボリュームを含む関連
Amazon EBS ボリュームの各スナップショットが指定されたキーを使用して暗号化されます。暗号化
されたスナップショットを持つ AMI の使用の詳細については、「暗号化されたスナップショットを持
つ AMI (p. 108)」を参照してください。
デフォルトでは、AMI をバックアップするスナップショットは元の暗号化ステータスとともにコピーさ
れます。暗号化されていないスナップショットにバックアップされた AMI をコピーすると、やはり暗
号化されていない同一のターゲットスナップショットになります。ソース AMI が暗号化されたスナッ
プショットにバックアップされている場合は、コピーすると指定されたキーに暗号化されたターゲット
スナップショットになります。複数のスナップショットにバックアップされた AMI をコピーした場合
は、元の暗号化ステータスが各ターゲットスナップショットで維持されます。複数のスナップショット
を持つ AMI のコピーの詳細については、「暗号化されたスナップショットを持つ AMI (p. 108)」を参照
してください。
次の表は、各種シナリオにおける暗号化サポートを示します。暗号化されたスナップショットを生成す
るために暗号化されていないスナップショットをコピーすることはできますが、暗号化されていないス
ナップショットを生成するために暗号化されたスナップショットをコピーすることはできないことに注
意してください。
113
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI コピーのシナリオ
シナリオ
説明
サポート対象
1
非暗号化から非暗号化
はい
2
暗号化から暗号化
はい
3
非暗号化から暗号化
はい
4
暗号化から非暗号化
いいえ
AMI コピーのシナリオ
このセクションでは、AMI をコピーするための基本シナリオについて説明し、Amazon EC2 コンソー
ルおよびコマンドラインを使用したコピー手順を示します。
暗号化されていないソース AMI の暗号化されていないターゲット AMI へのコピー
最も簡単なケースとして、暗号化されていない単一のバックアップスナップショットを持つ AMI のコ
ピーを、指定された地理的リージョン (非表示) に作成します。
Note
上記の図は単一のスナップショットにバックアップされた AMI を示していますが、CopyImage
アクションは複数のスナップショットを持つ AMI でも機能します。各スナップショットの暗号
化ステータスは維持されます。つまり、ソース AMI に暗号化されていないスナップショットが
あれば、ターゲット AMI に暗号化されていないスナップショットが作成され、ソース AMI に
暗号化されたスナップショットがあれば、ターゲット AMI に暗号化されたスナップショットが
作成されることを意味します。
暗号化されたソース AMI の暗号化されたターゲット AMI へのコピー
このシナリオには暗号化されたスナップショットが含まれますが、機能としては前のシナリオと同じで
す。
114
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
コンソールまたはコマンドラインを使用した AMI のコピー
Note
複数のスナップショット AMI のコピー中に暗号化を適用すると、すべてのターゲットスナップ
ショットは、指定されたキーまたは指定がない場合はデフォルトキーを使用して暗号化されま
す。複数のキーに暗号化された複数のスナップショットを持つ AMI のコピーについては、「暗
号化されたスナップショットを持つ AMI (p. 108)」を参照してください。
暗号化されていないソース AMI の暗号化されたターゲット AMI へのコピー
この最後のシナリオでは、CopyImage アクションが、暗号化されていないスナップショットを暗号化、
または暗号化されたスナップショットを別のキーを使用した再暗号化することで、インスタンスの対象
イメージの暗号化ステータスを変更します。コピー中に暗号化を適用するには、暗号化パラメーター
(暗号化フラグおよびキー) を指定する必要があります。ターゲットスナップショットから作成されたボ
リュームは、このキーを指定する場合にのみアクセスできます。AMI でサポートされる暗号化シナリオ
については、「暗号化されたスナップショットを持つ AMI (p. 108)」を参照してください。
コンソールまたはコマンドラインを使用した AMI の
コピー
次の手順のステップは、各シナリオの図の 3 つのステップに対応しています。暗号化オプションの設定
とは異なり、CopyImage アクションの実行手順はどの場合でも同じです。
コンソールを使用して AMI をコピーするには
1.
2.
Amazon EBS スナップショットによってバックアップされた AMI を作成、または取得します。詳
細については、Amazon EBS-Backed Linux AMI の作成 (p. 93) を参照してください。AWS が提供
するさまざまな AMI が Amazon EC2 コンソールを通じて利用できます。
コンソールナビゲーションバーから、コピーする AMI を含むリージョンを選択します。ナビゲー
ションペインで、[Images] を展開し、[AMIs] を選択して、選択したリージョンで利用できる AMI
のリストを表示します。
コピーする AMI を選択し、[Actions] および [Copy AMI] を選択します。
[AMI Copy] ページで、次のフィールドを設定し、[Copy AMI] を選択します。
• [Destination region] で、AMI をコピーするリージョンを選択します。
• [Name]: 新しい AMI の名前を入力します。
• [Description]: デフォルトでは、オリジナルからコピーを見分けられるように、ソース AMI に関
する情報が説明に含まれています。この説明は必要に応じて変更できます。
• [Encryption]: ターゲット Amazon EBS スナップショットを暗号化するか、または別のキーを使
用して再暗号化する場合は、このフィールドを選択します。
115
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
保留中の AMI コピー操作を中止する
• [Master Key]: [Encryption] が選択された場合にターゲット Amazon EBS スナップショットを暗
号化するために使用する KMS キーです。
3.
コピーオペレーションが開始したことを知らせる確認ページが表示され、新しい AMI の ID が提供
されます。
コピーオペレーションの進捗状況をすぐに確認するには、提供されたリンクをクリックしてくださ
い。後で進行状況を確認するには [Done] を選択し、自分の準備ができたときに、ナビゲーション
バーを使用してターゲットリージョン (ある場合) を切り替え、AMI のリストから AMI を見つけま
す。
ターゲット AMI の初期ステータスは pending です。ステータスが available になると、オペ
レーションは完了します。
コマンドラインを使用して AMI をコピーするには
コマンドラインを使用して AMI をコピーする場合は、コピー元のリージョンとコピー先のリージョン
の両方を指定する必要があります。コピー元のリージョンは、--source-region パラメータを使用し
て指定します。コピー先のリージョンを指定するには、次の 2 つの方法があります。
• --region パラメータを使用する。
• 環境変数を設定する。詳細については、「CLI ツールの設定(Linux)」および「」を参照してくだ
さい。
コピー実行中に、ターゲットスナップショットを暗号化する場合は、2 つの追加パラメーターを指定す
る必要があります。
• ブール、--encrypted
• 文字列、--kms-key-id、マスター暗号化キー ID を指定
次のコマンドのいずれかを使用して AMI をコピーできます。これらのコマンドラインインターフェイ
スの詳細については、「Amazon EC2 へのアクセス (p. 3)」を参照してください。
• copy-image(AWS CLI)
• ec2-copy-image(Amazon EC2 CLI)
• Copy-EC2Image(AWS Tools for Windows PowerShell)
保留中の AMI コピー操作を中止する
AWS マネジメントコンソールまたはコマンドラインを使用して、保留中の AMI コピーを中止できま
す。
コンソールを使用して AMI のコピー操作を中止するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションバーのリージョンセレクターから対象のリージョンを選択します。
3.
4.
ナビゲーションペインで [AMIs] を選択します。
コピーを中止する AMI を選択し、[Actions] および [Deregister] を選択します。
5.
確認を求められたら、[Continue] を選択します。
116
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
AMI の登録解除
コマンドラインを使用して AMI コピー操作を中止するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• deregister-image(AWS CLI)
• ec2-deregister(Amazon EC2 CLI)
• Unregister-EC2Image(AWS Tools for Windows PowerShell)
AMI の登録解除
Abstract
AMI の利用が終わったら、その登録を解除します。
AMI の利用が終わったら、その登録を解除できます。AMI の登録を解除すると、それを使用して新しい
インスタンスを起動できなくなります。
AMI の登録を解除しても、AMI から既に起動したインスタンスに影響を与えることはありません。その
ようなインスタンスの使用に対しては引き続き課金されます。そのため、使用が終わったら、インスタ
ンスを終了することをお勧めします。
AMI のクリーンアップに使用する手順は、Amazon EBS-Backed と Instance Store-Backed で異なりま
す。(インスタンスストアによるサポートが可能な Windows AMI は、Windows Server 2003 用の AMI
のみです。)
目次
• Amazon EBS-Backed AMI をクリーンアップする (p. 117)
• Instance Store-Backed AMI をクリーンアップする (p. 118)
Amazon EBS-Backed AMI をクリーンアップする
Amazon EBS でサポートされる AMI の登録を解除しても、AMI 作成プロセス中にインスタンスのルー
トボリュームに対して作成されたスナップショットには影響しません。このスナップショットのスト
レージは引き続き課金されます。そのため、使用が終わったら、スナップショットは削除することをお
勧めします。
次の図は、Amazon EBS-Backed AMI のクリーンアッププロセスについてまとめたものです。
117
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.
4.
ナビゲーションペインで、[Snapshots] を選択し、スナップショットを選択します ([Description] 列
で AMI ID を探します)。[Actions] を選択してから、[Delete Snapshot] を選択します。確認を求め
るメッセージが表示されたら、[Yes, Delete] を選択します。
(オプション)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 のクリーンアッププロセスをまとめたものです。
Instance Store-Backed AMI をクリーンアップするには
1.
次のように、ec2-deregister コマンドを使用して AMI の登録を解除します。
ec2-deregister ami_id
AMI の現在のステータスは unavailable です。
2.
次のように、ec2-delete-bundle コマンドを使用してバンドルを削除します。
118
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon Linux
ec2-delete-bundle -b myawsbucket/myami -a your_access_key_id -s
your_secret_access_key -p image
3.
(オプション)AMI から起動したインスタンスの使用が終わったら、次のように、
ec2-terminate-instances コマンドを使用してそれを終了します。
ec2-terminate-instances instance_id
4.
(オプション)バンドルをアップロードした Amazon S3 バケットの使用が終わったら、バケット
を削除できます。Amazon S3 バケットを削除するには、Amazon S3 コンソールを開き、バケット
を選んで、[Actions] を選択してから、[Delete] を選択します。
Amazon Linux
Abstract
Amazon Linux は Amazon EC2 で使用するために AWS が提供する Linux イメージです。
Amazon Linux はアマゾン ウェブ サービス(AWS)が提供します。これは Amazon EC2 上で実行する
アプリケーションのために安定した安全で高性能な実行環境を提供できるよう設計されています。また
これには、起動設定ツールおよび多くの AWS 人気ライブラリやツールなど、AWS の統合を容易にす
るいくつかのパッケージも含まれています。AWS は Amazon Linux を実行しているすべてのインスタ
ンスに、現行のセキュリティとメンテナンスの更新を提供します。
Amazon Linux インスタンスを起動するには、Amazon Linux AMI を使用します。AWS は、Amazon
Linux AMI を Amazon EC2 ユーザーに追加料金なしで提供しています。
トピック
• Amazon Linux AMI の検索 (p. 119)
• Amazon Linux インスタンスを起動し、それに接続する (p. 120)
• Amazon Linux AMI イメージの特定 (p. 120)
• 組み込まれている AWS コマンドラインツール (p. 121)
• cloud-init (p. 121)
• リポジトリの設定 (p. 123)
• パッケージの追加 (p. 123)
• 参照のためのソースパッケージへのアクセス (p. 124)
• アプリケーションの開発 (p. 125)
• インスタンスストアアクセス (p. 125)
• 製品ライフサイクル (p. 125)
• セキュリティの更新 (p. 125)
• サポート (p. 126)
Amazon Linux AMI の検索
最新の Amazon Linux AMI のリストについては、「Amazon Linux AMI」を参照してください。
119
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon Linux インスタンスを起動し、それに接続する
Amazon Linux インスタンスを起動し、それに接続す
る
希望する AMI が見つかったら、AMI ID を控えておきます。AMI ID を使ってインスタンスを起動し、そ
のインスタンスに接続することができます。
デフォルトでは、Amazon Linux はリモートルート SSH を許可しません。また、パスワード認証は、
パスワードのブルートフォース攻撃を防ぐために無効になっています。Amazon Linux インスタンスへ
の SSH ログインを有効にするには、起動時にキーペアをインスタンスに提供する必要があります。イ
ンスタンスを起動するときに使用するセキュリティグループで、SSH アクセスを許可するよう設定す
る必要もあります。デフォルトでは、SSH を使用してリモートログインできる唯一のアカウントは
ec2-user です。このアカウントには sudo 特権もあります。リモートルートログインを有効にする場
合は、このログインが、キーペアおよびセカンダリユーザーを使用する場合よりも安全性が低いことに
注意してください。
Amazon Linux インスタンスの起動と使用についての詳細は、インスタンスの作成 (p. 254) を参照してく
ださい。Amazon Linux インスタンスへの接続についての詳細は、Linux インスタンスへの接続 (p. 267)
を参照してください。
Amazon Linux AMI イメージの特定
各イメージには AMI を特定する一意の /etc/image-id が含まれています。このファイルには、イメー
ジに関する情報が含まれています。
次は、/etc/image-id ファイルの例です。
[ec2-user ~]$ cat /etc/image-id
image_name="amzn-ami-hvm"
image_version="2015.09"
image_arch="x86_64"
image_file="amzn-ami-hvm-2015.09.0.x86_64.ext4.gpt"
image_stamp="f819-da48"
image_date="20150916025513"
recipe_name="amzn ami"
recipe_id="b4b7f85d-c9b8-99ae-c1bb-634d-20d8-50a5-3aa92282"
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 2015.09
Amazon Linux には、/etc/system-release-cpe 内の機械による読み取りが可能なバー ジョンの
/etc/system-release ファイルも含まれます。また、MITRE の CPE 仕様に準拠しています(CPE)。
120
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
組み込まれている AWS コマンドラインツール
組み込まれている 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
aws-apitools-*コマンドラインツールはあらゆる Amazon Linux バージョンに付属していますが、
aws-cli コマンドラインツールはすべての Amazon Web Services において共通の操作で利用でき、最
終的にサービス特有のツールセットに置き換わる予定です。
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/ を参照してください。
121
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
cloud-init
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
• ユーザーデータに基づく、ロケール設定ファイルのロケールを設定する
サポートされているユーザーデータ形式
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
122
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リポジトリの設定
から読み取られたコンテンツは 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 のあるバージョンから次のバージョンへのローリング更新を可
能にするように、連続的な更新が配信されるように設定されています。たとえば、前のバージョンの
Amazon Linux AMI(2015.03 やそれより前のバージョンなど)からインスタンスを起動し、yum update
-y を実行する場合でも、最新のパッケージが利用できます。
Amazon Linux のローリング更新を無効にするには、lock-on-launch 機能を有効にします。Lock-on-launch
機能は、新たに起動したインスタンスが、指定したリリースの AMI からのみ更新を受け取れるように
ロックします。たとえば、2015.09 AMI に移行する準備ができるまでは、2015.03 AMI を起動したとき
に、2015.09 AMI より前にリリースされた更新のみを受け取るよう指定できます。新しいインスタンス
で lock-on-launch を有効にするには、Amazon EC2 コンソールまたは -f フラグが設定された
ec2-run-instances コマンドを使用して、次のユーザーデータを cloud-init に渡してインスタン
スを起動します。
#cloud-config
repo_releasever: 2015.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 コマンドを発行します。
123
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
参照のためのソースパッケージへのアクセス
[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. 121)」を参照してください。
Important
VPC(Virtual Private Cloud)でインスタンスを実行している場合、yum リポジトリにアクセス
するために、インターネットゲートウェイを VPC にアタッチする必要があります。詳細につ
いては、Amazon VPC ユーザーガイド のインターネットゲートウェイを参照してください。
参照のためのソースパッケージへのアクセス
Amazon Linux で提供されているツールを使用して、インスタンスにインストールしたパッケージソー
スを参照するために表示できます。ソースパッケージは、Amazon Linux およびオンラインパッケージ
リポジトリに含まれるすべてのパッケージで利用できます。インストールするソースパッケージのパッ
ケージ名を確認し、get_reference_source コマンドを使用して実行中のインスタンス内にソースを
表示します。以下に例を示します。
[ec2-user ~]$ get_reference_source -p bash
レスポンスの例を次に示します。
Requested package: bash
Found package from local RPM database: bash-4.1.2-15.17.amzn1.x86_64
Corresponding source RPM to found package :
bash-4.1.2-15.17.amzn1.src.rpm
Are these parameters correct? Please type 'yes' to continue: yes
Source RPM downloaded to:
/usr/src/srpm/debug/bash-4.1.2-15.17.amzn1.src.rpm
ソース RPM は、インスタンスの /usr/src/srpm/debug ディレクトリにあります。ソース RPM は
この場所から解凍されます。そして、標準の RPM ツールを使用して、参照するためにソースツリーを
表示できます。デバッグが完了したら、パッケージを利用できます。
Important
VPC(Virtual Private Cloud)でインスタンスを実行している場合、yum リポジトリにアクセス
するために、インターネットゲートウェイを VPC にアタッチする必要があります。詳細につ
いては、Amazon VPC ユーザーガイド のインターネットゲートウェイを参照してください。
124
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
アプリケーションの開発
アプリケーションの開発
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 インスタンスでデータまたはカスタム設定を保存する必要が
ある場合は、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
起動時に更新をインスタンスに適用しません。
125
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
サポート
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 サポート」を参照してください。
Amazon Linux についてご質問がありましたら、Amazon EC2 forum に投稿することをお勧めします。
PV-GRUB
Abstract
準仮想化(PV)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 でインスタンスを起動する方法が最適です。この方法では、カスタムカーネルを
インスタンス上でコンパイルして、「GRUB の設定 (p. 127)」で説明されているように、そのカーネル
で起動するように 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. 127)
126
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
PV-GRUB の制約事項
• GRUB の設定 (p. 127)
• Amazon PV-GRUB カーネルイメージ ID (p. 128)
• PV-GRUB の更新 (p. 130)
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 で論理ボリュームを作成できます。
GRUB の設定
PV-GRUB を起動するには、GRUB menu.lst ファイルがイメージに含まれている必要があります。こ
のファイルの最も一般的な場所は /boot/grub/menu.lst です。
次の例は、PV-GRUB AKI を使用して AMI を起動する menu.lst 設定ファイルです。この例では、
Amazon Linux2015.09 (この AMI の元々のカーネル) と Vanilla Linux4.3 (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.3
root (hd0)
kernel /boot/vmlinuz-4.3 root=LABEL=/ console=hvc0
initrd /boot/initrd.img-4.3
title Amazon Linux 2015.09 (4.1.10-17.31.amzn1.x86_64)
root (hd0)
kernel /boot/vmlinuz-4.1.10-17.31.amzn1.x86_64 root=LABEL=/ console=hvc0
initrd /boot/initramfs-4.1.10-17.31.amzn1.x86_64.img
127
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon PV-GRUB カーネルイメージ ID
menu.lst ファイルにフォールバックカーネルを指定する必要はありません。ただし、新しいカーネル
をテストするときは、フォールバックを設定することをお勧めします。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-136bf512
pv-grub-hd0_1.04-i386.gz
aki-176bf516
pv-grub-hd0_1.04-x86_64.gz
128
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon PV-GRUB カーネルイメージ ID
ap-northeast-2、アジアパシフィック (ソウル)
イメージ ID
イメージ名
aki-01a66b6f
pv-grub-hd0_1.04-x86_64.gz
ap-southeast-1, アジアパシフィック(シンガポール)リージョン
イメージ ID
イメージ名
aki-ae3973fc
pv-grub-hd0_1.04-i386.gz
aki-503e7402
pv-grub-hd0_1.04-x86_64.gz
ap-southeast-2、アジアパシフィック(シドニー)
イメージ ID
イメージ名
aki-cd62fff7
pv-grub-hd0_1.04-i386.gz
aki-c362fff9
pv-grub-hd0_1.04-x86_64.gz
eu-central-1、欧州(フランクフルト)
イメージ ID
イメージ名
aki-3e4c7a23
pv-grub-hd0_1.04-i386.gz
aki-184c7a05
pv-grub-hd0_1.04-x86_64.gz
eu-west-1、欧州(アイルランド)
イメージ ID
イメージ名
aki-68a3451f
pv-grub-hd0_1.04-i386.gz
aki-52a34525
pv-grub-hd0_1.04-x86_64.gz
sa-east-1、南米(サンパウロ)
イメージ ID
イメージ名
aki-5b53f446
pv-grub-hd0_1.04-i386.gz
aki-5553f448
pv-grub-hd0_1.04-x86_64.gz
us-east-1、US East (N. Virginia)
イメージ ID
イメージ名
aki-8f9dcae6
pv-grub-hd0_1.04-i386.gz
aki-919dcaf8
pv-grub-hd0_1.04-x86_64.gz
129
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
PV-GRUB の更新
us-gov-west-1, AWS GovCloud (US)
イメージ ID
イメージ名
aki-1fe98d3c
pv-grub-hd0_1.04-i386.gz
aki-1de98d3e
pv-grub-hd0_1.04-x86_64.gz
us-west-1、米国西部(北カリフォルニア)
イメージ ID
イメージ名
aki-8e0531cb
pv-grub-hd0_1.04-i386.gz
aki-880531cd
pv-grub-hd0_1.04-x86_64.gz
us-west-2、米国西部(オレゴン)
イメージ ID
イメージ名
aki-f08f11c0
pv-grub-hd0_1.04-i386.gz
aki-fc8f11cc
pv-grub-hd0_1.04-x86_64.gz
PV-GRUB の更新
すべてのバージョンの PV-GRUB AKI がすべてのインスタンスタイプと互換性があるとは限らないた
め、常に最新バージョンの PV-GRUB AKI を使用することをお勧めします。また、古いバージョンの
PV-GRUB はすべてのリージョンで使用できるわけではないため、旧バージョンを使用する AMI を、
そのバージョンをサポートしないリージョンにコピーした場合、カーネルのイメージを更新するまで、
その AMI から起動されたインスタンスを起動できなくなります。次の手順を使用してインスタンスの
PV-GRUB のバージョンを確認し、必要に応じて更新します。
PV-GRUB のバージョンを確認するには
1.
インスタンスのカーネル ID を見つけます。
$ ec2-describe-instance-attribute instance_id --kernel --region region
kernel instance_id aki-fc8f11cc
このインスタンスのカーネル ID は、aki-fc8f11cc です。
2.
このカーネル ID のバージョン情報を表示します。
$ ec2-describe-images aki-fc8f11cc --region region
IMAGE aki-fc8f11cc amazon/pv-grub-hd0_1.04-x86_64.gz ...
このカーネルイメージは PV-GRUB 1.04 です。PV-GRUB のバージョンが最新バージョン(Amazon
PV-GRUB カーネルイメージ ID (p. 128) を参照)でない場合、次の手順を使用して更新する必要が
あります。
130
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
PV-GRUB の更新
PV-GRUB のバージョンを更新するには
インスタンスが古いバージョンの PV-GRUB を使用している場合は、最新バージョンに更新する必要が
あります。
1.
2.
Amazon PV-GRUB カーネルイメージ ID (p. 128) で、使用するリージョンとプロセッサアーキテク
チャーの最新の PV-GRUB AKI を特定します。
インスタンスを停止します。使用されるカーネルイメージを変更するには、インスタンスを停止す
る必要があります。
$ ec2-stop-instances instance_id --region region
INSTANCE instance_id stopped stopped
3.
インスタンスに使用するカーネルイメージを変更します。
$ ec2-modify-instance-attribute --kernel kernel_id --region region instance_id
4.
インスタンスを再起動します。
$ ec2-start-instances --region region instance_id
131
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 インスタンス
Abstract
インスタンスの設定、起動、接続、および管理。
Amazon EC2 を初めて使用する場合は、次のトピックを参照して使用を開始してください。
• Amazon EC2 とは (p. 1)
• Amazon EC2 でのセットアップ (p. 22)
• Amazon EC2 Linux インスタンスの開始方法 (p. 30)
• インスタンスのライフサイクル (p. 251)
実稼働環境を起動する前に、以下の質問に答える必要があります。
Q: ニーズに最も合っているインスタンスタイプはどれですか。
Amazon EC2 には、アプリケーションを実行するために必要な CPU、メモリ、ストレージ、ネッ
トワークキャパシティを選択できるようにするため、さまざまなインスタンスタイプが用意されて
います。詳細については、「インスタンスタイプ (p. 133)」を参照してください。
Q: ニーズに最も合っている購入オプションはどれですか。
Amazon EC2 は、オンデマンドインスタンス(デフォルト)、スポットインスタンス、およびリ
ザーブドインスタンスをサポートします。詳細については、「インスタンス購入オプション(p.165)」
を参照してください。
Q: ニーズに合っているルートボリュームのタイプはどれですか。
各インスタンスは Amazon EBS またはインスタンスストアによってサポートされています。必要
なルートボリュームのタイプに基づいて AMI を選択します。詳細については、「ルートデバイス
のストレージ (p. 71)」を参照してください。
Q. 仮想プライベートクラウドを使用するとメリットがありますか。
EC2-Classic または EC2-VPC でインスタンスを起動できる場合は、どちらのプラットフォームが
ニーズに合っているかを判断する必要があります。詳細については、「サポートされているプラッ
トフォーム (p. 584)」および「Amazon EC2 と Amazon Virtual Private Cloud (p. 578)」を参照してく
ださい。
132
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスタイプ
インスタンスタイプ
Abstract
Amazon EC2 では、コンピューティング、メモリ、ストレージ、ネットワークの能力が異なるさまざまなインスタ
ンスタイプが提供されています。
インスタンスを起動するときは、指定したインスタンスタイプによって、インスタンスに使用するホス
トコンピュータのハードウェアが決まります。インスタンスタイプごとに、コンピューティング、メモ
リ、およびストレージの機能は異なり、これらの機能に基づいてインスタンスファミリーにグループ分
けされます。インスタンスタイプは、インスタンス上で実行するアプリケーションやソフトウェアの要
件に基づいて選択します。
Amazon EC2 は、基になっているハードウェアに関係なく、各インスタンスに、一貫した予測可能な
CPU 能力を提供します。
Amazon EC2 は、CPU、メモリ、インスタンスストレージなどのホストコンピュータの一部のリソー
スを、特定のインスタンス専用に割り当てます。ネットワークやディスクサブシステムなどの他のホス
トコンピュータリソースは、インスタンス間で共有されます。ホストコンピュータの各インスタンス
が、これらの共有リソースの 1 つを可能な限り利用しようとする場合、それぞれのインスタンスは、そ
のリソースの共有分を等しく受け取ります。ただし、リソースの使用率が低い場合は、1 つのインスタ
ンスがそのリソースを多く使用できます。
各インスタンスタイプは、共有リソースからからより高い、またはより低い最小性能を提供します。た
とえば、高速の I/O パフォーマンスを実行するインスタンスタイプは、共有リソースに対してより大き
な割り当てを取得します。共有リソースをより大きく配分することによって、I/O 性能のばらつきを抑
えることもできます。ほとんどのアプリケーションでは、中程度の I/O 性能があれば十分です。ただ
し、より高い、またはより一貫した I/O パフォーマンスを必要とするアプリケーションの場合は、より
I/O パフォーマンスの高いインスタンスタイプを使用することを検討してください。
目次
• 利用可能なインスタンスタイプ (p. 133)
• ハードウェア仕様 (p. 134)
• 仮想化タイプ (p. 134)
• ネットワーキング機能とストレージ機能 (p. 135)
• インスタンスの制限 (p. 136)
利用可能なインスタンスタイプ
Amazon EC2 では、次の表で示すインスタンスタイプが提供されます。
現行世代のインスタンス
最適なパフォーマンスを得るために、新しいインスタンスを起動するときには、現行世代のインスタン
スタイプを使用することをお勧めします。現行世代のインスタンスタイプの詳細については、「Amazon
EC2 インスタンス」を参照してください。
インスタンスファミリー
現行世代のインスタンスタイプ
汎用
t2.nano | t2.micro | t2.small | t2.medium | t2.large |
m4.large | m4.xlarge | m4.2xlarge | m4.4xlarge |
m4.10xlarge | m3.medium | m3.large | m3.xlarge | m3.2xlarge
133
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ハードウェア仕様
インスタンスファミリー
現行世代のインスタンスタイプ
コンピューティングの最適化
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
ストレージの最適化
i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge |
d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge
GPU インスタンス
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
GPU インスタンス
cg1.4xlarge
マイクロインスタンス
t1.micro
ハードウェア仕様
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
お客様のニーズに最適なインスタンスタイプを決定するには、インスタンスを起動し、独自のベンチ
マークアプリケーションを使用することをお勧めします。支払いはインスタンス時間単位なので、決定
する前に複数のインスタンスタイプをテストすると、便利なうえ、コストを抑えることができます。
決定を行った後でも、ニーズが変化したときは、インスタンスのサイズを変更できます。詳細について
は、「インスタンスのサイズ変更 (p. 161)」を参照してください。
仮想化タイプ
各インスタンスタイプは、準仮想化(PV)またはハードウェア仮想マシン(HVM)のいずれかの仮想
化タイプをサポートします。インスタンスの仮想化タイプは、インスタンスの起動に使用する AMI に
よって決まります。
最適なパフォーマンスを得るために、HVM AMI を使用することをお勧めします。さらに、拡張ネット
ワーキングのメリットを活用するには、HVM AMI が必要です。HVM 仮想化は、AWS プラットフォー
134
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ネットワーキング機能とストレージ機能
ムによって提供されるハードウェアアシストテクノロジーを使用します。HVM 仮想化を使用すると、
ゲスト VM はネイティブハードウェアプラットフォーム上で動作しているかのように動作します。ただ
し、パフォーマンスの向上のために PV ネットワークとストレージドライバは使用します。詳細につい
ては、「Linux AMI 仮想化タイプ (p. 74)」を参照してください。
ネットワーキング機能とストレージ機能
インスタンスタイプを選択すると、次のうち、使用できるネットワーキング機能およびストレージ機能
が決まります。
• インスタンスタイプの中には、EC2-Classic で使用できないものがあるので、VPC で起動する必要が
あります。VPC でインスタンスを起動することにより、拡張ネットワーキング、複数のプライベー
ト IP アドレスのインスタンスへの割り当て、インスタンスに割り当てられたセキュリティグループ
の変更など、EC2-Classic で使用できない機能を活用することができます。詳細については、「VPC
でのみ利用可能なインスタンスタイプ (p. 583)」を参照してください。
• インスタンスタイプの中には、EBS ボリュームとインスタンスストアボリュームをサポートするも
のや、EBS ボリュームのみをサポートするものがあります。インスタンスストアボリュームをサポー
トする一部のインスタンスは、ソリッドステートドライブ (SSD) を使用して非常に高いランダム I/O
パフォーマンスを提供します。詳細については、「ストレージ (p. 661)」を参照してください。
• Amazon EBS I/O 専用の容量をさらに多く取得するには、一部のインスタンスタイプを EBS 最適化
インスタンスとして起動してください。インスタンスタイプの中には、デフォルトで EBS 最適化さ
れるものがあります。詳細については、「Amazon EBS 最適化インスタンス (p. 716)」を参照してく
ださい。
• 高パフォーマンスコンピューティング(HPC)アプリケーション用にインスタンスを最適化するに
は、一部のインスタンスタイプをプレイスメントグループで起動できます。詳細については、「プレ
イスメントグループ (p. 641)」を参照してください。
• パケット毎秒 (PPS) のパフォーマンスを大幅に高め、ネットワークのストレスとレイテンシーを低
減するには、現行世代のインスタンスタイプ用の拡張ネットワーキングを有効にできます。詳細につ
いては、「VPC 内の Linux インスタンスでの拡張ネットワーキングの有効化 (p. 648)」を参照してく
ださい。
• サポートされている最大 MTU は、インスタンスタイプによって異なります。すべての Amazon EC2
インスタンスタイプは、標準イーサネット V2 1500 MTU フレームをサポートします。すべての現行
世代のインスタンスは 9001 MTU、またはジャンボ フレームをサポートし、一部の旧世代のインス
タンスも同様にそれらをサポートします。詳細については、「EC2 インスタンスの最大ネットワー
ク送信単位 (MTU) (p. 644)」を参照してください。
次の表に、現行世代のインスタンスタイプでサポートされるネットワーキング機能とストレージ機能を
まとめています。
VPC のみ
EBS のみ
C3
C4
はい
SSD ボ
リューム
配置グループ
はい
はい
はい
D2
HVM のみ
拡張ネット
ワーキング
はい
はい
はい
はい
はい
はい
はい
G2
はい
はい
はい
I2
はい
はい
はい
はい
M3
はい
はい
はい
はい
はい
はい
はい
M4
R3
はい
はい
はい
135
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの制限
T2
VPC のみ
EBS のみ
はい
はい
SSD ボ
リューム
配置グループ
HVM のみ
拡張ネット
ワーキング
はい
インスタンスの制限
リージョンで起動できるインスタンスの合計数には制限があります。また、一部のインスタンスタイプ
にはその他の制限もあります。
デフォルトの制限の詳細については、「Amazon EC2 で実行できるインスタンスの数はいくつですか?」
を参照してください。
現在の制限の表示、または現在の制限の引き上げリクエストについての詳細については、「Amazon
EC2 サービスの制限 (p. 784)」を参照してください。
T2 インスタンス
Abstract
T2 インスタンスを使用して、適度なベースラインパフォーマンスを実現したり、ワークロードの必要に応じて非
常に高いパフォーマンスまでバーストする機能を実現できます。T2 インスタンスは、ウェブサーバー、開発者環
境、小規模データベースなどの汎用ワークロードに最適です。
T2 インスタンスは、適度なベースラインパフォーマンスを実現したり、ワークロードの必要に応じて
非常に高いパフォーマンスまでバーストする機能を実現できるように設計されています。常時または一
貫して CPU をフルに使用するわけではないが、バーストが必要なことがあるワークロード向けに用意
されています。T2 インスタンスは、ウェブサーバー、開発者環境、小規模データベースなどの汎用ワー
クロードに最適です。T2 インスタンスの料金体系と追加ハードウェアの詳細については、「Amazon
EC2 インスタンス」を参照してください。
アカウントを作成してから 12 か月未満の場合は、特定の使用制限内でt2.micro インスタンスを使用
できます。詳細については、「AWS Free Tier」を参照してください。
目次
• ハードウェア仕様 (p. 136)
• T2 インスタンスの要件 (p. 136)
• CPU クレジット (p. 137)
• CPU クレジットの監視 (p. 139)
ハードウェア仕様
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
T2 インスタンスの要件
T2 インスタンスを作成するための要件を以下に示します。
• T2 インスタンスは仮想プライベートクラウド (VPC) で起動する必要があります。EC2-Classic プラッ
トフォームではサポートされません。Amazon VPC を使用すると、定義した仮想ネットワーク内で
AWSリソースを起動できます。EC2-Classic の既存のインスタンスのインスタンスタイプを T2 イン
スタンスタイプに変更することはできません。EC2-Classic および EC2-VPC の詳細については、
136
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T2 インスタンス
「サポートされているプラットフォーム (p. 584)」を参照してください。VPC 専用インスタンスの起
動の詳細については、「VPC でのみ利用可能なインスタンスタイプ (p. 583)」を参照してください。
• T2 インスタンスは、HVM AMI を使用して起動する必要があります。詳細については、「Linux AMI
仮想化タイプ (p. 74)」を参照してください。
• T2 インスタンスの起動には、EBS ボリュームをルートデバイスとして使用する必要があります。詳
細については、「Amazon EC2 ルートデバイスボリューム (p. 16)」を参照してください。
• T2 インスタンスは、オンデマンドインスタンスおよびリザーブドインスタンスとしては使用できま
すが、スポットインスタンス、スケジュールされたインスタンス、または専用インスタンスとしては
使用できません。また、T2 インスタンスは Dedicated Host ではサポートされていません。これらの
パラメータの詳細については、インスタンス購入オプション (p. 165)を参照してください。
• リージョンで起動できるインスタンスの合計数には制限があります。また、一部のインスタンスタイ
プにはその他の制限もあります。デフォルトでは、最大 20 個の T2 インスタンスを同時に実行でき
ます。さらに多くの T2 インスタンスが必要な場合は、Amazon EC2 インスタンス申請フォームを使
用して、インスタンスの追加を申請できます。
• 選択する T2 インスタンスのサイズが、オペレーティングシステムおよびアプリケーションの最小メ
モリー要件を満たしていることを確認します。多くのメモリーおよび CPU リソースを消費するグラ
フィカルユーザーインターフェースを使用するオペレーティングシステム (Microsoft Windows など)
は、多くのユースケースで 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 クレジットバランスを示します。
137
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T2 インスタンス
インスタンスタイ
プ
初 1 時間あたりに受け取る CPU クレ ベースラインパ
期 ジット
フォーマンス
U
P
C
(CPU 使用率)
ク
レ
ッジ
ト
*
最大獲得 CPU クレ
ジットバランス***
t2.nano
03 3
5%
72
t2.micro
03 6
10%
144
t2.small
03 12
20%
288
t2.medium
06 24
40%**
576
t2.large
06 36
60%**
864
* 初期 CPU クレジットで起動または開始できる T2 インスタンスの数には制限があります。デフォル
トでは、リージョンごとに 24 時間あたり各アカウントで 100 回の T2 インスタンスの起動または開
始と設定されています。この制限を大きくする場合は、Amazon EC2 クレジットベースのインスタン
ス起動クレジットフォームを使用して、制限上昇リクエストをカスタマーサポートに提出できます。
アカウントが 24 時間以内に 100 個を超える T2 インスタンスを起動または開始していなければ、こ
の制限の影響を受けません。
** t2.medium および t2.large インスタンスには vCPU が 2 つあります。ベースラインパフォーマ
ンスは、2 つの vCPU の合計です。たとえば、1 つの 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 クレジットになる可能性があります)も、バランスから削除されます。有効期限が切れたクレジッ
138
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T2 インスタンス
トの量が獲得したクレジットより多い場合、クレジットバランスは減少します。反対に、有効期限が切
れたクレジットの量が獲得したクレジットより少ない場合、クレジットバランスは増加します。
すべてのクレジットを使用した場合はどうなりますか。
インスタンスが CPU クレジットバランスをすべて使用した場合、パフォーマンスはベースラインパ
フォーマンスレベルにとどまります。インスタンスのクレジットが足りなくなりそうな場合、インスタ
ンスの CPU クレジット使用量(ひいては CPU パフォーマンス)は 15 分間隔で徐々にベースラインパ
フォーマンスまで下げられるため、CPU クレジットを使い切った場合でもパフォーマンスが急激に低
下することはありません。インスタンスが常時、CPU クレジットバランスをすべて使用する場合は、
T2 のサイズを大きくするか、固定パフォーマンスのインスタンスタイプ(M3 や C3 など)を使用する
ことをお勧めします。
CPU クレジットの監視
CloudWatch コンソールの Amazon EC2 インスタンス別メトリックスに表示された各 T2 インスタンス
のクレジットバランスを確認できます。T2 インスタンスには、CPUCreditBalance と CPUCreditUsage
という 2 つのメトリックスがあります。CPUCreditUsage メトリックスは、測定期間に使用された
CPU クレジットの数を示しています。CPUCreditBalance メトリックスは、T2 インスタンスが獲得
した未使用の CPU クレジットの数を示しています。このバランスは、バースト時に使い切られます。
使用される CPU クレジットが獲得数より多くなるためです。
次の表に、使用可能な新しい CloudWatch メトリックスを示します。これらのメトリックスを CloudWatch
で使用する方法の詳細については、「Amazon EC2 メトリックスを表示する (p. 429)」を参照してくだ
さい。
メトリックス
説明
CPUCreditUsage
(T2 インスタンスにのみ有効)指定した期間内に消費される CPU
クレジット数です。
このメトリックスは、インスタンスに割り当てられた仮想 CPU に
よる命令を処理するために使用される、物理 CPU の時間を識別し
ます。
Note
CPU クレジットメトリックスは、5 分間隔で利用可能で
す。
単位: Count
CPUCreditBalance
(T2 インスタンスにのみ有効)インスタンスが累積される CPU ク
レジット数です。
このメトリックスは、どのくらいの期間のインスタンスが指定され
たレートのベースラインパフォーマンスレベルを超えてバーストで
きるかを判断するために使用されます。
Note
CPU クレジットメトリックスは、5 分間隔で利用可能で
す。
単位: Count
139
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
C4 インスタンス
C4 インスタンス
Abstract
C4 インスタンスを使用して優れたコンピューティングパフォーマンスと高度な最適化機能を提供します。
C4 インスタンスは高パフォーマンスプロセッサの恩恵を受けるコンピューティング関連の用途に最適
です。C4 インスタンスは、次の用途に適しています。
• 作業負荷のバッチ処理
• メディアの変換
• 高トラフィックのウェブサーバー、大規模マルチプレイヤーオンライン(MMO)ゲームサーバー、
広告エンジン
• ハイパフォーマンスコンピューティング(HPC)アプリケーションやその他の大量の演算を行うアプ
リケーション
目次
• ハードウェア仕様 (p. 140)
• C4 インスタンスの機能 (p. 141)
• C4 インスタンスの要件 (p. 141)
• 36 個の vCPU のサポート (p. 142)
ハードウェア仕様
C4 インスタンスは、Amazon EC2 専用に最適化された独自の 2.9 GHz Intel® Xeon® E5-2666 v3
(Haswell)プロセッサで動作します。Intel® Turbo Boost Technology によって、c4.8xlarge インス
タンスで 1 または 2 コアの Turbo Boost を使用することで、C4 インスタンスのプロセッサクロック速
度を 3.5Ghz まで引き上げることができます。
次の表に、Intel® Xeon® E5-2666 v3 プロセッサの主な機能を示します。詳細については、「Intel およ
びアマゾン ウェブ サービス」を参照してください。
機能
仕様
プロセッサナンバー
E5-2666 v3
Intel® スマートキャッシュ
25 MiB
命令セット
64 ビット
命令セット拡張
AVX 2.0
リソグラフィー
22 nm
プロセッサのベース周波数
2.9 GHz
全コアのターボ時の最大周波数
3.2 GHz
140
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
C4 インスタンス
機能
仕様
最大ターボ周波数
3.5 GHz(c4.8xlarge で使用可能)
Intel® Turbo Boost Technology
2.0
Intel® vPro Technology
はい
Intel® Hyper-Threading Technology
はい
Intel® Virtualization Technology(VT-x)
はい
ダイレクト I/O 向け Intel® Virtualization Technology(VT-d)
はい
Intel® VT-x と拡張ページテーブル(EPT)
はい
Intel® 64
はい
アイドル状態
はい
拡張版 Intel SpeedStep® Technology
はい
Thermal Monitoring Technologies
はい
AES New Instructions
はい
セキュアキー
はい
ディスエーブルビット実行
はい
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
C4 インスタンスの機能
C4 インスタンスの機能の概要を以下に示します。
• C4 インスタンスは、デフォルトで EBS 最適化されており、追加料金なしで、500 Mbps から 4,000
Mbps の専用ブロックストレージスループットを Amazon EBS に提供します。EBS 最適化インスタ
ンスは、C4 インスタンスからの Amazon EBS I/O とその他のネットワークトラフィックとの競合を
排除することによって、EBS ボリュームの安定した高パフォーマンスを実現できます。詳細につい
ては、「Amazon EBS 最適化インスタンス (p. 716)」を参照してください。
• 拡張ネットワーキング機能を有効にすることができます。拡張ネットワーキングでは、パケット毎秒
(PPS) が非常に大きく、ネットワークのストレスが少なく、レイテンシーが低くなります。詳細につ
いては、「VPC 内の Linux インスタンスでの拡張ネットワーキングの有効化 (p. 648)」を参照してく
ださい。
• C4 インスタンスをプレイスメントグループにクラスター化できます。プレイスメントグループは、
1 つのアベイラビリティーゾーン内で、インスタンス間の低レイテンシーで高帯域幅の接続を実現し
ます。詳細については、「プレイスメントグループ (p. 641)」を参照してください。
• c4.8xlarge インスタンスタイプにより、Linux のプロセッサの C ステートと P ステートを制御で
きます。C ステートは非アクティブ時のコアのスリープレベルを制御し、P ステートは希望するコア
からのパフォーマンス(CPU 周波数)を制御します。詳細については、「EC2 インスタンスタイプ
のプロセッサのステート制御 (p. 304)」を参照してください。
C4 インスタンスの要件
C4 インスタンスの要件を以下に示します。
141
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
C4 インスタンス
• C4 インスタンスには 64 ビット HVM AMI が必要です。ハイメモリ(最大 60 GiB の RAM)があり、
その処理能力を活用するためには 64 ビットのオペレーティングシステムが必要です。HVM AMI は、
ハイメモリインスタンスタイプの準仮想化(PV) AMI よりも優れたパフォーマンスを提供します。
さらに、拡張ネットワーキングを利用するには、HVM AMI を使用する必要があります。
• C4 インスタンスは仮想プライベートクラウド (VPC) で起動する必要があります。EC2-Classic プラッ
トフォームではサポートされません。Amazon VPC を使用すると、定義した仮想ネットワーク内で
AWSリソースを起動できます。EC2-Classic および EC2-VPC の詳細については、「サポートされて
いるプラットフォーム (p. 584)」を参照してください。VPC 専用インスタンスの起動の詳細について
は、「VPC でのみ利用可能なインスタンスタイプ (p. 583)」を参照してください。
• リージョンで起動できるインスタンスの合計数には制限があります。また、一部の C4 インスタンス
タイプにはその他の制限もあります。詳細については、「Amazon EC2 で実行できるインスタンス
の数はいくつですか?」を参照してください。
さらに多くの C4 インスタンスが必要な場合は、Amazon EC2 インスタンス申請フォームを使用し
て、インスタンスの追加を申請できます。
36 個の vCPU のサポート
c4.8xlarge インスタンスでは 36 個の vCPU が提供されますが、これにより vCPU を 32 個に制限し
ている一部の Linux オペレーティング システムで問題が生じる可能性があります。c4.8xlarge イン
スタンスを起動する場合は、最新の AMI を使用することをお勧めします。
次の Linux AMI は、36 個の vCPU を使用した c4.8xlarge の起動をサポートしています。
•
•
•
•
Amazon Linux AMI 2015.09 (HVM)
Ubuntu Server 14.04 LTS (HVM)
Red Hat Enterprise Linux 7.1 (HVM)
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 を制限すると、インスタンス
を起動できる場合があります。
142
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
GPU インスタンス
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 KEYBOARD
TYPE=pc KEYTABLE=us LANG=en_US.UTF-8 xen_blkfront.sda_is_xvda=1 con
sole=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.
e.
f.
インスタンスを停止します。
(オプション)将来的に必要な追加の c4.8xlarge インスタンスを起動するために使用でき
るインスタンスから AMI を作成します。
停止したインスタンスのインスタンスタイプを c4.8xlarge に変更します( [Actions] を選択
し、[Instance Settings] を選びます。続いて、[Change Instance Type] を選択し、指示に従い
ます)。
インスタンスを起動します。
Linux GPU のインスタンス
Abstract
GPU インスタンスは、グラフィックスや汎用的な GPU コンピューティングアプリケーションを対象としていま
す。
高度な並列処理機能を必要とする場合は、GPU インスタンスを使用するのが適しています。GPU イン
スタンスは、最大 1,536 個の CUDA コアと 4 GB のビデオメモリを備える NVIDIA GPU にアクセスで
きます。GPU インスタンスを使用すると、Compute Unified Device Architecture(CUDA)または
OpenCL パラレルコンピューティングフレームワークを活用することにより、多数のサイエンス、エン
ジニアリング、およびレンダリングアプリケーションを高速化することができます。また、ゲームスト
リーミング、3D アプリケーションストリーミング、およびその他のグラフィックスワークロードを含
む、グラフィックアプリケーションにも使用できます。
GPU インスタンスは、HVM ベースのインスタンスとして実行されます。ハードウェア仮想マシン
(HVM)仮想化は、AWS プラットフォームによって提供されるハードウェアアシストテクノロジーを
使用します。ゲスト VM は、性能の向上のために準仮想化(PV)ネットワークおよびストレージドラ
イバをまだ使用している点を除き、HVM 仮想化を使用して、ネイティブハードウェアプラットフォー
ム上で動作しているかのように動作します。これにより、Amazon EC2 は、各 GPU インスタンスで 1
つ以上の個別の GPU への専用アクセス権を提供できます。
GPU インスタンスをプレイスメントグループにクラスター化できます。プレイスメントグループは、
1 つのアベイラビリティーゾーン内で、インスタンス間の低レイテンシーで高帯域幅の接続を実現しま
す。詳細については、「プレイスメントグループ (p. 641)」を参照してください。
143
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
GPU インスタンス
目次
• ハードウェア仕様 (p. 144)
• GPU インスタンスの制限 (p. 144)
• GPU インスタンスの AMI (p. 144)
• Linux での NVIDIA ドライバのインストール (p. 144)
Windows GPU のインスタンスの詳細については、『Microsoft Windows インスタンスの Amazon EC2
ユーザーガイド』の「Windows GPU のインスタンス」を参照してください。
ハードウェア仕様
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
GPU インスタンスの制限
GPU インスタンスには以下の制限があります。
• インスタンスは、HVM AMI を使用して起動する必要があります。
• NVIDIA ドライバがインストールされていない限り、GPU にアクセスできません。
• 実行できるインスタンス数は制限されています。詳細については、Amazon EC2 のよくある質問の
「Amazon EC2 で実行できるインスタンス数の上限は?」を参照してください。これらの制限の拡大
を申請するには、Request to Increase Amazon EC2 Instance Limit というフォームを使用してくださ
い。
GPU インスタンスの AMI
すぐに作業を開始できるように、NVIDIA から GPU インスタンス用の AMI が提供されています。これ
らのリファレンス AMI には、NVIDIA GPU の完全な機能とパフォーマンスを有効にする NVIDIA ドラ
イバが含まれています。NVIDIA ドライバがある AMI の一覧については、AWS Marketplace(NVIDIA
GRID)を参照してください。
任意の HVM AMI を使用して、CG1 および G2 インスタンスを起動できます。
Linux での NVIDIA ドライバのインストール
GPU インスタンスには、適切な 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 ツールキットを再インストールする必要があります。
144
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
GPU インスタンス
NVIDIA ドライバは、 http://www.nvidia.com/Download/Find.aspx からダウンロードできます。インス
タンスの適切なドライブを選択します。
G2 インスタンス
製品タイプ
GRID
製品シリーズ
GRID シリーズ
商品
GRID K520
オペレーティングシステム
Linux 64 ビット
推奨/ベータ版
推奨/認定
CG1 インスタンス
製品タイプ
Tesla
製品シリーズ
M-Class
商品
M2050
オペレーティングシステム
Linux 64 ビット
推奨/ベータ版
推奨/認定
ドライバのインストールと設定の詳細については、NVIDIA ウェブサイトのドライバのダウンロードペー
ジで [ADDITIONAL INFORMATION] タブを開き、[README] リンクをクリックします。
NVIDIA ドライバの手動インストール
Amazon Linux AMI 用のドライバをインストールするには
1.
yum update コマンドを実行して、インスタンスのパッケージの最新バージョンを取得します。
[ec2-user ~]$ sudo yum update -y
2.
インスタンスを再起動して、最新のカーネルバージョンを読み込みます。
[ec2-user ~]$ sudo reboot
3.
再起動後にインスタンスに再接続します。
4.
「Development tools」パッケージグループをインストールします。
[ec2-user ~]$ sudo yum groupinstall -y "Development tools"
5.
kernel-devel パッケージがインストールされており、現在実行しているカーネルのバージョン
と一致することを確認してください。
[ec2-user ~]$ sudo yum install kernel-devel-`uname -r`
145
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
I2 インスタンス
6.
前の手順で特定したドライバパッケージをダウンロードします。たとえば、次のコマンドでは、
G2 インスタンスドライバの 340.46 バージョンがダウンロードされます。
[ec2-user ~]$ wget http://us.download.nvidia.com/XFree86/Linuxx86_64/340.46/NVIDIA-Linux-x86_64-340.46.run
7.
NVIDIA ドライバをインストールするための自己インストールスクリプトを実行します。以下に例
を示します。
[ec2-user ~]$ sudo /bin/bash ./NVIDIA-Linux-x86_64-340.46.run
8.
インスタンスを再起動します。詳細については、「インスタンスの再起動 (p. 282)」を参照してく
ださい。
9.
ドライバが機能していることを確認します。次のコマンドのレスポンスに、インストールされた
NVIDIA ドライババージョンおよび GPU に関する詳細が表示されます。
[ec2-user ~]$ nvidia-smi -q | head
==============NVSMI LOG==============
Timestamp
Driver Version
: Thu Oct
: 340.46
Attached GPUs
GPU 0000:00:03.0
Product Name
Product Brand
: 1
2 17:28:29 2014
: GRID K520
: Grid
I2 インスタンス
Abstract
I2 インスタンスは、非常に高速な SSD-Backed インスタンスストレージを提供します。このインスタンスは、非
常に高いランダム I/O パフォーマンスと IOPS あたりの安価なコストに最適化されています。
I2 インスタンスは、数万回の低レイテンシーとランダム I/O オペレーション/秒(IOPS)をアプリケー
ションに提供するように最適化されています。このインスタンスは、以下のシナリオに最適です。
• NoSQL データベース(Cassandra や MongoDB など)
• クラスター化データベース
• オンライントランザクション処理(OLTP)システム
目次
• ハードウェア仕様 (p. 147)
• I2 インスタンスの機能 (p. 147)
• I2 インスタンスの要件 (p. 147)
• SSD I/O パフォーマンス (p. 147)
146
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
I2 インスタンス
ハードウェア仕様
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
I2 インスタンスの機能
I2 インスタンスの機能の概要を以下に示します。
• プライマリデータストレージは、SSD ベースのインスタンスストレージです。すべてのインスタン
スストレージのように、これらのボリュームはインスタンスの運用期間中のみ永続化されます。イン
スタンスを停止または終了すると、アプリケーションとそのインスタンスストアのデータは消去され
ます。インスタンスストレージに保存したデータは、定期的にバックアップするかレプリケートする
ことをお勧めします。詳細については、「SSD インスタンスストアボリューム (p. 741)」を参照して
ください。
• 拡張ネットワーキング機能を有効にすることができます。拡張ネットワーキングでは、パケット毎秒
(PPS) が非常に大きく、ネットワークのストレスが少なく、レイテンシーが低くなります。詳細につ
いては、「VPC 内の Linux インスタンスでの拡張ネットワーキングの有効化 (p. 648)」を参照してく
ださい。
• I2 インスタンスをプレイスメントグループにクラスター化できます。プレイスメントグループは、1
つのアベイラビリティーゾーン内で、インスタンス間の低レイテンシーで高帯域幅の接続を実現しま
す。詳細については、「プレイスメントグループ (p. 641)」を参照してください。
• Amazon EBS I/O 専用の容量をさらに多く取得するには、EBS 最適化インスタンスを有効にできま
す。詳細については、「Amazon EBS 最適化インスタンス (p. 716)」を参照してください。
I2 インスタンスの要件
I2 インスタンスを作成するための要件を以下に示します。
• I2 インスタンスは、HVM AMI を使用して起動する必要があります。
• Linux でインスタンスから最高の IOPS 性能を得るには、最新バージョンの Amazon Linux AMI、ま
たはカーネルバージョン 3.8 以降の別の Linux AMI を使用することをお勧めします。カーネルバー
ジョン 3.8 以降の Linux AMI を使用しないと、インスタンスはこのインスタンスタイプで可能な最高
の IOPS パフォーマンスを実現できません。詳細については、「SSD I/O パフォーマンス (p. 147)」を
参照してください。
• リージョンで起動できるインスタンスの合計数には制限があります。また、一部の I2 インスタンス
タイプにはその他の制限もあります。詳細については、「Amazon EC2 で実行できるインスタンス
の数はいくつですか?」を参照してください。
さらに多くの I2 インスタンスが必要な場合は、Amazon EC2 インスタンス申請フォームを使用して、
インスタンスの追加を申請できます。
SSD I/O パフォーマンス
カーネルバージョン 3.8 以降の Linux AMI を使用して、インスタンスで利用できるすべての SSD-Backed
インスタンスストアボリュームを利用する場合は、少なくとも次の表に一覧表示されている最小のラン
ダム IOPS(4,096 バイトブロックサイズ)を取得できます。それ以外の場合は、IOPS 性能は表に示さ
れているよりも低くなります。
インスタンスサイズ
読み取り IOPS
最初の書き込み IOPS
i2.xlarge
35,000
35,000
i2.2xlarge
75,000
75,000
147
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
D2 インスタンス
インスタンスサイズ
読み取り IOPS
最初の書き込み IOPS
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 インスタンスストレージに領域を予約し、コントローラーが書き込み
操作に利用できる領域をより効率的に管理できるようにすることです。これをオーバープロビジョニン
グと呼びます。I2 インスタンスに提供された SSD ベースのインスタンスストアボリュームには、オー
バープロビジョニングに対して予約された領域がありません。書き込み増幅を減らすには、ボリューム
の 10% を未使用の状態のままにし、SSD コントローラーがこれをオーバープロビジョニングに使用で
きるようにします。これにより、使用できるストレージが減りますが、パフォーマンスは向上します。
I2 instance store-backed ボリュームは TRIM をサポートしています。TRIM コマンドを使用して、書き
込んだデータが不要になるたびに SSD コントローラーに通知することもできます。これにより、より
多くの空き領域がコントローラーに与えられ、その結果書き込み増幅が減り、パフォーマンスが向上し
ます。詳細については、「インスタンスストアボリュームの TRIM のサポート (p. 741)」を参照してく
ださい。
D2 インスタンス
Abstract
D2 インスタンスを使用して優れたコンピューティングパフォーマンスと高度な最適化機能を提供します。
D2 インスタンスは、ローカルストレージの大規模データセットに対する高いシーケンシャル読み取り
および書き込みアクセスを必要とするワークロード用に設計されています。D2 インスタンスは、次の
用途に適しています。
• 超並列処理 (MPP) データウェアハウス
• MapReduce および Hadoop 分散コンピューティング
• ログまたはデータ処理アプリケーション
目次
• ハードウェア仕様 (p. 149)
• D2 インスタンス機能 (p. 149)
• D2 インスタンスの要件 (p. 149)
• 36 個の vCPU のサポート (p. 150)
148
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
D2 インスタンス
ハードウェア仕様
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
D2 インスタンス機能
D2 インスタンスの機能の概要を以下に示します。
• D2 インスタンスのプライマリデータストレージは、HDD ベースのインスタンスストレージです。す
べてのインスタンスストレージのように、これらのボリュームはインスタンスの運用期間中のみ永続
化されます。インスタンスストアボリュームの詳細については、Amazon EC2 インスタンススト
ア (p. 735) を参照してください。
• D2 インスタンスは、デフォルトで EBS 最適化されており、追加料金なしで、750 Mbps から 4,000
Mbps の専用ブロックストレージスループットを Amazon EBS に提供します。EBS 最適化インスタ
ンスは、D2 インスタンスからの Amazon EBS I/O とその他のネットワークトラフィックとの競合を
排除することによって、EBS ボリュームの安定した高パフォーマンスを実現できます。詳細につい
ては、「Amazon EBS 最適化インスタンス (p. 716)」を参照してください。
• 拡張ネットワーキング機能を有効にすることができます。拡張ネットワーキングでは、パケット毎秒
(PPS) が非常に大きく、ネットワークのストレスが少なく、レイテンシーが低くなります。詳細につ
いては、「VPC 内の Linux インスタンスでの拡張ネットワーキングの有効化 (p. 648)」を参照してく
ださい。
• D2 インスタンスをプレイスメントグループにクラスター化できます。プレイスメントグループは、
1 つのアベイラビリティーゾーン内で、インスタンス間の低レイテンシーで高帯域幅の接続を実現し
ます。詳細については、「プレイスメントグループ (p. 641)」を参照してください。
• d2.8xlarge インスタンスタイプにより、Linux のプロセッサの C ステートと P ステートを制御で
きます。C ステートは非アクティブ時のコアのスリープレベルを制御し、P ステートは希望するコア
からのパフォーマンス(CPU 周波数)を制御します。詳細については、「EC2 インスタンスタイプ
のプロセッサのステート制御 (p. 304)」を参照してください。
D2 インスタンスの要件
D2 インスタンスを作成するための要件を以下に示します。
• D2 インスタンスには 64 ビット HVM AMI が必要です。ハイメモリ(最大 244 GiB の RAM)があ
り、その処理能力を活用するためには 64 ビットのオペレーティングシステムが必要です。HVM AMI
は、ハイメモリインスタンスタイプの準仮想化(PV) AMI よりも優れたパフォーマンスを提供しま
す。さらに、拡張ネットワーキングを利用するには、HVM AMI を使用する必要があります。
• リージョンで起動できるインスタンスの合計数には制限があります。また、一部の D2 インスタンス
タイプにはその他の制限もあります。詳細については、「Amazon EC2 で実行できるインスタンス
の数はいくつですか?」を参照してください。
さらに多くの D2 インスタンスが必要な場合は、Amazon EC2 インスタンス申請フォームを使用し
て、インスタンスの追加を申請できます。
• d2.8xlarge インスタンスは、2 MiB のブロックサイズで最大 3.5 GB/秒の読み込みパフォーマンス
と、3.1 GB/秒の書き込みパフォーマンスを提供することができます。Linux で D2 インスタンスから
最高のディスクスループット性能を得るには、最新バージョンの Amazon Linux AMI、またはカーネ
ルバージョン 3.8 以降の別の Linux AMI を使用することをお勧めします。D2 インスタンスは、永続
許可(ディスクスループットと拡張性を大幅に向上させる Xen ブロックリングプロトコルの拡張機
能)をサポートする Linux カーネルを使用するときに、最大のディスクパフォーマンスを提供しま
す。永続許可の詳細については、Xen プロジェクトのブログのこちらの記事を参照してください。
• d2.8xlarge インスタンスには 36 個の vCPU がありますが、これにより vCPU を 32 個に制限して
いる一部の Linux オペレーティング システムで問題が生じる可能性があります。詳細については、
「36 個の vCPU のサポート (p. 150)」を参照してください。
149
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
D2 インスタンス
36 個の vCPU のサポート
d2.8xlarge インスタンスでは 36 個の vCPU が提供されますが、これにより vCPU を 32 個に制限し
ている一部の Linux オペレーティング システムで問題が生じる可能性があります。d2.8xlarge イン
スタンスを起動する場合は、最新の AMI を使用することをお勧めします。
次の Linux AMI は、36 個の vCPU を使用した d2.8xlarge の起動をサポートしています。
• Amazon Linux AMI 2015.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.
2.
3.
4.
5.
6.
7.
AMI を使用して D2 インスタンスを起動し、d2.8xlarge 以外の D2 インスタンスタイプを選択し
ます。
使用するオペレーティングシステム固有の手順に従って、カーネルを最新バージョンに更新しま
す。たとえば、RHEL 6 の場合は、sudo yum update -y kernel コマンドを使用します。
インスタンスを停止します。
(オプション)将来的に必要な追加の d2.8xlarge インスタンスを起動するために使用できるイ
ンスタンスから AMI を作成します。
停止したインスタンスのインスタンスタイプを d2.8xlarge に変更します( [Actions] を選択し、
[Instance Settings] を選びます。続いて、[Change Instance Type] を選択し、指示に従います)。
インスタンスを起動します。インスタンスが正常に起動すれば、完了です。 これでもインスタン
スが正しく実施されない場合、以下のステップに進みます。
(オプショナル)インスタンスがまだ正しく実施されない場合、インスタンスのカーネルが 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 KEYBOARD
TYPE=pc KEYTABLE=us LANG=en_US.UTF-8 xen_blkfront.sda_is_xvda=1 con
sole=ttyS0,115200n8 console=tty0 rd_NO_MD SYSFONT=latarcyrheb-sun16
150
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
HI1 インスタンス
crashkernel=auto rd_NO_LVM rd_NO_DM
initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
c.
d.
e.
f.
インスタンスを停止します。
(オプション)将来的に必要な追加の d2.8xlarge インスタンスを起動するために使用でき
るインスタンスから AMI を作成します。
停止したインスタンスのインスタンスタイプを d2.8xlarge に変更します( [Actions] を選択
し、[Instance Settings] を選びます。続いて、[Change Instance Type] を選択し、指示に従い
ます)。
インスタンスを起動します。
HI1 インスタンス
Abstract
HI1 インスタンスは、非常に高速の SSD-Backed インスタンスストレージを提供します。このインスタンススト
レージは、非常に高いランダム I/O パフォーマンスと、IOPS あたりの安価なコストに最適化されています。
HI1 I/O インスタンス(hi1.4xlarge)は、数万回の低レイテンシーとランダム I/O オペレーション/秒
(IOPS)をアプリケーションに提供します。このインスタンスは、以下のシナリオに最適です。
• NoSQL データベース(Cassandra や MongoDB など)
• クラスター化データベース
• オンライントランザクション処理(OLTP)システム
HI1 インスタンスは、プレイスメントグループでクラスター化できます。詳細については、「プレイス
メントグループ (p. 641)」を参照してください。
デフォルトでは、最大 2 つのインスタンスを実行できます。hi1.4xlargehi1.4xlarge インスタン
スが 2 つ以上必要な場合は、Amazon EC2 Instance Request Form を使用して、インスタンスの追加を
申請できます。
目次
• ハードウェア仕様 (p. 151)
• ディスク I/O 性能 (p. 151)
• SSD ストレージ (p. 152)
ハードウェア仕様
hi1.4xlarge インスタンスタイプは、Solid State Drive(SSD)テクノロジーに基づいています。
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
ディスク I/O 性能
Linux 準仮想(PV)AMI を使用すると、HI1 I/O インスタンスは、4 KB ランダム読み取りについては
120,000 IOPS 以上、4 KB ランダム書き込みについては 10,000~85,000 IOPS(アクティブな論理ブ
ロックアドレス指定範囲によって異なる)を、2 つの SSD データボリューム全体でアプリケーション
151
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
HI1 インスタンス
に提供できます。ハードウェア仮想マシン(HVM)AMI を使用すると、パフォーマンスは、4 KB ラン
ダム読み取りについては約 90,000 IOPS、4 KB ランダム書き込みについては 9,000 ~ 75,000 IOPS と
なります。
HI1 Windows インスタンスでは、4 KB ランダム読み取りについては約 90,000 IOPS、4 KB ランダム書
き込みについては 9,000 ~ 75,000 IOPS になります。
最大シーケンシャルスループットは、読み取りでは 約 2 GB/秒、書き込みでは 1.1 GB/秒になります。
SSD ストレージ
HI1 インスタンスで SSD ストレージを使用する場合:
• 主要なデータソースは、SSD ストレージを含むインスタンスストアです。
• 読み取りパフォーマンスは一貫し、書き込みパフォーマンスは多様です。
• 書き込み増幅が発生する可能性があります。
• TRIM コマンドは現在サポートされていません。
SSD ストレージによるインスタンスストア
hi1.4xlarge インスタンスは Amazon EBS-Backed ルートデバイスを使用できます。ただし、その主
要なデータストレージは、インスタンスストア内の SSD ボリュームによって提供されます。他のイン
スタンスストアボリュームと同様に、これらのインスタンスストアボリュームはインスタンスの運用期
間中のみ永続化されます。hi1.4xlarge インスタンスのルートデバイスは Amazon EBS-Backed であ
るため、インスタンスを起動/停止できます。インスタンスを停止すると、アプリケーションは永続化
されますが、インスタンスストアの運用データは永続化されません。インスタンスストアボリュームの
詳細については、Amazon EC2 インスタンスストア (p. 735) を参照してください。
多様な書き込みパフォーマンス
書き込みパフォーマンスは、アプリケーションがどのように論理ブロックアドレス指定(LBA)空間を
指定するかによって異なります。アプリケーションが LBA 空間全体を使用している場合、書き込みパ
フォーマンスが約 90% 低下する可能性があります。アプリケーションを評価し、キューの長さ(ボ
リュームに対する保留中の I/O リクエストの数)と I/O サイズを監視します。
書き込み増幅
書き込み増幅とは、フラッシュメモリと SSD に関連する望ましくない状況を指し、実際に書き込まれ
る物理的情報量が、意図した論理的書き込み量の倍数になることを意味します。フラッシュメモリは再
書き込みする前に消去する必要があるので、これらのオペレーションを実行するプロセスでは、ユー
ザーデータとメタデータを 1 回以上移動(または再書き込み)することになります。この増幅効果に
よって、SSD の運用期間中、必要な書き込みの数が増加し、信頼できる動作を実行する時間が短くな
ります。hi1.4xlarge インスタンスは、書き込み増幅を最小化することを目的とするプロビジョニン
グモデルを使用して設計されています。
ランダム書き込みは、シリアル書き込みよりも書き込み増幅に与える影響が大きくなります。書き込み
増幅が懸念される場合は、ストレージの全テビバイト数よりも少ない容量をアプリケーションに割り当
てます(オーバープロビジョニングとも呼ばれます)。
TRIM コマンド
TRIM コマンドによって、オペレーティングシステムは、以前に保存されたデータのブロックが使用さ
れなくなったと見なされることを SSD に通知できます。TRIM によって、書き込み増幅の影響が制限
されます。
TRIM のサポートは HI1 インスタンスでは利用できません。TRIM をサポートするインスタンスの詳細
については、「インスタンスストアボリュームの TRIM のサポート (p. 741)」を参照してください。
152
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
HS1 インスタンス
HS1 インスタンス
Abstract
HS1 インスタンスは、高密度ストレージ、低いストレージコスト、高シーケンシャル I/O パフォーマンスを提供し
ます。
HS1 インスタンス(hs1.8xlarge)はストレージ密度がきわめて高く、インスタンスあたりの順次読
み取り/書き込みのパフォーマンスの高さが特徴です。このインスタンスは、以下のシナリオに最適で
す。
• データウェアハウス
• Hadoop/MapReduce
• 並列ファイルシステム
HS1 インスタンスはプレイスメントグループでクラスター化できます。詳細については、「プレイス
メントグループ (p. 641)」を参照してください。
デフォルトでは、最大 2 つの HS1 インスタンスを実行できます。HS1 インスタンスが 2 つ以上必要な
場合は、Amazon EC2 インスタンス申請フォームを使用して、インスタンスの追加を申請できます。
目次
• ハードウェア仕様 (p. 153)
• インスタンスストア (p. 153)
• ディスクの初期化 (p. 154)
• メモリ制限の設定 (p. 154)
• ユーザー制限(ulimit)の設定 (p. 154)
ハードウェア仕様
HS1 インスタンスは、Amazon Elastic Block Store(Amazon EBS)-Backed および Instance store-Backed
Amazon マシンイメージ(AMI)の両方をサポートしています。HS1 インスタンスサポートは、準仮想
化(PV)およびハードウェア仮想マシン(HVM)AMI の両方をサポートしています。
HS1 インスタンスは高帯域幅ネットワーキング機能を提供し、Provisioned IOPS SSD ボリュームとと
もに使用して、整合性とパフォーマンスを向上できます。
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
インスタンスストア
HS1 インスタンスは、インスタンスストアと Amazon EBS ルートデバイスボリュームの両方をサポー
トしています。ただし、Amazon EBS-Backed インスタンスを使用する場合でも、主要なデータスト
レージは、インスタンスストア内のハードディスクドライブによって提供されます。他のインスタンス
ストアボリュームと同様に、これらのインスタンスストアボリュームはインスタンスの運用期間中のみ
永続化されます。インスタンスストアボリュームの詳細については、Amazon EC2 インスタンススト
ア (p. 735) を参照してください。
153
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T1 マイクロインスタンス
ディスクの初期化
HS1 インスタンスを安定した状態で長期間使用する場合は、パフォーマンスの向上のために、まずハー
ドディスクを初期化することをお勧めします。このプロセスの完了には 6 時間程度もかかる可能性があ
ります。
メモリ制限の設定
多くの場合、AMI ベースでの Linux では CONFIG_XEN_MAX_DOMAIN_MEMORY が 70 に設定されていま
す。117 GiB のメモリに適合するように、この値を設定することをお勧めします。
ユーザー制限(ulimit)の設定
多くの場合、AMI ベースでの Linux はデフォルトの ulimit 1024 に設定されています。ulimit を 2048 に
引き上げることをお勧めします。
T1 マイクロインスタンス
Abstract
T1 マイクロインスタンスは低コストなオプションで、小規模なコンピュートリソースを提供します。
T1 マイクロインスタンス(t1.micro)は、少量かつ一定量の CPU リソースを提供し、追加サイクル
が利用可能であるときは、CPU 処理能力を短期バーストとして増大させることができます。このタイ
プが適しているのは、低スループットのアプリケーションやウェブサイトが定期的に追加計算サイクル
を必要とする場合です。
Note
t1.micro は前世代のインスタンスであり、パフォーマンスプロファイルがはるかに優れた
t2.micro に置き換えられました。t1.micro の代わりに t2.micro インスタンスタイプを使
用することをお勧めします。詳細については、「T2 インスタンス (p. 136)」を参照してくださ
い。
t1.micro インスタンスは、Amazon EBS-Backed インスタンスとしてのみ利用できます。
このドキュメントでは、t1.micro インスタンスの動作とその適用方法について説明します。厳密な動
作を示すことを目的とはしていません。インスタンスの動作を明らかにして。パフォーマンスを把握で
きるようにすることが目的です。
トピック
• ハードウェア仕様 (p. 154)
• T1 マイクロインスタンスの最適な用途 (p. 155)
• スパイク中に利用可能な CPU リソース (p. 157)
• インスタンスが割り当てられたリソースを使用する場合 (p. 157)
• m1.small インスタンスタイプとの比較 (p. 159)
• マイクロインスタンスの AMI 最適化 (p. 161)
ハードウェア仕様
各 Amazon EC2 インスタンスタイプのハードウェア仕様については、「Amazon EC2 インスタンス」
を参照してください。
154
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T1 マイクロインスタンス
T1 マイクロインスタンスの最適な用途
t1.micro インスタンスは、ワークロードの CPU 使用率のスパイク期間(次の図を参照)に対応する
ための CPU リソースを提供します。
インスタンスは、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 インスタン
スでは対処できません。
155
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T1 マイクロインスタンス
次の図は、t1.micro インスタンスに不適切なもう 1 つのプロファイルを示しています。ここでは CPU
利用率のスパイクが簡易ですが、マイクロインスタンスでサービスできないほど頻発しています。
次の図は、t1.micro インスタンスに不適切なもう 1 つのプロファイルを示しています。ここではスパ
イクは頻発していませんが、スパイク間のバックグラウンドレベルが t1.micro インスタンスで対処
できないほど高くなっています。
156
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T1 マイクロインスタンス
t1.micro インスタンスに適切ではない前記の各ワークロードのケースでは、異なるインスタンスタイ
プの使用をご検討いただくことをお勧めします。インスタンスタイプの詳細については、「インスタン
スタイプ (p. 133)」を参照してください。
スパイク中に利用可能な CPU リソース
計算リソースの要求のスパイクに対応するためにインスタンスがバーストすると、ホスト上の未使用の
リソースが使用されます。利用可能な量は、スパイク発生時の競合の程度に応じて異なります。ホスト
上の他のインスタンスがスパイク中であるかどうかに関係なく、インスタンスには必ず CPU リソース
が適用されます。
インスタンスが割り当てられたリソースを使用する場合
ある期間内にはアプリケーションは CPU リソースの一部のみを使用するものと想定しています。アプ
リケーションが、インスタンスに割り当てられた CPU リソースを超える量を使用する場合は、CPU の
使用レベルが低レベルになるように、一時的にインスタンスを制限します。インスタンスが割り当てら
れたすべてのリソースを使用し続けると、パフォーマンスが低下します。CPU の使用レベルを制限す
る時間を延長することで、インスタンスの再バーストが許可されるまでの時間を長くします。
t1.micro インスタンスの CloudWatch モニタリングを有効にすると、AWS マネジメントコンソール
で「CPU 平均利用率」グラフを使用して、インスタンスが割り当てられているすべての CPU リソース
を定期的に使用しているかどうかを判別できます。各期間の最大値を確認することをお勧めします。最
大値が 100% である場合は、Auto Scaling を使用してスケールアウトする(t1.micro インスタンスを
追加し、ロードバランサーを使用する)か、またはより大きいサイズのインスタンスタイプに移行する
ことをお勧めします。詳細については、Auto Scaling 開発者ガイド を参照してください。
次の図は、前のセクションで使用した十分最適化されていない3つのプロファイルを示しており、イン
スタンスが割り当てられたリソースをすべて使用するため、その CPU レベルを制限しなければならな
い例です。インスタンスが割り当てられたリソースをすべて使用する場合は、そのレベルを低バックグ
ラウンドレベルに制限します。
次の図は、データ処理 CPU 使用率のプラトーが長い場合を示しています。CPU は許可される最大レベ
ルに達し、その期間にインスタンスに割り当てられているリソースがすべて使用されるまで、そのレベ
ルを維持しています。その時点で、低バックグラウンドレベルで機能するようにインスタンスを制限し
ます。そのレベルより高いレベルまでバーストすることを許可するまで、低レベルが維持されます。イ
ンスタンスは、割り当てられているリソースをすべて使用し、制限されるまで、そのレベルを維持しま
す(グラフには示されていません)。
157
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T1 マイクロインスタンス
次の図では、要求が頻繁すぎる状況を示します。インスタンスは、ほんのいくつかのリクエストが出さ
れた後に割り当てられているリソースを使用するため、それを制限します。制限を解除すると、インス
タンスはリクエストの処理に追いつくように CPU 使用率を最大限にするため、再度インスタンスを制
限します。
次の図では、バックグラウンドレベルが高すぎる状況を示します。インスタンスは、制限されることを
目的として、最大 CPU レベルで機能し続けなければならないわけではありません。インスタンスを制
限するのは、通常のバックグラウンドレベルを上回るレベルで機能し続け、割り当てられているリソー
スが一定期間にすべて使用される場合です。このような場合も(前の例を参照)、インスタンスの作業
に遅れが出るため、インスタンスを制限します。
158
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T1 マイクロインスタンス
m1.small インスタンスタイプとの比較
t1.micro インスタンスは、時間によって異なるレベルの CPU リソースを提供します(最大 2 ECU)。
比較すると、m1.small インスタンスタイプは常時 1 つの ECU を提供します。次の図は、相違点を示
しています。
次の図では、t1.micro インスタンスの CPU 使用率を、これまでのセクションで説明したさまざまな
シナリオの m1.small インスタンスと比較しています。
最初の図は、t1.micro インスタンスの最適なシナリオ(左側のグラフ)と、m1.small インスタンス
の場合の状態(右側のグラフ)を示しています。この場合は、t1.micro インスタンスを制限する必要
はありません。m1.small インスタンスでの処理時間は、t1.micro インスタンスと比較すると、CPU
要求のスパイクごとに長くなっています。
159
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
T1 マイクロインスタンス
次の図は、t1.micro インスタンスに割り当てられたリソースがすべて使い切られたためにデータ処理
リクエストが出されたというシナリオと、m1.small インスタンスの場合の状態を示しています。
次の図は、データ処理リクエストが頻繁に出されたため t1.micro インスタンスの割り当てリソース
がすべて使い果たされたというシナリオと、m1.small インスタンスの場合の状態を示しています。
次の図は、バックグラウンドレベルで t1.micro インスタンスに割り当てられたリソースがすべて使
い切られた状況と、m1.small インスタンスの場合の状態を示しています。
160
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのサイズ変更
マイクロインスタンスの AMI 最適化
t1.micro インスタンスタイプに合わせて AMI を最適化するときは、以下のベストプラクティスにし
たがうことをお勧めします。
• 600 MB の RAM で実行されるように AMI を設計する
• CPU 時間を使用する定期プロセス(例: cron ジョブ、デーモン)の数を制限する
スワップ領域と仮想メモリを使用してパフォーマンスを最適化できます(たとえば、ルートファイルシ
ステムとは別のパーティションにスワップ領域をセットアップできます)。
インスタンスのサイズ変更
Abstract
ワークロードに合わせてインスタンスのサイズを変更します。
ニーズが変わるにつれて、インスタンスの利用率が高すぎたり(インスタンスタイプが小さすぎる)、
低すぎたりする(インスタンスタイプが大きすぎる)ことに気付く場合があります。このような場合
は、インスタンスのサイズを変更できます。たとえば、t2.micro インスタンスがワークロードに対し
て小さすぎる場合は、m3.medium インスタンスに変更できます。
インスタンスのルートデバイスが EBS ボリュームの場合は、インスタンスタイプを変更するだけでイ
ンスタンスのサイズを変更できます。この処理はサイズ変更と呼ばれます。インスタンスのルートデバ
イスがインスタンスストアボリュームの場合、使用するインスタンスタイプで新しいインスタンスにア
プリケーションを移行する必要があります。ルートデバイスボリュームの詳細については、ルートデバ
イスのストレージ (p. 71) を参照してください。
インスタンスのサイズを変更すると、インスタンスの設定と互換性のあるインスタンスタイプを選択す
る必要があります。使用するインスタンスタイプに既存のインスタンス設定との互換性がない場合、使
用するインスタンスタイプで新しいインスタンスにアプリケーションを移行する必要があります。
Important
インスタンスのサイズを変更するときに、インスタンスストアボリュームを追加することはで
きません。サイズ変更したインスタンスには、そのインスタンスの起動時に指定したのと同じ
インスタンスストアボリュームが設定されます。インスタンスストアボリュームを追加する場
合、使用するインスタンスタイプとインスタンスストアボリュームで新しいインスタンスにア
プリケーションを移行する必要があります。インスタンスストアボリュームの詳細について
は、Amazon EC2 インスタンスストア (p. 735) を参照してください。
目次
161
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのサイズ変更
• インスタンスのサイズ変更の互換性 (p. 162)
• Amazon EBS-Backed インスタンスのサイズ変更 (p. 162)
• Instance Store-Backed インスタンスの移行 (p. 163)
• 新しいインスタンス設定への移行 (p. 164)
インスタンスのサイズ変更の互換性
現在のインスタンスタイプおよび使用する新しいインスタンスタイプが次のように互換性がある場合に
のみ、インスタンスのサイズを変更することができます。
• 仮想化タイプ. Linux AMI では、2 つの仮想化タイプ(準仮想化(PV)およびハードウェア仮想マシ
ン(HVM))のどちらかを使用します。PV AMI から起動されたインスタンスのサイズを、HVM の
みであるインスタンスタイプに変更することはできません。詳細については、「Linux AMI 仮想化タ
イプ (p. 74)」を参照してください。
• ネットワーク. 一部のインスタンスタイプは、EC2-Classic でサポートされていないため、VPC で起
動する必要があります。そのため、EC2-Classic では、デフォルト以外の VPC がない場合にインス
タンスのサイズを VPC でのみ利用可能なインスタンスタイプに変更することはできません。詳細に
ついては、「VPC でのみ利用可能なインスタンスタイプ (p. 583)」を参照してください。
• プラットフォーム. すべての Amazon EC2 インスタンスタイプは 64 ビット AMI をサポートします
が、32 ビット AMI をサポートするのは以下のインスタンスタイプのみです: t2.nano、t2.micro、
t2.small、t2.medium、c3.large、t1.micro、m1.small、m1.medium、c1.medium。32 ビッ
トインスタンスのサイズを変更する場合は、これらのインスタンスタイプに制限されます。
たとえば、T2 のインスタンスは、EC2-Classic ではサポートされず、HVM のみです。したがって、T1
インスタンスは HVM をサポートしていないために T1 インスタンスのサイズを T2 インスタンスに変
更することはできず、PV AMI から起動する必要があります。T2 インスタンスのサイズをもっと大きな
インスタンスタイプに変更する場合は、現行世代のすべてのインスタンスタイプが HVM AMI をサポー
トするため、M3 のような現行世代の任意のインスタンスタイプを選択できます。詳細については、
「利用可能なインスタンスタイプ (p. 133)」を参照してください。
Amazon EBS-Backed インスタンスのサイズ変更
Amazon EBS-Backed インスタンスタイプを変更するには、そのインスタンスを停止する必要がありま
す。インスタンスを停止して再度起動するときは、以下に注意してください:
• インスタンスは新しいハードウェアに移動されますが、インスタンス ID は変更されません。
• インスタンスが VPC で実行されていてパブリック IP アドレスがある場合には、このアドレスは解放
されて、新しいパブリック IP アドレスになります。 インスタンスのプライベート IP アドレスと
Elastic IP アドレスは保持されます。
• インスタンスを EC2-Classic で実行している場合、新しいパブリック IP アドレスとプライベート IP
アドレスが与えられ、インスタンスに関連付けられている Elastic IP アドレスの関連付けが解除され
ます。 したがって、インスタンスでホストしているアプリケーションをユーザーが中断なく継続し
て使用できるようにするには、インスタンスの再起動後、Elastic IP アドレスを再度関連付ける必要
があります。
• インスタンスが Auto Scaling グループにある場合、Auto Scaling サービスはインスタンスを異常と判
断して停止し、代わりのインスタンスを起動することがあります。 これを防ぐためには、Auto Scaling
プロセスを中断してインスタンスのサイズを変更することができます。 詳細については、『Auto
Scaling 開発者ガイド』の「自動スケーリングプロセスの停止と再開」を参照してください。
詳細については、「インスタンスの停止と起動 (p. 278)」を参照してください。
AWS マネジメントコンソール を使って Amazon EBS-Backed インスタンスのサイズを変更するには、
次の手順を行います。
162
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのサイズ変更
Amazon EBS-Backed インスタンスのサイズを変更するには
1.
Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。
[EC2-Classic] インスタンスに関連付けられた Elastic IP アドレスがある場合は、詳細ペインに表示
された Elastic IP アドレスとインスタンス ID を書き留めます。
[Actions] を選択して [Instance State] を選択し、[Stop] を選択します。
4.
5.
6.
7.
確認ダイアログボックスで [Yes, Stop] を選択します。インスタンスが停止するまで、数分かかる
場合があります。
[EC2-Classic] インスタンスの状態が stopped になると、詳細ペインの [Elastic IP]、[Public DNS]、
[Private DNS]、および [Private IPs] の各フィールドは空白になり、古い値がインスタンスと関連付
けられなくなったことを示します。
インスタンスが選択されたままの状態で [Actions] を選択し、[Instance Settings] を選択して [Change
Instance Type] を選択します。インスタンスの状態が stopped ではない場合、このアクションは
無効になるので注意してください。
[Change Instance Type] ダイアログボックスで、次の操作を行います。
a.
b.
c.
[インスタンスタイプ] から、使用するインスタンスタイプを選択します。使用するインスタン
スタイプがリストに表示されない場合は、インスタンスの設定と互換性がありません(仮想化
タイプが原因の場合など)。
(オプション)選択したインスタンスタイプが EBS 最適化をサポートしている場合は、
[EBS-optimized] を選択して EBS 最適化を有効にするか、[EBS-optimized] を選択解除して
EBS 最適化を無効にします。選択したインスタンスタイプがデフォルトで EBS 最適化される
場合、[EBS-optimized] が選択されており、選択解除できないことに注意してください。
[Apply] を選択して、新しい設定を受け入れます。
8.
停止されているインスタンスを再起動するには、インスタンスを選択し、[Actions] を選択して
[Instance State] を選択した後、[Start] を選択します。
9. 確認ダイアログボックスで [Yes, Start] を選択します。インスタンスが running 状態になるまで、
数分かかる場合があります。
10. [EC2-Classic] インスタンスの状態が running になると、詳細ペインの [Public DNS]、[Private
DNS]、および [Private IPs] の各フィールドには、インスタンスに割り当てられた新しい値が含ま
れます。インスタンスに関連する Elastic IP アドレスがある場合は、次のようにして再び関連付け
る必要があります。
a.
b.
c.
d.
ナビゲーションペインで [Elastic IPs] を選択します。
インスタンスを停止する前に書き留めた Elastic IP アドレスを選択します。
[Actions] を選択し、次に [Associate Address] を選択します。
[Instance] から、インスタンスを停止する前に書き留めたインスタンス ID を選択し、[Associate]
を選択します。
Instance Store-Backed インスタンスの移行
1 つの instance store-backed インスタンスから別のインスタンスタイプの instance store-backed イン
スタンスにアプリケーションを移動する場合は、インスタンスからイメージを作成し、このイメージか
ら必要なインスタンスタイプで新しいインスタンスを起動することにより、移行する必要があります。
インスタンスでホストしているアプリケーションをユーザーが中断なく継続して使用できるようにする
には、元のインスタンスに関連付けられた Elastic IP アドレスを新しいインスタンスに関連付ける必要
があります。その後、元のインスタンスを終了できます。
163
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのサイズ変更
Instance Store-Backed インスタンスを移行するには
1.
[EC2-Classic] 移行するインスタンスに Elastic IP アドレスが関連付けられている場合は、後で新し
いインスタンスに関連付けることができるように Elastic IP アドレスを書き留めます。
2.
永続的ストレージに保持する必要がある、インスタンスストアボリュームのデータをバックアップ
します。保持する必要がある EBS ボリュームのデータを移行するには、ボリュームのスナップ
ショットを作成するか(「Amazon EBS スナップショットの作成 (p. 710)」を参照)、またはイン
スタンスからボリュームをデタッチして後で新しいインスタンスにアタッチできるようにします
(「インスタンスからの Amazon EBS ボリュームのデタッチ (p. 692)」を参照)。
3.
Instance Store-Backed インスタンスから AMI を作成するには、「Instance Store-Backed Linux
AMI の作成 (p. 97)」に記載された前提条件と手順に従います。インスタンスから AMI を作成した
ら、この手順に戻ります。
ナビゲーションペインで Amazon EC2 コンソールを開き、[AMIs] を選択します。フィルタリスト
で [Owned by me] を選択し、前のステップで作成したイメージを選択します。[AMI Name] は、イ
メージを登録したときに指定した名前であり、[Source] は Amazon S3 バケットです。
4.
Note
前のステップで作成した AMI が表示されない場合は、AMI を作成したリージョンを選択し
ていることを確認します。
5.
[Launch] を選択します。インスタンスに対してオプションを指定する場合は、使用する新しいイン
スタンスタイプを選択してください。使用するインスタンスタイプを選択できない場合は、作成し
た AMI の構成と互換性がありません(仮想化タイプが原因の場合など)。元のインスタンスから
デタッチした EBS ボリュームを指定することもできます。
インスタンスが running 状態になるまで、数分かかる場合があるので注意してください。
6.
[EC2-Classic] 起動したインスタンスに関連する Elastic IP アドレスがある場合は、次のようにして
新しいインスタンスと関連付ける必要があります。
a.
b.
c.
d.
7.
ナビゲーションペインで [Elastic IPs] を選択します。
この手順の最初に書き留めた Elastic IP アドレスを選択します。
[Actions] を選択し、次に [Associate Address] を選択します。
[Instance] から新しいインスタンスを選択し、[Associate] を選択します。
(オプション)不要になった場合は、起動したインスタンスを終了できます。インスタンスを選択
し、終了しようとしているのが新しいインスタンスではなく元のインスタンスであることを確認し
ます(名前や起動時間を確認するなど)。[Actions] を選択して [Instance State] を選択し、[Terminate]
を選択します。
新しいインスタンス設定への移行
インスタンスの現在の設定に使用する新しいインスタンスタイプとの互換性がない場合、そのインスタ
ンスタイプにインスタンスのサイズを変更することはできません。代わりに、使用する新しいインスタ
ンスタイプと互換性がある設定で新しいインスタンスにアプリケーションを移行できます。
PV AMI から起動されたインスタンスから HVM のみのインスタンスタイプに移動する場合、一般的な
手順は次のとおりです。
1.
永続的ストレージに保持する必要がある、インスタンスストアボリュームのデータをバックアップ
します。保持する必要がある EBS ボリュームのデータを移行するには、ボリュームのスナップ
ショットを作成するか(「Amazon EBS スナップショットの作成 (p. 710)」を参照)、またはイン
スタンスからボリュームをデタッチして後で新しいインスタンスにアタッチできるようにします
(「インスタンスからの Amazon EBS ボリュームのデタッチ (p. 692)」を参照)。
164
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンス購入オプション
2.
新しいインスタンスを起動して、以下のものを選択します。
• HVM AMI
• HVM のみのインスタンスタイプ。
• [EC2-VPC] Elastic IP アドレスを使用している場合は、元のインスタンスを現在実行している
VPC を選択します。
• 元のインスタンスからデタッチして新しいインスタンスにアタッチする EBS ボリューム、また
は作成したスナップショットに基づいた新しい EBS ボリューム。
• 同じトラフィックが新しいインスタンスに到達できるようにする場合は、元のインスタンスと関
連付けられるセキュリティグループを選択します。
3.
アプリケーションと必要なソフトウェアをインスタンスにインストールします。
4.
5.
元のインスタンスのインスタンスストアボリュームからバックアップしたデータを復元します。
Elastic IP アドレスを使用している場合、以下のように新しく起動したインスタンスにそのアドレ
スを割り当てます。
a.
b.
c.
d.
6.
ナビゲーションペインで [Elastic IPs] を選択します。
元のインスタンスと関連付けられる Elastic IP アドレスを選択して、[Actions] を選択し、
[Disassociate Address] を選択します。確認を求めるメッセージが表示されたら、[Yes,
Disassociate] を選択します。
Elastic IP アドレスがまだ選択された状態で、[Actions] を選択し、[Associate Address] を選択
します。
[Instance] から新しいインスタンスを選択し、[Associate] を選択します。
(オプション)不要になった場合は、元のインスタンスを終了できます。インスタンスを選択し、
終了しようとしているのが新しいインスタンスではなく元のインスタンスであることを確認します
(名前や起動時間を確認するなど)。[Actions] を選択して [Instance State] を選択し、[Terminate]
を選択します。
EC2-Classic 内のインスタンスから VPC 内のインスタンスにアプリケーションを移行する方法の詳細
については、「EC2-Classic の Linux インスタンスから VPC の Linux インスタンスへの移行 (p. 596)」
を参照してください。
インスタンス購入オプション
Abstract
Amazon EC2 には、コストを最適化するためのさまざまな購入オプションがあります。
Amazon EC2 には、ニーズに基づいてコストを最適化するための以下の購入オプションがあります。
• オンデマンドインスタンス — 起動するインスタンスに対して時間単位でお支払いいただきます。
• リザーブドインスタンス — 1 か月~3 年の期間で、常に使用できるインスタンスを大幅な割引で購
入します。
• スケジュールされたインスタンス — 1 年の期間、指定された定期的なスケジュールで常に使用でき
るインスタンスを購入します。
• スポットインスタンス — 未使用のインスタンスに入札します。それらのインスタンスは、使用可能
で、入札金額がスポット料金よりも高い限り、大幅な割引で実行できます。
• 専用ホスト — 完全にインスタンスの実行専用の物理ホストに対してお支払いいただき、既存のソケッ
ト単位、コア単位、または VM 単位のソフトウェアライセンスを持ち込んでコストを削減できます。
165
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのライフサイクルの決定
• ハードウェア専有インスタンス — シングルテナントハードウェアで実行されるインスタンスに対し
て、時間単位でお支払いいただきます。詳細については、Dedicated Instances の Amazon VPC ユー
ザーガイド を参照してください。
キャパシティーの予約が必要な場合は、リザーブドインスタンスまたはスケジュールされたインスタン
スを検討してください。スポットインスタンスは、アプリケーションを実行する時間に柔軟性がある場
合や、それらを中断できる場合に、費用効率の高い選択肢です。専有ホストは、既存のサーバー範囲内
のソフトウェアライセンスを使用することにより、コンプライアンス要件を満たし、コストを削減する
のに役立ちます。詳細については、「Amazon EC2 インスタンス購入オプション」を参照してくださ
い。
目次
• インスタンスのライフサイクルの決定 (p. 166)
•
•
•
•
リザーブドインスタンス (p. 167)
スケジュールされたリザーブドインスタンス (p. 190)
スポットインスタンス (p. 193)
Dedicated Hosts (p. 239)
インスタンスのライフサイクルの決定
インスタンスのライフサイクルは起動時に開始され、終了時に終了されます。選択する購入オプション
により、インスタンスのライフサイクルに影響があります。たとえば、起動時にオンデマンドインスタ
ンスが実行され、終了時に実行が終了されます。スポットインスタンスは、キャパシティーが利用可能
で、入札価格がスポット料金より高い限り実行されます。スケジュールされたインスタンスは、スケ
ジュールされた期間中に起動できます。Amazon EC2 はインスタンスを起動し、期間終了の 3 分前に
終了します。
次の手順を使用して、インスタンスのライフサイクルを決定します。
コンソールを使用してインスタンスのライフサイクルを決定するには
1.
2.
3.
4.
5.
6.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[インスタンス] を選択します。
インスタンスを選択します。
[Description] タブで [Tenancy] を見つけます。値が host の場合、インスタンスは Dedicated Host
で実行されています。値が dedicated の場合、インスタンスはハードウェア専有インスタンスで
す。
[Description] タブで [Lifecycle] を見つけます。値が spot の場合、インスタンスはスポットインス
タンスです。値が scheduled の場合、インスタンスはスケジュールされたインスタンスです。値
が normal の場合、インスタンスはオンデマンドインスタンスまたはリザーブドインスタンスで
す。
(オプション) リザーブドインスタンスを購入し、適用されていることを確認するには、Amazon
EC2 の使用状況レポートを確認できます。詳細については、「リザーブドインスタンスの使用率
レポート (p. 791)」を参照してください。
AWS CLIを使用してインスタンスのライフサイクルを決定するには
次の describe-instances コマンドを使用します。
aws ec2 describe-instances --instance-ids i-1a2b3c4d
インスタンスが Dedicated Host で実行されている場合、出力には次の情報が含まれます。
166
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
"Tenancy": "host"
インスタンスがハードウェア専有インスタンスの場合、出力には次の情報が含まれます。
"Tenancy": "dedicated"
インスタンスがスポットインスタンスの場合、出力には次の情報が含まれます。
"InstanceLifecycle": "spot"
インスタンスがスケジュールされたインスタンスの場合、出力には次の情報が含まれます。
"InstanceLifecycle": "scheduled"
それ以外の場合、出力には次の情報が含まれます。
"InstanceLifecycle": "normal"
リザーブドインスタンス
Abstract
EC2 インスタンス用の処理能力を予約することで、リザーブドインスタンスによってインスタンスの平均使用料が
削減されます。
リザーブドインスタンスは請求の割引であり、時間あたりの運用コストを下げるためにインスタンスに
適用される容量の予約です。リザーブドインスタンスは物理インスタンスではありません。割引された
使用料金はリザーブドインスタンスを所有している間は固定されるため、予約期間に対応するコンピュー
ティングコストを予測することができます。一貫した重度の使用が予測される場合は、リザーブドイン
スタンスによって、自社でハードウェアを所有したり、オンデマンドインスタンスのみを実行したりす
るよりも、コストを節減できる可能性があります。詳細については、「リザーブドインスタンスの支払
いオプションの選択 (p. 170)」を参照してください。
リザーブドインスタンスを購入すると、予約は指定したパラメータに一致する実行中のインスタンスに
自動的に適用されます。あるいは、購入した予約容量と同じ構成でオンデマンド EC2 インスタンスを
起動することもできます。前払いまたは一部前払いリザーブドインスタンスは、使用されているかどう
かに関わらず、時間単位で使用料金が請求されます。全前払いのリザーブドインスタンスには追加の時
間単位料金はありません。
リザーブドインスタンスは自動的に更新されません。中断なく EC2 インスタンスを使い続けることが
できますが、オンデマンド料金が課金されます。新しいリザーブドインスタンスに失効したものと同じ
パラメータを持たせることも、異なるパラメータのリザーブドインスタンスを購入することもできま
す。
Auto Scaling または他の AWS サービスを使用して、リザーブドインスタンスのメリットを利用するオ
ンデマンドインスタンスを起動できます。 インスタンスを起動する方法については、「オンデマンド
インスタンスの起動」を参照してください。Auto Scaling を使用したインスタンスの起動については、
Auto Scaling 開発者ガイドを参照してください。
製品の料金については、次のページを参照してください。
• AWS サービス料金の概要
• Amazon EC2 On-Demand Instances Pricing
167
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
• Amazon EC2 Reserved Instance Pricing
• リザーブドインスタンスの料金範囲の詳細については、「リザーブドインスタンス割引料金範囲につ
いて (p. 172)」を参照してください。
Note
軽度使用、中度使用、重度使用リザーブドインスタンスは、今後購入できません。リザーブド
インスタンスの料金モデルに対する変更が、これらのオプションに及ぼす影響の詳細について
は、「リザーブドインスタンスについてのよくある質問」を参照してください。
トピック
• リザーブドインスタンスとは何ですか? (p. 168)
• 請求メリットおよびお支払い方法 (p. 170)
• リザーブドインスタンスを購入する (p. 174)
• リザーブドインスタンスマーケットプレイス で販売する (p. 178)
• リザーブドインスタンスの変更 (p. 184)
• 変更リクエストのトラブルシューティング (p. 189)
リザーブドインスタンスとは何ですか?
Abstract
リザーブドインスタンスとリザーブドインスタンスマーケットプレイスを使用するには、この要件と制限に関する
チェックリストを確認します。
Amazon EC2 リザーブドインスタンスと リザーブドインスタンスマーケットプレイス は、お客様がビ
ジネスを運営する上で強力かつ低コストの戦略として利用できます。しかし、リザーブドインスタンス
や リザーブドインスタンスマーケットプレイス を使用する前に、お客様が購入および販売の要件を満
たしていることをご確認ください。また、リザーブドインスタンスおよび リザーブドインスタンスマー
ケットプレイス の一定の要素について、詳細と制限を理解する必要があります。販売者としての登録、
銀行、AWS 無料利用枠、キャンセルしたインスタンスの扱いなどです。このトピックは、リザーブド
インスタンスを購入および販売するとき、および リザーブドインスタンスマーケットプレイス で売買
を行うときのチェックリストとして使用してください。
Note
リザーブドインスタンスを購入および変更するには、アベイラビリティーゾーンの表示など、
IAM ユーザーアカウントに適切なアクセス許可があることを確認します。詳細については、
「AWS CLI、Amazon EC2 CLI、または AWS SDK で使用するサンプルポリシー」および
「Amazon EC2 コンソールで使用するサンプルポリシー」を参照してください。
ご利用開始にあたって
• AWS アカウント – リザーブドインスタンスを購入するには、AWS アカウントが必要です。AWS ア
カウントをお持ちでない場合は、「Amazon EC2 でのセットアップ (p. 22)」を参照し、Amazon EC2
アカウントの登録と認証に関する情報を読み、指示に従ってください。
• AWS の無料利用枠 – AWS の無料利用枠は、新しい AWS アカウントで使用できます。(AWS の) 無
料利用枠を使用して Amazon EC2 インスタンスを実行している場合、リザーブドインスタンスを購
入すると、そのリザーブドインスタンスは標準の料金ガイドラインに基づいて課金されます。無料利
用枠と該当するサービスおよび使用量については、「AWS 無料利用枠」を参照してください。
168
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
リザーブドインスタンスを購入する
• 使用量 – リザーブドインスタンスでは、インスタンスを使用するかどうかに関係なく、全期間の料金
をお支払いいただきます。
• 購入に対する範囲による割引 – リザーブドインスタンスの価格範囲割引は、AWS からの購入にのみ
適用されます。この種の割引は、サードパーティのリザーブドインスタンスの購入には適用されませ
ん。詳細については、リザーブドインスタンス割引料金範囲について (p. 172) を参照してください。
• 購入のキャンセル – 購入を承認する前に、購入しようとしているリザーブドインスタンスの詳細を見
て、すべてのパラメータが正しいことを確認してください。リザーブドインスタンスを購入した後で
は (リザーブドインスタンスマーケットプレイス でサードパーティーの販売者から、または AWS の
いずれの場合も)、購入をキャンセルすることはできません。ただし、ニーズが変化したときにリザー
ブドインスタンスを売却できる場合はあります。詳細については、リザーブドインスタンスの出
品 (p. 181) を参照してください。
リザーブドインスタンスの販売と リザーブドインスタンスマーケットプレイス
• 販売者の要件 – リザーブドインスタンスマーケットプレイス で販売者になるには、販売者として登
録する必要があります。詳細については、リザーブドインスタンスの出品 (p. 181) を参照してくださ
い。
• 銀行の要件 – AWS では、リザーブドインスタンスの販売時に集金された金額をお支払いするために、
お客様の銀行情報が必要です。住所が米国内の銀行でなければなりません。詳細については、「銀行
口座 (p. 179)」を参照してください。
• 税金の要件 – リザーブドインスタンスの取引数が 50 件以上ある販売者や 20,000 USD 以上の出品を
予定している販売者は、税務上の理由から、ビジネスに関する追加情報を提供する必要があります。
詳細については、税金情報 (p. 180) を参照してください。
• 最低販売価格 – リザーブドインスタンスマーケットプレイス で許容される最低販売価格は、0.00 USD
です。
• リザーブドインスタンスを販売できる時期 – リザーブドインスタンスを販売できるのは、AWS が前
払い料金を受け取り、リザーブドインスタンスがアクティブになってから (所有してから) 少なくと
も 30 日が経過してからです。さらに、出品するリザーブドインスタンスの残りの有効期間が 1 か月
以上あることが必要です。
• 出品の変更 – リザーブドインスタンスマーケットプレイス で出品を直接変更することはできません。
ただし、最初に出品をキャンセルしてから、新しいパラメータで別の出品を作成することはできま
す。詳細については、リザーブドインスタンスの価格決定 (p. 183) を参照してください。出品する前
にリザーブドインスタンスを変更することもできます。詳細については、リザーブドインスタンスの
変更 (p. 184) を参照してください。
• 割引されたリザーブドインスタンスの販売 – 料金範囲に基づく割引価格で購入された Amazon EC2
リザーブドインスタンスは、リザーブドインスタンスマーケットプレイス で販売することはできま
せん。詳細については、「リザーブドインスタンスマーケットプレイス (p. 170)」を参照してくださ
い。
• Service fee – リザーブドインスタンスマーケットプレイス で販売する各リザーブドインスタンスに
対しては、前払い価格の総額の 12% がサービス料として課金されます。(前払い価格は、販売者が
販売するリザーブドインスタンスに課金する価格です。)
• その他の AWS リザーブドインスタンス – リザーブドインスタンスマーケットプレイス で販売でき
るのは、Amazon EC2 リザーブドインスタンスのみです。Amazon Relational Database Service
(Amazon RDS) や Amazon ElastiCache リザーブドインスタンスなどの他の AWS リザーブドインス
タンスは、リザーブドインスタンスマーケットプレイス では販売できません。
Amazon VPC でのリザーブドインスタンスの使用
Amazon Virtual Private Cloud (Amazon VPC) にインスタンスを起動し、リザーブドインスタンスを活
用できます。詳細については、「What is Amazon VPC.」を参照してください(「Amazon VPC ユー
ザーガイド」)。
169
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
EC2 Classic アカウントを持っている場合、リザーブドインスタンスを購入し、名前に Amazon VPC
が含まれるプラットフォームを選択して、デフォルト以外の VPC に起動されたインスタンスに適用す
ることができます。詳細については、「Detecting Your Supported Platforms and Whether You Have a
Default VPC」を参照してください。
EC2-VPC のみのアカウントを持っている場合、使用可能なプラットフォームの一覧には、Amazon VPC
を名前に含むものは表示されません。これは、すべてのプラットフォームがデフォルトのサブネットを
持っているためです。予約した処理能力と同じ構成のインスタンスを起動し、そのインスタンスがデ
フォルトまたはデフォルト以外の VPC 内で起動する場合、処理能力の予約と請求のメリットが自動的
にインスタンスに適用されます。デフォルトの VPC の詳細については、「Your Default VPC and
Subnets」を参照してください(「Amazon VPC ユーザーガイド」)。
また、専用インスタンステナンシーを指定すると、ホストハードウェアレベルで物理的に切り離された
リザーブドインスタンスを購入することもできます。ハードウェア専有インスタンスの詳細について
は、『Amazon VPC ユーザーガイド』の「Dedicated Instances」を参照してください。
リザーブドインスタンスマーケットプレイス
Note
リザーブドインスタンスマーケットプレイス で販売できるのは、Amazon EC2 リザーブドイン
スタンスのみになります。Amazon RDS や Amazon ElastiCache リザーブドインスタンスなど
他のタイプは、リザーブドインスタンスマーケットプレイスで販売することはできません。
リザーブドインスタンスマーケットプレイスは、サードパーティや AWS のお客様が購入した、さまざ
まな期間と料金オプションの未使用リザーブドインスタンスの販売をサポートするプラットフォームで
す。たとえば、インスタンスを新しい AWS リージョンに移動した後や新しいインスタンスタイプに変
更した後のキャパシティーや、期限が切れる前に終了するプロジェクトのキャパシティーを AWS のお
客様が売却する場合などです。リザーブドインスタンスマーケットプレイス により、お客様に固有の
ビジネスに合わせて、必要なインスタンスタイプ、リージョン、期間の組み合わせに最も一致するリ
ザーブドインスタンスを検索できることで選択肢が増え、柔軟な選択が可能になります。Amazon EC2
インスタンスを リザーブドインスタンスマーケットプレイス で購入した場合も、キャパシティーの予
約については、AWS で直接購入したリザーブドインスタンスと同様です。
請求メリットおよびお支払い方法
リザーブドインスタンスの請求メリットは、一致する実行中のインスタンスに自動的に適用されます。
さらに、リザーブドインスタンスを購入してから、オンデマンドインスタンスを一致する仕様で起動す
ることもできます。料金メリットはこれらのインスタンスに自動的に適用されます。キャパシティーの
予約は、このような仕様でいつでもインスタンスを起動できるようにします。未使用のリザーブドイン
スタンスは、リザーブドインスタンスマーケットプレイスで販売することもできます。
リザーブドインスタンスの支払いオプションの選択
Abstract
適切なリザーブドインスタンスの支払いオプションを選択します。
リザーブドインスタンスには 3 種類の支払いオプションがあります。
• 前払いなし – 使用量にかかわらず、期間内のすべての時間は割引された時間料金で請求され、前払い
料金は必要ありません。このオプションは、1 年間の予約としてのみ使用できます。
Note
前払いなしのリザーブドインスタンスは、予約の全期間について毎月支払いを行う契約義務
に基づいています。そのため、前払いなしのリザーブドインスタンスを購入するアカウント
には、問題のない請求履歴が必須となります。
170
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
• 一部前払い – 料金の一部を前払いする必要があり、期間内の残りの時間は、使用量にかかわらず、割
引された時間料金で請求されます。
• すべて前払い – 期間の開始時に全額が支払われ、使用時間数に関係なく、残りの期間にその他のコス
トは生じません。
時間単位請求について
リザーブドインスタンスは、選択した期間内の時間ごとに請求されます。インスタンスが実行中である
かどうかは関係しません。
Important
予約および割引料金は 1 時間あたり 1 インスタンス時間にのみ適用されます。インスタンスが
予約の最初の 1 時間以内に再起動し、2 時間実行して停止する場合、最初のインスタンス時間
は割引料金で課金されますが、3 インスタンス時間がオンデマンド料金で課金されます。イン
スタンスが 1 時間以内に再起動し、次の 1 時間でも再起動してから残りの予約を実行した場
合、1 インスタンス時間はオンデマンド料金で課金され、その前のインスタンス時間とそれに
続くインスタンス時間は割引料金が適用されます。
リザーブドインスタンスの使用率レポート (p. 791) セクションには、オンデマンドインスタンスを実行
した場合と比較したコスト削減を図解するサンプルレポートがあります。リザーブドインスタンスにつ
いてのよくある質問には、表示価格計算のサンプルがあります。
実行中のインスタンスにリザーブドインスタンスを適用する方法
実行中のインスタンスに予約を割り当てるには、実行中のインスタンスの設定に合わせて、既存のリ
ザーブドインスタンスを変更するか、アベイラビリティーゾーン (us-east-1a など)、インスタンスタイ
プ (m3.large など)、プラットフォーム (Linux Amazon VPC など)、テナンシー (デフォルトなど) を選
択してリザーブドインスタンスを購入することができます。
次のオンデマンドインスタンスを購入した場合の例を以下に示します。
• us-east-1a アベイラビリティーゾーン内の 4 つの m1.small インスタンス
• us-east-1b アベイラビリティーゾーン内の 4 つの c1.medium インスタンス
• us-east-1b アベイラビリティーゾーン内の 2 つの c1.xlarge インスタンス
顧客が次の予約を購入します。
• us-east-1a アベイラビリティーゾーン内の 2 つの m1.small
• us-east-1a アベイラビリティーゾーン内の 3 つの c1.medium
• us-east-1b アベイラビリティーゾーン内の 1 つの c1.xlarge
料金メリットは次の方法で適用されます。
• 2 つの m1.small 予約の割引は、us-east-1a アベイラビリティーゾーンで実行される 4 つの m1.small
インスタンスのうちの 2 つに適用されます。
us-east-1a アベイラビリティーゾーン内の残り 2 つのインスタンスは、現在のオンデマンド料金のま
まで課金されます。
• 3 つの c1.medium 予約は、実行中の c1.medium インスタンスのアベイラビリティーゾーンと一致
しません。実行中の 4 つの c1.medium インスタンスは、現在のオンデマンド料金のままで課金され
ます。
お客様が us-east-1a アベイラビリティーゾーンの c1.medium インスタンスを起動すると、割引使用
料がそのインスタンスに適用されます。
171
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
• 1 つの c1.xlarge 予約の割引使用料が、us-east-1b アベイラビリティーゾーン内で実行中の 2 つの
c1.xlarge インスタンスのうち 1 つに適用されます。
us-east-1b アベイラビリティーゾーン内の残り 1 つの c1.xlarge インスタンスは、現在のオンデマ
ンド料金のままで課金されます。
この例では、時間あたりの使用料金の割引は、稼働している 2 つの m1.small と 1 つの c1.xlarge
オンデマンドインスタンスの時間単位料金にすぐに適用されます。また、残り 4 つのリザーブドインス
タンスを必要なときに実行するためのキャパシティーを確保しています。
リザーブドインスタンス割引料金範囲について
Abstract
Amazon EC2 リザーブドインスタンスの料金範囲割引について説明します。
割引料金範囲が適用されると、そのアカウントは、以降、その範囲レベル内で行われるすべてのリザー
ブドインスタンス購入の前払い料金および時間単位使用料に対して、自動的に割引を受けます。割引を
受けるためには、リージョンのリザーブドインスタンスの表示価格が 500,000 USD 以上である必要が
あります。
トピック
• リザーブドインスタンスの料金割引の計算 (p. 172)
• 料金範囲の一括請求 (p. 172)
• 割引範囲での購入 (p. 173)
• 現在の料金範囲の制限 (p. 173)
• 購入料金範囲 (p. 173)
リザーブドインスタンスの料金割引の計算
リージョンのすべてのリザーブドインスタンスの合計表示価格を計算することによって、アカウントの
料金範囲を決定できます。各予約の時間当たりの定期料金を各期間内の残り時間に掛けて、購入時に
AWS マーケティングウェブサイトに表示される割引されていない前払い料金 (固定料金) を加算しま
す。表示価格は割引前料金 (一般料金) に基づいているため、従量制割引の適用を受けた場合またはリ
ザーブドインスタンスを購入した後の値下げ分は反映されません。
List value = fixed price + (undiscounted recurring hourly price * hours in term)
リザーブドインスタンスの固定料金をコンソールを使用して表示するには
1. https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2. 右上の [Show/Hide] を選択して、[Fixed Price] 列の表示をオンにします。
リザーブドインスタンスの固定料金をコマンドラインを使用して表示するには
• AWS CLI の使用方法は、「describe-reserved-instances」を参照してください。
• Amazon EC2 CLI の使用方法は、「ec2-describe-reserved-instances」を参照してください。
• Amazon EC2 API の使用方法は、「DescribeReservedInstances」を参照してください。
料金範囲の一括請求
一括請求アカウントはリージョン内のメンバーアカウントの表示価格を集計します。一括請求アカウン
トのすべてのアクティブなリザーブドインスタンスの表示価格が割引料金範囲に達すると、以降(その
172
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
一括請求アカウントの表示価格が割引価格範囲のしきい値を超えている限り)、一括請求アカウント内
のアカウントで購入されたリザーブドインスタンスには割引が適用されます。詳細については、「リ
ザーブドインスタンスと一括請求(コンソリデーティッドビリング) (p. 174)」を参照してください。
割引範囲での購入
リザーブドインスタンスを購入すると、割引料金範囲に該当する部分のリザーブドインスタンスに対応
する割引があれば、Amazon EC2 によって自動的に適用されます。特に何かを行う必要はなく、どの
Amazon EC2 ツールを使用しても購入できます。詳細については、「リザーブドインスタンスマーケッ
トプレイスを利用した購入 (p. 176)」を参照してください。
Note
リザーブドインスタンスの購入は、割引料金範囲を判断できる唯一の購入方法です。割引は
Amazon EC2 のリザーブドインスタンスの購入にのみ適用されます。
リージョンでのアクティブなリザーブドインスタンスの表示価格が割引料金範囲に該当した場合、その
リージョンでのリザーブドインスタンスは、以降、すべての購入が割引料金で課金されます。リージョ
ンのリザーブドインスタンスの 1 回の購入でしきい値を超える場合は、そのご購入分のうち、割引範囲
のしきい値を超える部分が割引になります。購入プロセス中に作成された一時的なリザーブドインスタ
ンス ID の詳細については「購入料金範囲 (p. 173)」を参照してください。
表示価格が割引範囲の金額を下回った場合は(一部のリザーブドインスタンスの有効期限が切れた場合
など)、以降、そのリージョンで購入されるリザーブドインスタンスには割引が適用されません。ただ
し、もともと割引料金範囲で購入されたリザーブドインスタンスに対しては、引き続き割引が適用され
ます。
リザーブドインスタンスを購入すると、次の 4 つのいずれかの状況になります。
• 割引なし – 1 つのリージョンでのリザーブドインスタンスの購入が、まだ割引しきい値より下であ
る。
• 一部割引 – 1 つのリージョンでのリザーブドインスタンスの購入により、最初の割引範囲のしきい値
を超える。割引なしが 1 つ以上の予約に適用され、割引料金が残りの予約に適用されます。
• 完全割引 – リージョン内の購入全体が 1 つの割引範囲に完全に含まれ、適切に割引されます。
• 2 つの割引料金 – 1 つのリージョンでのリザーブドインスタンスの購入が、下の割引範囲から上の割
引範囲まで及ぶ。2 つの異なる料金が課金されます。1 つ以上の予約により低い割引率が適用され、
残りの予約により高い割引率が適用されます。
現在の料金範囲の制限
現在、リザーブドインスタンスの料金範囲には以下の制限が適用されます。
• リザーブドインスタンスの料金範囲およびそれに関連する割引は、Amazon EC2 リザーブドインス
タンスの購入にのみ適用されます。
• リザーブドインスタンス料金範囲は、SQL Server Standard または SQL Server Web を使用する
Windows 用のリザーブドインスタンスには適用されません。
• 料金範囲に基づく割引の一部として購入されたリザーブドインスタンスは、リザーブドインスタンス
マーケットプレイス で販売することはできません。詳細については、リザーブドインスタンスマー
ケットプレイス (p. 170) ページを参照してください。
購入料金範囲
割引料金範囲に到達した場合、その購入に対して複数のエントリが表示されます。通常の料金が課金さ
れる部分と、割引料金が適用されて課金される部分です。
173
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
リザーブドインスタンスサービスによって複数のリザーブドインスタンス ID が生成されます。これは、
割引が適用されない範囲と割引範囲、または複数の割引範囲に購入がまたがるためです。範囲内の予約
のセットにはそれぞれ ID があります。この結果、購入 CLI コマンドまたは API アクションによって返
される ID は、新しいリザーブドインスタンスの実際の ID とは異なるものになります。
リザーブドインスタンスと一括請求(コンソリデーティッドビリング)
Abstract
購入アカウントが任意の一括請求支払いアカウントに含まれている場合は、リザーブドインスタンスの料金面での
メリットを広範囲に利用できます。
購入アカウントが、1 つの一括請求の支払いアカウントに請求される一連のアカウントの一部である場
合、リザーブドインスタンスの料金面でのメリットを広範囲に利用できます。すべてのサブアカウント
の時間単位の使用量が月次で支払いアカウントに集約されます。さまざまな役割を持つチームやグルー
プがある企業にとっては特に便利です。したがって、請求書の計算には通常のリザーブドインスタンス
のロジックが適用されます。詳しくは、AWS Billing and Cost Management ユーザーガイド の「一括
請求 (コンソリデーティッドビリング)」を参照してください。
一括請求アカウントに適用されるリザーブドインスタンス料金範囲の割引の詳細については、「Amazon
EC2 リザーブドインスタンス」を参照してください。
明細書(請求書)を読む
Abstract
AWS マネジメントコンソールで明細書を表示して、アカウントへの請求および料金を確認できます。
AWS マネジメントコンソールの [Billing & Cost Management] ページを参照して、アカウントへの請求
および料金を知ることができます。このページにアクセスするには、アカウント名の横の矢印を選択し
ます。
• [Dashboard] ページには、アカウントに課された料金が表示されます。これには、前払い料金、1 回
払い料金、および繰り返し課金が含まれます。料金の概要または詳細なリストの両方を取得できま
す。
• リザーブドインスタンスマーケットプレイスのサードパーティのリザーブドインスタンスの前払い料
金は、[AWS Marketplace Charges] セクションに表示され、その横に販売者名が表示されます。これ
らのリザーブドインスタンスのすべての定期料金または使用量は、[AWS Service Charges] セクショ
ンに表示されます。
• [Detail] セクションには、アベイラビリティーゾーン、インスタンスタイプ、コスト、インスタンス
数などのリザーブドインスタンスに関する情報が含まれています。
料金をオンラインで表示できるほか、料金情報を示す PDF をダウンロードすることもできます。
リザーブドインスタンスを購入する
Abstract
AWS マネジメントコンソール、Amazon EC2 CLI、Amazon EC2 API を使用する手順に従って、サードパーティー
または AWS から Amazon EC2 リザーブドインスタンスを購入します。
特定のタイプのリザーブドインスタンスを、購入を目的に検索し、パラメーターを調整して目的に完全
に一致するものを見つけることができます。
リザーブドインスタンスの購入に関して、以下に注意する必要があります。
• 使用料 – リザーブドインスタンスでは、実際の使用に関係なく、全期間の料金をお支払いいただきま
す。
174
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
• 購入に対する範囲による割引 – 価格範囲割引は、AWS からの購入にのみ適用されます。この種の割
引は、サードパーティのリザーブドインスタンスの購入には適用されません。詳細については、「リ
ザーブドインスタンス割引料金範囲について (p. 172)」を参照してください。
• 購入のキャンセル – 購入を承認すると、取り消すことはできません。承認する前に、購入を検討して
いるリザーブドインスタンスの詳細を点検して、すべてのパラメーターが正しいことを確認してくだ
さい。ただし、お客様のニーズが変わり、要件を満たせば、リザーブドインスタンスを売却できる場
合もあります。詳細については、「リザーブドインスタンスマーケットプレイス で販売する (p. 178)」
を参照してください。
購入するリザーブドインスタンスを選択すると、選択内容にかかる全費用の見積もりが出されます。購
入を進める場合は、AWS により自動的に購入価格に限度価格が設けられるため、リザーブドインスタ
ンスの全費用が提示された見積額を超えることはありません。
何らかの理由で価格が上がったり変更された場合は、前の画面に戻り、購入は完了されません。購入時
に、選択した内容と同じような内容で価格が安い製品があった場合、AWS はその製品をその安い価格
で販売します。
リザーブドインスタンスの適用
リザーブドインスタンスは、実行中または実行する可能性があり仕様が一致するオンデマンドインスタ
ンスに自動的に適用されます。これらのタスクはいずれも、AWS マネジメントコンソール、Amazon
EC2 CLI ツール、または Amazon EC2 API を使用して実行できます。
Note
リザーブドインスタンスを購入および変更するには、アベイラビリティーゾーンの表示など、
IAM ユーザーアカウントに適切なアクセス許可があることを確認します。詳細については、
「AWS CLI、Amazon EC2 CLI、または AWS SDK で使用するサンプルポリシー」および
「Amazon EC2 コンソールで使用するサンプルポリシー」を参照してください。
購入 – 予約する処理能力を決定します。以下の条件を指定します。
• プラットフォーム(例: Linux)。
Note
特定の Linux プラットフォームでリザーブドインスタンスを実行する場合、予約済み処理能
力を購入するときに、そのプラットフォームを指定する必要があります。そして購入した予
約済み処理能力を使用してインスタンスを起動するときに、その Linux プラットフォームを
実行する Amazon マシンイメージ(AMI)と、購入時に指定したその他すべての仕様を選択
する必要があります。
• インスタンスタイプ (例: m1.small)。
• インスタンスを実行するアベイラビリティーゾーン。
• 処理能力を予約する期間。
• テナンシー. シングルテナントハードウェア (shared でなく dedicated テナンシー) で実行するイ
ンスタンスのためにキャパシティーを予約できます。選択したテナンシーは、リザーブドインスタン
スを適用するオンデマンドインスタンスのテナンシーと一致している必要があります。詳細について
は、「専用インスタンス」を参照してください。
• 提供内容(前払いなし、一部前払い、全額前払い)。
使用 – リザーブドインスタンスを使用するには、購入した予約と同じ仕様でオンデマンドインスタンス
を起動します。料金面でのメリットおよび処理能力の予約は、所有している該当のインスタンスのう
ち、まだ予約の対象になっていないすべてのインスタンスに対して自動的に適用されます。
175
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
詳細については、「インスタンスの作成 (p. 254)」を参照してください。
リザーブドインスタンスの状態
リザーブドインスタンスは、以下のいずれかの状態になります。
• active – リザーブドインスタンスは、使用可能です。
• payment-pending – AWS で、リザーブドインスタンスに対するお客様の支払が処理中です。リザー
ブドインスタンスは、状態が [active] になると使用できます。
• retired – リザーブドインスタンスは以下のいずれかの理由で終了しました。
• AWS がお客様からの支払を受け取っていない。たとえば、クレジットカードの処理を行えなかっ
た場合などです。
• リザーブドインスタンスの期限が切れた。
• リザーブドインスタンスがキャンセルされた。
[Reserved Instance] ページの [State] 列に表示される状態情報は、[My Listings] タブの [Listing State] に
表示される状態情報とは異なりますので注意が必要です。
リザーブドインスタンスマーケットプレイス で販売している場合は、[Listing State] に リザーブドイン
スタンスマーケットプレイス に出品されている予約の状態が表示されます。詳細については、「リザー
ブドインスタンスの出品状態 (p. 182)」を参照してください。
リザーブドインスタンスマーケットプレイスを利用した購入
Abstract
アマゾン ウェブ サービスからリザーブドインスタンスを購入したり、リザーブドインスタンスマーケットプレイ
スを利用してサードパーティの販売業者からリザーブドインスタンスを購入したりすることができます。
Amazon EC2 リザーブドインスタンスは、AWS から、または不要になったリザーブドインスタンスを
保有しているサードパーティーの販売者から購入できます。
購入者にとっては、リザーブドインスタンスマーケットプレイス により、必要なインスタンスタイプ、
リージョン、期間の組み合わせに最も一致するリザーブドインスタンスを検索できることで選択肢が増
え、柔軟な選択が可能になります。
リザーブドインスタンスマーケットプレイス の詳細については、「リザーブドインスタンスマーケッ
トプレイス で販売する (p. 178)」を参照してください。
リザーブドインスタンスマーケットプレイス で購入したリザーブドインスタンスと AWS から直接購入
したリザーブドインスタンスの間にはいくつかの違いがあります。
• 期間—サードパーティ販売者から購入したリザーブドインスタンスは、残り期間が完全な標準期間よ
りも短くなっています。AWS の完全な標準期間は 1 年または 3 年間です。
• 前払い価格—サードパーティのリザーブドインスタンスは、さまざまな前払い価格で販売されます。
使用料金または定期的に支払う料金は、リザーブドインスタンスを最初に AWS から購入したときに
設定された料金と同じ金額です。
お客様に関する基本情報(郵便番号や国情報など)は、販売者と共有されます。
この情報を使用して、販売者は、国に支払う必要な取引税(売上税や付加価値税など)を計算し、支払
いレポート形式で提示します。まれに、AWS が販売者に E メールアドレスを提供する必要がある場合
があります。これは、販売者が、販売に関する質問があり、それに関して連絡できるようにするためで
す (たとえば税務上の質問など)。
176
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
同様の理由で、AWS は購入者の請求書に販売者の正式名を記載します。税金または税に関する理由か
ら販売者の情報が必要な場合は、AWS サポートに問い合わせることも可能です。
AWS マネジメントコンソールを使用したリザーブドインスタンスの購入
AWS マネジメントコンソールを使用してリザーブドインスタンスを購入するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[Navigation] ペインで [Reserved Instances] を選択します。
3.
4.
[Reserved Instances] ページで、[Purchase Reserved Instances] を選択します。
購入するリザーブドインスタンスの詳細を指定して、[Search] を選択します。
Note
検索結果の [Seller] 列には、販売者がサードパーティであるかどうかが表示されます。そ
の場合、[Term] 列には標準以外の期間が表示されます。
5.
6.
7.
目的のリザーブドインスタンスを選択して、数量を入力し、[Add to Cart] を選択します。
選択したリザーブドインスタンスの要約を確認するには、[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. Amazon EC2 CLI の使用方法は、「ec2-describe-reserved-instances-offerings」を参照してくださ
い。
3. Amazon EC2 API の使用方法は、「PurchaseReservedInstancesOffering」を参照してください。
コマンドラインまたは API を使用してトランザクションのステータスを表示するには
1. AWS CLI の使用方法は、「describe-reserved-instances」を参照してください。
2. Amazon EC2 CLI の使用方法は、「ec2-describe-reserved-instances」を参照してください。
3. Amazon EC2 API の使用方法は、「DescribeReservedInstances」を参照してください。
177
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
リザーブドインスタンスマーケットプレイス で販売する
Abstract
ニーズの変化に応じて、リザーブドインスタンスの残りをリザーブドインスタンスマーケットプレイスで販売でき
ます。
未使用の予約を リザーブドインスタンスマーケットプレイス で販売することで、ビジネスニーズが変
化した場合やキャパシティーが不要になった場合に、新しい構成に柔軟に移行できます。
リザーブドインスタンスマーケットプレイス でリザーブドインスタンスを出品するとすぐに、購入希
望者側から見えるようになります。すべてのリザーブドインスタンスは、残り期間や時間料金別にグ
ループ化されます。
購入者のリクエストに対応するために、AWS は指定されたグループ内で前払い価格が最低のリザーブ
ドインスタンスを最初に販売します。次に、2 番目に低い価格のリザーブドインスタンスを販売しま
す。このようにして、購入者の注文すべてに対応するまで販売します。AWS は次にトランザクション
を処理し、リザーブドインスタンスの所有権を購入者に移します。
出品したリザーブドインスタンスは、売れるまでお客様の所有です。販売後は、予約済みのキャパシ
ティーと割引使用料金は使用できません。インスタンスを使用し続ける場合は、リザーブドインスタン
スが売却された時間から起算したオンデマンド料金が課金されます。予約済みキャパシティーをさらに
購入することも、キャパシティーの予約が売却されたときにインスタンスを停止することもできます。
目次
• 支払いを受け取る (p. 178)
• 販売者として登録する (p. 179)
• リザーブドインスタンスの出品 (p. 181)
• リザーブドインスタンスの価格決定 (p. 183)
支払いを受け取る
AWS が購入者からの支払い金を受領するとすぐに、リザーブドインスタンスの所有者として登録され
ているアカウントに関連付けられた E メールアドレスに、取引完了のメッセージが送信されます。
AWS は指定された銀行口座に、自動決済機関 (ACH) の電子送金を送信します。通常、この送金は、リ
ザーブドインスタンスの売却後 1~3 日の間に行われます。この支払いの状態を確認するには、リザー
ブドインスタンス支払いレポートを表示します。支払いは、1 日に 1 回行われます。AWS が銀行から
の検証結果を受領するまで、支払い金を受け取れないことに注意してください。検証のための期間は、
最大 2 週間かかります。
お客様が販売したリザーブドインスタンスは、お客様が実行した DescribeReservedInstances 呼
び出しの結果に引き続き表示されます。
リザーブドインスタンスに対する現金の支払いを、振込によって直接各自の銀行口座で受け取ります。
リザーブドインスタンスマーケットプレイス で販売する各リザーブドインスタンスに対しては、前払
い価格の総額の 12% がサービス料として課金されます。
Note
リザーブドインスタンスマーケットプレイス で販売できるのは、Amazon EC2 リザーブドイン
スタンスのみになります。Amazon RDS や Amazon ElastiCache リザーブドインスタンスなど
他のタイプは、リザーブドインスタンスマーケットプレイス で販売することはできません。
以下は留意すべき重要な制限です。
178
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
• リザーブドインスタンスは 30 日後から販売できます – リザーブドインスタンスを販売できるのは、
所有後少なくとも 30 日が経過してからです。さらに、出品するリザーブドインスタンスの残りの有
効期間が 1 か月以上あることが必要です。
• 出品の変更はできません – リザーブドインスタンスマーケットプレイスで出品を変更することはでき
ません。ただし、最初に出品をキャンセルしてから、新しいパラメータで別の出品を作成することは
できます。詳細については、リザーブドインスタンスの出品 (p. 181) を参照してください。出品する
前にリザーブドインスタンスを変更することもできます。詳細については、リザーブドインスタンス
の変更 (p. 184) を参照してください。
• 割引されたリザーブドインスタンスは販売できません – 料金範囲に基づく割引価格で購入されたリ
ザーブドインスタンスは、リザーブドインスタンスマーケットプレイス で販売することはできませ
ん。詳細については、「リザーブドインスタンスマーケットプレイス (p. 170)」を参照してください。
販売者として登録する
Abstract
販売者として登録することにより、リザーブドインスタンスマーケットプレイスでリザーブドインスタンスを販売
することができます。
リザーブドインスタンスマーケットプレイス で販売するための最初のタスクは、販売者として登録す
ることです。登録の際に、商号、銀行情報、納税識別番号を提供する必要があります。
記入済みの販売者登録が AWS に受領されると、登録を確認する電子メールが届いて、リザーブドイン
スタンスマーケットプレイス での販売が可能になったことが伝えられます。
トピック
• 銀行口座 (p. 179)
• 税金情報 (p. 180)
• 購入者との情報の共有 (p. 180)
銀行口座
AWS では、リザーブドインスタンスの販売時に集金された金額をお支払いするために、お客様の銀行
情報が必要です。住所が米国内の銀行でなければなりません。
支払い用のデフォルトの銀行口座を登録するには
1. [リザーブドインスタンスマーケットプレイスSeller Registration] ページでサインインします。AWS
アカウントを持っていない場合は、このページで作成できます。
2. [Manage Bank Account] ページで、支払いを受け取る銀行に関する次の情報を提供します。
• 銀行口座の名義
• 支店コード
• アカウント番号
• 銀行口座の種類
Note
法人の銀行口座を使用する場合は、口座に関する情報を FAX(1-206-765-3424)で送信する
ように指示されます。
179
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
登録後、指定された銀行口座がデフォルトとして設定され、銀行の確認待ちとなります。新しい銀行口
座を確認するには、最長で 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 を完了します。
• お客様が米国以外の販売者である。この場合、フォーム W-8BEN に電子的に記入する必要がありま
す。
IRS の要件とフォーム 1099-K の詳細については、IRS のウェブサイトを参照してください。
Tax interview で入力する税金情報は、お客様が米国の法人であるか米国外の法人であるかによって異
なります。 Tax interview の記入を行う際は、次に注意してください。
• AWS が提供する情報 (このトピックの情報を含む) は、税金、法律、またはその他の専門的なアドバ
イスではありません。IRS のレポート要件がビジネスに与える影響について知りたい場合、または他
の疑問がある場合は、税金、法律、またはその他の専門家にお尋ねください。
• IRS のレポート要件をできるだけ効率的に満たすには、Tax interview の中で要求されたすべての質問
に答え、情報を入力します。
• 答えを確認します。綴りを間違ったり、誤った税金識別番号を入力したりしないようにします。これ
らのミスがあると、誤った税金フォームが生成されます。
税金登録手続きを完了すると、AWS によってフォーム 1099-K が提出され、税金口座がしきい値レベ
ルに達した年の翌年の 1 月 31 日までに、米国の郵便によって上記フォームのコピーがお客様に届けら
れます。例えば、税金口座が 2016 年にしきい値に達した場合、2017 年にフォームを受け取ります。
購入者との情報の共有
リザーブドインスタンスマーケットプレイス で販売する場合、AWS は米国の規制に従って、お客様の
正式な会社名を購入者のステートメントに示します。さらに、購入者から請求書またはその他の税金関
連の理由について販売者に連絡したいとの要望が AWS カスタマー AWS サポートにあった場合、AWS
は、購入者が直接販売者に連絡できるよう販売者の E メールアドレスを購入者に提供する必要がある
場合があります。
同様の理由で、販売者には購入者の郵便番号および国情報が支払いレポートによって提供されます。販
売者として、この情報を、国に支払わなければならない取引税(売上税や付加価値税など)に添付する
必要がある場合があります。
180
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
AWS は税金に関する助言を行うことはできませんが、お客様が追加情報を必要としているとお客様の
税務専門家が判断した場合は、AWS カスタマーサポートにご連絡ください。
リザーブドインスタンスの出品
Abstract
リザーブドインスタンスマーケットプレイスにリザーブドインスタンスを出品/販売します。
登録済みの販売者の場合、販売するリザーブドインスタンスを 1 つまたは複数選択し、1 件のリストに
すべてまとめて販売することも、個別に販売することもできます。さらに、インスタンスのタイプ、プ
ラットフォーム、リージョン、アベイラビリティーゾーンの設定に関係なく、すべてのタイプのリザー
ブドインスタンスを出品できます。
出品をキャンセルする場合、その一部が既に売れているとき、売却済みの部分についてのキャンセルは
無効です。まだ売れていない部分のみが リザーブドインスタンスマーケットプレイス からなくなりま
す。
出品のライフサイクル
出品を作成したので、出品したものが売れたときに何が起きるかを見てみましょう。
出品したすべてのインスタンスがマッチングされて売れると、[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
181
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
出品をキャンセルする場合、その一部が既に売れているとき、売却済みの部分についてのキャンセルは
無効です。まだ売れていない部分のみが リザーブドインスタンスマーケットプレイス からなくなりま
す。
リザーブドインスタンスが売却された後
リザーブドインスタンスが売却されると、AWS から E メールの通知が送信されます。何らかのアク
ティビティ (出品の作成、出品の販売、または AWS から口座への送金など) がある日は、その日のすべ
てのアクティビティを記載した E メールの通知が送信されます。
AWS マネジメントコンソールの [Reserved Instance] ページで選択したリザーブドインスタンスの [My
Listings] タブで、リザーブドインスタンスの出品の状態を追跡できます。タブには、[Listing State] の
他、期間、出品価格、および出品されているインスタンスの中で使用可能、売却済み、およびキャンセ
ルされたものがいくつあるかの詳細といった情報が示されます。また、
ec2-describe-reserved-instances-listings CLI コマンドまたは
DescribeReservedInstancesListings API 呼び出しも使用でき、適切なフィルタを使用すること
により、出品に関する情報を取得できます。
リザーブドインスタンスの出品状態
[Listing State] には出品の現在の状態が表示されます。
[Listing State] に表示される情報は、リザーブドインスタンスマーケットプレイス へのお客様の出品の
状態に関するものです。これは、[Reserved Instances] ページの [State] 列に表示される状態情報とは異
なります。この [State] 情報は、お客様の予約に関するものです。詳細については、「リザーブドイン
スタンスの状態 (p. 176)」を参照してください。
Amazon EC2 CLI を使用したリザーブドインスタンスの出品
Amazon EC2 CLI を使用してリザーブドインスタンスを リザーブドインスタンスマーケットプレイス
に出品するには
1. ec2-describe-reserved-instances を呼び出して、リザーブドインスタンスのリストを取得し
ます。
2. 出品するリザーブドインスタンスの ID を指定し、ec2-create-reserved-instances-listing
を呼び出します。必須である次のパラメータを指定する必要があります。
• リザーブドインスタンス ID
• インスタンス数
• MONTH:PRICE
出品したインスタンスを表示するには
• ec2-describe-reserved-instances-listings を実行して、出品の詳細を取得します。
出品をキャンセルまたは変更するには
• ec2-cancel-reserved-instances-listings を実行して出品をキャンセルします。
Amazon EC2 API を使用したリザーブドインスタンスの出品
Amazon EC2 API を使用してリザーブドインスタンスを リザーブドインスタンスマーケットプレイス
に出品するには
1. DescribeReservedInstances を呼び出して、リザーブドインスタンスのリストを取得します。リ
ザーブドインスタンスマーケットプレイスに出品するリザーブドインスタンスの ID をメモします。
182
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
2. CreateReservedInstancesListing を使用してリストを作成します。
出品したインスタンスを表示するには
1. DescribeReservedInstancesListings を呼び出して出品の詳細を取得します。
出品をキャンセルするには
1. CancelReservedInstancesListing を実行します。
2. DescribeReservedInstancesListings を呼び出してキャンセルされたことを確認します。
AWS マネジメントコンソールを使用したリザーブドインスタンスの出品
AWS マネジメントコンソールを使用して、リザーブドインスタンスマーケットプレイスで販売するリ
ザーブドインスタンスを出品できます。
AWS マネジメントコンソール を使用してリザーブドインスタンスを リザーブドインスタンス
マーケットプレイス に出品するには
1.
2.
3.
4.
5.
6.
7.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Reserved Instances] を選択します。
出品するリザーブドインスタンスを選択し、[Sell Reserved Instances] を選択します。
[Configure Your Reserved Instance Listing] ページで、販売するインスタンス数および残り期間に
対する前払い価格を該当列に設定します。[Months Remaining] 列の隣にある矢印をクリックする
と、残りの有効期間の変化による、予約の価値の変化状況を確認できます。
上級ユーザーが価格をカスタマイズする場合は、今後の月に異なる価格を入力できます。デフォル
トの直線形の価格減少に戻すには、[Reset] を選択します。
出品の設定が終了したら、[Continue] を選択します。
[Confirm Your Reserved Instance Listing] ページに表示された出品詳細を確認し、問題がなければ
[List Reserved Instance] を選択します。
[Listing State] には出品の現在の状態が表示されます。
• [active] – 購入できます。
• [cancelled] - 出品がキャンセルされ、リザーブドインスタンスマーケットプレイス での購入ができ
ません。
• [closed] – 出品されていません。リザーブドインスタンスは、出品が完了したため [closed] になって
いる可能性があります。
リザーブドインスタンスの価格決定
販売するリザーブドインスタンスに指定できるのは前払い料金のみです。前払い料金は、購入者がリ
ザーブドインスタンスを購入する際に支払う一括払いの料金です。使用料金や定期的な料金は指定でき
ません。購入者は、予約が最初に購入された時に設定された同じ使用料金または定期的な料金を支払い
ます。
以下は留意すべき重要な制限です。
• 1 年間に 50,000 USD までのリザーブドインスタンスを販売できます。これよりも多く販売するに
は、「Amazon EC2 インスタンス上限緩和申請」フォームにご記入ください。
• 最低価格は 0 USD です。リザーブドインスタンスマーケットプレイスで許容される最低販売価格は、
0.00 USD です。
183
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
出品内容を直接変更することはできません。ただし、最初に出品をキャンセルしてから、新しいパラ
メータで別の出品を作成することはできます。
出品は、active 状態であればいつでもキャンセルできます。既にマッチングされていたり、販売処理
が行われている出品はキャンセルできません。出品したインスタンスの一部がマッチングされている場
合にその出品をキャンセルすると、マッチングされていない残りのインスタンスが出品から削除されま
す。
価格決定スケジュールの設定
リザーブドインスタンスの価値は時間が経つにつれて減少するため、AWS ではデフォルトで、1 月ご
とに同じ割合で低下するような価格設定を行っています。ただし、予約を販売する時期に基づいて、異
なる前払い価格を設定できます。
たとえば、リザーブドインスタンスの期間が 9 か月残っている場合、残余期間 9 か月のリザーブドイ
ンスタンスに対して販売者が受け取る金額を指定することも、残余期間が 5 か月の場合、さらに 1 か
月の場合の金額を指定することもできます。
リザーブドインスタンスの変更
Abstract
コンピューティングニーズが変化したときは、リザーブドインスタンスを変更して、処理能力の予約によるメリッ
トを引き続き受けることができます。
コンピューティングニーズが変化したときは、リザーブドインスタンスを変更して、引き続き予約した
容量を利用できます。変更しても、リザーブドインスタンスの有効な残りの期間は変わりません。終了
日は同じです。手数料は必要なく、新しく課金されたり、請求書が届いたりすることはありません。変
更は購入とは違い、リザーブドインスタンスの使用、購入、売却の方法には影響ありません。すべての
予約またはサブセットのみを次のいずれかの方法で変更できます。
• 同じリージョン内でアベイラビリティーゾーンを切り替える
• EC2-VPC と EC2-Classic を切り替える
• 同じインスタンスタイプ内でインスタンスサイズを変更する
すべての製品プラットフォームタイプで、アベイラビリティーゾーンやネットワークプラットフォーム
を変更することができます。インスタンスタイプの変更は、Linux プラットフォームタイプのみでサ
ポートされています。ただし、ライセンスが異なるため、Linux リザーブドインスタンスから RedHat
リザーブドインスタンスまたは SUSE Linux リザーブドインスタンスに変更することはできません。
RedHat または SUSE の料金の詳細については、Amazon EC2 リザーブドインスタンスの料金を参照し
てください。
変更後、リザーブドインスタンスの割引料金は、リザーブドインスタンスの新しいパラメータと一致す
るインスタンスのみに適用されます。新しいパラメータに一致しないインスタンスは、他に適用可能な
予約がない場合、オンデマンド料金で課金されます。
Note
予約のサブセットを変更すると、Amazon EC2 は元のリザーブドインスタンスを複数の新しい
リザーブドインスタンスに分割します。たとえば、us-east-1a 内に 10 個のインスタンスが予
約にあり、そのうち 5 個のインスタンスを us-east-1b に移動する場合、変更リクエストにより
2 つの新しい予約 (us-east-1a (元のアベイラビリティーゾーン) の 5 個のインスタンス用に 1
つと、us-east-1b の 5 個のインスタンス用に 1 つ) が作成されます。
次のトピックで、変更手順について説明します。
トピック
184
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
• 変更の要件 (p. 185)
• 予約のインスタンスサイズの変更 (p. 185)
• 変更リクエストの送信 (p. 187)
変更の要件
変更リクエストは、変更後の設定に対して十分なリザーブドインスタンス容量があり、以下の条件が満
たされている場合に処理されます。
変更されたリザーブドインスタンスは次のとおりである必要があります。
• アクティブ
• 別の変更リクエストを保留していない
• リザーブドインスタンスマーケットプレイス に出品されていない
• 同じ時間(分または秒ではない)で終了する
変更リクエストは次のとおりである必要があります。
• アベイラビリティーゾーン、インスタンスタイプおよびネットワークプラットフォーム属性の組み合
わせが一意である
• 元の予約のインスタンスサイズのフットプリントと変更後の設定が一致している
リザーブドインスタンスが active 状態ではない場合、または変更できない場合は、API 呼び出しがエ
ラーを返し、AWS マネジメントコンソールの [Modify Reserved Instances] ボタンが有効になりませ
ん。変更の対象として複数のリザーブドインスタンスを選択し、そのうちの 1 つ以上がインスタンスタ
イプを変更できない製品プラットフォームのものである場合、[Modify Reserved Instances] ページに
は、選択したリザーブドインスタンスのインスタンスタイプを変更するオプションが表示されません。
詳細については、「予約のインスタンスサイズの変更 (p. 185)」を参照してください。
予約の変更は何度でもできます。ただし、前の変更リクエストがまだ保留されている場合は、予約の変
更リクエストを送信できません。また、送信した後で保留中の変更リクエストを変更またはキャンセル
することはできません。変更が完了した後は、別の変更リクエストを送信して、実行した変更をロール
バックできます。詳細については、「変更のステータスの確認 (p. 188)」を参照してください。
リザーブドインスタンスマーケットプレイス に出品されているリザーブドインスタンスを変更するに
は、出品をキャンセルし、変更をリクエストした後で、再び出品します。さらに、出品を、購入する前
または購入と同時に変更することはできません。詳細については、「リザーブドインスタンスマーケッ
トプレイス (p. 170)」を参照してください。
Note
リザーブドインスタンスを購入および変更するには、アベイラビリティーゾーンの表示など、
IAM ユーザーアカウントに適切なアクセス許可があることを確認します。詳細については、
「AWS CLI、Amazon EC2 CLI、または AWS SDK で使用するサンプルポリシー」および
「Amazon EC2 コンソールで使用するサンプルポリシー」を参照してください。
予約のインスタンスサイズの変更
Abstract
予約のインスタンスサイズを変更できます (フットプリントや製品プラットフォーム内でのサイズ割り当てなど)。
複数のインスタンスのサイズがあるインスタンスタイプに Amazon Linux 予約がある場合、リザーブド
インスタンスのインスタンスサイズを調整できます。インスタンスサイズの変更は、他の属性詳細 (リー
185
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
ジョン、使用タイプ、テナンシー、製品、終了日時など) が一致し、利用できるキャパシティーがある
場合にのみ許可されることに注意してください。
Note
インスタンスはファミリー (ストレージまたは CPU 容量に基づく)、タイプ (特定のユースケー
ス用に設計)、およびサイズによってグループ分けされています。たとえば、c4 インスタンス
タイプはコンピューティング最適化インスタンスファミリーに含まれ、複数のサイズで利用で
きます。c3 インスタンスは同じファミリーに含まれるため、c4 インスタンスを c3 インスタ
ンスに変更することはできません。これは、ハードウェア仕様が異なるためです。詳細につい
ては、「Amazon EC2 インスタンスタイプ」を参照してください。
使用できる他のサイズがないため、次のインスタンスは変更できません。
• t1.micro
• cc1.4xlarge
• cc2.8xlarge
• cg1.8xlarge
• cr1.8xlarge
• hi1.4xlarge
• hs1.8xlarge
• g2.2xlarge
容量が存在し、変更によってリザーブドインスタンスのインスタンスサイズフットプリントが変わらな
い場合は、リクエストは正常に処理されます。インスタンスサイズのフットプリントは、インスタンス
タイプの正規化係数と予約に含まれるインスタンスの数によって決まります。たとえば、1つの m1.large
インスタンスの予約を 4 つの m1.small インスタンスに分割したり、4 つの m1.small インスタンス
の予約を 1 つの m1.large インスタンスに結合したりできます。どちらの場合も、予約のインスタン
スサイズフットプリントは変化しません。ただし、2 つの m1.small インスタンスの予約を 1 つの
m1.large インスタンスに変更することはできません。これは、現在の予約の既存のインスタンスサイ
ズフットプリントがリクエストされている予約より小さいためです。
インスタンスサイズのフットプリントについて
各リザーブドインスタンスにはインスタンスサイズのフットプリントがあり、これはインスタンスタイ
プの正規化係数と予約に含まれるインスタンスの数によって決まります。変更後の設定のフットプリン
トが元の設定のサイズと一致しない場合、変更リクエストは処理されません。Amazon EC2 コンソー
ルでは、フットプリントはユニットで測定されます。
正規化係数はインスタンスタイプ (例: m1 インスタンスファミリー) 内のサイズに基づきます。正規化
係数は同じインスタンスタイプ内でのみ意味を持ちます。異なるファミリーのインスタンスタイプに変
更することはできません。次の表では、インスタンスタイプ内で適用される正規化係数を示します。
インスタンスサイズ
正規化係数
micro
0.5
small
1
medium
2
large
4
xlarge
8
2xlarge
16
186
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
インスタンスサイズ
正規化係数
4xlarge
32
8xlarge
64
10xlarge
80
リザーブドインスタンスでインスタンスサイズのフットプリントを計算するには、インスタンスの数に
正規化係数を掛けます。たとえば、m1.medium の正規化係数は 2 なので、m1.medium インスタンス
4 個の予約は 8 ユニットのフットプリントを持ちます。
予約のインスタンスサイズのフットプリントが同じである場合は、同じインスタンスタイプ内で、予約
を異なるインスタンスサイズとして割り当てることができます。4 個の m1.medium インスタンス (4 x
2) の予約がある場合、8 個の m1.small インスタンス (8 x 1) の予約に変更できます。しかし、1 個の
m1.small インスタンス (1 x 1) の予約を 1 個の m1.large インスタンス (1 x 4) に変換することはでき
ません。この場合、2 つのフットプリントは同等ではありません。
Amazon EC2 インスタンスタイプの詳細については、「 Instance Types」を参照してください。
変更リクエストの送信
Abstract
AWS マネジメントコンソール Amazon EC2、CLI、または Amazon EC2 API を使用して、リザーブドインスタン
スを変更するリクエストを送信します。
AWS では、AWS マネジメントコンソールを使用して Amazon EC2 API をインタラクティブに操作し
たり、コマンドラインインターフェイスを使用したりするなど、変更リクエストを表示し、作業する方
法をいくつか提示しています。
トピック
• AWS マネジメントコンソール (p. 187)
• コマンドラインインターフェイス (p. 188)
• Amazon EC2 API (p. 188)
• 変更のステータスの確認 (p. 188)
AWS マネジメントコンソール
[Modify Reserved Instances] ページの各対象設定列は現在のインスタンスタイプのインスタンス数
([Count]) およびそのインスタンスタイプに関連する予約のインスタンスサイズのフットプリント ([Units])
を追跡しています。詳細については、「インスタンスサイズのフットプリントについて (p. 186)」を参
照してください。
変更が可能なインスタンス数よりも多くまたは少なくインスタンスを指定した場合、割り当てられたリ
ザーブドインスタンス総数は赤で表示されます。変更が可能なすべてのリザーブドインスタンスに対し
て変更を指定すると、すべての変更が緑に変わり [Continue] を選択できます。
AWS マネジメントコンソールを使用してリザーブドインスタンスを変更するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
[Reserved Instances] ページで、変更するリザーブドインスタンスを 1 つ以上選択し、[Modify
Reserved Instances] を選択します。
187
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
Note
変更テーブルの最初のエントリは、元の変更されていない予約です。予約のすべての属性
を変更するには、メニューから新しい仕様を選択します。予約の一部のみを変更、または
分割するには、変更ごとに行を追加します。
3.
追加したそれぞれの属性の変更で [Add] を選択し、[Count] フィールドに変更する予約数を入力し
ます。
•
アベイラビリティゾーンを変更するには、[Availability Zone] リストで値を選択します。
•
•
4.
ネットワークプラットフォームを変更するには、[Network] リストで値を選択します。
インスタンスタイプを変更するには、[Instance Type] リストで値を選択します。
指定された属性を削除するには、その行の [X] を選択します。
Note
[Modify Reserved Instances] ページに表示されている属性変更の行が 1 つだけの場合、そ
の行は削除できません。複数のリザーブドインスタンスの属性を変更するには、新しい仕
様の行を追加し、その後で元の行を削除します。
5.
6.
[Continue] を選択します。
ターゲット設定の指定を完了したときに、変更の選択を確認するには、[Submit Modifications] を選
択します。いずれの時点でも中止する場合は、[Cancel] を選択してウィザードを終了します。
コマンドラインインターフェイス
AWS CLI(modify-reserved-instances)、Amazon EC2 CLI(ec2-modify-reserved-instances)、Amazon
EC2 API(ModifyReservedInstances)、および AWS SDK for Java を使用して、プログラムで変更を完
了できます。
Amazon EC2 API
ModifyReservedInstances アクションを使用してリザーブドインスタンスを変更できます。詳細につい
ては、「Amazon EC2 API リファレンス」を参照してください。
変更のステータスの確認
変更リクエストのステータスは、変更しているリザーブドインスタンスの状態を見ることで確認できま
す。返される [state] には、リクエストが in-progress、fulfilled、またはfailed として表示され
ます。この情報を取得するには、以下のリソースを使用します。
• AWS マネジメントコンソールの [State] フィールド
• DescribeReservedInstancesModifications API アクション
• ec2-describe-reserved -instances-modifications CLI コマンド
次の表は、AWS マネジメントコンソールの [State] に表示される可能性のある値を示しています。
状態
説明
アクティブ(変更の保留中)
元のリザーブドインスタンスの移行状態。
終了(変更の保留中)
新しいリザーブドインスタンスを作成中の元のリ
ザーブドインスタンスの移行状態。
188
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リザーブドインスタンス
状態
説明
リタイア
リザーブドインスタンスは正常に変更され、置き
換えられました。
active
正常な変更リクエストにより新しいリザーブドイ
ンスタンスが作成されました。
-または変更リクエストが失敗したため、元のリザーブド
インスタンスです。
Note
DescribeReservedInstancesModifications API アクションを使用する場合、変更リクエストの
ステータスは進行中、完了、または失敗と表示されます。
変更リクエストが成功した場合。
• 変更後の予約がすぐに有効になり、変更リクエストが完了した時刻から、割引料金が新しいインスタ
ンスに適用されます。たとえば、午後 9 時 15 分に予約の変更が成功した場合、割引料金は午後 9 時
00 分から新しいインスタンスに移ります。(変更されたリザーブドインスタンスの effective date
は DescribeReservedInstances API アクションまたは ec2-describe- reserved-instances CLI コマンド
を使用して取得できます)。
• 元の予約は終了します。その終了日は新しい予約の開始日であり、新しい予約の終了日は元のリザー
ブドインスタンスの終了日と同じです。有効期限のうち 16 か月が残っている 3 年の予約を正常に変
更した場合、変更後の予約は 16 か月の予約であり、終了日は変更前の予約と同じです。
• 変更後の予約の固定価格は 0 USD であり、元の予約の固定価格ではありません。
Note
変更後の予約の固定価格はアカウントに適用される割引料金範囲の計算に影響を与えません。
割引範囲の計算は元の予約の固定価格に基づきます。
変更リクエストが失敗した場合。
• リザーブドインスタンスは元の設定を保持します。
• リザーブドインスタンスに対してすぐに別の変更リクエストを行うことができます。
リザーブドインスタンスを変更できない理由についての詳細は、「変更の要件 (p. 185)」を参照してく
ださい。
変更リクエストのトラブルシューティング
リクエストしたターゲット設定が一意であれば、リクエストが処理されるメッセージを受信します。こ
の時点では、Amazon EC2 は変更リクエストのパラメータが有効であることのみを確認しています。
まだ、処理中に容量が利用できないために変更リクエストが失敗する可能性があります。
場合によって、確認の代わりに変更リクエストが不完全または失敗したことを示すメッセージが表示さ
れることがあります。メッセージの情報を参考にして、別の変更リクエストを再送信します。
選択されたリザーブドインスタンスに変更できないものがあります
189
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スケジュールされたインスタンス
Amazon EC2 は変更できないリザーブドインスタンスを示します。このようなメッセージを受け取っ
たら、AWS マネジメントコンソールの [Reserved Instances] ページで容量予約についての詳細情報を
確認します。
変更リクエストの処理中にエラーが発生しました
送信したリザーブドインスタンス変更リクエストをすべて処理できません。変更している予約の数に
よっては、メッセージが異なる場合があります。
Amazon EC2 は変更リクエストを処理できない理由を示します。たとえば、変更しているリザーブド
インスタンスの 1 つ以上のサブセットに同じターゲット設定(アベイラビリティーゾーンとプラット
フォームの組み合わせ)を指定したような場合です。予約のインスタンス詳細が一致し、変更対象のす
べてのサブセットのターゲット設定が一意であることを確認して、変更リクエストの再送信を試みま
す。
スケジュールされたリザーブドインスタンス
Abstract
指定されたスケジュールで反復するキャパシティー予約
スケジュールされたリザーブドインスタンス (スケジュールされたインスタンス) によって、1 年間にわ
たり毎日、毎週、または毎月ベースの指定された開始時間および期間で繰り返しキャパシティー予約を
購入できます。あらかじめキャパシティーを予約しておき、必要なときに使用できるようにします。料
金は、インスタンスを使用しなくても、インスタンスがスケジュールされた時間に対して支払います。
スケジュールされたインスタンスは、継続的には実行されないが定期的なスケジュールで実行される
ワークロードに適しています。たとえば、営業時間中に実行するアプリケーションや週末に実行する
バッチ処理に、スケジュールされたインスタンスを使用できます。
キャパシティーの予約が連続して必要な場合、リザーブドインスタンスがニーズを満たし、コストを削
減できる可能性があります。詳細については、「リザーブドインスタンス (p. 167)」を参照してくださ
い。インスタンスをいつ実行するか特に決めていない場合、スポットインスタンスが要件を満たし、コ
ストを削減できる可能性があります。詳細については、「スポットインスタンス (p. 193)」を参照して
ください。
目次
• スケジュールされたインスタンスとは何ですか? (p. 190)
• スケジュールされたインスタンスの購入 (p. 191)
• スケジュールされたインスタンスの起動 (p. 192)
• スケジュールされたインスタンスの制限 (p. 192)
スケジュールされたインスタンスとは何ですか?
Amazon EC2 は、スケジュールされた EC2 インスタンスに使用するプールを別個に、各アベイラビリ
ティーゾーンに設定します。各プールはインスタンスタイプ、オペレーティングシステム、ネットワー
ク (EC2-Classic または EC2-VPC) の特定の組み合わせをサポートします。
開始するには、使用可能なスケジュールを探す必要があります。複数のプールまたは単一のプールを検
索できます。適したスケジュールを見つけたら、それを購入します。
スケジュールされた期間中にスケジュールされたインスタンスを起動します。すると、Amazon EC2
は指定された起動仕様に基づき、ユーザーに代わって EC2 インスタンスを起動します。Amazon EC2
は、現在のスケジュールされた期間の終了までに EC2 インスタンスが終了し、予約されている他のス
ケジュールされたインスタンスでキャパシティーを利用できるようにする必要があります。したがっ
て、Amazon EC2 は現在のスケジュールされた期間の終了 3 分前に EC2 インスタンスを終了します。
190
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スケジュールされたインスタンス
スケジュールされたインスタンスを停止または再起動することはできませんが、必要に応じて手動で終
了することはできます。現在のスケジュールされた期間が終わる前にスケジュールされたインスタンス
を終了した場合、数分後にもう一度起動できます。そうでない場合は、次のスケジュールされた期間ま
で待つ必要があります。
次の図は、スケジュールされたインスタンスのライフサイクルを示しています。
スケジュールされたインスタンスの購入
スケジュールされたインスタンスを購入するには、スケジュールされたリザーブドインスタンスの予約
ウィザードを完了します。
Warning
スケジュールされたインスタンスの購入後、購入をキャンセル、変更、または再販売すること
はできません。
スケジュールされたインスタンスを購入するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[INSTANCES] の下にある [Scheduled Instances] を選択します。
[Purchase Scheduled Instances] を選択します。
[Find available schedules] ページで、以下の操作を実行します。
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 つ以上のアベイラビリティーゾーンを選択します。
191
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スケジュールされたインスタンス
c.
d.
e.
5.
[Find schedules] を選択します。
[Available schedules] で、1 つまたは複数のスケジュールを選択します。選択した各スケジュー
ルに対してインスタンス数を設定し、[Add to Cart] を選択します。
カートは、ページの下部に表示されます。スケジュールをカートに追加およびカートから削除
し終えたら、[Review and purchase] を選択します。
[Review and purchase] ページで、選択を確認し、必要に応じて編集します。完了したら、[Purchase]
を選択します。
スケジュールされたインスタンスの起動
スケジュールされたインスタンスは購入後、起動できるようになります。スケジュールされたインスタ
ンスは、スケジュールされた期間中のみ起動できます。
スケジュールされたインスタンスを起動するには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[INSTANCES] の下にある [Scheduled Instances] を選択します。
スケジュールされたインスタンスを選択し、[Launch Scheduled Instances] を選択します。
[Configure] ページで、スケジュールされたインスタンスの起動仕様を入力し、[Review] を選択し
ます。
[Review] ページで、起動設定を確認し必要に応じて変更します。完了したら、[Launch] を選択し
ます。
スケジュールされたインスタンスの制限
スケジュールされたインスタンスには以下の制限が適用されます。
•
•
•
•
サポートされているインスタンスタイプは次のタイプのみです: C3、C4、M4 および R3。
必要な期間は 365 日 (1 年) です。
最低限必要な使用率は、1 年当たり 1,200 時間です。
事前に 3 か月までのスケジュールされたインスタンスを購入できます。
192
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
スポットインスタンス
Abstract
スポットインスタンスを使用して Amazon EC2 のコストを削減する方法について説明します。
スポットインスタンスでは、未使用の EC2 インスタンスに対してお客様から価格を提示していただき
ます。これによりお客様の Amazon EC2 のコストを大幅に削減できます。(各アベイラビリティーゾー
ン内の各インスタンスタイプの)スポットインスタンスの時間料金は Amazon EC2 によって設定され、
スポットインスタンスの需要と供給に応じて変動します。お客様の入札価格が現在の市場価格を上回っ
ている限り、お客様はスポットインスタンスを実行できます。
スポットインスタンスは、アプリケーションを実行する時間に柔軟性がある場合や、アプリケーション
を中断できる場合に、費用効率の高い選択肢です。たとえば、スポットインスタンスは、データ分析、
バッチジョブ、バックグラウンド処理、およびオプションタスクに適しています。詳細については、
「Amazon EC2 スポットインスタンス」を参照してください。
スポットインスタンスとオンデマンドインスタンスとの主な違いは、スポットインスタンスはすぐに起
動されない可能性があること、スポットインスタンスの時間料金は需要に応じて変化すること、および
スポットインスタンスの時間料金や可用性が変化したときに、Amazon EC2 が個々のスポットインス
タンスを終了できることです。1 つの戦略として、オンデマンドインスタンスのコアグループを起動し
て、アプリケーションのコンピューティングリソースの最低保証レベルを維持し、機会が発生したとき
にスポットインスタンスでオンデマンドインスタンスを補完する方法があります。
別の戦略は、スポット料金の変動によって中断されない、必須の継続期間 (スポットブロックとも呼ば
れます) を指定したスポットインスタンスを起動することです。詳細については、「スポットインスタ
ンスの継続期間の指定 (p. 208)」を参照してください。
概念
スポットインスタンスの使用を開始する前に、以下の概念を理解しておく必要があります。
• スポットプールとは、同様のインスタンスタイプ、オペレーティングシステム、アベイラビリティー
ゾーン、ネットワークプラットフォーム(EC2-Classic あるいは EC2-VPC)である使われていない
一連の EC2 インスタンスです。
• スポット価格とは、Amazon EC2 によって最後に落札された入札に基づき設定される、スポットイ
ンスタンスの 1 時間あたりの現在の市場価格です。 スポット価格履歴を取得することもできます。
• スポットインスタンスリクエスト(またはスポット入札)とは、スポットインスタンスに対して支払
う 1 時間あたりの上限価格(入札価格)を提供します。 入札価格がスポット価格を上回っている場
合、Amazon EC2 はリクエストを受理します。 スポットインスタンスのリクエストは、1 回限りま
たは永続的となることに注意してください。 Amazon EC2 は、リクエストに関連付けられたスポッ
トインスタンスが終了した後、自動的に永続スポットリクエストを再送信します。スポットインスタ
ンスリクエストにはオプションでスポットインスタンスの継続期間を指定できます。
• スポットフリートとは、指定した条件によって起動された一連のスポットインスタンスです。 スポッ
トフリートは必要条件に合ったスポットプールを選択して、フリートのターゲット容量を満たすまで
スポットインスタンスを起動します。 また、スポットフリートは、フリートのスポットインスタン
193
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
スが終了した後に代替インスタンスを作成することによって、経時的にフリートのターゲット容量を
維持していきます。
• スポットインスタンスの中断とは、スポット価格が入札価格を上回った場合や、未使用の EC2 イン
スタンスがなくなった場合に、Amazon EC2 がスポットインスタンスを終了することです。 Amazon
EC2 ではスポットインスタンスが終了対象としてマークされ、スポットインスタンスの終了通知が
表示されます。それにより、インスタンスの終了前に 2 分の警告期間が与えられます。
• 入札ステータスは、スポット入札の現在の状態に関する詳細情報を提供します。
開始方法
最初に必要なことは、Amazon EC2 を使用するようにセットアップすることです。また、スポットイ
ンスタンスを起動する前に、オンデマンドインスタンスを起動した経験があると役立ちます。
起動と実行
• Amazon EC2 でのセットアップ (p. 22)
• Amazon EC2 Linux インスタンスの開始方法 (p. 30)
スポットの基本
• スポットインスタンスのしくみ (p. 195)
• スポットフリートの仕組み (p. 198)
スポットインスタンスの使用
• 中断に対する準備 (p. 233)
• スポットインスタンスリクエストの作成 (p. 206)
• 入札ステータス情報の取得 (p. 231)
スポット群の使用
• スポット群の前提条件 (p. 214)
• スポット群リクエストの作成 (p. 216)
関連サービス
Amazon EC2 を使用してスポットインスタンスを直接プロビジョニングすることができます。また、
AWS の他のサービスを使用してスポットインスタンスをプロビジョニングすることもできます。 詳細
については、次のドキュメントを参照してください。
Auto Scaling とスポットインスタンス
Auto Scaling がスポットインスタンスを起動できるように、入札価格を使用して起動設定を作成で
きます。 詳細については、Auto Scaling 開発者ガイド の「Auto Scaling グループのスポットイン
スタンスの起動」を参照してください。
Amazon EMR とスポットインスタンス
シナリオによっては、Amazon EMR クラスターでスポットインスタンスを実行すると便利な場合
があります。詳細については、『Amazon Elastic MapReduce 開発者ガイド』の「スポットインス
タンスの使用によるコストの削減」を参照してください。
194
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
AWS CloudFormation テンプレート
AWS CloudFormation によって、JSON 形式のテンプレートを利用して、AWS リソースのコレク
ションを作成および管理できます。AWS CloudFormation テンプレートにスポット価格を含めるこ
とができます。 詳細については、「EC2 スポットインスタンスの更新 - Auto Scaling と
CloudFormation の統合」を参照してください。
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. 203)」を参照してください。
請求書を確認するには、AWS アカウントアクティビティページを参照してください。請求書には、料
金の明細が記載された使用状況レポートへのリンクが記載されています。詳細については、「AWS ア
カウント請求」を参照してください。
AWS の請求、アカウント、イベントについてご質問がある場合は、AWS サポートにお問い合わせくだ
さい。
スポットインスタンスのしくみ
Abstract
スポットインスタンスのしくみを説明します。
195
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
スポットインスタンスを使用するには、スポットインスタンスリクエストまたはスポット群リクエスト
を作成します。このリクエストには、1 インスタンスあたり 1 時間あたりの支払い上限価格(入札価
格)とその他の制約(インスタンスタイプやアベイラビリティーゾーンなど)を含めます。指定したイ
ンスタンスの入札価格が現在のスポット価格を上回っており、指定したインスタンスが利用できる場
合、リクエストは直ちに受理されます。 それ以外の場合、スポット価格が入札価格を下回るか、指定
したインスタンスが利用可能になると、リクエストが受理されます。 スポットインスタンスは、お客
様がスポットインスタンスを終了するか、Amazon EC2 によってスポットインスタンスが停止される
(スポットインスタンスの中断とも呼ばれる)まで実行されます。
スポットインスタンスを使用するときは、中断に備える必要があります。Amazon EC2 は、スポット
価格が入札価格を上回ったとき、スポットインスタンスに対する需要が上昇したとき、スポットインス
タンスの供給が低下したときに、スポットインスタンスを中断する可能性があります。 Amazon EC2
ではスポットインスタンスが終了対象としてマークされ、スポットインスタンスの終了通知が表示され
ます。それにより、インスタンスの終了前に 2 分の警告期間が与えられます。スポットインスタンスに
対して終了保護を有効にすることはできません。詳細については、「スポットインスタンスの中
断 (p. 233)」を参照してください。
Amazon EBS-Backed インスタンスがスポットインスタンスである場合、インスタンスを停止および開
始することはできませんが、インスタンスを再起動または終了することはできます。
目次
• スポット市場の供給と需要 (p. 196)
• 起動グループでのスポットインスタンスの起動 (p. 197)
• アベイラビリティーゾーンでのスポットインスタンスの起動 (p. 197)
• VPC でのスポットインスタンスの起動 (p. 198)
スポット市場の供給と需要
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
最後に落札された入札が
スポット価格を設定しま
す。 期間中のスポット
価格は全員同じです。
———
———
6
0.05 USD
スポット容量カットオフ
196
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
ここで、このスポットプールのサイズが 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 は起動グループ内のその他のインスタンス
を終了しません。
このオプションは便利な場合もありますが、この制約を追加することによって、スポットインスタンス
リクエストが受理される可能性が低くなる場合があることに注意してください。また、スポットインス
タンスが終了する可能性が高くなります。
以前に成功したリクエストと同じ(既存の)起動グループを指定する別の正常なスポットインスタンス
リクエストを作成する場合、新しいインスタンスはこの起動グループに追加されます。したがって、こ
の起動グループ内のインスタンスが終了されると、起動グループ内のすべてのインスタンスが終了しま
す。これには、最初のリクエストと 2 番目リクエストによって起動されたすべてのインスタンスが含ま
れます。
アベイラビリティーゾーンでのスポットインスタンスの起動
同じアベイラビリティーゾーン内の一連のスポットインスタンスを起動するようにスポットサービスに
通知するには、スポットインスタンスリクエストでアベイラビリティーゾーングループを指定します。
Amazon EC2 は、アベイラビリティーゾーングループ内のすべてのインスタンスを同時に終了する必
197
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
要がないことに注意してください。 Amazon EC2 がアベイラビリティーゾーングループ内のいずれか
のインスタンスを終了する場合、他のインスタンスはそのまま実行されます。
このオプションは便利な場合もありますが、この制約を追加することによって、スポットインスタンス
リクエストが受理される可能性が低くなる場合があることに注意してください。
アベイラビリティーゾーングループを指定したが、スポットインスタンスリクエストでアベイラビリ
ティーゾーンを指定しない場合、その結果は、EC2-Classic ネットワーク、デフォルトの VPC、デフォ
ルト以外の VPC のいずれを指定するかによって異なります。 EC2-Classic と EC2-VPC に関する詳細
は、「サポートされているプラットフォーム (p. 584)」を参照してください。
EC2-Classic
Amazon EC2 は、リージョン内で最低価格のアベイラビリティーゾーンを検出し、グループの最も低
い入札価格がそのアベイラビリティーゾーンの現在のスポット価格を上回っている場合、そのアベイラ
ビリティーゾーンでスポットインスタンスを起動します。 Amazon EC2 は、スポット価格がグループ
内の最低入札価格を下回っている限り、スポットインスタンスをまとめて起動するために十分な容量に
なるまで待機します。
デフォルト VPC
Amazon EC2 は、指定されたサブネットのアベイラビリティーゾーンを使用します。また、サブネッ
トを指定しなかった場合は、アベイラビリティーゾーンとそのデフォルトのサブネットが選択されます
が、最低価格のアベイラビリティーゾーンではない可能性があります。 アベイラビリティーゾーンの
デフォルトのサブネットを削除した場合は、別のサブネットを指定する必要があります。
デフォルトではない VPC
Amazon EC2 は、指定されたサブネットのアベイラビリティーゾーンを使用します。
VPC でのスポットインスタンスの起動
スポットインスタンスを使用する際に EC2 VPC の機能を活用するには、スポットインスタンスが VPC
で起動されることをスポットリクエストで指定します。オンデマンドインスタンスのサブネットを指定
するのと同じ方法で、スポットインスタンスのサブネットを指定します。
VPC でスポットインスタンスを起動するスポットインスタンスリクエストを実行するプロセスは、
EC2-Classic でスポットインスタンスを起動するスポットインスタンスリクエストを実行するプロセス
と同じですが、次のような違いがあります。
• 入札は VPC のスポットインスタンスのスポット価格履歴に基づいて行います。
• [デフォルトの VPC] 特定の低価格のアベイラビリティーゾーンでスポットインスタンスを起動する
場合、スポットインスタンスリクエストで対応するサブネットを指定する必要があります。サブネッ
トを指定しなかった場合、Amazon EC2 によってサブネットが選択されますが、このサブネットの
アベイラビリティーゾーンのスポット価格は最低ではない可能性があります。
• [デフォルト以外の VPC] スポットインスタンスのサブネットを指定する必要があります。
スポットフリートの仕組み
Abstract
1 つのスポット群リクエストを使用して、数十、数百、または数千のスポットインスタンスを起動します。
スポット群は、スポットインスタンスの集合です。スポットフリートは、スポットフリートのリクエス
トで指定したターゲット容量を満たすために必要なスポットインスタンス数の起動を試みます。 また、
スポットフリートは、スポット価格や可能な容量に変化が生じたことによってスポットインスタンスが
中断した場合にフリートのターゲット容量を維持するよう試みます。
198
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
スポットプールとは、同様のインスタンスタイプ、オペレーティングシステム、アベイラビリティー
ゾーン、ネットワークプラットフォーム(EC2-Classic あるいは EC2-VPC)の一連の使われていない
EC2 インスタンスです。 スポットフリートのリクエストを行う場合に複数の起動条件を含めることが
でき、これにはインスタンスタイプ、AMI、アベイラビリティーゾーン、またはサブネットがありま
す。 スポットフリートは、スポットフリートのリクエストとそのスポットフリートリクエストの設定
を含む起動条件に基づいてリクエストを満たすために使用されるスポットプールを選択します。 スポッ
トインスタンスは選択されたスポットプールから取得されます。
目次
• スポットのフリートの配分戦略 (p. 199)
• スポット価格の優先 (p. 199)
• スポット群インスタンスの重み付け (p. 200)
• チュートリアル:スポットフリートを使ってインスタンスの分量を指定する (p. 201)
スポットのフリートの配分戦略
スポットフリートの配分戦略は、起動条件によるスポットプールからどのようにスポットフリートリク
エストを満たすかについて決定します。 以下に、スポットフリートリクエストで指定できる配分戦略
を示します。
lowestPrice
スポットインスタンスは、最低価格のスポットプールから取得されます。 これはデフォルトの戦
略です。
diversified
スポットインスタンスはすべてのスポットプールに分散されます。
配分戦略を選択する
ユースケースに基づいてスポットフリートを最適化できます。
フリートが小サイズであったりまたは短時間の実行である場合、すべてのインスタンスが単一のスポッ
トプールにあるとしても、スポットインスタンスが中断される可能性は低くなります。 これより、
lowestPrice 戦略は、低コストを提供している期間に条件に合いやすくなります。
フリートが大サイズ、または長期間実行される場合には、複数のスポットプールにスポットインスタン
スを分散することでフリートの可用性を改善できます。 たとえば、スポットフリートのリクエストの
条件が 10 プールとして、ターゲット容量が 100 インスタンスとすると、スポットフリートは各プール
ごとに 10 個のスポットインスタンスを起動します。 1 つのプールのスポット価格がこのプールの入札
価格を超える場合、フリートの 10% のみに影響がおよびます。 この戦略を使用すると、いずれのプー
ルにおいても経時的にフリートが受けるスポット価格の上昇の影響を減少させます。
diversified 戦略では、スポットフリートは、On-Demand price を上回るスポット価格のいずれのス
ポットプールにもスポットインスタンスを起動しないことにご注意ください。
ターゲット容量を維持する
スポット価格またはスポットプール容量の変動によりスポットインスタンスが終了された後、スポット
群の代替スポットインスタンスが起動されます。配分戦略が lowestPrice である場合、スポットフ
リートは、スポット価格が現在最低値のプールに代替インスタンスを起動します。 配分戦略が
diversified である場合には、スポットフリートは残りのプールに代替スポットインスタンスを分散
します。
スポット価格の優先
各スポットフリートのリクエストには全体のスポット価格を含める必要があります。 デフォルトでは、
スポットフリートは起動条件のそれぞれの入札価格としてこの価格を使用します。
199
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
任意で 1 つまたは複数の起動条件にスポット価格を指定することができます。 これは、起動条件に指
定された入札価格です。 起動条件に指定スポット価格が含まれる場合、スポットフリートは起動条件
の入札価格としてこの価格を使用し、全体のスポット価格に優先することになります。 スポット価格
を含まないそのほかの起動条件は、全体スポット価格を引き続き当てられていることにご注意くださ
い。
スポット群インスタンスの重み付け
スポットインスタンスのフリートをリクエストするとき、それぞれのインスタンスタイプがアプリケー
ションのパフォーマンスに応じるように容量ユニットを定義し、また、instance weighting を利用して
各スポットプールごとに入札価格を調整できます。
デフォルトでは、指定したスポット価格は 1 インスタンス時間当たりの入札価格を表します。 インス
タンス分量機能を使用すると、指定したスポット価格は ユニット時間ごとの入札価格を表します。 ユ
ニット時間あたりの入札価格は、インスタンスタイプの入札価格をそのユニットの数で割って計算でき
ます。 スポットフリートでは、ターゲット容量をインスタンス分量で割ることで起動するスポットイ
ンスタンスの数を計算します。 その結果が整数でなければ、スポットフリートはその数を次の整数に
切り上げ、これによりフリートのサイズがターゲット容量以上になります。
次の表には、10 のターゲット容量のスポットフリートリクエストのユニット当たり入札価格を特定す
るために計算の例が含まれています。
インスタンス
タイプ
インスタンスの インスタンス
分量
時間あたりの
スポット価格
ユニット時間あ 起動されたインスタンスの数
たりのスポット
価格
r3.xlarge
2
.025
5
(.05 ÷ 2)
(10 ÷ 2)
.0125
2
(.10 ÷ 8)
(10 ÷ 8、結果切り上げ)
r3.8xlarge
8
0.05 USD
0.10 USD
次に示すように、スポットフリートインスタンスを使用して、受理時のユニットごとの最低価格のス
ポットプールに指定するターゲット容量をプロビジョニングします。
1.
スポットフリートのターゲット容量を、インスタンス(デフォルト)あるいは仮想 CPU、メモリ、
ストレージまたはスループットからご希望のユニットで設定します。
2.
3.
ユニットあたりの入札価格を設定する。
各起動設定で、インスタンスタイプがターゲット容量に対して必要なユニット数である分量を指定
します。
インスタンスの分量指定例
次の設定のスポットフリートを検討します。
• ターゲット容量 24
• r3.2xlarge のインスタンスタイプの起動条件と分量 6
• c3.xlarge のインスタンスタイプの起動条件と分量 5
分量とは、インスタンスタイプがターゲット容量に対して必要なユニット数を表します。 最初の起動
条件がユニットあたりのスポット価格を最低値で提供する場合(インスタンス時間あたりの r3.2xlarge
のスポット価格を 6 で割ったもの)、スポットフリートはこれらのインスタンスから 4 つを起動しま
す(24 を 6 で割ったもの)。
200
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
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 に設定します。
201
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. 214)」を参照してください。
リクエストを作成する
サンプル株式会社は、スポットフリートリクエストのために次の設定の 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
202
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. 213)」を参照してください。
受理
配分戦略は、スポットインスタンスが取得されるスポットプールを決定します。
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 ユニットを起動します。
スポットインスタンスの価格設定履歴
Abstract
スポットインスタンスの価格履歴の表示
単発のスポットリクエストが確実に受理されるようにするには、特定の価格を上回る価格で入札する必
要があり、その特定の価格をスポット価格と言います。入札価格がスポット価格を上回っている場合、
Amazon EC2 はスポットインスタンスを起動します。また、スポット価格が入札価格を上回ると、
Amazon EC2 はスポットインスタンスを終了します。 スポットリクエストが迅速に受理されるように、
現在のスポット価格を上回る価格で入札できます。 ただし、スポットインスタンスの入札価格を指定
する前に、スポット価格履歴を確認することをお勧めします。 インスタンスタイプ、オペレーティン
グシステム、アベイラビリティーゾーンでフィルタリングして、過去 90 日間のスポット価格履歴を表
示できます。
スポット価格履歴をガイドとして使用して、以前にニーズを満たした入札価格を選択できます。 たと
えば、表示している時間範囲で、75 パーセントのアップタイムを提供していた入札価格を判断できま
す。ただし、過去のトレンドが今後の結果を保証するものではないことに注意してください。スポット
203
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
価格はリアルタイムの需要と供給の関係に基づいて変化するため、スポット価格の特定のパターンを生
成した状況が将来も繰り返されるとは限りません。
コンソールを使用してスポット価格履歴を表示するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[Spot Requests] クリックします。
[Pricing History] をクリックします。デフォルトでは、すべてのアベイラビリティーゾーンの Linux
t1.micro インスタンスについて、過去 1 日のデータのグラフが表示されます。グラフ上でマウス
を移動すると、グラフの下の表に特定の時刻の価格が表示されます。
4.
(オプション)特定のアベイラビリティーゾーンのスポット価格履歴を確認するには、リストから
アベイラビリティーゾーンを選択します。 別の製品、インスタンスタイプまたは日付範囲を選択
することもできます。
コマンドラインを使用してスポット価格履歴を表示するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-spot-price-history(AWS CLI)
• ec2-describe-spot-price-history(Amazon EC2 CLI)
• Get-EC2SpotPriceHistory(AWS Tools for Windows PowerShell)
スポットインスタンスリクエスト
Abstract
インスタンス時間当たりの支払える価格を含め、スポットインスタンスを指定するスポットインスタンスリクエス
トを作成します。
スポットインスタンスを使用するには、インスタンスの数、インスタンスタイプ、アベイラビリティー
ゾーン、インスタンス時間当たりに支払える上限価格(入札価格)を含むスポットインスタンスリクエ
ストを作成します。入札価格が現在のスポット価格を超えている場合、Amazon EC2 はリクエストを
すぐに受理します。 それ以外の場合、Amazon EC2 は、リクエストが受理できるようになるか、お客
様がリクエストをキャンセルするまで待機します。
204
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
次の図に、スポットリクエストのしくみを示します。 スポットインスタンスの中断に対する操作はリ
クエストのタイプ(ワンタイムまたは永続)によって決まります。リクエストが永続リクエストの場
合、スポットインスタンスの終了後、リクエストが再度実行されます。
目次
• スポットインスタンスのリクエストの状態 (p. 205)
• スポットインスタンスリクエストの作成 (p. 206)
•
•
•
•
•
スポットインスタンスの継続期間の指定 (p. 208)
実行中のスポットインスタンスの検索 (p. 208)
スポットインスタンスリクエストのタグ付け (p. 209)
スポットインスタンスリクエストのキャンセル (p. 210)
スポットリクエストの起動仕様の例 (p. 211)
スポットインスタンスのリクエストの状態
スポットインスタンスリクエストは、次に示す状態のいずれかになります。
• open – リクエストは受理されるまで待機状態です。
• active – リクエストは受理された状態であり、関連付けられたスポットインスタンスが存在します。
• failed – リクエストの 1 つ以上のパラメータが正しくありません。
• closed – スポットインスタンスは中断または終了されました。
• cancelled – お客様がリクエストをキャンセルしたか、リクエストの有効期限が切れました。
次の図は、リクエストの状態の遷移を示しています。遷移はリクエストのタイプ(ワンタイムまたは永
続)によって異なります。
ワンタイムスポットインスタンスリクエストは、Amazon EC2 がスポットインスタンスを起動するか、
リクエストの有効期限が切れるか、またはお客様がリクエストをキャンセルするまでアクティブ状態で
す。 スポット価格が入札価格を上回ると、スポットインスタンスは終了し、スポットインスタンスリ
クエストはクローズされます。
205
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
永続スポットインスタンスリクエストは、リクエストが受理されても、リクエストの有効期限が切れる
か、お客様がリクエストをキャンセルするまでアクティブ状態です。たとえば、スポット価格が 0.25
USD のときに 1 つのインスタンスに対して永続スポットインスタンスリクエストを作成したとします。
お客様の入札価格が 0.25 USD を上回る場合は、Amazon EC2 によりスポットインスタンスが起動され
ます。スポット価格が入札価格を上回ると、スポットインスタンスは終了します。ただし、スポットイ
ンスタンスリクエストは再びオープン状態になり、スポット価格が入札価格を下回ると、Amazon EC2
は新しいスポットインスタンスを起動します。
スポットインスタンスリクエストのステータスと、入札ステータスによって起動されたスポットインス
タンスのステータスを追跡できます。詳細については、「スポット入札ステータス (p. 228)」を参照し
てください。
スポットインスタンスリクエストの作成
スポットインスタンスをリクエストするプロセスは、オンデマンドインスタンスを起動するプロセスに
似ています。リクエストを送信した後で、入札価格などのスポットリクエストのパラメータを変更する
ことはできません。
一度に複数のスポットインスタンスをリクエストした場合、Amazon EC2 では個々のスポットインス
タンスリクエストが作成され、各リクエストのステータスを個別に追跡できます。スポットリクエスト
の追跡については、「スポット入札ステータス (p. 228)」を参照してください。
前提条件
開始する前に、入札価格、必要なスポットインスタンスの数、使用するインスタンスタイプを決定しま
す。
コンソールを使用してスポットインスタンスリクエストを作成するには
1.
2.
3.
4.
5.
6.
7.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Spot Requests] クリックします。
(オプショナル)スポット価格の傾向を確認するには、[Pricing History] をクリックします。 詳細
については、「スポットインスタンスの価格設定履歴 (p. 203)」を参照してください。
[Request Spot Instances] をクリックします。
[Choose an Amazon Machine Image] ページで、AMI を選択します。
[Choose an Instance Type] ページで、インスタンスタイプを選択し、[Next: Configure Instance
Details] をクリックします。
[Configure Instance Details] ページで以下の操作を実行します。
a.
b.
c.
d.
e.
(オプション)デフォルトでは、リクエストによって 1 つのスポットインスタンスが起動され
ます。複数のスポットインスタンスを起動するには、起動するスポットインスタンスの数で
[Number of instances] を更新します。
購入オプションの [Request Spot Instances] はデフォルトで選択されています。スポットリク
エストを作成するには、このオプションを選択したままにします。
[Maximum price] で、これらのスポットインスタンスに対して支払える価格を指定します。入
札価格がスポット価格を上回ると、スポットリクエストは直ちにスポットインスタンスを起動
します。
参考のために、リージョン内の各アベイラビリティーゾーンの現在のスポット価格が一覧表示
されます。
(オプション)デフォルトでは、リクエストは、受理されるか、お客様がキャンセルするま
で、有効な状態です。特定の期間中のみ有効なリクエストを作成するには、[Request valid
from] および [Request valid from] を指定します。
(オプション)デフォルトでは、リクエストはワンタイムリクエストです。永続スポットリク
エストを作成するには、[Persistent request] を選択します。
206
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
f.
アカウントは、EC2-Classic プラットフォームと EC2-VPC プラットフォームをサポートする
ことも、EC2-VPC のみをサポートすることもあります。アカウントでサポートされるプラッ
トフォームを調べるには、「サポートされているプラットフォーム (p. 584)」を参照してくだ
さい。アカウントで EC2-VPC のみをサポートする場合は、デフォルトの VPC またはデフォ
ルト以外の VPC でインスタンスを起動できます。それ以外の場合は、EC2-Classic またはデ
フォルト以外の VPC でインスタンスを起動できます。
EC2-Classic で起動するには
• [Network]: [Launch into EC2-Classic] を選択します。
• [アベイラビリティーゾーン]: 使用するアベイラビリティーゾーンを選択します。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]: インスタンスがパブリック IP アドレスを受け付けるかどうかを指定
します。デフォルトで、デフォルトのサブネットにあるインスタンスはパブリック IP アド
レスを受け付け、デフォルト以外のサブネットにあるインスタンスは受け付けません。
[Enable] または [Disable] を選択すると、これがサブネットのデフォルト設定より優先され
ます。
g.
残りのオプションをオンデマンドインスタンスの場合と同様に指定し、[Review and Launch]
をクリックします。ルートボリュームのタイプを指定するよう求められたら、タイプを選択
し、[Next] をクリックします。
8.
[Review Instance Launch] ページで、[Edit security groups] をクリックします。[Configure Security
Group] ページで、[Select an existing security group] をクリックし、セキュリティグループを選択
または作成して、[Review and Launch] をクリックします。
9. [Review Instance Launch] ページで、[Launch] をクリックします。
10. [Select an existing key pair or create a new key pair] ダイアログボックスで、[Choose an existing
key pair] を選択し、キーペアを選択または作成します。確認のチェックボックスをクリックし、
[Request Spot Instances] をクリックします。
11. 確認ページで、[View Spot Requests] をクリックします。[Description] タブで、リクエストの状態
が open であり、開始するリクエストのステータスが pending-evaluation であることを確認し
ます。リクエストが受理されると、リクエストの状態は 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 を使用します。
207
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
aws ec2 request-spot-instances --spot-price "0.05" --instance-count 5 --type
"persistent" --launch-specification file://specification.json
起動仕様ファイルの例については、「スポットリクエストの起動仕様の例 (p. 211)」を参照してくださ
い。
Amazon EC2 では、スポット価格が入札価格を下回っていると、スポットインスタンスが起動されま
す。スポットインスタンスは中断されるか手動終了されるまで実行されます。スポットインスタンスの
リクエストを監視するには、以下の describe-spot-instance-requests コマンドを使用します。
aws ec2 describe-spot-instance-requests --spot-instance-request-ids sir-08b93456
スポットインスタンスの継続期間の指定
Amazon EC2 では、継続期間 (スポットブロックとも呼ばれます) を指定したスポットインスタンスは、
スポット料金が変動しても終了されません。このようなインスタンスは、バッチ処理、エンコードとレ
ンダリング、モデリングと解析、継続的な統合など、完了までに一定の時間のかかるジョブに最適で
す。
1、2、3、4、5、または 6 時間の継続期間を指定できます。支払い額はこの指定した継続期間によって
決まります。1 時間または 6 時間の継続期間の現在の価格を確認するには、スポットインスタンスの料
金表ページを参照してください。これらの価格を使用して 2、3、4、5 時間の継続期間のコストを見積
もることができます。継続期間を指定したリクエストが履行されると、スポットインスタンスの価格は
固定され、インスタンスの終了時まで有効なままになります。
スポットリクエストで継続期間を指定すると、各スポットインスタンスではインスタンス ID が割り当
てられるとすぐに継続期間が開始されます。スポットインスタンスは手動終了されるか継続期間が終了
するまで実行されます。継続期間の終了時、Amazon EC2 ではスポットインスタンスが終了対象とし
てマークされ、スポットインスタンスの終了通知が表示されます。それにより、インスタンスの終了前
に 2 分の警告期間が与えられます。
継続期間を指定したスポットインスタンスを AWS CLI で起動するには
スポットインスタンスの継続期間を指定するには、--block-duration-minutes を付けて
request-spot-instances コマンドを実行します。たとえば、以下のコマンドでは、継続期間が 2 時間の
スポットインスタンスを起動するスポットリクエストが作成されます。
aws ec2 request-spot-instances --spot-price "0.050" --instance-count 5 --blockduration-minutes 120 --type "one-time" --launch-specification file://specifica
tion.json
継続期間を指定したスポットインスタンスのコストを AWS CLI で取得するには
継続期間を指定したスポットインスタンスの固定費を取得するには、describe-spot-instance-requests
コマンドを使用します。この情報は actualBlockHourlyPrice フィールドにあります。
実行中のスポットインスタンスの検索
Amazon EC2 は、スポット価格が入札価格を下回る場合、スポットインスタンスを起動します。 スポッ
トインスタンスは、その入札価格がスポット価格を上回ることができなくなるまで、またはお客様がご
自分でスポットインスタンスを終了するまで実行されます (入札価格がスポット価格と厳密に等しい
場合、需要に応じて、スポットインスタンスは実行されたままとなる可能性があります)。
コンソールを使用して実行中のスポットインスタンスを検索するには
1.
Amazon EC2 コンソールを開きます。
208
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
2.
3.
ナビゲーションペインで、[Spot Requests] をクリックし、リクエストを選択します。リクエスト
が受理された場合、[Instance] 列の値はスポットインスタンスの ID になります。
または、ナビゲーションペインで、[Instances] をクリックします。右上隅にある [Show/Hide] アイ
コンをクリックし、[Lifecycle] を選択します。各インスタンスの [Lifecycle] 列の値は、spot また
は normal です。
AWS CLI を使用して実行中のスポットインスタンスを検索するには
スポットインスタンスを一覧表示するには、以下のように --query オプションを付けて
describe-spot-instance-requests コマンドを実行します。
aws ec2 describe-spot-instance-requests --query SpotInstanceRequests[*].{ID:In
stanceId}
出力例を次に示します。
[
{
"ID": "i-5203422c"
},
{
"ID": "i-43a4412a"
}
]
あるいは、以下のように --filters オプションを付けて describe-instances コマンドを実行しても、
スポットインスタンスを一覧表示できます。
aws ec2 describe-instances --filters "Name=instance-lifecycle,Values=spot"
スポットインスタンスリクエストのタグ付け
スポットインスタンスリクエストを分類および管理しやすくするため、任意のメタデータでタグ付けす
ることができます。スポットインスタンスリクエストのタグ付けは、他の Amazon EC2 リソースにタ
グ付けするのと同じ方法で行います。詳細については、「Amazon EC2 リソースにタグを付ける (p. 774)」
を参照してください。
スポットインスタンスリクエストを初めて作成したときにタグ付けすることも、作成した後にタグを割
り当てることもできます。
スポットインスタンスリクエストに作成するタグは、そのリクエストにのみ適用されます。これらのタ
グは、リクエストを受理するためにスポットサービスが起動するスポットインスタンスには自動的に追
加されません。スポットインスタンスリクエストを作成するとき、またはスポットインスタンスが起動
された後に、自分でスポットインスタンスにタグを追加する必要があります。
スポットインスタンスリクエストを作成するときにタグを追加するには コンソールを使用する
1.
スポットインスタンスリクエストの作成時、[Review] ページで [Edit tags] をクリックします。Name
キーを使用して、スポットインスタンスリクエストの名前を値として追加することによって、タグ
を作成することもできます。
2.
[Tag Spot Request] ページで、[Create Tag] をクリックし、タグキーとタグ値を入力します。
209
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
3.
[Review and Launch] をクリックします。
コンソールを使用して既存のスポットインスタンスリクエストにタグを追加するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
ナビゲーションペインで、[Spot Requests] をクリックし、スポットリクエストを選択します。
[Tags] タブから、[Add/Edit Tags] をクリックします。
[Add/Edit Tags] ダイアログボックスで、[Create Tag] をクリックし、各タグのキーと値を指定して
から [Save] をクリックします。
5.
(オプション)スポットリクエストから起動されたスポットインスタンスにタグを追加できます。
[Spot Requests] ページで、スポットリクエストの [Instance] 列に表示されているスポットインス
タンスの ID をクリックします。下部のペインで、[Tags] タブを選択し、スポットリクエストにタ
グを追加するために使用したプロセスを繰り返します。
AWS CLI を使用してスポットインスタンスリクエストやスポットインスタンスにタグを追加するには
リソースにタグを追加するには、以下の create-tags コマンドを使用します。
aws ec2 create-tags --resources sir-08b93456 i-5203422c --tags Key=pur
pose,Value=test
スポットインスタンスリクエストのキャンセル
スポットリクエストが不要になった場合には、それをキャンセルすることができます。お客様は open
または active 状態のスポットインスタンスリクエストのみキャンセルできます。 リクエストがまだ
受理されておらず、インスタンスが起動されていない場合、スポットリクエストは open 状態にありま
す。リクエストが受理され、結果としてスポットインスタンスが起動された場合、スポットリクエスト
は active 状態にあります。スポットリクエストが active 状態にあり、そのスポットリクエストに関
連付けられた実行中のスポットインスタンスがある場合、リクエストをキャンセルしてもインスタンス
は終了しません。実行中のスポットインスタンスは手動で終了する必要があります。
210
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
スポットリクエストが永続スポットリクエストの場合、新しいスポットインスタンスが起動できるよう
に、リクエストは open 状態に戻ります。永続スポットリクエストをキャンセルして、スポットインス
タンスを終了するには、最初にスポットリクエストをキャンセルし、次にスポットインスタンスを終了
する必要があります。そうしないと、スポットリクエストによって新しいインスタンスが起動される場
合があります。
コンソールを使用してスポットインスタンスリクエストをキャンセルするには
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Spot Requests] をクリックし、スポットリクエストを選択します。
[Cancel] をクリックします。
4.
(オプション)関連付けられたスポットインスタンスを使い終わったら、スポットインスタンスを
終了できます。ナビゲーションペインで、[Instances] をクリックしてインスタンスを選択し、
[Actions] をクリックして [Instance State] を選択した後、[Terminate] をクリックします。
AWS CLI を使用してスポットインスタンスリクエストをキャンセルするには
指定したスポットリクエストをキャンセルするには、以下の cancel-spot-instance-requests コマンドを
使用します。
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-08b93456
関連付けられているスポットインスタンスを終了する場合は、以下の terminate-instances コマンドを
使用して、それらのインスタンスを手動で終了できます。
aws ec2 terminate-instances --instance-ids i-5203422c i-43a4412a
スポットリクエストの起動仕様の例
Abstract
AWS CLI を使用して起動仕様を作成する方法について説明します。
以下の例で示しているのは、スポットインスタンスリクエストを作成するための request-spot-instances
コマンドで使用できる起動設定です。詳細については、「スポットインスタンスリクエストの作
成 (p. 206)」を参照してください。
1. スポットインスタンスを起動する (p. 211)
2. 指定したアベイラビリティーゾーンでスポットインスタンスを起動する (p. 212)
3. 指定したサブネットでスポットインスタンスを起動する (p. 212)
例 1: スポットインスタンスを起動する
以下の例には、アベイラビリティーゾーンまたはサブネットは含まれていません。Amazon EC2 によっ
てアベイラビリティーゾーンが選択されます。お客様のアカウントで EC2-VPC のみがサポートされて
いる場合は、Amazon EC2 によって選択されたアベイラビリティーゾーンのデフォルトのサブネット
でインスタンスが起動されます。お客様のアカウントで EC2-Classic がサポートされている場合は、
Amazon EC2 によって選択されたアベイラビリティーゾーンの EC2-Classic でインスタンスが起動さ
れます。
{
"ImageId": "ami-1a2b3c4d",
"KeyName": "my-key-pair",
211
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
"SecurityGroupIds": [ "sg-1a2b3c4d" ],
"InstanceType": "m3.medium",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
}
}
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 である場合、インスタンスにはデフォルトでパブリック
IP アドレスは割り当てられません。
{
"ImageId": "ami-1a2b3c4d",
"SecurityGroupIds": [ "sg-1a2b3c4d" ],
"InstanceType": "m3.medium",
"SubnetId": "subnet-1a2b3c4d",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
}
}
デフォルト以外の VPC である場合、インスタンスにパブリック IP アドレスを割り当てるには、以下の
例に示しているように AssociatePublicIpAddress フィールドを指定します。ネットワークインター
フェイスの指定時には、例 3 に示している SubnetId および SecurityGroupIds フィールドではな
く、ネットワークインターフェイスを使用して、サブネット ID およびセキュリティグループ ID を含め
る必要があります。
{
"ImageId": "ami-1a2b3c4d",
212
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
"KeyName": "my-key-pair",
"InstanceType": "m3.medium",
"NetworkInterfaces": [
{
"DeviceIndex": 0,
"SubnetId": "subnet-1a2b3c4d",
"Groups": [ "sg-1a2b3c4d" ],
"AssociatePublicIpAddress": true
}
],
"IamInstanceProfile": {
"Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
}
}
スポット群リクエスト
Abstract
ユニット時間当りの支払い希望価格を含めた、スポットインスタンスの起動条件を指定するスポットフリートリク
エストを作成します。
スポット群を使用するには、目標容量、インスタンスの 1 つ以上の起動仕様、希望入札価格などを指定
したスポット群リクエストを作成します。Amazon EC2 は、スポット価格の変更に応じてスポット群
の目標容量を維持しようとします。詳細については、「スポットフリートの仕組み (p. 198)」を参照し
てください。
各起動仕様には、Amazon EC2 によるインスタンスの起動に必要な情報(AMI、インスタンスタイプ、
サブネットまたはアベイラビリティーゾーン、そして 1 つ以上のセキュリティグループ)を指定しま
す。
スポット群リクエストは、期限切れになるかお客様によってキャンセルされるまで、アクティブのまま
になります。スポット群リクエストのキャンセル時には、同時にスポット群のスポットインスタンスが
終了されるように指定する必要があります。
目次
• スポット群リクエストの状態 (p. 213)
• スポット群の前提条件 (p. 214)
• スポットフリートリクエストの準備 (p. 215)
• スポット群リクエストの作成 (p. 216)
• スポット群の監視 (p. 217)
• スポットフリートリクエストを変更する (p. 218)
• スポット群リクエストのキャンセル (p. 219)
• スポットフリート設定の例 (p. 220)
スポット群リクエストの状態
スポット群リクエストは、次に示す状態のいずれかになります。
• submitted - スポット群リクエストは評価中です。Amazon EC2 は目標数のスポットインスタンス
を起動する準備をしています。
• active - スポット群リクエストは検証済みです。Amazon EC2 は実行中のスポットインスタンスを
目標数分、確保しようとしています。リクエストは、変更またはキャンセルされるまで、この状態の
ままになります。
213
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
• modifying - スポット群リクエストは変更中です。リクエストは、変更が完全に処理されるか、ス
ポット群がキャンセルされるまで、この状態のままになります。
• cancelled_running - スポット群リクエストはキャンセルされました。追加のスポットインスタン
スは起動されませんが、既存のスポットインスタンスは中断または手動終了されるまで、引き続き実
行されます。リクエストは、すべてのインスタンスが中断されるか終了されるまで、この状態のまま
になります。
• cancelled_terminating - スポット群リクエストはキャンセルされました。スポットインスタン
スは終了中です。リクエストは、すべてのインスタンスが終了されるまで、この状態のままになりま
す。
• cancelled - スポット群リクエストはキャンセルされました。実行中のスポットインスタンスがあ
りません。スポット群リクエストは、そのインスタンスが終了されてから 2 日後に削除されます。
次の図は、リクエストの状態の遷移を示しています。スポット群の制限を超えた場合、リクエストはす
ぐにキャンセルされます。
スポット群の前提条件
開始する前に、以下を実行します。
1.
ユーザーの代わりにインスタンスに入札を行い、インスタンスを起動および終了するアクセス許可
をスポットフリートに付与する IAM ロールを作成します。 スポットフリートのリクエストを作成
する場合、Amazon Resource Name(ARN)をこのロールに指定します。
a.
b.
https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。
ナビゲーションペインで [Roles] を選択し、続いて [Create New Role] を選択します。
c.
d.
[Set Role Name] ページで、ロールの名前を入力し、[Next Step] を選択します。
[Select Role Type] ページで、[Amazon EC2 Spot Fleet Role] の隣にある [Select] を選択しま
す。
[Attach Policy] ページで、[AmazonEC2SpotFleetRole] ポリシーを選択し、[Next Step] を選
択します。
[Review] ページで、[Create Role] を選択します。
e.
f.
2.
スポットフリートリクエストの作成に使用するユーザーアカウントに、必要な Amazon EC2 のア
クセス許可があることを確認します。
a.
b.
https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。
ナビゲーションペインで、[Policies] を選択し、[Create Policy] を選択します。
214
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
c.
d.
[Create Policy] ページで、[Create Your Own Policy] の横の [Select] を選択します。
[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 アクションにより、ユー
ザーは既存のインスタンスプロファイルを列挙することができます。Amazon EC2 コンソー
ルは iam:ListRoles を使用して IAM ロールリストに入力し、iam:ListInstanceProfiles
を使用して IAM インスタンスプロファイルリストに入力します。ユーザーがコンソールを使
用してロールまたはインスタンスプロファイルを作成できるようにするには、
iam:CreateRole、iam:CreateInstanceProfile、および
iam:AddRoleToInstanceProfile の各アクションを追加する必要があります。
e.
[Create Policy] を選択します。
f.
ナビゲーションペインで、[Users] を選択し、スポット群リクエストを送信するユーザーを選
択します。
g.
h.
[Permissions] タブで [Attach Policy] を選択します。
[Attach Policy] ページで、上で作成したポリシーを選択し、[Attach Policy] を選択します。
スポットフリートリクエストの準備
スポット群リクエストを作成する前に、「ベストプラクティス」を確認してください。スポット群リク
エストを計画するときにこれらのベストプラクティスを使用して、できるだけ低価格でインスタンスの
タイプをプロビジョニングできるようにします。また、次のことをお勧めします。
• アプリケーションの要件を満たすインスタンスタイプを決定します。
215
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
• スポット群リクエストの目標容量を決定します。インスタンスまたはカスタムユニットでターゲット
容量を設定できます。 詳細については、「スポット群インスタンスの重み付け (p. 200)」を参照して
ください。
• 1 インスタンス時間当りの入札価格を決定します。 低い価格で入札すると、コストをさらに低く抑え
ることができ、高い価格で入札すると、中断の可能性を下げることができます。
• インスタンス分量指定を使用している場合は、ユニット当りの入札価格を決定します。 インスタン
ス時間当りの入札価格の計算は、インスタンス時間当たりの入札価格をそのインスタンスが表すユ
ニット数(または分量)で割って算出します (インスタンス分量指定を使用する場合、ユニット当
りのデフォルトの入札価格は 1 インスタンス時間当りの入札価格となります)。
• スポットフリートのリクエストに対して可能なオプションを確認します。 詳細については、「AWS
Command Line Interface Reference」の http://docs.aws.amazon.com/cli/latest/reference/ec2/
request-spot-fleet.html コマンドを参照してください。 その他の例については、「スポットフリート
設定の例 (p. 220)」を参照してください。
スポット群リクエストの作成
スポット群リクエストの作成時、起動するスポットインスタンスに関する情報 (インスタンスタイプや
スポット価格など) を指定する必要があります。
コンソールを使用してスポット群リクエストを作成するには
1.
2.
3.
スポットコンソール (https://console.aws.amazon.com/ec2spot) を開きます。
スポットを初めて使用する場合は、ウェルカムページが表示されるので、そこで [Get started] をク
リックします。それ以外の場合は、[Request Spot Instances] をクリックします。
[Find instance types] ページで、以下の操作を実行します。
a.
b.
c.
d.
e.
[AMI] で、AWS によって提供される基本的な Amazon マシンイメージ(AMI)のいずれかを
選択するか、[Use custom AMI] を選択して独自の AMI を指定します。
[Capacity unit] で、スポット群の単位を選択します。アプリケーションのワークロードに重要
なインスタンスまたはパフォーマンスのプロパティ(vCPU、メモリ、ストレージなど)を選
択できます。
[Target capacity] に、リクエストの単位数を入力します。
[Bid price] に、入札価格を入力します。入札価格は、時間単価で指定するか、オンデマンドイ
ンスタンスの価格の割合として指定できます。入札価格がインスタンスのスポット価格を超え
た場合に、リクエストしたインスタンスがスポット群によって起動されます。
[Select instance types] で、1 つ以上のインスタンスタイプを選択します。必要なインスタンス
タイプが表示されていない場合は、[view more] をクリックします。その後、必要最小限のハー
ドウェア仕様(vCPU、メモリ、ストレージ)でインスタンスタイプのリストをフィルタリン
グできます。
デフォルトでは、各インスタンスタイプの入札価格はスポット群リクエストの入札価格によっ
て決まります。特定のインスタンスタイプの入札価格が低すぎる場合は、警告が表示されま
す。必要に応じて、選択した各インスタンスタイプの入札価格を変更できます。
[Weighted capacity] 列は、各インスタンスタイプに応じてスポット群に割り当てられる容量単
位を表します。この一覧のデフォルト値は、選択した容量単位に基づきます。たとえば、容量
単位がインスタンス数である場合、各インスタンスタイプのデフォルトの重みは 1 です。容量
単位が vCPU 数である場合、各インスタンスタイプのデフォルトの重みはその vCPU 数です。
特定のインスタンスタイプを選択する場合は、その重みを変更できます。詳細については、
「スポット群インスタンスの重み付け (p. 200)」を参照してください。
f.
4.
[Next] をクリックします。
[Configure] ページで以下の操作を実行します。
216
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
a.
b.
c.
d.
e.
(オプション)特定のアベイラビリティーゾーンをインスタンスに指定する場合は、[Availability
Zones] で [Select] を選択してから、アベイラビリティーゾーンを選択します。VPC がデフォ
ルト以外の VPC である場合は、各アベイラビリティーゾーンに 1 つのサブネットを選択する
必要があります。VPC がデフォルトの VPC である場合は、アベイラビリティーゾーンにはデ
フォルトのサブネットを選択します。
f.
(オプション)インスタンスに接続する必要がある場合は、[Key pair] でキー ペアを指定しま
す。
(オプション)デフォルトでは、スポット群リクエストは、履行されるかお客様によってキャ
ンセルされるまで、有効なままになります。特定の期間にのみ有効なリクエストを作成するに
は、[Advanced] の [Request timeframe] で [Valid from] と [Valid to] を指定します。
残りの必要なオプションを指定し、[Review] を選択します。
g.
h.
5.
[IAM role] で、お客様に代わって入札、起動、終了するアクセス権限をスポット群に付与する
ために作成した IAM ロールを指定します。
[Allocation strategy] で、お客様のニーズに合った戦略を選択します。詳細については、「ス
ポットのフリートの配分戦略 (p. 199)」を参照してください。
[Network] で、リストから VPC を選択するか、[Create new VPC] を選択して Amazon VPC コ
ンソールに移動してから VPC を作成します。終了したらウィザードに戻り、[Refresh] をク
リックして一覧に VPC を読み込みます。デフォルト以外の VPC を選択した場合は、[Public
IP] から [auto-assign at launch] を選択して、インスタンスにパブリック IP アドレスを割り当
てます。
[Security groups] で、1 つ以上のセキュリティグループを選択します。
[Review] ページで、スポット群リクエストの設定を確認します。設定を変更するには、[Previous]
をクリックします。AWS CLI で使用される起動設定のコピーをダウンロードするには、[JSON
config] をクリックします。スポット群リクエストを作成するには、[Launch] をクリックします。
AWS CLI を使用してスポット群リクエストを作成するには
スポット群リクエストを作成するには、以下の request-spot-fleet コマンドを使用します。
aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json
設定ファイルの例については、「スポットフリート設定の例 (p. 220)」を参照してください。
出力例を次に示します。
{
"SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
}
スポット群の監視
スポット価格が入札価格を下回っていると、スポット群のスポットインスタンスが起動されます。ス
ポットインスタンスは、その入札価格がスポット価格を超えることがなくなるまで、またはお客様が自
らスポットインスタンスを終了するまで実行されます。
コンソールを使用してスポット群を監視するには
1.
2.
スポットコンソール(https://console.aws.amazon.com/ec2spot/home/fleet)を開きます。
スポット群リクエストを選択します。設定の詳細が [Description] タブに表示されます。
3.
4.
スポット群のスポットインスタンスを一覧表示するには、[Instances] タブを選択します。
スポット群の履歴を表示するには、[History] タブを選択します。
217
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
AWS CLI を使用してスポット群を監視するには
スポット群リクエストの詳細を表示するには、以下の describe-spot-fleet-requests コマンドを使用しま
す。
aws ec2 describe-spot-fleet-requests
指定したスポット群のスポットインスタンスの詳細を表示するには、以下の describe-spot-fleet-instances
コマンドを使用します。
aws ec2 describe-spot-fleet-instances --spot-fleet-request-id sfr-73fbd2ce-aa30494c-8788-1cee4EXAMPLE
指定したスポット群リクエストの履歴を表示するには、以下の describe-spot-fleet-request-history コマ
ンドを使用します。
aws ec2 describe-spot-fleet-request-history --spot-fleet-request-id sfr-73fbd2ceaa30-494c-8788-1cee4EXAMPLE --start-time 2015-05-18T00:00:00Z
スポットフリートリクエストを変更する
以下のタスクを完了するように、アクティブなスポット群リクエストを変更できます。
• ターゲット容量を増やします
• ターゲット容量を減らします
ターゲット容量を増やす場合、スポットフリートは、スポットフリートリクエストの配分戦略に従って
追加のスポットインスタンスを起動します。 配分戦略が lowestPrice の場合、スポットフリートは、
スポットフリートリクエストの最低価格のスポットプールからインスタンスを起動します。 配分戦略
が diversified の場合、スポットフリートは、スポットフリートリクエストのスポットプールにイン
スタンスを分散します。
ターゲット容量を減らす場合、スポットフリートは新しいターゲット容量を超えるすべてのオープン入
札をキャンセルします。 スポット群のサイズが新しいターゲット容量に達するとスポット群のスポッ
トインスタンスが終了されるようにリクエストできます。配分戦略が lowestPrice である場合は、ス
ポット群の最低単価のインスタンスが終了されます。配分戦略が diversified である場合は、スポッ
ト群のスポットプール全体でインスタンスが終了されます。あるいは、スポット群の現在のサイズを保
持するようにリクエストすることもできますが、中断または手動終了されたスポットインスタンスへの
置き換えはできません。
コンソールを使用してスポット群リクエストを変更するには
1.
スポットコンソール(https://console.aws.amazon.com/ec2spot/home/fleet)を開きます。
2.
3.
4.
スポット群リクエストを選択します。
[Actions]、[Modify target capacity] の順にクリックします。
[Modify target capacity] で、以下の操作を実行します。
a.
新しいターゲット容量を入力します。
b.
(オプション)ターゲット容量を小さくしてもスポット群の現在のサイズを保持する場合は、
[Terminate instances] の選択を解除します。
c.
送信をクリックします。
218
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
AWS CLI を使用してスポット群リクエストを変更するには
次のhttp://docs.aws.amazon.com/cli/latest/reference/ec2/modify-spot-fleet-request.htmlコマンドを使用
して、指定するスポットフリートリクエストのターゲット容量を更新します。
aws ec2 modify-spot-fleet-request --spot-fleet-request-id sfr-73fbd2ce-aa30494c-8788-1cee4EXAMPLE --target-capacity 20
前のコマンドを以下のように変更することで、結果的にいずれのスポットインスタンスも終了せずに、
指定したスポット群のターゲット容量を減らすことができます。
aws ec2 modify-spot-fleet-request --spot-fleet-request-id sfr-73fbd2ce-aa30494c-8788-1cee4EXAMPLE --target-capacity 10 --excess-capacity-termination-policy
NoTermination
スポット群リクエストのキャンセル
スポット群を使用しなくなったら、スポット群リクエストをキャンセルできます。これにより、スポッ
ト群に関連付けられているすべてのスポットリクエストがキャンセルされるため、そのスポット群の新
しいスポットインスタンスは起動されなくなります。スポット群のスポットインスタンスを終了するか
どうか指定する必要があります。インスタンスを終了する場合、スポット群リクエストは
cancelled_terminating 状態になります。それ以外の場合、スポット群リクエストは
cancelled_running 状態になり、インスタンスは中断または手動終了されるまで、引き続き実行さ
れます。
コンソールを使用してスポット群リクエストをキャンセルするには
1.
2.
3.
4.
スポットコンソール(https://console.aws.amazon.com/ec2spot/home/fleet)を開きます。
スポット群リクエストを選択します。
[Actions]、[Cancel spot request] の順にクリックします。
[Cancel spot request] で、スポット群をキャンセルしてもよいか確認します。スポット群の現在の
サイズを保持するには、[Terminate instances] の選択を解除します。準備ができたら、[Confirm]
をクリックします。
AWS CLI を使用してスポット群リクエストをキャンセルするには
指定したスポット群リクエストをキャンセルし、インスタンスを終了するには、以下の
cancel-spot-fleet-requests コマンドを使用します。
aws ec2 cancel-spot-fleet-requests --spot-fleet-request-ids sfr-73fbd2ce-aa30494c-8788-1cee4EXAMPLE --terminate-instances
出力例を次に示します。
{
"SuccessfulFleetRequests": [
{
"SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
"CurrentSpotFleetRequestState": "cancelled_terminating",
"PreviousSpotFleetRequestState": "active"
}
],
219
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
"UnsuccessfulFleetRequests": []
}
前のコマンドを以下のように変更することで、インスタンスを終了せずに、指定したスポット群リクエ
ストをキャンセルできます。
aws ec2 cancel-spot-fleet-requests --spot-fleet-request-ids sfr-73fbd2ce-aa30494c-8788-1cee4EXAMPLE --no-terminate-instances
出力例を次に示します。
{
"SuccessfulFleetRequests": [
{
"SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
"CurrentSpotFleetRequestState": "cancelled_running",
"PreviousSpotFleetRequestState": "active"
}
],
"UnsuccessfulFleetRequests": []
}
スポットフリート設定の例
Abstract
スポットフリートリクエストの起動設定を作成する方法をご覧ください。
以下の例で示しているのは、スポット群リクエストを作成するための request-spot-fleet コマンドで使
用できる起動設定です。詳細については、「スポット群リクエストの作成 (p. 216)」を参照してくださ
い。
1. リージョンの最低価格のアベイラビリティーゾーンあるいはサブネットでスポットインスタンスを
起動する (p. 220)
2. 指定リストから最低価格のアベイラビリティーゾーンあるいはサブネットでスポットインスタンス
を起動する (p. 221)
3. 指定されたリストから最低価格のインスタンスタイプを使用してスポットインスタンスを起動す
る (p. 223)
4. リクエストするスポット価格を上書きする (p. 224)
5. 分散配分戦略を使用してスポットフリートを起動する (p. 225)
6. インスタンスの分量指定を使用してスポットフリートを起動する (p. 226)
例 1: リージョン内で最低価格のアベイラビリティーゾーンまたはサブネットでスポットインス
タンスを起動する
以下の例では、アベイラビリティーゾーンまたはサブネットを使用しない 1 つの起動仕様を指定してい
ます。ご使用のアカウントが EC2-VPC のみをサポートしている場合、スポットフリートは、デフォル
トのサブネットがある最低価格のアベイラビリティーゾーンでインスタンスを起動します。 ご使用の
アカウントが EC2-Classic をサポートしている場合、スポットフリートは、最低価格のアベイラビリ
ティーゾーンの EC2-Classic でインスタンスを起動します。 お支払い価格がリクエストに指定された
スポット価格を上回ることはありません。
220
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
{
"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 つの起動仕様を指定しています。
アベイラビリティーゾーン
ご使用のアカウントが 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"
}
}
]
}
221
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
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"
}
}
]
}
インスタンスがデフォルトの VPC で起動される場合は、デフォルトでパブリック IP アドレスが割り当
てられます。インスタンスがデフォルト以外の VPC で起動される場合は、デフォルトでパブリック IP
アドレスは割り当てられません。起動仕様でネットワークインターフェイスを使用して、デフォルト以
外の VPC で起動されるインスタンスにパブリック IP アドレスを割り当てます。ネットワークインター
フェイスの指定時、ネットワークインターフェイスを使用してサブネット 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"
}
}
...
222
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
例 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",
"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"
223
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
},
{
"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": [
{
"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"
}
}
]
}
サブネット
224
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
{
"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 個のインスタ
ンスが配分されます。 詳細については、「スポットのフリートの配分戦略 (p. 199)」を参照してくださ
い。
アベイラビリティーゾーン
{
"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",
225
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
"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"
}
]
}
例 6: インスタンスの重み付けを使用してスポット群を起動する
次の例では、インスタンス分量指定を使っています。これは、入札価格が 1 インスタンス時間当たりで
はなく、1 ユニット時間当たりであることを意味します。 それぞれの起動設定には、異なるインスタン
スタイプおよび異なる分量がリストされます。 スポットフリートは 1 ユニット時間当たり最低価格の
インスタンスタイプを選択します。 スポットフリートでは、ターゲット容量をインスタンス分量で割
ることで起動するスポットインスタンスの数を計算します。 その結果が整数でなければ、スポットフ
リートはその数を次の整数に切り上げ、これによりフリートのサイズがターゲット容量以上になりま
す。
r3.2xlarge の入札が成功すると、スポットはこれらのインスタンスのうち、4 つをプロビジョニング
します (3.33 インスタンスまで 20 を 6 で割り、そして残りの 4 つのインスタンスを切り上げます)。
c3.xlarge の入札が成功すると、スポットはこれらのインスタンスのうち、7 つをプロビジョニング
します (6.66 インスタンスまで 20 を 3 で割り、そして残りの 7 つのインスタンスを切り上げます)。
詳細については、「スポット群インスタンスの重み付け (p. 200)」を参照してください。
アベイラビリティーゾーン
{
"SpotPrice": "0.70",
226
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
"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",
"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",
227
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
"LaunchSpecifications": [
{
"ImageId": "ami-1a2b3c4d",
"InstanceType": "c3.2xlarge",
"SubnetId": "subnet-482e4972",
"WeightedCapacity": 2
},
{
"ImageId": "ami-1a2b3c4d",
"InstanceType": "c3.2xlarge",
"SubnetId": "subnet-bb3337d"
}
]
}
スポット入札ステータス
Abstract
入札ステータスを使用して、スポットインスタンスリクエストを追跡します。
スポットインスタンスリクエストの追跡、スポットインスタンスの使用計画の策定、および戦略的な入
札の実行に役立つように、Amazon EC2 で入札ステータスを確認できます。たとえば、入札ステータ
スによって、スポットリクエストがまだ受理されていない理由や、スポットリクエストの受理を妨げて
いる制約の一覧を確認できます。
このプロセスの各ステップ(スポットリクエストのライフサイクルとも呼ばれる)では、特定のイベン
トによって後続のリクエスト状態が決まります。
目次
• スポットリクエストのライフサイクル (p. 228)
• 入札ステータス情報の取得 (p. 231)
• スポット入札ステータスコード (p. 232)
スポットリクエストのライフサイクル
次の図は、申請から終了まで、スポットリクエストがライフサイクル全体を通してたどり得る経路を示
しています。各ステップはノードとして表現され、各ノードのステータスコードはスポットリクエスト
およびスポットインスタンスのステータスを示します。
228
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
評価保留
スポットインスタンスリクエストを行うと、1 つ以上のリクエストパラメータが有効ではない場合
(bad-parameters)を除き、リクエストは pending-evaluation 状態になります。
ステータスコード
リクエストの状態
インスタンスの状態
pending-evaluation
open
該当なし
bad-parameters
closed
該当なし
保持
1 つ以上のリクエストによる制約が有効であるが、まだ満足することができない場合や、容量が十分で
はない場合、リクエストは制約が満たされるまで待機する保持状態になります。リクエストのオプショ
ンは、リクエストが受理される可能性に影響します。たとえば、現在のスポット価格の下で入札価格を
指定する場合、リクエストはスポット価格が入札価格を下回るまで保持状態になります。 アベイラビ
リティーゾーングループを指定する場合、アベイラビリティーゾーンの制約が満たされるまで、リクエ
ストは保持状態になります。
ステータスコード
リクエストの状態
インスタンスの状態
capacity-not-available
open
該当なし
capacity-oversubscribed
open
該当なし
price-too-low
open
該当なし
not-scheduled-yet
open
該当なし
launch-group-constraint
open
該当なし
az-group-constraint
open
該当なし
229
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
ステータスコード
リクエストの状態
インスタンスの状態
placement-group-constraint
open
該当なし
constraint-not-fulfillable
open
該当なし
評価保留/受理終了
特定の期間のみ有効なリクエストを作成し、リクエストが受理保留段階に到達する前にこの期間の期限
が切れた場合、お客様がリクエストをキャンセルした場合、またはシステムエラーが発生した場合、ス
ポットインスタンスリクエストは terminal 状態になることがあります。
ステータスコード
リクエストの状態
インスタンスの状態
schedule-expired
closed
該当なし
canceled-before-fulfill- cancelled
ment*
該当なし
bad-parameters
failed
該当なし
system-error
closed
該当なし
* リクエストをキャンセルする場合。
受理保留
指定した制約条件(存在する場合)が満たされ、入札価格が現在のスポット価格以上である場合、ス
ポットリクエストは pending-fulfillment 状態になります。
この時点で、Amazon EC2 は要求されたインスタンスを提供するよう準備します。 この時点でプロセ
スが停止した場合、これはスポットインスタンスが起動される前にユーザーがリクエストをキャンセル
したか、予期しないシステムエラーが発生したことが原因である可能性があります。
ステータスコード
リクエストの状態
インスタンスの状態
pending-fulfillment
open
該当なし
受理済み
スポットインスタンスに対するすべての指定が満たされると、スポットリクエストが受理されます。
Amazon EC2 によってスポットインスタンスが起動されます。起動には数分かかる場合があります。
ステータスコード
リクエストの状態
インスタンスの状態
fulfilled
active
pending → running
受理済み終了
入札価格がスポット価格以上であり、インスタンスタイプに対するスポット容量に余裕があり、お客様
がインスタンスを終了しない限り、スポットインスタンスの実行は続行されます。 スポット価格や利
用可能な容量の変化により、Amazon EC2 がスポットインスタンスを終了する必要がある場合、スポッ
トリクエストは終了状態になります。 たとえば、入札価格がスポット価格に等しくても、スポットイ
230
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
ンスタンスがその価格で申し込み超過になっている場合、ステータスコードは
instance-terminated-capacity-oversubscribed になります。 リクエストは、お客様がスポッ
トリクエストをキャンセルした場合や、スポットインスタンスを終了した場合も、終了状態になりま
す。
ステータスコード
リクエストの状態
インスタンスの状態
request-canceled-and-in- cancelled
stance-running
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-terminated-capa- closed(ワンタイム)、open
city-oversubscribed
(永続)
terminated
closed(ワンタイム)、open
(永続)
terminated
instance-terminatedlaunch-group-constraint
* インスタンスを終了したが、入札をキャンセルしていない場合、リクエストの状態は closed になり
ます。インスタンスを終了し、入札をキャンセルする場合、リクエストの状態は cancelled になりま
す。スポットリクエストをキャンセルする前にスポットインスタンスを終了した場合でも、スポットイ
ンスタンスが終了したと Amazon EC2 によって検出されるまでに遅延が生じる可能性があります。 こ
の場合、リクエストの状態は closed または cancelled となります。
永続リクエスト
スポットインスタンスが(お客様または Amazon EC2 によって)終了するときに、スポットリクエス
トが永続リクエストである場合、リクエストは pending-evaluation 状態に戻り、そして制約が満た
されたときに Amazon EC2 は新しいスポットインスタンスを起動できます。
入札ステータス情報の取得
AWS マネジメントコンソールまたはコマンドラインツールを使用して、入札ステータス情報を取得で
きます。
コンソールを使用して入札ステータス情報を取得するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[Spot Requests] をクリックし、スポットリクエストを選択します。
[Description] タブの [Status] の値を確認します。
コマンドラインを使用して入札ステータス情報を取得する
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-spot-instance-requests(AWS CLI)
• ec2-describe-spot-instance-requests(Amazon EC2 CLI)
231
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
• Get-EC2SpotInstanceRequest(AWS Tools for Windows PowerShell)
スポット入札ステータスコード
スポット入札ステータス情報は、入札ステータスコード、更新時刻、およびステータスメッセージで構
成されます。同時に、スポット入札ステータス情報は、スポットリクエストの処理を決定する場合にも
役に立ちます。
次のリストで、スポット入札ステータスコードについて説明します。
az-group-constraint
Amazon EC2 は、同じアベイラビリティーゾーンでお客様が要求したインスタンスをすべて起動で
きるとは限りません。
bad-parameters
スポットリクエストの 1 つ以上のパラメータが有効ではありません(たとえば、指定した AMI が
存在していません)。入札ステータスメッセージによって、どのパラメータが無効かを確認できま
す。
canceled-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 は、お客様が同時に要求したインスタンスをすべて起動できるわけではありません。
同じ起動グループ内のインスタンスはすべて、同時に起動されて同時に終了します。
marked-for-termination
スポットインスタンスに終了のためのマークが付けられます。
not-scheduled-yet
スポットリクエストは、スケジュール設定された日付になるまで評価されません。
232
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
pending-evaluation
スポットインスタンスリクエストを作成すると、スポットインスタンスリクエストは
pending-evaluation 状態となり、システムはリクエストのパラメータを評価します。
pending-fulfillment
Amazon EC2 はスポットインスタンスをプロビジョニングしようとしています。
placement-group-constraint
現時点でスポットインスタンスをプレイスメントグループに追加できないため、スポットリクエス
トをまだ受理することができません。
price-too-low
入札価格がスポット価格を下回っているため、入札リクエストを受理できません。 この場合、イ
ンスタンスは起動されず、入札は open のままになります。
request-canceled-and-instance-running
スポットインスタンスがまだ実行されている間に、リクエストをキャンセルしました。リクエスト
は cancelled ですが、インスタンスは running のままです。
schedule-expired
スポットリクエストは、指定された日付までに受理されなかったため、有効期限切れとなりまし
た。
system-error
予期しないシステムエラーが発生しました。これが反復性の問題である場合は、カスタマーサポー
トに連絡してください。
スポットインスタンスの中断
Abstract
Amazon EC2 によってスポットインスタンスが終了したときに、アプリケーションが処理できるように準備する方
法を説明します。
スポットインスタンスに対する需要は刻一刻と大幅に変化する可能性があります。また、スポットイン
スタンスの可用性も利用可能な未使用の EC2 インスタンスの数に応じて大きく変化する可能性があり
ます。 さらに、どれほど高い価格で入札しても、スポットインスタンスが中断される可能性がありま
す。したがって、アプリケーションでスポットインスタンスの中断に対して準備する必要があります。
中断できないアプリケーションについては、スポットインスタンスを使用しないことを強くお勧めしま
す。
Amazon EC2 がスポットインスタンスを終了する理由として、次のような理由が考えられます。
• 価格 – スポット価格が入札価格を上回っています。
• 容量 – スポットインスタンスの需要を満たすのに十分な未使用の EC2 インスタンスがない場合、
Amazon EC2 は、入札価格が最も低いインスタンスから順にスポットインスタンスを終了します。
同じ入札価格で複数のスポットインスタンスが存在する場合、インスタンスを終了する順序はランダ
ムに決定されます。
• 制約 – リクエストに起動グループやアベイラビリティーゾーングループなど制約が含まれている場
合、制約条件が満たされなくなったときに、そのスポットインスタンスはグループとして終了されま
す。
中断に対する準備
スポットインスタンスを使用する場合のベストプラクティスを以下に示します。
• 合理的な入札価格を選択します。入札価格は、リクエストが受理されやすくなるように十分に高くす
る必要がありますが、支払える金額よりも高くしないでください。供給が長期間にわたって低い場
合、スポット価格は最も高額の入札価格に基づいており、その期間中、スポット価格が高いままにな
233
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. 322)」を参照してください。
Amazon EC2 によってスポットインスタンスに終了のマークが付けられている場合、termination-time
項目が存在し、インスタンスがシャットダウン信号を受け取るおよその時間が UTC で示されます。 以
下に例を示します。
2015-01-05T18:02:00Z
Amazon EC2 がインスタンスを終了する準備をしていない場合や、お客様が自分でスポットインスタ
ンスを終了した場合、termination-time 項目は存在しない(この場合、HTTP 404 エラーが出力さ
れます)か、時刻値以外の値が含まれます。
Amazon EC2 によってスポットインスタンスに終了のマークが付けられた時点でこの警告を提供する
ように努めていますが、Amazon EC2 がこの警告を利用できる前に、スポットインスタンスが終了さ
れる可能性があります。 そのため、スポットインスタンスの終了の通知を確認している場合でも、予
期しないスポットインスタンスの中断を処理できるようにアプリケーションで準備しておく必要があり
ます。
Amazon EC2 がインスタンスの終了に失敗した場合は、スポット入札ステータスが fulfilled に設定
されます。termination-time が元のおよその時刻のまま (過去の時刻になっていますが)、インスタ
ンスのメタデータに残ることに注意してください。
234
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
スポットインスタンスデータフィード
Abstract
スポットインスタンスの使用状況をログに記録するためのデータフィードの購読
スポットインスタンスの料金について理解しやすくするため、Amazon EC2 では、スポットインスタ
ンスの使用状況と料金を示すデータフィードを提供しています。このデータフィードは、データフィー
ドを購読するときに指定する Amazon S3 バケットに送信されます。
データフィードファイルは、通常、1 時間に 1 回バケットに届き、各使用時は、通常、単一のデータ
ファイルでカバーされます。このファイルは、バケットに配信される前に圧縮(gzip)されます。ファ
イルが非常に大きい場合は、Amazon EC2 は指定した時間の使用状況に関するファイルを複数書き込
むことができます(ある時間のファイルコンテンツが圧縮前に 50 MB を超える場合など)。
Note
ある時間に対してスポットインスタンスが実行されていない場合、その時間のデータフィード
ファイルは届きません。
目次
• データフィードのファイル名と形式 (p. 235)
• Amazon S3 バケットのアクセス許可 (p. 236)
• スポットインスタンスのデータフィードの購読 (p. 236)
• Spot インスタンスのデータフィードの削除 (p. 237)
データフィードのファイル名と形式
スポットインスタンスのデータフィードのファイル名には次の形式を使用します(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:{instance-type}
に設定されます。たとえば、SpotUsage:c1.medium と指定します。
235
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
フィールド
説明
Operation
請求の対象となっている製品。Linux スポットインスタンスの場合、このフィー
ルドは RunInstances に設定されます。Microsoft Windows の場合、このフィー
ルドは RunInstances:0002 に設定されます。スポット使用状況は、利用可能
ゾーンに従ってグループ化されます。
InstanceID
このインスタンス時間を生成したスポットインスタンスのインスタンス ID。
MyBidID
このインスタンス時間を生成したスポットインスタンスリクエストの ID。
MyMaxPrice
このスポットインスタンスリクエストに指定された上限価格。
MarketPrice
Timestamp フィールドに指定された時刻のスポット価格。
Charge
このインスタンス時間に請求される価格。
Version
このレコードのデータフィードファイル名に含まれるバージョン。
Amazon S3 バケットのアクセス許可
データフィードの購読時に、データフィードファイルを格納する Amazon S3 バケットを指定する必要
があります。データフィード用の Amazon S3 バケットを選択する前に、以下の点を考慮します。
• バケットに対する FULL_CONTROL アクセス許可が必要です。
•
•
•
•
バケット所有者には、デフォルトでこの権限があります。それ以外の場合、バケット所有者は AWS
アカウントにこのアクセス許可を付与する必要があります。
データフィード購読を作成すると、Amazon S3 は指定されたバケットの ACL を更新して AWS デー
タフィードアカウントに読み書きのアクセス許可を付与します。
データフィードアカウントの権限を削除しても、データフィードは無効になりません。これらのアク
セス許可を削除しても、データフィードを無効にしなかった場合は、次にデータフィードアカウント
でバケットに書き込む必要が生じたときに、これらのアクセス許可を復元できます。
各データフィードファイルには、独自の ACL があります(バケットの ACL とは別です)。バケット
所有者には、データファイルに対して FULL_CONTROL のアクセス許可があります。データフィード
アカウントには読み書きのアクセス許可があります。
データフィードの購読を削除しても、Amazon EC2 ではバケットまたはデータファイルのデータ
フィードアカウントの読み書きのアクセス許可は削除されません。これらのアクセス許可は自分で削
除する必要があります。
スポットインスタンスのデータフィードの購読
コマンドラインまたは API を使用してスポットインスタンスのデータフィードを購読できます。
AWS CLI を使用した購読
データフィードを購読するには、次の create-spot-datafeed-subscription コマンドを使用します。
$ aws ec2 create-spot-datafeed-subscription --bucket myawsbucket [--prefix
myprefix]
出力例を次に示します。
{
"SpotDatafeedSubscription": {
236
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
"OwnerId": "111122223333",
"Prefix": "myprefix",
"Bucket": "myawsbucket",
"State": "Active"
}
}
Amazon EC2 CLI を使用した購読
データフィードを購読するには、次の ec2-create-spot-datafeed-subscription コマンドを使用します。
$ ec2-create-spot-datafeed-subscription --bucket myawsbucket [--prefix myprefix]
出力例を次に示します。
SPOTDATAFEEDSUBSCRIPTION
Active
111122223333
myawsbucket
myprefix
Spot インスタンスのデータフィードの削除
コマンドラインまたは API を使用してスポットインスタンスのデータフィードを削除できます。
AWS CLI を使用した削除
データフィードを削除するには、次の delete-spot-datafeed-subscription コマンドを使用します。
$ aws ec2 delete-spot-datafeed-subscription
Amazon EC2 CLI を使用した削除
データフィードを削除するには、次の ec2-delete-spot-datafeed-subscription コマンドを使用します。
$ ec2-delete-spot-datafeed-subscription
スポットインスタンスの制限
Abstract
スポットインスタンスの制限事項について説明します。
スポットインスタンスリクエストには以下の制限が適用されます。
制限
• サポートされていないインスタンスタイプ (p. 237)
• スポットリクエスト制限 (p. 238)
• スポット入札価格制限 (p. 238)
• スポット群の制限 (p. 238)
• Amazon EBS サポートされない暗号化 (p. 239)
サポートされていないインスタンスタイプ
次のインスタンスタイプは、スポットではサポートされません。
237
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
スポットインスタンス
• T2
• HS1
スポットインスタンスタイプは、すべてのリージョンで利用可能とは限りません。リージョンでサポー
トされるインスタンスタイプを表示するには、[Spot Instance Pricing] に移動し、リージョンを選択し
ます。
スポットリクエスト制限
スポットインスタンスのリクエスト数は制限されています。全体的な制限と、各インスタンスタイプに
適用される制限があります。
全体的な制限はアクティブまたはオープンなスポットインスタンスリクエストに適用されます。スポッ
トインスタンスを終了してもリクエストはキャンセルしない場合、Amazon EC2 がその終了を検出し
てリクエストを終了するまで、リクエストは全体的な制限に対してカウントされます。
以下の表に示しているのは、スポットインスタンスリクエストに適用される全体的な制限です。新しい
AWS アカウントでは制限が少なくなる場合があります。
リソース
制限
スポットインスタンスリクエストの総数
リージョンごとに 20
MaxSpotInstanceCountExceeded エラー
スポットインスタンスリクエストを送信したときに Max spot instance count exceeded エラー
が表示された場合は、アカウントがそのリージョンのスポットインスタンスリクエストの全体的な制限
を超えているか、そのリージョンの特定のインスタンスタイプのスポットインスタンスリクエストの制
限を超えています。制限の引き上げリクエストを送信するには、AWS サポートセンターに移動して、
リクエストフォームに入力してください。[Use Case Description] フィールドで、スポットインスタン
スリクエストの制限の引き上げをリクエストしていることが示されます。
スポット入札価格制限
入札価格制限は、予期しない課金の発生からお客様を保護することを目的としています。
以下の表に示しているのは、スポットインスタンスに適用される入札価格制限です。
リソース
制限
入札価格
オンデマンド価格の 10 倍。
スポット群の制限
スポット群によって起動されるインスタンスには、Amazon EC2 の通常の制限(スポット入札価格制
限、インスタンス制限、容量制限など)が適用されます。また、以下の制限も適用されます。
• リージョンあたりのアクティブなスポット群の数: 1,000
• 群あたりの起動仕様の数: 50
• 起動仕様内のユーザーデータのサイズ: 16 KB
• スポット群あたりのインスタンスの数: 3,000
• リージョン内のすべてのスポット群のインスタンスの総数: 3,000
• スポット群リクエストは、リージョンにまたがることはできません。
238
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
• スポット群リクエストは、同じアベイラビリティーゾーンから複数の異なるサブネットにまたがるこ
とはできません。
Amazon EBS サポートされない暗号化
スポットインスタンスの起動の仕様で暗号化された EBS ボリュームを指定できますが、このボリュー
ムは暗号化されません。
Dedicated Hosts
Abstract
Dedicated Host は、自分のライセンス使用 (bring-your-own-license) およびコンプライアンスのユースケースをサ
ポートする、物理的に分離された Amazon EC2 サーバーです。
Amazon EC2 Dedicated Host は、EC2 インスタンスの容量を利用したお客様専用の物理サーバーです。
Dedicated Host を利用すると、Microsoft Windows Server、Microsoft SQL Server、SUSE、Linux
Enterprise Server などのソフトウェアライセンスを、既存のソケット単位、コア単位、または VM 単位
で使用できます。
目次
• Dedicated Host とハードウェア専有インスタンスの違い (p. 239)
• 価格と請求 (p. 239)
• Dedicated Host の制限と制約 (p. 241)
• Dedicated Host の設定 (p. 242)
• サポートされるインスタンスタイプ (p. 242)
• Dedicated Host の使用方法 (p. 242)
• Dedicated Host のモニタリング (p. 250)
Dedicated Host とハードウェア専有インスタンスの違い
Abstract
Dedicated Host とハードウェア専有インスタンスを比較します。
Dedicated Host とハードウェア専有インスタンスのどちらを使用しても、お客様専用の物理サーバーに
Amazon EC2 インスタンスを起動することができます。
ハードウェア専有インスタンスと Dedicated Host のインスタンスの間に、パフォーマンス、セキュリ
ティ、または物理的な違いはありません。ただし、Dedicated Host の方が、インスタンスの物理サー
バーへの配置方法に関して可視性と制御性が高くなります。
Dedicated Host とハードウェア専有インスタンスの違いの詳細については、「Amazon EC2 Dedicated
Hosts」を参照してください。
Dedicated Host とハードウェア専有インスタンスの操作の詳細については、「インスタンスのテナント
属性の変更 (p. 247)」を参照してください。
価格と請求
オンデマンド Dedicated Host
アカウントに Dedicated Host を割り当てると、自動的にオンデマンド請求がアクティブになります。
239
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
時間単位のオンデマンド料金が請求されます。料金は Dedicated Host がサポートするインスタンスタ
イプおよび Dedicated Host を実行するリージョンによって異なります。Dedicated Host で実行される
インスタンスタイプのサイズやインスタンスの数はホストのコストに影響を与えません。
オンデマンド請求を終了するには、Dedicated Host で実行されているインスタンスを停止してから、
Dedicated Host を解放する必要があります。詳細については、「Dedicated Host の管理と解放 (p. 248)」
を参照してください。
Dedicated Host の予約
Dedicated Host の予約により、オンデマンド Dedicated Host の実行と比較して請求の割引が得られま
す。予約は、3 つの支払いオプションで利用できます。
• 前払いなし — 前払いなしの予約では、期間内の Dedicated Host の使用に対して割引があり、前払い
料金は必要ありません。1 年契約でのみ利用できます。
• 一部前払い — 予約の一部を前払いする必要があり、期間内の残りの時間は割引された時間料金で請
求されます。1 年および 3 年契約で利用できます。
• 全前払い — 実質的に最低価格で利用できます。1 年および 3 年契約で利用でき、期間中のすべての
コストが含まれます。それ以外の料金は発生しません。
予約を購入するには、アカウントでアクティブな Dedicated Host が必要です。各予約は、アカウント
の単一で特定の Dedicated Host が対象です。予約のインスタンスファミリーとリージョンは、対象に
する Dedicated Host のインスタンスファミリーとリージョンに一致する必要があります。
Note
Dedicated Host が予約の対象である場合、期間が終了するまで解放することはできません。た
だし、リージョンとインスタンスファミリーが予約のリージョンとインスタンスファミリーに
一致する限り、アカウントの別の Dedicated Host に予約を再割り当てすることができます。詳
細については、サポートまたはアカウントマネージャーにお問い合わせください。
Dedicated Host の予約の購入
アカウントマネージャーに E メールを送信するか、サポートリクエストを記録することにより、予約
を購入できます。どちらのインスタンスでも、以下の情報を含む CSV または XLS ファイルを提供する
必要があります。
• アカウント ID — アカウントID。
• ホスト ID — 予約の対象とする Dedicated Host。AWS マネジメントコンソール でホスト ID を取得
するか、DescribeHosts API オペレーションを使用してホスト ID を取得できます。
• リージョン — Dedicated Host が実行中のリージョン。
• インスタンスタイプ — Dedicated Host のインスタンスタイプ。
• 契約期間 — 1 年または 3 年 (前払いなしの Dedicated Host 予約では、1 年契約が唯一のオプション
です)。
• 支払いオプション — 予約の支払いオプション (前払いなし、一部前払い、または全前払い)。
次の表は、リクエスト形式の例です。
240
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
アカウント ID
ホスト ID
リージョン
インスタンスタイ
プ
期間
お
支
払
い
方
法
12345768
h-068984f7c97
us-east-1
C4
3年
全
前
払
い
サポートコンソールを使用して予約を購入するには
1.
サポートチケットを開きます。
2.
[Account and Billing Support] を選択し、次の値を入力します。
• Service — 請求
• Category — 請求のその他の質問
• Subject — Dedicated Host の予約の購入
3.
4.
上の表にリストされている情報を指定します。
[Submit] を選択します。
注文が処理されると、サポートまたはアカウントマネージャーから連絡があります。割引価格の時間料
金が AWS マネジメントコンソールの [Billing & Cost Management] ページに表示されるまでに、最大
24 時間かかる場合があります。
その他の Dedicated Host 予約のサポートについては、サポートまたはアカウントマネージャーにお問
い合わせください。
詳細については、「Dedicated Hosts Pricing」を参照してください。
Dedicated Host の制限と制約
• AWS が提供、または AWS Marketplace で提供される RHEL、SUSE Linux、または Windows 以外の
AMI を Dedicated Host で使用することはできません。
• リージョンごとに、インスタンスファミリーあたり 2 つまでのオンデマンド Dedicated Host を割り
当てることができます。制限値の引き上げるには、Request to Raise Allocation Limit on Amazon EC2
Dedicated Hosts に従って、制限値の引き上げをリクエストします。
• Dedicated Host で実行されるインスタンスは、VPC でのみ起動できます。
• ホストの制限はインスタンス制限とは無関係です。Dedicated Host で実行しているインスタンスは、
インスタンス制限に加算されません。
• Auto Scaling group はサポートされていません。
• RDS インスタンスはサポートされていません。
• AWS 無料利用枠は Dedicated Host には使用できません。
• インスタンスのプレイスメント制御は、Dedicated Host でのインスタンスの起動管理を表します。プ
レイスメントグループは Dedicated Host ではサポートされません。
241
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
Dedicated Host の設定
Dedicated Host は、1 つのインスタンスタイプの容量をサポートするように設定されます。Dedicated
Host に起動できるインスタンスの数は、Dedicated Host がサポートするように設定されたインスタン
スタイプによって異なります。たとえば、c3.xlarge Dedicated Host を割り当てた場合、Dedicated Host
で c3.xlarge のインスタンスを最大 8 個まで起動する権利があります。特定の Dedicated Host で実行で
きるインスタンスタイプのサイズの数を調べる方法については、「サポートされるインスタンスタイ
プ (p. 242)」を参照してください。
サポートされるインスタンスタイプ
Dedicated Host は、それぞれ 1 つのインスタンスタイプ (c3.xlarge など) をサポートします。実行中の
インスタンスのテナンシーを host に変更することはできますが、それがサポートされるインスタンス
タイプである必要があります。
インス
タンス
タイプ
ソケッ
ト
物理コ
ア
medium
large
xlarge
2xlarge
4xlarge
8xlarge
10xlarge
C3
2
20
-
16
8
4
2
1
–
C4
2
20
-
16
8
4
2
1
–
G2
2
20
-
–
–
4
–
1
–
M3
2
20
32
16
8
4
–
–
–
D2
2
24
-
–
8
4
2
1
–
R3
2
20
-
16
8
4
2
1
–
M4
2
24
-
22
2013
5
2
–
1
I2
2
20
-
–
8
4
2
1
–
Dedicated Host の使用方法
Abstract
Dedicated Host の割り当て、起動、使用、および解放を行います。
Dedicated Host を使用するには、まずアカウントで使用するホストを割り当てます。次に、インスタン
スの host テナンシーを指定して、ホストにインスタンスを起動します。インスタンスの自動プレイス
メント設定では、インスタンスを特定のホストで起動できるかどうかを制御できます。affinity 設定に
よって、インスタンスを停止して再起動するときに、同じホストで再起動されるか別のホストで再起動
されるかが決まります。あるホストが不要になった場合は、そのホストで実行されているインスタンス
を停止し、別のホストで起動するように指定してから、そのホストを解放することができます。
目次
• 自分のライセンスを使用する (p. 243)
• Dedicated Host の割り当て (p. 243)
• Dedicated Host でのインスタンスの起動 (p. 244)
• インスタンスのプレイスメントについて (p. 245)
• インスタンスのテナント属性の変更 (p. 247)
• Dedicated Host の管理と解放 (p. 248)
• API と CLI コマンドの概要 (p. 248)
242
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
• AWS Config による設定変更の追跡 (p. 249)
自分のライセンスを使用する
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. 249)」を参照してください。
4. マシンイメージをインポートした後、そのイメージからインスタンスを Dedicated Host に起動でき
ます。
5. オペレーティングシステムによっては、これらのインスタンスを実行するときに、独自の KMS サー
バー (Windows Server や Windows SQL Server など) に対してそれらのインスタンスをアクティブに
することが必要になることがあります。インポートした Windows AMI を、Amazon Windows KMS
サーバーに対してアクティブにすることはできません。
Dedicated Host の割り当て
Abstract
Dedicated Host をアカウントに割り当てます。
Dedicated Host の使用を開始するには、それらがアカウントに割り当てられている必要があります。
AWS マネジメントコンソール を使用して API と直接やり取りするか、コマンドラインインターフェー
スを使用してこれらのタスクを実行します。Dedicated Host を割り当てるときは、常に以下の手順に従
います。
Dedicated Host を割り当てるには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
[Dedicated Hosts] ページで、[Allocate Dedicated Host] を選択します。
以下のオプションを使用してホストを構成します。
a.
b.
[Instance type] - Dedicated Host で使用できるインスタンスタイプ。
[Availability Zone] - Dedicated Host のアベイラビリティーゾーン。
c.
[Allow instance auto-placement] - デフォルト設定は [off] です。 Dedicated Host では、ターゲッ
トを絞った host テナンシーインスタンスの起動だけが受け入れられます (キャパシティが利
用可能な場合)。インスタンスの自動プレイスメントが [on] である場合、テナンシーが host
であり、Dedicated Host の設定と一致するインスタンスであれば、いずれもホストで起動でき
ます。
[Quantity] – これらの設定で割り当てるホストの数。
d.
4.
[Allocate host] を選択します。
243
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
すぐに、Dedicated Host の容量をアカウントで使用できるようになります。
テナンシー host でインスタンスを起動して、アカウントにアクティブな Dedicated Host がない場合
は、エラーが発生します。
Dedicated Host でのインスタンスの起動
Abstract
Dedicated Host で使用するインスタンスを起動します。
Dedicated Host を割り当てたら、そのホストにインスタンスを起動できます。テナンシーが host のイ
ンスタンスは、特定の Dedicated Host に起動できます (ターゲットを絞った起動)。または、Amazon
EC2 に Dedicated Host を選択させることができます (自動プレイスメント)。起動するインスタンスの
インスタンスタイプ構成に合った容量を使用できる Dedicated がアカウントにない場合は、テナンシー
が hosthost のインスタンスを起動できません。
Note
Dedicated Host に起動されるインスタンスは、VPC でのみ起動できます。VPC の使用の詳細
については、Introduction to VPC を参照してください。
[Dedicated Hosts] ページからのターゲットを絞ったプレイスメントの起動
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[Dedicated Hosts] 画面で、ホストを選択し、[Actions] を選択して、[Launch Instance(s) onto Host]
を選択します。
使用する AMI を選択します。独自の AMI (BYOL AMI など) をインポートしている場合は、左のサ
イドバーで [My AMIs] を選択し、関連する AMI を選択します。
Dedicated Host のインスタンスタイプを選択します。ホストに起動できるインスタンスタイプはこ
れだけです。
[Configure Instance Details] ページで、[Tenancy] および [Host] オプションが前もって選択されて
います。[Affinity] の設定を [On] または [Off] に切り替えることができます
• On — インスタンスは、常にその特定のホスト上で再開されます。
• Off — インスタンスは特定のホストに起動されますが、そのホストで再開されるとは限りませ
ん。
6.
残りの手順を完了し、[Launch Instances] を選択します。
インスタンスは、指定した Dedicated Host に自動的に割り当てられます。Dedicated Host にあるイン
スタンスを表示するには、[Dedicated Hosts] ページに移動し、インスタンスの起動時に指定した
Dedicated Host を選択します。
[Instances] ページからの対象を絞ったプレイスメントの起動
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
[Instances] ページで [Launch Instance] を選択します。
リストから AMI を選択します。独自の AMI をインポートしている場合は、[My AMIs] を選択し、
インポートしたイメージを選択します。すべての AMI を Dedicated Host で使用できるわけではあ
りません。
起動するインスタンスのタイプを選択します。すべてのインスタンスタイプを Dedicated Host で
使用できるわけではありません。
4.
5.
[Configure Instance Details] ページで、Dedicated Host の設定は次のようになっています。
244
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
• [Tenancy] – [Dedicated host — Launch this instance on a Dedicated host]。
• Host — ドロップダウンリストからホストを選択します。Dedicated Host を選択できない場合
は、選択したサブネットがホストとは別のアベイラビリティーゾーンにあるかどうか確認しま
す。
• Affinity — このデフォルトの設定は [Off] です。インスタンスは指定されたホストに起動されます
が、停止されると再起動しない場合があります。
互換性がない AMI やインスタンスタイプを選択した場合、インスタンスを Dedicated Host に起動
できません。これらの設定が表示されない場合は、[Network] メニューで VPC を選択したことを確
認してください。
6.
7.
8.
残りの設定手順を完了します。[Review and Launch] を選択します。
[Launch] を選択してインスタンスを起動します。
既存のキーペアを選択するか、新しいキーペアを作成します。そして、[Launch Instances] を選択
します。
[Instances] ページからのターゲットを絞らないプレイスメントの起動
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[Instances] ページで [Launch Instance] を選択します。
リストから AMI を選択します。独自の AMI をインポートしている場合は、[My AMIs] を選択し、
インポートしたイメージを選択します。すべての AMI を Dedicated Host で使用できるわけではあ
りません。
起動するインスタンスのタイプを選択します。すべてのインスタンスタイプを Dedicated Host で
使用できるわけではありません。
[Configure Instance Details] ページで、Dedicated Host の設定は次のようになっています。
• [Tenancy] – [Dedicated host — Launch this instance on a Dedicated host]。
• Host - このデフォルト設定は [Use auto-placement] です。ドロップダウンメニューからホストを
選択しないでください。選択すると、Amazon EC2 はそのホストで起動しようとします。
• Affinity - このデフォルトの設定は [Off] です。インスタンスは指定されたホストに起動されます
が、停止されると再起動しない場合があります。
6.
7.
8.
互換性がない AMI やインスタンスタイプを選択した場合、インスタンスを Dedicated Host に起動
できません。これらの設定が表示されない場合は、[Network] メニューで VPC を選択したことを確
認してください。
残りの設定手順を完了します。[Review and Launch] を選択します。
[Launch] を選択してインスタンスを起動します。
既存のキーペアを選択するか、新しいキーペアを作成します。そして、[Launch Instances] を選択
します。
インスタンスのプレイスメントについて
Abstract
インスタンスが特定または使用可能な Dedicated Host にどのように起動されるかを選択します。
インスタンスのプレイスメントは、インスタンスを実行する物理サーバーを制御する機能を表します。
Dedicated Host のプレイスメント設定に応じて、Amazon EC2 に Dedicated Host のインスタンスのプ
レイスメントを自動的に管理させることも (自動プレイスメント)、使用する Dedicated Host を手動で
選択することもできます (ターゲットを絞ったプレイスメント)。
目次
245
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
• 自動配置 (p. 246)
• ターゲットを絞ったプレイスメント (p. 246)
• アフィニティ (p. 246)
• インスタンスのプレイスメント制御の操作 (p. 246)
自動配置
自動プレイスメントは、Dedicated Host を割り当てるときに有効になるデフォルトのプレイスメント設
定です。この設定は、host のテナンシーでホスト ID が指定されていない Dedicated Host に起動する
インスタンスを、AWS が自動的に配置することを意味します (ホストの容量があることが前提)。
ターゲットを絞ったプレイスメント
各 Dedicated Host には、グローバルに一意なホスト ID が割り当てられます。そのホスト ID を指定す
ることで、特定の Dedicated Host にインスタンスを起動できます。このアクションは、ターゲットを
絞ったプレイスメントとも呼ばれます。このように起動されるインスタンスは、デフォルトでホストへ
のアフィニティを継承します。Dedicated Host で自動プレイスメントを無効にしている場合は、ター
ゲットを絞ったプレイスメントの起動だけが受け入れられます (ホストへのアフィニティを持つインス
タンスの起動を含む)。また、自動プレイスメントがオンになっている場合でも、Dedicated Host を起
動のターゲットにすることができます。
アフィニティ
アフィニティは、テナンシーが host であるインスタンスのインスタンスプロパティです。これによっ
てインスタンスとホストの間の起動関係が確立され、特定のホストに起動されたインスタンスが常に同
じホストで再起動されるようになります (停止した場合)。これは、いつでもライセンスが付与される物
理サーバーの数を最小限にする必要がある自分のライセンス使用 (bring-your-own-license) シナリオの
場合に有益です。
ターゲットを絞った起動を指定するかどうかにかかわらず、インスタンスのアフィニティを host に設
定できますが、インスタンスが起動元のホストと永続的な関係を持つようにする必要があります。
アフィニティが default に設定されているときにインスタンスを停止して再起動する場合、インスタ
ンスは自動プレイスメントを有効にしている使用可能な任意のホストで再起動できますが、最後に実行
された Dedicated Host に起動しようとします (ベストエフォートベースで)。
アフィニティを host から default に変更することで、Dedicated Host とインスタンスの関係を変更
できます。詳細については、「インスタンスのテナント属性の変更 (p. 247)」を参照してください。
インスタンスのプレイスメント制御の操作
Amazon EC2 コンソール、API、または CLI を使用して、インスタンスのプレイスメント制御を管理で
きます。
実行中のインスタンスのインスタンスプレイスメントの設定を変更するには
既存のインスタンスのインスタンスプレイスメント設定を変更して、停止したインスタンスを特定のホ
ストで再開したり、インスタンスとホストの間のアフィニティーを削除したりできます。
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[Instances] ページで、 編集するインスタンスを選択します。
3.
[Actions] を選択して [Instance State] を選択し、[Stop] を選択します。
4.
5.
6.
[Actions] から [Instance Settings]、[Modify Instance Placement] の順に選択します。
インスタンスのテナンシーを [Launch this instance on a Dedicated host] に変更します。
必要な [Affinity] 設定を選択します。
246
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
a.
b.
7.
[This instance can run on any one of my Hosts] を選択した場合は、インスタンスは自動プレイ
スメントが有効になっている Dedicated Host で起動します。[Save] を選択して続行します。
[This instance can only run on the selected Host] を選択した場合は、[Target Host] を選択し、
インスタンスを使用可能な任意のホストに配置するか特定のホストに配置するかを選択しま
す。[Save] を選択して続行します。
インスタンスを右クリックし、[Instance State] を選択し、[Start] を選択します。
使用可能な任意の Dedicated Host にインスタンスを起動するように選択した場合は、アカウントの使
用可能な任意のホストで実行します。インスタンスを停止して再開する場合は、同じホストで再開され
るとは限りません。
ターゲットホストを選択した場合は、インスタンスは指定された Dedicated Host で起動し、そのイン
スタンスと Dedicated Host 間のアフィニティーが設定されます。インスタンスが停止して再起動され
る場合は、同じ Dedicated Host で再起動されます。インスタンスにホストとのアフィニティーが不要
になった場合は、インスタンスを停止し、アフィニティーを [default] に設定します。これによって
インスタンスとホストの間の永続性は削除されますが、インスタンスを再開したときに同じ Dedicated
Host で起動する場合があります (アカウントで使用可能な Dedicated Host によります)。この場合、も
う一度停止するとそのホストでは再開しません。
インスタンスのテナント属性の変更
Abstract
ハードウェア専有インスタンスを Dedicated Host に移動します。
ハードウェア専有インスタンスが Amazon EC2 が提供する Windows、SUSE、または RHEL AMI を使
用していない場合は、インスタンスのテナンシーを [dedicated] と [host] の間で変更することができ
ます。これを行う場合は、ハードウェア専有インスタンスを停止する必要があります。shared テナン
ト属性のインスタンスを host テナント属性に変更することはできません。
インスタンスのテナント属性を変更するには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[Instances] を選択し、Dedicated Host に移動するハードウェア専有インスタンスを選択します。
[Actions] を選択して [Instance State] を選択し、[Stop] を選択します。
インスタンスを右クリックして、[Instance Settings] を選択し、次に [Modify Instance Placement]
を選択します。
[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] を選択した場合、インスタンスは自動プレイスメ
ントが [On] になっているどの Dedicated Host でも起動します。これは、次回のインスタンス起
動用のターゲットを絞らないプレースメントと見なされます。
[This instance can only run on the selected Host] を選択した場合は、ドロップダウンメニューか
ら [Target Host] を選択します。
6.
[Save] を選択します。
247
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
7.
インスタンスを再起動すると、Amazon EC2 はアカウントで利用可能な Dedicated Host にインス
タンスを配置します。
Dedicated Host の管理と解放
コンソールを使用する、API を直接操作する、またはコマンドラインインターフェイスを使用して、ホ
ストの各インスタンスに関する詳細を表示し、オンデマンド Dedicated Host を解放できます。
インスタンスの詳細を表示するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[Dedicated Hosts] ページで、詳細情報を表示するホストを選択します。
3.
そのホストの情報を表示するには、[Description] タブを選択します。ホストで実行中のインスタン
スの情報を表示するには、[Instances] タブを選択します。
Dedicated Host を解放するには
ホストを解放する前に、Dedicated Host で実行中のインスタンスを停止する必要があります。これらの
インスタンスはアカウントの他の Dedicated Host に移行し、引き続き使用することができます。「イ
ンスタンスのプレイスメント制御の操作 (p. 246)」を参照してください。これらのステップは、オンデ
マンド Dedicated Host にのみ適用されます。
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[Dedicated Hosts] ページで、解放する Dedicated Host を選択します。
[Actions] を選択し、[Release Hosts] を選択します。
[Release ] を選択して、その選択を確認します。
Dedicated Host を解放した後は、同じホストまたはホスト ID を再び使用することはできません。
Dedicated Host を解放すると、それに対するオンデマンド請求レートで請求されることはなくなりま
す。Dedicated Host のステータスは released に変更され、そのホストにインスタンスを起動するこ
とはできなくなります。
最近、Dedicated Host を解放した場合、ホストが制限に加算されなくなるまでに少し時間がかかること
があります。LimitExceeded エラーが発生する場合があります。発生した場合は、数分後に新しいホ
ストを再び割り当ててみてください。
停止したインスタンスはまだ使用可能であり、[Instances] ページに表示されます。その [host] テナン
シー設定も維持されています。これらのインスタンスのプレイスメント設定を変更して、再開したとき
に指定の 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)
248
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
• DescribeHosts (Amazon EC2 Query API)
• Get-EC2Hosts (AWS Tools for Windows PowerShell)
Dedicated Host を変更するには
• modify-hosts (AWS CLI)
• ModifyHosts (Amazon EC2 Query API)
• Edit-EC2Hosts (AWS Tools for Windows PowerShell)
Dedicated Host へのインスタンスのプレイスメントを変更するには
• 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 の記録ステータス - [On] のとき、AWS Config は 1 つ以上の AWS リソースタイプを記
録中です。これには、Dedicated Host やハードウェア専有インスタンスを含めることができます。ラ
イセンスレポートに必要な情報をキャプチャするには、次のフィールドによって Dedicated 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 の設定履歴の任意の時点で、そのホストのソケット数とコア数と共に、そのホストで起
249
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Dedicated Hosts
動されているインスタンスの数を調べることができます。それらのインスタンスについても、その
Amazon Machine Image (AMI) の ID を調べることができます。これらの情報を使用して、ソケット単
位またはコア単位でライセンスが与えられているサーバーバインドソフトウェアのライセンスに関する
レポートを作成できます。
次のいずれかの方法で、設定履歴を表示することができます。
• 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.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[Dedicated Hosts] ページで、[Edit Config Recording] ボタンを選択します。
AWS Config コンソールで、次の手順に従って記録をオンにします。詳細については、Setting up
AWS Config using the Console を参照してください。
AWS Config コンソールの詳細については、Viewing Configuration Details in the AWS Config Console
を参照してください。
コマンドラインまたは API を使用して AWS Config をアクティブ化するには
• AWS CLI の使用については、AWS Config 開発者ガイドの Viewing Configuration Details in the AWS
Config Console を参照してください。
• Amazon EC2 API の使用については、GetResourceConfigHistoryを参照してください。
Dedicated Host のモニタリング
Amazon EC2 は Dedicated Host の状態を常にモニタリングし、更新は Amazon EC2 コンソールで伝え
られます。CLI または API を使用して、Dedicated Host についての情報を取得することもできます。
次の表に、コンソールの [State] に表示される可能性のある値を示します。
250
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのライフサイクル
州/都道府県
説明
利用可能
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 も使用できなくなります。
インスタンスのライフサイクル
Abstract
Amazon EC2 インスタンスのライフサイクルについて、起動から終了まで説明します。
インスタンスを起動した瞬間から終了まで、Amazon EC2 を使用してインスタンスを管理することに
より、インスタンスでホストするアプリケーションまたはサイトを利用するお客様に最高の体験を提供
することができます。
次の図は、インスタンス状態の遷移を示しています。instance store-backed インスタンスは停止および
起動できないことに注意してください。instance store-backed インスタンスの詳細については、「ルー
トデバイスのストレージ (p. 71)」を参照してください。
251
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの作成
インスタンスの作成
インスタンスを起動すると、インスタンスはpending状態に移行します。起動時に指定したインスタン
スタイプによって、インスタンスのホストコンピュータのハードウェアが決定します。起動時に指定さ
れた Amazon マシンイメージ(AMI)を使って、インスタンスを再作成します。インスタンスの準備が
できると、running 状態へ移行します。実行中のインスタンスに接続して、自分の前にあるコンピュー
タと同じように使用することができます。
インスタンスが running 状態に移行するとすぐに、インスタンスの実行時間に応じて(インスタンス
がアイドル状態のままで、接続されていなくても)課金が発生します。
詳細については、「インスタンスの作成 (p. 254)」および「Linux インスタンスへの接続 (p. 266)」「」
を参照してください。
インスタンスの停止と起動(Amazon EBS-Backed
インスタンスのみ)
インスタンスのステータスチェックに失敗するか、インスタンスでアプリケーションが想定通りに動作
しておらず、インスタンスのルートボリュームが Amazon EBS である場合、インスタンスの停止と起
動を行い、問題が解決するか試してみることができます。
インスタンスを停止した場合、インスタンスはstopping状態に移行してから、stopped状態になりま
す。停止後のインスタンスに対して時間単位の使用料金やデータ転送料金が課金されることはありませ
んが、Amazon EBS ボリュームのストレージについては課金されます。インスタンスがstopped状態
の間、インスタンスタイプなど、インスタンスの特定の属性を変更できます。
インスタンスを起動すると、pending状態に移行し、新しいホストコンピュータに移動されます。この
ため、インスタンスの停止と起動を行うと、前のホストコンピュータ上のインスタンスストアボリュー
ム上に存在していたすべてのデータが失われます。
インスタンスが EC2-Classic で実行されている場合、インスタンスは新しいプライベート IP アドレス
を受け取ります。つまり、プライベート IP アドレスに関連付けられていた Elastic IP アドレス(EIP)
は、インスタンスとの関連付けが解除されたということです。インスタンスが EC2-VPC で実行されて
いる場合、プライベート IP アドレスは保持されます。つまり、プライベート IP アドレスまたはネット
ワークインターフェイスに関連付けられていた EIP は、インスタンスとの関連付けが継続されるとい
うことです。
インスタンスをstoppedからrunningに移行するたびに、1 時間分の使用料が請求されます。1 時間以
内に何度も停止から起動へ移行した場合でも、その都度 1 時間分の料金が請求されます。
詳細については、「インスタンスの停止と起動 (p. 278)」を参照してください。
インスタンスの再起動
Amazon EC2 コンソール、Amazon EC2 CLI、および Amazon EC2 API を使って、インスタンスを再
起動できます。インスタンスからオペレーティングシステムの再起動コマンドを実行する代わりに、
Amazon EC2 を使ってインスタンスを再起動することをお勧めします。
インスタンスの再起動はオペレーティングシステムの再起動と同様です。インスタンスは同じホストコ
ンピュータに残り、そのパブリック DNS 名、プライベート IP アドレス、およびその他のデータをイ
ンスタンスストアボリュームに維持します。通常、再起動が完了するまでに数分かかりますが、再起動
に必要な時間は、インスタンスの設定によって異なります。
インスタンスを再起動しても、新しいインスタンスの課金時間は開始されません。
詳細については、「インスタンスの再起動 (p. 282)」を参照してください。
252
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのリタイア
インスタンスのリタイア
インスタンスをホストしている基盤のハードウェアで回復不可能な障害が検出されると、AWS によっ
てインスタンスのリタイヤが予定されます。予定されたリタイヤ日になると、インスタンスは AWS に
よって停止または終了されます。インスタンスのルートデバイスが Amazon EBS ボリュームである場
合、インスタンスは停止されますが、その後いつでも再び起動できます。インスタンスのルートデバイ
スがインスタンスストアボリュームである場合、インスタンスは終了し、再び使用することはできませ
ん。
詳細については、「インスタンスのリタイア (p. 282)」を参照してください。
インスタンスの終了
インスタンスが必要なくなったら、終了することができます。インスタンスのステータスが
shutting-down または terminated に変わったら、そのインスタンスへの課金は停止します。
停止保護が有効な場合、コンソール、CLI、または API を使用してインスタンスを終了できないことに
ご注意ください。
インスタンスの終了後、インスタンスはしばらくの間コンソールに表示されたままですが、エントリは
削除されます。CLI および API を使って、終了したインスタンスを記述することもできます。終了した
インスタンスへの接続や復旧はできません。
Amazon EBS-Backed インスタンスはそれぞれ、InstanceInitiatedShutdownBehavior 属性をサ
ポートしています。この属性は、インスタンス自体からシャットダウンを開始した場合(Linux で
shutdown コマンドを使用した場合など)、インスタンスを停止または終了するかを制御します。デフォ
ルトの動作は、インスタンスの停止です。インスタンスの実行中または停止中に、この属性の設定を変
更できます。
各 Amazon EBS ボリュームは DeleteOnTermination 属性をサポートします。この属性は、アタッ
チされたインスタンスを終了するときに、ボリュームの削除や保持を制御します。デフォルトでは、
ルートデバイスボリュームを削除し、それ以外に EBS ボリュームがあれば保持します。
詳細については、「インスタンスの終了 (p. 285)」を参照してください。
再起動、停止、終了の違い
次の表に、インスタンスの再起動、停止、終了の主な違いをまとめました。
特徴
再起動
停止/起動(Amazon EBSbacked インスタンスの
み)
ホストコン
ピュータ
インスタンスは、同じホス
トコンピュータで保持され
る
インスタンスは新しいホス なし
トコンピュータで実行され
る
253
終了
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
特徴
再起動
停止/起動(Amazon EBSbacked インスタンスの
み)
プライベー 同一のまま保持される
ト IP アドレ
スとパブ
リック IP ア
ドレス
終了
EC2-Classic: インスタンス なし
は新しいプライベート IP
アドレスとパブリック IP
アドレスを取得します
EC2-VPC: インスタンスは
プライベート IP アドレス
を保持します。インスタン
スは、停止/起動の際に変更
されない Elastic IP アドレ
ス(EIP)を持っていない
限り、新しいパブリック IP
アドレスを取得します。
Elastic IP ア EIP はインスタンスとの関
ドレス
連付けが維持される
(EIP)
EC2-Classic: EIP はインス EIP はインスタンスとの関
タンスとの関連付けが解除 連付けが解除される
される
EC2-VPC: EIP はインスタ
ンスとの関連付けが維持さ
れる
インスタン
スストアボ
リューム
データは保持される
データは消去される
データは消去される
ルートデバ
イスボ
リューム
ボリュームは保持される
ボリュームは保持される
ボリュームはデフォルトで
削除される
請求
インスタンスの課金時間は
変更されません。
インスタンスの状態が
stopping に変わるとすぐ
に、そのインスタンスへの
課金が停止されます。イン
スタンスの状態が stopped
から pending に移行する
たびに、新しいインスタン
スの課金時間が開始されま
す。
インスタンスの状態が
shutting-down に変わる
とすぐに、そのインスタン
スへの課金が停止されま
す。
オペレーティングシステムのシャットダウンコマンドによって、instance store-backed インスタンスが
必ず停止されることに注意してください。オペレーティングシステムのシャットダウンコマンドによっ
て Amazon EBS-backed インスタンスを停止または終了するかどうかを制御できます。詳細について
は、「インスタンスによって起動されたシャットダウン動作の変更 (p. 287)」を参照してください。
インスタンスの作成
Abstract
インスタンスを起動します。これは AWS クラウドの仮想サーバーです。
254
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
インスタンスとは AWS クラウドにある仮想サーバーです。Amazon マシンイメージ(AMI)からイン
スタンスを起動します。AMI はインスタンスに対して、オペレーティングシステム、アプリケーション
サーバ-、およびアプリケーションを提供します。
AWS にサインアップすると、AWS 無料利用枠を使って、Amazon EC2 を無料で開始することができ
ます。無料利用枠を利用することも、12 か月無料でマイクロインスタンスを使用することもできます。
無料利用枠に含まれないインスタンスを起動する場合は、そのインスタンスの通常の Amazon EC2 使
用料がかかります。詳細については、Amazon EC2 料金表を参照してください。
次の方法を使用してインスタンスを起動できます。
メソッド
ドキュメント
選択する AMI とともに Amazon EC2 コンソール
を使用する
インスタンスの作成 (p. 255)
既存のインスタンスをテンプレートとして使って テンプレートとして既存のインスタンスを使用し
インスタンスを起動するために Amazon EC2 コ てインスタンスを起動 (p. 262)
ンソールを使用する
作成した Amazon EBS スナップショットととも
に Amazon EC2 コンソールを使用する
バックアップからの Linux インスタンスの起
動 (p. 263)
AWS Marketplace から購入した AMI とともに
Amazon EC2 を使用する
AWS Marketplace インスタンスの起動 (p. 264)
選択する AMI とともに AWS CLI を使用する
Using Amazon EC2 through the AWS CLI
選択した AMI とともに Amazon EC2 CLI を使用
する
Launching an Instance Using the Amazon EC2 CLI
選択する AMI とともに AWS Tools for Windows
PowerShell を使用する
Amazon EC2 from the AWS Tools for Windows
PowerShell
インスタンスを起動した後、インスタンスに接続して使用できます。最初、インスタンスの状態は
pending です。インスタンスの状態が running の場合、インスタンスは起動を開始します。インスタ
ンスに接続するまで、少し時間がかかることがあります。インスタンスは、パブリック DNS 名を受信
します。この名前はインスタンスをインターネットに接続する場合に使用できます。インスタンスはプ
ライベート DNS 名も受信します。同じ Amazon EC2 ネットワーク(EC2-Classic または EC2-VPC)
内の他のインスタンスはこの名前を使って、インスタンスと接続することができます。インスタンスへ
の接続の詳細については、「Linux インスタンスへの接続 (p. 266)」を参照してください。
インスタンスを使い終わったら、必ずインスタンスを終了してください。詳細については、「インスタ
ンスの終了 (p. 285)」を参照してください。
インスタンスの作成
Abstract
Amazon EC2 コンソールを使用して AMI からインスタンスを起動します。
インスタンスを起動する前に、セットアップが終了していることを確認してください。詳細について
は、「Amazon EC2 でのセットアップ (p. 22)」を参照してください。
AWS アカウントでは、アカウントの作成時期と使用リージョンに応じて EC2-Classic プラットフォー
ムと EC2-VPC プラットフォームの両方がサポートされている可能性があります。アカウントでサポー
トされるプラットフォームを調べるには、「サポートされているプラットフォーム (p. 584)」を参照し
てください。アカウントで EC2-Classic がサポートされる場合、どちらのプラットフォームでもインス
255
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
タンスを起動できます。アカウントで EC2-VPC のみサポートされる場合、VPC でのみインスタンス
を起動できます。
Important
AWS 無料利用枠に含まれないインスタンスを起動すると、アイドル状態であっても、インス
タンスの実行中は料金が発生します。
AMI からのインスタンスの起動
インスタンスを起動するときに、Amazon Machine Image(AMI)と呼ばれる設定を選択する必要があ
ります。AMI には、新しいインスタンスの作成に必要な情報が含まれています。たとえば、ある AMI
にはウェブサーバーとして動作するために必要なソフトウェア(Linux、Apache、ウェブサイトなど)
が格納されます。
Tip
インスタンスの起動を高速化するには、大きなリクエストをより小さなバッチに分割します。
たとえば、1 つの起動リクエストに 500 インスタンスが含まれている場合は、それを 5 つの起
動リクエスト (各 100 インスタンス) に分割します。
インスタンスを起動するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
画面の上のナビゲーションバーで、現在のリージョンが表示されます。インスタンスのリージョン
を選択します。この選択は、リージョン間で共有できるのが一部の Amazon EC2 リソースのみで
あるため、重要です。ニーズに合ったリージョンを選択してください。詳細については、「リソー
スの場所 (p. 766)」を参照してください。
3.
4.
Amazon EC2 コンソールダッシュボードで、[Launch Instance] を選択します。
[Choose an Amazon Machine Image (AMI)] ページで、次のように AMI を選択します。
256
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
a.
左ペインで、使用する AMI のタイプを選択します。
クイックスタート
すぐに作業を開始できるように、一般的な AMI を選択します。無料利用枠の対象となる
AMI を確実に選択するには、左ペインで [Free tier only] を選択します(これらの AMI は
[Free tier eligible] と表示されていることに注意してください)。
マイ AMI
お客様が所有しているプライベート AMI、またはお客様が共有しているプライベート
AMI。
AWS Marketplace
AMI も含めて、AWS で実行するソフトウェアを購入できるオンラインストア。AWS
Marketplace からのインスタンスの起動の詳細については、AWS Marketplace インスタン
スの起動 (p. 264) を参照してください。
コミュニティ AMI
AWS コミュニティのメンバーが、メンバー以外でも使用できるようにした AMI。オペレー
ティングシステムを条件として AMI のリストをフィルタリングするには、[Operating
system] の該当するチェックボックスをオンにします。アーキテクチャおよびルートデバ
イスタイプを条件としてフィルタリングすることもできます。
b.
c.
d.
5.
各 AMI の [Root device type] を確認します。必要なタイプはどの AMI かに注意してください。
タイプは ebs(Amazon EBS でバックアップ)または instance-store(インスタンススト
アでバックアップ)です。詳細については、「ルートデバイスのストレージ (p. 71)」を参照
してください。
各 AMI の [Virtualization type] を確認します。必要なタイプはどの AMI かに注意してくださ
い。タイプは hvm または paravirtual です。たとえば、一部のインスタンスタイプには
HVM が必要です。詳細については、「Linux AMI 仮想化タイプ (p. 74)」を参照してください。
ニーズを満たす AMI を選択し、[Select] を選択します。
[Choose an Instance Type] ページで、起動するインスタンスのハードウェア設定とサイズを選択
します。インスタンスタイプが大きくなると、CPU およびメモリも増えます。詳細については、
「インスタンスタイプ (p. 133)」を参照してください。
無料利用枠の対象とするには、[t2.micro] インスタンスタイプを選択します。詳細については、「T2
インスタンス (p. 136)」を参照してください。
デフォルトでは、ウィザードには現行世代のインスタンスタイプが表示され、お客様が選択した
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 グループを作成し
257
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
ます。Auto Scaling によって、指定どおりにグループのインスタンス数がスケーリング
されます。詳細については、Auto Scaling 開発者ガイド を参照してください。
• [Purchasing option]:[Request Spot Instances] を選択してスポットインスタンスを起動します。
詳細については、「スポットインスタンス (p. 193)」を参照してください。
• アカウントは、EC2-Classic プラットフォームと EC2-VPC プラットフォームをサポートするこ
とも、EC2-VPC のみをサポートすることもあります。アカウントでサポートされるプラット
フォームを調べるには、「サポートされているプラットフォーム (p. 584)」を参照してください。
アカウントで EC2-VPC のみをサポートする場合は、デフォルトの VPC またはデフォルト以外
の VPC でインスタンスを起動できます。それ以外の場合は、EC2-Classic またはデフォルト以
外の VPC でインスタンスを起動できます。
Note
T2 インスタンスは VPC で起動する必要があります。VPC がない場合は、ウィザードに
自動作成させることもできます。
EC2-Classic で起動するには
• [Network]: [Launch into EC2-Classic] を選択します。
• [アベイラビリティーゾーン]: 使用するアベイラビリティーゾーンを選択します。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]: インスタンスがパブリック IP アドレスを受け付けるかどうかを指定し
ます。デフォルトで、デフォルトのサブネットにあるインスタンスはパブリック IP アドレス
を受け付け、デフォルト以外のサブネットにあるインスタンスは受け付けません。[Enable] ま
たは [Disable] を選択すると、これがサブネットのデフォルト設定より優先されます。詳細に
ついては、「パブリック IP アドレスと外部 DNS ホスト名 (p. 608)」を参照してください。
• [IAM Role]: 該当する場合は、インスタンスに関連付ける AWS Identity and Access Management
(IAM)ロールを選択します。詳細については、「Amazon EC2 の IAM ロール (p. 570)」を参照
してください。
• [Shutdown behavior]: シャットダウン時にインスタンスを停止するか終了するかを選択します。
詳細については、「インスタンスによって起動されたシャットダウン動作の変更 (p. 287)」を参
照してください。
• [Enable termination protection]: 偶発的な終了を防ぐには、このチェックボックスをオンにしま
す。詳細については、「インスタンスの終了保護の有効化 (p. 286)」を参照してください。
• [Monitoring]: Amazon CloudWatch を使用したインスタンスの詳細モニタリングを有効にするに
は、このチェックボックスをオンにします。追加の変更が適用されます。詳細については、
「CloudWatch によるインスタンスのモニタリング (p. 425)」を参照してください。
• [EBS-Optimized instance]: Amazon EBS 最適化インスタンスは、最適化された設定スタックを
使用し、Amazon EBS I/O に対して追加の専用の容量を提供します。インスタンスタイプがこの
機能をサポートしている場合は、このチェックボックスをオンにして機能を有効にします。追加
の変更が適用されます。詳細については、「Amazon EBS 最適化インスタンス (p. 716)」を参照
してください。
258
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
• [Tenancy]: VPC でインスタンスを起動する場合、独立した専用のハードウェア ([Dedicated]) ま
たは Dedicated Host ([Dedicated host]) を選択できます。追加料金が適用される場合があります。
詳細については、Amazon VPC ユーザーガイドの「Dedicated Instances」、および「Dedicated
Hosts (p. 239)」を参照してください。
• [Network interfaces]: インスタンスを VPC に起動し、サブネットに対して [No Preference] を選
択しなかった場合、ウィザードで最大 2 つのネットワークインターフェイスを指定できます。選
択したインターフェイスに対して複数の IP アドレスを割り当てるには、[Add IP] を選択します。
ネットワークインターフェイスの詳細については、Elastic Network Interface(ENI) (p. 626) を
参照してください。上記の [Public IP] チェックボックスをオンにした場合、デバイスインデック
スが eth0 である新しいネットワークインターフェイスに、1 つのみパブリック IP アドレスを割
り当てることができます。詳細については、「パブリック IP アドレスの割り当て (p. 612)」を参
照してください。
• [Kernel ID]: (準仮想化(PV)AMI でのみ有効)特定のカーネルを使用する場合を除き、[Use
default] を選択します。
• [RAM disk ID]: (準仮想化(PV)AMI でのみ有効)特定の RAM ディスクを使用する場合を除
き、[Use default] を選択します。カーネルを選択した場合は、サポートするドライバとともに特
定の RAM ディスクを選択しなければならない可能性があります。
• [Placement group]: プレイスメントグループは、クラスターインスタンスの論理グループです。
既存のプレイスメントグループを選択するか、新しいグループを作成します。このオプション
は、プレイスメントグループをサポートするインスタンスタイプを選択した場合にのみ使用でき
ます。詳細については、「プレイスメントグループ (p. 641)」を参照してください。
• [User data]: 起動時にインスタンスを設定するユーザーデータ、または設定スクリプトを実行す
るユーザーデータを指定できます。ファイルを添付するには、[As file] オプションを選択し、添
付するファイルを参照します。
7.
[Add Storage] ページで、AMI によって指定されるボリューム(ルートデバイスボリュームなど)
以外に、インスタンスにアタッチするボリュームを指定します。以下のオプションを変更できま
す。終了したら、[Next: Tag Instance] を選択します。
• [Type]: インスタンスと関連付けるインスタンスストアまたは Amazon EBS ボリュームを選択し
ます。一覧で利用できるボリュームの種類は、選択したインスタンスタイプに応じて異なりま
す。詳細については、「Amazon EC2 インスタンスストア (p. 735)」および「Amazon EBS ボ
リューム (p. 665)」を参照してください。
• [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
この時点でルートボリューム(またはスナップショットから作成したその他のボリュー
ム)のサイズを増やした場合は、追加のスペースを使用するためにそのボリュームの
259
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
ファイルシステムを拡張する必要があります。インスタンスの起動後、ファイルシステ
ムを拡張する詳細については、Linux で EBS ボリュームのストレージ領域を拡張す
る (p. 694) を参照してください。
• [Volume Type]: Amazon EBS ボリュームの場合、汎用 SSD、Provisioned IOPS SSD、または マ
グネティック ボリュームを選択します。詳細については、「Amazon EBS ボリュームの種
類 (p. 667)」を参照してください。
Note
マグネティック ブートボリュームを選択した場合、ウィザードを完了したときに、汎用
SSD ボリュームを、このインスタンスおよび将来のコンソール起動時のデフォルトブー
トボリュームにするようメッセージが表示されます(このユーザー設定はブラウザセッ
ションの間、保持され、Provisioned IOPS SSD ブートボリュームを持つ AMI には影響
しません)。汎用 SSD ボリュームをデフォルトにすることをお勧めします。起動時間
が大幅に短縮でき、ほとんどの作業負荷に最適なボリュームタイプであるためです。詳
細については、「Amazon EBS ボリュームの種類 (p. 667)」を参照してください。
Note
2012 年より前に作成された一部の AWS アカウントでは、Provisioned IOPS (io1) ボ
リュームをサポートしない us-east-1、us-west-1、または ap-northeast-1 のアベイラビ
リティーゾーンにアクセスできることがあります。これらのリージョンの 1 つに
Provisioned IOPS ボリュームを作成できない場合(またはブロックデバイスマッピング
に io1 ボリュームのあるインスタンスを起動できない場合)は、リージョンの別のアベ
イラビリティーゾーンを試します。アベイラビリティーゾーンが io1 ボリュームをサ
ポートするかどうかは、4 GiB の io1 ボリュームをそのゾーンに作成することで確認で
きます。
• [IOPS]: Provisioned IOPS SSD ボリュームタイプを選択した場合は、ボリュームがサポートでき
る I/O オペレーション/秒(IOPS)を入力できます。
• [Delete on Termination]: Amazon EBS ボリュームについては、インスタンスが終了したときに
ボリュームを削除するには、このチェックボックスをオンにします。詳細については、「インス
タンスの終了で Amazon EBS ボリュームを保持する (p. 288)」を参照してください。
• [Encrypted]: このチェックボックスをオンにすると、新しい Amazon EBS ボリュームが暗号化さ
れます。暗号化されたスナップショットから復元された Amazon EBS ボリュームは、自動的に
暗号化されます。暗号化されたボリュームをアタッチできるのは、サポートされるインスタンス
タイプ (p. 720)に対してのみです。
8.
9.
[Tag Instance] ページで、キーと値の組み合わせを指定することによって、インスタンスのタ
グ (p. 774)を指定します。[Create Tag] を選択して、複数のタグをリソースに追加します。完了した
ら、[Next: Configure Security Group] を選択します。
[Configure Security Group] ページで、セキュリティグループを使用してインスタンスのファイア
ウォールルールを定義しますこのルールでは、どの着信ネットワークトラフィックをインスタンス
に配信するかを指定します。他のトラフィックはすべて無視されます。(セキュリティグループの
詳細については、「Linux インスタンスの Amazon EC2 セキュリティグループ (p. 514)」を参照し
てください)。以下のようにセキュリティグループを選択または作成して、[Review and Launch]
を選択します。
既存のセキュリティグループを選択するには:
1.
[Select an existing security group] を選択します。セキュリティグループが表示されます
(EC2-Classic で起動した場合、これは EC2-Classic のセキュリティグループです。VPC で
起動した場合、これはその VPC のセキュリティグループです)。
260
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
2.
3.
リストからセキュリティグループを選択します。
(オプション)既存のセキュリティグループのルールを編集することはできません。しかし、
[Copy to new] をクリックして、新しいグループにルールをコピーすることはできます。その
後、次の手順で説明しているように、ルールを追加できます。
新しいセキュリティグループを作成するには:
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. 419)」を参照してください。
13. インスタンスの状態が「running」にならずに、すぐに「terminated」になってしまう場合は、
インスタンスが起動しなかった理由について確認できます。詳細については、「インスタンスがす
ぐに終了する場合の対処方法 (p. 797)」を参照してください。
261
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
テンプレートとして既存のインスタンスを使用してインスタン
スを起動
Abstract
Amazon EC2 コンソールの [Launch More Like This] 機能を使用して、既存のインスタンスに基づいたインスタン
スを起動します。
Amazon EC2 コンソールには、現在のインスタンスを他のインスタンスを起動するテンプレートとし
て使用できるようにする、[Launch More Like This] ウィザードオプションが用意されています。このオ
プションでは、Amazon EC2 起動ウィザードで、選択されたインスタンスから自動的に特定の設定が
入力されます。
Note
[Launch More Like This] ウィザードオプションでは、選択されたインスタンスは複製されませ
ん。一部の設定が複製されるのみです。インスタンスのコピーを作成するには、最初にインス
タンスから AMI を作成して、AMI からさらに多くのインスタンスを起動します。
次の設定詳細は、選択されたインスタンスから起動ウィザードにコピーされます。
•
•
•
•
•
•
•
•
•
•
•
AMI ID
インスタンスタイプ
アベイラビリティーゾーン、または選択されたインスタンスがある VPC とサブネット
パブリック IP アドレス。選択されたインスタンスの IP アドレスが現在パブリック IP アドレスの場
合、選択されたインスタンスのパブリック IP アドレスのデフォルト設定に関係なく、新しいインス
タンスはパブリック IP アドレスを受け取ります。パブリック IP アドレスについては、「パブリック
IP アドレスと外部 DNS ホスト名 (p. 608)」を参照してください。
プレイスメントグループ(該当する場合)
該当する場合は、インスタンスに関連付けられた IAM ロール
シャットダウン動作の設定(停止または終了)
終了保護設定(true または false)
CloudWatch モニタリング(有効または無効)
Amazon EBS 最適化設定(true または false)
VPC(共有または専用)に起動する場合は、テナンシー設定
• 該当する場合は、カーネル ID および RAM ディスク ID
• ユーザーデータ(指定された場合)
• 該当する場合は、インスタンスに関連付けられたタグ
• インスタンスに関連付けられたセキュリティグループ
次の設定の詳細は選択されたインスタンスからコピーされず、代わりにウィザードがデフォルトの設定
または動作を適用します。
• (VPC のみ)ネットワークインターフェイスの数: デフォルトでは、1 つのネットワークインター
フェイス、つまりプライマリネットワークインターフェイス (eth0) です。
• ストレージ: デフォルトのストレージ設定は AMI およびインスタンスタイプによって決まります。
現在のインスタンスをテンプレートとして使用するには
1.
[インスタンス] ページで、使用するインスタンスを選択します。
2.
[Actions] を選択し、[Launch More Like This] を選択します。
262
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
3.
[Review Instance Launch] ページで起動ウィザードが開きます。インスタンスの詳細をチェック
し、適切な [Edit] リンクをクリックして、必要な変更を行うことができます。
準備ができたら、[Launch] を選択してキーペアを選択し、インスタンスを起動します。
バックアップからの Linux インスタンスの起動
Abstract
Amazon EBS スナップショットからインスタンスを起動します。
Amazon EBS-backed Linux インスタンスを使用すると、スナップショットを作成することで、インス
タンスのルートデバイスボリュームをバックアップできます。インスタンスのルートデバイスボリュー
ムのスナップショットがある場合、そのインスタンスを終了して、後でスナップショットから新しいイ
ンスタンスを起動できます。インスタンスの起動元のオリジナルの AMI がないけれども、同じイメー
ジを使ってインスタンスを起動する必要がある場合に、これは便利です。
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. 93)」または「Instance Store-Backed Linux AMI の作
成 (p. 97)」を参照してください。
コンソールを使用してインスタンスのルートボリュームから AMI を作成するには、次の手順に従いま
す。必要に応じて、register-image(AWS CLI)または ec2-register(Amazon EC2 CLI)コマンドを代
わりに使用することもできます。
コンソールを使用してルートボリュームから AMI を作成するには
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Elastic Block Store] の [Snapshots] を選択します。
[Create Snapshot] を選択します。
4.
[Volumes] フィールドで、ルートボリュームの名前または ID の入力を開始し、オプションのリス
トから選択します。
先ほど作成したスナップショットを選択し、[Actions] リストから [Create Image] を選択します。
[Image from EBS Snapshot] ダイアログボックスで、AMI を作成するためのフィールドに入力し、
[Create] を選択します。親インスタンスを再作成する場合は、親インスタンスと同じオプションを
選択します。
5.
6.
• Architecture: 32 ビットの場合は [i386] を、64 ビットの場合は [x86_64] を選択します。
• Root device name: ルートボリュームの適切な名前を入力します。詳細については、「Linux イ
ンスタンスでのデバイスの名前付け (p. 750)」を参照してください。
263
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
• Virtualization type: この AMI から起動されるインスタンスで準仮想化 (PV) またはハードウェア
仮想マシン (HVM) のいずれの仮想化を使用するかを選択します。詳細については、「Linux AMI
仮想化タイプ (p. 74)」を参照してください。
• (PV 仮想化タイプのみ)Kernel ID および RAM disk ID: リストから AKI と ARI を選択します。
デフォルトの AKI を選択するか、AKI を選択しない場合、この AMI を使用してインスタンスを
起動するたびに AKI を指定するように要求されます。また、デフォルトの AKI にインスタンス
との互換性がない場合、インスタンスのヘルスチェックが失敗する可能性があります。
• (オプション)Block Device Mappings: ボリュームを追加するか、AMI のルートボリュームのデ
フォルト容量を増やします。ボリューム拡大のためインスタンスでファイルシステムのサイズを
変更する方法の詳細については、「Linux ファイルシステムを拡張する (p. 696)」を参照してくだ
さい。
7.
ナビゲーションペインで [AMIs] を選択します。
8.
作成した AMI を選択し、[Launch] を選択します。ウィザードに従って、インスタンスを起動しま
す。ウィザードの各ステップの設定方法については、インスタンスの作成 (p. 255) を参照してくだ
さい。
AWS Marketplace インスタンスの起動
Abstract
AWS Marketplace 製品を受信登録し、Amazon EC2 起動ウィザードを使用して AMI からインスタンスを起動しま
す。
AWS Marketplace 製品を受信登録し、Amazon EC2 起動ウィザードを使用して、この製品の AMI から
インスタンスを起動できます。有料の AMI の詳細については、有料 AMI (p. 89) を参照してください。
起動後に受信登録をキャンセルするには、初めに受信登録から、実行されているすべてのインスタンス
を終了する必要があります。詳細については、「AWS Marketplace サブスクリプションの管理 (p. 92)」
を参照してください。
起動ウィザードを使用して AWS Marketplace からインスタンスを起動するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
Amazon EC2 ダッシュボードで、[Launch Instance] をクリックします。
[Choose an Amazon Machine Image (AMI)] ページで、左の [AWS Marketplace] カテゴリを選択し
ます。カテゴリを参照するか、検索機能を使用して適切な AMI を見つけます。[Search] をクリッ
クして製品を選択します。
ダイアログに、選択した製品の概要が表示されます。価格情報と、ベンダーが提供したその他の情
報を表示できます。準備が完了したら、[Continue] をクリックします。
Note
AMI でインスタンスを起動するまで、製品の使用料は発生しません。ウィザードの次の
ページでは、インスタンスタイプの選択が求められるため、サポートされているインスタ
ンスタイプの料金をメモしておいてください。
5.
[Choose an Instance Type] ページで、起動するインスタンスのハードウェア設定とサイズを選択
します。終了したら、[Next: Configure Instance Details] をクリックします。
6.
ウィザードの次のページでは、インスタンスの設定、ストレージの追加、およびタグの追加を行う
ことができます。設定できるさまざまなオプションの詳細については、インスタンスの作成 (p. 255)
を参照してください。[Configure Security Group] ページが表示されるまで、[Next] をクリックしま
す。
264
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
作成する
製品に関するベンダーの仕様にしたがって、新しいセキュリティグループが作成されます。セキュ
リティグループには、Linux の SSH(ポート 22)または Windows の RDP(ポート 3389)ですべ
ての IP アドレス(0.0.0.0/0)を許可するルールが含まれる場合があります。これらのルールを
調整して、特定のアドレスまたはアドレスの範囲のみが、これらのポート経由でインスタンスにア
クセスできるようにすることをお勧めします。
7.
8.
準備ができたら、[Review and Launch] をクリックします。
[Review Instance Launch] ページで、インスタンスを起動しようとしている AMI の詳細と、ウィ
ザードでセットアップするその他の設定の詳細をチェックします。準備ができたら、[Launch] をク
リックしてキーペアを選択または作成し、インスタンスを起動します。
受信登録した製品によっては、インスタンスの起動には数分以上かかります。インスタンスが起動
する前に、まず製品に登録されます。クレジットカードの詳細に問題がある場合は、アカウントの
詳細を更新するように求められます。起動確認のページが表示されたら、[View Instances] をクリッ
クして [インスタンス] ページに移動します。
Note
インスタンスが実行されている限り、アイドル状態であっても、受信登録費用が発生しま
す。インスタンスが停止している場合でも、ストレージに対して課金されることがありま
す。
9.
インスタンスの状態が [running] の場合、そのインスタンスに接続することができます。そのため
には、一覧でインスタンスを選択し、[Connect] をクリックします。ダイアログの指示にしたがい
ます。インスタンスへの接続の詳細については、「Linux インスタンスへの接続 (p. 266)」を参照し
てください。
Important
インスタンスにログインするには、特定のユーザー名を使用しなければならない場合があ
るため、ベンダーの使用手順を慎重に確認してください。受信登録の詳細へのアクセスに
ついては、AWS Marketplace サブスクリプションの管理 (p. 92) を参照してください。
API と CLI を使用した AWS Marketplace AMI インスタンスの起動
API またはコマンドラインツールを使用して、AWS Marketplace 製品からインスタンスを起動するに
は、まず製品に登録していることを確認します。次の方法を使用して、製品の AMI ID でインスタンス
を起動できます。
メソッド
ドキュメント
AWS CLI
run-instances コマンドを使用するか、詳細について「インスタンス
の起動」を参照してください。
Amazon EC2 CLI
ec2-run-instances コマンドを使用するか、詳細についてAmazon EC2
CLI を使用したインスタンスの起動を参照してください。
AWS Tools for Windows
PowerShell
New-EC2Instance コマンドを使用するか、詳細についてWindows
PowerShell を使用した Amazon EC2 インスタンスの起動を参照して
ください。
クエリ API
RunInstancesリクエストを使用します。
265
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
Linux インスタンスへの接続
Abstract
インスタンスに接続し、ローカルコンピュータとの間でデータを転送します。
起動した Linux インスタンスに接続する方法と、ローカルコンピュータとインスタンスの間でファイル
を転送する方法について説明します。
Windows インスタンスに接続する必要がある場合は、『Microsoft Windows インスタンスの Amazon
EC2 ユーザーガイド』の「Windows インスタンスへの接続」を参照してください。
コンピュータ
トピック
Linux
SSH を使用した Linux インスタンスへの接続 (p. 266)
Windows
PuTTY を使用した Windows から Linux インスタンスへの接続 (p. 271)
すべて
MindTerm を使用した Linux インスタンスへの接続 (p. 276)
インスタンスを接続した後で、チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストー
ル (p. 37) や チュートリアル: Amazon Linux を使った WordPress ブログのホスティング (p. 46) など、
いずれかのチュートリアルを試すことができます。
SSH を使用した Linux インスタンスへの接続
Abstract
SSH クライアントを使用して Linux インスタンスに接続します。
インスタンスを起動したら、これに接続し、普通のコンピュータと同じように使用できます。
Note
インスタンスを起動してから接続できるようになるまでには、数分かかる場合があります。イ
ンスタンスのステータスチェックが正常に終了したことを確認してください。この情報は、
[Instances] ページの [Status Checks] 列で確認できます。
次の手順では、SSH クライアントを使って、インスタンスに接続する方法について説明します。イン
スタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照し
てください。
前提条件
Linux インスタンスに接続する前に、以下の前提条件を満たしていることを確認してください。
• SSH クライアントのインストール
ほとんどの場合、Linux コンピュータにはデフォルトで SSH クライアントがあります。SSH クライ
アントがあるかどうかを確認するには、コマンドラインで ssh と入力します。使用しているコンピュー
タでコマンドが認識されない場合は、OpenSSH プロジェクトから、SSH ツールの完全なスイートの
無料実装が提供されています。詳細については、http://www.openssh.org を参照してください。
• Amazon EC2 CLI ツールをインストールする
(オプション)サードパーティのパブリック AMI を使用する場合は、コマンドラインツールを使用
してフィンガープリントを確認できます。AWS CLI のインストールの詳細については、『AWS
Command Line Interface ユーザーガイド』の「準備作業」を参照してください。Amazon EC2 CLI
266
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
のインストール方法の詳細については、『Amazon EC2 コマンドラインリファレンス』の「ツール
を設定する」を参照してください。
• インスタンスの ID を取得する
Amazon EC2 コンソールを使用して、インスタンスの ID を取得できます([Instance ID] 列を確認し
ます)。必要に応じて、describe-instances(AWS CLI)または ec2-describe-instances(Amazon
EC2 CLI)コマンドを使用することもできます。
• インスタンスのパブリック DNS 名を取得する
Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます([Public DNS]
列を確認します。この列が非表示の場合は、[Show/Hide] アイコンをクリックして [Public DNS] を選
択します)。必要に応じて、describe-instances(AWS CLI)または ec2-describe-instances(Amazon
EC2 CLI)コマンドを使用することもできます。
• プライベートキーを見つける
インスタンスの起動時に指定したキーペアの .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
• ec2-get-console-output(Amazon EC2 CLI)
ec2-get-console-output instance_id
Note
インスタンスが pending 状態ではなく running 状態であることを確認します。SSH HOST
KEY FINGERPRINTS セクションは、インスタンスの最初の起動後にのみ使用できます。
267
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
2.
3.
コマンドラインシェルで、インスタンスを起動した時に作成したプライベートキーファイルの場所
にディレクトリを変更します。
chmod コマンドを使って、秘密キーファイルが公開されていないことを確認します。たとえば、
秘密キーファイルが my-key-pair.pem という名前の場合、次のコマンドを使用します。
chmod 400 /path/my-key-pair.pem
4.
ssh コマンドを使って、インスタンスに接続します。秘密キー(.pem)ファイルと
user_name@public_dns_name を指定します。Amazon Linux の場合は、デフォルトのユーザー名
は ec2-user です。RHEL5 の場合は、ユーザー名は root または ec2-user のどちらかです。
Ubuntu の場合は、ユーザー名は ubuntu です。Fedora の場合は、ユーザー名は fedora または
ec2-user のどちらかです。SUSE Linux の場合は、ユーザー名は root または ec2-user のどち
らかです。それ以外の場合で、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.
6.
(オプション)セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガー
プリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中間者
(MITM)」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでください。
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 ツールの完全なスイートの
無料実装が提供されており、これに SCP クライアントが含まれます。詳細については、
http://www.openssh.org を参照してください。
• インスタンスの ID を取得する
268
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
Amazon EC2 コンソールを使用して、インスタンスの ID を取得できます([Instance ID] 列を確認し
ます)。必要に応じて、describe-instances(AWS CLI)または ec2-describe-instances(Amazon
EC2 CLI)コマンドを使用することもできます。
• インスタンスのパブリック DNS 名を取得する
Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます([Public DNS]
列を確認します。この列が非表示の場合は、[Show/Hide] アイコンをクリックして [Public DNS] を選
択します)。必要に応じて、describe-instances(AWS CLI)または ec2-describe-instances(Amazon
EC2 CLI)コマンドを使用することもできます。
• プライベートキーを見つける
インスタンスの起動時に指定したキーペアの .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
• ec2-get-console-output(Amazon EC2 CLI)
ec2-get-console-output instance_id
Note
SSH HOST KEY FINGERPRINTS セクションは、インスタンスの最初の起動後にのみ使用
できます。
2.
3.
コマンドラインシェルで、インスタンスを起動した時に指定した秘密キーファイルの場所にディレ
クトリを変更します。
chmod コマンドを使って、秘密キーファイルが公開されていないことを確認します。たとえば、
秘密キーファイルが my-key-pair.pem という名前の場合、次のコマンドを使用します。
269
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
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 SampleFile.txt [email protected]:~
Tip
Amazon Linux の場合は、デフォルトのユーザー名は ec2-user です。RHEL5 の場合は、
ユーザー名は root または ec2-user のどちらかです。Ubuntu の場合は、ユーザー名は
ubuntu です。Fedora の場合は、ユーザー名は fedora または ec2-user のどちらかで
す。SUSE Linux の場合は、ユーザー名は root または ec2-user のどちらかです。それ
以外の場合で、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.
6.
(オプション)セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガー
プリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中間者
(MITM)」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでください。
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%
20
0.0KB/s
00:00
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
270
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
逆の方向(Amazon EC2 インスタンスからローカルコンピュータに)にファイルを転送する場合は、
ホストパラメータの順番を逆にするだけです。たとえば、SampleFile.txt ファイルを EC2 インスタンス
からローカルコンピュータのホームディレクトリに SampleFile2.txt として転送するには、ローカルコ
ンピュータで次のコマンドを実行します。
scp -i /path/my-key-pair.pem [email protected]
aws.com:~/SampleFile.txt ~/SampleFile2.txt
PuTTY を使用した Windows から Linux インスタンスへの接続
Abstract
Windows 向けの無料の SSH クライアントである PuTTY を使用して、Linux/ インスタンスに接続します。
インスタンスを起動したら、これに接続し、普通のコンピュータと同じように使用できます。
Note
インスタンスを起動してから接続できるようになるまでには、数分かかる場合があります。イ
ンスタンスのステータスチェックが正常に終了したことを確認してください。この情報は、
[Instances] ページの [Status Checks] 列で確認できます。
次の手順では、Windows 用の無料の SSH クライアントである PuTTY を使用して、インスタンスに接
続する方法について説明します。インスタンスの接続でエラーが発生した場合は、「Troubleshooting
Connecting to Your Instance」を参照してください。
前提条件
PuTTY を使用して Linux インスタンスに接続する前に、以下の前提条件を満たしていることを確認し
てください。
• PuTTY のインストール
PuTTY のダウンロードページから、PuTTY をダウンロードしてインストールします。必ずスイート
全部をインストールしてください。
• インスタンスの ID を取得する
Amazon EC2 コンソールを使用して、インスタンスの ID を取得できます([Instance ID] 列を確認し
ます)。必要に応じて、describe-instances(AWS CLI)または ec2-describe-instances(Amazon
EC2 CLI)コマンドを使用することもできます。
• インスタンスのパブリック DNS 名を取得する
Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます([Public DNS]
列を確認します。この列が非表示の場合は、[Show/Hide] アイコンをクリックして [Public DNS] を選
択します)。必要に応じて、describe-instances(AWS CLI)または ec2-describe-instances(Amazon
EC2 CLI)コマンドを使用することもできます。
• プライベートキーを見つける
インスタンスの起動時に指定したキーペアの .pem ファイルの完全修飾パスが必要です。
• IP アドレスからインスタンスへのインバウンド SSH トラフィックを有効にする
インスタンスに関連付けられているセキュリティグループで、IP アドレスからの受信 SSH トラフィッ
クが許可されることを確認します。詳細については、「インスタンスへのネットワークアクセスの許
可」を参照してください。
Important
デフォルトのセキュリティグループのデフォルトでは、受信 SSH トラフィックは許可され
ません。
271
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
PuTTYgen を使用した秘密キーの変換
PuTTY は、Amazon EC2 によって生成されるプライベートキー形式(.pem)をネイティブにサポート
していません。PuTTY には、キーを必要な PuTTY 形式(.ppk)に変換できる PuTTYgen と呼ばれる
ツールが含まれています。PuTTY を使用してインスタンスへの接続を試みる前に、秘密キーをこの形
式(.ppk)に変換する必要があります。
プライベートキーの変換方法
1.
2.
PuTTYgen を開始します(例:[スタート] メニューで [すべてのプログラム] > [PuTTY] > [PuTTYgen]
をクリック)。
[Type of key to generate] の下で、[SSH-2 RSA] を選択します。
3.
[Load] をクリックします。デフォルトでは、PuTTYgen には拡張子 .ppk を持つファイルだけが表
示されます。.pem ファイルの場所を特定するには、すべてのタイプのファイルを表示するオプショ
ンを選択します。
4.
インスタンスの起動時に指定したキーペアの .pem ファイルを選択し、[Open] をクリックします。
[OK] をクリックして、確認ダイアログボックスを閉じます。
[Save private key] をクリックして、PuTTY が使用できる形式でキーを保存します。PuTTYgen
に、パスフレーズなしでキーを保存することに関する警告が表示されます。[Yes] をクリックしま
す。
5.
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
272
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
セクションを見つけて、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
• ec2-get-console-output(Amazon EC2 CLI)
ec2-get-console-output instance_id
Note
SSH HOST KEY FINGERPRINTS セクションは、インスタンスの最初の起動後にのみ使用
できます。
2.
3.
PuTTY を開始します([スタート] メニューで [すべてのプログラム] > [PuTTY] > [PuTTY] をクリッ
クします)。
[Category] ペインで [Session] を選択し、次のフィールドに入力します。
a.
[Host Name] フィールドで、user_name@public_dns_name を入力します。AMI に対して、
必ず適切なユーザー名を指定してください。以下に例を示します。
• Amazon Linux AMI の場合は、ユーザー名は ec2-user です。
• RHEL5 AMI の場合は、ユーザー名は root または ec2-user のどちらかです。
• Ubuntu AMI の場合は、ユーザー名は ubuntu です。
• Fedora AMI の場合は、ユーザー名は fedora または ec2-user のどちらかです。
• SUSE Linux の場合は、ユーザー名は root または ec2-user のどちらかです。
• それ以外の場合で、ec2-user および root が機能しない場合は、AMI プロバイダーに確認
してください。
b.
c.
[Connection type] で [SSH] を選択します。
[Port] が 22 であることを確認します。
273
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
4.
[Category] ペインで、[Connection]、[SSH] の順に展開し、[Auth] を選択します。次のように入力
します。
a.
b.
[Browse] をクリックします。
キーペア用に生成した .ppk ファイルを選択し、[Open] をクリックします。
c.
(オプション)後でこのセッションを再度開始する場合、将来使用できるようにセッション情
報を保存できます。[Category] ツリーで [Session] を選択し、[Saved Sessions] にセッション
の名前を入力して、[Save] をクリックします。
[Open] をクリックして、PuTTY セッションを開始します。
d.
5.
このインスタンスに接続するのが初めての場合は、接続先のホストを信頼するかどうかを尋ねるセ
キュリティアラートダイアログボックスが表示されます。
6.
(オプション)セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガー
プリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中間者
(MITM)」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでください。
7.
[Yes] をクリックします。ウィンドウが開き、インスタンスに接続した状態になります。
274
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
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. 275)」を参照してください。
PSCP を使用するには、PuTTYgen を使用した秘密キーの変換 (p. 272) で生成したプライベートキーが
必要です。また、Linux インスタンスのパブリック DNS アドレスも必要です。
次の例では、ファイル Sample_file.txt を Windows コンピュータから Linux インスタンス上の
/usr/local ディレクトリに転送します。
C:\> pscp -i C:\Keys\my-key-pair.ppk C:\Sample_file.txt user_name@pub
lic_dns:/usr/local/Sample_file.txt
WinSCP を使用した Linux インスタンスへのファイルの転送
WinSCP は Windows 用の GUI ベースのファイルマネージャで、SFTP、SCP、FTP、および FTPS プ
ロトコルを使って、ファイルをリモートコンピュータにアップロードおよび転送することができます。
WinSCP を使用すると、Windows マシンから Linux インスタンスにファイルをドラッグアンドドロッ
プしたり、2 つのシステム間でディレクトリ構造全体を同期させることができます。
WinSCP を使用するには、PuTTYgen を使用した秘密キーの変換 (p. 272) で生成した秘密キーが必要で
す。また、Linux インスタンスのパブリック DNS アドレスも必要です。
1.
2.
3.
http://winscp.net/eng/download.php から WinSCP をダウンロードしてインストールします。ほと
んどの場合、デフォルトのインストールオプションでかまいません。
WinSCP を起動します。
[WinSCP login] 画面で、インスタンスのパブリック DNS アドレスを [Host name] に入力します。
4.
[User name] については、AMI のデフォルトユーザー名を入力します。Amazon Linux AMI の場合、
ユーザー名は ec2-user です。Red Hat AMI の場合、ユーザー名は root で、 AMI の場合、ユー
ザー名は ubuntuubuntu です。
5.
インスタンスのプライベートキーを指定します。[Private key] に対して、秘密キーのパスを入力す
るか、[...] ボタンをクリックして、ファイルをブラウズします。WinSCP の新しいバージョンで
は、[Advanced] をクリックして高度なサイト設定を開き、[SSH] の [Authentication] をクリックし
て、[Private key file] 設定を見つける必要があります。
Note
WinSCP は PuTTY 秘密キーファイル(.ppk)ファイルを必要とします。PuTTYgen を
使って、.pem セキュリティキーファイルを .ppk フォーマットに変換することができま
す。詳細については、「PuTTYgen を使用した秘密キーの変換 (p. 272)」を参照してくださ
い。
275
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
6.
(オプション)左側のパネルで [Directories] をクリックし、[Remote directory] に対してファイル
を追加するディレクトリのパスを入力します。WinSCP の新しいバージョンでは、[Advanced] を
クリックして高度なサイト設定を開き、[Environment] の [Directories] をクリックして、[Remote
directory] 設定を見つける必要があります。
7.
[Login] をクリックして接続し、[Yes] をクリックしてホストのフィンガープリントをホストのキャッ
シュに追加します。
8.
接続確立後、接続ウィンドウには Linux インスタンスが右側、ローカルマシンが左側に表示されま
す。ローカルマシンからリモートファイルシステムへ、ファイルを直接ドラッグアンドドロップす
ることができます。WinSCP の詳細については、http://winscp.net/eng/docs/start のドキュメントを
参照してください。
Note
「Cannot execute SCP to start transfer」エラーを受け取った場合は、まず Linux
インスタンスに scp をインストールする必要があります。一部のオペレーティングシステ
ムでは、これは openssh-clientsパッケージに含まれます。Amazon ECS-optimized AMI
などの Amazon Linux バリアントでは、以下のコマンドを使用して scp をインストールし
ます。
[ec2-user ~]$ sudo yum install -y openssh-clients
MindTerm を使用した Linux インスタンスへの接続
Abstract
MindTerm を使って、ウェブブラウザからインスタンスに接続します。
インスタンスを起動したら、これに接続し、普通のコンピュータと同じように使用できます。
276
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続
Note
インスタンスを起動してから接続できるようになるまでには、数分かかる場合があります。イ
ンスタンスのステータスチェックが正常に終了したことを確認してください。この情報は、
[Instances] ページの [Status Checks] 列で確認できます。
次の手順では、Amazon EC2 コンソールを介して、Mindterm を使ってインスタンスに接続する方法に
ついて説明します。インスタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to
Your Instance」を参照してください。
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.
2.
Amazon EC2 コンソール内で、ナビゲーションペインの [Instances] をクリックします。
インスタンスを選択し、[Connect] をクリックします。
3.
4.
[A Java SSH client directly from my browser (Java required)] をクリックします。
Amazon EC2 は、インスタンスのパブリック DNS 名を自動的に検出し、[Public DNS] に自動的に
名前を入力します。また、インスタンスの起動時に指定したキーペアの名前も検出されます。次の
ように入力し、[Launch SSH Client] をクリックします。
a.
[User name] に、インスタンスにログインするためのユーザー名を入力します。
277
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
停止と起動
Tip
Amazon Linux の場合は、デフォルトのユーザー名は ec2-user です。RHEL5 の場合
は、ユーザー名は root または ec2-user のどちらかです。Ubuntu の場合は、ユー
ザー名は ubuntu です。Fedora の場合は、ユーザー名は fedora または ec2-user
のどちらかです。SUSE Linux の場合は、ユーザー名は root または ec2-user のど
ちらかです。それ以外の場合で、ec2-user および root が機能しない場合は、ご利
用の AMI プロバイダーに確認してください。
b.
[Private key path] に、プライベートキー(.pem)ファイルへの完全修飾パスを入力します
(キーペア名を含む)。たとえば、次のとおりです。
C:\KeyPairs\my-key-pair.pem
c.
5.
6.
7.
8.
(オプション)[Store in browser cache] をクリックして、ブラウザキャッシュにプライベート
キーの場所を保存します。これにより、Amazon EC2 はユーザーがブラウザのキャッシュを
クリアするまで、以降のブラウザセッションで秘密キーの場所を検出します。
必要に応じて、[Yes] をクリックして証明書を信頼し、[Run] をクリックして MindTerm クライア
ントを実行します。
初めて MindTerm を実行した場合、一連のダイアログボックスにより、ライセンス契約への同意、
ホームディレクトリの設定確認、既知のホストディレクトリの設定確認が求められます。これらの
設定を確認します。
既知のホストセットにホストを追加するよう求めるダイアログが表示されます。ローカルコンピュー
タにホストキー情報を保存しない場合は、[No] をクリックします。
ウィンドウが開き、インスタンスに接続した状態になります。
Note
前の手順で [No] をクリックした場合は、次のメッセージが表示されます(正常です)。
Verification of server key disabled in this session.
インスタンスの停止と起動
Abstract
ルートデバイスとして Amazon EBS ボリュームを使用しているすべてのインスタンスを停止して起動します。
インスタンスにルートデバイスとして Amazon EBS ボリュームがある場合、そのインスタンスを停止
して再起動できます。インスタンスにはそのインスタンス ID が保持されますが、概要セクションで述
べられているように変更することはできません。
ユーザーがインスタンスを停止すると、インスタンスはシャットダウンされます。停止されているイン
スタンスの毎時使用量またはデータ転送料金に対して課金しませんが、Amazon EBS ボリュームのス
トレージに対しては課金します。この切り替えを 1 時間以内に複数回行う場合でも、停止されているイ
ンスタンスを起動するたびに、全体のインスタンス時間に対して課金します。
インスタンスが停止している間、他のボリュームと同様にそのルートボリュームを扱い、変更すること
ができます(ファイルシステムの問題を修復したり、ソフトウェアを更新したりするなど)。停止して
いるインスタンスからボリュームを接続解除し、それを実行中のインスタンスに接続して、変更を行
278
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
停止と起動
い、実行中のインスタンスから接続解除して、停止しているインスタンスに再接続します。インスタン
スのブロックデバイスマッピングにルートデバイスとして指定されたストレージデバイス名を使用し
て、ボリュームを接続解除していることを確認します。
インスタンスが必要なくなったら、終了することができます。インスタンスの状態が shutting-down
または terminated に変わったら、そのインスタンスへの課金は停止します。詳細については、「イ
ンスタンスの終了 (p. 285)」を参照してください。
目次
• 概要 (p. 279)
• インスタンスの停止と起動 (p. 280)
• 停止されているインスタンスの変更 (p. 281)
• トラブルシューティング (p. 282)
概要
停止できるのは Amazon EBS-Backed インスタンスだけです。インスタンスのルートデバイスタイプ
を確認するには、インスタンスを記述し、そのルートボリュームのデバイスタイプが ebs(Amazon
EBS-Backed インスタンス)か instance store(Instance store-Backed インスタンス)かをチェッ
クします。詳細については、「AMI のルートデバイスタイプの判別 (p. 72)」を参照してください。
実行中のインスタンスを停止すると、次の処理が実行されます。
• インスタンスは正常なシャットダウンを実行し、実行を停止します(ステータスは stopping、次に
stopped に変わります)。
• Amazon EBS ボリュームはインスタンスに接続されたままとなり、そのデータは保持されます。
• ホストコンピュータの RAM またはホストコンピュータのインスタンスストアボリュームに保存され
たデータはなくなります。
• EC2-Classic: インスタンスを停止すると、インスタンスのパブリックおよびプライベート IP アドレ
スを解放し、インスタンスを再起動すると、新しい IP アドレスを割り当てます。
EC2-VPC: 停止および再起動される際に、インスタンスはプライベート IP アドレスを保持します。
パブリック IP アドレスを解放し、再起動されると新しいアドレスを割り当てます。
• EC2-Classic: インスタンスに関連付けられている Elastic IP アドレスの関連付けを解除します。イン
スタンスに関連付けられていない Elastic IP アドレスに対して課金されます。インスタンスを再起動
すると、インスタンスと Elastic IP アドレスを関連付ける必要があります。これを自動的に行うこと
はありません。
EC2-VPC: インスタンスには関連付けられた Elastic IP アドレスが保持されます。停止されているイ
ンスタンスに関連付けられた Elastic IP アドレスに対して課金されます。
• Windows インスタンスを停止および再起動すると、デフォルトでインスタンスホスト名を、新しい
IP アドレスに合わせて変更し、再起動を開始します。デフォルトでは、接続されている Amazon EBS
ボリュームのドライブ文字も変更します。これらのデフォルトおよび変更方法については、『Microsoft
Windows インスタンスの Amazon EC2 ユーザーガイド』の「 EC2Config サービスを使用した Windows
インスタンスの設定」を参照してください。
• インスタンスをロードバランサーに登録した場合、インスタンスを停止して再起動すると、ロードバ
ランサーが、そのインスタンスに対してトラフィックのルート割り当てを行えなくなる可能性があり
ます。インスタンスを停止したら、ロードバランサーにおけるそのインスタンスの登録は一度解除
し、インスタンスの起動後に再度登録する必要があります。詳細については、『Elastic Load Balancing
開発者ガイド』の「ロードバランサーでの EC2 インスタンスの登録解除と登録」を参照してくださ
い。
• インスタンスが Auto Scaling グループにある場合、Auto Scaling サービスはインスタンスを異常と判
断して停止し、代わりのインスタンスを起動することがあります。 詳細については、『Auto Scaling
開発者ガイド』の「Health Checks for Auto Scaling Instances」を参照してください。
279
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
停止と起動
• ClassicLink インスタンスを停止すると、今までリンクされていた VPC とのリンクが解除されます。
インスタンスを再起動した後に再び VPC にリンクする必要があります。ClassicLink の詳細について
は、「ClassicLink (p. 585)」を参照してください。
詳細については、「再起動、停止、終了の違い (p. 253)」を参照してください。
以下のインスタンスの属性は停止されると、変更できます。
• インスタンスタイプ
• ユーザーデータ
• Kernel
• RAM ディスク
インスタンスの実行中にこれらの属性を変更しようとすると、Amazon EC2 が
IncorrectInstanceState エラーを返します。
インスタンスの停止と起動
コンソールまたはコマンドラインを使用して、Amazon EBS-Backed インスタンスを起動および停止で
きます。
デフォルトでは、Amazon EBS-backed インスタンスからシャットダウンを開始すると(shutdown、
halt、poweroff コマンドを使用)、インスタンスが停止します。この動作を変更して、インスタンスの
停止ではなく終了させることができます。詳細については、「インスタンスによって起動されたシャッ
トダウン動作の変更 (p. 287)」を参照してください。
コンソールを使用して Amazon EBS-Backed インスタンスを停止および起動するには
1.
2.
3.
ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。
[EC2-Classic] インスタンスに関連付けられた Elastic IP アドレスがある場合は、詳細ペインに表示
された Elastic IP アドレスとインスタンス ID を書き留めます。
[Actions] を選択して [Instance State] を選択し、[Stop] を選択します。[Stop] が無効になっている
場合は、インスタンスが既に停止しているか、またはルートボリュームがインスタンスストアボ
リュームです。
Warning
インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されます。
したがって、インスタンスストアボリューム上に維持したいデータがある場合は、必ず永
続的ストレージにバックアップしてください。
4.
確認ダイアログボックスで [Yes, Stop] を選択します。インスタンスが停止するまで、数分かかる
場合があります。
[EC2-Classic] インスタンスの状態が stopped になると、詳細ペインの [Elastic IP]、[Public DNS]、
[Private DNS]、および [Private IPs] の各フィールドは空白になり、古い値がインスタンスと関連付
けられなくなったことを示します。
5.
6.
7.
インスタンスが停止されている間、特定のインスタンス属性を変更できます。詳細については、
「停止されているインスタンスの変更 (p. 281)」を参照してください。
停止されているインスタンスを再起動するには、インスタンスを選択し、[Actions] を選択して
[Instance State] を選択した後、[Start] を選択します。
確認ダイアログボックスで [Yes, Start] を選択します。インスタンスが running 状態になるまで、
数分かかる場合があります。
280
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
停止と起動
[EC2-Classic] インスタンスの状態が running になると、詳細ペインの [Public DNS]、[Private
DNS]、[Private IPs] の各フィールドには、インスタンスに割り当てた新しい値が表示されます。
8.
[EC2-Classic] インスタンスに関連する Elastic IP アドレスがある場合は、次のようにして再び関連
付ける必要があります。
a.
ナビゲーションペインで [Elastic IPs] を選択します。
b.
c.
d.
インスタンスを停止する前に書き留めた Elastic IP アドレスを選択します。
[Actions] を選択し、次に [Associate Address] を選択します。
インスタンスを停止する前に書き留めたインスタンス ID を選択し、[Associate] を選択しま
す。
コマンドラインを使用して Amazon EBS-Backed インスタンスを停止および起動するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• stop-instances および start-instances(AWS CLI)
• ec2-stop-instances および ec2-start-instances(Amazon EC2 CLI)
• Stop-EC2Instance および Start-EC2Instance(AWS Tools for Windows PowerShell)
停止されているインスタンスの変更
AWS マネジメントコンソールまたはコマンドラインインターフェイスを使用して、停止されているイ
ンスタンスのインスタンスタイプ、ユーザーデータ、および EBS 最適化属性を変更できます。AWS マ
ネジメントコンソールを使用して、DeleteOnTermination、カーネル、または RAM ディスクの属性
を変更することはできません。
インスタンス属性を変更するには
• インスタンスタイプを変更するには、「インスタンスのサイズ変更 (p. 161)」を参照してください。
• インスタンスのユーザーデータを変更するには、「ユーザーデータの追加 (p. 324)」を参照してくだ
さい。
• インスタンスの EBS 最適化を有効または無効にするには、「EBS 最適化の変更 (p. 718)」を参照して
ください。
• インスタンスのルートボリュームの DeleteOnTermination 属性を変更するには、「実行中のイン
スタンスのブロックデバイスマッピングの更新 (p. 760)」を参照してください。
コマンドラインを使用してインスタンス属性を変更するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• modify-instance-attribute(AWS CLI)
• ec2-modify-instance-attribute(Amazon EC2 CLI)
• Edit-EC2InstanceAttribute(AWS Tools for Windows PowerShell)
281
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
再起動
トラブルシューティング
Amazon EBS-Backed インスタンスを停止し、stopping 状態に "stuck" が表示されている場合、イン
スタンスを強制終了できます。詳細については、「インスタンスの停止に関するトラブルシューティン
グ (p. 805)」を参照してください。
インスタンスの再起動
Abstract
Amazon EC2 を使用してインスタンスを再起動し、必要なメンテナンスを行います。
インスタンスの再起動は、オペレーティングシステムの再起動と同等です。ほとんどの場合、インスタ
ンスの再起動には数分しかかかりません。インスタンスを再起動すると、インスタンスは同じホスト上
で保持されるため、インスタンスのパブリックドメイン名、プライベート IP アドレス、およびインス
タンスストアボリューム上のすべてのデータは保持されます。
インスタンスを再起動しても、インスタンスの停止と再起動とは異なり、新しいインスタンスの課金時
間は開始されません。
再起動を必要とする更新の適用など、必要なメンテナンスのために、インスタンスの再起動を予定する
場合があります。ユーザーが操作する必要はありません。予定されている時間帯に自動的に行われる再
起動まで待つことをお勧めします。詳細については、「インスタンスの予定されたイベント (p. 421)」
を参照してください。
インスタンスからオペレーティングシステムの再起動コマンドを実行する代わりに、Amazon EC2 を
使ってインスタンスを再起動することをお勧めします。Amazon EC2 を使用したインスタンスの再起
動では、インスタンスが 4 分以内に正常にシャットダウンを行わない場合、ハードリブートが実行され
ます。AWS CloudTrail を使用した場合は、Amazon EC2 を使用してインスタンスを再起動すると、イ
ンスタンスがいつ再起動されたかについて API レコードも作成されます。
コンソールを使用してインスタンスを再起動するには
1.
2.
3.
4.
Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Instances] をクリックします。
インスタンスを選択し、[Actions] をクリックして [Instance State] を選択した後、[Reboot] をク
リックします。
確認プロンプトが表示されたら、[Yes, Reboot] をクリックします。
コマンドラインを使用してインスタンスを再起動するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• reboot-instances(AWS CLI)
• ec2-reboot-instances(Amazon EC2 CLI)
• Restart-EC2Instance(AWS Tools for Windows PowerShell)
インスタンスのリタイア
Abstract
リタイアが予定されているインスタンスと、リタイアを管理するために行うアクションを特定します。
282
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リタイア
インスタンスをホストしている基盤のハードウェアで回復不可能な障害が検出されると、AWS によっ
てインスタンスのリタイヤが予定されます。予定されたリタイヤ日になると、インスタンスは AWS に
よって停止または終了されます。インスタンスのルートデバイスが Amazon EBS ボリュームである場
合、インスタンスは停止されますが、その後いつでも再び起動できます。停止したインスタンスを開始
すると、新しいハードウェアに移行されます。インスタンスのルートデバイスがインスタンスストアボ
リュームである場合、インスタンスは終了し、再び使用することはできません。
トピック
• リタイアが予定されているインスタンスの特定 (p. 283)
• リタイアが予定されているインスタンスの操作 (p. 284)
インスタンスイベントのタイプの詳細については、「インスタンスの予定されたイベント (p. 421)」を
参照してください。
リタイアが予定されているインスタンスの特定
インスタンスのリタイアが予定された場合、イベントの前に、当該のインスタンス ID とリタイア日を
記載したメールが送信されます。このメールは、アカウントに関連付けられているアドレスに送信され
ます。これは、AWS マネジメントコンソール へのログインに使用するメールアドレスと同じです。定
期的に確認しないメールアカウントを使用している場合は、Amazon EC2 コンソールまたはコマンド
ラインを使用して、いずれかのインスタンスにリタイアが予定されているかどうかを判断できます。ア
カウントの連絡先情報を更新するには、[Account Settings] ページに移動します。
コンソールを使用してリタイアが予定されているインスタンスを特定するには
1.
2.
Amazon EC2 コンソールを開きます。
ナビゲーションペインで [EC2 Dashboard] をクリックします。[Scheduled Events] に、Amazon
EC2 インスタンスおよびボリュームに関連付けられたイベントが表示されます。
3.
インスタンスに予定されたイベントが表示されている場合は、リージョン名の下のリンクをクリッ
クして [Events] ページにアクセスします。
[Events] ページには、すべてのリソースとそれに関連付けられたイベントが一覧表示されます。リ
タイアが予定されているインスタンスを表示するには、1 つ目のフィルタリストから [Instance
resources] を選択し、2 つ目のフィルタリストから [Instance retirement] を選択します。
4.
5.
フィルタの結果にインスタンスのリタイアが予定されていることが表示されたら、当該のインスタ
ンスを選択し、詳細ペインの [Start time] フィールドの日時を書き留めます。これがインスタンス
のリタイア日です。
コマンドラインを使用してリタイアが予定されているインスタンスを特定するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-instance-status (AWS CLI)
• ec2-describe-instance-status (Amazon EC2 CLI)
• Get-EC2InstanceStatus (AWS Tools for Windows PowerShell)
283
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
リタイア
リタイアが予定されているインスタンスの操作
インスタンスのリタイアが予定されているときに実行できるアクションはいくつかあります。実行する
アクションは、インスタンスのルートデバイスが Amazon EBS ボリュームであるかインスタンススト
アボリュームであるかによって異なります。インスタンスのルートデバイスタイプが不明な場合は、
Amazon EC2 コンソールまたはコマンドラインを使用して調べることができます。
インスタンスのルートデバイスタイプの判別
コンソールを使用してインスタンスのルートデバイスタイプを判別するには
1.
ナビゲーションペインの [Events] をクリックします。前述の手順「リタイアが予定されているイ
ンスタンスの特定 (p. 283)」で説明したように、フィルタリストを使用してリタイアが予定されて
いるインスタンスを特定します。
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)
• ec2-describe-instances(Amazon EC2 CLI)
• Get-EC2Instance(AWS Tools for Windows PowerShell)
リタイアが予定されているインスタンスの管理
リタイアが予定されているインスタンスのデータを維持するには、以下に挙げるいずれかのアクション
を実行します。予期しないダウンタイムやデータ消失を防ぐために、インスタンスのリタイア日より前
にこのアクションを実行することが重要です。
Warning
Instance Store-Backed インスタンスの場合、リタイア日を過ぎるとインスタンスが終了し、イ
ンスタンスやインスタンスに格納されていたデータを復元できなくなります。インスタンスス
トアボリュームのデータは、インスタンスのルートデバイスにかかわらず、EBS-Backed イン
スタンスにアタッチされている場合でも、インスタンスがリタイアされると失われます。
インスタンスのルートデ アクション
バイスタイプ
EBS
予定されるリタイア日を待ちます - その日になるとインスタンスが停止し
ます - または、リタイア日の前に自らインスタンスを停止します。インス
タンスはいつでも再び開始することができます。インスタンスの停止と開
始、インスタンスを停止したときに予想される影響(インスタンスに関連
付けられたパブリック IP アドレス、プライベート IP アドレス、および
Elastic IP アドレスへの影響など)の詳細については、「インスタンスの停
止と起動 (p. 278)」を参照してください。
284
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
削除
インスタンスのルートデ アクション
バイスタイプ
EBS
インスタンスから EBS-Backed AMI を作成し、代替インスタンスを起動し
ます。詳細については、「Amazon EBS-Backed Linux AMI の作成 (p. 93)」
を参照してください。
インスタンスストア
AMI ツールを使用してインスタンスから Instance-Store Backed AMI を作成
し、代替インスタンスを起動します。詳細については、「Instance StoreBacked Linux AMI の作成 (p. 97)」を参照してください。
インスタンスストア
データを EBS ボリュームに転送し、ボリュームのスナップショットを作成
し、スナップショットから AMI を作成することによって、EBS-Backed イ
ンスタンスをインスタンスに変換します。新しい AMI から代替インスタン
スを起動できます。詳細については、「Instance Store-Backed AMI を
Amazon EBS-Backed AMI に変換する (p. 104)」を参照してください。
インスタンスの終了
Abstract
不要になったインスタンスを終了し、そのインスタンスに対する課金が発生しないようにします。
インスタンスが必要なくなったら、終了することができます。インスタンスの状態が shutting-down
または terminated に変わったら、そのインスタンスへの課金は停止します。
インスタンスを停止した後に、接続または再起動することはできません。ただし、同じ AMI から別の
インスタンスを起動することができます。インスタンスを停止および再起動する場合は、「インスタン
スの停止と起動 (p. 278)」を参照してください。詳細については、「再起動、停止、終了の違い (p. 253)」
を参照してください。
トピック
• インスタンスの終了 (p. 285)
• インスタンスを終了する (p. 286)
• インスタンスの終了保護の有効化 (p. 286)
• インスタンスによって起動されたシャットダウン動作の変更 (p. 287)
• インスタンスの終了で Amazon EBS ボリュームを保持する (p. 288)
• トラブルシューティング (p. 290)
インスタンスの終了
インスタンスの終了後、インスタンスはしばらくの間コンソールに表示されたままですが、エントリは
自動的に削除されます。終了したインスタンスのエントリを自分で削除することはできません。
インスタンスが終了すると、そのインスタンスに関連付けられたすべてのインスタンスストアボリュー
ムのデータが削除されます。
デフォルトでは、インスタンスの終了時に Amazon EBS のルートデバイスボリュームが自動的に削除
されます。ただし、起動時にアタッチした追加の EBS ボリューム、または既存のインスタンスにアタッ
チした EBS ボリュームがある場合、デフォルトでは、インスタンスの終了後もそれらのボリュームは
保持されます。この動作はボリュームの DeleteOnTermination 属性によって制御されますが、変更
できます。詳細については、「インスタンスの終了で Amazon EBS ボリュームを保持する (p. 288)」を
参照してください。
285
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
削除
AWS マネジメントコンソール、CLI、および API を使用している他のユーザーによって、誤ってイン
スタンスを終了されないようにできます。この機能は、Amazon EC2 instance store-backed インスタ
ンスと Amazon EBS-backed インスタンスの両方で使用できます。各インスタンスには、デフォルト値
の false である DisableApiTermination 属性があります(インスタンスは Amazon EC2 によって
終了される場合があります)。インスタンスの実行中または停止中に、このインスタンス属性を変更で
きます(Amazon EBS-backed インスタンスの場合)。詳細については、「インスタンスの終了保護の
有効化 (p. 286)」を参照してください。
システムをシャットダウンするオペレーティングシステムコマンドを使用して、インスタンスからシャッ
トダウンが開始されたときに、インスタンスを停止または終了するかどうかを制御できます。詳細につ
いては、「インスタンスによって起動されたシャットダウン動作の変更 (p. 287)」を参照してください。
インスタンスの終了時にスクリプトを実行した場合、シャットダウンスクリプトが実行されることを保
証する方法がないため、異常な終了が発生する場合があります。Amazon EC2 はインスタンスを正常
にシャットダウンして、システムシャットダウンスクリプトが実行されるように試みますが、特定のイ
ベント(ハードウェア障害など)ではシステムシャットダウンスクリプトが実行されないことがありま
す。
インスタンスを終了する
インスタンスは AWS マネジメントコンソール またはコマンドラインを使用して終了できます。
コンソールを使用してインスタンスを終了するには
1.
2.
3.
4.
5.
インスタンスを終了する前に、終了時に Amazon EBS ボリュームが削除され、必要な任意のデー
タをインスタンスストアボリュームから Amazon EBS または Amazon S3 にコピーしていること
を確認して、データが失われないことを確認します。
Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Instances] をクリックします。
インスタンスを選択し、[Actions] をクリックして [Instance State] を選択した後、[Terminate] をク
リックします。
確認を求められたら、[Yes, Terminate] をクリックします。
コマンドラインを使用してインスタンスを終了するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• terminate-instances(AWS CLI)
• ec2-terminate-instances(Amazon EC2 CLI)
• Stop-EC2Instance(AWS Tools for Windows PowerShell)
インスタンスの終了保護の有効化
デフォルトでは、Amazon EC2 コンソール、コマンドラインインターフェイス、または API を使用し
て、インスタンスを終了できます。Amazon EC2 を使用してインスタンスを誤って終了できないよう
にするには、インスタンスの終了保護を有効にできます。DisableApiTermination 属性は、インス
タンスがコンソール、CLI、または API を使用して終了できるかどうかを制御します。デフォルトで
は、インスタンスの終了保護は無効になっています。インスタンスが実行中またはインスタンスが停止
中に、インスタンスを起動する際に、この属性の値を設定できます(Amazon EBS-backed インスタン
スの場合)。
InstanceInitiatedShutdownBehavior 属性が設定された場合、DisableApiTermination 属性
はインスタンスからシャットダウンを開始して(システムシャットダウン用のオペレーティングシステ
286
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
削除
ムコマンドを使用)、インスタンスを終了できます。詳細については、「インスタンスによって起動さ
れたシャットダウン動作の変更 (p. 287)」を参照してください。
終了保護を使用して、Auto Scaling グループの一部であるインスタンスの終了を防止することはできま
せん。ただし、どのインスタンスを最初に終了するかを指定することはできます。詳細については、
『Auto Scaling 開発者ガイド』の「終了ポリシーの選択」を参照してください。
スポットインスタンスの終了保護を有効にすることはできません— スポット価格が入札価格を超える
と、スポットインスタンスが終了します。 しかし、スポットインスタンスの中断を処理するようにア
プリケーションを準備できます。 詳細については、「スポットインスタンスの中断 (p. 233)」を参照し
てください。
終了保護は AWS マネジメントコンソール またはコマンドラインを使用して有効または無効にできま
す。
起動時にインスタンスに対する終了保護を有効にするには
1.
2.
Amazon EC2 コンソールのダッシュボードで、[Launch Instance] をクリックし、ウィザードの指
示にしたがいます。
[Configure Instance Details] ページで、[Enable termination protection] チェックボックスをオンに
します。
実行中または停止中のインスタンスの終了保護を有効にするには
1.
インスタンスを選択して、[Actions] をクリックし、次に [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)
• ec2-modify-instance-attribute(Amazon EC2 CLI)
• Edit-EC2InstanceAttribute(AWS Tools for Windows PowerShell)
インスタンスによって起動されたシャットダウン動作の変更
デフォルトでは、Amazon EBS-Backed インスタンスからシャットダウンを開始すると(shutdown、
halt、poweroff などのコマンドを使用)、インスタンスが停止します。代わりに終了できるように、イ
ンスタンスの InstanceInitiatedShutdownBehavior 属性を使用して、この動作を変更できます。
インスタンスの実行中または停止中に、この属性を更新できます。
InstanceInitiatedShutdownBehavior 属性は AWS マネジメントコンソール またはコマンドライ
ンを使用して更新できます。
287
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
削除
コンソールを使用してインスタンスのシャットダウン動作を変更するには
1.
Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインの [Instances] をクリックします。
インスタンスを選択し、[Actions] をクリックして [Instance Settings] を選択した後、[Change
Shutdown Behavior] をクリックします。現在の動作は既に選択されています。
動作を変更するには、[Shutdown behavior] リストからオプションを選択し、[Apply] をクリックし
ます。
4.
コマンドラインを使用してインスタンスのシャットダウン動作を変更するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• modify-instance-attribute(AWS CLI)
• ec2-modify-instance-attribute(Amazon EC2 CLI)
• Edit-EC2InstanceAttribute(AWS Tools for Windows PowerShell)
インスタンスの終了で Amazon EBS ボリュームを保持する
インスタンスが終了すると、Amazon EC2 はアタッチされた各 Amazon EBS ボリュームの
DeleteOnTermination 属性の値を使用して、ボリュームを保持するか削除するかを決定します。
デフォルトでは、インスタンスのルートボリュームの DeletionOnTermination 属性は true に設定
されます。したがって、デフォルトではインスタンスの終了時に、インスタンスのルートボリュームが
削除されます。
デフォルトでは、インスタンスに EBS ボリュームをアタッチするときは、DeleteOnTermination 属
性が false に設定されます。したがって、デフォルトではこれらのボリュームが保持されます。イン
スタンスが終了したら、保持されたボリュームのスナップショットを作成するか、別のインスタンスに
アタッチできます。
使用中の EBS ボリュームの DeleteOnTermination 属性の値を確認するには、インスタンスのブロッ
クデバイスマッピングを参照します。詳細については、「インスタンスブロックデバイスマッピングの
EBS ボリュームの表示 (p. 761)」を参照してください。
インスタンスの起動時またはインスタンスの実行中に、ボリュームの DeleteOnTermination 属性の
値を変更することができます。
例
• コンソールを使用した起動時のルートボリュームの永続的な変更 (p. 289)
• コマンドラインを使用した起動時のルートボリュームの永続的な変更 (p. 289)
288
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
削除
• コマンドラインを使用して実行中のインスタンスのルートボリュームが存続するように変更す
る (p. 290)
コンソールを使用した起動時のルートボリュームの永続的な変更
コンソールを使用して、インスタンスの起動時に DeleteOnTermination 属性を変更できます。実行
中のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。
コンソールを使用して、起動時にインスタンスのルートボリュームが存続するように変更する
には
1.
2.
3.
Amazon EC2 コンソールを開きます。
コンソールダッシュボードで、[Launch Instance] をクリックします。
[Choose an Amazon Machine Image (AMI)] ページで、AMI を選択し、[Select] をクリックします。
4.
ウィザードにしたがって [Choose an Instance Type] ページと [Configure Instance Details] ページ
を設定します。
[Add Storage] ページで、ルートボリュームの [Delete On Termination] チェックボックスの選択を
解除します。
ウィザードの残りのページを完了した後、[Launch ] をクリックします。
5.
6.
インスタンスの詳細ペインでルートデバイスボリュームの詳細を表示することにより、設定を確認でき
ます。[Block devices] の隣にあるルートデバイスボリュームのエントリをクリックします。デフォルト
では、[Delete on termination] は [True] です。デフォルトの動作を変更した場合は、[Delete on termination]
が [False] になっています。
コマンドラインを使用した起動時のルートボリュームの永続的な変更
インスタンスの起動時に、次のコマンドのいずれかを使用して、ルートデバイスボリュームが存続する
ように変更することができます。ルートデバイスは通常 /dev/sda1 です。これらのコマンドラインイ
ンターフェイスの詳細については、「Amazon EC2 へのアクセス (p. 3)」を参照してください。
• run-instances(AWS CLI)
• ec2-run-instances(Amazon EC2 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-b047276d",
"VolumeType": "gp2"
}
}
]
289
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
復旧
コマンドラインを使用して実行中のインスタンスのルートボリュームが存続す
るように変更する
次のいずれかのコマンドを使用して、実行中のインスタンスのルートデバイスボリュームを永続化する
ように変更できます。ルートデバイスは通常 /dev/sda1 です。これらのコマンドラインインターフェ
イスの詳細については、「Amazon EC2 へのアクセス (p. 3)」を参照してください。
• modify-instance-attribute(AWS CLI)
• ec2-modify-instance-attribute(Amazon EC2 CLI)
• Edit-EC2InstanceAttribute(AWS Tools for Windows PowerShell)
たとえば、以下の コマンドを使用します。
$ aws ec2 modify-instance-attribute --instance-id i-1a2b3c4d --block-devicemappings file://mapping.json
mapping.json で以下を指定します。
[
{
"DeviceName": "/dev/sda1",
"Ebs": {
"DeleteOnTermination": false
}
}
]
トラブルシューティング
インスタンスが通常より長く shutting-down 状態になっている場合、最終的に Amazon EC2 サービ
ス内の自動プロセスによってクリーンアップ(終了)されます。詳細については、「インスタンスの終
了(シャットダウン)のトラブルシューティング (p. 806)」を参照してください。
インスタンスの復旧
Abstract
基になるハードウェア障害が原因でインスタンスが正常に機能しなくなった場合にインスタンスを復旧する Amazon
CloudWatch アラームを作成して、Amazon EC2 インスタンスを復旧します。
Amazon EC2 インスタンスをモニタリングし、基になるハードウェア障害または AWS による修復を必
要とする問題によりインスタンスが正常に機能しなくなった場合に、自動的にインスタンスを復旧する
Amazon CloudWatch アラームを作成できます。復旧されたインスタンスは、インスタンス ID、プライ
ベート IP アドレス、Elastic IP アドレス、すべてのインスタンスメタデータを含め、元のインスタンス
と同じです。インスタンスを復旧する Amazon CloudWatch アラームの使用の詳細については、「イン
スタンスを停止、終了、再起動、または復旧するアラームを作成する (p. 466)」を参照してください。
インスタンスの復旧失敗の問題をトラブルシューティングするには、『Linux インスタンス用 Amazon
EC2 ユーザーガイド』の「インスタンスの復旧失敗のトラブルシューティング」を参照してください。
StatusCheckFailed_System アラームがトリガーされ、復旧アクションが開始されると、アラーム
を作成したときに選択し、復旧アクションに関連付けた Amazon SNS トピックによって通知されます。
インスタンスを復旧する際、インスタンスを再起動するときにインスタンスは移行され、メモリ内にあ
るデータは失われます。プロセスが完了すると、復旧処理のステータスと、それ以降の手順を含むメー
ルの通知を受け取ります。復旧されたインスタンスでインスタンスが再起動されたことがわかります。
290
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
復旧
システムステータスチェックの失敗の原因となる問題には、次のようなものがあります。
• ネットワーク接続の喪失
• システム電源の喪失
• 物理ホストのソフトウェアの問題
• 物理ホストのハードウェアの問題
Important
復旧アクションは、次のインスタンスでのみサポートされています。
• C3、C4、M3、M4、R3、および T2 インスタンスタイプ。
• アジアパシフィック(シンガポール)、アジアパシフィック(シドニー)、アジアパシフィッ
ク(東京)、欧州(アイルランド)、欧州(フランクフルト)、南米(サンパウロ)、US
East (N. Virginia)、米国西部(北カリフォルニア)、米国西部(オレゴン)、および アジア
パシフィック (ソウル) リージョン内のインスタンス。
• VPC のインスタンス。
Note
インスタンスにパブリック IP アドレスが割り当てられている場合、復旧後に同じパ
ブリック IP アドレスが維持されます。
• 共有テナンシーのインスタンス(インスタンスのテナンシー属性が default に設定されて
いる)。
• 排他的に Amazon EBS ストレージを使用するインスタンス。
現在、復旧アクションは、EC2-Classic インスタンス、専有テナンシーのインスタンス、
Dedicated Host で実行されているインスタンス、およびインスタンスストアボリュームを使用
するインスタンス(インスタンスストアボリューム用のブロックデバイスマッピングを使用し
て起動されるインスタンスなど)ではサポートされていません。
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• 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 ロール(たとえば、Amazon EC2 インスタンスプロファイル)を使用している場合は、ア
ラームアクションを使用してインスタンスを停止または終了することはできません。ただし、
291
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの設定
アラームの状態を確認して、Amazon SNS 通知や Auto Scaling ポリシーなど、その他のアク
ションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを停止または終了すること
はできません。
Amazon Linux インスタンスを設定する
Abstract
Amazon Linux インスタンスをカスタマイズします。
Amazon Linux インスタンスを正常に起動し、ログインしたら、変更できます。特定のアプリケーショ
ンのニーズを満たすためにインスタンスを設定するには、多くの方法があります。ここでは、初めて作
業する場合の一般的なタスクについて説明します。
目次
• 一般的な設定シナリオ (p. 292)
• ソフトウェアの管理(Linux インスタンスの場合) (p. 293)
• Linux インスタンスでのユーザーアカウントの管理 (p. 302)
• EC2 インスタンスタイプのプロセッサのステート制御 (p. 304)
• Linux インスタンスの時刻の設定 (p. 309)
• Linux インスタンスのホスト名の変更 (p. 313)
• Linux インスタンスの動的な DNS のセットアップ (p. 315)
• Linux インスタンスでの起動時のコマンドの実行 (p. 317)
• インスタンスメタデータとユーザーデータ (p. 321)
一般的な設定シナリオ
Amazon Linux のベースのディストリビューションには、基本的なサーバー操作に必要なソフトウェア
パッケージとユーティリティが数多く含まれています。ただし、さまざまなソフトウェアリポジトリで
さらに多くのソフトウェアパッケージを利用できます。また、ソースコードから、さらに多くのパッ
ケージソースコードを作成できます。これらの場所からソフトウェアをインストールし、作成する方法
についての詳細は、ソフトウェアの管理(Linux インスタンスの場合) (p. 293) を参照してください。
Amazon Linux インスタンスには、ec2-user アカウントが事前設定されていますが、スーパーユーザー
権限を持たない他のユーザーアカウントを追加することがあります。ユーザーアカウントの追加と削除
についての詳細は、Linux インスタンスでのユーザーアカウントの管理 (p. 302) を参照してください。
Amazon Linux インスタンスのデフォルトの時間設定では、ネットワークタイムプロトコルを利用し、
システム時間をインスタンスに設定します。デフォルトの時間帯は UTC です。インスタンスの時間帯
の設定または独自のタイムサーバーの利用についての詳細は、Linux インスタンスの時刻の設定 (p. 309)
を参照してください。
お客様がネットワークを所有し、それにドメイン名を登録している場合、インスタンスのホスト名を変
更して、そのドメインに含まれる一部としてインスタンスを識別できます。また、システムプロンプト
を変更して、より意味のある名前を表示することもできます。ホスト名設定を変更する必要はありませ
ん。詳細については、「Linux インスタンスのホスト名の変更 (p. 313)」を参照してください。動的 DNS
サービスプロバイダを使用するようにインスタンスを設定できます。詳細については、「Linux インス
タンスの動的な DNS のセットアップ (p. 315)」を参照してください。
292
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ソフトウェアの管理
Amazon EC2 でインスタンスを起動するとき、起動後にそのインスタンスにユーザーデータを渡し、
一般的な設定タスクを実行したり、スクリプトを実行したりできます。2 つのタイプのユーザーデータ
を Amazon EC2 に渡すことができます。cloud-init ディレクティブとシェルスクリプトです。詳細
については、「Linux インスタンスでの起動時のコマンドの実行 (p. 317)」を参照してください。
ソフトウェアの管理(Linux インスタンスの場合)
Abstract
Amazon Linux インスタンスでソフトウェアを管理します。
Amazon Linux のベースのディストリビューションには、基本的なサーバー操作に必要なソフトウェア
パッケージとユーティリティが数多く含まれています。ただし、さまざまなソフトウェアリポジトリで
さらに多くのソフトウェアパッケージを利用できます。また、ソースコードから、さらに多くのパッ
ケージソースコードを作成できます。
目次
• インスタンスソフトウェアの更新 (p. 293)
• リポジトリの追加 (p. 297)
• ソフトウェアパッケージを見つける (p. 298)
• ソフトウェアパッケージのインストール (p. 300)
• ソフトウェアのコンパイル準備 (p. 300)
ソフトウェアを最新の状態に維持することが重要です。Linux ディストリビューションの多くのパッ
ケージは頻繁に更新されます。これにより、バグが修正され、機能が追加されて、セキュリティ上の弱
点に対する防御措置が行われます。詳細については、「インスタンスソフトウェアの更新 (p. 293)」を
参照してください。
デフォルトで、Amazon Linux インスタンスは、amzn-main と amzn-updates の 2 つのリポジトリを
有効にして起動します。これらのリポジトリには、Amazon Web Services が更新するさまざまなパッ
ケージがありますが、別のリポジトリに含まれるパッケージをインストールしたい場合があるかもしれ
ません。詳細については、「リポジトリの追加 (p. 297)」を参照してください。有効なリポジトリでパッ
ケージを探す方法については、ソフトウェアパッケージを見つける (p. 298) を参照してください。Amazon
Linux インスタンスにソフトウェアをインストールする方法については、ソフトウェアパッケージのイ
ンストール (p. 300) を参照してください。
リポジトリに保管されているソフトウェアパッケージで、すべてのソフトウェアが利用できるわけでは
ありません。一部のソフトウェアは、そのソースコードからインスタンスでコンパイルする必要があり
ます。詳細については、「ソフトウェアのコンパイル準備 (p. 300)」を参照してください。
Amazon Linux インスタンスは、yum パッケージマネージャを利用してソフトウェアを管理します。
yum パッケージマネージャはソフトウェアをインストール、削除、更新し、各パッケージのすべての
依存関係を管理できます。Ubuntu のような Debian ベースの Linux ディストリビューションは、apt-get
コマンドと dpkg パッケージマネージャを使用するため、次のセクションの yum の例は、このような
ディストリビューションには該当しません。
インスタンスソフトウェアの更新
Abstract
Amazon Linux インスタンス内で 1 つのソフトウェアパッケージを更新するか、すべてのパッケージを更新します。
ソフトウェアを最新の状態に維持することが重要です。Linux ディストリビューションの多くのパッ
ケージは頻繁に更新されます。これにより、バグが修正され、機能が追加されて、セキュリティ上の弱
点に対する防御措置が行われます。最初に Amazon Linux インスタンスを起動して接続するときに、
メッセージが表示され、セキュリティ上の目的からソフトウェアパッケージを更新するように求められ
293
Amazon Elastic Compute Cloud 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
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 フラグを追加すれば、セキュリ
ティ更新のみを適用できます。
294
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ソフトウェアの管理
[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
libgcrypt
x86_64
1.4.5-9.12.amzn1
amzn-updates
262 k
openssl
x86_64
1:1.0.1e-4.54.amzn1
amzn-updates
1.7 M
python-boto
noarch
2.13.3-1.0.amzn1
amzn-updates
1.6 M
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
(2/6): gnupg2-2.0.19-8.21.amzn1.x86_64.rpm
295
| 14 MB
| 2.4 MB
00:00
00:00
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ソフトウェアの管理
(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 ライブラリーを更新した後も再起動が必要です。サービスを制御する更新の場合は、
更新を取得するにはサービスの再起動で十分かもしれませんが、システムを再起動することで、そ
れ以前のすべてのパッケージとライブラリーの更新を確実に完了できます。
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
amzn-updates
| 2.3 kB
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
00:00
00:00
Dependencies Resolved
================================================================================
Package
Arch
Version
Repository
Size
================================================================================
Updating:
openssl
x86_64
1:1.0.1e-4.54.amzn1
amzn-updates
296
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ソフトウェアの管理
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
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
| 1.7 MB
00:00
Updated:
openssl.x86_64 1:1.0.1e-4.54.amzn1
Complete!
3.
(オプション) 更新によって最新のパッケージおよびライブラリーを使用していることを確実にする
ためにインスタンスを再起動してください。カーネル更新は再起動が発生するまでロードされませ
ん。glibc ライブラリーを更新した後も再起動が必要です。サービスを制御する更新の場合は、
更新を取得するにはサービスの再起動で十分かもしれませんが、システムを再起動することで、そ
れ以前のすべてのパッケージとライブラリーの更新を確実に完了できます。
リポジトリの追加
Abstract
Amazon Linux インスタンスにソフトウェアリポジトリを追加します。
デフォルトで、Amazon Linux インスタンスは、amzn-main と amzn-updates の 2 つのリポジトリを
有効にして起動します。これらのリポジトリには、Amazon Web Services が更新するさまざまなパッ
ケージがありますが、別のリポジトリに含まれるパッケージをインストールしたい場合があるかもしれ
ません。
Important
これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション
の詳細については、各ドキュメントを参照してください。
297
Amazon Elastic Compute Cloud 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/re
pository.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/re
pository.repo
repository.repo
| 4.0 kB
00:00
repo saved to /etc/yum.repos.d/repository.repo
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
Note
他のディストリビューションの EPEL リポジトリ(Red Hat や CentOS など)を有効にする方
法については、EPEL ドキュメント(https://fedoraproject.org/wiki/EPEL)を参照してくださ
い。
ソフトウェアパッケージを見つける
Abstract
yum 検索コマンドを使用して、設定したリポジトリで利用できるソフトウェアパッケージを探します。
yum search コマンドを使用すると、設定したリポジトリで利用できるパッケージの説明を検索できま
す。これは特に、インストールするパッケージの正確な名前がわからない場合に便利です。キーワード
検索をコマンドに追加します。複数の単語を検索するには、引用符で検索クエリを囲みます。
Important
これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション
の詳細については、各ドキュメントを参照してください。
298
Amazon Elastic Compute Cloud 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
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
299
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ソフトウェアの管理
yum groupinfo "Group Name" コマンドを使用すると、グループにさまざまなパッケージを表示できま
す。Group Name には情報を取得するグループの名前を指定します。このコマンドを使用すると、その
グループでインストールできる必須、デフォルト、任意のパッケージがすべて一覧表示されます。
デフォルトの amzn-main および amzn-updates リポジトリで必要なソフトウェアが見つからない場
合は、Extra Packages for Enterprise Linux (EPEL) リポジトリなどのリポジトリをさらに追加できま
す。詳細については、「リポジトリの追加 (p. 297)」を参照してください。
ソフトウェアパッケージのインストール
Abstract
yum パッケージマネージャを使用して、Amazon Linux インスタンスにパッケージをインストールします。
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"
また、yum install を使用して、インターネットからダウンロードした RPM パッケージファイルをイン
ストールすることもできます。その場合、リポジトリパッケージ名の代わりに、RPM ファイルのパス
名をインストールコマンドに追加します。
[ec2-user ~]$ sudo yum install my-package.rpm
ソフトウェアのコンパイル準備
Abstract
ソフトウェアをコンパイルする開発ツールをインストールします。
300
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ソフトウェアの管理
インターネットには事前コンパイルされていないオープンソースのソフトウェアが豊富に存在します。
パッケージリポジトリからダウンロードできます。いずれは、そのソースコードから、自分でコンパイ
ルする必要があるソフトウェアパッケージが判明することがあります。システムでソフトウェアのコン
パイルを可能にするには、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
このコマンドではソース RPM の場所がリストアップされます。この場
合、/usr/src/srpm/debug/htop-1.0.1-2.3.amzn1.src.rpm です。
301
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ユーザーの管理
Linux インスタンスでのユーザーアカウントの管理
Abstract
Amazon Linux インスタンスのユーザーを追加または削除します。
Linux インスタンスの各タイプは、デフォルトの Linux システムユーザーアカウントで起動されます。
Amazon Linux の場合は、デフォルトのユーザー名は ec2-user です。RHEL5 の場合は、ユーザー名
は root または ec2-user のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu です。Fedora
の場合は、ユーザー名は fedora または ec2-user のどちらかです。SUSE Linux の場合は、ユーザー
名は root または ec2-user のどちらかです。それ以外の場合で、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
このコマンドにより、newuser アカウントがシステムに追加され(/etc/passwd ファイルにエン
トリが追加されます)、newuser グループが作成されて、/home/newuser にアカウントのホー
ムディレクトリが作成されます。
2.
このアカウントにリモートアクセス権を与えるには、 .sshnewuser ディレクトリ
を作成し、パブリックキーを含む「authorized_keys」という名前のファイルを .ssh ディレク
トリに作成する必要があります。
a.
新しいアカウントに切り替えると、新しく作成したファイルに適切な所有権が与えられます。
[ec2-user ~]$ sudo su - newuser
[newuser ~]$
メッセージには、newuser ではなく ec2-user と表示される点にご注意ください。シェルセッ
ションを新しいユーザーに切り替えています。
302
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 AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhD
FcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJh
JOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8Se
JtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXP
kX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
Note
キーペアの作成の詳細については、「Amazon EC2 を使用してキーペアを作成す
る (p. 505)」を参照してください。既存のキーペアからパブリックキーを取得する方法
については、「キーペアのパブリックキーを取得する(Linux) (p. 508)」を参照して
ください。
303
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プロセッサのステート制御
これで、newuser のパブリックキーに一致するプライベートキーを使用して、SSH 経由でインスタン
スの Step 2.f (p. 303) アカウントにログインできるはずです。
システムからユーザーを削除するには
ユーザーアカウントが不要になった場合、今後使用されないようにそのアカウントを削除できます。
•
ユーザーアカウント、ユーザーのホームディレクトリ、ユーザーのメールスプールを削除するに
は、削除するユーザーの名前を後に付けて userdel -r コマンドを実行します。
[ec2-user ~]$ sudo userdel -r olduser
Note
ユーザーのホームディレクトリとメールスプールを維持するには、-r オプションを省略し
ます。
EC2 インスタンスタイプのプロセッサのステート制
御
Abstract
一部の EC2 インスタンスタイプにより、オペレーティングシステムがプロセッサの C ステートと P ステートを制
御できるようになります。
C ステートはアイドル時のコアのスリープレベルを制御します。C ステートは、C0(コアがアクティ
ブで、命令を実行している最も浅い状態)から始まる番号が付けられ、C6(コアの電源がオフになっ
ている最も深いアイドル状態)まで移行します。P ステートはコアに希望するパフォーマンス(CPU
周波数)を制御します。P ステートは、P0(コアが Intel® Turbo Boost Technology を使用して可能で
あれば周波数を上げることができる最高パフォーマンスの設定)から始まる番号が付けられ、P1(最
大限のベースライン周波数をリクエストする P ステート)から P15(最小限の周波数)まで移行しま
す。
次のインスタンスタイプにより、オペレーティングシステムがプロセッサの C ステートと P ステート
を制御できるようになります。
• c4.8xlarge
• d2.8xlarge
• m4.10xlarge
プロセッサのパフォーマンスの安定性を向上させたり、レイテンシーを減らしたり、インスタンスを特
定のワークロード用に調整するために、C ステートまたは P ステートの設定を変更したいと思う場合
があるかもしれません。デフォルトの C ステートおよび P ステートの設定は、ほとんどの作業負荷に
対して最適なパフォーマンスを提供します。ただし、アプリケーションにおいて、より高いシングルコ
アまたはデュアルコアの周波数でレイテンシーを軽減したい場合、またはバースト的な Turbo Boost 周
波数よりも低い周波数でより安定したパフォーマンスを維持することを優先する場合、これらのインス
タンスで利用可能な C ステートまたは P ステートを試みることを考慮してください。
以下のセクションでは、プロセッサのさまざまなステート設定と、設定の効果をモニタリングする方法
について説明します。これらの手順は、Amazon Linux を対象としており、これに適用されますが、バー
ジョン 3.9 以降の Linux カーネルを持つ他の Linux ディストリビューションでも使用できる可能性があ
ります。他の Linux ディストリビューションやプロセッサのステート制御については、システム固有ド
キュメントを参照してください。
304
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プロセッサのステート制御
Note
このページの例では、turbostat ユーティリティ(Amazon Linux でデフォルトで使用できる)
を使用してプロセッサ周波数と C ステート情報を表示し、stress コマンド(sudo yum install
-y stress を実行することによってインストールできる)を使用してワークロードをシミュレー
トします。
目次
• 最大 Turbo Boost 周波数による最高パフォーマンス (p. 305)
• 深い C ステートの制限による高パフォーマンスと低レイテンシー (p. 306)
• 変動性が最も低いベースラインパフォーマンス (p. 307)
最大 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
305
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プロセッサのステート制御
stress: info: [30685] successful run completed in 10s
pk cor CPU
%c0 GHz TSC SMI
%c1
%c3
%c6
%pc6
%pc7 Pkg_W RAM_W PKG_% RAM_%
99.27 3.20 2.90
0
0.26
0.00
0.47
0.00
0.00 228.59 31.33 199.26 0.00
0
0
0 99.08 3.20 2.90
0
0.27
0.01
0.64
0.00
0.00 114.69 18.55 99.32 0.00
0
0 18 98.74 3.20 2.90
0
0.62
0
1
1 99.14 3.20 2.90
0
0.09
0.00
0.76
0
1 19 98.75 3.20 2.90
0
0.49
0
2
2 99.07 3.20 2.90
0
0.10
0.02
0.81
0
2 20 98.73 3.20 2.90
0
0.44
0
3
3 99.02 3.20 2.90
0
0.24
0.00
0.74
0
3 21 99.13 3.20 2.90
0
0.13
0
4
4 99.26 3.20 2.90
0
0.09
0.00
0.65
0
4 22 98.68 3.20 2.90
0
0.67
0
5
5 99.19 3.20 2.90
0
0.08
0.00
0.73
0
5 23 98.58 3.20 2.90
0
0.69
0
6
6 99.01 3.20 2.90
0
0.11
0.00
0.89
0
6 24 98.72 3.20 2.90
0
0.39
...
%c7
%pc2
%pc3
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
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)
306
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プロセッサのステート制御
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
次の例では、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-vector-extensions-paper.pdf
を参照してください。
307
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プロセッサのステート制御
このセクションでは、深いスリープ状態を制限し、(P1 P ステートをリクエストすることにより)
Turbo Boost を無効にすることで、これらのタイプのワークロードに対して、低レイテンシーを提供
し、プロセッサ速度の変動性を最低限に抑える方法を説明します。
Amazon Linux で深いスリープ状態を制限し、Turbo Burstを無効にするには
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
3.
4.
ファイルを保存し、エディタを終了します。
新しい kernel オプションを有効にするためにインスタンスを再起動します。
[ec2-user ~]$ sudo reboot
5.
P1 P ステートによってプロセッサ速度の変動性を抑える必要がある場合は、次のコマンドを実行
して Turbo Boost を無効にします。
[ec2-user ~]$ sudo sh -c "echo 1 > /sys/devices/system/cpu/in
tel_pstate/no_turbo"
6.
ワークロードが終了したら、次のコマンドで Turbo Boost を再度有効にすることができます。
[ec2-user ~]$ sudo sh -c "echo 0 > /sys/devices/system/cpu/in
tel_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
308
%pc3
0.00
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
時刻の設定
0
0.00
0
0
0
0
0
0
0
...
1
1
1
0
0
1
1
2
2
3
3
1
2
2
0
0.04 2.90 2.90
0
0.00 65.33 19.02 100.00
18
0.04 2.90 2.90
0
1
0.05 2.90 2.90
0
19
0.04 2.90 2.90
0
2
0.04 2.90 2.90
0
20
0.04 2.90 2.90
0
3
0.05 2.90 2.90
0
21 99.95 2.90 2.90
0
28
11
29
99.92 2.90 2.90
0.06 2.90 2.90
0.05 2.90 2.90
99.96
0.00
99.96
99.95
99.96
99.96
99.96
99.95
0.05
0
0
0
0.08
99.94
99.95
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
vCPU 21 および 28 のコアは、ベースラインプロセッサ速度の 2.9 GHz でアクティブに処理を実行し、
すべての非アクティブなコアも、C1 C ステートのベースライン速度で実行され、すぐに命令を受け付
けることができます。
Linux インスタンスの時刻の設定
Abstract
時間を設定するか、Amazon Linux インスタンスの時間帯を変更します。
サーバータスクとプロセスの多くには、一貫して正確な時間参照が不可欠です。システムログのほとん
どにタイムスタンプが含まれています。これを利用すれば、問題が発生した時刻とイベントの発生順序
を判断できます。AWS CLI、EC2 CLI、または AWS SDK を使用してインスタンスからリクエストを行
う場合、これらのツールによって自動的にリクエストに署名されます。インスタンスの日時が正しく設
定されていない場合、署名の日付がリクエストの日付と一致しないことがあり、その場合は AWS に
よってリクエストが却下されます。ネットワークタイムプロトコル(NTP)は、デフォルトでは Amazon
Linux インスタンスに設定されています。システム時間はインターネットで負荷が分散されたパブリッ
クサーバーのプールと同期し、UTC 時間帯に設定されます。NTP の詳細については、http://www.ntp.org/
を参照してください。
タスク
• 時間帯の変更 (p. 309)
• ネットワークタイムプロトコル(NTP)の構成 (p. 310)
Important
これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション
の詳細については、各ドキュメントを参照してください。
時間帯の変更
Amazon Linux インスタンスは、デフォルトでは UTC(協定世界時間)時間帯に設定されていますが、
インスタンスの時間を現地時間またはネットワークの別の時間帯に変更したい場合があるでしょう。
インスタンスの時間帯を変更するには
1.
インスタンスで使用する時間帯を特定します。/usr/share/zoneinfo ディレクトリには、時間
帯データファイルの階層が含まれています。その場所でディレクトリ構造を閲覧し、お客様の時間
帯のファイルを見つけます。
309
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
時刻の設定
[ec2-user ~]$ ls /usr/share/zoneinfo
Africa
Chile
GB
Indian
America
CST6CDT GB-Eire
Iran
Antarctica Cuba
GMT
iso3166.tab
Arctic
EET
GMT0
Israel
...
Mideast
MST
MST7MDT
Navajo
posixrules
PRC
PST8PDT
right
US
UTC
WET
W-SU
この場所にある一部のエントリはディレクトリです(America など)。そのディレクトリには、
特定の都市の時間帯ファイルが含まれています。インスタンスに使用する都市(またはお客様の時
間帯と同じ都市)を見つけます。この例では、ロサンゼルスの時間帯ファイル
(/usr/share/zoneinfo/America/Los_Angeles)を使用できます。
2.
/etc/sysconfig/clock ファイルを新しい時間帯で更新します。
a.
お好みのテキストエディタ(vim や nano など)で /etc/sysconfig/clock ファイルを開き
ます。エディターコマンドで sudo を使用する必要があります。/etc/sysconfig/clock は
root が所有するためです。
b.
ZONE エントリを見つけて、それを時間帯ファイルに変更します(パスの
/usr/share/zoneinfo セクションは省略します)。たとえば、ロサンゼルスの時間帯に変
更するには、ZONE エントリを次のように変更します。
ZONE="America/Los_Angeles"
c.
UTC エントリを見つけて、false に変更します。
UTC=false
d.
3.
ファイルを保存し、テキストエディタを終了します。
インスタンスが現地時間情報を参照するとき、時間帯ファイルを見つけられるよう
に、/etc/localtime と時間帯ファイルの間にシンボリックリンクを作成します。
[ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/loc
altime
4.
システムを再起動し、すべてのサーバーとアプリケーションで新しい時間帯情報を取得します。
[ec2-user ~]$ sudo reboot
ネットワークタイムプロトコル(NTP)の構成
Abstract
NTP を使って、Amazon Linux インスタンスの時刻を正確に維持します。
ネットワークタイムプロトコル(NTP)は、デフォルトにより、Amazon Linux インスタンスに構成済
みです。ただし、標準 NTP 構成を機能させるには、インスタンスがインターネットにアクセスする必
要があります。インスタンスのセキュリティグループは、ポート 123 (NTP) でアウトバウンド UDP ト
ラフィックを許可する必要もあります。このセクションの手順では、デフォルトの NTP 構成が正しく
動作していることを確認する方法を示します。インスタンスからインターネットにアクセスできない場
310
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
時刻の設定
合、正確な時刻を維持するために、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 分かかることがあります。
2.
出力に "Unable to talk to NTP daemon. Is it running?" と示されている場合、NTP サー
ビスを起動して、ブート時に自動的に開始できるようにする必要があります。
(オプション)NTP サーバーが認識しているピアとその状態の概要を表示するには、ntpq -p コマ
ンドを使用します。
[ec2-user ~]$ ntpq -p
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.
chkconfig コマンドを使って、ブート時に NTP を開始できるようにします。
[ec2-user ~]$ sudo chkconfig ntpd on
3.
次のコマンドを使って、NTP が有効であることを確認します。
311
[
OK
]
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
時刻の設定
[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
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.
新しい設定が動作すること、また、NTP が機能していることを確認します。
312
[
OK
]
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ホスト名の変更
[ec2-user ~]$ ntpstat
synchronised to NTP server (64.246.132.14) at stratum 2
time correct to within 99 ms
Linux インスタンスのホスト名の変更
Abstract
動的 DNS プロバイダを使用し、Amazon Linux インスタンスのホスト名を設定します。
インスタンスを起動すると、プライベートの内部 IP アドレスの形式のホスト名が割り当てられます。
典型的な Amazon EC2 プライベート DNS 名は、ip-12-34-56-78.us-west-2.compute.internal
のような形式になります。この名前は内部ドメイン、サービス (この例では、compute)、リージョン、
そしてプライベート IP アドレスで構成されます。インスタンスにログインしたとき、このホスト名の
一部がシェルプロンプトで表示されます(ip-12-34-56-78 など)。Amazon EC2 インスタンスを停
止し、再起動するたびに(Elastic IP アドレスを使用していない限り)、パブリック IP アドレスが変わ
り、パブリック DNS 名、システムホスト名、シェルプロンプトも変わります。EC2-Classic で起動さ
れたインスタンスも、停止して再起動すると、新しいプライベート IP アドレス、プライベート DNS
ホスト名、システムホスト名を受信します。VPC で起動されたインスタンスでは、これらは変更され
ません。
Important
これらの手順は Amazon 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 コマンドで完全修飾ドメイン
名が表示されます。
313
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ホスト名の変更
[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 localhost localhost.localdomain
3.
インスタンスを再起動し、新しいホスト名を取得します。
[ec2-user ~]$ sudo reboot
4.
インスタンスにログインして、ホスト名が更新されていることを確認します。メッセージには、新
しいホスト名が表示されるはずです(最初の「.」まで)。hostname コマンドで完全修飾ドメイン
名が表示されます。
[ec2-user@webserver ~]$ hostname
webserver.localdomain
ホスト名に影響を与えずにシェルプロンプトを変更する
インスタンスのホスト名を変更せずに、AWS が提供するプライベート名(webserver など)よりも便
利なシステム名(ip-12-34-56-78 など)を表示させる場合、ホスト名の代わりにシステムニックネー
ムを表示するようにシェルプロンプト設定ファイルを編集できます。
シェルプロンプトをホストニックネームに変更するには
1.
/etc/profile.d で、NICKNAME と呼ばれる環境変数を設定するファイルを作成して、シェルプ
ロンプトに表示する値を設定します。たとえば、システムニックネームを webserver に設定する
には、次のコマンドを実行します。
[ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/pro
file.d/prompt.sh'
2.
お好みのテキストエディタ(vim や nano など)で /etc/bashrc ファイルを開きます。エディター
コマンドで sudo を使用する必要があります。/etc/bashrc は root が所有するためです。
3.
ファイルを編集し、ホスト名の代わりにニックネームを表示するようにシェルプロンプト変数
(PS1)を変更します。/etc/bashrc でシェルプロンプトを設定する次の行を見つけます(以下
には、コンテキストを示すため前後の行も表示されています。[ "$PS1" で始まる行を探してくだ
さい)。
314
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
動的な DNS のセットアップ
# 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.
ログアウトしてから再度ログインし、新しいニックネーム値を取得します。
Linux インスタンスの動的な DNS のセットアップ
Abstract
Amazon EC2 では動的 DNS プロバイダを利用できます。また、インスタンスを起動するたびに、パブリック DNS
名に関連付けられている IP アドレスを更新するようにインスタンスを設定できます。
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 ア
ドレスで構成されます。
315
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
動的な DNS のセットアップ
動的 DNS サービスはそのドメイン領域内でカスタムの DNS ホスト名を提供します。この名前は覚え
やすく、ホストのユースケースとの関連性が高くなっています。また、一部の動的 DNS サービスは無
料です。Amazon EC2 では動的 DNS プロバイダを利用できます。また、インスタンスを起動するたび
に、パブリック DNS 名に関連付けられている IP アドレスを更新するようにインスタンスを設定でき
ます。プロバイダは数多く存在します。また、プロバイダを選択し、それぞれのプロバイダで名前を登
録する方法については本ガイドの範囲外です。
Important
これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューション
の詳細については、各ドキュメントを参照してください。
Amazon EC2 で動的 DNS を使用するには
1.
動的 DNS サービスプロバイダにサインアップし、そのサービスでパブリック DNS 名を登録しま
す。この手順では、noip.com/free の無料サービスを例として使用します。
2.
動的 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 リポジトリを有効にする必要があります。このパッケージの
最新バージョンの詳細およびダウンロードについては、「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
316
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
起動時のコマンドの実行
chkconfig --list コマンドを使用すると、サービスが有効になっていることを確認できます。
[ec2-user ~]$ chkconfig --list noip
noip
0:off 1:off 2:on 3:on 4:on 5:on 6:off
4.
ここでは、noip はランレベル 2、3、4、5 で on になっています(これは正常です)。これで、更
新クライアントは起動のたびに開始し、パブリック DNS レコードを更新して、インスタンスの IP
アドレスをポイントします。
noip サービスを開始します。
[ec2-user ~]$ sudo service noip start
Starting noip2:
[
OK
]
このコマンドを使用すると、クライアントが起動します。クライアントは前に作成した設定ファイ
ル(/etc/no-ip2.conf)を読み、選択したパブリック DNS 名の IP アドレスを更新します。
5.
更新クライアントが動的 DNS 名に正しい IP アドレスを設定したことを確認します。DNS レコー
ドの更新には数分かかります。その後、この手順で設定したパブリック DNS 名により、SSH を使
用してインスタンスに接続します。
Linux インスタンスでの起動時のコマンドの実行
Abstract
起動時に Amazon Linux インスタンスにユーザーデータを渡します。
Amazon EC2 でインスタンスを起動するとき、起動後にそのインスタンスにユーザーデータを渡し、
一般的な自動設定タスクを実行したり、スクリプトを実行したりできます。2 つのタイプのユーザー
データを Amazon EC2 に渡すことができます。シェルスクリプトと cloud-init ディレクティブで
す。また、このデータはプレーンテキスト、ファイル(コマンドラインツールでインスタンスを起動す
る場合に便利です)、または base64 でエンコードされたテキスト(API 呼出の場合)として、起動
ウィザードに渡すこともできます。
より複雑な自動化シナリオに興味がある場合、AWS CloudFormation や AWS OpsWorks のご利用を検
討してください。詳細については、AWS CloudFormation ユーザーガイド と AWS OpsWorks ユーザー
ガイド を参照してください。
Windows インスタンスの起動時にコマンドを実行する方法については、『Microsoft Windows インスタ
ンスの Amazon EC2 ユーザーガイド』の「ユーザーデータの実行」と「Windows インスタンス設定の
管理」を参照してください。
次の例では、Installing a LAMP Web Server tutorial (p. 37) のコマンドが、シェルスクリプトとインスタ
ンスの起動時に実行される一連の cloud-init ディレクティブに変換されています。各例では、次の
タスクがユーザーデータにより実行されます。
• ディストリビューションソフトウェアパッケージが更新されます。
• 必要なウェブサーバー、php、mysql パッケージがインストールされます。
• httpdchkconfig を介して サービスが開始され、オンになります。
• www グループが追加され、ec2-user がそのグループに追加されます。
• ウェブディレクトリとその中に含まれるファイルに対して、適切な所有権とファイル権限が設定され
ます。
• ウェブサーバーと php エンジンをテストするために、シンプルなウェブページが作成されます。
目次
317
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
起動時のコマンドの実行
• 前提条件 (p. 318)
• ユーザーデータとシェルスクリプト (p. 318)
• ユーザーデータと cloud-init ディレクティブ (p. 319)
• API と CLI の概要 (p. 321)
前提条件
次の例では、インターネットからアクセス可能なパブリック DNS 名がお客様のインスタンスに設定さ
れているものと仮定しています。詳細については、「ステップ 1: インスタンスを起動する (p. 31)」を
参照してください。また、SSH(ポート 22)、HTTP(ポート 80)、HTTPS(ポート 443)接続を許可
するように、セキュリティグループを設定する必要もあります。前提条件の詳細については、Amazon
EC2 でのセットアップ (p. 22) を参照してください。
また、これらの指示は Amazon Linux での使用を意図しています。他の Linux ディストリビューション
の場合、コマンドとディレクティブが動作しないことがあります。cloud-init のサポートなど、その
他のディストリビューションについての詳細は、該当するディストリビューションの文書を参照してく
ださい。
ユーザーデータとシェルスクリプト
シェルスクリプトに詳しい場合、シェルスクリプトが起動時に指示を送る最も簡単で完全な方法となり
ます。cloud-init ログファイル(/var/log/cloud-init.log)にコンソール出力が記録されるの
で、インスタンスが意図したとおりに動作しない場合、起動後にスクリプトを簡単にデバッグできま
す。
Important
ユーザーデータのスクリプトおよび cloud-init ディレクティブは、インスタンスを起動する
ときの初回の起動サイクルでのみ実行されます。
ユーザーデータのシェルスクリプトは、#! の記号と、スクリプトを読み取るインタープリタのパス(通
常は /bin/bash)から始める必要があります。シェルスクリプトの概要については、Linux Documentation
Project(tldp.org)の BASH Programming HOW-TO を参照してください。
ユーザーデータとして入力されたスクリプトは、root ユーザーとして実行されます。そのため、スク
リプトでは sudo コマンドを使用しないでください。作成したファイルはすべて root の所有になるこ
とを忘れないでください。非 root ユーザーにファイルアクセスを与える場合、スクリプトで権限を適
宜変更する必要があります。また、スクリプトはインタラクティブに実行されないため、ユーザーフィー
ドバックを必要とするコマンド(-y フラグのない yum update など)を含めることはできません。
起動時にこれらのタスクを追加すると、インスタンスの起動にかかる時間が増えます。タスクが完了す
るまでさらに数分待ち、それからユーザースクリプトが正常に完了したことをテストしてください。
ユーザーデータでシェルスクリプトをインスタンスに渡すには
1.
AMI からのインスタンスの起動 (p. 256) でインスタンスを起動するための手順を行いますが、Step
6 (p. 257) に到達したら、ユーザーデータスクリプトテキストを [User data] フィールドに貼り付け、
起動手順を完了します。下の例の場合では、スクリプトがウェブサーバーを作成し、設定します。
#!/bin/bash
yum update -y
yum install -y httpd24 php56 mysql55-server php56-mysqlnd
service httpd start
chkconfig httpd on
groupadd www
318
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
起動時のコマンドの実行
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. 520) を参照してください。
3.
(オプション)スクリプトが予定のタスクを完了しなかった場合、あるいはスクリプトがエラーせ
ずにタスクを完了したかを確認するには、cloud-init/var/log/cloud-init.log ログファイル
を調べ、エラーメッセージが出力されていないか探します。
デバッグの詳細情報を取得するには、ディレクティブ cloud-init を指定して
output : { all : '| tee -a /var/log/cloud-init-output.log' }
データセクションを含む MIME マルチパートアーカイブを作成します。このディレクティブによ
り、スクリプトから /var/log/cloud-init-output.log にコマンド出力が送信されます。
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 ディレクティブは、インスタンスを起動する
ときの初回の起動サイクルでのみ実行されます。
319
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
起動時のコマンドの実行
cloud-init の Amazon Linux バージョンは、ベースパッケージで利用できるディレクティブの一部を
サポートしません。一部のディレクティブは名前が変更されています(たとえば、repo_update の代
わりに apt-upgrade が使用されています)。
起動時にこれらのタスクを追加すると、インスタンスの起動にかかる時間が増えます。タスクが完了す
るまでさらに数分待ち、それからユーザーデータディレクティブが完了したことをテストしてくださ
い。
ユーザーデータで cloud-init ディレクティブをインスタンスに渡すには
1.
AMI からのインスタンスの起動 (p. 256) でインスタンスを起動するための手順を行いますが、Step
6 (p. 257) に到達したら、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.
インスタンスが起動し、ユーザーデータのディレクティブを実行するまで十分待ち、それから意図
したタスクをディレクティブが完了したことを確認します。例では、ウェブブラウザにディレク
ティブが作成した PHP テストファイルの URL を入力します。この URL は、インスタンスのパブ
リック DNS アドレスにスラッシュとファイル名を追加したものです。
http://my.public.dns.amazonaws.com/phpinfo.php
PHP 情報ページが表示されるはずです。
Tip
PHP 情報ページが表示されない場合、使用しているセキュリティグループに HTTP(ポー
ト 80)トラフィックを許可するルールが含まれていることを確認します。HTTP ルールを
セキュリティグループに追加する方法については、セキュリティグループへのルールの追
加 (p. 520) を参照してください。
3.
(オプション)ディレクティブが予定のタスクを完了しなかった場合、あるいはディレクティブが
エラーなしでタスクを完了したかを確認するには、cloud-init/var/log/cloud-init.log にある ログ
320
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
ファイルを調べ、エラーメッセージが出力されていないか探します。デバッグの詳細情報を取得す
るには、ディレクティブに次の行を追加します:
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 を使用します。
• AWS Tools for Windows PowerShell:New-EC2Instance コマンドで -UserData を使用します。
• Amazon EC2 CLI:ec2-run-instances コマンドで --user-data を使用します。
• Amazon EC2 Query API:RunInstances コマンドで UserData を使用します。
インスタンスメタデータとユーザーデータ
Abstract
インスタンスメタデータ、動的データ、およびユーザーデータにアクセスして、実行中のインスタンスを管理しま
す。
インスタンスメタデータは、インスタンスに関するデータで、実行中のインスタンスを設定または管理
するために使用します。インスタンスメタデータはいくつかのカテゴリに分けられます。詳細について
は、「インスタンスメタデータのカテゴリ (p. 329)」を参照してください。
EC2 インスタンスには、インスタンスの起動時に生成されるインスタンスアイデンティティドキュメ
ントなどの動的データも含まれます。詳細については、「動的データのカテゴリ (p. 333)」を参照して
ください。
また、インスタンスの起動時に提供したユーザーデータにアクセスすることもできます。たとえば、イ
ンスタンスを設定するためにパラメータを指定したり、単純なスクリプトをアタッチしたりできます。
また、このデータを使用すると、より一般的な AMI を構築することもでき、この AMI は、起動時に提
供される設定ファイルにより、変更が可能になります。たとえば、さまざまな小規模ビジネスを対象と
したウェブサーバーを実行する場合に、すべてのサーバーで同じ AMI を使用し、起動時にユーザーデー
タで指定した Amazon S3 バケットからコンテンツを取得できます。新しい顧客をいつでも簡単に追加
できます。その顧客のバケットを作成し、顧客のコンテンツを追加して、AMI を起動すればよいので
す。複数のインスタンスを同時に起動する場合、ユーザーデータはその予約においてすべてのインスタ
ンスで使用可能です。
Important
インスタンスメタデータおよびユーザーデータにはそのインスタンス自体内からのみアクセス
できるものの、データは暗号化手法によって保護されていません。インスタンスにアクセスで
きるユーザーなら誰でもそのメタデータを参照できます。したがって、重要なデータ(長期間
使用する暗号化キーなど)については、適切な安全策によって保護する必要があります。パス
ワードなどの機密データは、ユーザーデータとして保存しないでください。
目次
321
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
• インスタンスメタデータの取得 (p. 322)
• ユーザーデータの追加 (p. 324)
• ユーザーデータの取得 (p. 325)
• 動的データの取得 (p. 326)
• 例: AMI 作成インデックス値 (p. 326)
• インスタンスメタデータのカテゴリ (p. 329)
• インスタンスアイデンティティドキュメント (p. 333)
インスタンスメタデータの取得
インスタンスメタデータは実行中のインスタンスから取得できるため、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)が付いています。
インスタンスメタデータの取得の例
次の例では、使用できるインスタンスメタデータのバージョンを取得しています。これらのバージョン
は、Amazon EC2 API バージョンと必ずしも関連しているとは限りません。以前のバージョンに存在す
る構造および情報に依存するスクリプトがある場合は、以前のバージョンを使用することができます。
$ curl http://169.254.169.254/
1.0
2007-01-19
322
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
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. 329)」
を参照してください。
$ 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-2bb65342
$ curl http://169.254.169.254/latest/meta-data/reservation-id
r-fea54097
$ curl http://169.254.169.254/latest/meta-data/hostname
ec2-67-202-51-223.compute-1.amazonaws.com
次の例では、使用できるパブリックキーの一覧を取得しています。
323
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
$ 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/inter
faces/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/inter
faces/macs/02:29:96:8f:6a:2d/subnet-id
subnet-be9b61d7
ユーザーデータの追加
ユーザーデータを指定するときは、以下の点に注意してください。
• ユーザーデータは不透明なデータとして取り扱われ、指定したデータがそのまま返されます。この
データを解釈できるかどうかは、インスタンスによって異なります。
• ユーザーデータのサイズの上限は 16 KB です。この制限は、base64 エンコード形式でなく、raw 形
式のデータに適用されます。
324
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
• ユーザーデータは、API に送信する前に base64 でエンコードする必要があります。base64 エンコー
ドは EC2 コマンドラインツールで実行できます。このデータは、インスタンスに提示される前にデ
コードされます。base64 エンコードの詳細については、http://tools.ietf.org/html/rfc4648 を参照して
ください。
• ユーザーデータはインスタンスの起動時にのみ実行されます。インスタンスを停止し、ユーザーデー
タを変更した場合、インスタンスを起動しても、その新しいユーザーデータは自動的には実行されま
せん。
インスタンス起動時のユーザーデータを指定するには
インスタンスの起動時のユーザーデータを指定できます。詳細については、「インスタンスの作
成 (p. 255)」、「cloud-init (p. 121)」および「Linux インスタンスでの起動時のコマンドの実行 (p. 317)」
を参照してください。
実行中のインスタンスのユーザーデータの変更
以前にユーザーデータが割り当てられていて、現在実行中のインスタンスのユーザーデータを変更でき
ます。新しいユーザーデータは、インスタンスを再起動した後で適用されます。
Amazon EBS-backed インスタンスのユーザーデータを変更するには
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Instances] をクリックし、インスタンスを変更します。
[Actions] をクリックして [Instance State] を選択し、[Stop] をクリックします。
Warning
インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されます。
したがって、インスタンスストアボリューム上に維持したいデータがある場合は、必ず永
続的ストレージにバックアップしてください。
4.
5.
6.
確認ダイアログボックスで [Yes, Stop ] をクリックします。インスタンスが停止するまで、数分か
かる場合があります。
インスタンスが選択された状態のまま、[Actions] をクリックし、[Instance Settings] を選択して、
[View/Change User Data] をクリックします。インスタンスの実行中はユーザーデータを変更でき
ないことに注意してください。表示することはできます。
[View/Change User Data] ダイアログボックスで、ユーザーデータを更新し、[Save] をクリックし
ます。
ユーザーデータの取得
ユーザーデータを取得するには、次の URI を使用します。
http://169.254.169.254/latest/user-data
ユーザーデータのリクエストは、データをそのままの状態で返します(コンテンツタイプ
application/x-octetstream)。
次の例では、カンマで区切られたユーザーデータを返しています。
$ curl http://169.254.169.254/latest/user-data
1234,john,reboot,true | 4512,richard, | 173,,,
325
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
次の例では、行で区切られたユーザーデータを返しています。
$ 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
例: AMI 作成インデックス値
この例は、ユーザーデータおよびインスタンスメタデータの両方を使用してインスタンスを設定する方
法を示しています、
この例では、Alice がお気に入りの データベース AMI の 4 つのインスタンスを起動したいと考えてい
ます。そのうち最初の 1 つはマスターとして、残りの 3 つはレプリカとして動作します。これらのイ
ンスタンスを起動するときに、各レプリカントのレプリケーション戦略に関するユーザーデータを追加
したいと考えています。このデータはすべての 4 つのインスタンスで使用可能となるので、どの部分が
各インスタンスに該当するかをそれぞれが認識できるように、ユーザーデータを構築する必要がありま
す。この構築は、各インスタンスに対して一意となる ami-launch-index インスタンスメタデータ値
を使用して行うことができます。
Alice が構築したユーザーデータを次に示します。
replicate-every=1min | replicate-every=5min | replicate-every=10min
replicate-every=1min データは最初のレプリカントの設定を定義し、replicate-every=5min は
2 番目のレプリカントの設定を定義するというように、それぞれが定義を行います。Alice は、個別の
インスタンスのデータをパイプシンボル(|)で区切って、このデータを ASCII 文字列として指定する
ことにしました。
Alice は次のようにユーザーデータを指定して、4 つのインスタンスを起動します。
$ ec2-run-instances ami-2bb65342 -n 4 -d "replicate-every=1min | replicateevery=5min | replicate-every=10min"
RESERVATION
r-fea54097
598916040194
326
default
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
INSTANCE i-10a64379 ami-2bb65342 pending 0 m1.small 2010-03-19T13:59:03+0000
us-east-1a aki-94c527fd ari-96c527ff monitoring-disabled ebs
INSTANCE i-10a64380 ami-2bb65342 pending 0 m1.small 2010-03-19T13:59:03+0000
us-east-1a aki-94c527fd ari-96c527ff monitoring-disabled ebs
INSTANCE i-10a64381 ami-2bb65342 pending 0 m1.small 2010-03-19T13:59:03+0000
us-east-1a aki-94c527fd ari-96c527ff monitoring-disabled ebs
INSTANCE i-10a64382 ami-2bb65342 pending 0 m1.small 2010-03-19T13:59:03+0000
us-east-1a aki-94c527fd ari-96c527ff monitoring-disabled ebs
起動したすべてのインスタンスに、ユーザーデータのコピーと次に示す一般的なメタデータが含まれて
います。
• AMI ID: ami-2bb65342
• 予約 ID: r-fea54097
• パブリックキー: none
• セキュリティグループ名: default
• インスタンスタイプ: m1.small
ただし、各インスタンスには所定の一意のメタデータが含まれます。
インスタンス 1
メタデータ
値
instance-id
i-10a64379
ami-launch-index
0
public-hostname
ec2-67-202-51-223.compute-1.amazonaws.com
public-ipv4
67.202.51.223
local-hostname
ip-10-251-50-35.ec2.internal
local-ipv4
10.251.50.35
インスタンス 2
メタデータ
値
instance-id
i-10a64380
ami-launch-index
1
public-hostname
ec2-67-202-51-224.compute-1.amazonaws.com
public-ipv4
67.202.51.224
local-hostname
ip-10-251-50-36.ec2.internal
local-ipv4
10.251.50.36
インスタンス 3
327
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
メタデータ
値
instance-id
i-10a64381
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-10a64382
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/ami-launchindex`
3. ユーザーデータを変数として保存します。
$ user_data=`curl http://169.254.169.254/latest/user-data/`
4. 最後に、Alice は cut コマンドを使用して、そのインスタンスに該当するユーザーデータの部分を抽
出します。
$ echo $user_data | cut -d"|" -f"$ami_launch_index"
replicate-every=5min
328
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
インスタンスメタデータのカテゴリ
次の表は、インスタンスメタデータのカテゴリをまとめたものです。
データ
説明
導入されたバージョン
ami-id
インスタンスの起動に使用される AMI 1.0
ID。
ami-launch-index
同時に複数のインスタンスを起動し 1.0
た場合、この値はインスタンスが起
動された順序を示します。最初に起
動されたインスタンスの値は 0 です。
ami-manifest-path
Amazon S3 での AMI のマニフェスト 1.0
ファイルのパス。Amazon EBSBacked AMI を使用してインスタンス
を起動した場合、返される結果は unknown です。
ancestor-ami-ids
この AMI を作成するために再バンド 2007-10-10
ルされたあらゆるインスタンスの AMI
ID。この値は、AMI マニフェストファ
イルが ancestor-amis キーを含む
場合にのみ存在します。
block-device-mapping/ami
root/boot ファイルシステムを含む仮
想デバイス。
block-device-mapping/ebs
N
Amazon EBS ボリュームに関連付け 2007-12-15
られた仮想デバイス(存在する場
合)。Amazon EBS ボリュームは、
起動の時点またはインスタンスが最
後に開始された時点で存在している
場合にのみ、メタデータで使用でき
ます。N は、Amazon EBS ボリュー
ムのインデックス(ebs1 や ebs2 な
ど)を示します。
2007-12-15
block-device-mapping/ephem- エフェメラルデバイスに関連付けら 2007-12-15
eral
れた仮想デバイス(存在する場合)。
N
N は、エフェメラルボリュームのイ
ンデックスを示します。
block-device-mapping/root
ルートデバイスに関連付けられた仮 2007-12-15
想デバイスまたはパーティション、
あるいは仮想デバイス上のパーティ
ション。ルート(/ または C:)ファイ
ルシステムは、所定のインスタンス
に関連付けられています。
block-device-mapping/swap
swap に関連付けられた仮想デバイ
ス。存在しない場合もあります。
hostname
インスタンスのプライベートホスト 1.0
名。複数のネットワークインターフェ
イスが存在する場合、これは eth0 デ
バイス(デバイス番号が 0 のデバイ
ス)を示します。
329
2007-12-15
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
データ
説明
導入されたバージョン
iam/info
起動時にインスタンスに関連付けら 2012-01-12
れた IAM ロールがある場合、インス
タンスの LastUpdated の日付、InstanceProfileArn、InstanceProfileId など、
インスタンスのプロファイルが更新
された最終時刻に関する情報が格納
されます。そうでない場合は、なし
になります。
iam/security-credentials
/role-name
起動時にインスタンスに関連付けら 2012-01-12
れた IAM ロールがある場合、rolename はロールの名前になり、rolename に、そのロールに関連付けられ
た一時的なセキュリティ認証情報が
格納されます(詳細については、「イ
ンスタンスメタデータからセキュリ
ティ認証情報を取得する (p. 571)」を
参照してください)。そうでない場
合は、なしになります。
instance-action
バンドルの準備のために再起動する 2008-09-01
必要があることをインスタンスに伝
えます。有効な値: none | shutdown
| bundle-pending.
instance-id
このインスタンスの ID。
instance-type
インスタンスの種類。詳細について 2007-08-29
は、「インスタンスタイプ (p. 133)」
を参照してください。
kernel-id
このインスタンスで起動したカーネ
ルの ID(ある場合)。
local-hostname
インスタンスのプライベート DNS ホ 2007-01-19
スト名。複数のネットワークインター
フェイスが存在する場合、これはeth0
デバイス(デバイス番号が 0 のデバ
イス)を示します。
local-ipv4
インスタンスのプライベート IP アド 1.0
レス。複数のネットワークインター
フェイスが存在する場合、これはeth0
デバイス(デバイス番号が 0 のデバ
イス)を示します。
mac
インスタンスのメディアアクセスコ 2011-01-01
ントロール(MAC)アドレス。複数
のネットワークインターフェイスが
存在する場合、これは eth0 デバイス
(デバイス番号が 0 のデバイス)を
示します。
330
1.0
2008-02-01
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
データ
説明
導入されたバージョン
network/interfaces/macs/
mac/device-number
そのインターフェイスに関連付けら 2011-01-01
れた固有のデバイス番号。デバイス
番号はデバイス名に対応します。例
えば、2 という device-number は
eth2 デバイスを指します。このカテ
ゴリは、Amazon EC2 API、Amazon
EC2、CLI、および AWS CLI の EC2
コマンドで使用される DeviceIndex
および device-index フィールドに
対応しています。
network/interfaces/macs/
mac/ipv4-associations/pu
blic-ip
各 public-ip アドレスに関連付けら 2011-01-01
れ、そのインターフェイスに割り当
てられたプライベート IPv4 アドレ
ス。
network/interfaces/macs/
mac/local-hostname
インターフェイスのローカルホスト
名。
2011-01-01
network/interfaces/macs/
mac/local-ipv4s
インターフェイスに関連付けられた
プライベート IP アドレス。
2011-01-01
network/interfaces/macs/
mac/mac
インスタンスの MAC アドレス。
2011-01-01
network/interfaces/macs/
mac/owner-id
ネットワークインターフェイスの所 2011-01-01
有者の ID。複数インターフェイスの
環境では、インターフェイスは
Elastic Load Balancing などのサード
パーティによってアタッチできます。
インターフェイス上のトラフィック
は、常にインターフェイス所有者に
対して課金されます。
network/interfaces/macs/
mac/public-hostname
インターフェイスのパブリック
2011-01-01
DNS。インスタンスが VPC 内に存在
する場合、このカテゴリは、enableDnsHostnames 属性が true に
設定されている場合にのみ返されま
す。詳細については、「Using DNS
with Your VPC」を参照してくださ
い。
network/interfaces/macs/
mac/public-ipv4s
インターフェイスに関連付けられた 2011-01-01
Elastic IP アドレス。インスタンスに
は複数の IP アドレスが存在する場合
があります。
network/interfaces/macs/
mac/security-groups
ネットワークインターフェイスが属
するセキュリティグループ。VPC 内
に起動されたインスタンスに対して
のみ返されます。
331
2011-01-01
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
データ
説明
導入されたバージョン
network/interfaces/macs/
mac/security-group-ids
ネットワークインターフェイスが属 2011-01-01
するセキュリティグループの ID。
VPC 内に起動されたインスタンスに
対してのみ返されます。EC2-VPC プ
ラットフォームのセキュリティグルー
プの詳細については、「Security
Groups for Your VPC」を参照してく
ださい。
network/interfaces/macs/
mac/subnet-id
インターフェイスが存在するサブネッ 2011-01-01
トの ID。VPC 内に起動されたインス
タンスに対してのみ返されます。
network/interfaces/macs/
mac/subnet-ipv4-cidr-block
インターフェイスが存在するサブネッ 2011-01-01
トの CIDR ブロック。VPC 内に起動
されたインスタンスに対してのみ返
されます。
network/interfaces/macs/
mac/vpc-id
インターフェイスが存在する VPC の 2011-01-01
ID。VPC 内に起動されたインスタン
スに対してのみ返されます。
network/interfaces/macs/
mac/vpc-ipv4-cidr-block
インターフェイスが存在する VPC の 2011-01-01
CIDR ブロック。VPC 内に起動され
たインスタンスに対してのみ返され
ます。
placement/availability-zone インスタンスが起動した利用可能ゾー 2008-02-01
ン。
product-codes
インスタンスに関連付けられた製品
コード(ある場合)。
public-hostname
インスタンスのパブリック DNS。イ 2007-01-19
ンスタンスが VPC 内に存在する場
合、このカテゴリは、enableDnsHostnames 属性が true に設定さ
れている場合にのみ返されます。詳
細については、「Using DNS with
Your VPC」を参照してください。
public-ipv4
パブリック IP アドレス。インスタン 2007-01-19
スに Elastic IP アドレスが関連付けら
れている場合、返される値は Elastic
IP アドレスです。
public-keys/0/openssh-key
パブリックキー。インスタンスの起
動時に指定された場合のみ返されま
す。
ramdisk-id
起動時に指定された RAM ディスクの 2007-10-10
ID(該当する場合)。
reservation-id
予約の ID。
332
2007-03-01
1.0
1.0
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
データ
説明
導入されたバージョン
security-groups
インスタンスに適用されるセキュリ 1.0
ティグループの名前。
起動後は、VPC 内で実行されている
インスタンスのセキュリティグルー
プのみを変更できます。これらの変
更は、この場所と network/interfaces/macs/mac/security-groups に反
映されます。
services/domain
リージョンの AWS リソースのドメイ 2014-02-25
ン(us-east-1 の場合は amazonaws.com など)。
spot/termination-time
スポットインスタンスのオペレーティ 2015-01-05
ングシステムがシャットダウン信号
を受信するおよその時刻(UTC)。
この項目は、スポットインスタンス
に Amazon EC2 による終了のマーク
が付けられている場合にのみ存在し、
時刻値(たとえば 2015-0105T18:02:00Z)が含まれます。 ユー
ザー自身がスポットインスタンスを
終了した場合、termination-time 項目
に時刻は設定されません。
動的データのカテゴリ
次の表は、動的データのカテゴリをまとめたものです。
データ
説明
導入された
バージョン
fws/instance-monitor- 顧客が CloudWatch で詳細な 1 分間隔のモニタリングを 2009-04-04
ing
有効にしているかどうかを示す値。有効な値: enabled |
disabled
instance-identity/document
インスタンス ID、プライベート IP アドレスなど、インス 2009-04-04
タンスの属性を含む JSON。「インスタンスアイデンティ
ティドキュメント (p. 333)」を参照してください。
instance-identity/pkcs7
署名に対してドキュメントの真正性およびコンテンツを確 2009-04-04
認するために使用されます。「インスタンスアイデンティ
ティドキュメント (p. 333)」を参照してください。
instance-identity/signature
オリジンおよび権限を確認するために使用できるデータ。 2009-04-04
「インスタンスアイデンティティドキュメント (p. 333)」
を参照してください。
インスタンスアイデンティティドキュメント
Abstract
インスタンスアイデンティティドキュメントを使用して、インスタンスの属性を検証します。
333
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
インスタンスアイデンティティドキュメントは、インスタンスについて説明する JSON ファイルです。
インスタンスアイデンティティドキュメントには、署名と PKCS7 署名が添付されています。これを使
用して、ドキュメント内の情報の正確性、オリジン、および正当性を検証することができます。たとえ
ば、更新が有料である無料のソフトウェアをダウンロードする場合があるとします。
インスタンスが起動するときにインスタンスアイデンティティドキュメントが生成され、インスタンス
メタデータ (p. 321)を通じてインスタンスに公開されます。このドキュメントは、サブスクライブした
ソフトウェア、インスタンスサイズ、インスタンスタイプ、オペレーティングシステム、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-3d168483",
"billingProducts" : null,
"instanceType" : "t1.micro",
"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
334
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN
MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD
VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z
b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt
YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ
21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T
rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE
Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4
nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb
FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb
NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE
例: PKCS7 署名の確認
PKCS7 署名を使用して、リージョンの AWS パブリック証明書に対して検証することにより、インス
タンスを確認できます。
US East (N. Virginia)、米国西部(オレゴン)、米国西部(北カリフォルニア)、欧州(アイルラン
ド)、欧州(フランクフルト)、アジアパシフィック(東京)、アジアパシフィック (ソウル)、アジア
パシフィック(シンガポール)、アジアパシフィック(シドニー)、および 南米(サンパウロ)リー
ジョンの 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 パブリック証明書は次のとおりです。
-----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
335
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスメタデータとユーザーデータ
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)
curl -s http://169.254.169.254/latest/dynamic/instance-identity/document >
$DOCUMENT
4.
5.
テキストエディターを開き、AWSpubkey というファイルを作成します。上記の AWS パブリック
証明書の内容をコピーしてファイルに貼り付け、保存します。
次のように、OpenSSL ツールを使用して署名を確認します。
openssl smime -verify -in $PKCS7 -inform PEM -content $DOCUMENT -certfile
AWSpubkey -noverify > /dev/null
Verification successful
336
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのリモート管理
Amazon EC2 インスタンスのリモート管理
Abstract
SSM Run Command を使用して AWS Amazon EC2 インスタンスの設定をリモート管理します。
Simple Systems Manager (SSM) Run Command 機能を使用して、Amazon EC2 インスタンスの設定を
安全にリモートで管理できます。Run Command を使用して、ローカルにインスタンスデスクトップに
ログオンする必要なく、一般的な管理タスクを簡単な方法で実行できます。複数のインスタンスでコマ
ンドを同時に実行することで、インスタンスのフリーと全体の設定変更を管理できます。Run Command
は各コマンドのステータスと結果をレポートします。
Note
Windows 用の SSM Run Command の詳細については、Microsoft Windows インスタンスの
Amazon EC2 ユーザーガイド の「Manage AWS EC2 Instances Remotely」を参照してくださ
い。SSM Run Command API の詳細については、「Amazon EC2 Simple Systems Manager
API Reference」を参照してください。
ここでは、Run Command を使用して実行できるタスクのタイプについていくつか例を示します。
•
•
•
•
•
•
•
•
シェルスクリプトの実行
ユーザーまたはグループを追加し、アクセス許可を設定する
すべての実行中のサービスを表示する
サービスを停止または起動する
システムリソースを表示する
ログファイルを表示する
ファイルオペレーションを実行する
アプリケーションをインストールまたはアンインストールする
Amazon EC2 Run Command の使用
Run Command は定義済み SSM ドキュメントを使用します。インスタンスで実行したい変更を決定
し、そのオペレーションを実行するための定義済み SSM ドキュメントを選択します。たとえば、イン
スタンスで AWS-RunShellScript ドキュメントを使用して Shell スクリプトを実行できます。
コマンドを実行すると、インスタンスのエージェントは、AWS Identity and Access Management (IAM)
ロールを使用して Run Command サービスにアクセスします。インスタンスで実行されている Amazon
SSM agent によってコマンドが処理され、指定されたとおりにインスタンスを設定し、出力と結果を
記録します。Run Command ではコマンド履歴を 30 日間保存します。この情報は AWS CloudTrail に
も保存され、データが削除されるまで保持されます。詳細については、Amazon EC2 Simple Systems
Manager API Reference で API 呼び出しの監査に関するトピックを参照してください。.
コマンドの送信
コマンドを送信すると、Run Command はコマンドの実行を 1 回試みます。同時に複数のコマンドを送
信することもできます。コマンドは非同期的に実行されます。システムは、各コマンドのキューイン
グ、実行、キャンセル、および報告を管理します。ただし、コマンド実行の順序は保証されません。デ
フォルトでは、Run Command はスロットル制限を使用して、1 分および 1 インスタンスあたり 60 個
を超えるコマンドが実行されないようにします。コマンドの実行時にインスタンスが実行されていない
場合または応答していない場合、インスタンスが応答するようになるとシステムがキューイングを行
い、実行を試みます。デフォルトでは、システムは、コマンドのキューイングを行い、リクエスト後最
長 31 日間インスタンスの実行を試みます。コマンドステータスの詳細については、「コマンドを監視
する (p. 368)」を参照してください。
337
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
IAM を使用して、ユーザーまたはユーザーのグループが 1 つまたは複数のインスタンスで実行できる
コマンドを制御できます。Run Command へのアクセス制限の詳細については、「SSM Run Command
へのアクセスの委任 (p. 354)」を参照してください。
目次
• SSM Run Command の前提条件 (p. 338)
• SSM Run Command 用の IAM ロールとユーザーの設定 (p. 340)
• SSM エージェントの設定 (p. 345)
• SSM Run Command へのアクセスの委任 (p. 354)
• SSM Run Command を使用したコマンドの実行 (p. 356)
• Amazon EC2 コンソールでのコマンド出力の確認 (p. 359)
• 独自のコマンドを作成する (p. 360)
• SSM Run Command のウォークスルー (p. 360)
• コマンドをキャンセルする (p. 368)
• コマンドを監視する (p. 368)
• SSM Run Command のトラブルシューティング (p. 370)
SSM Run Command の前提条件
SSM Run Command には、次の制約事項と前提条件があります。Windows の前提条件については、
Microsoft Windows インスタンスの Amazon EC2 ユーザーガイド の「SSM Run Command Prerequisites」
を参照してください。
制約事項
Run Command は、SSM リージョンでのみ利用できます。
前提条件
要件
詳細
サポートされるオペレーティングシステム
インスタンスが Linux のサポートされているバー xuniL
ジョンを実行している必要があります。
IM
A
の
64 ビットおよび 32 ビットシステム
検
)5
7.p索
(
• Amazon Linux 2014.09、2014.03 以降
• Ubuntu Server 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 以降
• CentOS 7.1 以降
338
追
加
情
報
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
要件
詳細
追
加
情
報
エージェント
インスタンスが SSM エージェントの最新バージョ MSS
ンを実行している必要があります。
ー
エ
ェ
ジ
ン
ト
の
設
)5
4
3.p定
(
IAM ロールとアクセス許可
Run Command では、コマンドを処理するサー MSS
バーインスタンスの IAM EC2 インスタンスと、 nuR
それとは別にコマンドを実行するユーザーのロー m
-oC
ルが必要です。両方のロールには、SSM API と通 dna
m
信できる権限ポリシーが必要です。
用
の
インスタンスやユーザーに対して、SSM 管理ポリ M
AI
シーを使用するか、または独自の IAM ポリシーを ー
ロ
作成できます。EC2 インスタンスに既存の IAM
ル
ロールを使用する場合、ロールの信頼ポリシーに と
ec2.amazonaws.com が含まれていることを確認 ー
ユ
する必要があります。
ー
ザ
の
設
)0
4
3.p定
(
インターネットアクセス
EC2 インスタンスで、アウトバウンドのインター
ネットアクセスが可能であることを確認します。
インバウンドのインターネットアクセスは必須で
はありません。
イ
ン
ー
タ
ッ
ネ
ト
ー
ゲ
ト
ェ
ウ
イ
Amazon S3 バケット (オプション)
コマンド出力を Amazon S3 バケットに保存でき
ます。Amazon EC2 コンソールでのコマンド出力
は、2500 文字を超えると切り捨てられます。さ
らに、Run Command 出力の整理に役立つ Amazon
S3 キープレフィックス (サブフォルダ) の作成も
検討してください。
バ
ッ
ケ
ト
の
作
成
前提条件を設定したら、SSM Run Command を使用したコマンドの実行 (p. 356)を参照して手順を確認
してください。Run Command 例を表示するには、「SSM Run Command のウォークスルー (p. 360)」
を参照してください。
関連トピック
• Amazon EC2 Simple Systems Manager API Reference
• AWS Command Line Interface Referenceの「Amazon EC2 Simple Systems Manager」セクション
339
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command 用の IAM ロールとユーザーの設定
SSM Run Command 用の IAM ロールとユーザーの設
定
SSM Run Command では、コマンドを処理する EC2 インスタンスの IAM ロールと、それとは別にコ
マンドを実行するユーザーのロールが必要です。両方のロールには、SSM API と通信できる権限ポリ
シーが必要です。EC2 インスタンスに既存の IAM ロールを使用する場合、ロールの信頼ポリシーに
ec2.amazonaws.com が含まれていることを確認する必要があります。詳細については、「信頼ポリ
シーの確認 (p. 343)」を参照してください。
Important
インスタンスロールは、EC2 インスタンスの作成時に割り当てる必要があります。既存のイン
スタンスから AMI を作成し、その AMI から新しいインスタンスを作成して、このロールを割
り当てることもできます。 SSM 管理ポリシーを使用するか、提供されている例に示すように
独自のロールを作成してアクセス許可を指定するかを選択できます。
目次
• Run Command に対するアクセスを委任する際は注意する (p. 340)
• SSM 管理ポリシーを使用する (p. 340)
• 独自のロールとポリシーの設定 (p. 341)
• EC2 インスタンスロールを使用した新しい EC2 インスタンスの作成 (p. 345)
Run Command に対するアクセスを委任する際は注意する
Amazon SSM エージェントは Linux インスタンスのルートとして動作するため、SSM で指定されたド
キュメントまたはスクリプトの実行にはインスタンスの管理者権限が必要です。ユーザーに、事前定義
済みの SSM ドキュメント (AWS-* から始まるドキュメント) を実行する権限がある場合、そのユーザー
には、インスタンスへの管理者アクセス権もあります。SSM および Run Command へのアクセス権
は、慎重に委任してください。独自の SSM ドキュメントを作成する場合は、このことが非常に重要に
なります。
Important
Amazon Web Services では、安全な SSM ドキュメントの作成方法オブジェクトに関するガイ
ダンスが提供されていません。SSM ドキュメントの作成と、Run Command アクションへのア
クセス権の委任は、ご自分の判断で行ってください。セキュリティ上のベストプラクティスと
して、AWS-* ドキュメント (特に AWS-RunShellScript ドキュメント) へのアクセス権は信頼で
きる管理者のみに割り当てることをお勧めします。特定のタスク用に SSM ドキュメントを作
成して、管理者以外のユーザーにアクセス権を委任することもできます。詳細については、
「SSM Run Command へのアクセスの委任 (p. 354)」を参照してください。
SSM 管理ポリシーを使用する
Run Command は、EC2 インスタンスを設定するための Amazon EC2 Simple Systems Manager (SSM)
の拡張機能です。SSM 用の IAM 管理ポリシーを使用すると、Run Command のユーザーおよびインス
タンスにアクセス許可と権限を迅速に設定できます。これらのポリシーは、次のスクリーンショットに
示すように、IAM コンソールの [Policies] ページで SSM を検索することによって確認できます。
340
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command 用の IAM ロールとユーザーの設定
管理ポリシーは以下の役割を果たします。
• AmazonEC2RoleforSSM (インスタンス信頼ポリシー): このポリシーを使用すると、インスタンスが
Run Command の API とやり取りできるようになります。
• AmazonSSMFullAccess (ユーザー信頼ポリシー): このポリシーは、Run Command API および SSM
ドキュメントへのアクセス権をユーザーに付与します。このポリシーは、管理者および信頼されたパ
ワーユーザーに割り当てます。
• AmazonSSMReadOnlyAccess (ユーザー信頼ポリシー): このポリシーは、Get や List など、読み取り
専用の API アクションへのアクセス権をユーザーに付与します。
これらのポリシーを設定する方法については、「管理ポリシーとインラインポリシー」を参照してくだ
さい。
独自のロールとポリシーの設定
SSM 管理ポリシーを使用しない場合は、次の手順を使用して SSM EC2 インスタンスロールおよび
SSM ユーザーアカウントを作成および設定します。
Important
既存の EC2 インスタンスロールおよびユーザーアカウントを使用する場合、このセクション
に記載されているポリシーを、ロールおよびユーザーアカウントにアタッチする必要がありま
す。また、ec2.amazonaws.com が EC2 インスタンスロールの信頼ポリシーに含まれているこ
とを確認する必要があります。詳細については、「信頼ポリシーの確認 (p. 343)」を参照してく
ださい。
EC2 インスタンスの IAM ポリシーの作成
次に示す IAM ポリシーでは、EC2 インスタンスが Run Command の API アクションとやり取りできる
ようになります。ロールを作成し、このトピックで次のポリシーをそのロールにアタッチします。
EC2 インスタンスの IAM ポリシーを作成するには
1.
2.
3.
4.
https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。
ナビゲーションペインで、[Policies] を選択します (IAM の初回使用時は、[Get Started]、[Create
Policy] の順に選択します)。
[Create Your Own Policy] の横の [Select] を選択します。
ポリシー名 (RunCommandInstance など) と説明を入力し、次に示すポリシーをコピーして [Policy
Document] フィールドに貼り付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:DescribeAssociation",
"ssm:GetDocument",
"ssm:ListAssociations",
"ssm:UpdateAssociationStatus",
"ssm:UpdateInstanceInformation"
],
"Resource": "*"
},
341
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command 用の IAM ロールとユーザーの設定
{
"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": "*"
},
{
"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": "*"
}
]
}
342
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command 用の IAM ロールとユーザーの設定
5.
[Validate Policy] を選択します。ポリシーが有効であることを検証します。エラーが発生した場合
は、始めかっこと終わりかっこ { } が含まれていることを確認してください。ポリシーを検証した
後で、[Create Policy] を選択します。
IAM ユーザーポリシーの作成
このポリシーを使用すると、ユーザーが Run Command の API アクションをインスタンスで呼び出す
ことができます。ユーザーアカウントを作成し、このトピックでそのアカウントにポリシーをアタッチ
します。
IAM ユーザーポリシーを作成するには
1.
2.
前の手順を繰り返してユーザー用のポリシーを作成します。
以下のポリシーをコピーして [Policy Document] フィールドに貼り付け、ポリシーを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:*",
"ec2:DescribeInstanceStatus"
],
"Resource": "*"
}
]
}
EC2 インスタンスロールの作成
EC2 インスタンスロールでは、インスタンスが Run Command の API アクションとやり取りできるよ
うになります。ロールでは、前に作成した EC2 インスタンスポリシーを使用します。
EC2 インスタンスロールを作成するには
1.
2.
3.
4.
5.
IAM コンソールのナビゲーションペインで、[Roles]、[Create New Role] の順に選択します。
[Set Role Name] ページで、ロールの名前を入力します。RunCommandInstance など、インスタン
スロールであるとわかる名前にします。[Next Step] を選択します。
[Select Role Type] ページで、[Amazon EC2] の隣にある [Select] を選択します。
[Attach Policy] ページで、先ほど作成した RunCommandInstance ポリシーを選択します。[Next
Step] を選択します。
ロール情報を確認し、[Create Role] を選択します。
信頼ポリシーの確認
既存の EC2 インスタンスロールを使用する場合、ロールの信頼ポリシーに ec2.amazonaws.com が含
まれていることを確認する必要があります。新しい EC2 インスタンスロールを作成した場合は、信頼
されたエンティティとして ec2.amazonaws.com を追加する必要があります。
343
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command 用の IAM ロールとユーザーの設定
信頼ポリシーを確認するには
1.
IAM コンソールのナビゲーションペインで、[Roles] を選択し、作成したサーバーロールを選択し
ます。
2.
3.
[Trust Relationships] を選択します。
[Trusted Entities] の下に、ec2.amazonaws.com が表示されていることを確認します。表示されて
いない場合は、[Edit Trust Relationship] を選択します。
以下のポリシーをコピーして [Policy Document] フィールドに貼り付け、ポリシーを作成します。
4.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
ユーザーアカウントの作成
ユーザーアカウントにより、ユーザーはインスタンスで Run Command API アクションを呼び出すこ
とができます。このアカウントでは、前に作成した IAM ユーザーポリシーを使用します。
ユーザーアカウントを作成するには
1.
2.
3.
4.
IAM コンソールの [Users] ページで、[Create New Users] を選択します。
ユーザー名 (RunCommandUser など) を指定し、[Generate an access key for each user] オプショ
ンが選択されていることを確認します。
[Create] を選択します。
[Download Credentials] を選択します。デフォルトでは、認証情報を .csv ファイルとして保存する
ようにシステムから求められます。
Important
ダウンロードした .csv ファイルからの RunCommandUser アクセスキーとシークレット
キーを書き留めておきます。
5.
6.
[Close] を選択します。
[IAM ダッシュボード] で、[Users] を選択し、作成したユーザーを見つけます。
7.
ユーザー名を選択し (名前の横にあるオプションは選択しないでください)、[Attach Policy] を選択
します。
先ほど作成したユーザーポリシーを選択し、[Attach Policy] を選択します。
8.
344
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
EC2 インスタンスロールを使用した新しい EC2 インスタンス
の作成
この手順では、先ほど作成した ロールを使用する新しい EC2 インスタンスの作成方法について説明し
ます。ロールは、EC2 インスタンスにその起動時に割り当てられます。すでに実行されているインス
タンスに割り当てることはできません。すでに実行中のインスタンスにロールを追加する必要がある場
合は、インスタンスのイメージを作成し、必要なロールをそのイメージに割り当てた後、そのイメージ
から新しいインスタンスを起動します。
EC2 インスタンスロールを使用するインスタンスを作成するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
サポートされているregionに切り替えます。
[Launch Instance] を選択し、[Linux] インスタンスを選択します。
3.
4.
5.
インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。
[IAM role] ドロップダウンリストで、先ほど作成した EC2 インスタンスロールを選択します。
ウィザードを終了します。
Run Command を使用して設定する他のインスタンスを作成した場合は、各インスタンスについて EC2
インスタンスロールを指定する必要があります。
SSM エージェントの設定
Amazon EC2 Simple Systems Manager (SSM) エージェントは Run Command 要求を処理し、要求に
指定されたインスタンスを設定します。SSM エージェントのインストール、設定、またはアンインス
トールには、次の手順を使用します。
目次
• 開始時における SSM エージェントのインストール (p. 345)
• SSM エージェントの手動インストール (p. 347)
• SSM エージェントがプロキシを使用するように設定する (p. 352)
• SSM エージェントのアンインストール (p. 353)
開始時における SSM エージェントのインストール
EC2 ユーザーデータを使用してインスタンスを初めて起動する際に SSM エージェントをインストール
できます。起動ウィザードの [Configure Instance Details] ページで、[Advanced Details] を展開し、次
のスクリプトのいずれかをコピーして [User data] フィールドに貼り付けます。以下に例を示します。
345
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
以下のスクリプトで、<region> を SSM リージョンのいずれかに置き換えます。ダウンロードに伴う
リージョン間のデータ転送のコストを回避するには、EC2 インスタンスのリージョンを指定します。
SSM リージョン
場所
リージョン
米国東部 (バージニア北部)
us-east-1
米国西部 (オレゴン)
us-west-2
米国西部(北カリフォルニア)
us-west-1
欧州 (アイルランド)
eu-west-1
欧州 (フランクフルト)
eu-central-1
アジアパシフィック(シンガポー
ル)
ap-southeast-1
アジアパシフィック(東京)
ap-northeast-1
アジアパシフィック (シドニー)
ap-southeast-2
南米(サンパウロ)
sa-east-1
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 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
Ubuntu Server 32 ビット
#!/bin/bash
cd /tmp
curl https://amazon-ssm-<region>.s3.amazonaws.com/latest/debian_386/amazon-ssm-
346
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
agent.deb -o amazon-ssm-agent.deb
dpkg -i amazon-ssm-agent.deb
変更を保存して、ウィザードを完了します。インスタンスが起動すると、システムは SSM エージェン
トをインスタンスにコピーし、それを起動します。インスタンスがオンラインの場合は、Run Command
を使用して設定できます。詳細については、「SSM Run Command を使用したコマンドの実行 (p. 356)」
を参照してください。
SSM エージェントの手動インストール
以下のいずれかのスクリプトを使用して、Amazon Linux、Ubuntu、CentOS、または Red Hat Enterprise
Linux に SSM エージェントをインストールします。以下のスクリプトで、<region> を SSM リージョ
ンのいずれかに置き換えます。
SSM リージョン
場所
リージョン
米国東部 (バージニア北部)
us-east-1
米国西部 (オレゴン)
us-west-2
米国西部(北カリフォルニア)
us-west-1
欧州 (アイルランド)
eu-west-1
欧州 (フランクフルト)
eu-central-1
アジアパシフィック(シンガポー
ル)
ap-southeast-1
アジアパシフィック(東京)
ap-northeast-1
アジアパシフィック (シドニー)
ap-southeast-2
南米(サンパウロ)
sa-east-1
• SSM エージェントの Amazon Linux へのインストール (p. 347)
• Ubuntu への SSM エージェントのインストール (p. 348)
• Red Hat Enterprise Linux への SSM エージェントのインストール (p. 349)
• CentOS への SSM エージェントのインストール (p. 351)
SSM エージェントの Amazon Linux へのインストール
SSM エージェントをインストールするには、Amazon Linux インスタンスに接続して次のステップを実
行します。Run Command を使用してコマンドを実行するそれぞれのインスタンスで、これらのステッ
プを実行します。
SSM エージェントを Amazon Linux にインストールするには
1.
インスタンスに一時ディレクトリを作成します。
mkdir /tmp/ssm
347
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
2.
以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードし
ます。<region> を SSM リージョンのいずれかに置き換えます。ダウンロードに伴うリージョン
間のデータ転送のコストを回避するには、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" と返されるはずです。
status amazon-ssm-agent
5.
前のコマンドで "amazon-ssm-agent is stopped" と返された場合は、以下のコマンドを実行します。
a.
サービスの開始.
sudo start amazon-ssm-agent
b.
エージェントのステータスを確認します。
status amazon-ssm-agent
Ubuntu への SSM エージェントのインストール
SSM エージェントをインストールするには、Ubuntu インスタンスに接続して次のステップを実行しま
す。Run Command を使用してコマンドを実行するそれぞれのインスタンスで、これらのステップを実
行します。
Ubuntu に SSM エージェントをインストールするには
1.
インスタンスに一時ディレクトリを作成します。
mkdir /tmp/ssm
2.
以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードし
ます。<region> を SSM リージョンのいずれかに置き換えます。ダウンロードに伴うリージョン
間のデータ転送のコストを回避するには、EC2 インスタンスのリージョンを指定します。
348
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
64 ビット
curl https://amazon-ssm-<region>.s3.amazonaws.com/latest/debian_amd64/amazonssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb
32 ビット
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 エージェントが実行中であるかどうかを判断するために次のコマンドを実行します。このコ
マンドによって "amazon-ssm-agent is running" と返されるはずです。
status amazon-ssm-agent
5.
前のコマンドで "amazon-ssm-agent is stopped" と返された場合は、以下のコマンドを実行します。
a.
サービスの開始.
sudo start amazon-ssm-agent
b.
エージェントのステータスを確認します。
status amazon-ssm-agent
Red Hat Enterprise Linux への SSM エージェントのインストール
SSM エージェントをインストールするには、Red Hat Enterprise Linux (RHEL) インスタンスに接続し
て次のステップを実行します。Run Command を使用してコマンドを実行するそれぞれのインスタンス
で、これらのステップを実行します。
Red Hat Enterprise Linux に SSM エージェントをインストールするには
1.
インスタンスに一時ディレクトリを作成します。
mkdir /tmp/ssm
2.
以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードし
ます。<region> を SSM リージョンのいずれかに置き換えます。ダウンロードに伴うリージョン
間のデータ転送のコストを回避するには、EC2 インスタンスのリージョンを指定します。
64 ビット
349
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
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
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
status amazon-ssm-agent
350
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
CentOS への SSM エージェントのインストール
SSM エージェントをインストールするには、CentOS インスタンスに接続して以下のステップを実行
します。Run Command を使用してコマンドを実行するそれぞれのインスタンスで、これらのステップ
を実行します。
CentOS に SSM エージェントをインストールするには
1.
インスタンスに一時ディレクトリを作成します。
mkdir /tmp/ssm
2.
以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードし
ます。<region> を SSM リージョンのいずれかに置き換えます。ダウンロードに伴うリージョン
間のデータ転送のコストを回避するには、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
CentOS 6.x
351
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
sudo start amazon-ssm-agent
b.
エージェントのステータスを確認します。
CentOS 7.x
sudo systemctl status amazon-ssm-agent
CentOS 6.x
status amazon-ssm-agent
SSM エージェントがプロキシを使用するように設定する
SSM エージェント設定ファイルに http_proxy 設定と no_proxy 設定を追加して、HTTPプロキシを
通じて通信するように SSM エージェントを設定できます。このセクションには、upstart 環境および
systemd 環境の手順が含まれています。
SSM エージェントがプロキシ (Upstart) を使用するように設定する
1.
2.
3.
SSM エージェントをインストールした先のインスタンスに接続します。
VIM などのエディタで amazon-ssm-agent.conf ファイルを開きます。デフォルトでは、このファ
イルは次の場所にあります。
/etc/init/amazon-ssm-agent.conf
このファイルに 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 エージェントを再起動します。
/sbin/restart amazon-ssm-agent
次の Upstart の例は、amazon-ssm-agent.conf ファイルでの http_proxy 設定と no_proxy 設定を示
しています。
description "Amazon SSM Agent"
352
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM エージェントの設定
author "Amazon.com"
start on (runlevel [345] and started network)
stop on (runlevel [!345] or stopping network)
respawn
env http_proxy=http://i-1234abcd:443
env no_proxy=169.254.169.254
chdir /opt/amazon/ssm/
exec ./amazon-ssm-agent
SSM エージェントがプロキシ (systemd) を使用するように設定する
1.
2.
3.
SSM エージェントをインストールした先のインスタンスに接続します。
VIM などのエディタで amazon-ssm-agent.service ファイルを開きます。デフォルトでは、このファ
イルは次の場所にあります。
/etc/systemd/system/amazon-ssm-agent.service
このファイルに 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 エージェントを再起動します。
systemctl stop amazon-ssm-agent
systemctl daemon-reload
次の systemd の例は、amazon-ssm-agent.service ファイルでの http_proxy 設定と no_proxy 設定
を示しています。
Type=simple
Environment="HTTP_PROXY=http://i-1234abcd:443"
Environment="no_proxy=169.254.169.254"
WorkingDirectory=/opt/amazon/ssm/
ExecStart=/opt/amazon/ssm/amazon-ssm-agent
KillMode=process
Restart=on-failure
RestartSec=15min
SSM エージェントのアンインストール
SSM エージェントをアンインストールするには、次のコマンドを使用します。
353
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command へのアクセスの委任
Amazon Linux、RHEL、または Cent OS から SSM エージェントをアンインストールするには
sudo yum erase amazon-ssm-agent –y
Ubuntu から SSM エージェントをアンインストールするには
sudo dpkg -r amazon-ssm-agent
SSM Run Command へのアクセスの委任
カスタムの SSM ドキュメントおよび IAM ポリシーを使用して、SSM Run Command へのアクセスを
制限できます。Amazon SSM エージェントはルートとして動作するため、SSM ドキュメントに指定さ
れたコマンドまたはスクリプトの実行にはインスタンスの管理者権限が必要です。ユーザーに、事前定
義済みの SSM ドキュメント (AWS-* から始まるドキュメント) を実行する権限を持っているユーザー
には、インスタンスへの管理者アクセス権もあります。
SSM および Run Command へのアクセス権は、慎重に委任してください。独自の SSM ドキュメント
を作成する場合は、このことが非常に重要になります。AWS では、安全な SSM ドキュメントの作成
方法に関するガイダンスが提供されていません。SSM ドキュメントの作成と、Run Command アクショ
ンへのアクセス権の委任は、ご自分の判断で行ってください。セキュリティ上のベストプラクティスと
して、"AWS-*" ドキュメント (特に AWS-RunShellScript ドキュメント) へのアクセス権は信頼できる管
理者のみに割り当てることをお勧めします。特定のタスク用に SSM ドキュメントを作成して、管理者
以外のユーザーにアクセス権を委任することもできます。
制限付き SSM ドキュメントの作成
Run Command へのアクセス権をユーザーに付与する場合、最小権限のポリシーから開始することをお
勧めします。ユーザーに最小限のタスクを許可するさまざまな SSM ドキュメントを作成します。たと
えば、インスタンスの特定のサービスの名前を指定すれば、Run Command ユーザーはそのサービスの
みを再起動できます。
制限付き SSM ドキュメントを作成するには
1.
次に示す JSON の例をコピーしてテキストファイルに貼り付け、.json というファイル拡張子を付
けて保存します。
{
"schemaVersion": "1.2",
"description": "Restart Linux Service",
"parameters": {
"serviceName": {
"type": "String",
"description": "(Required) Specify the name of the service to restart",
"maxChars": 256
}
},
"runtimeConfig": {
"aws:runShellScript": {
"properties": [
{
"runCommand": ["service {{ serviceName }} restart"]
}
]
}
354
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command へのアクセスの委任
}
}
2.
AWS CLI で次のコマンドを実行します。
aws ssm create-document --content file:///tmp/RestartLinuxService.json -name "RestartLinuxService"
SSM ドキュメント作成の詳細については、Amazon EC2 Simple Systems Manager API Reference で
SSM ドキュメントに関するトピックを参照してください。
制限付き IAM ユーザーポリシーの作成
IAM ユーザーポリシーにより、[Command document] リストでユーザーが表示できる SSM ドキュメン
トが決まります。ユーザーは、Amazon EC2 コンソールで、または Windows PowerShell 用の AWS
CLI
このポリシーでは、SSM ドキュメントに対してユーザーが実行できるアクションも制限されます。次
に示す IAM ポリシーの例では、SSM ドキュメントのリスト、これらのドキュメントの詳細表示、ド
キュメントの使用によるコマンド送信、送信したコマンドのキャンセルや詳細表示をユーザーに許可し
ます。2 番目の Resource セクションの "arn:aws:ec2:us-east-1:*:instance/i-xxxxxx" 項目で指定されて
いるように、ユーザーには、3 つのインスタンスでドキュメントを実行する権限があります。ユーザー
が現在アクセスできる (AWS ユーザーアカウントに基づいて) 任意のインスタンスでコマンドを実行で
きるようにアクセス権をユーザーに付与するには、Resource セクションで
"arn:aws:ec2:us-east-1:*:instance/*" と指定し、他のインスタンスリソースを削除します。
{
"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-123456",
"arn:aws:ec2:us-east-1:*:instance/i-234567",
"arn:aws:ec2:us-east-1:*:instance/i-345678",
"arn:aws:ssm:us-east-1:*:document/RestartLinuxService"
]
},
{
"Action": [
"ssm:CancelCommand",
355
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command を使用したコマンドの実行
"ssm:ListCommands",
"ssm:ListCommandInvocations"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": "ec2:DescribeInstanceStatus",
"Effect": "Allow",
"Resource": "*"
}
]
}
IAM ユーザーポリシーの作成については、「管理ポリシーとインラインポリシー」を参照してくださ
い。
IAM ポリシーを作成し、ユーザーアカウントに割り当てると、ユーザーは Amazon EC2 コンソールの
[Commands] ページの RestartLinuxService ドキュメントを使用するか、AWS CLI を使用して、コマン
ドを発行できます。たとえば、次の CLI コマンドでは RestartLinuxService ドキュメントが実行されま
す。
aws ssm send-command --instance-ids "instance-ID" --document-name "RestartLinux
Service" --parameter serviceName="Service name to restart"
ユーザーがその他の SSM ドキュメントを実行しようとすると、認証エラーが発生します。
SSM Run Command を使用したコマンドの実行
Amazon EC2 コンソールの [Commands] ページを使用して EC2 インスタンスでコマンドを実行できま
す。また、CLI を使用して、または SSM API を使用してプログラムでコマンドを実行することもでき
ます。詳細情報については、Amazon EC2 Simple Systems Manager API Reference を参照してくださ
い。
各ユーザーが使用できるコマンドは、管理者によって指定されているアクセス権によって異なります。
コマンドは、SSM ドキュメント名で識別されます (AWS-RunShellScript など)。AWS-* から始まるコ
マンドでは、AWS から提供される定義済みの SSM ドキュメントが使用されます。開発者または管理
者は、追加のドキュメントを作成し、ユーザーのアクセス権に基づいてプロビジョニングを行うことが
できます。
トピック
• SSM Run Command を使用したシェルスクリプトの実行 (p. 356)
• SSM Run Command を使用した Amazon SSM エージェントの更新 (p. 357)
SSM Run Command を使用したシェルスクリプトの実行
インスタンスでシェルスクリプトを実行するには、AWS-RunShellScript コマンドドキュメントを使用
します。
Tip
EC2 コンソールの [Commands] ページには、[AWS Command Line Interface command] と呼ば
れるセクションが含まれています。このセクションには、入力したパラメーターに基づいて生
成された、使用可能な CLI スクリプトが表示されます。
356
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command を使用したコマンドの実行
Run Command を使用してシェルスクリプトを実行するには
1. Amazon EC2 コンソールを開き、ナビゲーションペインで [Commands] を選択します。
2. [Run a Command] を選択します。
3. [Command document] リストで、AWS-RunShellScript を選択します。
4. [Select target instances] を選択して、コマンドを実行するインスタンスを選択します。リストに表示
されないインスタンスがある場合、そのインスタンスは、Run Command 用に正しく設定されてい
ない可能性があります。詳細については、「SSM Run Command の前提条件 (p. 338)」を参照してく
ださい。
5. [Commands] フィールドに、スクリプトまたはスクリプトへのパスを入力します。
6. (オプション) [Working Directory] フィールドに、コマンドを実行する EC2 インスタンス上のフォル
ダのパスを入力します
7. (オプション) [Execution Timeout] フィールドに、Amazon SSM エージェントでコマンドをタイムア
ウトし失敗と見なすまでに実行を続ける秒数を入力します。
8. (オプション) [Comment] フィールドに、このコマンドに関する情報を入力します。コメントはログ
ファイルに格納され、 EC2 コンソールのコマンド呼び出しリストに表示されます。
Tip
実行する各コマンドについて、具体的なコメントを入力することをお勧めします。リストに
表示される送信済みコマンドの数はすぐに増えるため、監視対象コマンドの識別には
[Comment] フィールドの内容が役立ちます。
9. [Timeout (seconds)] フィールドに、Run Command でインスタンスが到達不可能であると見なして
コマンド実行を失敗とするまでにインスタンスへの到達を試行する秒数を入力します。最小値は 30
秒、最大値は 30 日です。デフォルト値は 10 分です。
10. [Amazon S3 bucket] フィールドに、コマンド出力の保存先として、Amazon S3 バケットの名前を入
力します。
Important
Amazon EC2 コンソールでは、Run Command の [Output] ページは、2500 文字を超えると
切り捨てられます。Run Command でコマンドを実行する前に、Amazon S3 バケットを設
定しておいてください。コマンド出力が 2500 文字を超えた場合は、Amazon S3 バケットで
完全な出力を表示できます。詳細については、「バケットの作成」を参照してください。
11. [S3 key prefix] フィールドに、Amazon S3 バケットのサブフォルダ名を入力します。このサブフォ
ルダは、Run Command 出力の整理に役立ちます。
コマンドの結果を確認する方法については、「Amazon EC2 コンソールでのコマンド出力の確認 (p. 359)」
を参照してください。
AWS CLI を使用してコマンドを実行する方法については、SSM CLI リファレンスを参照してくださ
い。
SSM Run Command を使用した Amazon SSM エージェントの
更新
インスタンスで実行している Amazon SSM エージェントを更新するには、AWS-UpdateSSMAgent コ
マンドドキュメントを使用します。最新バージョンに更新することも、古いバージョンにダウングレー
ドすることもできます。コマンドを実行すると、システムは該当するバージョンを AWS からダウン
ロードし、インストールして、コマンドの実行前に存在していたバージョンをアンインストールしま
357
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command を使用したコマンドの実行
す。このプロセスの実行中にエラーが発生すると、システムはコマンドの実行前のサーバーバージョン
にロールバックし、コマンドステータスにはコマンドの失敗が示されます。
Tip
EC2 コンソールの [Commands] ページには、[AWS Command Line Interface command] と呼ば
れるセクションが含まれています。このセクションには、入力したパラメーターに基づいて生
成された、使用可能な CLI スクリプトが表示されます。
Run Command を使用して Amazon SSM エージェントを更新するには
1.
2.
3.
Amazon EC2 コンソールを開き、ナビゲーションペインで [Commands] を選択します。
[Run a Command] を選択します。
[Command document] リストで、AWS-UpdateSSMAgent を選択します。
4.
[Select target instances] を選択して、コマンドを実行するインスタンスを選択します。リストに表
示されないインスタンスがある場合、そのインスタンスは、Run Command 用に正しく設定されて
いない可能性があります。詳細については、「SSM Run Command の前提条件 (p. 338)」を参照し
てください。
(オプション) [Version] フィールドに、インストールする Amazon SSM エージェントのバージョン
を入力します。エージェントの古いバージョンをインストールすることもできます。バージョンを
指定しなかった場合、サービスは最新バージョンに更新されます。
(オプション) Amazon SSM エージェントの以前のバージョンをインストールする場合は、[Allow
downgrade] リストで [True] を選択します。このオプションを選択した場合は、以前のバージョン
番号を指定する必要があります。サービスの最新バージョンのみをインストールする場合は、[False]
を選択します。
(オプション) [Comment] フィールドに、このコマンドに関する情報を入力します。コメントはログ
ファイルに保存され、Amazon EC2 コンソールのコマンド呼び出しリストに表示されます。
5.
6.
7.
Tip
実行する各コマンドについて、具体的なコメントを入力することをお勧めします。リスト
に表示される送信済みコマンドの数はすぐに増えるため、監視対象コマンドの識別には
[Comment] フィールドの内容が役立ちます。
8.
9.
[Timeout (seconds)] フィールドに、Run Command でインスタンスが到達不可能であると見なして
コマンド実行を失敗とするまでにインスタンスへの到達を試行する秒数を入力します。最小値は
30 秒、最大値は 30 日です。デフォルト値は 10 分です。
[ S3 bucket] フィールドに、コマンド出力の保存先として、Amazon S3 バケットの名前を入力しま
す。
Important
Amazon EC2 コンソールでは、Run Command の [Output] ページは、2500 文字を超える
と切り捨てられます。Run Command でコマンドを実行する前に、Amazon S3 バケットを
設定しておいてください。コマンド出力が 2500 文字を超えた場合は、Amazon S3 バケッ
トで完全な出力を表示できます。詳細については、「バケットの作成」を参照してくださ
い。
10. [S3 key prefix] フィールドに、Amazon S3 バケットのサブフォルダ名を入力します。このサブフォ
ルダは、Run Command 出力の整理に役立ちます。
コマンドの結果を確認する方法については、「Amazon EC2 コンソールでのコマンド出力の確認 (p. 359)」
を参照してください。
358
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 コンソールでのコマンド出力の確認
AWS CLI を使用してコマンドを実行する方法については、SSM CLI リファレンスを参照してくださ
い。
Amazon EC2 コンソールでのコマンド出力の確認
Run Command を使用してコマンドを実行した後、システムはコマンドリストに戻ります。
Important
Amazon EC2 コンソールでは、2500 文字を超えるコマンド出力がすべて切り捨てられます。
コマンド出力が 2500 文字を超えた場合は、S3 バケットで完全な出力を表示できます。
コマンド出力を表示するには
1.
2.
Amazon EC2 コンソールで、リストからコマンドを選択します。
[Output] タブを選択します。
3.
[View Output] を選択します。
4.
コマンド出力ページには、コマンドの実行結果が表示されます。
359
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
独自のコマンドを作成する
独自のコマンドを作成する
Run Command では SSM ドキュメントが使用されます。SSM ドキュメントとは、Run Command を
使用してインスタンスで実行するアクションが記述された JSON ファイルです。定義済みの SSM ド
キュメント (AWS-RunShellScript など、"AWS-*" から始まる任意のドキュメント) を使用することも、
独自の SSM ドキュメントを作成することもできます。低レベルタスクのドキュメント (ユーザーにサー
ビスの再起動を許可するドキュメントなど) を作成し、これらのドキュメントを管理者以外のユーザー
に割り当てることをお勧めします。すべての "AWS-*" ドキュメント (特に AWS-RunShellScript ドキュ
メント) と、高レベルの管理者ドキュメントは、信頼できる管理者のみに割り当てる必要があります。
SSM ドキュメントの作成については、Amazon EC2 Simple Systems Manager API Reference で SSM
ドキュメントに関するトピックを参照してください。SSM ドキュメントへのアクセス権の委任につい
ては、「SSM Run Command へのアクセスの委任 (p. 354)」を参照してください。
SSM Run Command のウォークスルー
ここでは、Amazon EC2 コンソールまたは AWS CLI から SSM Run Command を使用してコマンドを
実行する方法の理解に役立つ例やウォークスルーを紹介します。
360
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command のウォークスルー
Caution
SSM Run Command を初めて使用する場合は、テストインスタンスまたは本番環境で使用され
ていないインスタンスに対してコマンドを実行することをお勧めします。
目次
• Amazon EC2 コンソールを使用した SSM Run Command ウォークスルー (p. 361)
• SSMAWS CLI を使用した Run Command ウォークスルー (p. 365)
Amazon EC2 コンソールを使用した SSM Run Command ウォー
クスルー
以下のサンプルウォークスルーでは、Amazon EC2 コンソールの [Commands] ページで Run Command
を使用してコマンドを実行する方法を示します。AWS-RunShellScript という SSM ドキュメントのコ
マンドを実行する方法について説明します。CLI の例を表示するには、「SSMAWS CLI を使用した Run
Command ウォークスルー (p. 365)」を参照してください。
1.
Amazon EC2 コンソールで、左のナビゲーションペインの [Commands] を選択し、[Run a command]
を選択します。
2.
[Command document] リストで、AWS-RunShellScript を選択します。
3.
[Select instances] を選択し、コマンドを実行するインスタンスを選択します。リストに表示されな
いインスタンスがある場合、そのインスタンスは、Run Command 用に正しく設定されていない可
能性があります。詳細については、「SSM Run Command の前提条件 (p. 338)」を参照してくださ
い。
361
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command のウォークスルー
4.
有効なシェルスクリプトまたはコマンドを [Commands] フィールドに入力します。必要に応じて、
[Working Directory] と [Execution Timeout] を指定できます。[Execution Timeout] は、コマンドが
失敗したと見なされるまでに amazon-ssm-agent で実行を試行する秒数です。[Comments] フィー
ルドにコメントを入力することをお勧めします。コメントを入力しておくと、保留中のコマンドリ
ストでコマンドを識別する際に役立ち、出力が確認しやすくなります。
5.
[Timeout (seconds)] フィールドに、Run Command でインスタンスが到達不可能であると見なして
コマンド実行を失敗とするまでにインスタンスへの到達を試行する秒数を入力します。
[ S3 bucket] フィールドに、コマンド出力の保存先として、Amazon S3 バケットの名前を入力しま
す。[S3 key prefix] フィールドに、Amazon S3 のサブフォルダを入力します。サブフォルダを使用
すると、複数のインスタンスに対して複数のコマンドを実行する場合に、出力を整理することがで
きます。
6.
7.
選択した複数のインスタンスで同時にコマンドを実行するには、[Run] を選択します。Run Command
により、ステータス画面が表示されます。
8.
[View result] を選択します。
362
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command のウォークスルー
9.
コマンドリストには、コマンドの呼び出しが 3 回示されています。これは、コマンドが 3 つのイ
ンスタンスに送信されたためです。呼び出しごとに [Command ID] とステータスがあります。ス
テータスを表示するには、呼び出しを選択し、その呼び出しの [Output] タブを選択して、[View
Output] を選択します。
10. システムにより、出力がブラウザに表示されます。出力が 2500 文字を超える場合、先頭から 2500
文字のみが表示され、残りは切り捨てられます。
363
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command のウォークスルー
11. 完全なコマンド出力は、Amazon S3 で確認することができます。S3 コンソールを開き、Amazon
S3 バケットを選択します。
12. コマンド出力を表示する対象の Command-ID.Instance-ID を選択します。
13. awsrunShellScript サブフォルダを選択します。
14. stdout.text ファイルを選択します。Amazon S3 に、完全なコマンド出力が表示されます。
364
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command のウォークスルー
SSMAWS CLI を使用した Run Command ウォークスルー
以下のサンプルウォークスルーは、AWS CLI を使用してコマンドとコマンドパラメーターに関する情
報を表示する方法、コマンドを実行する方法、これらのコマンドのステータスを確認する方法を示して
います。
Tip
EC2 コンソールの [Commands] ページには、[AWS Command Line Interface command] と呼ば
れるセクションが含まれています。このセクションには、入力したパラメーターに基づいて生
成された、使用可能な CLI スクリプトが表示されます。
ステップ 1: 使用開始
ユーザーは、設定するインスタンスの管理者権限を持っているか、IAM で適切なアクセス権を付与され
ている必要があります。また、この例では us-east-1 リージョンを使用することに注意してください。
現在、Run Command は、次の SSM リージョンでのみ利用できます。詳細については、「SSM Run
Command の前提条件 (p. 338)」を参照してください。
AWS CLI を使用してコマンドを実行するには
1.
ローカルコンピュータの AWS CLI を開き、次のコマンドを実行して認証情報とリージョンを指定
します。
aws configure
365
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command のウォークスルー
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
3.
利用可能なすべてのドキュメントを表示する
このコマンドでは、IAM アクセス許可に基づいて、アカウントで利用可能なすべてのコマンドド
キュメントが表示されます。コマンドは Linux と Windows のドキュメントのリストを返します。
aws ssm list-documents
4.
インスタンスでコマンドを受信する準備ができていることを確認します。
インスタンスがオンラインの場合は、次のコマンドを出力が表示されます。
aws ssm describe-instance-information --output text --query "InstanceInform
ationList[*]"
5.
特定のインスタンスについての詳細を表示するには、次のコマンドを使用します。
注意: このウォークスルーのコマンドを実行するには、インスタンス 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 ドキュメントを使用すると、ローカルにログオンしている
かのようにインスタンスでコマンドまたはスクリプトを実行できます。
説明と使用可能なパラメーターを表示するには
• SSM ドキュメントの説明を表示するには、次のコマンドを使用します。
aws ssm describe-document --name "AWS-RunShellScript" --query "[Docu
ment.Name,Document.Description]"
• これらのパラメーターに使用できるパラメーターと詳細を表示するには、次のコマンドを使用しま
す。
aws ssm describe-document --name "AWS-RunShellScript" --query "Document.Para
meters[*]"
366
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command のウォークスルー
ステップ 3: AWS-RunShellScript ドキュメントを使用してコマンドを送信する - 例 1
インスタンスの IP 情報を取得するには、次のコマンドを使用します。
aws ssm send-command --instance-ids "instance ID" --document-name "AWS-RunShell
Script" --comment "IP config" --parameters commands=ifconfig --output text
応答データを使用したコマンド情報の取得
次のコマンドは、コマンド 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"
367
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
コマンドをキャンセルする
--parameters commands='python --version --output text --query "Command.Com
mandId")
次のコマンドは、Run Command を使用して Python スクリプトを実行します。
py_command_id=$(aws ssm send-command --instance-ids "instance ID" --documentname "AWS-RunShellScript" --comment "Demo run shell script on Linux Instances"
--parameters commands='#!/usr/bin/python', 'print \"Hello world from python\"'
--output text --query "Command.CommandId")
コマンドをキャンセルする
コマンドの状態が Pending または Executing であるとサービスに示されている間は、コマンドのキャ
ンセルを試行できます。ただし、まだコマンドがこれらの状態のいずれかであっても、コマンドが終了
し、その基盤であるプロセスが停止することは保証されません。
コマンドをキャンセルするには (EC2 コンソール)
1.
2.
3.
Amazon EC2 コンソールを開き、ナビゲーションペインで [Commands] を選択します。
キャンセルするコマンド呼び出しを選択します。
[Actions]、[Cancel command] の順に選択します。
AWS CLI を使用してコマンドをキャンセルするには
• 次の コマンドを使用します。
aws ssm cancel-command --command-id "command
ID"
ID" --instance-ids "instance
キャンセルしたコマンドのステータスについては、「コマンドを監視する (p. 368)」を参照してくださ
い。
コマンドを監視する
SSM Run Command を使用すると、複数のインスタンスに対して同時にコマンドを実行することがで
きます。各インスタンスをターゲットとするコマンドの各コピーは、コマンド呼び出しです。たとえ
ば、AWS-RunShellScript ドキュメントを使用して ifconfig コマンドを 20 インスタンスに送信した場
合、このコマンドの呼び出し数は 20 です。各呼び出しのステータスは、Amazon EC2 コンソールで監
視することも、aws ssm list-command-invocations (AWS CLI) コマンドを使用することもできます。各
呼び出しの詳細を表示することができます。これらの詳細は、コマンドが失敗した場合は問題のトラブ
ルシューティングに役立ちます。
コマンドのステータス
各コマンド呼び出しで、個別にステータスが報告されます。さらに、SSM ドキュメントは、1 つまた
は複数の プラグインと呼ばれるコード実行ブロックで構成されています。コマンド呼び出しに含まれ
ているプラグインも、個々にステータスを報告します。次の表は、Run Command の実行ステータスを
示しています。
368
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
コマンドを監視する
プラグインの詳細については、Amazon EC2 Simple Systems Manager API Referenceの「SSM ドキュ
メント > SSM プラグイン」を参照してください。
ステータス
詳細
保留中
コマンドは SSM エージェントによってまだ受け
取られていません。Timeout (seconds) パラメー
ターによって指定された値より前に SSM エージェ
ントによってコマンドが受け取られない場合、ス
テータスは Timed Out に変わります。
進行中
コマンドは SSM エージェントによって受け取ら
れたか、またはコマンドがインスタンスで実行を
開始しました。すべてのコマンドプラグインの結
果に応じて、ステータスは Success、Failed、ま
たは Timed Out に変わります。SSM エージェン
トがインスタンスでまだ利用できない場合、コマ
ンドのステータスは、SSM エージェントが再度利
用可能になるまで In Progress と表示されます。
その後、ステータスは終了状態に変わります。
成功
コマンドは、すべてのプラグインを含めて、イン
スタンスでの実行を終了しました。
失敗
1 つ以上のプラグインが実行に失敗しました。プ
ラグインが失敗した場合は、コマンドに関する問
題を特定してトラブルシューティングを行えるよ
うに、呼び出し全体のステータスが Failed に変わ
ります。
タイムアウト
コマンドは、Timeout (seconds) パラメーターで
指定された値に達する前に、インスタンスの SSM
エージェントに到達しませんでした。または、コ
マンドが、許容される実行時間よりも長く実行さ
れました。コマンドが実行できる時間は、プラグ
インによって異なります。デフォルト値は 2~8
時間です。
キャンセル
コマンドの呼び出しをキャンセルするコマンドを
送信しました。コマンドは終了状態 (Success、
Failed、または Timed Out) に達しませんでした。
SSM エージェントが Timeout (seconds) パラメー
ターに指定された時間内に応答した場合、ステー
タスが変わって終了状態を反映します。それ以外
の場合、ステータスは Timed Out に変わります。
キャンセル
コマンドは正常にキャンセルされました.
Note
Amazon EC2 コンソールで、コマンド実行の進行に従ってコマンドのステータスを監視するに
は、右上にある [Refresh] 記号をクリックします。
369
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
SSM Run Command のトラブルシューティング
SSM Run Command のトラブルシューティング
このトピックでは、SSM Run Command の問題のトラブルシューティングに役立つ情報を示します。
Windows の Run Command のトラブルシューティングについては、Windows 用のユーザーガイドの
「Troubleshooting Running Command」を参照してください。
インスタンスの場所
Amazon EC2 コンソールを使用して Run Command でコマンドを実行しようとして、[Select Target
instances] を選択したときにあるべきインスタンスのリストが表示されない場合は、表示されないイン
スタンスの前提条件が 1 つまたは複数満たされていません。詳細については、「SSM Run Command
の前提条件 (p. 338)」を参照してください。
Health API を使用してインスタンスのステータスを確認する
Amazon EC2 Health API を使用すると、Amazon EC2 インスタンスに関する次の状態を迅速に調べる
ことができます。
•
•
•
•
•
SSM エージェントのバージョン
1 つまたは複数のインスタンスのステータス
オペレーティングシステム
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. 345)」を参照してください。
• インスタンスにアウトバウンドのインターネット接続がない。
370
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスのインポートとエクスポート
• インスタンスが SSM API と通信できる IAM ロールで起動されていない、または IAM ロールのアク
セス許可が Run Command に対して正しくない。詳細については、「SSM Run Command 用の IAM
ロールとユーザーの設定 (p. 340)」を参照してください。
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 を参照してください。
インスタンスのインポートとエクスポート
Abstract
Citrix Xen、Microsoft Hyper-V、VMware vSphere などの仮想化プラットフォームから仮想マシンをインポートし、
Amazon EC2 でその仮想マシンを起動します。
アマゾン ウェブ サービス(AWS)の VM Import/Export ツールを使用すると、仮想マシン(VM)イ
メージをローカル環境から AWS にインポートし、すぐに使える Amazon EC2 Amazon マシンイメー
ジ(AMI)またはインスタンスに変換できます。その VM イメージは、後でインスタンスとしてローカ
ル環境にエクスポートすることができます。VM Import/Export を使用すると、VM がすぐに使える AMI
またはインスタンスとして Amazon Elastic Compute Cloud(Amazon EC2)に移行されるため、IT セ
キュリティ、構成管理、およびコンプライアンス要件に合わせて作成した VM への投資が無駄になりま
せん。VM Import/Export は、Citrix Xen、Microsoft Hyper-V、または VMware vSphere の仮想環境と互
換性があります。VMware vSphere を使用している場合、AWS Connector for vCenter を使用して
VMware から VM をエクスポートし、Amazon EC2 にインポートすることもできます。詳細について
は、『AWS Management Portal for vCenter ユーザーガイド』の「AWS Connector for vCenter を使用
した Amazon EC2 への仮想マシンの移行」を参照してください。Microsoft Systems Center を使用す
る場合は、AWS Systems Manager for Microsoft SCVMM を使用しても、SCVMM から Amazon EC2 に
Windows VM をインポートできます。詳細については、『Microsoft Windows インスタンスの Amazon
EC2 ユーザーガイド』の「AWS Systems Manager for Microsoft SCVMM を使用した仮想マシンのイン
ポート」を参照してください。
VM Import/Export は、アプリケーションおよびワークロードの移行、VM イメージカタログのコピー、
または VM イメージの障害復旧リポジトリの作成に使用できます。
• 既存のアプリケーションおよびワークロードを Amazon EC2 に移行する— VM ベースのアプリケー
ションおよびワークロードを Amazon EC2 に移行して、ソフトウェアと構成の設定を維持すること
ができます。VM Import を使用して VM をインポートすると、Amazon EC2 で実行できる Amazon
EC2 インスタンスまたは Amazon マシンイメージ(AMI)に既存の VM を変換できます。VM から
AMI を作成すると、インポートした同じ VM に基づいて複数のインスタンスを実行できます。また、
371
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
AMI と AMI コピー機能を使用して、世界中のアプリケーションとワークロードを複製することもで
きます。詳細については、「AMI のコピー (p. 111)」を参照してください。
• VM イメージカタログを Amazon EC2 にインポートする - 既存の VM イメージのカタログを Amazon
EC2 にインポートできます。承認された VM イメージのカタログを維持する場合、Amazon EC2 に
イメージカタログをコピーして、インポートした VM イメージから AMI を作成することができます。
ウイルス対策ソフトウェアや侵入検知システムなどのインストール済みの製品を含む既存のソフト
ウェアは、すべて VM イメージと一緒にインポートすることができます。作成した AMI は Amazon
EC2 イメージカタログとして使用できます。
• VM イメージの障害復旧リポジトリを作成する — バックアップと障害復旧のために、ローカル VM
イメージを Amazon EC2 にインポートすることができます。VM をインポートし、AMI として保存
できます。作成した AMI は目的の Amazon EC2 ですぐに起動できるようになります。ローカル環境
で障害が発生した場合、インスタンスをすばやく起動してビジネスを継続させると同時に、そのイン
スタンスをエクスポートしてローカルのインフラストラクチャを再構築することができます。
目次
• VM Import/Export の前提条件 (p. 372)
• VM をイメージとして Amazon EC2 にインポートする (p. 381)
• VM をインスタンスとして Amazon EC2 にインポートする (p. 391)
• Amazon EC2 インスタンスをエクスポートする (p. 402)
• VM Import/Export のトラブルシューティング (p. 404)
VM Import/Export の前提条件
Abstract
仮想マシンのインポートを開始する前に基礎と制限事項を確認します。
仮想化環境からの VM のエクスポート、または Amazon EC2 からの VM のインポートおよびエクスポー
トのプロセスを開始する前に、AWS でサポートされているオペレーティングシステムとイメージ形式
を認識し、エクスポートするインスタンスおよびボリュームに関する制限事項を理解する必要がありま
す。
Amazon EC2 から VM をインポートまたはエクスポートするには、以下の CLI ツールをインストール
する必要もあります。
• Amazon EC2 CLI のインストールの詳細については、「Amazon EC2 コマンドラインリファレンス」
を参照してください。
• AWS CLI のインストールの詳細については、「AWS Command Line Interface ユーザーガイド」を
参照してください。AWS CLI での Amazon EC2 のコマンドの詳細については、『AWS Command
Line Interface Reference』の「ec2」を参照してください。
目次
• オペレーティングシステム (p. 373)
• イメージ形式 (p. 374)
• インスタンスタイプ (p. 375)
• ボリュームタイプとファイルシステム (p. 375)
• VM Import サービスロール (p. 375)
• IAM アクセス許可 (p. 377)
• 要件と制限 (p. 378)
372
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
オペレーティングシステム
次のオペレーティングシステムは、Amazon EC2 とのインポートおよびエクスポートが可能です。
Windows(32 ビットと 64 ビット)
• Microsoft Windows Server 2003(Standard、Datacenter、Enterprise)(Service Pack 1 適用済み)
以降。
• Microsoft Windows Server 2003 R2(Standard、Datacenter、Enterprise)。
• Microsoft Windows Server 2008(Standard、Datacenter、Enterprise)。
• Microsoft Windows Server 2008 R2(Standard、Datacenter、Enterprise)。
• Microsoft Windows Server 2012(Standard、Datacenter)
• Microsoft Windows Server 2012 R2(Standard、Datacenter)。
Note
32 ビットバージョンの Microsoft Windows Server 2012 R2 はサポートされていません。
• Microsoft Windows 7(Professional、Enterprise、Ultimate)
Note
VM Import では現在、Microsoft Windows 7(Professional、Enterprise、Ultimate)の英語版
を実行している VM のインポートがサポートされています。これらのオペレーティングシス
テムをインポートするときは、「要件と制限 (p. 378)」に従う必要があります。
• Microsoft Windows 8(Professional、Enterprise)
Note
VM Import では現在、Microsoft Windows 8(Professional、Enterprise)の英語版を実行して
いる VM のインポートがサポートされています。これらのオペレーティングシステムをイン
ポートするときは、「要件と制限 (p. 378)」に従う必要があります。
• Microsoft Windows 8.1(Professional、Enterprise)
Note
32 ビットバージョンの Microsoft Windows 8.1 はサポートされていません。
VM Import では現在、Microsoft Windows 8.1(Professional、Enterprise)の英語版を実行し
ている VM のインポートがサポートされています。これらのオペレーティングシステムをイ
ンポートするときは、「要件と制限 (p. 378)」に従う必要があります。
• Microsoft Windows 10 (Home、Professional、Enterprise、Education)
Note
32 ビットバージョンの Microsoft Windows 10 はサポートされていません。
VM Import では現在、Microsoft Windows 10 (Home、Professional、Enterprise、Education)
の英語版を実行している VM のインポートがサポートされています。これらのオペレーティ
ングシステムをインポートするときは、「要件と制限 (p. 378)」に従う必要があります。
373
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
Linux/Unix(64 ビット)
• Red Hat Enterprise Linux (RHEL) 5.1-5.11、6.1-6.6、7.0-7.1
Note
Amazon EC2 で実行するときに必要なドライバが存在しないため、RHEL 6.0 はサポートさ
れていません。
VM Import は、RHEL インスタンスのライセンスポータビリティをサポートしています。既
存の RHEL ライセンスは、関連付けられた RHEL インスタンスと一緒にインポートされま
す。Red Hat Cloud Access の適格性の詳細については、Red Hat ウェブサイトの適格性を参
照してください。
• SUSE Linux Enterprise Server 11~12
• Ubuntu 12.04、12.10、13.04、13.10、14.04、14.10、15.04
• CentOS 5.1~5.11、6.1~6.6、7.0~7.1
Note
Amazon EC2 で実行するときに必要なドライバが存在しないため、CentOS 6.0 はサポート
されていません。
• Debian 6.0.0~6.0.8、7.0.0~7.8.0、8.0.0
• Oracle Linux 6.1~6.6、7.0~7.1
• Fedora Server 19~21
イメージ形式
Amazon EC2 では、次の形式をインポートおよびエクスポートできます。
イメージ形式を Amazon EC2 からインポートする
AWS では、Amazon EC2 へのディスクと VM の両方のインポート用に以下のイメージ形式がサポート
されています。
• ディスクと VM のインポート用の RAW 形式。
• 固定および動的 Virtual Hard Disk (VHD) イメージ形式。Microsoft Hyper-V および Citrix Xen 仮想化
製品と互換性があります。VHDX イメージは現在サポートされていません。
Note
VM Export は動的 Virtual Hard Disks (VHD) のみをサポートします。固定 VHD はサポートさ
れていません。
• ストリームに最適化された ESX Virtual Machine Disk (VMDK) イメージ形式。VMware ESX および
VMware vSphere 仮想化製品と互換性があります。
Note
Amazon EC2 には、VMware の OVF エクスポートプロセスを通じて作成された VMDK ファ
イルのみインポートできます。
374
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
• Open Virtual Appliance (OVA) イメージ形式。複数のハードディスクで構成されたイメージのインポー
トがサポートされています。
イメージ形式を Amazon EC2 からエクスポートする
AWS では、Amazon EC2 からのボリュームとインスタンスの両方のエクスポート用に以下のイメージ
形式がサポートされています。出力ファイルは、VM 環境でサポートされている以下の形式に変換して
ください。
• Open Virtual Appliance(OVA)イメージ形式。VMware vSphere バージョン 4 および 5 と互換性が
あります。
• Virtual Hard Disk(VHD)イメージ形式。Citrix Xen および Microsoft Hyper-V 仮想化製品と互換性が
あります。
• ストリームに最適化された ESX Virtual Machine Disk(VMDK)イメージ形式。VMware ESX および
VMware vSphere バージョン 4 および 5 仮想化製品と互換性があります。
インスタンスタイプ
AWS では、ほとんどのインスタンスタイプへの Windows インスタンスのインポートがサポートされ
ます。Microsoft Windows BYOL インスタンスは専有インスタンスとして起動される必要があるため、
t2 インスタンスタイプを使用できません。これは、専用インスタンスをサポートしないためです。
Linux インスタンスは、次のインスタンスタイプにインポートできます。
• 汎用: t2.micro | t2.small | t2.medium | m3.medium | m3.large | m3.xlarge | m3.2xlarge
• コンピューティングの最適化: c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | cc2.8xlarge
• メモリを最適化: cr1.8xlarge
• ストレージの最適化: hi1.4xlarge | hs1.8xlarge | i2.xlarge | i2.2xlarge | i2.4xlarge
• GPU: cg1.4xlarge
ボリュームタイプとファイルシステム
AWS は、以下のファイルシステムを使用する Windows および Linux インスタンスのインポートをサ
ポートしています。
Windows(32 ビットと 64 ビット)
VM Import/Export は、NTFS ファイルシステムを使用してフォーマットされた、MBR パーティション
分割ボリュームをサポートしています。GUID パーティションテーブル(GPT)でパーティション分割
されたボリュームはサポートされていません。
Linux/Unix(64 ビット)
VM Import/Export は、ext2、ext3、ext4、Btrfs、JFS、XFS ファイルシステムを使用してフォーマット
された、MBR パーティション分割ボリュームをサポートしています。GUID パーティションテーブル
(GPT)でパーティション分割されたボリュームはサポートされていません。
VM Import サービスロール
VM Import では、特定の操作(Amazon S3 バケットからのディスクイメージのダウンロードなど)の
実行に AWS アカウントのロールが使用されます。以下のポリシーと信頼されたエンティティを定義し
た vmimport という名前のロールを作成する必要があります。以下のポリシーを定義した trust-policy.json
という名前のファイルを作成してください。
375
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"",
"Effect":"Allow",
"Principal":{
"Service":"vmie.amazonaws.com"
},
"Action":"sts:AssumeRole",
"Condition":{
"StringEquals":{
"sts:ExternalId":"vmimport"
}
}
}
]
}
aws iam create-role コマンドを使用して、vmimport という名前のロールを作成し、そのロールに
VM Import/Export のアクセス権限を付与します。
Note
外部 ID は vmimport という名前にする必要があります。
aws iam create-role --role-name vmimport --assume-role-policy-document
file://trust-policy.json
Note
ポリシードキュメント名の前には file:// を含める必要があります(例: file://trust-policy.json)。
file:// を含めなかった場合、コマンドは、「CreateRole オペレーションを呼び出すときにクラ
イアントエラー(MalformedPolicyDocument)が発生しました: ポリシーに構文エラー」とい
うエラーを返します。
サービスロールのポリシーの作成
以下のポリシーを定義した role-policy.json という名前のファイルを作成します。
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource":[
"arn:aws:s3:::<disk-image-file-bucket>"
]
},
{
376
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
"Effect":"Allow",
"Action":[
"s3:GetObject"
],
"Resource":[
"arn:aws:s3:::<disk-image-file-bucket>/*"
]
},
{
"Effect":"Allow",
"Action":[
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*"
],
"Resource":"*"
}
]
}
<disk-image-file-bucket> を、ディスクファイルが保存されている適切な Amazon S3 バケットに
置き換えます。
aws iam put-role-policy --role-name vmimport --policy-name vmimport --policydocument file://role-policy.json
コマンドを実行して、先ほど作成したロールにポリシーをアタッチします。IAM ロールの詳細について
は、「IAM ユーザーガイド」の「 IAM Roles (Delegation and Federation) 」を参照してください。
IAM アクセス許可
AWS Identity and Access Management (IAM) ユーザーとしてログインしている場合、VM をインポート
またはエクスポートするには、IAM ポリシーに次のアクセス許可が必要です。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:CreateBucket",
"s3:DeleteBucket",
"s3:DeleteObject",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject"
377
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
],
"Resource": ["arn:aws:s3:::mys3bucket","arn:aws:s3:::mys3bucket/*"]
},
{
"Effect": "Allow",
"Action": [
"ec2:CancelConversionTask",
"ec2:CancelExportTask",
"ec2:CreateImage",
"ec2:CreateInstanceExportTask",
"ec2:CreateTags",
"ec2:DeleteTags",
"ec2:DescribeConversionTasks",
"ec2:DescribeExportTasks",
"ec2:DescribeInstanceAttribute",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeTags",
"ec2:ImportInstance",
"ec2:ImportVolume",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:TerminateInstances",
"ec2:ImportImage",
"ec2:ImportSnapshot",
"ec2:DescribeImportImageTasks",
"ec2:DescribeImportSnapshotTasks",
"ec2:CancelImportTask"
],
"Resource": "*"
}
]
}
IAM のユーザーとポリシーの詳細については、『IAM ユーザーガイド』の「IAM ユーザーとグループ」
と「IAM ポリシーを管理する」を参照してください。
要件と制限
ImportImage を使用して VM を Amazon EC2 にインポートするための既知の制限
AMI とスナップショットのインポートには、以下の制限があります。
• リージョンあたり最大 20 個のイメージまたはスナップショットインポートタスクを同時に実行でき
ます。この制限の増加をリクエストするには、AWS サポートにお問い合わせください。タスクは開
始日から 7 日間以内に完了する必要があります。
• VM がインポートされると、ハードウェア仮想マシン(HVM)仮想化を使用する Amazon EC2 AMI
が作成されます。準仮想化(PV)を使用する AMI を VM Import によって作成することは、サポート
されていません。Linux PVHVM ドライバは、インポートされた VM 内でサポートされます。
• インポートされた Red Hat Enterprise Linux (RHEL) VM は Cloud Access (BYOL) ライセンスを使用
する必要があります。
• インポートされた Linux VM は 64 ビットイメージを使用する必要があります。32 ビット Linux イ
メージのインポートは、サポートされていません。
• インポートされた Linux VM では、最良の結果を得るためにデフォルトのカーネルを使用してくださ
い。カスタム Linux カーネルを使用する VM は正常にインポートされない場合があります。
378
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
• 通常、ディスクイメージの圧縮されたバージョンをインポートします。展開したディスクイメージは
1 TiB を超えることはできません。
• Microsoft Windows または Linux を実行する Amazon EC2 AMI にインポートする VM には、ドライ
バやその他のソフトウェアをインストールするために利用できるディスク容量が少なくとも 250 MB
があることを確認します。
• 現在、複数のネットワークインターフェイスはサポートされていません。変換とインポートが完了す
ると、VM には 1 つの仮想 NIC が与えられ、DHCP を使用してアドレスが割り当てられます。
• インターネットプロトコルバージョン 6(IPv6)の IP アドレスはサポートされていません。
• vCenter 4.0 または vSphere 4.0 を使用している場合、アタッチされている CD-ROM イメージまたは
ISO を仮想マシンから削除してください。
• P2V 変換の結果として作成された VM は、Amazon EC2 VM インポートではサポートされません。
P2V 変換は、物理マシンで Linux または Windows インストールプロセスを実行し、その Linux また
は Windows インストールのコピーを VM にインポートすることでディスクイメージを作成するとき
に行われます。
• Amazon VM Import によってシングルルート I/O 仮想化(SR-IOV)ドライバはインストールされま
せん。ただし、Microsoft Windows Server 2012 R2 VM をインポートする場合は除きます。これらの
ドライバは、より優れたパフォーマンス(パケット毎秒)、レイテンシーとストレスの低減を可能に
する拡張ネットワーキングを使用しない場合は不要です。VM をインポートした後に c3 または i2 イ
ンスタンスタイプで拡張ネットワーキングを有効にする場合は、VPC 内の Linux インスタンスでの
拡張ネットワーキングの有効化 (p. 648)を参照してください。Microsoft Windows Server 2012 R2 VM
の場合、SR-IOV ドライバはインポートプロセスの一部として自動的にインストールされます。
• MSDN または Windows Software Assurance per User などを通じて取得済みの Microsoft ライセンス
を使用して、ライセンス持ち込み(BYOL)モデルで AWS で Microsoft ソフトウェアを実行するに
は:
1. BYOL インスタンスの価格は Amazon EC2 Linux インスタンスの一般価格(「Amazon EC2 イン
スタンス購入オプション」で設定)によって決まります。ただし、次の条件に従うものとします。
(a)ハードウェア専有インスタンスで実行する(詳細については「ハードウェア専有インスタン
ス」を参照)。(b)VM Import/Export を使用して入手したソフトウェアバイナリから作成した
VM から起動する(その時点の VM Import/Export の諸条件と機能に基づく)(c)BYOL インスタ
ンスとして指定する(該当するプラットフォームタイプフラグをサービスで宣言)(d)指定した
AWS リージョン(AWS による BYOL モデルの提供先)でインスタンスを実行する。(e)取得済
みのまたはキーマネージメントシステムからの Microsoft キーを使用してライセンス認証する。
2. Amazon EC2 インスタンスを起動すると、そのインスタンスはアベイラビリティーゾーン内のい
ずれかのサーバーで実行されることを考慮する必要があります。つまり、Amazon EC2 インスタ
ンスの起動(起動/停止を含む)のたびに、そのインスタンスはアベイラビリティーゾーン内の別
のサーバーで実行される可能性があります。このような使用方法に、「Microsoft の製品とオンラ
インサービスのボリュームライセンス」で入手可能なマイクロソフトボリュームライセンスの製
品使用権説明書(PUR)/製品条項(PT)に記載されているライセンス再割り当ての制限が適用さ
れるかどうか、取得済みの使用権限が適用されるかどうかを判断してください。
3. Microsoft との契約の下で、たとえば、MSDN のユーザー権限または Windows Software Assurance
per User の権利の下で、該当する Microsoft ソフトウェアの BYOL プログラムを使用できる必要が
あります。お客様は、必要なすべてのライセンスの取得、および該当するすべての Microsoft ライ
センスの要件(PUR または PT など)の遵守に全責任を負うものとします。また、Microsoft の使
用許諾契約(Microsoft EULA)に同意する必要があります。さらに、BYOL プログラムの下で
Microsoft ソフトウェアを使用することで、Microsoft EULA に同意したとみなされます。
4. AWS では、該当する Microsoft ライセンスの要件の遵守について、社内の法務部署およびその他
の顧問に相談することをお勧めします。Microsoft との契約に違反したサービスの使用方法
(licenseType パラメータと BYOL フラグの使用を含む)は承認も許可もされません。
ImportInstance を使用して VM を Amazon EC2 にインポートするための既知の制限
インスタンスとボリュームのインポートには、次の制限事項があります。
379
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
• リージョンあたり最大 5 つのインポートタスクを同時に実行できます。この制限の増加をリクエスト
するには、AWS サポートにお問い合わせください。タスクは開始日から 7 日間以内に完了する必要
があります。
• VM がインポートされると、ハードウェア仮想マシン (HVM) 仮想化を使用する EC2 インスタンスが
作成されます。準仮想化(PV)を使用するインスタンスを VM Import によって作成することは、サ
ポートされていません。Linux PVHVM ドライバは、インポートされた VM 内でサポートされます。
• インポートされた Red Hat Enterprise Linux (RHEL) VM は Cloud Access (BYOL) ライセンスを使用
する必要があります。
• インポートされた Linux VM は 64 ビットイメージを使用する必要があります。32 ビット Linux イ
メージのインポートは、サポートされていません。
• インポートされた Linux VM では、最良の結果を得るためにデフォルトのカーネルを使用してくださ
い。カスタム Linux カーネルを使用する VM は正常にインポートされない場合があります。
• 通常、ディスクイメージの圧縮されたバージョンをインポートします。展開したディスクイメージは
1 TiB を超えることはできません。
• VM で 1 つのディスクしか使用されていないことを確認しますVM に複数のディスクがある場合はイ
ンポートできません。(Linux VM の場合、/boot および / はさまざまな場所に配置できますが、同じ
ディスク上になければなりません)。
•
•
•
•
•
•
•
•
ブートボリュームだけを含めて VM をインポートし、追加のディスクは ec2-import-volume コマンド
を使用してインポートすることをお勧めします。ImportInstance タスクが完了したら、
ec2-attach-volume コマンドを使用して、追加のボリュームをインスタンスと関連付けます。
Virtual Hard Disk (VHD) イメージは動的である必要があります。
Microsoft Windows または Linux を実行する Amazon EC2 にインポートする VM には、ドライバやそ
の他のソフトウェアをインストールするために利用できるディスク容量が少なくとも 250 MB がある
ことを確認します。
インポートした VM は、ホストコンピューターに物理的にアタッチされたディスクに一時ディスクス
トレージとしてある Amazon EC2 インスタンスストアに自動的にアクセスできます。インポート中
にこれを無効にすることはできません。インスタンスストレージの詳細については、Amazon EC2
インスタンスストア (p. 735) を参照してください。
現在、複数のネットワークインターフェイスはサポートされていません。変換とインポートが完了す
ると、インスタンスには1つの仮想 NIC が与えられ、DHCP を使用してアドレスが割り当てられま
す。
インターネットプロトコルバージョン 6(IPv6)の IP アドレスはサポートされていません。
vCenter 4.0 または vSphere 4.0 を使用している場合、アタッチされている CD-ROM イメージまたは
ISO を仮想マシンから削除してください。
Amazon VM Import は、c3 および i2 インスタンスタイプにシングルルート I/O 仮想化(SR-IOV)ド
ライバをインストールしません。ただし、Microsoft Windows Server 2012 R2 VM のインポート時を
除きます。これらのドライバは、より優れたパフォーマンス(パケット毎秒)、レイテンシーとスト
レスの低減を可能にする拡張ネットワーキングを使用しない場合は不要です。VM をインポートした
後に c3 または i2 インスタンスタイプで拡張ネットワーキングを有効にする場合は、VPC 内の Linux
インスタンスでの拡張ネットワーキングの有効化 (p. 648)を参照してください。Microsoft Windows
Server 2012 R2 VM の場合、SR-IOV ドライバはインポートプロセスの一部として自動的にインス
トールされます。
「自分のライセンス使用 (BYOL)」モデルを使用している Microsoft Windows VM をインポートする
ことはできません。これらの VM をインポートするには、「VM をイメージとして Amazon EC2 に
インポートする (p. 381)」参照してください。
Amazon EC2 から VM をエクスポートする際の既知の制限事項
インスタンスとボリュームのエクスポートには、次の制限事項があります。
• リージョンあたり最大 5 つのエクスポートタスクを同時に実行できます。
• Amazon Elastic Block Store(Amazon EBS)データボリュームをエクスポートすることはできませ
ん。
380
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
• 複数の仮想ディスクのあるインスタンスまたは AMI はエクスポートできません。
• 固定 Virtual Hard Disk (VHD) を使用するインスタンスや AMI をエクスポートすることはできません。
• 複数のネットワークインターフェイスのあるインスタンスまたは AMI はエクスポートできません。
• 以前に別の仮想化環境から Amazon EC2 にインポートしたインスタンスまたは AMI でない限り、
Amazon EC2 からインスタンスまたは AMI をエクスポートすることはできません。
• 別の AWS アカウントからインスタンスまたは AMI を共有している場合、Amazon EC2 からインス
タンスまたは AMI をエクスポートすることはできません。
VM をイメージとして Amazon EC2 にインポートす
る
Abstract
ImportImage API を使用して、Citrix Xen、Microsoft Hyper-V、または VMware vSphere 仮想化環境から、VM をイ
メージとして Amazon EC2 にインポートします。
Citrix Xen、Microsoft Hyper-V、VMware vSphere などの仮想化環境から仮想マシン(VM)をインポー
トしたら、AMI として Amazon EC2 にインポートできます。AMI から Amazon EC2 インスタンスを起
動する方法の詳細は、インスタンスの作成 (p. 254) を参照してください。
Amazon EC2 で VM を使用するには、まず仮想化環境からエクスポートし、次に AWS Command Line
Interface(AWS CLI)または API ツールを使用して Amazon EC2 にインポートする必要があります。
次の図は、オンプレミス仮想化環境から AWS へ VM をエクスポートするプロセスを示しています。
CLI と API のどちらを使用する場合も、Amazon EC2 に VM またはボリュームをインポートするのと
同じ手順に従います。次に CLI を使用するプロセスを示します。
Amazon EC2 に VM をインポートするには
1.
AWS CLI をインストールします。詳細については、「手順 1: AWS CLI をインストールする (p. 382)」
を参照してください。
2.
Amazon EC2 にインポートする VM を準備します。詳細については、「ステップ 2: VM を準備す
る (p. 382)」を参照してください。
VM を仮想化環境からエクスポートします。詳細については、「ステップ 3: VM をその仮想環境か
らエクスポートする (p. 384)」を参照してください。
3.
381
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
4.
5.
VM を Amazon EC2 にインポートします。詳細については、ステップ 4: Amazon EC2 に VM をイ
ンポートする (p. 385) を参照してください。
Amazon EC2 でインスタンスを起動します。詳細については、「ステップ 5: Amazon EC2 でイン
スタンスを起動する (p. 390)」を参照してください。
手順 1: AWS CLI をインストールする
Abstract
Amazon EC2 コマンドラインツールを使用して、Citrix、Microsoft Hyper-V、または VMware vSphere 仮想マシン
をインポートします。
AWS CLI をインストールすると、Citrix、Microsoft Hyper-V、または VMware vSphere 仮想マシンを
Amazon EC2 にインポートできるようになります。AWS CLI のインストール方法の詳細については、
『AWS Command Line Interface ユーザーガイド』の「AWS コマンドラインインターフェイスの設定」
を参照してください。
サポートされている形式で VM をインポートするには、AWS CLI で以下のコマンドを使用します。
コマンド
説明
import-image
指定したディスクイメージのメタデータを使用し
て、新しいイメージインポートタスクを作成し、
Amazon マシンイメージ(AMI)を作成します。
import-snapshot
指定したディスクイメージのメタデータを使用し
て、新しいスナップショットインポートタスクを
作成し、そのスナップショットを Amazon EBS
にインポートします。
describe-import-image-tasks
インポートタスクを列挙して説明します。
describe-import-snapshot-tasks
インポートタスクのリストと詳細を表示します。
cancel-import-task
アクティブなインポートタスクをキャンセルしま
す。
ステップ 2: VM を準備する
Abstract
仮想化環境からエクスポートする前に VM を設定します。
仮想化環境からエクスポートする前に VM を設定する場合は、次のガイドラインを使用してください。
• 前提条件を確認します。詳細については、「VM Import/Export の前提条件 (p. 372)」を参照してくだ
さい。
• VM のウイルス対策ソフトウェアまたは侵入検出ソフトウェアを無効にします。インポートプロセス
が完了したら、これらのサービスを再度有効にすることができます。
• VMware VM から VMware Tools をアンインストールします。
• あらゆる(仮想または物理)CD-ROM ドライブを切断します。
• ネットワークを、静的 IP アドレスではなく DHCP に設定します。静的プライベート IP アドレスを
割り当てる必要がある場合、VPC サブネットには必ず予約されていないプライベート IP アドレスを
使用します。Amazon Virtual Private Cloud(Amazon VPC)により、VPC サブネットに最初の 4 つ
のプライベート IP アドレスが予約されます。
382
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
• 仮想化環境からエクスポートする前に VM をシャットダウンします。
Windows
• リモートアクセスのためのリモートデスクトップ(RDP)を有効にする
• ホストのファイアウォール(Windows ファイアウォールなど)を設定している場合、RDP へのアク
セスが許可されていることを確認します。そうしないと、インポートが完了してもインスタンスにア
クセスできなくなります。
• 管理者アカウントおよび他のすべてのユーザーアカウントが安全なパスワードを使用していることを
確認します。すべてのアカウントにパスワードが必要です。パスワードがないとインポートは失敗し
ます。
• Windows VM に .NET Framework 3.5 以降がインストールされていることを確認します。これは
Amazon Windows EC2Config Service に必要です。
• VM イメージをインポートする前またはインポートした後に、Windows Server 2008 または Windows
Server 2012 VM イメージでシステムの準備(Sysprep)を実行できます。VM をインポートする前に
Sysprep を実行する場合、インポートプロセスは、自動的にエンドユーザーライセンス契約(EULA)
に同意し、ロケールを EN-US に設定する応答ファイル(unattend.xml)を VM に追加します。イン
ポート後に Sysprep を実行することを選択する場合は、Amazon EC2 Config サービスを使用して
Sysprep を実行することをお勧めします。
デフォルト以外の独自の応答ファイル(unattend.xml)を含めるには:
1. 以下の例の unattend.xml ファイルをコピーし、OS のアーキテクチャに応じて、
processorArchitecture パラメータを x86 または amd64 に設定します。
<?xml version='1.0' encoding='UTF-8'?>
<unattend xmlns:wcm='http://schemas.microsoft.com/WMIConfig/2002/State' xm
lns='urn:schemas-microsoft-com:unattend'>
<settings pass='oobeSystem'>
<component versionScope='nonSxS' processorArchitecture='x86 or amd64'
name='Microsoft-Windows-International-Core' publicKeyToken='31bf3856ad364e35'
language='neutral'>
<InputLocale>en-US</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component versionScope='nonSxS' processorArchitecture='x86 or amd64'
name='Microsoft-Windows-Shell-Setup' publicKeyToken='31bf3856ad364e35' lan
guage='neutral'>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
</component>
</settings>
</unattend>
2. このファイルを、C:\Windows\Panther ディレクトリに、unattend.xml という名前で保存します。
3. /oobe オプションと /generalize オプションを指定して Sysprep を実行します。
383
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
Note
/oobe オプションと /generalize オプションを指定した場合は、Microsoft Windows のイン
ストールから一意のシステム情報がすべて除去され、管理者パスワードをリセットするよ
うに求められます。
4. VM をシャットダウンし、仮想化環境から VM をエクスポートします。
• Windows VM の自動ログオンを無効にします。
• [コントロールパネル] > [システムとセキュリティ] > [Windows Update] の順に開きます。左側のペイ
ンで、[設定の変更] を選択します。目的の設定を選択します。[更新プログラムをダウンロードする
が、インストールを行うかどうかは選択する](デフォルト値)を選択する場合、更新のチェックに
よりインスタンスの CPU リソースの 50% ~ 99% が一時的に消費されることに注意してください。
更新プログラムのチェックは通常、インスタンスが開始して数分後に実行されます。保留中の Microsoft
更新プログラムがなく、再起動時にソフトウェアをインストールするようにコンピュータが設定され
ていないことを確認します。
• 以下の hotfix を適用します。
• You cannot change system time if RealTimeIsUniversal registry entry is enabled in Windows(Windows
で RealTimeIsUniversal レジストリエントリが有効になっている場合、システム時刻を変更できな
い)
• High CPU usage during DST changeover in Windows Server 2008, Windows 7, or Windows Server
2008 R2(Windows Server 2008、Windows 7、Windows Server 2008 R2 で DST への切り替え時
に CPU 使用率が高くなる)
• RealTimeIsUniversal レジストリを有効にします。
Linux
• リモートアクセスの Secure Shell(SSH)を有効にします。
• ホストのファイアウォール(Linux iptables など)で SSH へのアクセスが許可されていることを確認
します。そうしないと、インポートが完了してもインスタンスにアクセスできなくなります。
• インポート後に、非ルートユーザーはパブリックキーベースの SSH を使用してインスタンスにアク
セスするように設定されていることを確認します。パスワードベースの SSH の利用と SSH を介し
たルートログインはどちらも可能ですが、お勧めしません。パブリックキーおよび非ルートユーザー
の使用は、安全性を向上させるため、お勧めします。VM Import では、インポートプロセスの一環と
して ec2-user アカウントを設定しません。
• Linux VM でブートローダーとして GRUB(GRUB レガシー)または GRUB 2 が使用されていること
を確認します。
• Linux VM で EXT2、EXT3、EXT4、Btrfs、JFS、XFS のいずれかのルートファイルシステムが使用
されていることを確認します。
ステップ 3: VM をその仮想環境からエクスポートする
Abstract
Citrix、Microsoft Hyper-V、または VMware vCenter 仮想化環境から VM をエクスポートします。
VM をエクスポートする準備ができたら、それを仮想化環境からエクスポートできます。VM を仮想化
環境からエクスポートする方法については、Citrix、Microsoft Hyper-V、または VMware vCenter の仮
想化環境に関するドキュメントを参照してください。
Citrix: 詳細については、Citrix のウェブサイトで「Export VMs as OVF/OVA」を参照してください。
Microsoft Hyper-V: 詳細については、Microsoft のウェブサイトで「Hyper-V - エクスポートとインポー
ト」を参照してください。
384
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
VMware: 詳細については、VMware のウェブサイトで「Export an OVF Template」を参照してくださ
い。
ステップ 4: Amazon EC2 に VM をインポートする
Abstract
Amazon EC2 に VM をインポートします。
VM を仮想化環境からエクスポートした後に、それを Amazon EC2 にインポートできます。VM のエク
スポート元にかかわらず、インポートプロセスは同じです。
VM インスタンスに関する重要事項と、いくつかのセキュリティおよびストレージに関する推奨事項を
次に示します。
• Amazon EC2 によって、プライベート DHCP IP アドレスがインスタンスに自動的に割り当てられま
す。インスタンスの実行が開始されると、ec2-describe-instances コマンドで DNS 名と IP ア
ドレスを取得できるようになります。インスタンスが VPC にインポートされた場合、パブリック IP
アドレスは割り当てられませんが、セキュリティ上の理由から、サブネットの自動割り当てパブリッ
ク IP が有効化されます。ただし、elastic IP アドレス(EIP)を作成して、インポートしたインスタ
ンスにアタッチすることができます。
• インスタンスには 1 つのイーサネットネットワークインターフェイスのみがアタッチされます。
• Windows インスタンスのすべてのユーザーアカウントに強力なパスワードを設定することをお勧め
します。Linux インスタンスでは SSH のパブリックキーを使用することをお勧めします。
• Windows インスタンスの場合は、Amazon EC2 に仮想マシンをインポートした後に Amazon Windows
EC2Config Service の最新バージョンをインストールすることをお勧めします。
Amazon EC2 に OVA 形式で VM をインポートするには
任意のアップロードツールを使用して、Amazon S3 バケットに OVA 形式で VM をアップロードでき
ます。Amazon S3 に VM をアップロードした後、AWS CLI を使用して OVA イメージをインポートで
きます。これらのツールは、ディスクファイルへの URL (パブリック Amazon S3 ファイル、つまり
プライベート Amazon S3 ファイルの署名付き GET URL)か、Amazon S3 バケットおよびディスク
ファイルへのパスのいずれかを受け取ります。
aws ec2 import-image を使用して、新しいインスタンスインポートタスクを作成します。
コマンドの構文は次のとおりです。
$ aws ec2 import-image --cli-input-json "{ \"Description\": \"Windows 2008
OVA\", \"DiskContainers\": [ { \"Description\": \"First CLI task\", \"UserBuck
et\": { \"S3Bucket\": \"my-import-bucket\", \"S3Key\" : \"my-windows-2008vm.ova\" } } ]}"
S3Key は、S3Bucket にアップロードするイメージファイルの名前です。
レスポンスの例
<ImportImageResponse xmlns="http://ec2.amazonaws.com/doc/2015-03-01/">
<progress>2</progress>
<importTaskId>import-ami-fgxn195v</importTaskId>
<status>active</status>
<description>Windows 2008 OVA</description>
<snapshotTaskDetailSet>
<item>
<diskImageSize>0.0</diskImageSize>
385
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
<userBucket>
<s3Bucket>my-import-bucket</s3Bucket>
<s3Key>my-windows-2008-vm.ova</s3Key>
</userBucket>
</item>
</snapshotTaskDetailSet>
<licenseType>AWS</licenseType>
<statusMessage>pending</statusMessage>
<requestId>1571e127-d6d8-4984-b4f1-3a21e9dbdcb5</requestId>
</ImportImageResponse>
複数の明示的なディスクで構成された VM を Amazon EC2 にインポートするには
VM のディスクイメージを Amazon S3 にアップロードした後、AWS CLI を使用してディスクイメージ
またはスナップショットをインポートできます。これらのツールは、ディスクファイルへの URL (パ
ブリック Amazon S3 ファイル、つまりプライベート Amazon S3 ファイルの署名付き GET URL)か、
Amazon S3 バケットおよびディスクファイルへのパスのいずれかを受け取ります。また、ImportImage
API への入力として Amazon EBS スナップショットを使用することもできます。
複数の明示的なディスクを指定した AWS EC2 の import-image コマンドの使用例
新しいインスタンスインポートタスクに aws ec2 import-image コマンドを使用します。
$ aws ec2 import-image --cli-input-json "{ \"Description\": \"Windows 2008
VMDKs\", \"DiskContainers\": [ { \"Description\": \"Second CLI task\", \"User
Bucket\": { \"S3Bucket\": \"my-import-bucket\", \"S3Key\" : \"my-windows-2008vm-disk1.vmdk\" } }, { \"Description\": \"First CLI task\", \"UserBucket\": {
\"S3Bucket\": \"my-import-bucket\", \"S3Key\" : \"my-windows-2008-vm-disk2.vmdk\"
} } ] }"
レスポンスの例
<ImportImageResponse xmlns="http://ec2.amazonaws.com/doc/2015-03-01/">
<progress>2</progress>
<importTaskId>import-ami-fgxn591c</importTaskId>
<status>active</status>
<description>Windows 2008 VMDKs</description>
<snapshotTaskDetailSet>
<item>
<diskImageSize>0.0</diskImageSize>
<userBucket>
<s3Bucket>my-import-bucket</s3Bucket>
<s3Key>my-windows-2008-vm-disk1.vmdk</s3Key>
</userBucket>
</item>
<item>
<diskImageSize>0.0</diskImageSize>
<userBucket>
<s3Bucket>my-import-bucket</s3Bucket>
<s3Key>my-windows-2008-vm-disk2.vmdk</s3Key>
</userBucket>
</item>
</snapshotTaskDetailSet>
<licenseType>AWS</licenseType>
<statusMessage>pending</statusMessage>
386
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
<requestId>1571e127-d6d8-4984-b4f1-3a21e9dbdcb5</requestId>
</ImportImageResponse>
イメージインポートタスクのステータスの確認
Abstract
Amazon EC2 CLI を使用してインポートタスクのステータスを確認します。
aws ec2 describe-import-image-tasks コマンドはインポートタスクのステータスを返します。
次のようなステータス値があります。
• active - タスクはアクティブであり、現在進行中です。
• deleting - タスクは現在キャンセルされています。
• deleted - タスクはキャンセルされました。
• completed - タスクは完了し、AMI はすぐに使用できます。
インポートタスクのステータスを確認するには
タスクのステータスを確認するには、aws ec2 describe-import-image-tasks コマンドを使用し
ます。コマンドの構文は次のとおりです。
AWS EC2 の describe-import-image-tasks コマンドの使用例:
以下の例では、インポートタスクのステータスを確認しています。
$ aws ec2 describe-import-image-tasks --cli-input-json "{ \"ImportTaskIds\":
[\"import-ami-fgxn195v\"], \"NextToken\": \"abc\", \"MaxResults\": 10 } "
レスポンスの例
以下のレスポンスは aws ec2 describe-import-image-tasks コマンドの出力を示しています。
<DescribeImportImageTasksResponse xmlns="http://ec2.amazonaws.com/doc/2015-0301/">
<importImageTaskSet>
<item>
<platform>Windows</platform>
<importTaskId>import-ami-fgs8im0c</importTaskId>
<imageId>ami-4a6c2722</imageId>
<status>completed</status>
<description>Linux OVA</description>
<architecture>x86_64</architecture>
<snapshotTaskDetailSet>
<item>
<diskImageSize>3.115815424E9</diskImageSize>
<deviceName>/dev/sda1</deviceName>
<description>First CLI task</description>
<format>VMDK</format>
<url>https://mys3bucket/vms/my-linux-vm.ova?AWSAccessKey
Id=myAccessKeyId&Expires=expirationDate&Signature=mySignature</url>
</item>
</snapshotTaskDetailSet>
<licenseType>AWS</licenseType>
</item>
387
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
</importImageTaskSet>
<requestId>377ec1ca-6a47-42f5-8b84-aa07ff87f7b0</requestId>
</DescribeImportImageTasksResponse>
Amazon EBS にディスクイメージをインポートする
Abstract
データストレージを Amazon EBS にインポートし、それを既存の EC2 インスタンスのいずれかにアタッチしま
す。
このセクションでは、Amazon EBS スナップショットにディスクをインポートし、後で Amazon EBS
ボリュームを作成する方法について説明します。Amazon EC2 では、RAW、Virtual Hard Disk(VHD)、
および ESX Virtual Machine Disk(VMDK)ディスク形式のインポートがサポートされます。
仮想化環境から仮想マシンをエクスポートしたら、たった 1 つのステップでボリュームを Amazon EBS
にインポートします。Amazon S3 にディスクイメージをアップロードするためのアップロードタスク
を作成し、ボリュームを使用するためのインポートタスクを作成します。
Amazon EBS にディスクイメージをインポートするには
1.
Amazon EBS にボリュームをアップロードするには、AWS EC2 の import-snapshot コマンドを使
用します。
AWS EC2 の import-snapshot コマンドの使用例。
$ aws ec2 import-snapshot --cli-input-json "{ \"Description\": \"Windows
2008 VMDK\", \"DiskContainer\": { \"Description\": \"First CLI snap\",
\"Url\": \"https://mys3bucket/vms/Win_2008_Server_Enterprise_R2_64-bit.vm
dk?AWSAccessKeyId=myaccesskey&Expires=expirationdate&Signature=signature\"
}, \"ClientToken\": \"abc\" }"
レスポンスの例
<ImportSnapshotResponse xmlns="http://ec2.amazonaws.com/doc/2015-03-01/">
<snapshotTaskDetail>
<diskImageSize>0.0</diskImageSize>
<progress>3</progress>
<status>active</status>
<description>Windows 2008 VMDK</description>
<url>https://mys3bucket/vms/Win_2008_Server_Enterprise_R2_64bit.vmdk?AWSAccessKeyId=myaccesskey&Expires=expirationdate&Signature=signa
ture\</url>
<statusMessage>pending</statusMessage>
</snapshotTaskDetail>
<importTaskId>import-snap-ffy5pvea</importTaskId>
<description>Windows 2008 VMDK</description>
<requestId>2ef5652d-6816-4c20-89b2-a4bbb0560190</requestId>
</ImportSnapshotResponse>
2.
スナップショットが正常にインポートされたことを確認するには、aws ec2
describe-import-snapshot-tasks コマンドを使用します。
AWS EC2 の describe-import-snapshot-tasks コマンドの使用例。
388
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
$ aws ec2 describe-import-snapshot-tasks --cli-input-json "{ \"Import
TaskIds\": [\"import-snap-fgr1mmg7\"], \"NextToken\": \"abc\", \"MaxResults\":
10 } "
レスポンスの例
<DescribeImportSnapshotTasksResponse xmlns="http://ec2.amazonaws.com/doc/201503-01/">
<importSnapshotTaskSet>
<item>
<snapshotTaskDetail>
<diskImageSize>3.115815424E9</diskImageSize>
<progress>22</progress>
<status>active</status>
<description>Windows 2008 VMDK</description>
<format>VMDK</format>
<url>https://mys3bucket/vms/Win_2008_Server_Enterprise_R2_64bit.vmdk?AWSAccessKeyId=myaccesskey&Expires=expirationdate&Signature=signa
ture\</url>
<statusMessage>validated</statusMessage>
</snapshotTaskDetail>
<importTaskId>import-snap-fgr1mmg7</importTaskId>
<description>Windows 2008 VMDK</description>
</item>
</importSnapshotTaskSet>
<requestId>3ec7adc5-001a-454f-abc3-820c8a91c353</requestId>
</DescribeImportSnapshotTasksResponse>
3.
この例のステータスは [active] であり、インポートが進行中であることがわかります。
Amazon EBS スナップショットからボリュームを作成するには、aws ec2 create-volume を使
用します。以下の例では、スナップショットからボリュームを作成しています。Amazon EBS ボ
リュームを Amazon EC2 インスタンスにアタッチできるように、インスタンスがあるアベイラビ
リティーゾーンを選択してください。
$ aws ec2 create-volume --availability-zone us-east-1a -snapshot-id snapabcd1234
出力例
{
"AvailabilityZone": "us-east-1a",
"VolumeId": "vol-1234abcd",
"State": "creating",
"SnapshotId": "snap-abcd1234"
}
4.
Amazon EBS ボリュームを既存の Amazon EC2 インスタンスのいずれかにアタッチするには、aws
ec2 attach-volume を使用します。以下の例では、ボリューム vol-1234abcd をデバイス /dev/sdf
上の i-abcd1234 インスタンスにアタッチしています。
$ aws ec2 attach-volume --volume-id vol-1234abcd --instance-id i-abcd1234
--device /dev/sdf
389
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をイメージとして Amazon EC2 にインポートする
出力例
{
"AttachTime": "YYYY-MM-DDTHH:MM:SS.000Z",
"InstanceId": "i-abcd1234",
"VolumeId": "vol-1234abcd",
"State": "attaching",
"Device": "/dev/sdf"
}
インポートタスクのキャンセル
Abstract
インポートタスクをキャンセルします。
アクティブなインポートタスクをキャンセルするには、aws ec2 cancel-import-task コマンドを
使用します。AMI またはスナップショットのいずれのインポートタスクでもかまいません。
インポートタスクをキャンセルするには
aws ec2 cancel-import-task コマンドで、キャンセルするインポートタスクの ID を使用します。
AWS EC2 の cancel-import-task コマンドの使用例
次の例では、タスク ID import-ami-fg4z7c9h に関連付けられたアップロードをキャンセルします。
$ aws ec2 cancel-import-task --import-task-id "import-ami-fg4z7c9h"
レスポンスの例
<CancelImportTaskResponse xmlns="http://ec2.amazonaws.com/doc/2015-03-01/">
<importTaskId>import-ami-fg4z7c9h</importTaskId>
<state>active</state>
<previousState>deleting</previousState>
<requestId>1e5abd4c-b8de-4b3c-8c1a-73d93b006c1f</requestId>
</CancelImportTaskResponse>
ステップ 5: Amazon EC2 でインスタンスを起動する
Abstract
インポートした VM に基づいて AMI から Amazon EC2 インスタンスを起動します。
aws ec2 import-image タスクの完了後、Amazon EC2 コンソールに AMI が表示されます。この
AMI を選択し、その AMI に基づいて Amazon EC2 インスタンスを起動できます。
AMI に基づいて Amazon EC2 インスタンスを起動するには
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインの [AMIs] をクリックします。
390
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
4.
コンテンツペインで、AMI を選択し、[Launch] をクリックします。
VM をインスタンスとして Amazon EC2 にインポー
トする
Abstract
ImportInstance API を使用して、Citrix Xen、Microsoft Hyper-V、または VMware vSphere 仮想化環境から、VM を
インスタンスとして Amazon EC2 にインポートします。
Amazon EC2 でインスタンスを起動する方法は 2 つあります。Amazon マシンイメージ(AMI)からイ
ンスタンスを起動する方法と、Citrix Xen、Microsoft Hyper-V、または VMware vSphere のような仮想
化環境からインポートした仮想マシン(VM)からインスタンスを起動する方法です。このセクション
では、VM をインポートし、Amazon EC2 インスタンスとして起動する方法について説明します。この
方法では、1 つのボリュームで構成された VM のみがサポートされています。複数のボリュームで構成
された VM をインポートするには、「VM をイメージとして Amazon EC2 にインポートする (p. 381)」
を参照してください。AMI から Amazon EC2 インスタンスを起動する方法の詳細は、インスタンスの
作成 (p. 254) を参照してください。
VM を Amazon EC2 でインスタンスとして使用するには、最初に仮想化環境からエクスポートし、次
に Amazon EC2 コマンドラインインターフェイス(CLI)または API ツールを使用して Amazon EC2
にインポートします。VMware vCenter から VM をインポートする場合、AWS Connector for vCenter
を使用して VMware から VM をエクスポートし、Amazon EC2 にインポートすることもできます。詳
細については、『AWS Management Portal for vCenter ユーザーガイド』の「AWS Connector for vCenter
を使用した Amazon EC2 への仮想マシンの移行」を参照してください。
Important
「自分のライセンス使用(BYOL)」モデルを使用している Microsoft Windows インスタンス
のインポートに ImportInstance を使用することはできません。これらのインスタンスタイプを
インポートするには、VM をイメージとして Amazon EC2 にインポートする (p. 381)を参照し
てください。
次の図は、オンプレミス仮想化環境から AWS へ VM をエクスポートするプロセスを示しています。
CLI と API のどちらを使用する場合も、Amazon EC2 に VM またはボリュームをインポートするのと
同じ手順に従います。次に CLI を使用するプロセスを示します。
391
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
Amazon EC2 に VM をインポートするには
1.
CLI をインストールします。詳細については、「ステップ 1: Amazon EC2 CLI をインストールす
る (p. 392)」を参照してください。
2.
Amazon EC2 にインポートする VM を準備します。詳細については、「ステップ 2: VM を準備す
る (p. 393)」を参照してください。
VM を仮想化環境からエクスポートします。詳細については、「ステップ 3: VM をその仮想環境か
らエクスポートする (p. 395)」を参照してください。
VM を Amazon EC2 にインポートします。詳細については、ステップ 4: Amazon EC2 に VM をイ
ンポートする (p. 395) を参照してください。
3.
4.
5.
Amazon EC2 でインスタンスを起動します。詳細については、「ステップ 5: Amazon EC2 でイン
スタンスを起動する (p. 402)」を参照してください。
ステップ 1: Amazon EC2 CLI をインストールする
Abstract
Amazon EC2 コマンドラインツールを使用して、Citrix、Microsoft Hyper-V、または VMware vSphere 仮想マシン
をインポートします。
Citrix、Microsoft Hyper-V、または VMware vSphere 仮想マシンを Amazon EC2 にインポートしたり、
Amazon EC2 からエクスポートするには、Amazon EC2 CLI をインストールする必要があります。ま
だ Amazon EC2 CLI をインストールしていない場合は、Setting Up the Amazon EC2 Tools を参照して
ください。
以下の Amazon EC2 コマンドを使用して、VM のインポートやエクスポートを行います。
コマンド
説明
ec2-import-instance
指定したディスクイメージのメタデータを使用し
てインスタンスをインポートする新しいタスクが
作成され、そのインスタンスが Amazon EC2 にイ
ンポートされます。
ec2-import-volume
指定したディスクイメージのメタデータを使用し
てボリュームをインポートする新しいタスクが作
成され、そのボリュームが Amazon EC2 にイン
ポートされます。
ec2-resume-import
インスタンスのインポートタスクまたはボリュー
ムインポートタスクの ID と関連付けられたディ
スクイメージのアップロードを再開します。
ec2-describe-conversion-tasks
インポートタスクを列挙して説明します。
ec2-cancel-conversion-task
アクティブなインポートタスクをキャンセルしま
す。インスタンスまたはボリュームのいずれのイ
ンポートタスクでもかまいません。
ec2-delete-disk-image
Amazon S3 バケットからのインポートのため、一
部または完全にアップロードされたディスクイ
メージを削除します。
ec2-create-image-export-task
実行中または停止したインスタンスを Amazon S3
バケットにエクスポートします。
392
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
コマンド
説明
ec2-cancel-export-task
アクティブなエクスポートタスクをキャンセルし
ます。
ec2-describe-export-tasks
エクスポートタスクを列挙して説明します。これ
には最後にキャンセルされたタスクと完了したタ
スクも含まれます。
これらのコマンドと他の Amazon EC2 コマンドについては、Amazon EC2 コマンドラインリファレン
ス を参照してください。
ステップ 2: VM を準備する
Abstract
仮想化環境からエクスポートする前に VM を設定します。
仮想化環境からエクスポートする前に VM を設定する場合は、次のガイドラインを使用してください。
• 前提条件を確認します。詳細については、「VM Import/Export の前提条件 (p. 372)」を参照してくだ
さい。
• VM のウイルス対策ソフトウェアまたは侵入検出ソフトウェアを無効にします。インポートプロセス
が完了したら、これらのサービスを再度有効にすることができます。
• VMware VM から VMware Tools をアンインストールします。
• あらゆる(仮想または物理)CD-ROM ドライブを切断します。
• ネットワークを、静的 IP アドレスではなく DHCP に設定します。静的プライベート IP アドレスを
割り当てる必要がある場合、VPC サブネットには必ず予約されていないプライベート IP アドレスを
使用します。Amazon Virtual Private Cloud(Amazon VPC)により、VPC サブネットに最初の 4 つ
のプライベート IP アドレスが予約されます。
• エクスポートする前に VM をシャットダウンします。
Windows
• リモートアクセスのためのリモートデスクトップ(RDP)を有効にする
• ホストのファイアウォール(Windows ファイアウォールなど)を設定している場合、RDP へのアク
セスが許可されていることを確認します。そうしないと、インポートが完了してもインスタンスにア
クセスできなくなります。
• 管理者アカウントおよび他のすべてのユーザーアカウントが安全なパスワードを使用していることを
確認します。すべてのアカウントにパスワードが必要です。パスワードがないとインポートは失敗し
ます。
• Windows VM に .NET Framework 3.5 以降がインストールされていることを確認します。これは
Amazon Windows EC2Config Service に必要です。
• VM イメージをインポートする前またはインポートした後に、Windows Server 2008 または Windows
Server 2012 VM イメージでシステムの準備(Sysprep)を実行できます。VM をインポートする前に
Sysprep を実行する場合、インポートプロセスは、自動的にエンドユーザーライセンス契約(EULA)
に同意し、ロケールを EN-US に設定する応答ファイル(unattend.xml)を VM に追加します。イン
ポート後に Sysprep を実行することを選択する場合は、Amazon EC2 Config サービスを使用して
Sysprep を実行することをお勧めします。
デフォルト以外の独自の応答ファイル(unattend.xml)を含めるには:
1. 以下の例の unattend.xml ファイルをコピーし、OS のアーキテクチャに応じて、
processorArchitecture パラメータを x86 または amd64 に設定します。
393
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
<?xml version='1.0' encoding='UTF-8'?>
<unattend xmlns:wcm='http://schemas.microsoft.com/WMIConfig/2002/State' xm
lns='urn:schemas-microsoft-com:unattend'>
<settings pass='oobeSystem'>
<component versionScope='nonSxS' processorArchitecture='x86 or amd64'
name='Microsoft-Windows-International-Core' publicKeyToken='31bf3856ad364e35'
language='neutral'>
<InputLocale>en-US</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component versionScope='nonSxS' processorArchitecture='x86 or amd64'
name='Microsoft-Windows-Shell-Setup' publicKeyToken='31bf3856ad364e35' lan
guage='neutral'>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
</component>
</settings>
</unattend>
2. このファイルを、C:\Windows\Panther ディレクトリに、unattend.xml という名前で保存します。
3. /oobe オプションと /generalize オプションを指定して Sysprep を実行します。
Note
/oobe オプションと /generalize オプションを指定した場合は、Microsoft Windows のイン
ストールから一意のシステム情報がすべて除去され、管理者パスワードをリセットするよ
うに求められます。
•
•
•
•
4. VM をシャットダウンし、仮想化環境から VM をエクスポートします。
Windows VM の自動ログオンを無効にします。
保留中の Microsoft 更新プログラムがなく、再起動時にソフトウェアをインストールするようにコン
ピュータが設定されていないことを確認します。
以下の hotfix を適用します。
• You cannot change system time if RealTimeIsUniversal registry entry is enabled in Windows(Windows
で RealTimeIsUniversal レジストリエントリが有効になっている場合、システム時刻を変更できな
い)
• High CPU usage during DST changeover in Windows Server 2008, Windows 7, or Windows Server
2008 R2(Windows Server 2008、Windows 7、Windows Server 2008 R2 で DST への切り替え時
に CPU 使用率が高くなる)
RealTimeIsUniversal レジストリを有効にします。
Linux
• リモートアクセスの Secure Shell(SSH)を有効にします。
• ホストのファイアウォール(Linux iptables など)で SSH へのアクセスが許可されていることを確認
します。そうしないと、インポートが完了してもインスタンスにアクセスできなくなります。
• インポート後に、非ルートユーザーはパブリックキーベースの SSH を使用してインスタンスにアク
セスするように設定されていることを確認します。パスワードベースの SSH の利用と SSH を介し
394
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
たルートログインはどちらも可能ですが、お勧めしません。パブリックキーおよび非ルートユーザー
の使用は、安全性を向上させるため、お勧めします。VM Import では、インポートプロセスの一環と
して ec2-user アカウントを設定しません。
• Linux VM でブートローダーとして GRUB(GRUB レガシー)または GRUB 2 が使用されていること
を確認します。
• Linux VM で EXT2、EXT3、EXT4、Btrfs、JFS、XFS のいずれかのルートファイルシステムが使用
されていることを確認します。
ステップ 3: VM をその仮想環境からエクスポートする
Abstract
Citrix、Microsoft Hyper-V、または VMware vCenter 仮想化環境から VM をエクスポートします。
VM をエクスポートする準備ができたら、それを仮想化環境からエクスポートできます。VM を仮想化
環境からエクスポートする方法については、Citrix、Microsoft Hyper-V、または VMware vCenter の仮
想化環境に関するドキュメントを参照してください。
Citrix: 詳細については、Citrix のウェブサイトで「Export VMs as OVF/OVA」を参照してください。
Microsoft Hyper-V: 詳細については、Microsoft のウェブサイトで「Hyper-V - エクスポートとインポー
ト」を参照してください。
VMware: 詳細については、VMware のウェブサイトで「Export an OVF Template」を参照してくださ
い。
ステップ 4: Amazon EC2 に VM をインポートする
Abstract
Amazon EC2 に VM をインポートします。
VM を仮想化環境からエクスポートした後に、それを Amazon EC2 にインポートできます。VM のエク
スポート元にかかわらず、インポートプロセスは同じです。
VM インスタンスに関する重要事項と、いくつかのセキュリティおよびストレージに関する推奨事項を
次に示します。
• Amazon EC2 によって、プライベート DHCP IP アドレスがインスタンスに自動的に割り当てられま
す。インスタンスの実行が開始されると、ec2-describe-instances コマンドで DNS 名と IP ア
ドレスを取得できるようになります。インスタンスが VPC にインポートされた場合、パブリック IP
アドレスは割り当てられませんが、セキュリティ上の理由から、サブネットの自動割り当てパブリッ
ク IP が有効化されます。ただし、elastic IP アドレス(EIP)を作成して、インポートしたインスタ
ンスにアタッチすることができます。
• 各インスタンスにはイーサネットネットワークインターフェイスが 1 つだけあります。
• インポートタスクを作成するときに使用するサブネットを指定するには、ec2-import-instance
コマンドで --subnet subnet_id オプションを使用します。指定しない場合、パブリック IP アド
レスが使用されます。セキュリティグループの制限を使用して、インスタンスへのアクセスを制御す
ることをお勧めします。
• Windows インスタンスのすべてのユーザーアカウントに強力なパスワードを設定することをお勧め
します。Linux インスタンスでは SSH のパブリックキーを使用することをお勧めします。
• Windows インスタンスの場合は、Amazon EC2 に仮想マシンをインポートした後に Amazon Windows
EC2Config Service の最新バージョンをインストールすることをお勧めします。
• Amazon S3 バケット所有者とシークレットキーを指定するために -o および -w オプションを提供す
ることに加えて、AWS_ACCESS_KEY および AWS_SECRET_KEY 環境変数を設定しない場合は、
-O および -W オプションも含める必要があります。
395
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
Amazon EC2 に VM をインポートするには
ec2-import-instance を使用して、新しいインスタンスインポートタスクを作成します。
コマンドの構文は次のとおりです。
ec2-import-instance disk_image_filename -f file_format -t instance_type -a ar
chitecture -b s3_bucket_name -o owner -w secret_key -p platform_name -O
your_access_key -W your_secret_key
VM のインポートが中断された場合、ec2-resume-import コマンドを使用して、停止したところから
インポートを再開できます。詳細については、「アップロードを再開する (p. 400)」を参照してくださ
い。
例(Windows)
次のコマンドは、Windows Server 2008 SP2(32 ビット)VM をインポートするインポートインスタン
スタスクを作成します。
C:\> ec2-import-instance ./WinSvr8-2-32-disk1.vmdk -f VMDK -t m1.small -a i386
-b myawsbucket -o AKIAIOSFODNN7EXAMPLE -w wJalrXUtnFEMI/K7MDENG/bPxRfi
CYEXAMPLEKEY -p Windows -O AKIAI44QH8DHBEXAMPLE -W je7MtGbCl
wBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
このリクエストでは、VMDK ファイルの WinSvr8-2-32-disk1.vmdk を使用してインポートタスク
を作成します。(代わりに VHD または RAW 形式も使用できることに注意してください)。-s パラ
メータを使用してリクエストボリュームのサイズを指定しない場合、ディスクイメージファイルに基づ
くボリュームサイズが使用されます。出力は次の例のようになります。
Requesting volume size: 25 GB
Disk image format: Stream-optimized VMDK
Converted volume size: 26843545600 bytes (25.00 GiB)
Requested EBS volume size: 26843545600 bytes (25.00 GiB)
TaskType
IMPORTINSTANCE TaskId import-i-fhbx6hua
ExpirationTime
2011-09-09T15:03:38+00:00
Status active StatusMessage
Pending In
stanceID
i-6ced060c
DISKIMAGE
DiskImageFormat VMDK
DiskImageSize
5070303744
VolumeSize
25
AvailabilityZone
us-east-1c
Approximate
BytesConverted
0
Status active StatusMessage
Pending
Creating new manifest at testImport/9cba4345-b73e-4469-81062756a9f5a077/Win_2008_R1_EE_64.vmdkmanifest.xml
Uploading the manifest file
Uploading 5070303744 bytes across 484 parts
0% |--------------------------------------------------| 100%
|==================================================|
Done
例(Linux)
次の例では、64 ビット Linux VM をインポートするインスタンスインポートタスクを作成します。
$ ec2-import-instance rhel6.4-64bit-disk.vhd -f vhd -t m3.xlarge -a x86_64 -b
myawsbucket -o AKIAIOSFODNN7EXAMPLE -w wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
-p Linux
396
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
このリクエストでは、VHD ファイル [rhel6.4-64bit-disk.vhd] を使用してインポートタスクを作成しま
す。出力は次の例のようになります。
Requesting volume size: 8 GB
TaskType
IMPORTINSTANCE TaskId import-i-ffnzq636
ExpirationTime
2013-12-12T22:55:18Z
Status
active StatusMessage
Pending InstanceID
i-a56ab6dd
DISKIMAGE
DiskImageFormat VHD
DiskImageSize
861055488
VolumeSize
8
AvailabilityZone
us-east-1d
ApproximateBytesCon
verted
0
Status active StatusMessage
Pending
Creating new manifest at myawsbucket/b73bae14-7ec5-4122-89584234028e1d9f/rhel6.4-64bit-disk.vhdmanifest.xml
Uploading the manifest file
Uploading 861055488 bytes across 83 parts
0% |--------------------------------------------------| 100%
|==================================================|
Done
Average speed was 11.054 MBps
The disk image for import-i-ffnzq636 has been uploaded to Amazon S3 where it
is being converted into
an EC2 instance. You may monitor the progress of this task by running ec2-de
scribe-conversion-tasks.
When the task is completed, you may use ec2-delete-disk-image to remove the
image from S3.
インポートタスクのステータスをチェックする
Abstract
Amazon EC2 CLI を使用してインポートタスクのステータスを確認します。
ec2-describe-conversion-tasks コマンドはインポートタスクのステータスを返します。次のようなス
テータス値があります。
•
•
•
•
active - インスタンスまたはボリュームはまだインポート中です。
cancelling - インスタンスまたはボリュームはまだキャンセル中です。
cancelled - インスタンスまたはボリュームはキャンセルされました。
completed - インスタンスまたはボリュームは使用できる状態です。
インポートしたインスタンスが停止状態にあります。ec2-start-instance を使用してそれを起動
します。詳細については、Amazon EC2 コマンドラインリファレンス の ec2-start-instances を参照
してください。
インポートタスクのステータスを確認するには
タスクのステータスを返す ec2-describe-conversion-tasks を使用します。コマンドの構文は次のとおり
です。
ec2-describe-conversion-tasks task_id
例
次の例で、インポートインスタンスタスクのステータスを確認できます。
397
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
$ ec2-describe-conversion-tasks import-i-ffvko9js
レスポンス 1
次のレスポンスは、IMPORTINSTANCE ステータスが active であり、893968896 バイト中の 73747456
バイトが変換されたことを示します。
TaskType
IMPORTINSTANCE TaskId import-i-ffvko9js
ExpirationTime
2011-06-07T13:30:50+00:00
Status active StatusMessage
Pending In
stanceID
i-17912579
DISKIMAGE
DiskImageFormat VMDK
DiskImageSize
893968896 VolumeSize
12
AvailabilityZone
us-east-1
ApproximateBytesConverted
73747456
Status active StatusMessage
Pending
レスポンス 2
次のレスポンスは、IMPORTINSTANCE ステータスが active であり、7% の進行状況で、DISKIMAGE
が完了したことを示します。
TaskType
IMPORTINSTANCE TaskId import-i-ffvko9js
ExpirationTime
2011-06-07T13:30:50+00:00
Status active StatusMessage
Progress: 7%
InstanceID
i-17912579
DISKIMAGE
DiskImageFormat VMDK
DiskImageSize
893968896 VolumeId
vol-9b59daf0
VolumeSize
12
AvailabilityZone
us-east-1
ApproximateBytesConverted
893968896 Status completed
レスポンス 3
次のレスポンスは、IMPORTINSTANCE ステータスが completed であることを示します。
TaskType
IMPORTINSTANCE TaskId import-i-ffvko9js
ExpirationTime
2011-06-07T13:30:50+00:00
Status completed
InstanceID
i-17912579
DISKIMAGE
DiskImageFormat VMDK
DiskImageSize
893968896 VolumeId
vol-9b59daf0
VolumeSize
12
AvailabilityZone
us-east-1
ApproximateBytesConverted
893968896 Status completed
Note
IMPORTINSTANCE ステータスは、最終ステータスを判断するために使用します。DISKIMAGE
ステータスが completed になる前の一定期間、IMPORTINSTANCE ステータスが completed
になります。
ec2-stop-instance、ec2-start-instance、ec2-reboot-instance、ec2-terminate-instance
などのコマンドを使用して、インスタンスを管理できます。詳細については、『Amazon EC2 コマン
ドラインリファレンス』を参照してください。
Amazon EBS にボリュームをインポートする
Abstract
データストレージを Amazon EBS にインポートし、それを既存の EC2 インスタンスのいずれかにアタッチしま
す。
このセクションでは、データストレージを Amazon EBS にインポートし、それを既存の EC2 インスタ
ンスのいずれかにアタッチする方法について説明します。Amazon EC2 では、RAW、Virtual Hard Disk
398
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
(VHD)、および ESX Virtual Machine Disk(VMDK)ディスク形式のインポートがサポートされま
す。
Important
Amazon EC2 セキュリティグループを利用して、インポートしたインスタンスへのネットワー
クアクセスを制限することをお勧めします。信頼できる EC2 インスタンスとリモートホスト
にのみ、RDP やその他のサービスポートへの接続を許可するようにセキュリティグループを設
定します。セキュリティグループの詳細については、Linux インスタンスの Amazon EC2 セ
キュリティグループ (p. 514) を参照してください。
仮想化環境から仮想マシンをエクスポートしたら、たった 1 つのステップでボリュームを Amazon EBS
にインポートします。インポートタスクを作成し、ボリュームをアップロードします。
Amazon EBS にボリュームをインポートするには
1.
ec2-import-volume を使用して、ボリュームを Amazon EBS にアップロードできるようにするタス
クを作成します。コマンドの構文は次のとおりです。
ec2-import-volume disk_image -f file_format -s volume_size -z availabil
ity_zone -b s3_bucket_name -o Amazon S3 bucket owner -w Amazon S3 bucket
secret_acess_key --region region_name -O your_access_key -W your_secret_key
次の例では、ボリュームを d アベイラビリティゾーンの us-east-1 リージョンにインポートするた
めのインポートボリュームタスクを作成します。
$ ec2-import-volume Win_2008_R1_EE_64.vmdk -f vmdk -s 25 -z us-east-1d -b
myawsbucket -o AKIAIOSFODNN7EXAMPLE -w wJalrXUtnFEMI/K7MDENG/bPxRfi
CYEXAMPLEKEY --region us-east-1 -O AKIAI44QH8DHBEXAMPLE -W je7MtGbCl
wBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
以下に、応答の例を示します。
Requesting volume size: 25 GB
Disk image format: Stream-optimized VMDK
Converted volume size: 26843545600 bytes (25.00 GiB)
Requested EBS volume size: 26843545600 bytes (25.00 GiB)
TaskType
IMPORTVOLUME
TaskId import-vol-ffut5xv4
ExpirationTime
2011-09-09T15:22:30+00:00
Status active StatusMessage
Pending
DISKIMAGE
DiskImageFormat VMDK
DiskImageSize
5070303744
VolumeSize
25
AvailabilityZone
us-east-1d
Approximate
BytesConverted
0
Creating new manifest at myawsbucket/0fd8fcf5-04d8-44ae-981f3c9f56d04520/Win_2008_R1_EE_64.vmdkmanifest.xml
Uploading the manifest file
Uploading 5070303744 bytes across 484 parts
0% |--------------------------------------------------| 100%
|==================================================|
Done
Amazon EC2 は、次のステップで使用するタスク ID を返します。この例では、ID は
import-vol-ffut5xv4 です。
2.
ec2-describe-conversion-tasks を使用して、ボリュームのインポートが成功したことを確認しま
す。
399
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
$ ec2-describe-conversion-tasks import-vol-ffut5xv4
TaskType
IMPORTVOLUME
TaskId import-vol-ffut5xv4
ExpirationTime
2011-09-09T15:22:30+00:00
Status completed
DISKIMAGE
DiskImageFormat VMDK
DiskImageSize
5070303744
VolumeId
vol-365a385c
VolumeSize
25
AvailabilityZone
us-east-1d
ApproximateBytesConverted
5070303744
この例のステータスは completed です。これは、インポートが成功したことを示します。
3.
ec2-attach-volume を使用して、Amazon EBS ボリュームを既存の EC2 インスタンスのいずれか
にアタッチします。次の例では、ボリューム vol-2540994c をデバイス i-a149ec4a の /dev/sde
インスタンスにアタッチします。
$ ec2-attach-volume vol-2540994c -i i-a149ec4a -d /dev/sde
ATTACHMENT vol-2540994c i-a149ec4a /dev/sde attaching 2010-0323T15:43:46+00:00
アップロードを再開する
Abstract
アップロードを再開します。
接続性の問題によりアップロードが中断されることがあります。アップロードを再開すると、Amazon
EC2 によって、停止したところからアップロードが自動的に開始されます。次の手順では、アップロー
ドの進行状況を確認する方法とアップロードを再開する方法について説明します。
アップロードを再開するには
ec2-resume-import でタスク ID を使用してアップロードを続行します。このコマンドは HTTP HEAD ア
クションを使用して、再開する位置を判断します。
ec2-resume-import disk_image -t task_id -o owner -w secret_key
例
次の例では、インスタンスインポートタスクを再開します。
$ ec2-resume-import Win_2008_R1_EE_64.vmdk -t import-i-ffni8aei -o AKIAIOSFOD
NN7EXAMPLE -w wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
次に、インスタンスインポートタスクが完了したときの出力を示します。
Disk image size: 5070303744 bytes (4.72 GiB)
Disk image format: Stream-optimized VMDK
Converted volume size: 26843545600 bytes (25.00 GiB)
Requested EBS volume size: 26843545600 bytes (25.00 GiB)
Uploading 5070303744 bytes across 484 parts
0% |--------------------------------------------------| 100%
|==================================================|
Done
Average speed was 10.316 MBps
The disk image for import-i-ffni8aei has been uploaded to Amazon S3
400
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VM をインスタンスとして Amazon EC2 にインポートする
where it is being converted into an EC2 instance. You may monitor the
progress of this task by running ec2-describe-conversion-tasks. When
the task is completed, you may use ec2-delete-disk-image to remove the
image from S3.
アップロードをキャンセルする
Abstract
アップロードをキャンセルします。
ec2-cancel-conversion-task を使用して、アクティブなインポートタスクをキャンセルします。インス
タンスまたはボリュームのいずれのアップロードタスクでもかまいません。このコマンドは、アップ
ロードされたボリュームやインスタンスを含め、インポートのすべての生成物を削除します。
インポートが完了したか、最後のディスクイメージを転送中の場合、コマンドは失敗し、次のような例
外が返されます。
Client.CancelConversionTask Error: Failed to cancel conversion task import-ifh95npoc
アップロードタスクをキャンセルするには
ec2-cancel-conversion-task を使用して、削除するアップロードのタスク ID を指定します。
例
次の例では、タスク ID import-i-fh95npoc に関連付けられたアップロードをキャンセルします。
$ ec2-cancel-conversion-task import-i-fh95npoc
キャンセルが成功した場合、出力は次のようになります。
CONVERSION-TASK import-i-fh95npoc
ec2-describe-conversion-tasks コマンドを使用して、キャンセル操作のステータスを確認できます。次
に例を示します。
$ ec2-describe-conversion-tasks import-i-fh95npoc
TaskType
IMPORTINSTANCE TaskId import-i-fh95npoc
ExpirationTime
2010-12-20T18:36:39+00:00
Status cancelled
InstanceID
i-825063ef
DISKIMAGE
DiskImageFormat VMDK
DiskImageSize
2671981568
VolumeSize
40
AvailabilityZone
us-east-1c ApproximateBytesCon
verted
0
Status cancelled
この例では、ステータスは cancelled です。アップロードがまだ処理中である場合、ステータスは
cancelling になります。
アップロード後にクリーンアップする
Abstract
アップロード後にディスクイメージを削除します。
401
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 インスタンスをエクスポートする
ec2-delete-disk-image を使用して、アップロード後にイメージファイルを削除できます。削除しない場
合、Amazon S3 のストレージの料金が課金されます。
ディスクイメージを削除するには
ec2-delete-disk-image で削除するディスクイメージのタスク ID を使用します。
例
次の例では、タスク ID import-i-fh95npoc に関連付けられているディスクイメージを削除します。
$ ec2-delete-disk-image -t import-i-fh95npoc
キャンセルが成功した場合、出力は次のようになります。
DELETE-TASK import-i-fh95npoc
ステップ 5: Amazon EC2 でインスタンスを起動する
Abstract
VM からインポートしたインスタンスを起動します。
VM を Amazon S3 にアップロードすると、VM Import により自動的に Amazon EC2 インスタンスに変
換され、停止したインスタンスとして Amazon EC2 コンソールで起動されます。インスタンスを使用
し始める前に、起動する必要があります。Amazon EC2 インスタンスの使用の詳細については、「イ
ンスタンスのライフサイクル (p. 251)」を参照してください。
インスタンスを起動するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインの [Instances] をクリックします。
コンテンツペインで、インスタンスを右クリックし、[Instance State] を選択して [Start] をクリッ
クします。
Amazon EC2 インスタンスをエクスポートする
Abstract
インスタンスをエクスポートして、Amazon EC2 インスタンスのコピーをオンサイトの仮想化環境にデプロイしま
す。
インスタンスを Amazon EC2 に既にインポートしてある場合は、コマンドラインツールを使用して、
そのインスタンスを Citrix Xen、Microsoft Hyper-V、または VMware vSphere にエクスポートすること
ができます。前にインポートしたインスタンスのエクスポートは、EC2 インスタンスのコピーをオン
サイト仮想化環境にデプロイする場合に便利です。
VMware vSphere を使用している場合、AWS Connector for vCenter を使用して Amazon EC2 から VM
をエクスポートすることもできます。詳細については、AWS Management Portal for vCenter ユーザー
ガイド の「移行された Amazon EC2 インスタンスのエクスポート」を参照してください。
目次
402
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 インスタンスをエクスポートする
• インスタンスのエクスポート (p. 403)
• インスタンスのエクスポートのキャンセルまたは停止 (p. 404)
インスタンスのエクスポート
Amazon EC2 CLI を使用してインスタンスをエクスポートできます。まだ CLI をインストールしていな
い場合は、「Amazon EC2 ツールの設定」を参照してください。
ec2-create-instance-export-task コマンドは、選択した仮想化形式で、インスタンスを正しくエクスポー
トするために必要なすべての情報(インスタンス ID、エクスポートされたイメージを保持する Amazon
S3 バケット名、エクスポートされたイメージ名、VMDK、OVA または VHD 形式など)を収集します。
エクスポートされたファイルは、指定した Amazon S3 バケットに保存されます。VM Export では、動
的 Virtual Hard Disk (VHD) のエクスポートのみがサポートされます。固定 VHD はサポートされていま
せん。
Note
インスタンスをエクスポートする際に、エクスポートされた VM が保存されるバケットに対し
て、標準的な Amazon S3 料金が課金されます。さらに、Amazon EBS スナップショットの一
時的な使用を反映する小額の料金が請求書に記載される場合があります。Amazon S3 の料金の
詳細については、Amazon Simple Storage Service (S3) Pricing を参照してください。
インスタンスをエクスポートするには
1.
エクスポートされたインスタンスを格納する Amazon S3 バケットを作成します。Amazon S3 バ
ケットでは、[[email protected]] アカウントへの [Upload/Delete] および [View
Permissions] アクセスが付与される必要があります。詳細については、Amazon Simple Storage
Service コンソールユーザーガイド の Creating a Bucket および Editing Bucket Permissions を参照
してください。
Note
[email protected] アカウントの代わりに、リージョン固有の正規 ID を使用
することもできます。エクスポート先イメージの Amazon S3 バケットが存在する必要が
あります。また、以下のリージョン固有のアカウントに、それらの正規 ID を使用して
WRITE および READ_ACP 権限を付与する必要があります。
• 中国(北京): 834bafd86b15b6ca71074df0fd1f93d234b9d5e848a2cb31f880c149003ce36f
• AWS GovCloud (米国) :
af913ca13efe7a94b88392711f6cfc8aa07c9d1454d4f190a624b126733a5602
詳細については、『AWS GovCloud (US) User Guide』の「Amazon Elastic Compute
Cloud(Amazon EC2)」を参照してください。
• その他のリージョン:
c4d8eabf8db69dbe46bfe0e517100c554f01200b104d59cd408e777ba442a322
2.
コマンドプロンプトで、次のコマンドを入力します。
ec2-create-instance-export-task instance_id -e target_environment -f
disk_image_format -c container_format -b s3_bucket
instance_id
エクスポートするインスタンスの ID です。
403
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
target_environment
VMware、Citrix、または Microsoft です。
disk_image_format
VMware の場合は VMDK で、Microsoft Hyper-V および Citrix Xen の場合は VHD です。
Note
VM Export は動的 Virtual Hard Disks (VHD) のみをサポートします。固定 VHD はサ
ポートされていません。
container_format
オプションとして、VMware にエクスポートするときに OVA と設定します。
s3_bucket
インスタンスのエクスポート先になる Amazon S3 バケットの名前です。
3.
インスタンスのエクスポートをモニタリングするには、コマンドプロンプトで次のコマンドを入力
します。ここで task_id はエクスポートタスクの ID です。
ec2-describe-export-tasks task_id
インスタンスのエクスポートのキャンセルまたは停止
Amazon EC2 CLI を使用して、完了ポイントまでインスタンスのエクスポートをキャンセルまたは停止
できます。ec2-cancel-export-task コマンドによって、一部作成された Amazon S3 オブジェクトを含
め、エクスポートのすべての生成物が削除されます。エクスポートタスクが完了したか、最終的なディ
スクイメージ変換プロセスにある場合、コマンドは失敗し、エラーが返されます。
インスタンスのエクスポートをキャンセルまたは停止するには
コマンドプロンプトで次のコマンドを入力します。ここで task_id はエクスポートタスクの ID です。
ec2-cancel-export-task task_id
VM Import/Export のトラブルシューティング
Abstract
EC2 インスタンスに仮想マシンをインポートする際に発生する問題のトラブルシューティングを行います。
VM をインポートまたはエクスポートするときのエラーの多くは、サポートされていない操作をしよう
としたときに発生します。これらのエラーを回避するために、インポートやエクスポートを開始する前
に、VM Import/Export の前提条件 (p. 372) を確認してください。
エラー
• AWS エラーコード: InvalidParameter、AWS エラーメッセージ: パラメータ disk-image-size=0 の
形式が無効です。 (p. 405)
• Client.NotExportable: エクスポートできるのはインポートしたインスタンスのみです。(サービス:
AmazonEC2、ステータスコード: 400、エラーコード: NotExportable、リクエスト ID:
<RequestID>)。 (p. 405)
404
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
• Client.Unsupported: ブート可能なパーティションが見つかりませんでした。(サービス:
AmazonEC2、ステータスコード: 400、エラー コード: サポートされていない、リクエスト ID:
<RequestID>) (p. 406)
• Client.UnsupportedOperation: このインスタンスに複数のボリュームがアタッチされています。余
分なボリュームを削除してください。 (p. 406)
• ClientError: 起動プログラムのネットワーキング障害/インスタンスに到達できません。.Net framework
3.5 SP1 以降をインストールした後に再試行してください。 (p. 406)
• ClientError: フッターの不一致 (p. 406)
• ClientError: 無効な設定 - fstab を読み取ることができませんでした。 (p. 406)
• ClientError: 非圧縮データの長さが無効です。 (p. 407)
• ClientError: サポートされない設定: 複数のディレクトリが見つかりました。 (p. 407)
• エラー: バケット <MyBucketName> は <RegionName> リージョンではなく、<RegionName> にあ
ります。 (p. 407)
• エラー: ファイルにサポートされない圧縮アルゴリズム 0 が使用されています。 (p. 407)
• インスタンス起動エラー: instanceId の値 <インスタンス ID> が無効です。インスタンスには、ルー
トにアタッチされたボリューム(/dev/sda1)がありません。 (p. 407)
• 無効な S3 ソースの場所 (p. 407)
• java.lang.OutOfMemoryError: Java のヒープスペース (p. 408)
• Service.InternalError: 内部エラーが発生しました。ステータスコード: 500、AWS サービス:
AmazonEC2 (p. 408)
• CreateRole オペレーションを呼び出すときにクライアントエラー(MalformedPolicyDocument)が
発生しました: ポリシーに構文エラー。 (p. 408)
• 指定された S3 バケットはリージョンにローカルではありません。 (p. 408)
• サービスロール <vmimport> がないか、サービスを継続するために十分なアクセス許可がありませ
ん。 (p. 408)
• FirstBootFailure: This import request failed because the Windows instance failed to boot and establish
network connectivity. (p. 409)
• 対象のインスタンスで Linux がサポートされていません。 (p. 411)
AWS エラーコード: InvalidParameter、AWS エラーメッセージ:
パラメータ disk-image-size=0 の形式が無効です。
使用したイメージ形式はサポートされていません。
解決
サポートされているイメージ形式(RAW、VHD、VMDK)の 1 つを使用して再試行してください。
Client.NotExportable: エクスポートできるのはインポートした
インスタンスのみです。(サービス: AmazonEC2、ステータス
コード: 400、エラーコード: NotExportable、リクエスト ID:
<RequestID>)。
エクスポートできるのは、前に Amazon EC2 にインポートしたインスタンスまたはイメージだけです。
解決
前に Amazon EC2 にインポートしたインスタンスまたはイメージをエクスポートします。
405
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
Client.Unsupported: ブート可能なパーティションが見つかりま
せんでした。(サービス: AmazonEC2、ステータスコード:
400、エラー コード: サポートされていない、リクエスト ID:
<RequestID>)
VM に GUID パーティションテーブル(GPT)でパーティション分割されたルートボリュームがありま
す。
解決
VM Import/Export ツールでは、GPT パーティション分割ボリュームはサポートされていません。VM
のルートボリュームを MBR パーティションに変換し、VM をもう一度インポートしてください。
Client.UnsupportedOperation: このインスタンスに複数のボ
リュームがアタッチされています。余分なボリュームを削除し
てください。
VM に複数のディスクがアタッチされています。
解決
余分なドライブをデタッチして、再試行します。他のボリュームのデータが必要な場合は、データを
ルートボリュームにコピーし、VM を再度エクスポートします。
ClientError: 起動プログラムのネットワーキング障害/インスタ
ンスに到達できません。.Net framework 3.5 SP1 以降をインス
トールした後に再試行してください。
Windows VM には、EC2 Config サービスをサポートするために Microsoft NET Framework 3.5 Service
Pack 1 以降が必要です。
解決
インポートを試みる前に、Windows VM に Microsoft .NET Framework 3.5 Service Pack 1 以降をインス
トールします。
ClientError: フッターの不一致
差分 VHD をインポートしようとしたか、VHD の作成でエラーが発生しました。
解決
VM を再度エクスポートし、Amazon EC2 へのインポートを再試行します。
ClientError: 無効な設定 - fstab を読み取ることができませんで
した。
マルチブートボリュームまたは複数の /etc ディレクトリがある Linux VM はサポートされていません。
解決
ブートボリュームまたは /etc ディレクトリを 1 つだけ持つように VM を設定します。
406
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
ClientError: 非圧縮データの長さが無効です。
VMDK ファイルが破損しています。
解決
VMDK ファイルの修復または再作成を試みるか、インポートに別のファイルを使用します。
ClientError: サポートされない設定: 複数のディレクトリが見つ
かりました。
マルチブートボリュームまたは複数の /etc ディレクトリがある Linux VM はサポートされていません。
解決
ブートボリュームまたは /etc ディレクトリを 1 つだけ持つように VM を設定します。
エラー: バケット <MyBucketName> は <RegionName> リージョンではな
く、<RegionName> にあります。
Amazon S3 バケットがインポートするインスタンスと同じリージョンに存在しません。
解決
--ignore-region-affinity オプションを付加して、バケットのリージョンとインポートタスクが
作成されたリージョンの一致を無視することもできます。または、Amazon Simple Storage Service コ
ンソールを使用して Amazon S3 バケットを作成し、そのリージョンを VM をインポートするリージョ
ンに設定することもできます。再度コマンドを実行し、作成した新しいバケットを指定します。
エラー: ファイルにサポートされない圧縮アルゴリズム 0 が使
用されています。
VMDK は OVF 形式ではなく OVA 形式を使用して作成されました。
解決
OVF 形式で VMDK を作成します。
インスタンス起動エラー: instanceId の値 < ID> が無効です。
インスタンスには、ルートにアタッチされたボリューム
(/dev/sda1)がありません。
VM インポートプロセスとすべての変換タスクが完了する前に、インスタンスを起動しようとしまし
た。
解決
VM インポートプロセスとすべての変換タスクが完全に終了するまで待機していから、インスタンスを
起動してください。
無効な S3 ソースの場所
コマンド構文または Amazon S3 バケット名が間違っています。
407
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
解決
適切なリージョンに VM Import 専用の新しい Amazon S3 バケットを作成し、バケットのルートに VM
ファイルをアップロードします。
java.lang.OutOfMemoryError: Java のヒープスペース
Java を起動するために使用できる仮想メモリが不足しているか、インポートするイメージが大きすぎ
ます。
解決
Java に増設メモリを割り当てると、増設メモリは JVM にのみ適用されますが、この設定が(EC2 コ
マンドラインツールに対して明示的に)指定されている場合は、グローバル設定がオーバーライドされ
ます。たとえば、"set EC2_JVM_ARGS=-Xmx512m" コマンドを使用して、512 MB の増設メモリを
Java に割り当てることができます。
Service.InternalError: 内部エラーが発生しました。ステータス
コード: 500、AWS サービス: AmazonEC2
デフォルト VPC のないインスタンスをサブネットとアベイラビリティゾーンを指定せずにインポート
しようとしました。
解決
デフォルト VPC のないインスタンスをインポートする場合は、必ずサブネットとアベイラビリティゾー
ンを指定します。
CreateRole オペレーションを呼び出すときにクライアントエ
ラー(MalformedPolicyDocument)が発生しました: ポリシーに
構文エラー。
ポリシードキュメント名の先頭に file:// を含めるのを忘れていました。
解決
ポリシードキュメント名の前に file:// を含めます(例: file://trust-policy.json)。
指定された S3 バケットはリージョンにローカルではありませ
ん。
VM Import に使用する Amazon S3 バケットは、VM をインポートする AWS リージョンと同じリージョ
ンにある必要があります。
解決
VM をインポートするリージョンに S3 バケットを作成します。
サービスロール <vmimport> がないか、サービスを継続するために
十分なアクセス許可がありません。
VM Import のサービス ロールがないか、または正しくありません。インポートを開始しようとしてい
る IAM ユーザーに Amazon EC2 リソースに対する十分な特権がない場合にも、このエラーを受け取る
ことがあります。
408
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
解決
サービスロールがあり、それに適切なアクセス許可のすべてがあることを確認します。
FirstBootFailure: This import request failed because the Windows
instance failed to boot and establish network connectivity.
ec2-import-instance コマンドを使用して VM をインポートすると、インポートタスクは完了する
前に停止し、失敗する可能性があります。失敗の原因を調査するために、ec2-describe-conversion-tasks
コマンドを使用して、インスタンスの内容を表示できます。
FirstBootFailure エラーメッセージが表示された場合、仮想ディスクイメージで次のステップのいずれ
かを実行できなかったことを意味します。
• 起動し、Windows を開始する。
• Amazon EC2 ネットワーキングとディスクドライバをインストールする。
• DHCP が設定されたネットワークインターフェイスを使用し、IP アドレスを取得する。
• Amazon EC2 Windows ボリュームライセンスを使用し、Windows をアクティベートする。
次のベストプラクティスにより、Windows の最初の起動失敗を回避できることがあります。
• アンチウイルスとアンチスパイウェアのソフトウェアとファイアウォールを無効にします。この種の
ソフトウェアは新しい Windows サービスまたはドライバのインストールを防いだり、未知のバイナ
リの実行を防いだりすることがあります。ソフトウェアとファイアウォールはインポート後に再有効
化できます。
• オペレーティングシステムにハードニングを行いません。ハードニング(強化)とも呼ばれるセキュ
リティ設定により、Amazon EC2 ドライバの自動インストールが阻止されることがあります。イン
ポートを阻止する可能性がある Windows 設定が数多く存在します。そのような設定はインポート後
に再適用できます。
• 複数のブート可能パーティションを無効にするか、削除します。仮想マシンが起動し、使用するブー
トパーティションの選択を要求する場合、インポートが失敗することがあります。
仮想ディスクイメージが起動できず、ネットワーク接続を確立できないのは、次の原因のいずれかによ
ることが考えられます。
原因
• TCP/IP ネットワーキングと DHCP が有効になっていません (p. 409)
• Windows が必要とするボリュームが仮想マシンにありません (p. 410)
• Windows を起動すると必ずシステムリカバリオプションが表示されます (p. 410)
• 仮想マシンが P2V(物理から仮想へ)変換プロセスにより作成されました (p. 410)
• Windows のアクティベーションが失敗します。 (p. 410)
• ブート可能なパーティションが見つかりませんでした (p. 410)
TCP/IP ネットワーキングと DHCP が有効になっていません
原因: どの Amazon EC2 インスタンスでも(Amazon VPC 内のインスタンスを含む)、TCP/IP ネット
ワーキングと DHCP が有効になっている必要があります。VPC 内では、インスタンスをインポートす
る前と後のいずれかでインスタンスの IP アドレスを定義する必要があります。インスタンスをエクス
ポートする前に静的 IP アドレスを設定しないでください。
解決策: TCP/IP ネットワーキングが有効になっていることを確認します。詳細については、Microsoft
TechNet ウェブサイトにある 「Setting up TCP/IP (Windows Server 2003)」または「Configuring TCP/IP
(Windows Server 2008)」を参照してください。
409
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
DHCP が有効になっていることを確認します。詳細は、Microsoft TechNet ウェブサイトにある「What
is DHCP」を参照してください。
Windows が必要とするボリュームが仮想マシンにありません
原因: VM を Amazon EC2 にインポートすると、起動ディスクのみがインポートされます。仮想マシン
をインポートする前に、他のすべてのディスクをデタッチし、Windows を起動できる状態にする必要
があります。たとえば、アクティブディレクトリは、多くの場合、D:\ ドライブにアクティブディレク
トリデータベースを格納します。アクティブディレクトリデータベースがない、またはそれにアクセス
できない場合、ドメインコントローラは起動できません。
解決策: エクスポート前に、Windows VM にアタッチされたセカンダリディスクとネットワークディス
クをデタッチします。
アクティブディレクトリデータベースをセカンダリドライブまたはパーティションからプライマリ
Windows パーティションに移動します。詳細は、Microsoft Support ウェブサイトで「"Directory Services
cannot start" error message when you start your Windows-based or SBS-based domain controller」を参
照してください。
Windows を起動すると必ずシステムリカバリオプションが表示されます
原因: さまざまな理由により、Windows を起動するとシステムリカバリオプションが表示されます。た
とえば、Windows が物理マシンから仮想化環境に入るとき(P2V と呼ばれています)などが該当しま
す。
解決策: エクスポートしてインポートの準備を行う前に、Windows が起動してログインプロンプトが表
示されることを確認します。
物理マシンから入ってきた仮想化 Windows インスタンスをインポートしないでください。
仮想マシンが P2V(物理から仮想へ)変換プロセスにより作成されました
原因: P2V 変換は、物理マシンで Windows インストールプロセスを実行し、その Windows インストー
ルのコピーを VM にインポートすることでディスクイメージを作成するときに行われます。P2V 変換
の結果として作成された VM は、Amazon EC2 VM インポートではサポートされません。Amazon EC2
VM インポートでは、インポート元の VM 内にネイティブとしてインストールされた Windows イメー
ジのみがサポートされます。
解決策: Windows を仮想化環境でインストールし、インストールしたソフトウェアをその新しい VM に
移行します。
Windows のアクティベーションが失敗します。
原因: 起動時に、Windows によりハードウェアの変更が検出され、アクティベーションが試行されま
す。インポートプロセス中に、Windows のライセンス許諾メカニズムをアマゾン ウェブ サービスが提
供するボリュームライセンスに切り替える試みが行われます。しかしながら、Windows アクティベー
ションプロセスが失敗した場合、インポートも失敗します。
解決策: インポートしようとしている Windows のバージョンでボリュームライセンスがサポートされ
ていることを確認します。Windows のベータ版またはプレビュー版ではサポートされていない場合が
あります。
ブート可能なパーティションが見つかりませんでした
原因: 仮想マシンのインポートプロセス中に、ブートパーティションが見つかりませんでした。
解決策: インポートするディスクにブートパーティションがないことを確認します。複数ディスクのイ
ンポートはサポートされていません。
410
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
対象のインスタンスで Linux がサポートされていません。
原因: Linux のインポートは、特定のインスタンスタイプでしかサポートされていません。サポートさ
れていないインスタンスタイプのインポートが試みられています。
解決策: サポートされているいずれかのインスタンスタイプを使用して再試行してください。
• 汎用: t2.micro | t2.small | t2.medium | m3.medium | m3.large | m3.xlarge | m3.2xlarge
• コンピューティングの最適化: c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | cc2.8xlarge
• メモリを最適化: cr1.8xlarge
• ストレージの最適化: hi1.4xlarge | hs1.8xlarge | i2.xlarge | i2.2xlarge | i2.4xlarge
• GPU: cg1.4xlarge
411
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 のモニタリング
Abstract
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. 429)
412
モニタリングスクリプト/CloudWatch Logs
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 へのログ
の送信」
利用可能なメモリ
(Linux インスタンス)「Amazon
EC2 Linux インスタンスのメモリ
とディスクのメトリックスのモニ
タリング」
(Windows インスタンス)「CW
へのパフォーマンスカウンタの送
信と CloudWatch Logs へのログ
の送信」
ネットワーク使用率
NetworkIn (p. 429)
NetworkOut (p. 429)
ディスクパフォーマンス
DiskReadOps (p. 429)
DiskWriteOps (p. 429)
ディスクスワップの使用率
(Linux インスタンスのみ)
Amazon EC2 Linux インスタンス
のメモリとディスクのメトリック
スのモニタリング
使用中のスワップ(Linux インス
タンスのみ)
ページファイルの使用率(Windows インスタンスのみ)
CW へのパフォーマンスカウンタ
の送信と CloudWatch Logs への
ログの送信
使用中のページファイル(Windows インスタンスのみ)
使用可能なページファイル
(Windows インスタンスのみ)
ディスクの読み書き
DiskReadBytes (p. 429)
DiskWriteBytes (p. 429)
413
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
自動モニタリングと手動モニタリング
モニタリング対象の項目
Amazon EC2 メトリックス
モニタリングスクリプト/CloudWatch Logs
ディスクスペースの使用率
(Linux インスタンスのみ)
Amazon EC2 Linux インスタンス
のメモリとディスクのメトリック
スのモニタリング
使用ディスクスペース(Linux イ
ンスタンスのみ)
Amazon EC2 Linux インスタンス
のメモリとディスクのメトリック
スのモニタリング
使用可能なディスク容量(Linux
インスタンスのみ)
Amazon EC2 Linux インスタンス
のメモリとディスクのメトリック
スのモニタリング
自動モニタリングと手動モニタリング
Abstract
AWS ツールを設定して Amazon EC2 インスタンスをモニタリングします。これらのツールの一部は自動化されて
いますが、手動操作を必要とするものもあります。
AWS では、Amazon EC2 のモニタリングに使用できるさまざまなツールを提供しています。これらの
ツールの中には、自動モニタリングを設定できるものもあれば、手操作を必要とするものもあります。
トピック
• 自動モニタリングツール (p. 414)
• 手動モニタリングツール (p. 415)
自動モニタリングツール
次に示す自動化されたモニタリングツールを使用すると、Amazon EC2 の監視が行われ、問題が検出
されたときにレポートが返されます。
• [System Status Checks] – インスタンスを使用する際に必要な AWS システムをモニタリングして、
AWS システムが正常に実行されていることを確認します。これらのチェックでは、修復において
AWS が関係するインスタンスの問題が検出されます。システムステータスチェックが失敗した場合、
AWS によって問題が修正されるのを待つか、自分自身で(たとえば、インスタンスを停止、再起動、
終了、置換するなどによって)問題を解決できます。システムステータスチェックの失敗の原因とな
る問題には、次のようなものがあります。
• ネットワーク接続の喪失
• システム電源の喪失
• 物理ホストのソフトウェアの問題
• 物理ホストのハードウェアの問題
詳細については、「インスタンスのステータスチェック (p. 416)」を参照してください。
• [Instance Status Checks] – 個々のインスタンスのソフトウェアとネットワークの設定をモニタリング
します。これらのチェックでは、ユーザーが関与して修復する必要のある問題が検出されます。イン
スタンスステータスチェックが失敗した場合、通常は自分自身で(たとえば、インスタンスを再起動
する、オペレーティングシステムを修正するなどによって)問題に対処する必要があります。インス
タンスステータスチェックの失敗の原因となる問題には、次のようなものがあります。
• 失敗したシステムステータスチェック
• 誤って設定されたネットワークまたは起動設定
414
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
手動モニタリングツール
• メモリの枯渇
• 破損したファイルシステム
• 互換性のないカーネル
詳細については、「インスタンスのステータスチェック (p. 416)」を参照してください。
• [Amazon CloudWatch Alarms] – 指定された期間にわたって単一のメトリックスを監視し、複数の期
間にわたり既定のしきい値に関連するメトリックス値に基づいて 1 つ以上のアクションを実行しま
す。アクションは、Amazon Simple Notification Service(Amazon SNS)トピックまたは Auto Scaling
ポリシーに送信される通知です。アラームは、持続している状態変化に対してのみアクションを呼び
出します。CloudWatch アラームは、単に特定の状態にあるというだけでアクションを呼び出すわけ
ではありません。状態が変わり、それが指定した数の期間にわたって持続している必要があります。
詳細については、「CloudWatch によるインスタンスのモニタリング (p. 425)」を参照してください。
• [Amazon CloudWatch Logs] - Amazon EC2 インスタンス、AWS CloudTrail、またはその他のソース
のログファイルの監視、保存、アクセスができます。詳細については、「ログファイルのモニタリン
グ」を参照してください。
• [Amazon EC2 Monitoring Scripts] - インスタンスのメモリ、ディスク、スワップファイルの使用状況
をモニタリングできる Perl スクリプトです。詳細については、「Amazon EC2 Linux インスタンス
のメモリとディスクのメトリックスのモニタリング」を参照してください。
• [AWS Management Pack for Microsoft 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 リソースが一目でわかる概要を表示する
415
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
モニタリングのベストプラクティス
モニタリングのベストプラクティス
Abstract
Amazon EC2 モニタリングタスクに役立つ、モニタリングのベストプラクティスを説明します。
次に示すモニタリングのベストプラクティスを使用すると、Amazon EC2 のモニタリングタスクが容
易になります。
• モニタリングの優先順位を設定し、小さな問題が大きな問題に発展する前に阻止します。
• AWS ソリューションのすべての部分からモニタリングデータを収集するモニタリング計画を作成し、
実施すると、マルチポイント障害が発生した場合に、その障害をより簡単にデバッグできます。モニ
タリング計画には、少なくとも、次の質問に対する回答を盛り込む必要があります。
• モニタリングの目的とは?
• モニタリングの対象となるリソースとは?
• これらのリソースをモニタリングする頻度は?
• 使用するモニタリングツールは?
• 誰がモニタリングタスクを実行しますか?
• 誰が問題が発生したときに通知を受け取りますか?
• モニタリングタスクは可能な限り自動化します。
• EC2 インスタンスでログファイルを確認します。
インスタンスのステータスのモニタリング
Abstract
インスタンスのステータスチェックや、インスタンスに予定されたイベントを表示して、Amazon EC2 インスタン
スのステータスをモニタリングします。
インスタンスのステータスをモニタリングして、インスタンスのステータスチェックや、インスタンス
にスケジュールされたイベントを表示できます。ステータスチェックでは、Amazon EC2 によって実
行される自動化されたチェックからの情報が提供されます。これらの自動化されたチェックは、特定の
問題がインスタンスに影響を与えているかどうかを検出します。ステータスチェックの情報と、Amazon
CloudWatch で提供されるデータによって、各インスタンスの詳細な動作状況を把握できます。
インスタンスに予定されている特定のイベントに関するステータスも表示できます。イベントでは、イ
ンスタンスに計画されている再起動またはリタイアなどの今後のアクティビティに関する情報と、各イ
ベントで予定されている開始時間と終了時間が提供されます。
目次
• インスタンスのステータスチェック (p. 416)
• インスタンスの予定されたイベント (p. 421)
インスタンスのステータスチェック
Abstract
ステータスチェックでインスタンスをモニタリングして、Amazon EC2 がインスタンスで何らかの問題を検出して
いるかどうかを判断します。
416
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの状態チェック
インスタンスのステータスのモニタリングでは、Amazon EC2 によってインスタンスによるアプリケー
ションの実行が妨げられるような問題が検出されたかどうかをすばやく判断できます。Amazon EC2
は、実行されている各 EC2 インスタンスについて自動化されたチェックを実行して、ハードウェアお
よびソフトウェアの問題を識別します。これらのステータスチェックの結果を表示して、具体的で検出
可能な問題を識別できます。このデータは、各インスタンス(pending、running、stopping)の目
的の状態に関して Amazon EC2 が既に提供している情報と、Amazon CloudWatch が監視している使用
状況メトリックス(CPU 使用率、ネットワークトラフィック、ディスクアクティビティ)を補足する
ものです。
ステータスチェックは 1 分ごとに実行され、それぞれ成功または失敗のステータスを返します。すべて
のチェックが成功すると、インスタンス全体のステータスが OK になります。1つ以上のチェックが失
敗すると、全体のステータスが impaired になります。ステータスチェックは Amazon EC2 に組み込ま
れています。そのため、無効にしたり、削除したりすることはできません。ただし、ステータスチェッ
クの結果に基づいて実行されるアラームを作成または削除することは可能です。たとえば、特定のイン
スタンスでステータスチェックが失敗したときに警告するアラームを作成できます。詳細については、
「ステータスチェックアラームの作成と編集 (p. 419)」を参照してください。
目次
•
•
•
•
ステータスチェックの種類 (p. 417)
ステータスチェックの表示 (p. 418)
インスタンスステータスの報告 (p. 419)
ステータスチェックアラームの作成と編集 (p. 419)
ステータスチェックの種類
ステータスチェックには、システムステータスチェックとインスタンスステータスチェックの 2 種類が
あります。
システムステータスのチェック
インスタンスを使用するために必要な AWS システムを監視して、AWS システムが正常に実行されて
いることを確認します。これらのチェックでは、修復において AWS が関係するインスタンスの問題が
検出されます。システムステータスチェックが失敗した場合、AWS によって問題が修正されるのを待
つか、自分自身で(たとえば、インスタンスを停止および起動する、インスタンスを終了および置換す
るなどによって)問題を解決できます。
システムステータスチェックの失敗の原因となる問題の例を次に示します。
• ネットワーク接続の喪失
• システム電源の喪失
• 物理ホストのソフトウェアの問題
• 物理ホストのハードウェアの問題
インスタンスステータスのチェック
個々のインスタンスのソフトウェアとネットワークの設定を監視します。これらのチェックでは、ユー
ザーが関与して修復する必要のある問題が検出されます。インスタンスステータスチェックが失敗した
場合、通常は自分自身で(たとえば、インスタンスを再起動する、インスタンス設定を変更するなどに
よって)問題に対処する必要があります。
インスタンスステータスチェックの失敗の原因となる問題の例を次に示します。
• 失敗したシステムステータスチェック
• 正しくないネットワークまたは起動設定
• メモリの枯渇
417
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの状態チェック
• 破損したファイルシステム
• 互換性のないカーネル
ステータスチェックの表示
Amazon EC2 では、いくつかの方法でステータスチェックを表示および操作できます。
コンソールを使ったステータスの表示
AWS マネジメントコンソールを使用してステータスチェックを表示できます。
コンソールを使用してステータスチェックを表示するには
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[インスタンス] を選択します。
Instances ページで、Status Checks 列には、各インスタンスの動作状況が表示されます。
4.
特定のインスタンスのステータスを表示するには、インスタンスを選択して、[Status Checks] タ
ブを選択します。
5.
ステータスチェックが失敗したインスタンスがあり、そのインスタンスに 20 分以上アクセスでき
ない場合は、[AWS Support] を選択して、サポートのリクエストを送信してください。ご自分でシ
ステムまたはインスタンスのステータスチェック失敗のトラブルシューティングを行う場合は、
「ステータスチェックに失敗したインスタンスのトラブルシューティング (p. 807)」を参照してく
ださい。
AWS CLI を使用したステータスの表示
describe-instance-status コマンドを使用して、ステータスチェックを表示できます。
すべてのインスタンスのステータスを表示するには、次のコマンドを使用します。
aws ec2 describe-instance-status
インスタンスステータスが impaired であるすべてのインスタンスのステータスを取得するには、次
のようにします。
aws ec2 describe-instance-status --filters Name=instance-status.status,Values=im
paired
単一のインスタンスのステータスを取得するには、以下のコマンドを使用します。
418
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの状態チェック
aws ec2 describe-instance-status --instance-ids i-15a4417c
ステータスチェックが失敗したインスタンスがある場合は、「ステータスチェックに失敗したインスタ
ンスのトラブルシューティング (p. 807)」を参照してください。
API
DescribeInstanceStatus アクションを使用してインスタンスのステータスを取得できます。詳細
については、Amazon EC2 API Reference の DescribeInstanceStatus を参照してください。
インスタンスステータスの報告
ステータスが impaired と表示されていないインスタンスで問題が生じている場合は、フィードバック
をご提供ください。また、障害のあるインスタンスで発生している問題に関する追加の詳細を AWS に
送る場合にも、フィードバックをご提供いただけます。
Amazon では、報告されたフィードバックを使用して、複数のお客様に影響する可能性のある問題を識
別していますが、個々のアカウントの問題には返答しておりません。フィードバックをご提供いただい
ても、現在インスタンスに関して表示されているステータスチェックの結果は変わりません。
コンソールを使用したステータスフィードバックの報告
コンソールを使用してインスタンスステータスを報告するには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[インスタンス] を選択します。
インスタンスを選択します。
[Status Checks] タブを選択してから、[Submit feedback] を選択します。
[Report Instance Status] フォームに入力し、[Submit] を選択します。
AWS CLI を使用したステータスフィードバックの報告
障害のあるインスタンスのステータスに関するフィードバックを送信するには、次の
report-instance-status コマンドを使用します。
aws ec2 report-instance-status --instances i-15a4417c --status impaired -reason-codes code
API を使用したステータスフィードバックの報告
インスタンスのステータスに関するフィードバックを送信するには、ReportInstanceStatus アク
ションを使用します。インスタンスの印象が DescribeInstanceStatus アクションによって返され
るインスタンスステータスと異なる場合は、ReportInstanceStatus を使用してインスタンスの印象
を報告してください。Amazon EC2 では、これらの情報を収集してステータスチェックの精度を向上
させます。詳細については、Amazon EC2 API Reference の ReportInstanceStatus を参照してくださ
い。
ステータスチェックアラームの作成と編集
インスタンスのステータスとシステムのステータスに関するアラームを作成して、インスタンスのス
テータスチェックが失敗した場合に通知を受け取ることができます。
419
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの状態チェック
コンソールを使用したステータスチェックアラームの作成
既存のインスタンスに対してステータスチェックアラームを作成し、インスタンスまたはシステムのス
テータスをモニタリングできます。インスタンスのインスタンスステータスチェックまたはシステムス
テータスチェックが失敗した場合に、メールで通知を受け取るか、インスタンスを停止、終了、または
復旧するようにアラームを設定できます。
ステータスチェックアラームを作成するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[インスタンス] を選択します。
3.
4.
5.
インスタンスを選択します。
[Status Checks] タブを選択し、[Create Status Check Alarm] を選択します。
[Send a notification to] を選択します。既存の SNS トピックを選択し、[create topic] をクリックし
て新しいトピックを作成します。新しいトピックを作成する場合、[With these recipients] に自分の
メールアドレスを入力します。追加の受信者がいる場合はそのアドレスを、カンマで区切って入力
します。
(オプション)[Take the action] を選択し、実行するアクションを選択します。
[Whenever] で、通知を受けるステータスチェックを選択します。
6.
7.
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.
3.
ナビゲーションペインで、[インスタンス] を選択します。
インスタンスを選択して [Actions] を選択し、[CloudWatch Monitoring] を選択して [Add/Edit Alarms]
を選択します。
4.
5.
[Alarm Details] ダイアログボックスで、アラームの名前を選択します。
[Edit Alarm] ダイアログボックスで、希望する変更を行い、[Save] を選択します。
420
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
予定されているイベント
AWS CLI を使用したステータスチェックアラームの作成
次の例では、インスタンスが少なくとも 2 つの連続する期間内にインスタンスチェックまたはシステム
ステータスチェックに失敗した場合、アラームが SNS トピックに通知
arn:aws:sns:us-west-2:111122223333:my-sns-topic を発行します。メトリックスは
StatusCheckFailed です。
CLI を使用してステータスチェックアラームを作成するには
1.
2.
既存の SNS トピックを選択するか、新しいキーペアを作成することができます。詳細については、
『AWS Command Line Interface ユーザーガイド』の「Amazon SNS での AWS CLI の使用」を参
照してください。
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-for-iab12345 --metric-name StatusCheckFailed --namespace AWS/EC2 --statistic
Maximum --dimensions Name=InstanceId,Value=i-ab12345 --unit Count --period
300 --evaluation-periods 2 --threshold 1 --comparison-operator GreaterThanOr
EqualToThreshold --alarm-actions arn:aws:sns:us-west-2:111122223333:my-snstopic
注意
• --period は、Amazon CloudWatch メトリックスが収集される時間枠(秒単位)です。この例
では、60 秒に 5 分を乗算した 300 を使用します。
• --evaluation-periods は、メトリックスの値がしきい値と比較されなければならない連続し
た期間の数です。この例では 2 を使用します。
• --alarm-actions は、このアラームがトリガーされたときに実行するアクションのリストで
す。各アクションは Amazon リソースネーム(ARN)として指定されます。この例では、Amazon
SNS を使用してメールを送信するようにアラームを設定します。
インスタンスの予定されたイベント
Abstract
インスタンスに、予定されたイベントをモニタリングします。
AWS は、再起動、停止/開始、またはリタイアなど、インスタンスのイベントを予定できます。これら
のイベントは頻繁には発生しません。インスタンスのいずれかが予定されたイベントの影響を受ける場
合、予定されたイベントの前に AWS アカウントに関連付けられた E メールアドレスにイベントの詳細
(開始日、終了日など)が記載された E メールが AWS から送信されます。イベントによっては、イベ
ントのタイミングを管理するアクションを実行できることがあります。
予定されたイベントに通知を受け取ることができるようにアカウントの連絡先情報を更新するには、
「アカウント設定」ページを参照してください。
目次
421
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
予定されているイベント
• 予定されたイベントのタイプ (p. 422)
• 予定されたイベントの表示 (p. 422)
• リタイアが予定されているインスタンスの操作 (p. 424)
• 再起動が予定されているインスタンスの操作 (p. 424)
• メンテナンスが予定されているインスタンスの操作 (p. 425)
予定されたイベントのタイプ
Amazon EC2 では、インスタンスの予定されたイベントとして次のタイプがサポートされます。
• [Instance stop]: インスタンスが停止および起動されて、新しいホストコンピュータに移行されます。
Amazon EBS によってバックアップされるインスタンスにのみ適用されます。
• [Instance retirement]: インスタンスが終了されます。
• [Reboot]: インスタンスが再起動(インスタンスの再起動)されるか、インスタンスのホストコン
ピュータが再起動(システムの再起動)されます。
• [System maintenance]: インスタンスは、ネットワークメンテナンスまたは電源のメンテナンスの影
響を一時的に受ける場合があります。
予定されたイベントの表示
予定されたイベントの通知を E メールで受信することに加え、予定されたイベントを確認できます。
コンソールを使用してインスタンスに予定されたイベントを表示するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Events] をクリックします。イベントに関連付けられたリソースがすべ
て表示されます。リソースタイプ、または特定のイベントのタイプでフィルタリングできます。リ
ソースを選択すると、詳細を表示できます。
3.
または、ナビゲーションペインで [EC2 Dashboard] を選択します。イベントに関連付けられてい
るすべてのリソースが、[Scheduled Events] に表示されます。
422
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
予定されているイベント
4.
影響を受けるリソースのイベントも表示される点に注意してください。たとえば、ナビゲーション
ペインの [Instances] を選択し、インスタンスを選択します。インスタンスに関連付けられたイベ
ントがある場合、そのイベントが下のペインに表示されます。
AWS CLI を使用してインスタンスに予定されたイベントを表示するには
次の describe-instance-status コマンドを使用します。
aws ec2 describe-instance-status --instance-id i-1a2b3c4d
インスタンスのリタイアイベントを示す出力例を次に示します。
{
"InstanceStatuses": [
{
"InstanceStatus": {
"Status": "ok",
"Details": [
{
"Status": "passed",
"Name": "reachability"
}
]
},
"AvailabilityZone": "us-west-2a",
"InstanceId": "i-1a2b3c4d",
"InstanceState": {
"Code": 16,
"Name": "running"
},
"SystemStatus": {
"Status": "ok",
"Details": [
{
"Status": "passed",
"Name": "reachability"
}
]
},
"Events": [
{
"Code": "instance-stop",
"Description": "The instance is running on degraded hard
ware",
"NotBefore": "2015-05-23T00:00:00.000Z"
}
]
}
]
}
423
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
予定されているイベント
リタイアが予定されているインスタンスの操作
AWS は、インスタンスの基盤となるホストコンピュータの回復不能な障害を検出すると、インスタン
スのルートデバイスのタイプに応じて、インスタンスの停止または終了を予定します。ルートデバイス
が EBS ボリュームの場合、インスタンスが停止するように予定されます。ルートデバイスがインスタ
ンスストアボリュームの場合、インスタンスは終了するように予定されます。詳細については、「イン
スタンスのリタイア (p. 282)」を参照してください。
Important
インスタンスストアボリュームに格納されているデータはいずれも、インスタンスが停止また
は終了されると失われます。これには、ルートデバイスとして EBS ボリュームを所有するイ
ンスタンスにアタッチされたインスタンスストアボリュームも該当します。インスタンスが停
止または終了される前に、後で必要となるインスタンスストアボリュームからデータを必ず保
存しておきます。
Amazon EBS によりバックアップされたインスタンスのアクション
インスタンスが予定どおりに停止されるのを待機できます。または、インスタンスを自分で停止および
起動して、新しいホストコンピュータに移行することもできます。インスタンスの停止や、インスタン
スが停止したときにインスタンス設定を変更する方法については、「インスタンスの停止と起動(p.278)」
を参照してください。
インスタンスストアによりバックアップされたインスタンスのアクション
最新の AMI から代替えインスタンスを起動し、インスタンスの終了を予定する前に必要なすべてのデー
タを代替えインスタンスに移行することをお勧めします。その後、元のインスタンスを終了するか、予
定どおりに終了されるのを待機することができます。
再起動が予定されているインスタンスの操作
AWS は、更新のインストールや基盤となるホストコンピュータのメンテナンスなどのタスクを実行す
る必要があるとき、インスタンスまたはそのインスタンスの基盤となるホストコンピュータの再起動を
予定できます。再起動イベントがインスタンスの再起動であるかシステムの再起動であるかを決定する
ことができます。
コンソールを使用して予定された再起動イベントのタイプを表示するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Events] を選択します。
3.
フィルタリストから [Instance resources] を選択し、インスタンスを選択します。
4.
下のペインで、[Event type] を見つけます。この値は system-reboot または instance-reboot
のどちらかです。
AWS CLI を使用して予定された再起動イベントのタイプを表示するには
次の describe-instance-status コマンドを使用します。
aws ec2 describe-instance-status --instance-ids i-15a4417c
インスタンスの再起動のアクション
予定されたメンテナンス期間中に再起動が実行されるまで待機できます。または、都合の良いときにイ
ンスタンスを自分で再起動することもできます。詳細については、「インスタンスの再起動 (p. 282)」
を参照してください。
424
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch によるインスタンスのモニタリング
インスタンスを再起動すると、インスタンスの再起動が予定されているイベントはすぐにキャンセルさ
れ、イベントの説明が更新されます。基盤となるホストコンピュータに対する保留中のメンテナンスが
完了し、インスタンスが完全に起動したら、インスタンスの使用を再開できます。
システムの再起動のアクション
お客様側ではアクションは必要ありません。システムの再起動は、予定されたメンテナンス期間中に実
行されます。システムの再起動は通常数分で完了します。再起動が実行されたことを確認するには、イ
ンスタンスに予定されたイベントがないことを確認します。インスタンスのソフトウェアが想定された
ように動作しているかどうかを確認することをお勧めします。
メンテナンスが予定されているインスタンスの操作
AWS は、インスタンスの基盤となるホストコンピュータをメンテナンスする必要があるとき、インス
タンスのメンテナンスを予定します。2 種類のメンテナンスイベントがあります。1 つはネットワーク
メンテナンスで、もう 1 つは電源のメンテナンスです。
ネットワークメンテナンス中は、短い期間、予定されたインスタンスのネットワーク接続が切断されま
す。メンテナンスが終了すると、インスタンスとの通常のネットワーク接続は回復します。
電源のメンテナンス中は、短い期間、予定されたインスタンスはオフラインになり、その後再起動され
ます。再起動されると、インスタンスの設定内容はすべて維持されます。
インスタンスが再起動したら(通常、数分かかります)、アプリケーションが正常に動作していること
を確認します。この時点では、インスタンスにはもう予定されたイベントがないか、予定されたイベン
トの説明の先頭に [Completed] と表示されているはずです。これは、このインスタンスのステータスが
更新するのに、最大で 1 時間ほど時間がかかる場合があります。完了したメンテナンスイベントは、最
長で 1 週間、Amazon EC2 コンソールのダッシュボードに表示されます。
Amazon EBS によりバックアップされたインスタンスのアクション
メンテナンスが予定どおりに実行されるのを待機できます。または、インスタンスを停止および起動し
て、新しいホストコンピュータに移行することもできます。インスタンスの停止や、インスタンスが停
止したときにインスタンス設定を変更する方法については、「インスタンスの停止と起動 (p. 278)」を
参照してください。
インスタンスストアによりバックアップされたインスタンスのアクション
メンテナンスが予定どおりに実行されるのを待機できます。または、予定されたメンテナンス期間中に
通常の運用を維持する場合、最新の AMI から代替インスタンスを起動し、予定されたメンテナンス期
間より前に必要なデータをすべて代替インスタンスに移行した後、元のインスタンスを終了できます。
CloudWatch によるインスタンスのモニタリング
Abstract
Amazon CloudWatch を使用して Amazon EC2 インスタンスをモニタリングし、インスタンスから未加工データを
収集して、リアルタイムに近い読み取り可能なメトリックスに加工します。
Amazon CloudWatch を使用して Amazon EC2 インスタンスをモニタリングすることで、Amazon EC2
から未加工データを収集し、リアルタイムに近い読み取り可能なメトリックスに加工することができま
す。これらの統計は 2 週間記録されるため、履歴情報にアクセスしてウェブアプリケーションまたは
サービスの動作をより的確に把握することができます。デフォルトでは、Amazon EC2 メトリックス
データは 5 分間隔で CloudWatch に自動的に送信されます。ただし、Amazon EC2 インスタンスの詳
細モニタリングを有効にすれば、1 分間隔でデータが CloudWatch に送信されます。Amazon CloudWatch
の詳細については、Amazon CloudWatch 開発者ガイド を参照してください。
425
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 インスタンスの詳細モニタリングの有効化ま
たは無効化
次の表では、Amazon EC2 インスタンスの基本モニタリングと詳細モニタリングについて説明します。
型
説明
基本
データは自動的に 5 分間無料で取得できます。
詳細
1 分間のデータを取得できます。追加料金がかか
ります。このレベルのデータを取得するには、イ
ンスタンスのデータ取得を明確に有効にする必要
があります。詳細モニタリングを有効にしたイン
スタンスでは、同様のインスタンスグループの集
約データを取得することもできます。
料金表の詳細については、Amazon CloudWatch
product page を参照してください。
Amazon EC2 インスタンスのモニタリングデータは、Amazon CloudWatch API または AWS マネジメ
ントコンソールを使用して取得できます。コンソールには、Amazon CloudWatch API の未加工データ
に基づいて一連のグラフが表示されます。必要に応じて、API のデータまたはコンソールのグラフのい
ずれかを使用できます。
目次
• Amazon EC2 インスタンスの詳細モニタリングの有効化または無効化 (p. 426)
• Amazon EC2 メトリックスを表示する (p. 429)
• メトリックスの統計情報を取得する (p. 437)
• メトリックスのグラフ化 (p. 454)
• CloudWatch アラームを作成する (p. 458)
• インスタンスを停止、終了、再起動、または復旧するアラームを作成する (p. 466)
Amazon EC2 インスタンスの詳細モニタリングの有
効化または無効化
Abstract
新しい Amazon EC2 インスタンス、または実行中か停止中のインスタンスで、詳細モニタリングを有効または無
効にします。
このセクションでは、新しいインスタンス(起動時)または実行中または停止中のインスタンスの詳細
モニタリングを有効または無効にする方法について説明します。詳細モニタリングを有効にすると、
Amazon EC2 コンソールに、インスタンスの 1 分間ごとのモニタリンググラフが表示されます。コン
ソールまたはコマンドラインインターフェイス(CLI)を使用して、詳細モニタリングを有効または無
効にすることができます。
AWS マネジメントコンソール
既存のインスタンスの詳細モニタリングを有効にするには
EC2 インスタンスの詳細モニタリングを有効できます。これにより 1 分間隔でインスタンスのデータ
が提供されます(1 分間隔のモニタリングには追加料金がかかります)。これにより、AWS マネジメ
ントコンソール コンソールグラフ、または API 経由で、インスタンスの詳細データを取得することが
できます。このレベルのデータを取得するには、インスタンスのデータ取得を明確に有効にする必要が
あります。詳細モニタリングを有効にしたインスタンスでは、同様のインスタンスグループの集約デー
426
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 インスタンスの詳細モニタリングの有効化ま
たは無効化
タを取得することもできます。詳細モニタリングを有効にするには、インスタンスは実行中または停止
中である必要があります。
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
ナビゲーションペインの [Instances] をクリックします。
インスタンスのリストで、実行中または停止したインスタンスを選択し、[Actions] をクリックして
[CloudWatch Monitoring] を選択した後、[Enable Detailed Monitoring] をクリックします。
[Enable Detailed Monitoring] ダイアログボックスで、[Yes, Enable] をクリックします。
5.
確認の [Enable Detailed Monitoring] ダイアログボックスで、[Close] をクリックします。
これにより、AWS マネジメントコンソール グラフ、または API 経由で、(1 分間ごとに収集され
る)インスタンスの詳細データを取得することができます。
EC2 インスタンスの起動時に詳細モニタリングを有効にするには
AWS マネジメントコンソール を使用してインスタンスを起動する場合は、起動ウィザードの [Configure
Instance Details] ページの [Monitoring] チェックボックスをオンにします。
インスタンスを起動したら、コンソールでインスタンスを選択し、下部のペインにあるインスタンスの
Monitoring タブにそのモニタリンググラフを表示することができます。
EC2 インスタンスの詳細モニタリングを無効にするには
1 分間隔でインスタンスをモニタリングする必要がなくなった場合は、詳細モニタリングを無効にし
て、基本モニタリングを使用します。基本モニタリングでは、5 分間隔のデータを無料で取得できま
す。
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Instances] をクリックします。
インスタンスのリストで、実行中または停止したインスタンスを選択し、[Actions] をクリックして
[CloudWatch Monitoring] を選択した後、[Disable Detailed Monitoring] をクリックします。
[Disable Detailed Monitoring] ダイアログボックスで、[Yes, Disable] をクリックします。
確認の [Disable Detailed Monitoring] ダイアログボックスで、[Close] をクリックします。
インスタンスの起動については、「インスタンスの作成 (p. 254)」を参照してください。
コマンドラインインターフェイス
既存のインスタンスで詳細モニタリングを有効にするには
1 つまたは複数のインスタンス ID を指定して monitor-instances コマンドを使用します。
monitor-instances コマンドの使用に関する詳細については、『AWS Command Line Interface Reference』
の「monitor-instances」を参照してください。
$ aws ec2 monitor-instances --instance-ids i-570e5a28
{
"InstanceMonitorings": [
{
"InstanceId": "i-570e5a28",
"Monitoring": {
"State": "pending"
}
}
427
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 インスタンスの詳細モニタリングの有効化ま
たは無効化
]
}
これにより、AWS マネジメントコンソール グラフ、または API 経由で、(1 分間ごとに収集される)
インスタンスの詳細データを取得することができます。
インスタンスの起動時に詳細モニタリングを有効にするには
run-instances フラグを付けて --monitoring コマンドを使用します。run-instances コマンドの使
用に関する詳細については、『AWS Command Line Interface Reference』の「run-instances」を参照
してください。
$ aws ec2 run-instances --image-id ami-09092360 --key-name MyKeyPair --monitoring
Enabled=value
Amazon EC2 が次の例のような出力を返します。モニタリングのステータスが pending として表示さ
れます。
{
"OwnerId": "111122223333",
"ReservationId": "r-25fad905",
"Groups": [
{
"GroupName": "default",
"GroupId": "sg-eafe1b82"
}
],
"Instances": [
{
"Monitoring": {
"State": "pending"
},
"PublicDnsName": null,
"Platform": "windows",
"State": {
"Code": 0,
"Name": "pending"
},
"EbsOptimized": false,
"LaunchTime": "2014-02-24T18:02:49.000Z",
"ProductCodes": [],
"StateTransitionReason": null,
"InstanceId": "i-31283b11",
"ImageId": "ami-09092360",
"PrivateDnsName": null,
"KeyName": "MyKeyPair",
"SecurityGroups": [
{
"GroupName": "default",
"GroupId": "sg-eafe1b82"
}
],
"ClientToken": null,
"InstanceType": "m1.small",
"NetworkInterfaces": [],
"Placement": {
428
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 メトリックスを表示する
"Tenancy": "default",
"GroupName": null,
"AvailabilityZone": "us-east-1b"
},
"Hypervisor": "xen",
"BlockDeviceMappings": [],
"Architecture": "x86_64",
"StateReason": {
"Message": "pending",
"Code": "pending"
},
"VirtualizationType": "hvm",
"RootDeviceType": "instance-store",
"AmiLaunchIndex": 0
}
]
}
インスタンスを実行したら、AWS マネジメントコンソール グラフ、または API 経由で、(1 分間ごと
に収集される)インスタンスの詳細データを取得することができます。
インスタンスの詳細モニタリングを無効にするには
1 つまたは複数のインスタンス ID を指定して unmonitor-instances コマンドを使用します。
unmonitor-instances コマンドの使用に関する詳細については、『AWS Command Line Interface
Reference』の「unmonitor-instances」を参照してください。
$ aws ec2 unmonitor-instances --instance-ids i-570e5a28
{
"InstanceMonitorings": [
{
"InstanceId": "i-570e5a28",
"Monitoring": {
"State": "disabling"
}
}
]
}
Amazon EC2 メトリックスを表示する
Abstract
アクティビティの過去 5 分間(デフォルト)について、Amazon EC2 が CloudWatch に送信するメトリックスを表
示します。
Amazon CloudWatch にメトリックスを送信するのは、使用中の AWS のサービスのみです。Amazon
EC2 から CloudWatch に送信されるメトリックスを表示するには、Amazon CloudWatch コンソール、
mon-list-metrics コマンド、または ListMetrics API を使用できます。詳細モニタリングを有効
にした場合、各データポイントはインスタンスの過去1分間のアクティビティが対象です。それ以外の
場合、各データポイントはインスタンスの過去5分間のアクティビティが対象です。
429
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 メトリックスを表示する
メトリックス
説明
CPUCreditUsage
(T2 インスタンスにのみ有効)指定した期間内に消費される CPU
クレジット数です。
このメトリックスは、インスタンスに割り当てられた仮想 CPU に
よる命令を処理するために使用される、物理 CPU の時間を識別し
ます。
Note
CPU クレジットメトリックスは、5 分間隔で利用可能で
す。
単位: Count
CPUCreditBalance
(T2 インスタンスにのみ有効)インスタンスが累積される CPU ク
レジット数です。
このメトリックスは、どのくらいの期間のインスタンスが指定され
たレートのベースラインパフォーマンスレベルを超えてバーストで
きるかを判断するために使用されます。
Note
CPU クレジットメトリックスは、5 分間隔で利用可能で
す。
単位: Count
CPUUtilization
割り当てられた EC2 コンピュートユニットのうち、現在インスタ
ンス上で使用されているものの比率。このメトリックスは、選択さ
れたインスタンス上でアプリケーションを実行するのに必要な処理
能力を表します。
Note
Amazon EC2 インスタンスタイプによっては、インスタン
スがフルプロセッサコアに割り当てられていない場合に、
オペレーティングシステムのツールが CloudWatch よりも
低い比率を示す場合があります。
単位: パーセント
DiskReadOps
指定された期間にインスタンスで利用できるすべてのエフェメラル
ディスクでの、完了した読み取り操作。インスタンスで Amazon
EBS ボリュームを使用する場合は、「Amazon EBS のメトリック
ス (p. 682)」を参照してください。
Note
その期間の 1 秒あたりの I/O 操作回数(IOPS)の平均を算
出するには、その期間の操作回数の合計をその期間の秒数
で割ります。
単位: Count
430
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 メトリックスを表示する
メトリックス
説明
DiskWriteOps
指定された期間にインスタンスで利用できるすべてのエフェメラル
ディスクへの、完了した書き込み操作。インスタンスで Amazon
EBS ボリュームを使用する場合は、「Amazon EBS のメトリック
ス (p. 682)」を参照してください。
Note
その期間の 1 秒あたりの I/O 操作回数(IOPS)の平均を算
出するには、その期間の操作回数の合計をその期間の秒数
で割ります。
単位: Count
DiskReadBytes
このインスタンスで利用できるすべてのエフェメラルディスクで
の、読み取られたバイトの数(インスタンスで Amazon EBS を使
用している場合は、「Amazon EBS のメトリックス (p. 682)」を参
照してください)。
このメトリックスを使用すると、このインスタンスのハードディス
クからアプリケーションが読み取るデータの量がわかります。これ
を利用すると、アプリケーションの速度がわかります。
単位: バイト
DiskWriteBytes
このインスタンスで利用できるすべてのエフェメラルディスクで
の、書き込まれたバイトの数(インスタンスで Amazon EBS を使
用している場合は、「Amazon EBS のメトリックス (p. 682)」を参
照してください)。
このメトリックスを使用すると、このインスタンスのハードディス
クにアプリケーションが書き込むデータの量がわかります。これを
利用すると、アプリケーションの速度がわかります。
単位: バイト
NetworkIn
すべてのネットワークインターフェースでの、このインスタンスに
よって受信されたバイトの数。このメトリックスは、1 つのインス
タンス上での 1 つのアプリケーションへのネットワークトラフィッ
クの量を表しています。
単位: バイト
NetworkOut
すべてのネットワークインターフェースでの、このインスタンスか
ら送信されたバイトの数。このメトリックスは、1 つのインスタン
ス上での 1 つのアプリケーションからのネットワークトラフィック
の量を表しています。
単位: バイト
431
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 メトリックスを表示する
メトリックス
説明
StatusCheckFailed
StatusCheckFailed_Instance と StatusCheckFailed_System の組み
合わせで、どちらかのステータスチェックが失敗したら報告しま
す。このメトリックスの値は 0 か 1 です。0 はステータスチェック
が成功したことを示します。1 はステータスチェックの失敗を示し
ます。
Note
ステータスチェックメトリックスは、1 分間隔で利用でき
ます。インスタンスを新しく起動した場合は、インスタン
スの初期化状態が完了しないと、ステータスチェックのメ
トリックスを利用できません。ステータスが実行中に変わっ
たら、数分以内にステータスチェックのメトリックスが利
用できるようになります。
単位: Count
StatusCheckFailed_Instance
最近 1 分間にインスタンスが EC2 インスタンスステータスチェッ
クに成功したかどうかを報告します。このメトリックスの値は 0 か
1 です。0 はステータスチェックが成功したことを示します。1 は
ステータスチェックの失敗を示します。
Note
ステータスチェックメトリックスは、1 分間隔で利用でき
ます。インスタンスを新しく起動した場合は、インスタン
スの初期化状態が完了しないと、ステータスチェックのメ
トリックスを利用できません。ステータスが実行中に変わっ
たら、数分以内にステータスチェックのメトリックスが利
用できるようになります。
単位: Count
StatusCheckFailed_System 最近 1 分間にインスタンスが EC2 システムステータスチェックに
成功したかどうかを報告します。このメトリックスの値は 0 か 1
です。0 はステータスチェックが成功したことを示します。1 はス
テータスチェックの失敗を示します。
Note
ステータスチェックメトリックスは、1 分間隔で利用でき
ます。インスタンスを新しく起動した場合は、インスタン
スの初期化状態が完了しないと、ステータスチェックのメ
トリックスを利用できません。ステータスが実行中に変わっ
たら、数分以内にステータスチェックのメトリックスが利
用できるようになります。
単位: Count
次の表のディメンションを使用すると、インスタンスに対して返されるメトリックスを絞り込むことが
できます。
432
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 メトリックスを表示する
ディメンション
説明
AutoScalingGroupName
このディメンションを指定すると、リクエストしたデータがフィル
タリングされて、指定したキャパシティグループ内のインスタンス
のものだけになります。AutoScalingGroup は、Auto Scaling サー
ビスを使用する場合に定義するインスタンスのコレクションです。
このディメンションを EC2 のメトリックスに対して使用できるの
は、インスタンスが AutoScalingGroup 内にあるときに限られます。
詳細モニタリングまたは基本モニタリングが有効になっているイン
スタンスに対して使用できます。
ImageId
このディメンションを指定すると、リクエストしたデータがフィル
タリングされて、この EC2 Amazon マシンイメージ(AMI)を実
行しているインスタンスのものだけになります。詳細モニタリング
が有効になっているインスタンスに対して使用できます。
InstanceId
このディメンションを指定すると、リクエストしたデータがフィル
タリングされて、指定のインスタンスのものだけになります。これ
を利用すると、どのインスタンスからのデータをモニタリングする
かを指定できます。
InstanceType
このディメンションを指定すると、リクエストしたデータがフィル
タリングされて、指定のインスタンスタイプで実行されているイン
スタンスのものだけになります。これを利用すると、実行されてい
るインスタンスのタイプでデータを分類することができます。たと
えば、m1.small インスタンスと m1.large インスタンスのデータを
比較して、アプリケーションに対するビジネス価値はどちらが上か
を判断します。詳細モニタリングが有効になっているインスタンス
に対して使用できます。
GetMetricStatistics アクションの使用の詳細については、「Amazon CloudWatch API リファレン
ス」の「GetMetricStatistics」を参照してください。
AWS マネジメントコンソール
利用可能なメトリックスをカテゴリー別に表示するには
カテゴリー別にメトリックスを表示することができます。まず、メトリックスは名前空間でグループ化
され、次に各名前空間内のさまざまなディメンションの組み合わせでグループ化されています。たとえ
ば、すべての EC2 メトリックスを表示したり、インスタンス ID、インスタンスタイプ、イメージ
(AMI)ID、または Auto Scaling グループごとにグループ化された EC2 メトリックスを表示したりで
きます。
1.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
2.
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
433
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 メトリックスを表示する
3.
ナビゲーションペインで [Metrics] をクリックします。
4.
[CloudWatch Metrics by Category] ペインの [EC2 Metrics] で [Per-Instance Metrics] を選択してか
ら、上のペインを最後までスクロールして、全メトリックスのリストを見ることができます。
434
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 メトリックスを表示する
コマンドラインインターフェイス
複数の Amazon EC2 インスタンスで使用可能なメトリックスを一覧表示するには
list-metrics コマンドを入力し、結果を Amazon EC2 に限定するために AWS/EC2 名前空間を指定
します。list-metrics コマンドの詳細については、『AWS Command Line Interface Reference』の
「list-metrics」を参照してください。
$ aws cloudwatch list-metrics --namespace AWS/EC2
CloudWatch は以下を返します(一部のみ)。
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceType",
"Value": "t1.micro"
}
],
"MetricName": "CPUUtilization"
},
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-570e5a28"
}
],
"MetricName": "DiskWriteOps"
},
435
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 メトリックスを表示する
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceType",
"Value": "t1.micro"
}
],
"MetricName": "NetworkOut"
},
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "ImageId",
"Value": "ami-6cb90605"
}
],
"MetricName": "CPUUtilization"
},
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "ImageId",
"Value": "ami-6cb90605"
}
],
"MetricName": "NetworkIn"
},
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceType",
"Value": "t1.micro"
}
],
"MetricName": "DiskReadBytes"
},
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-570e5a28"
}
],
"MetricName": "StatusCheckFailed_System"
},
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-570e5a28"
}
],
436
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
"MetricName": "NetworkOut"
},
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-0c986c72"
}
],
"MetricName": "DiskWriteBytes"
}
]
}
メトリックスの統計情報を取得する
Abstract
Amazon CloudWatch コンソールまたはコマンドラインコマンドを使用して、メトリックスの統計情報を取得する
方法に関するシナリオをひととおり説明します。
この一連のシナリオでは、AWS マネジメントコンソール、get-metric-statistics コマンド、ま
たは GetMetricStatistics API を使用して、さまざまな統計を取得する方法について示します。
Note
開始時間と終了時間は過去 14 日以内である必要があります。
目次
• 特定の EC2 インスタンスの統計を取得する (p. 437)
• インスタンス全体の統計の集約 (p. 441)
• Auto Scaling グループ別に集約された統計を取得する (p. 446)
• イメージ(AMI)ID 別に集約された統計を取得する (p. 449)
特定の EC2 インスタンスの統計を取得する
Abstract
説明するシナリオは、特定の EC2 インスタンスの統計情報を取得する方法に関するものです。
次のシナリオでは、AWS マネジメントコンソール または get-metric-statistics コマンドを使用
して、特定の EC2 インスタンスの最大 CPU 使用率を特定する方法を順を追って説明します。
Note
開始時間と終了時間は過去 14 日以内である必要があります。
このシナリオでは、EC2 インスタンス ID が既にあることが前提となっています。アクティブな EC2
インスタンス ID は、AWS マネジメントコンソール または describe-instances コマンドを使用し
て取得できます。
437
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
AWS マネジメントコンソール
特定のインスタンスの平均 CPU 使用率を表示するには
1.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
2.
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
3.
4.
ナビゲーションペインの [Metrics] をクリックします。
[CloudWatch Metrics by Category] ペインで、[EC2: Metrics] を選択します。
5.
個々のインスタンスで利用可能なメトリックスが上のペインに表示されます。
特定のインスタンス ID で [CPUUtilization] を含む行を選択します。
単一のインスタンスの平均値 CPUUtilization を示したグラフが詳細ペインに表示されます。
438
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
6.
メトリックスのStatistic(例: Average)を変更するには、ポップアップリストから異なる値を選択
します。
7.
Period(例: 5 Minutes)を変更してより粒度の高い内容でデータを表示するには、ポップアップリ
ストから異なる値を選択します。
コマンドラインインターフェイス
EC2 インスタンスごとの CPU 使用率を取得するには
get-metric-statistics コマンドを、以下のパラメータを指定して入力します。
get-metric-statistics コマンドの詳細については、『AWS Command Line Interface Reference』
の「get-metric-statistics」を参照してください。
$ aws cloudwatch get-metric-statistics --metric-name CPUUtilization --starttime 2014-02-18T23:18:00 --end-time 2014-02-19T23:18:00 --period 3600 --namespace
AWS/EC2 --statistics Maximum --dimensions Name=InstanceId,Value=<your-instanceid>
AWS CLI は以下の値を返します。
{
"Datapoints": [
{
"Timestamp": "2014-02-19T00:18:00Z",
"Maximum": 0.33000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T03:18:00Z",
439
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
"Maximum": 99.670000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T07:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T12:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T02:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T01:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T17:18:00Z",
"Maximum": 3.3900000000000001,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T13:18:00Z",
"Maximum": 0.33000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-18T23:18:00Z",
"Maximum": 0.67000000000000004,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T06:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T11:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T10:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T19:18:00Z",
"Maximum": 8.0,
"Unit": "Percent"
},
440
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
{
"Timestamp": "2014-02-19T15:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T14:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T16:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T09:18:00Z",
"Maximum": 0.34000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T04:18:00Z",
"Maximum": 2.0,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T08:18:00Z",
"Maximum": 0.68000000000000005,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T05:18:00Z",
"Maximum": 0.33000000000000002,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-19T18:18:00Z",
"Maximum": 6.6699999999999999,
"Unit": "Percent"
}
],
"Label": "CPUUtilization"
}
返される統計は、リクエストされた 2 日間の 6 分の値です。それぞれの値は、単一の EC2 インスタン
スの最大 CPU 使用率を表しています。
インスタンス全体の統計の集約
Abstract
次に説明するシナリオは、インスタンスとリージョンにわたって統計情報を取得し、集計する方法についてひとと
おり説明しています。
詳細モニタリングが有効になっているインスタンスの集約された統計を使用することができます。基本
モニタリングを使用するインスタンスは集約されません。加えて、Amazon CloudWatch は複数のリー
ジョンをまたがってデータを集約することはありません。そのため、メトリックスはリージョン間で完
441
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
全に分離されています。インスタンス全体で集約される統計を取得できるようになるには、1 分の期間
でデータを提供する詳細モニタリング(有料)を有効にする必要があります。このシナリオでは、AWS
マネジメントコンソール、GetMetricStatisticsAPI、または get-metric-statistics コマンド
のいずれかで詳細モニタリングを使用して、EC2 インスタンスの平均 CPU 使用率を取得する方法を示
します。ディメンションを指定していないため、CloudWatch は、AWS/EC2 名前空間にある全ディメン
ションの統計を返します。他のメトリックスの統計情報を取得するには、Amazon CloudWatch
Namespaces, Dimensions, and Metrics Reference を参照してください。
Important
AWS 名前空間にあるすべてのディメンションを取得するこの手法は、Amazon CloudWatch に
パブリッシュするカスタム名前空間では機能しません。カスタム名前空間の場合、データポイ
ントを含む統計を取得するには、そのデータポイントに関連付けられたディメンション一式を
すべて指定する必要があります。
AWS マネジメントコンソール
Amazon EC2 インスタンスの平均 CPU 使用率を表示するには
1.
2.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
3.
4.
ナビゲーションペインの [Metrics] をクリックします。
[CloudWatch Metrics by Category] ペインの [EC2 Metrics] で、[Across All Instances] を選択しま
す。
すべてのインスタンスで利用可能なメトリックスが上のペインに表示されます。
5.
上のペインで、CPUUtilization を含む行を選択します。
EC2 インスタンスの CPUUtilization を示すグラフが詳細ペインに表示されます。
442
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
6.
メトリックスのStatistic(例: Average)を変更するには、ポップアップリストから異なる値を選択
します。
7.
Period(例: 5 Minutes)を変更してより粒度の高い内容でデータを表示するには、ポップアップリ
ストから異なる値を選択します。
443
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
コマンドラインインターフェイス
複数の Amazon EC2 インスタンスの平均 CPU 使用率を取得するには
get-metric-statistics コマンドを、以下のパラメータを指定して入力します。
get-metric-statistics コマンドの詳細については、『AWS Command Line Interface Reference』
の「get-metric-statistics」を参照してください。
$ aws cloudwatch get-metric-statistics --metric-name CPUUtilization --starttime 2014-02-11T23:18:00 --end-time 2014-02-12T23:18:00 --period 3600 --namespace
AWS/EC2 --statistics "Average" "SampleCount"
AWS CLI は以下の値を返します。
{
"Datapoints": [
{
"SampleCount": 238.0,
"Timestamp": "2014-02-12T07:18:00Z",
"Average": 0.038235294117647062,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T09:18:00Z",
"Average": 0.16670833333333332,
"Unit": "Percent"
},
{
"SampleCount": 238.0,
"Timestamp": "2014-02-11T23:18:00Z",
"Average": 0.041596638655462197,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T16:18:00Z",
"Average": 0.039458333333333345,
"Unit": "Percent"
},
{
"SampleCount": 239.0,
"Timestamp": "2014-02-12T21:18:00Z",
"Average": 0.041255230125523033,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T01:18:00Z",
"Average": 0.044583333333333336,
"Unit": "Percent"
},
{
"SampleCount": 239.0,
"Timestamp": "2014-02-12T18:18:00Z",
"Average": 0.043054393305439344,
"Unit": "Percent"
444
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T13:18:00Z",
"Average": 0.039458333333333345,
"Unit": "Percent"
},
{
"SampleCount": 238.0,
"Timestamp": "2014-02-12T15:18:00Z",
"Average": 0.041260504201680689,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T19:18:00Z",
"Average": 0.037666666666666668,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T06:18:00Z",
"Average": 0.037541666666666675,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T20:18:00Z",
"Average": 0.039333333333333338,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T08:18:00Z",
"Average": 0.039250000000000014,
"Unit": "Percent"
},
{
"SampleCount": 239.0,
"Timestamp": "2014-02-12T03:18:00Z",
"Average": 0.037740585774058588,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T11:18:00Z",
"Average": 0.039500000000000007,
"Unit": "Percent"
},
{
"SampleCount": 238.0,
"Timestamp": "2014-02-12T02:18:00Z",
"Average": 0.039789915966386563,
"Unit": "Percent"
},
{
"SampleCount": 238.0,
"Timestamp": "2014-02-12T22:18:00Z",
445
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
"Average": 0.039705882352941181,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T14:18:00Z",
"Average": 0.082458333333333328,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T05:18:00Z",
"Average": 0.04287500000000001,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T17:18:00Z",
"Average": 0.039458333333333345,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T10:18:00Z",
"Average": 0.083416666666666667,
"Unit": "Percent"
},
{
"SampleCount": 236.0,
"Timestamp": "2014-02-12T00:18:00Z",
"Average": 0.036567796610169498,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T12:18:00Z",
"Average": 0.039541666666666676,
"Unit": "Percent"
},
{
"SampleCount": 240.0,
"Timestamp": "2014-02-12T04:18:00Z",
"Average": 0.043000000000000003,
"Unit": "Percent"
}
],
"Label": "CPUUtilization"
}
Auto Scaling グループ別に集約された統計を取得する
Abstract
次に説明するシナリオは、Auto Scaling グループに沿って集計された統計情報を取得する方法に関するものです。
詳細モニタリングが有効になっているインスタンスの集約された統計を使用することができます。基本
モニタリングを使用するインスタンスは集約されません。加えて、Amazon CloudWatch は複数のリー
446
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
ジョンをまたがってデータを集約することはありません。そのため、メトリックスはリージョン間で完
全に分離されています。複数のインスタンスにわたって集計された統計情報を取得するには、1 分間隔
でデータが提供される詳細モニタリングを事前に有効にしておく必要があります(追加料金がかかりま
す)。
このシナリオでは、AWS マネジメントコンソール、get-metric-statistics コマンド、または
GetMetricStatistics API を DiskWriteBytes メトリックス指定で実行して、1 つの Auto Scaling グ
ループのディスクに書き込まれる合計バイト数を取得する方法について示します。合計は、指定された
AutoScalingGroupName の EC2 インスタンス全体で、24 時間 1 分おきで計算されます。
Note
開始時間と終了時間は過去 14 日以内である必要があります。
この例では、EC2 アプリケーションが実行中で、test-group-1 という名前の Auto Scaling グループ
があることを想定しています。
AWS マネジメントコンソール
オートスケールされている EC2 アプリケーションの合計 DiskWriteBytes を表示するには
1.
2.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
3.
4.
ナビゲーションペインの [Metrics] をクリックします。
[CloudWatch Metrics by Category] ペインの [EC2 Metrics] で、[By Auto Scaling Group] を選択しま
す。
5.
Auto Scaling グループで利用可能なメトリックスが上のペインに表示されます。
DiskWriteBytes を含む行を選択します。
すべての EC2 インスタンスで DiskWriteBytes を示すグラフが詳細ペインに表示されます。
447
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
6.
メトリックスのStatistic(例: Average)を変更するには、ポップアップリストから異なる値を選択
します。
7.
Period(例: 5 Minutes)を変更してより粒度の高い内容でデータを表示するには、ポップアップリ
ストから異なる値を選択します。
448
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
コマンドラインインターフェイス
オートスケールされている EC2 アプリケーションの合計 DiskWriteBytes を取得するには
get-metric-statistics コマンドを、以下のパラメータを指定して入力します。
get-metric-statistics コマンドの詳細については、『AWS Command Line Interface Reference』
の「get-metric-statistics」を参照してください。
$ aws cloudwatch get-metric-statistics --metric-name DiskWriteBytes --starttime 2014-02-16T23:18:00 --end-time 2014-02-18T23:18:00 --period 360 --namespace
AWS/EC2 --statistics "Sum" "SampleCount" --dimensions Name=AutoScalingGroup
Name,Value=test-group-1
AWS CLI は以下の値を返します。
{
"Datapoints": [
{
"SampleCount": 18.0,
"Timestamp": "2014-02-19T21:36:00Z",
"Sum": 0.0,
"Unit": "Bytes"
},
{
"SampleCount": 5.0,
"Timestamp": "2014-02-19T21:42:00Z",
"Sum": 0.0,
"Unit": "Bytes"
}
],
"Label": "DiskWriteBytes"
}
イメージ(AMI)ID 別に集約された統計を取得する
Abstract
次に説明するシナリオは、イメージ ID に沿って集計された統計情報を取得する方法に関するものです。
詳細モニタリングが有効になっているインスタンスの集約された統計を使用することができます。基本
モニタリングを使用するインスタンスは集約されません。加えて、Amazon CloudWatch は複数のリー
ジョンをまたがってデータを集約することはありません。そのため、メトリックスはリージョン間で完
全に分離されています。複数のインスタンスにわたって集計された統計情報を取得するには、1 分間隔
でデータが提供される詳細モニタリングを事前に有効にしておく必要があります(追加料金がかかりま
す)。
このシナリオでは、AWS マネジメントコンソール、get-metric-statistics コマンド、または
GetMetricStatistics API を使用して、特定のイメージ ID と一致するすべてのインスタンスの平均
CPU 使用率を確認する方法を説明します。平均値は、1 日間、60 秒間隔の平均値です。
Note
開始時間と終了時間は過去 14 日以内である必要があります。
このシナリオでは、EC2 インスタンスは ami-c5e40dac のイメージ ID を実行しています。
449
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
AWS マネジメントコンソール
特定のイメージ ID の平均 CPU 使用率を表示するには
1.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
2.
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
3.
4.
ナビゲーションペインの [Metrics] をクリックします。
[CloudWatch Metrics by Category] ペインの [EC2 Metrics] で、[By Image (AMI) Id] を選択します。
5.
イメージ ID で利用可能なメトリックスが上のペインに表示されます。
CPUUtilization とイメージ ID を含む行を選択します。
ami-c5e40dac イメージ ID に基づいてすべての EC2 インスタンスの平均 CPUUtilization を示
すグラフが詳細ペインに表示されます。
6.
メトリックスのStatistic(例: Average)を変更するには、ポップアップリストから異なる値を選択
します。
450
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
7.
Period(例: 5 Minutes)を変更してより粒度の高い内容でデータを表示するには、ポップアップリ
ストから異なる値を選択します。
コマンドラインインターフェイス
特定のイメージ ID の平均 CPU 使用率を取得するには
以下の例のように、get-metric-statistics コマンドを入力します。get-metric-statistics
コマンドの詳細については、『AWS Command Line Interface Reference』の「get-metric-statistics」を
参照してください。
$ aws cloudwatch get-metric-statistics --metric-name CPUUtilization --starttime 2014-02-10T00:00:00 --end-time 2014-02-11T00:00:00 --period 3600 --statist
ics Average --namespace AWS/EC2 --dimensions Name="ImageId",Value=ami-3c47a355"
AWS CLI は以下の値を返します。
{
"Datapoints": [
{
"Timestamp": "2014-02-10T07:00:00Z",
"Average": 0.041000000000000009,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T14:00:00Z",
"Average": 0.079579831932773085,
"Unit": "Percent"
},
451
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
{
"Timestamp": "2014-02-10T06:00:00Z",
"Average": 0.036000000000000011,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T13:00:00Z",
"Average": 0.037625000000000013,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T18:00:00Z",
"Average": 0.042750000000000003,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T21:00:00Z",
"Average": 0.039705882352941188,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T20:00:00Z",
"Average": 0.039375000000000007,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T02:00:00Z",
"Average": 0.041041666666666671,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T01:00:00Z",
"Average": 0.041083333333333354,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T23:00:00Z",
"Average": 0.038016877637130804,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T15:00:00Z",
"Average": 0.037666666666666668,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T12:00:00Z",
"Average": 0.039291666666666676,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T03:00:00Z",
"Average": 0.036000000000000004,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T04:00:00Z",
"Average": 0.042666666666666672,
452
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスの統計情報を取得する
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T19:00:00Z",
"Average": 0.038305084745762719,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T22:00:00Z",
"Average": 0.039291666666666676,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T09:00:00Z",
"Average": 0.17126050420168065,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T08:00:00Z",
"Average": 0.041166666666666678,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T11:00:00Z",
"Average": 0.082374999999999962,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T17:00:00Z",
"Average": 0.037625000000000013,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T10:00:00Z",
"Average": 0.039458333333333345,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T05:00:00Z",
"Average": 0.039250000000000007,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T00:00:00Z",
"Average": 0.037625000000000013,
"Unit": "Percent"
},
{
"Timestamp": "2014-02-10T16:00:00Z",
"Average": 0.041512605042016815,
"Unit": "Percent"
}
],
"Label": "CPUUtilization"
}
オペレーションは、1 日間 1 分おきの統計を返します。それぞれの値は、指定されたマシンのイメージ
を実行する EC2 インスタンスの平均 CPU 使用率を表します。
453
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスのグラフ化
メトリックスのグラフ化
Abstract
インスタンスのモニタリンググラフを表示します。
インスタンスを起動したら、Amazon EC2 コンソールに移動し、インスタンスのモニタリンググラフ
を表示できます。これらのグラフは、EC2 ダッシュボードの Instances ページでインスタンスを選択す
ると表示されます。インスタンスの Description タブの隣りに、Monitoring タブが表示されます。以下
のグラフが利用可能です。
• 平均 CPU 使用率(パーセント)
• 平均ディスク読み込み(バイト)
• 平均ディスク書き込み(バイト)
• 最大ネットワーク受信(バイト)
• 最大ネットワーク送信(Bytes)
•
•
•
•
•
要約ディスク読み取り操作(カウント)
要約ディスク書き込み操作(カウント)
要約ステータス(任意)
要約ステータスインスタンス(カウント)
要約ステータスシステム(カウント)
各グラフは、利用可能な Amazon EC2 メトリックスのいずれかに基づいています。グラフに表示され
るメトリックスおよびデータの詳細については、「Amazon EC2 メトリックスを表示する (p. 429)」を
参照してください。
また、CloudWatch コンソールを使用すれば、Amazon EC2 およびその他の AWS サービスによって生
成されたメトリックスデータをグラフ化して、何が起こっているのかをより簡単に確認できるようにな
ります。CloudWatch でメトリックスをグラフ化するには、次の手順を行います。
目次
• メトリックスをグラフ化する (p. 454)
• 複数リソースの単一メトリックスをグラフ化する (p. 456)
メトリックスをグラフ化する
Abstract
次に説明するシナリオは、CloudWatch でメトリックスを選択し、データのグラフを作成する方法に関するもので
す。
CloudWatch でメトリックスを選択し、そのデータのグラフを作成することができます。たとえば、
Amazon EC2 インスタンスの CPUUtilization メトリックスを選択して、そのインスタンスの一定期間
の CPU 使用率をグラフで表示することができます。
メトリックスをグラフ化するには
1.
2.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、『アマゾン ウェブ サービス全般のリファレンス』の「リージョンとエ
ンドポイント」を参照してください。
454
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスのグラフ化
3.
ナビゲーションペインで [Metrics] をクリックします。
4.
[CloudWatch Metrics by Category] ペインで、[Search Metrics] ボックスとカテゴリを使用して、メ
トリックス名、AWS リソース、またはその他のメタデータ別にメトリックスを見つけます。
スクロールバーやメトリックスのリストの上にある左右矢印を使用して、メトリックスのリスト全
体のページを送ることができます。
たとえば、CPUUtilization を表示するメトリックスを選択します。グラフが詳細ペインに表示され
ます。
5.
6.
7.
このグラフを保存して後でアクセスするには、詳細ペインの [Tools] で [Copy URL] をクリックし
てから、[Copy Graph URL] ダイアログボックスで URL を選択して、ご使用のブラウザにペースト
します。
455
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスのグラフ化
複数リソースの単一メトリックスをグラフ化する
Abstract
次に説明するシナリオは、CloudWatch ですべてのリソースにおける単一のメトリックスを選択し、そのデータの
グラフを作成する方法に関するものです。
すべてを 1 つのグラフで見るために、すべてのリソースにわたって一つのメトリックスをグラフ化する
ことができます。たとえば、すべての Amazon EC2 インスタンスの CPUUtilization メトリックスを 1
つのグラフ上に表示することができます。
複数リソースの単一メトリックスをグラフ化するには
1.
2.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
3.
ナビゲーションペインで [Metrics] をクリックします。
4.
[CloudWatch Metrics by Category] ペインで、メトリックスのカテゴリーを選択します。たとえば、
[EC2 Metrics] の下にある [Per-Instance Metrics] を選択します。
456
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メトリックスのグラフ化
5.
6.
メトリックスのリストの [Metric Name] 列で、メトリックスをクリックします。たとえば、
[CPUUtilization] を選択します。
メトリックスのリストの一番上で、[Select All] を選択します。
グラフには、選択したメトリックスのすべての発生に関する全データが表示されます。以下の例
は、すべての Amazon EC2 インスタンスの CPUUtilization を示しています。
7.
このグラフを保存して後でアクセスするには、詳細ペインの [Tools] で [Copy URL] をクリックし
てから、[Copy Graph URL] ダイアログボックスで URL を選択して、ご使用のブラウザにペースト
します。
457
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch アラームを作成する
CloudWatch アラームを作成する
Abstract
CloudWatch メトリックスの CloudWatch アラームを作成します。
Amazon EC2 インスタンスの CloudWatch メトリックスをモニタリングする Amazon CloudWatch ア
ラームを作成できます。CloudWatch は、指定したしきい値にメトリックスが達すると、自動的に通知
を送信します。AWS マネジメントコンソール の Amazon EC2 コンソールで CloudWatch アラームを
作成するか、または CloudWatch コンソールを使用して、より詳細なオプションを設定することができ
ます。
目次
• CPU 使用率アラームに基づいてメールを送信する (p. 458)
• ロードバランサーアラームに基づいてメールを送信する (p. 460)
• ストレージスループットアラームに基づいてメールを送信する (p. 463)
CPU 使用率アラームに基づいてメールを送信する
Abstract
次に説明するシナリオは、CPU 使用率のアラーム状態に基づいて E メールを送信するアラームを作成する方法に
関するものです。
このシナリオでは、AWS マネジメントコンソール またはコマンドラインインターフェイスを使用し
て、アラームの状態が OK から ALARM に変化したときに、Amazon Simple Notification Service E メー
ルメッセージを送信する Amazon CloudWatch アラームを作成する方法について順を追って説明しま
す。
このシナリオでは、EC2 インスタンスの平均 CPU 使用率が、5 分の期間を 2 回連続で 70% を超えた
場合に、アラームの状態が ALARM に変わるように設定します。
AWS マネジメントコンソール
CPU 使用率に基づいてメールを送信するアラームを作成するには
1.
2.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
3.
ナビゲーションペインで [Alarms] をクリックします。
458
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch アラームを作成する
4.
5.
[Create Alarm] をクリックし、[CloudWatch Metrics by Category] ペインでメトリックスのカテゴ
リ(たとえば [EC2 Metrics])を選択します。
メトリックスのリストで、特定のインスタンス ID の CPUUtilization を含む行を選択します。
単一のインスタンスの平均値 CPUUtilization を示したグラフが下のペインに表示されます。
6.
7.
[Statistic] ドロップダウンリストから [Average] を選択します。
[”Period”]ドロップダウンリストから、期間 (5 minutes など) を選択します。
8.
[Next] をクリックし、[Alarm Threshold] の [Name] フィールドに一意のアラーム名(例:
「myHighCpuAlarm」)を入力します。
9.
[Description] フィールドには、アラームの説明(例:「CPU 70 」)を入力し
ます。
10. [is] ドロップダウンリストで > を選択します。
11. [is] ドロップダウンリストの横にあるボックスに「70」と入力し、[for] フィールドに「10」と入力
します。
しきい値がグラフ化されて [Alarm Preview] に表示されます。
12. [Actions] の [Whenever this alarm] ドロップダウンリストで、[State is ALARM] を選択します。
13. [Send notification to] ドロップダウンリストにある既存の Amazon SNS トピックを選択するか、新
しいトピックを作成します。
14. 新しい Amazon SNS トピックを作成するには、[New list] を選択します。
[Send notification to] フィールドに、新しい Amazon SNS トピックの名前(例:
「myHighCpuAlarm」)を入力し、[Email list] フィールドに、アラームが ALARM 状態に変化した
ときに通知を受ける E メールアドレスをカンマで区切って入力します。
15. アラームの作成を完了するには、[Create Alarm] をクリックします。
459
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch アラームを作成する
コマンドラインインターフェイス
CPU 使用率が 70% を超えたときに Amazon Simple Notification Service メールメッセージを送
信するには
1.
Amazon Simple Notification Service トピックを設定するか、使用するトピックのトピックリソース
ネームを見つけます。Amazon Simple Notification Service トピックの設定については、Set Up
Amazon Simple Notification Service を参照してください。
2.
put-metric-alarm コマンドを使用してアラームを作成します。put-metric-alarm コマンド
の詳細については、『AWS Command Line Interface Reference』の「put-metric-alarm」を参照し
てください。次に示す例の値を使用します。ただし、InstanceID と alarm-actions の値はご
自分の値に置き換えます。
$ aws cloudwatch
put-metric-alarm --alarm-name cpu-mon --alarm-description
"Alarm when CPU exceeds 70%" --metric-name CPUUtilization --namespace AWS/EC2
--statistic Average --period 300
--threshold 70 --comparison-operator GreaterThanThreshold -dimensions Name=InstanceId,Value=i-12345678 --evaluation-periods 2 --alarmactions arn:aws:sns:us-east-1:111122223333:MyTopic --unit Percent
3.
コマンドが成功した場合、AWS CLI はコマンドプロンプトに戻ります。
set-alarm-state コマンドを使用してアラームの状態を強制的に変化させ、アラームをテストし
ます。
a.
アラームの状態を INSUFFICIENT_DATA から OK に変更します。
$ aws cloudwatch set-alarm-state
"initializing" --state-value OK
b.
--alarm-name cpu-mon --state-reason
コマンドが成功した場合、AWS CLI はコマンドプロンプトに戻ります。
アラームの状態を OK から ALARM に変更します。
$ aws cloudwatch set-alarm-state --alarm-name cpu-mon --state-reason
"initializing" --state-value ALARM
c.
コマンドが成功した場合、AWS CLI はコマンドプロンプトに戻ります。
メールを受信したことを確認します。
ロードバランサーアラームに基づいてメールを送信する
Abstract
次に説明するシナリオは、アラームの状態に基づいて E メールを送信するロードバランサーを設定する方法に関す
るものです。
このシナリオでは、AWS マネジメントコンソールまたはコマンドラインインターフェイスを使用して
Amazon Simple Notification Service 通知をセットアップし、さらに 100 ms を超えるロードバランサー
レイテンシーをモニタリングするアラームを設定する方法を説明します。
460
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch アラームを作成する
AWS マネジメントコンソール
メールを送信するロードバランサーアラームを作成するには
1.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
2.
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
3.
4.
ナビゲーションペインで [Alarms] をクリックします。
[Create Alarm] をクリックし、[CloudWatch Metrics by Category] ペインでメトリックスのカテゴ
リー(例: ELB Metrics)を選択します。
メトリックスのリストで、特定のロードバランサーの Latency を含む行を選択します。
5.
単一のロードバランサーの平均値 Latency を示したグラフがペインに表示されます。
461
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch アラームを作成する
6.
7.
8.
[Statistic] ドロップダウンリストから [Average] を選択します。
[Period] ドロップダウンリストで [1 Minute] を選択します。
[Next] をクリックし、[Alarm Threshold] の [Name] フィールドに一意のアラーム名(例:
「myHighCpuAlarm」)を入力します。
9.
[Description] フィールドには、アラームの説明(例:「Latency 100ms 」)を入
力します。
10. [is] ドロップダウンリストで [>] を選択します。
11. [is] ドロップダウンリストの横にあるボックスに「0.1」と入力し、[for] フィールドに「3」と入力
します。
しきい値がグラフ化されて [Alarm Preview] に表示されます。
12. [Actions] の [Whenever this alarm] ドロップダウンリストで、[State is ALARM] を選択します。
13. [Send notification to] ドロップダウンリストにある既存の Amazon SNS トピックを選択するか、新
しいトピックを作成します。
14. 新しい Amazon SNS トピックを作成するには、[New list] を選択します。
[Send notification to] フィールドに、新しい Amazon SNS トピックの名前(例:
「myHighCpuAlarm」)を入力し、[Email list] フィールドに、アラームが ALARM 状態に変化した
ときに通知を受ける E メールアドレスをカンマで区切って入力します。
15. アラームの作成を完了するには、[Create Alarm] をクリックします。
462
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch アラームを作成する
コマンドラインインターフェイス
ロードバランサーのレイテンシーが 100 ミリ秒を超えたときに Amazon Simple Notification
Service メールメッセージを送信するには
1.
Amazon Simple Notification Service トピックを作成します。Amazon SNS トピックの作成手順に
ついては、Set Up Amazon Simple Notification Service を参照してください。
2.
put-metric-alarm コマンドを使用してアラームを作成します。put-metric-alarm コマンド
の詳細については、『AWS Command Line Interface Reference』の「put-metric-alarm」を参照し
てください。
$ aws cloudwatch put-metric-alarm --alarm-name lb-mon --alarm-description
"Alarm when Latency exceeds 100ms" --metric-name Latency --namespace AWS/ELB
--statistic Average --period 60 --threshold 100 --comparison-operator
GreaterThanThreshold --dimensions Name=LoadBalancerName,Value=my-server -evaluation-periods 3 --alarm-actions arn:aws:sns:us-east-1:1234567890:mytopic --unit Milliseconds
3.
コマンドが成功した場合、AWS CLI はコマンドプロンプトに戻ります。
アラームのテストを行います。
• アラームの状態を強制的に ALARM に変更します。
$ aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "ini
tializing" --state OK
$ aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "ini
tializing" --state ALARM
コマンドが成功した場合、AWS CLI はコマンドプロンプトに戻ります。
• メールを受信したことを確認します。
ストレージスループットアラームに基づいてメールを送信する
Abstract
次に説明するシナリオは、アラームの状態に基づいて E メールを送信するストレージスループットアラームを作成
する方法に関するものです。
このシナリオでは、AWS マネジメントコンソール またはコマンドラインインターフェイスを使用して
Amazon Simple Notification Service 通知をセットアップし、さらに EBS が 100 MB スループットを上
回ったときに E メールを送信するアラームを設定します。
AWS マネジメントコンソール
メールを送信するストレージスループットアラームを作成するには
1.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
2.
必要に応じてリージョンを変更します。ナビゲーションバーから、必要に応じてリージョンを選択
します。詳細については、「リージョンとエンドポイント」を参照してください。
463
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch アラームを作成する
3.
ナビゲーションペインで [Alarms] をクリックします。
4.
[Create Alarm] をクリックし、[CloudWatch Metrics by Category] ペインでメトリックスのカテゴ
リー(例: EBS Metrics)を選択します。
メトリックスのリストで、特定の VolumeId の VolumeWriteBytes を含む行を選択します。
5.
単一のボリュームの平均値 VolumeWriteBytes を示したグラフが下のペインに表示されます。
6.
7.
[Statistic] ドロップダウンリストから [Average] を選択します。
[Period] ドロップダウンリストで [5 Minute] を選択します。
8.
[Next] をクリックし、[Alarm Threshold] の [Name] フィールドに一意のアラーム名(例:
「myHighWriteAlarm」)を入力します。
464
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
CloudWatch アラームを作成する
9.
[Description] フィールドには、アラームの説明(例:「VolumeWriteBytes 100,000 KiB/s
」)を入力します。
10. [is] ドロップダウンリストで [>] を選択します。
11. [is] ドロップダウンリストの横にあるボックスに「100000」と入力し、[for] フィールドに「15」
と入力します。
しきい値がグラフ化されて [Alarm Preview] に表示されます。
12. [Actions] の [Whenever this alarm] ドロップダウンリストで、[State is ALARM] を選択します。
13. [Send notification to] ドロップダウンリストにある既存の Amazon SNS トピックを選択するか、新
しいトピックを作成します。
14. 新しい Amazon SNS トピックを作成するには、[New list] を選択します。
[Send notification to] フィールドに、新しい Amazon SNS トピックの名前(例:
「myHighCpuAlarm」)を入力し、[Email list] フィールドに、アラームが ALARM 状態に変化した
ときに通知を受ける E メールアドレスをカンマで区切って入力します。
15. アラームの作成を完了するには、[Create Alarm] をクリックします。
コマンドラインインターフェイス
EBS のスループットが 100 MB を超えた場合に Amazon Simple Notification Service メールメッ
セージを送信するには
1.
2.
Amazon Simple Notification Service トピックを作成します。Amazon SNS トピックの作成手順に
ついては、Set Up Amazon Simple Notification Service を参照してください。
put-metric-alarm コマンドを使用してアラームを作成します。put-metric-alarm コマンド
の詳細については、『AWS Command Line Interface Reference』の「put-metric-alarm」を参照し
てください。
$ aws cloudwatch put-metric-alarm --alarm-name ebs-mon --alarm-description
"Alarm when EBS volume exceeds 100MB throughput" --metric-name VolumeRead
Bytes --namespace AWS/EBS --statistic Average --period 300 --threshold
100000000 --comparison-operator GreaterThanThreshold --dimensions
Name=VolumeId,Value=my-volume-id --evaluation-periods 3 --alarm-actions
arn:aws:sns:us-east-1:1234567890:my-alarm-topic --insufficient-data-actions
arn:aws:sns:us-east-1:1234567890:my-insufficient-data-topic
3.
コマンドが成功した場合、AWS CLI はコマンドプロンプトに戻ります。
アラームのテストを行います。
• アラームの状態を強制的に ALARM に変更します。
$ aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "ini
tializing" --state-value OK
$ aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "ini
tializing" --state-value ALARM
$ aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "ini
tializing" --state-value INSUFFICIENT_DATA
• メールを 2 件受信していることを確認します。
465
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
インスタンスを停止、終了、再起動、または復旧す
るアラームを作成する
Abstract
Amazon EC2 インスタンスを自動的に停止、終了、再起動、または復旧する CloudWatch アラームを作成します。
Amazon CloudWatch アラームアクションを使用して、Amazon Elastic Compute Cloud(Amazon EC2)
インスタンスを自動的に停止、終了、再起動、または復旧するアラームを作成できます。停止または終
了アクションを使用すると、今後インスタンスを実行する必要がなくなったときにコストを節約できま
す。再起動アクションを使用すると、これらのインスタンスを自動的に再起動でき、復旧アクションを
使用すると、システムで障害が発生した場合に新しいハードウェアで復旧できます。
作成するすべてのアラームアクションがアラームアクション ARN を使用します。1 セットの ARN を
使用すると、より安全です。お客様のアカウントでは EC2ActionsAccess IAM ロールを使用する必要が
あるからです。この IAM ロールを使用すると、停止、終了、または再起動アクションを実行できます。
以前は、IAM ロールを使用していると、アクションを実行できませんでした。以前のアラームアクショ
ンの ARN を使用する現存のアラームは、この IAM ロールを必要としませんが、これらの ARN を使用
する現存のアラームを編集するときに ARN を変更し、ロールを追加することを推奨します。
EC2ActionsAccess IAM ロールを使用すると、AWS がお客様に代わってアラームアクションを実行で
きます。Amazon EC2 または Amazon CloudWatch コンソールを使用して初めてアラームアクションを
作成するとき、AWS は自動的にお客様に代わってこのロールを作成します。さらに、EC2ActionsAccess
ロールを CLI から使用できるようにするには、どちらかのコンソールを使用してこのロールを作成する
必要があります。
自動的にインスタンスを停止または終了するシナリオはいくつもあります。たとえば、バッチ給与計算
処理ジョブまたは科学計算タスクを専用に行うインスタンスを使用している場合が挙げられます。これ
らのインスタンスは一定期間動作して仕事を完了します。このようなインスタンスは、アイドル状態
(課金されている状態)にせずに、停止または終了するとコスト削減につながります。停止アラームア
クションと終了アラームアクションの主な違いとして、停止したインスタンスは、後で再実行が必要な
場合に再起動しやすいことと、同じインスタンス ID およびルートボリュームを維持できることがあり
ます。しかし、終了したインスタンスを再起動することはできません。代わりに新しいインスタンスを
開始する必要があります。
基になるハードウェア障害または AWS による修復を必要とする問題によりインスタンスが正常に機能
しなくなった場合に、自動的に Amazon EC2 インスタンスを復旧するアラームを作成できます。シス
テムステータスチェックの失敗の原因となる問題には、次のようなものがあります。
• ネットワーク接続の喪失
• システム電源の喪失
• 物理ホストのソフトウェアの問題
• 物理ホストのハードウェアの問題
Important
復旧アクションは、次のインスタンスでのみサポートされています。
• C3、C4、M3、M4、R3、および T2 インスタンスタイプ。
• アジアパシフィック(シンガポール)、アジアパシフィック(シドニー)、アジアパシフィッ
ク(東京)、欧州(アイルランド)、欧州(フランクフルト)、南米(サンパウロ)、US
East (N. Virginia)、米国西部(北カリフォルニア)、米国西部(オレゴン)、および アジア
パシフィック (ソウル) リージョン内のインスタンス。
• VPC のインスタンス。
466
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
Note
インスタンスにパブリック IP アドレスが割り当てられている場合、復旧後に同じパ
ブリック IP アドレスが維持されます。
• 共有テナンシーのインスタンス(インスタンスのテナンシー属性が default に設定されて
いる)。
• 排他的に Amazon EBS ストレージを使用するインスタンス。
現在、復旧アクションは、EC2-Classic インスタンス、専有テナンシーのインスタンス、
Dedicated Host で実行中のインスタンス、インスタンスストアボリュームを使用するインスタ
ンスではサポートされていません。
停止、終了、再起動、または復旧アクションは、Amazon CloudWatch によって(AWS/EC2 名前空間
で)提供されている基本および詳細モニタリングメトリックスや、「InstanceId=」ディメンションを
含んでいるカスタムメトリックスなど、Amazon EC2 インスタンスごとのメトリックスで設定されて
いる任意のアラームに追加できます。ただし、InstanceId 値が実行中の有効な Amazon EC2 インスタ
ンスを参照している場合に限ります。
目次
• Amazon CloudWatch アラームへの停止アクションの追加 (p. 467)
• Amazon CloudWatch アラームへの終了アクションの追加 (p. 471)
• Amazon CloudWatch アラームへの再起動アクションの追加 (p. 474)
• Amazon CloudWatch アラームへの復旧アクションの追加 (p. 477)
• Amazon CloudWatch コンソールを使用してトリガーされたアラームとアクションの履歴を表示す
る (p. 481)
• CLI または API を使用して、インスタンスを停止、終了、再起動、または復旧するアラームを作成
する (p. 482)
• Amazon CloudWatch のアラームアクションのシナリオ (p. 488)
Amazon CloudWatch アラームへの停止アクションの追加
停止アラームアクションは、Amazon EC2 コンソール、Amazon CloudWatch コンソール、Amazon
CloudWatch コマンドラインインターフェイス(CLI)、CloudWatch API、または AWS SDK を使用し
て設定できます。Amazon CloudWatch API を AWS SDK と組み合わせて使用する方法の詳細について
は、「サンプルコードとライブラリ」を参照してください。
Amazon EC2 コンソールを使用してインスタンスを停止するアラームを作成す
る
一定のしきい値に達したときに Amazon EC2 インスタンスを停止するアラームを作成できます。たと
えば、開発またはテスト用のインスタンスを実行したまま、終了するのを忘れることがたまにありま
す。平均 CPU 利用率が 24 時間 10% 未満である場合に、インスタンスがアイドル状態で使用されてい
ないという信号を発してトリガーするアラームを作成できます。しきい値、持続時間、期間をニーズに
合わせて調整し、アラームがトリガーされたときにメールを受信するよう Amazon Simple Notification
Service (Amazon SNS)通知を追加できます。
Amazon Elastic Block Store ボリュームをルートデバイスとして使用する Amazon EC2 インスタンスは
停止または終了できますが、インスタンスストアをルートデバイスとして使用するインスタンスでは終
了のみ行えます。
467
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• 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 ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
アイドル状態のインスタンスを停止させるアラームを作成するには
1.
2.
3.
4.
5.
6.
7.
8.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインで、[INSTANCES] の下にある [Instances] をクリックします。
コンテンツペインでインスタンスを右クリックし、[CloudWatch Monitoring] を選択して、[Add/Edit
Alarms] をクリックします。
または、インスタンスを選択してから、下のペインの [Monitoring] タブで [Create Alarm] をクリッ
クします。
[Alarm Details for] ダイアログボックスで、[Create Alarm] をクリックします。
アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアログ
ボックスの [Send a notification to] ボックスで、既存の Amazon SNS トピックを選択するか、また
は [Create Topic] をクリックして新しいトピックを作成します。
トピックを新規作成する場合は、[Send a notification to] ボックスにトピック名を入力し、[With
these recipients] ボックスに受信者のメールアドレスを入力します(コンマ区切り)。アラームの
作成が終わると、サブスクライブの確認メールが届きます。このトピックのメールを受け取れるよ
うになるには、このメールを確認する必要があります。
[Take the action] チェックボックスをオンにし、[Stop this instance] ラジオボタンを選択します。
プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] チェックボックスをオンにし
て、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーさ
れたときにお客様に代わって自動的にインスタンスを停止できます。
468
9.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
[Whenever] ボックスで使用する統計を選択してから、メトリックスを選択します。この例では、
「Average」と「CPU Utilization」を選択しています。
10. [Is] ボックスで、メトリックスのしきい値を設定します。この例では 10% と入力しています。
11. [For at least] ボックスで、アラームのサンプリング期間を選択します。この例では、1 時間の期間
で 24 期間連続と入力しています。
12. アラーム名を変更するには、[Name this alarm] ボックスに新しい名前を入力します。
アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。
Note
アラームを作成する前に独自の要件を基にアラーム設定を調整できます。または後から編
集することができます。これにはメトリックス、しきい値、持続時間、アクション、通知
設定などがあります。ただし、アラームの作成後のアラーム名の編集はできません。
13. [Create Alarm] をクリックします。
Amazon CloudWatch コンソールを使用してインスタンスを停止するアラーム
を作成する
一定のしきい値に達したときに Amazon EC2 インスタンスを停止するアラームを作成できます。たと
えば、開発またはテスト用のインスタンスを実行したまま、終了するのを忘れることがたまにありま
す。平均 CPU 利用率が 24 時間 10% 未満である場合に、インスタンスがアイドル状態で使用されてい
ないという信号を発してトリガーするアラームを作成できます。しきい値、持続時間、期間をニーズに
合わせて調整し、アラームがトリガーされたときにメールを受信するよう Amazon Simple Notification
Service (Amazon SNS)通知を追加できます。
Amazon CloudWatch アラームアクションで EBS がバックにある Amazon EC2 インスタンスを停止す
ることはできますが、インスタンスストアがバックにある Amazon EC2 インスタンスを停止させるこ
とはできません。ただし、Amazon CloudWatch アラームアクションのどちらのタイプの Amazon EC2
インスタンスも終了できます。
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• 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 ロールを使用している場合は、インスタンスを停止または終了できません。た
469
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
だし、アラームの状態を確認して、Amazon SNS 通知や Auto Scaling ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
アイドル状態のインスタンスを停止させるアラームを作成するには
1.
2.
3.
4.
5.
6.
7.
8.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインの [Alarms] をクリックします。
[Create Alarm] をクリックし、[CloudWatch Metrics by Category] ペインで、[EC2 Metrics] の下に
ある [Per-Instance Metrics] を選択します。
メトリックスのリストで、アラームを作成するインスタンスとメトリックスを選択します。また、
検索ボックスにインスタンス ID を入力して、目的のインスタンスに移動することもできます。
[Statistic] ドロップダウンリストから [Average] を選択します。
[Period] ドロップダウンリストから、期間(例: 1 Day)を選択します。
[Next] をクリックし、[Alarm Threshold] の [Name] フィールドに一意のアラーム名(例:「Stop
EC2 instance」)を入力します。
9.
[Description] フィールドにアラームの説明(例: CPU EC2 )を
入力します。
10. [is] ドロップダウンリストで [<] を選択します。
11. [is] ドロップダウンリストの横にあるボックスに「10」と入力し、[for] フィールドに「1440」と入
力します。
12.
13.
14.
15.
16.
しきい値がグラフ化されて [Alarm Preview] に表示されます。
[Actions] の下にある [EC2 Action] をクリックします。
[Whenever this alarm] ドロップダウンリストで、[State is ALARM] を選択します。
[Take this action] ドロップダウンリストで、[Stop this instance] を選択します。
プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] チェックボックスをオンにし
て、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーさ
れたときにお客様に代わって自動的にインスタンスを停止できます。
[Notification] をクリックし、[Send notification to] ドロップダウンリストにある既存の Amazon SNS
トピックを選択するか、新しいトピックを作成します。
17. 新しい Amazon SNS トピックを作成するには、[New list] を選択します。
[Send notification to] フィールドに新規 Amazon SNS トピックの名前(例: Stop_EC2_Instance)
を入力し、[Email list] フィールドに、アラームの状態が ALARM に変わったときに通知を送るメー
ルアドレスをカンマ区切りで入力します。
Important
トピックを新規作成する場合、または既存のトピックにメールアドレスを追加する場合、
追加した各メールアドレスにトピックサブスクライブの確認メールが送信されます。新し
いメールアドレスに通知が送信されるように、確認メール内のリンクをクリックしてサブ
スクライブを確認する必要があります。
18. ナビゲーションペインで [Create Alarm] をクリックして、アラーム作成処理が終了します。
470
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
Amazon CloudWatch アラームへの終了アクションの追加
終了アラームアクションは、Amazon EC2 コンソール、Amazon CloudWatch コンソール、Amazon
CloudWatch コマンドラインインターフェイス(CLI)、CloudWatch API、または AWS SDK を使用し
て設定できます。Amazon CloudWatch API を AWS SDK と組み合わせて使用する方法の詳細について
は、「サンプルコードとライブラリ」を参照してください。
Amazon EC2 コンソールを使用したインスタンスを終了するアラームの作成
(インスタンスで終了保護が有効になっていない限り)、一定のしきい値に達したときに EC2 インス
タンスを自動的に終了させるアラームを作成することができます。たとえば、インスタンスが仕事を終
え、再びそのインスタンスを使用する必要がない場合は、インスタンスを終了することをお勧めしま
す。後でインスタンスを使用する可能性がある場合は、インスタンスを終了するのではなく、停止する
ほうが良いでしょう。インスタンスの終了保護の有効化および無効化の詳細については、『Linux イン
スタンス用 Amazon EC2 ユーザーガイド』の「インスタンスの終了保護の有効化」を参照してくださ
い。
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• 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 ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
アイドル状態のインスタンスを終了するアラームを作成するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
3.
4.
ナビゲーションペインで、[INSTANCES] の下にある [Instances] をクリックします。
上側のペインで、インスタンスを右クリックし、[CloudWatch Monitoring] を選択して [Add/Edit
Alarms] をクリックします。
471
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
または、インスタンスを選択してから、下のペインの [Monitoring] タブで [Create Alarm] をクリッ
クします。
5.
6.
[Alarm Details for] ダイアログボックスで、[Create Alarm] をクリックします。
アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアログ
ボックスの [Send a notification to] ボックスで、既存の Amazon SNS トピックを選択するか、また
は [Create Topic] をクリックして新しいトピックを作成します。
トピックを新規作成する場合は、[Send a notification to] ボックスにトピック名を入力し、[With
these recipients] ボックスに受信者のメールアドレスを入力します(コンマ区切り)。アラームの
作成が終わると、サブスクライブの確認メールが届きます。このトピックのメールを受け取れるよ
うになるには、このメールを確認する必要があります。
7. [Take the action] チェックボックスをオンにし、[Terminate this instance] ラジオボタンを選択しま
す。
8. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] チェックボックスをオンにし
て、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーさ
れたときにお客様に代わって自動的にインスタンスを停止できます。
9. [Whenever] ボックスで使用する統計を選択してから、メトリックスを選択します。この例では、
「Average」と「CPU Utilization」を選択しています。
10. [Is] ボックスで、メトリックスのしきい値を設定します。この例では 10% と入力しています。
11. [For at least] ボックスで、アラームのサンプリング期間を選択します。この例では、1 時間の期間
で 24 期間連続と入力しています。
12. アラーム名を変更するには、[Name this alarm] ボックスに新しい名前を入力します。
アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。
Note
アラームを作成する前に独自の要件を基にアラーム設定を調整できます。または後から編
集することができます。これにはメトリックス、しきい値、持続時間、アクション、通知
設定などがあります。ただし、アラームの作成後のアラーム名の編集はできません。
13. [Create Alarm] をクリックします。
Amazon CloudWatch コンソールを使用してインスタンスを終了するアラーム
を作成する
インスタンスの終了保護が無効になっている限り、一定のしきい値に達したときに Amazon EC2 イン
スタンスを自動的に終了させるアラームを作成することができます。たとえば、インスタンスが仕事を
終え、再びそのインスタンスを使用する必要がない場合は、インスタンスを終了することをお勧めしま
す。後でインスタンスを使用する可能性がある場合は、インスタンスを終了するのではなく、停止する
ほうが良いでしょう。インスタンスの終了保護の無効化の詳細については、『Linux インスタンス用
Amazon EC2 ユーザーガイド』の「インスタンスの終了保護の有効化」を参照してください。
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• ec2:DescribeInstanceStatus と ec2:DescribeInstances。Amazon EC2 インスタン
スステータスメトリックスに対するすべてのアラーム用。
• ec2:StopInstances。停止アクションを含むアラーム用。
• ec2:TerminateInstances。終了アクションを含むアラーム用。
• ec2:DescribeInstanceRecoveryAttribute と ec2:RecoverInstances。復旧アク
ションを含むアラーム用。
472
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
Amazon CloudWatch に対する読み取り/書き込みのアクセス権限があり、Amazon EC2 に対す
るアクセス権限がない場合、アラームは作成できますが、Amazon EC2 インスタンスで停止ま
たは終了アクションが実行されません。ただし、関連付けられている Amazon EC2 API の使用
許可が後で付与される場合、以前に作成したアラームアクションは実行されるようになりま
す。IAM アクセス権限の詳細については、「IAM ユーザーガイド」の「アクセス権限とポリ
シー」を参照してください。
IAM ロールに基づいて、アラームアクションを使用してインスタンスを停止または終了する場
合は、EC2ActionsAccess ロールしか使用できません。他の IAM ロールはサポートされていま
せん。別の IAM ロールを使用している場合は、インスタンスを停止または終了できません。た
だし、アラームの状態を確認して、Amazon SNS 通知や Auto Scaling ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
アイドル状態のインスタンスを終了するアラームを作成するには
1.
2.
3.
4.
5.
6.
7.
8.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインの [Alarms] をクリックします。
[Create Alarm] をクリックし、[CloudWatch Metrics by Category] ペインで、[EC2 Metrics] の下に
ある [Per-Instance Metrics] を選択します。
メトリックスのリストで、アラームを作成するインスタンスとメトリックスを選択します。また、
検索ボックスにインスタンス ID を入力して、目的のインスタンスに移動することもできます。
[Statistic] ドロップダウンリストから [Average] を選択します。
[Period] ドロップダウンリストから、期間(例: 1 Day)を選択します。
[Next] をクリックし、[Alarm Threshold] の [Name] フィールドに一意のアラーム名(例:「Terminate
EC2 instance」)を入力します。
9.
[Description] フィールドにアラームの説明(例: CPU EC2 )を
入力します。
10. [is] ドロップダウンリストで [<] を選択します。
11. [is] ドロップダウンリストの横にあるボックスに「10」と入力し、[for] フィールドに「1440」と入
力します。
しきい値がグラフ化されて [Alarm Preview] に表示されます。
12. [Actions] で EC2 アクションをクリックします。
13. [Whenever this alarm] ドロップダウンリストで、[State is ALARM] を選択します。
14. [Take this action] ドロップダウンリストで、[Terminate this instance] を選択します。
15. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] チェックボックスをオンにし
て、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーさ
れたときにお客様に代わって自動的にインスタンスを停止できます。
16. [Notification] をクリックし、[Send notification to] ドロップダウンリストにある既存の Amazon SNS
トピックを選択するか、新しいトピックを作成します。
17. 新しい Amazon SNS トピックを作成するには、[New list] を選択します。
[Send notification to] フィールドに新規 Amazon SNS トピックの名前(例:
Terminate_EC2_Instance)を入力し、[Email list] フィールドに、アラームの状態が ALARM に
変わったときに通知を送るメールアドレスをカンマ区切りで入力します。
473
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
Important
トピックを新規作成する場合、または既存のトピックにメールアドレスを追加する場合、
追加した各メールアドレスにトピックサブスクライブの確認メールが送信されます。新し
いメールアドレスに通知が送信されるように、確認メール内のリンクをクリックしてサブ
スクライブを確認する必要があります。
18. ナビゲーションペインで [Create Alarm] をクリックして、アラーム作成処理が終了します。
Amazon CloudWatch アラームへの再起動アクションの追加
再起動アラームアクションは、Amazon EC2 コンソール、Amazon CloudWatch コンソール、Amazon
CloudWatch コマンドラインインターフェイス(CLI)、CloudWatch API、または AWS SDK を使用し
て設定できます。Amazon CloudWatch API を AWS SDK と組み合わせて使用する方法の詳細について
は、「サンプルコードとライブラリ」を参照してください。
Amazon EC2 コンソールを使用して、インスタンスを再起動するアラームを作
成する
Amazon EC2 インスタンスをモニタリングし、自動的に再起動する Amazon CloudWatch アラームを作
成できます。再起動アラームアクションは、インスタンスのヘルスチェックが失敗した場合に推奨され
ます(システムのヘルスチェックが失敗した場合には、復旧アラームアクションが推奨されます)。イ
ンスタンスの再起動は、オペレーティングシステムの再起動と同等です。ほとんどの場合、インスタン
スの再起動には数分しかかかりません。インスタンスを再起動すると、インスタンスは同じホスト上で
保持されるため、インスタンスのパブリックドメイン名、プライベート IP アドレス、およびインスタ
ンスストアボリューム上のすべてのデータは保持されます。
インスタンスを再起動しても、インスタンスの停止と再起動とは異なり、新しいインスタンスの課金時
間は開始されません。インスタンスの再起動の詳細については、『Linux インスタンス用 Amazon EC2
ユーザーガイド』の「インスタンスの再起動」を参照してください。
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• 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 ロールを使用している場合は、インスタンスを停止または終了できません。た
474
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
だし、アラームの状態を確認して、Amazon SNS 通知や Auto Scaling ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
インスタンスを再起動するアラームを作成するには
1.
2.
3.
4.
5.
6.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインで、[INSTANCES] の下にある [Instances] をクリックします。
上側のペインで、インスタンスを右クリックし、[CloudWatch Monitoring] を選択して [Add/Edit
Alarms] をクリックします。
または、インスタンスを選択してから、下のペインの [Monitoring] タブで [Create Alarm] をクリッ
クします。
[Alarm Details for] ダイアログボックスで、[Create Alarm] をクリックします。
アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアログ
ボックスの [Send a notification to] ボックスで、既存の Amazon SNS トピックを選択するか、また
は [Create Topic] をクリックして新しいトピックを作成します。
トピックを新規作成する場合は、[Send a notification to] ボックスにトピック名を入力し、[With
these recipients] ボックスに受信者のメールアドレスを入力します(コンマ区切り)。アラームの
作成が終わると、サブスクライブの確認メールが届きます。このトピックのメールを受け取れるよ
うになるには、このメールを確認する必要があります。
7. [Take the action] チェックボックスをオンにし、[Reboot this instance] ラジオボタンを選択します。
8. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] チェックボックスをオンにし
て、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーさ
れたときにお客様に代わって自動的にインスタンスを停止できます。
9. [Whenever] ボックスで、[Status Check Failed (Instance)] を選択します。
10. [For at least] フィールドに、「2」と入力します。
11. [consecutive period(s) of] ボックスで、[1 minute] を選択します。
12. アラームの名前を変更するには、[Name of alarm] ボックスに新しい名前を入力します。
アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。
13. [Create Alarm] をクリックします。
Amazon CloudWatch コンソールを使用して、インスタンスを再起動するアラー
ムを作成する
Amazon EC2 インスタンスをモニタリングし、自動的に再起動する Amazon CloudWatch アラームを作
成できます。再起動アラームアクションは、インスタンスのヘルスチェックが失敗した場合に推奨され
ます(システムのヘルスチェックが失敗した場合には、復旧アラームアクションが推奨されます)。イ
ンスタンスの再起動は、オペレーティングシステムの再起動と同等です。ほとんどの場合、インスタン
スの再起動には数分しかかかりません。インスタンスを再起動すると、インスタンスは同じホスト上で
保持されるため、インスタンスのパブリックドメイン名、プライベート IP アドレス、およびインスタ
ンスストアボリューム上のすべてのデータは保持されます。
インスタンスを再起動しても、インスタンスの停止と再起動とは異なり、新しいインスタンスの課金時
間は開始されません。インスタンスの再起動の詳細については、『Linux インスタンス用 Amazon EC2
ユーザーガイド』の「インスタンスの再起動」を参照してください。
475
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• 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 ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
インスタンスを再起動するアラームを作成するには
1.
2.
3.
4.
5.
6.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインの [Alarms] をクリックします。
[Create Alarm] をクリックし、[CloudWatch Metrics by Category] ペインで、[EC2 Metrics] の下に
ある [Per-Instance Metrics] を選択します。
メトリックスのリストで、アラームを作成するインスタンスと StatusCheckFailed_Instance
メトリックスを選択します。また、検索ボックスにインスタンス ID を入力して希望するインスタ
ンスを見つけることができます。
[Statistic] ドロップダウンリストから [Minimum] を選択します。
Note
これは現在サポートされている唯一の統計情報です。
7.
[Period] ドロップダウンリストから、期間(「1 Minute」など)を選択します。
8.
[Next] をクリックし、[Alarm Threshold] の [Name] フィールドに一意のアラーム名(例:「Reboot
EC2 instance」)を入力します。
9.
[Description] フィールドにアラームの説明(例:「Reboot EC2 instance when health checks
fail」)を入力します。
10. [is] ドロップダウンリストで [>] を選択します。
476
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
11. [is] ドロップダウンリストの隣にあるボックスに「0」を入力し、[for] フィールドに「2」を入力し
ます。
しきい値がグラフ化されて [Alarm Preview] に表示されます。
12. [Actions] で EC2 アクションをクリックします。
13. [Whenever this alarm] ドロップダウンリストで、[State is ALARM] を選択します。
14. [Take this action] ドロップダウンリストで、[Reboot this instance] を選択します。
15. [Notification] をクリックし、[Send notification to] ドロップダウンリストにある既存の Amazon SNS
トピックを選択するか、新しいトピックを作成します。
16. 新しい Amazon SNS トピックを作成するには、[New list] を選択します。
[Send notification to] フィールドに、新しい Amazon SNS トピックの名前(例:
「Reboot_EC2_Instance」)を入力し、[Email list] フィールドに、アラームが ALARM 状態に変
化したときの通知の送信先である E メールアドレスのリストをカンマで区切って入力します。
Important
トピックを新規作成する場合、または既存のトピックにメールアドレスを追加する場合、
追加した各メールアドレスにトピックサブスクライブの確認メールが送信されます。新し
いメールアドレスに通知が送信されるように、確認メール内のリンクをクリックしてサブ
スクライブを確認する必要があります。
17. ナビゲーションペインで [Create Alarm] をクリックして、アラーム作成処理が終了します。
Amazon CloudWatch アラームへの復旧アクションの追加
復旧アラームアクションは、Amazon EC2 コンソール、Amazon CloudWatch コンソール、Amazon
CloudWatch コマンドラインインターフェイス(CLI)、CloudWatch API、または AWS SDK を使用し
て設定できます。Amazon CloudWatch API を AWS SDK と組み合わせて使用する方法の詳細について
は、「サンプルコードとライブラリ」を参照してください。
Amazon EC2 コンソールを使用して、インスタンスを復旧するアラームを作成
する
Amazon EC2 インスタンスをモニタリングし、基になるハードウェア障害または AWS による修復を必
要とする問題によりインスタンスが正常に機能しなくなった場合に、自動的にインスタンスを復旧する
Amazon CloudWatch アラームを作成できます。復旧されたインスタンスは、インスタンス ID、プライ
ベート IP アドレス、Elastic IP アドレス、すべてのインスタンスメタデータを含め、元のインスタンス
と同じです。
StatusCheckFailed_System アラームがトリガーされ、復旧アクションが開始されると、アラーム
を作成したときに選択し、復旧アクションに関連付けた Amazon SNS トピックによって通知されます。
インスタンスを復旧する際、インスタンスを再起動するときにインスタンスは移行され、メモリ内にあ
るデータは失われます。プロセスが完了すると、復旧処理のステータスと、それ以降の手順を含むメー
ルの通知を受け取ります。復旧されたインスタンスでインスタンスが再起動されたことがわかります。
システムステータスチェックの失敗の原因となる問題には、次のようなものがあります。
• ネットワーク接続の喪失
• システム電源の喪失
• 物理ホストのソフトウェアの問題
• 物理ホストのハードウェアの問題
477
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
Important
復旧アクションは、次のインスタンスでのみサポートされています。
• C3、C4、M3、M4、R3、および T2 インスタンスタイプ。
• アジアパシフィック(シンガポール)、アジアパシフィック(シドニー)、アジアパシフィッ
ク(東京)、欧州(アイルランド)、欧州(フランクフルト)、南米(サンパウロ)、US
East (N. Virginia)、米国西部(北カリフォルニア)、米国西部(オレゴン)、および アジア
パシフィック (ソウル) リージョン内のインスタンス。
• VPC のインスタンス。ハードウェア専有インスタンス、または Dedicated Host で実行中の
インスタンスはサポートされていません。
Note
インスタンスにパブリック IP アドレスが割り当てられている場合、復旧後に同じパ
ブリック IP アドレスが維持されます。
• EBS-backed ストレージを使用するインスタンス。インスタンスストレージはサポートされ
ていません。インスタンスストレージがアタッチされている場合、インスタンスの自動復旧
は失敗します。
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• 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 ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
インスタンスを復旧するアラームを作成するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
478
2.
3.
4.
5.
6.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインで、[INSTANCES] の下にある [Instances] をクリックします。
上側のペインで、インスタンスを右クリックし、[CloudWatch Monitoring] を選択して [Add/Edit
Alarms] をクリックします。
または、インスタンスを選択してから、下のペインの [Monitoring] タブで [Create Alarm] をクリッ
クします。
[Alarm Details for] ダイアログボックスで、[Create Alarm] をクリックします。
アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアログ
ボックスの [Send a notification to] ボックスで、既存の Amazon SNS トピックを選択するか、また
は [Create Topic] をクリックして新しいトピックを作成します。
トピックを新規作成する場合は、[Send a notification to] ボックスにトピック名を入力し、[With
these recipients] ボックスに受信者のメールアドレスを入力します(コンマ区切り)。アラームの
作成が終わると、サブスクライブの確認メールが届きます。このトピックのメールを受け取れるよ
うになるには、このメールを確認する必要があります。
7. [Take the action] チェックボックスをオンにし、[Recover this instance] ラジオボタンを選択しま
す。
8. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] チェックボックスをオンにし
て、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーさ
れたときにお客様に代わって自動的にインスタンスを停止できます。
9. [Whenever] ボックスで、[Status Check Failed (System)] を選択します。
10. [For at least] フィールドに、「2」と入力します。
11. [consecutive period(s) of] ボックスで、[1 minute] を選択します。
12. アラームの名前を変更するには、[Name of alarm] ボックスに新しい名前を入力します。
アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。
13. [Create Alarm] をクリックします。
Amazon CloudWatch コンソールを使用して、インスタンスを復旧するアラー
ムを作成する
Amazon EC2 インスタンスをモニタリングし、基になるハードウェア障害または AWS による修復を必
要とする問題によりインスタンスが正常に機能しなくなった場合に、自動的にインスタンスを復旧する
Amazon CloudWatch アラームを作成できます。復旧されたインスタンスは、インスタンス ID、プライ
ベート IP アドレス、Elastic IP アドレス、すべてのインスタンスメタデータを含め、元のインスタンス
と同じです。
StatusCheckFailed_System アラームがトリガーされ、復旧アクションが開始されると、アラーム
を作成したときに選択し、復旧アクションに関連付けた Amazon SNS トピックによって通知されます。
インスタンスを復旧する際、インスタンスを再起動するときにインスタンスは移行され、メモリ内にあ
るデータは失われます。プロセスが完了すると、復旧処理のステータスと、それ以降の手順を含むメー
ルの通知を受け取ります。復旧されたインスタンスでインスタンスが再起動されたことがわかります。
システムステータスチェックの失敗の原因となる問題には、次のようなものがあります。
• ネットワーク接続の喪失
• システム電源の喪失
• 物理ホストのソフトウェアの問題
• 物理ホストのハードウェアの問題
479
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
Important
復旧アクションは、次のインスタンスでのみサポートされています。
• C3、C4、M3、M4、R3、および T2 インスタンスタイプ。
• アジアパシフィック(シンガポール)、アジアパシフィック(シドニー)、アジアパシフィッ
ク(東京)、欧州(アイルランド)、欧州(フランクフルト)、南米(サンパウロ)、US
East (N. Virginia)、米国西部(北カリフォルニア)、米国西部(オレゴン)、および アジア
パシフィック (ソウル) リージョン内のインスタンス。
• VPC のインスタンス。ハードウェア専有インスタンス、または Dedicated Host で実行中の
インスタンスはサポートされていません。
Note
インスタンスにパブリック IP アドレスが割り当てられている場合、復旧後に同じパ
ブリック IP アドレスが維持されます。
• EBS-backed ストレージを使用するインスタンス。インスタンスストレージはサポートされ
ていません。インスタンスストレージがアタッチされている場合、インスタンスの自動復旧
は失敗します。
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• 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 ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
インスタンスを復旧するアラームを作成するには
1.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
480
2.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
3.
4.
ナビゲーションペインの [Alarms] をクリックします。
[Create Alarm] をクリックし、[CloudWatch Metrics by Category] ペインで、[EC2 Metrics] の下に
ある [Per-Instance Metrics] を選択します。
5.
メトリックスのリストで、アラームを作成するインスタンスと StatusCheckFailed_System メ
トリックスを選択します。また、検索ボックスにインスタンス ID を入力して希望するインスタン
スを見つけることができます。
6.
[Statistic] ドロップダウンリストから [Minimum] を選択します。
Note
これは現在サポートされている唯一の統計情報です。
7.
[Period] ドロップダウンリストから、期間(「1 Minute」など)を選択します。
8.
[Next] をクリックし、[Alarm Threshold] の [Name] フィールドに一意のアラーム名(例:「Recover
EC2 instance」)を入力します。
9.
[Description] フィールドにアラームの説明(例:「Recover EC2 instance when health checks
fail」)を入力します。
10. [is] ドロップダウンリストで [>] を選択します。
11. [is] ドロップダウンリストの隣にあるボックスに「0」を入力し、[for] フィールドに「2」を入力し
ます。
しきい値がグラフ化されて [Alarm Preview] に表示されます。
[Actions] で EC2 アクションをクリックします。
[Whenever this alarm] ドロップダウンリストで、[State is ALARM] を選択します。
[Take this action] ドロップダウンリストで、[Recover this instance] をクリックします。
[Notification] をクリックし、[Send notification to] ドロップダウンリストにある既存の Amazon SNS
トピックを選択するか、新しいトピックを作成します。
16. 新しい Amazon SNS トピックを作成するには、[New list] を選択します。
12.
13.
14.
15.
[Send notification to] フィールドに、新しい Amazon SNS トピックの名前
(「Recover_EC2_Instance」など)を入力し、[Email list] フィールドに、アラームが ALARM 状
態に変化したときに通知を送信する E メールのアドレスをカンマで区切って入力します。
Important
トピックを新規作成する場合、または既存のトピックにメールアドレスを追加する場合、
追加した各メールアドレスにトピックサブスクライブの確認メールが送信されます。新し
いメールアドレスに通知が送信されるように、確認メール内のリンクをクリックしてサブ
スクライブを確認する必要があります。
17. ナビゲーションペインで [Create Alarm] をクリックして、アラーム作成処理が終了します。
Amazon CloudWatch コンソールを使用してトリガーされたア
ラームとアクションの履歴を表示する
Amazon CloudWatch コンソールで、アラームとアクションの履歴を見ることができます。Amazon
CloudWatch は、過去 2 週間分のアラームとアクションの履歴を保管します。
481
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
トリガーされたアラームとアクションを表示するには
1.
https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。
2.
3.
4.
必要に応じてリージョンを変更します。ナビゲーションバーから、インスタンスが実行している
リージョンを選択します。詳細については、「リージョンとエンドポイント」を参照してくださ
い。
ナビゲーションペインの [Alarms] をクリックします。
上のペインで、履歴を見たいアラームを選択します。
5.
6.
下のペインの [Details] タブに、直近の状態遷移、および時間とメトリックス値が表示されます。
直近の履歴のエントリーを表示するには、[History] タブをクリックします。
CLI または API を使用して、インスタンスを停止、終了、再起
動、または復旧するアラームを作成する
AWS CLI または Amazon CloudWatch API を使用する場合、あるいは AWS SDK を API と一緒に使用
する場合は、Amazon EC2 インスタンスごとのメトリックスを使用して CloudWatch アラームを作成
し、さらにアクション専用の Amazon リソースネーム(ARN)を使用してアクションを追加すること
ができます。アクションは任意のアラーム状態に追加でき、各アクションに対してリージョンを指定で
きます。リージョンは、put-metric-alarm リクエストの送信先リージョンと一致していなければなりま
せん。
アクション
ARN(リージョンを伴う)
ARN(IAM ロールで使用)
Stop
arn:aws:automate:us-east1:ec2:stop
arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Stop/1.0
Note
EC2ActionsAccess IAM
ロールを作成するには、
Amazon EC2 または
CloudWatch コンソール
を使用して少なくとも 1
つの停止アラームを作成
する必要があります。こ
の IAM ロールが作成され
た後は、CLI を使用して
停止アラームを作成でき
ます。
482
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
アクション
ARN(リージョンを伴う)
ARN(IAM ロールで使用)
Terminate
arn:aws:automate:us-east1:ec2:terminate
arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Terminate/1.0
Note
EC2ActionsAccess IAM
ロールを作成するには、
Amazon EC2 または
CloudWatch コンソール
を使用して少なくとも 1
つの終了アラームを作成
する必要があります。こ
の IAM ロールが作成され
た後は、CLI を使用して
終了アラームを作成でき
ます。
Reboot
該当なし
arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
Note
EC2ActionsAccess IAM
ロールを作成するには、
Amazon EC2 または
CloudWatch コンソール
を使用して少なくとも 1
つの再起動アラームを作
成する必要があります。
この IAM ロールが作成さ
れた後は、CLI を使用し
て再起動アラームを作成
できます。
Recover
arn:aws:automate:us-east1:ec2:recover
該当なし
Amazon CloudWatch API を AWS SDK と組み合わせて使用する方法の詳細については、「サンプル
コードとライブラリ」を参照してください。
Note
AWS Identity and Access Management (IAM) アカウントを使用してアラームを作成または変更
する場合、次の Amazon EC2 のアクセス権限が必要です。
• ec2:DescribeInstanceStatus と ec2:DescribeInstances。Amazon EC2 インスタン
スステータスメトリックスに対するすべてのアラーム用。
• ec2:StopInstances。停止アクションを含むアラーム用。
483
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
• 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 ポリシーなど、その他の
アクションを実行することはできます。
AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用してい
る場合は、アラームアクションを用いて Amazon EC2 インスタンスを復旧することはできませ
ん。
CLI を使用してインスタンスを停止するアラームを作成するには
arn:aws:automate:us-east-1:ec2:stop ARN を使用して Amazon EC2 インスタンスを停止でき
ます。次の例は、CPU 使用率の平均が 24 時間にわたって 10 パーセント未満である場合、インスタン
スを停止する方法を示したものです。
•
コマンドプロンプトで、次のように入力します。
% aws cloudwatch put-metric-alarm --alarm-name my-Alarm --alarm-description
"Stop the instance when it is idle for a day" --namespace "AWS/EC2" --di
mensions Name=InstanceId,Value="i-abc123" --statistic Average --metric-name
CPUUtilization --comparison-operator LessThanThreshold --threshold 10 -period 21600 --evaluation-periods 4 --alarm-actions arn:aws:automate:useast-1:ec2:stop
CLI を使用してインスタンスを終了させるアラームを作成するには
•
コマンドプロンプトで、次のように入力します。
% aws cloudwatch put-metric-alarm --alarm-name my-Alarm --alarm-description
"Terminate the instance when it is idle for a day" --namespace "AWS/EC2"
--dimensions Name=InstanceId,Value="i-abc123" --statistic Average --metricname CPUUtilization --comparison-operator LessThanThreshold --threshold 1
--period 21600 --evaluation-periods 4 -- alarm-actions arn:aws:automate:useast-1:ec2:terminate
CLI を使用してインスタンスを再起動するアラームを作成するには
•
コマンドプロンプトで、次のように入力します。
484
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
% aws cloudwatch put-metric-alarm --alarm-name my-Alarm --alarm-description
"Reboot the instance" --namespace "AWS/EC2" --dimensions Name=In
stanceId,Value="i-abc123" --statistic Minimum --metric-name StatusCheck
Failed_Instance --comparison-operator GreaterThanThreshold --threshold 0 -period 60 --evaluation-periods 2 --alarm-actions arn:aws:swf:us-east1:{customer-account}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
CLI を使用してインスタンスを復旧するアラームを作成するには
•
コマンドプロンプトで、次のように入力します。
% aws cloudwatch put-metric-alarm --alarm-name my-Alarm --alarm-description
"Recover the instance" --namespace "AWS/EC2" --dimensions Name=In
stanceId,Value="i-abc123" --statistic Average --metric-name StatusCheck
Failed_System --comparison-operator GreaterThanThreshold --threshold 0 -period 60 --evaluation-periods 2 --alarm-actions arn:aws:automate:us-east1:ec2:recover
API を使用してインスタンスを停止するアラームを作成するには
次の例のリクエストは、Amazon EC2 インスタンスを停止させるアラームを作成する方法を示してい
ます。
•
http://monitoring.amazonaws.com/
?SignatureVersion=2
&Action=PutMetricAlarm
&Version=2009-05-15
&Namespace=AWS/EC2
&MetricName=CPUUtilization
&Dimension.member.1.Name=instance-id
&Dimension.member.1.Value=i-abc123
&Period=21600
&Statistic=Average
&AlarmName=Stop-EC2-Instance
&ComparisonOperator=LessThanThreshold
&Threshold=10
&EvaluationPeriods=4
&StartTime=2009-01-16T00:00:00
485
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
&EndTime=2009-01-16T00:02:00
&Timestamp=2009-01-08-18
&AWSAccessKeyId=XXX YOUR ACCESS KEY XXX
&Signature=%XXX YOUR SIGNATURE XXX%3D
&AlarmActions.member.1=arn:aws:automate:us-east-1:ec2:stop
API を使用してインスタンスを終了するアラームを作成するには
次のリクエストの例では、Amazon EC2 インスタンスを終了するアラームの作成方法を示します。
•
http://monitoring.amazonaws.com/
?SignatureVersion=2
&Action=PutMetricAlarm
&Version=2009-05-15
&Namespace=AWS/EC2
&MetricName=CPUUtilization
&Dimension.member.1.Name=instance-id
&Dimension.member.1.Value=i-abc123
&Period=21600
&Statistic=Average
&AlarmName=Terminate-EC2-Instance
&ComparisonOperator=LessThanThreshold
&Threshold=10
&EvaluationPeriods=4
&StartTime=2009-01-16T00:00:00
&EndTime=2009-01-16T00:02:00
&Timestamp=2009-01-08-18
&AWSAccessKeyId=XXX YOUR ACCESS KEY XXX
&Signature=%XXX YOUR SIGNATURE XXX%3D
&AlarmActions.member.1=arn:aws:automate:us-east-1:ec2:terminate
486
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
API を使用してインスタンスを再起動するアラームを作成するには
次のリクエストの例は、Amazon EC2 インスタンスを再起動するアラームの作成方法を示しています。
•
http://monitoring.amazonaws.com/
?SignatureVersion=2
&Action=PutMetricAlarm
&Version=2009-05-15
&Namespace=AWS/EC2
&MetricName=StatusCheckFailed_Instance
&Dimension.member.1.Name=instance-id
&Dimension.member.1.Value=i-abc123
&Period=60
&Statistic=Average
&AlarmName=Reboot-EC2-Instance
&ComparisonOperator=GreaterThanThreshold
&Threshold=0
&EvaluationPeriods=2
&StartTime=2009-01-16T00:00:00
&EndTime=2009-01-16T00:02:00
&Timestamp=2009-01-08-18
&AWSAccessKeyId=XXX YOUR ACCESS KEY XXX
&Signature=%XXX YOUR SIGNATURE XXX%3D
&AlarmActions.member.1=arn:aws:aws:swf:us-east-1:{customer-account}:action/ac
tions/AWS_EC2.InstanceId.Reboot/1.0
API を使用してインスタンスを復旧するアラームを作成するには
次のリクエストの例では、Amazon EC2 インスタンスを復旧するアラームの作成方法を示します。
•
http://monitoring.amazonaws.com/
?SignatureVersion=2
&Action=PutMetricAlarm
487
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
&Version=2009-05-15
&Namespace=AWS/EC2
&MetricName=StatusCheckFailed_System
&Dimension.member.1.Name=instance-id
&Dimension.member.1.Value=i-abc123
&Period=60
&Statistic=Average
&AlarmName=Terminate-EC2-Instance
&ComparisonOperator=GreaterThanThreshold
&Threshold=0
&EvaluationPeriods=2
&StartTime=2009-01-16T00:00:00
&EndTime=2009-01-16T00:02:00
&Timestamp=2009-01-08-18
&AWSAccessKeyId=XXX YOUR ACCESS KEY XXX
&Signature=%XXX YOUR SIGNATURE XXX%3D
&AlarmActions.member.1=arn:aws:automate:us-east-1:ec2:recover
Amazon CloudWatch のアラームアクションのシナリオ
Amazon Elastic Compute Cloud (Amazon EC2)コンソールを使用して、一定の条件が満たされたと
きに Amazon EC2 インスタンスを停止または終了させるアラームアクションを作成することができま
す。アラームアクションが設定する以下のコンソールページの画面キャプチャー内に、設定の順番を付
けました。また、アクションを適切に作成できるよう、次のシナリオの設定にも順番を付けました。
488
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
シナリオ 1: アイドル状態の開発インスタンスおよびテストインスタンスを停止
する
ソフトウェアの開発またはテストに使用するインスタンスが 1 時間以上アイドル状態である場合に停止
するアラームを作成します。
設
定
値
停止
最大
CPUUtilization
<=
10%
60 minutes
1
シナリオ 2: アイドル状態のインスタンスを停止する
インスタンスが 24 時間アイドル状態である場合、インスタンスを停止し、メールを送信するアラーム
を作成します。
489
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
設
定
値
Stop and email
平均
CPUUtilization
<=
5%
60 minutes
24
シナリオ 3: トラフィック量が異常に多いウェブサーバーについて E メールを
送信する
インスタンスの 1 日当たりのアウトバウンドネットワークトラフィックが 10 GB を超える場合にメー
ルを送信するアラームを作成します。
設
定
値
メール
合計
NetworkOut
>
10 GB
1日
1
490
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
シナリオ 4: 異常な高トラフィック状態のウェブサーバーを停止する
アウトバウンドトラフィックが 1 時間当たり 1 GB を超えた場合にインスタンスを停止し、テキスト
メッセージ(SMS)を送信するアラームを作成します。
設
定
値
Stop and send SMS
合計
NetworkOut
>
1 GB
1 時間
1
シナリオ 5: メモリリークが発生しているインスタンスを停止する
トラブルシューティングに使えるアプリケーションログを取得できるよう、メモリ使用率が 90% 以上
になった場合にインスタンスを停止するアラームを作成します。
Note
MemoryUtilization メトリックスはカスタムメトリックスです。MemoryUtilization メトリックス
を使用するには、Linux インスタンスの Perl スクリプトをインストールする必要があります。
詳細については、「Amazon EC2 Linux インスタンスのメモリとディスクのメトリックスのモ
ニタリング」を参照してください。
設
定
値
停止
最大
MemoryUtilization
>=
491
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
設
定
値
90%
1分
1
シナリオ 6: 障害のあるインスタンスを停止する
3 回連続で状態チェック(5 分間隔で実施)が不合格のインスタンスを停止するアラームを作成しま
す。
設
定
値
停止
平均
StatusCheckFailed_System
>=
1
15 分
1
シナリオ 7: バッチ処理ジョブの完了時にインスタンスを終了する
バッチジョブを実行するインスタンスが結果データを送信しなくなったときに、そのインスタンスを終
了するアラームを作成します。
設
定
値
削除
最大
NetworkOut
492
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスを停止、終了、再起動、または復旧するア
ラームを作成する
設
定
値
<=
100,000 bytes
5分
1
前述のシナリオは、Amazon CloudWatch コンソールでも実行することができます。Amazon EC2 コン
ソールの付番済みの設定および前に説明したシナリオに対応するように、このコンソールでの設定にも
番号を振りました。したがって、比較しながら、適切なアクションを伴うアラームを作成できます。
493
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
メモリとディスクのメトリックスのモニタリング
Amazon EC2 Linux インスタンスのメモリとディ
スクのメトリックスのモニタリング
Abstract
モニタリングスクリプトを使用して 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
Note
Amazon CloudWatch 標準の無料利用枠とカスタムメトリックスの利用料金が、これらのスク
リプトの使用に適用されます。詳細については、Amazon CloudWatch 料金表ページを参照し
てください。
Microsoft Windows を実行する Amazon EC2 インスタンスの EC2Config を使ってこのデータを
CloudWatch Logs に送信することにより、メモリとディスクメトリックスを モニタリングすることが
できます。 Microsoft Windows を実行する Amazon EC2 インスタンスで CloudWatch Logs の使用を開
始するには、『Microsoft Windows インスタンスの Amazon EC2 ユーザーガイド』の「CloudWatch へ
のパフォーマンスカウンタの送信と CloudWatch Logs へのログの送信」を参照してください。
目次
• 前提条件 (p. 495)
• ご利用開始にあたって (p. 496)
• mon-put-instance-data.pl (p. 497)
• mon-get-instance-stats.pl (p. 501)
• コンソールでのカスタムメトリックスの表示 (p. 502)
494
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
前提条件
前提条件
一部の 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.
2.
Amazon Linux AMI インスタンスにログインします。
コマンドプロンプトで以下のように入力し、次のパッケージをインストールします。
$ sudo yum install perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https
Red Hat Enterprise Linux
Red Hat Enterprise Linux を実行している場合は、スクリプトが動作していることをモニタリングする
ために、追加の Perl モジュールをいくつか追加する必要があります。サーバーを設定するには、次の
手順に従います。
スクリプトを初めてインストールする場合
1.
2.
Red Hat Enterprise Linux インスタンスにログオンします。
コマンドプロンプトで以下のように入力し、各パッケージをインストールします。
$ sudo yum install perl-DateTime perl-Sys-Syslog
$ sudo yum install zip unzip
$ sudo yum install perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https
perl-Digest-SHA -y
SUSE Linux Enterprise Server
SUSE Linux Enterprise Server を実行している場合は、スクリプトが動作していることをモニタリング
するために、追加の Perl モジュールをいくつか追加する必要があります。サーバーを設定するには、
次の手順に従います。
495
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ご利用開始にあたって
スクリプトを初めてインストールする場合
1.
SUSE Linux Enterprise Server インスタンスにログインします。
2.
コマンドプロンプトで以下のように入力し、各パッケージをインストールします。
$ sudo zypper install perl-DateTime
$ sudo zypper install –y "perl(LWP::Protocol::https)"
Ubuntu Server
Ubuntu Server を実行している場合は、以下の手順を実行してサーバーを設定してください。
スクリプトを初めてインストールする場合
1.
2.
Ubuntu Server インスタンスにログインします。
コマンドプロンプトで以下のように入力し、各パッケージをインストールします。
$ sudo apt-get update
$ sudo apt-get install unzip
$ sudo apt-get install libwww-perl libdatetime-perl
Amazon EC2 Linux インスタンスへの接続については、「Linux インスタンスへの接続 (p. 266)」を参照
してください。
ご利用開始にあたって
以下の手順では、EC2 Linux インスタンスで CloudWatch Monitoring Scripts のダウンロード、解凍、
構成を行う方法について示します。
スクリプトのダウンロード、インストール、設定を行うには
1.
コマンドプロンプトを開き、スクリプトの保存先となるフォルダーに移動し、以下を入力します。
curl http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoring
Scripts-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 を呼び出すことができます。
496
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
mon-put-instance-data.pl
• 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
3.
許可がない場合は、CloudWatch を操作する許可を持つ IAM ロールを新規作成し、新しいインスタ
ンスを起動する際にそのロールを関連付けることができます。詳細については、Controlling User
Access to Your AWS Account を参照してください。
オプション: IAM ロールを使用していない場合、先にダウンロードした awscreds.template ファ
イルを更新します。このファイルの中身は、次の形式を使用されているはずです。
AWSAccessKeyId=YourAccessKeyID
AWSSecretKey=YourSecretAccessKey
Note
既に認証情報用のファイルを作成している場合、この手順はオプションです。スクリプト
を呼び出す際、コマンドラインで場所を指定することで既存のファイルを使用できます。
もしくは、AWS 認証情報の付いたファイルを指す環境変数 AWS_CREDENTIAL_FILE を設
定することができます。
認証情報にアクセスする方法については、『IAM ユーザーガイド』の「ユーザーセキュリ
ティ認証情報の作成、修正、および閲覧」を参照してください。
mon-put-instance-data.pl
このスクリプトは、現行システムにあるメモリ、スワップ、ディスクスペースの使用状況のデータを収
集します。その後、Amazon CloudWatch へのリモート呼び出しを行って、収集したデータをカスタム
メトリックスとしてレポートします。
オプション
名前
説明
--mem-util
MemoryUtilization メトリックスをパーセント(%)単位で収集し、
送信します。このオプションは、アプリケーションとオペレーティ
ングシステムによって割り当てられたメモリのみをレポートしま
す。キャッシュとバッファにあるメモリは含まれません。
497
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
mon-put-instance-data.pl
名前
説明
--mem-used
メガバイト(MB)単位でレポートされる MemoryUsed メトリック
スを収集し、送信します。このオプションは、アプリケーションと
オペレーティングシステムによって割り当てられたメモリのみをレ
ポートします。キャッシュとバッファにあるメモリは含まれませ
ん。
--mem-avail
メガバイト(MB)単位でレポートされる MemoryAvailable メト
リックスを収集し、送信します。このオプションは、アプリケー
ションとオペレーティングシステムが使用できるメモリをレポート
します。
--swap-util
パーセント(%)単位でレポートされる SwapUtilization メトリッ
クスを収集し、送信します。
--swap-used
メガバイト(MB)単位でレポートされる SwapUsed メトリックス
を収集し、送信します。
--disk-path=PATH
レポートするディスクを選択します。
PATH では、マウントポイント、またはレポートが必要なファイル
システムのマウントポイントにあるファイルを指定できます。複数
のディスクを選択するには、それぞれに対して --disk-path=PATH
を指定します。
/ および /home にマウントされたファイルシステムのディスクを
選択するには、
--disk-path=/ --disk-path=/home パラメータを使用します。
--disk-space-util
選択したディスクについて、DiskSpaceUtilization メトリックスを
収集し送信します。メトリックスはパーセンテージでレポートされ
ます。
--disk-space-used
選択したディスクについて、DiskSpaceUsed メトリックスを収集
し送信します。メトリックスは、デフォルトにより、ギガバイトで
レポートされます。
Linux オペレーティングシステムには予約ディスクスペースがある
ため、使用済みディスクスペースと使用可能なディスクスペースを
合計しても正確なディスクスペースの合計にならないことがありま
す。
--disk-space-avail
選択したディスクについて、DiskSpaceAvailable メトリックスを収
集し送信します。メトリックスはギガバイトでレポートされます。
Linux オペレーティングシステムには予約ディスクスペースがある
ため、使用済みディスクスペースと使用可能なディスクスペースを
合計しても正確なディスクスペースの合計にならないことがありま
す。
--memory-units=UNITS
メモリ使用量をレポートする単位を指定します。指定がない場合、
メモリはメガバイト(MB)でレポートされます。UNITS は、バイ
ト(B)、キロバイト(KB)、メガバイト(MB)、ギガバイト
(GB)のいずれかになります。
--disk-space-units=UNITS ディスクスペース使用量をレポートする単位を指定します。指定が
ない場合、ディスクスペースはギガバイト(GB)でレポートされ
ます。UNITS は、バイト(B)、キロバイト(KB)、メガバイト
(MB)、ギガバイト(GB)のいずれかになります。
498
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
mon-put-instance-data.pl
名前
説明
--aws-credentialfile=PATH
AWS 認証情報を持っているファイルの場所を提供します。
このパラメータは、--aws-access-key-id および --aws-secretkey パラメータと一緒には使用できません。
--aws-access-key-id=VALUE 発信者を識別するために使用する AWS アクセスキー ID を指定し
ます。--aws-secret-key オプションと一緒に使用する必要があ
ります。このオプションを --aws-credential-file パラメータ
と一緒に使用しないでください。
--aws-secret-key=VALUE
CloudWatch へのリクエストの署名に使用する AWS シークレット
アクセスキーを指定します。--aws-access-key-id オプション
と一緒に使用する必要があります。このオプションを --aws-credential-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 からスクリプトを呼び出す際はこのオプションを使用します。
このオプションを使用すると、すべての診断出力が抑えられます
が、エラーメッセージがユーザーアカウントのローカルシステムロ
グに送信されます。
--verbose
スクリプトの実行内容の詳細を表示します。
--help
使用状況の情報を表示します。
--version
スクリプトのバージョン番号を表示します。
499
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
mon-put-instance-data.pl
例
次の例では、有効な AWS 認証情報を持つ awscreds.conf ファイルが更新済みであることを想定して
います。awscreds.conf ファイルを使用していない場合、引数 --aws-access-key-id および
--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 --auto-scal
ing=only
インスタンスタイプ、AMI ID、リージョンの集約されたメトリックスを収集し、個々のインス
タンスメトリックスをレポートすることなく Amazon CloudWatch に送信するには
•
次のコマンドを実行します。
./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --aggregated=only
500
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
mon-get-instance-stats.pl
mon-get-instance-stats.pl
このスクリプトは、直近の時間数を用いて、指定された時間間隔内で、メモリ、スワップ、ディスクス
ペースメトリックスの統計について CloudWatch に問い合わせます。このデータは、このスクリプトが
実行される Amazon EC2 インスタンスに関するものです。
オプション
名前
説明
--recent-hours=N
レポートする直近の時間数を N で表記して指定します。ここで N
は整数です。
--aws-credentialfile=PATH
AWS 認証情報を持っているファイルの場所を提供します。
--aws-access-key-id=VALUE 発信者を識別するために使用する AWS アクセスキー ID を指定し
ます。--aws-secret-key オプションと一緒に使用する必要があ
ります。このオプションを --aws-credential-file オプション
と併せて使用しないでください。
--aws-secret-key=VALUE
CloudWatch へのリクエストの署名に使用する AWS シークレット
アクセスキーを指定します。--aws-access-key-id オプション
と一緒に使用する必要があります。このオプションを --aws-credential-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
スクリプトのバージョン番号を表示します。
例
過去 12 時間の使用状況の統計を取得するには
•
次のコマンドを実行します。
501
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
コンソールでのカスタムメトリックスの表示
./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.
502
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ネットワークとセキュリティ
Abstract
Amazon EC2 のネットワーク機能とセキュリティ機能について説明します。
Amazon EC2 は以下のようなネットワーク機能とセキュリティ機能を提供します。
特徴
• Amazon EC2 のキーペア (p. 504)
• Linux インスタンスの Amazon EC2 セキュリティグループ (p. 514)
• Amazon EC2 のリソースに対するアクセスの制御 (p. 524)
• Amazon EC2 と Amazon Virtual Private Cloud (p. 578)
• Amazon EC2 インスタンスの IP アドレッシング (p. 607)
• Elastic IP アドレス (p. 619)
• Elastic Network Interface(ENI) (p. 626)
• プレイスメントグループ (p. 641)
• EC2 インスタンスの最大ネットワーク送信単位 (MTU) (p. 644)
• VPC 内の Linux インスタンスでの拡張ネットワーキングの有効化 (p. 648)
コマンドラインツールまたは API を使用して Amazon EC2 にアクセスする場合は、アクセスキー ID
とシークレットアクセスキーが必要です。詳細については、「How Do I Get Security Credentials?」
(『Amazon Web Services General Reference』)を参照してください。
インスタンスは、プラットフォーム EC2-Classic または EC2-VPC で起動できます。EC2-Classic に起
動されるインスタンスまたはデフォルト VPC には、パブリック IP アドレスが自動的に割り当てられま
す。デフォルト以外の VPC に起動されるインスタンスには、起動時にパブリック IP アドレスを割り当
てることができます。EC2-Classic と EC2-VPC に関する詳細は、「サポートされているプラットフォー
ム (p. 584)」を参照してください。
インスタンスは、制御不能な理由によりエラーを起こしたり終了したりすることがあります。インスタ
ンスが異常終了したために別のインスタンスを起動した場合は、そのインスタンスのパブリック IP ア
ドレスは元の IP アドレスとは異なります。ただし、アプリケーションが静的な IP アドレスを必要とす
る場合は、Elastic IP アドレスを使用できます。
セキュリティグループを使用すると、だれがインスタンスにアクセスできるかをコントロールできま
す。これは、着信ネットワークファイアウォール(どのプロトコル、ポート、ソース IP 範囲にインス
タンスへの到達を許可するかを指定する)に似ています。複数のセキュリティグループを作成してそれ
503
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
キーペア
ぞれに異なるルールを割り当てることもできます。その後で、各インスタンスを 1 つまたは複数のセ
キュリティグループに割り当てます。どのトラフィックが各インスタンスに到達できるかは、ルールを
使用して決定されます。セキュリティグループを設定することで、特定の IP アドレスや特定のセキュ
リティグループのみにインスタンスへのアクセスを許可することができます。
Amazon EC2 のキーペア
Abstract
パブリックキー暗号ペアを使用して、Amazon EC2 インスタンスのログイン情報の暗号化と復号を行います。
Amazon EC2 はパブリックキー暗号を使用して、ログイン情報の暗号化と復号を行います。パブリッ
クキー暗号はパブリックキーを使用してデータを暗号化し(パスワードなど)、受信者はプライベート
キーを使用してデータを復号します。パブリックキーとプライベートキーは、キーペアと呼ばれます。
インスタンスにログインするには、キーペアを作成し、インスタンスを起動するときにキーペアの名前
を指定して、インスタンスに接続するときにプライベートキーを指定する必要があります。Linux イン
スタンスにはパスワードがなく、キーペアを使用して SSH によってログインします。Windows インス
タンスでは、キーペアを使用して管理者パスワードを取得してから、RDP を使用してログインします。
キーペアを作成する
Amazon EC2 を使用してキーペアを作成できます。詳細については、「Amazon EC2 を使用してキー
ペアを作成する (p. 505)」を参照してください。
または、サードパーティ製のツールで、パブリックキーを Amazon EC2 にインポートすることもでき
ます。詳細については、「独自のキーペアを Amazon EC2 にインポートする (p. 506)」を参照してくだ
さい。
それぞれのキーペアには名前が必要です。覚えやすい名前を選択するようにしてください。Amazon
EC2 は、キー名として指定した名前にパブリックキーを関連付けます。
Amazon EC2 はパブリックキーのみを保存し、お客様はプライベートキーを保存します。お客様のプ
ライベートキーを持っていれば誰でもお客様のログイン情報を復号できるので、プライベートキーを安
全な場所に保存することが重要です。
Amazon EC2 が使用するキーは、2048-bit SSH-2 RSA キーです。リージョンあたり最大 5000 のキー
ペアを持つことができます。
インスタンスを起動し、接続する
インスタンスを起動するときは、インスタンスへの接続に使用するキーペアの名前を指定する必要があ
ります。インスタンスの起動時に既存のキーペアを指定しない場合、インスタンスに接続することはで
きません。インスタンスに接続するときは、インスタンスの起動時に指定したキーペアに対応するプラ
イベートキーを指定する必要があります。Amazon EC2 ではプライベートキーのコピーが保持されな
いため、プライベートキーを失った場合、復元することはできません。Instance store-Backed インス
タンスのプライベートキーを失った場合は、インスタンスにアクセスできなくなります。そのため、イ
ンスタンスを終了し、新しいキーペアを使用して、別のインスタンスを起動する必要があります。
EBS-Backed Linux インスタンスのプライベートキーを失った場合は、インスタンスへのアクセス権を
回復することができます。詳細については、プライベートキーを紛失した場合の Linux インスタンスへ
の接続 (p. 511) を参照してください。
複数ユーザー用のキーペア
単一のインスタンスにアクセスする複数のユーザーがいる場合、インスタンスにユーザーアカウントを
追加できます。詳細については、「Linux インスタンスでのユーザーアカウントの管理 (p. 302)」を参照
してください。各ユーザー用にキーペアを作成し、インスタンスの各ユーザー用の
.ssh/authorized_keys ファイルに各キーペアからのパブリックキー情報を追加できます。その後、
504
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 を使用してキーペアを作成する
ユーザーに対してプライベートキーファイルを配布できます。この方法では、ルートアカウント用に使
用しているプライベートキーファイルと同一のファイルを複数のユーザーに配布する必要はありませ
ん。
目次
• Amazon EC2 を使用してキーペアを作成する (p. 505)
• 独自のキーペアを Amazon EC2 にインポートする (p. 506)
• キーペアのパブリックキーを取得する(Linux) (p. 508)
• キーペアのパブリックキーを取得する(Windows) (p. 509)
• キーペアのフィンガープリントの確認 (p. 509)
• キーペアの削除 (p. 510)
• プライベートキーを紛失した場合の Linux インスタンスへの接続 (p. 511)
Amazon EC2 を使用してキーペアを作成する
Amazon EC2 コンソールまたはコマンドラインを使用して、キーペアを作成できます。キーペアを作
成すると、インスタンス起動時にこのキーペアを指定できます。 実行中のインスタンスにこのキーペ
アを追加すると、他のユーザーがインスタンスに接続できるようになります。 詳細については、「Linux
インスタンスでのユーザーアカウントの管理 (p. 302)」を参照してください。
コンソールを使用してキーペアを作成するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションバーで、キーペアを生成するリージョンを選択します。お客様は場所に関係なく、
使用できるリージョンをどれでも選択できます。この選択は重要です。複数の Amazon EC2 リソー
スはリージョン間で共有することができますが、キーペアの場合はそれができないからです。たと
えば、米国西部(オレゴンリージョン) でキーペアを作成した場合、そのキーペアは別のリージョ
ンで確認することも使用することもできません。
505
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
独自のキーペアを Amazon EC2 にインポートする
3.
ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。
Tip
ナビゲーションペインはコンソールの左側にあります。ペインが表示されない場合、最小
化されている可能性があります。矢印をクリックしてペインを展開します。
4.
5.
6.
[Create Key Pair] を選択します。
[Create Key Pair] ダイアログボックスの [Key pair name] フィールドに新しいキーペアの名前を入
力し、[Create] を選択します。
ブラウザによって秘密キーファイルが自動的にダウンロードされます。ベースファイル名はキーペ
アの名前として指定した名前となり、ファイル名の拡張子は .pem となります。プライベートキー
ファイルを安全な場所に保存します。
Important
これは、プライベートキーを保存する唯一のチャンスです。インスタンスと対応するプラ
イベートキーの起動時には、毎回インスタンスに接続するたびに、キーペアの名前を入力
する必要があります。
7.
Mac または Linux コンピュータの SSH クライアントを使用して Linux インスタンスに接続する場
合は、次のコマンドを使用してプライベートキーファイルの権限を設定すると、お客様以外のユー
ザーはそれを読み取ることができないようになります。
$ chmod 400 my-key-pair.pem
コマンドラインを使用してキーペアを作成するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• create-key-pair(AWS CLI)
• ec2-create-keypair(Amazon EC2 CLI)
• New-EC2KeyPair(AWS Tools for Windows PowerShell)
独自のキーペアを 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 で指定)
506
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
独自のキーペアを Amazon EC2 にインポートする
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 コンソールを使用してキーペアをインポートするには、次のステップを使用します。(必
要に応じて、ec2-import-keypair コマンドまたは ImportKeyPair アクションを使用してパブリックキー
をインポートできます)。
パブリックキーをインポートするには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションバーで、キーペアを生成するリージョンを選択します。キーペアリソースはリー
ジョン間で共有できないので、この選択は重要です。たとえば、キーペアを 米国西部(オレゴン
リージョン) にインポートした場合、別のリージョンでこのキーペアを表示または使用すること
はできません。
3.
ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。
4.
[Import Key Pair] を選択します。
507
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
キーペアのパブリックキーを取得する(Linux)
5.
[Import Key Pair] ダイアログボックスで [Browse] を選択し、前に保存したパブリックキーファイ
ルを選択します。[Key pair name] フィールドにキーペアの名前を入力し、[Import] を選択します。
パブリックキーファイルをインポートしたら、次のように Amazon EC2 コンソールを使用して、キー
ペアが正しくインポートされたかどうかを確認できます。(必要に応じて、ec2-describe-keypairs コマ
ンドまたは DescribeKeyPairs アクションを使用してキーペアをリストできます。)
キーペアがインポートされたことを確認するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションバーから、キーペアを作成したリージョンを選択します。
3.
4.
ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。
インポートしたキーペアが、表示されているキーペアのリストに含まれていることを確認します。
キーペアのパブリックキーを取得する(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
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
このコマンドが失敗した場合は、次のコマンドを実行して、自分だけがキーペアファイルを表示できる
ように、このファイルに対するアクセス許可を変更していることを確認してください。
$ chmod 400 my-key-pair.pem
508
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
キーペアのパブリックキーを取得する(Windows)
インスタンスの起動時に指定したパブリックキーも、そのインスタンスメタデータを介して表示できま
す。インスタンスの起動時に指定したパブリックキーを表示するには、インスタンスから次のコマンド
を使用します。
$ 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. 322)」を参照してください。
インスタンスへの接続に使用するキーペアを変更した場合、このページの最後のセクションに示すよう
に、インスタンスメタデータが更新されて新しいパブリックキーが表示されないので、ご注意くださ
い。インスタンスメタデータには、インスタンスの起動時に指定したキーペアのパブリックキーが引き
続き表示されます。
キーペアのパブリックキーを取得する(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. 322)」を参照してください。
キーペアのフィンガープリントの確認
Amazon EC2 コンソールの [Key Pair] ページで、[Fingerprint] 列にはキーペアから生成されたフィン
ガープリントが表示されます。AWS では、キーペアが AWS とサードパーティツールのいずれで生成
されたかによって、フィンガープリントの計算が異なります。AWS を使用してキーペアを作成した場
合、フィンガープリントは、SHA-1 ハッシュ関数を使用して計算されます。サードパーティツールに
よってキーペアを作成し、パブリックキーを AWS にアップロードした場合、または AWS で作成した
既存のプライベートキーから新しいパブリックキーを作成し、AWS にアップロードした場合、フィン
ガープリントは、MD5 ハッシュ関数を使用して計算されます。
[Key Pairs] ページに表示されるフィンガープリントを使用して、ローカルコンピュータにあるプライ
ベートキーが、AWS に格納されているパブリックキーと一致することを確認できます。
AWS を使用してキーペアを作成した場合、Amazon EC2 CLI で ec2-fingerprint-key コマンドを使用し
て、ローカルコンピュータのプライベートキーファイルからフィンガープリントを生成できます。出力
はコンソールに表示されるフィンガープリントと一致する必要があります。また、OpenSSL のツール
を使用して、プライベートキーファイルからフィンガープリントを生成することもできます。
509
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
キーペアの削除
$ 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.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。
キーペアを選択し、[Delete] を選択します。
プロンプトが表示されたら、[Yes] を選択します。
コマンドラインを使用してキーペアを削除するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• delete-key-pair(AWS CLI)
• ec2-delete-keypair(Amazon EC2 CLI)
• Remove-EC2KeyPair(AWS Tools for Windows PowerShell)
Note
インスタンスから Linux AMI を作成し、AMI を使用して別のリージョンまたはアカウントの新
しいインスタンスを起動すると、新しいインスタンスには元のインスタンスからのパブリック
キーが含まれます。これにより、元のインスタンスと同じプライベートキーファイルを使用し
て新しいインスタンスに接続できます。インスタンスからこのパブリックキーを削除するに
は、任意のテキストエディターを使用して、.ssh/authorized_keys ファイルからそのエン
トリを削除します。インスタンスでのユーザーの管理、特定のキーペアを使用したリモートア
510
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プライベートキーを紛失した場合の Linux インスタンスへ
の接続
クセス権の付与については、「Linux インスタンスでのユーザーアカウントの管理 (p. 302)」を
参照してください。
プライベートキーを紛失した場合の Linux インスタ
ンスへの接続
EBS-Backed インスタンスのプライベートキーを失った場合は、インスタンスへのアクセス権を回復す
ることができます。インスタンスを停止し、そのルートボリュームをデタッチし、データボリュームと
して別のインスタンスにアタッチし、authorized_keys ファイルを変更して、ボリュームを元のイン
スタンスに戻し、インスタンスを再起動する必要があります。インスタンスの起動、接続、および停止
の詳細については、インスタンスのライフサイクル (p. 251) を参照してください。
この手順は、instance store-backed インスタンスではサポートされません。インスタンスのルートデバ
イスタイプを判断するには、Amazon EC2 コンソールを開き、[Instances] を選択してインスタンスを
選択し、詳細ペインで [Root device type] の値をチェックします。この値は ebs または instance
store のどちらかです。ルートデバイスがインスタンスストアボリュームである場合、インスタンス
に接続するにはプライベートキーが必要です。
前提条件
Amazon EC2 コンソールまたはサードパーティ製のツールで、新しいキーペアを作成します。
別のキーペアを使用して EBS-Backed インスタンスに接続するには
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Instances] を選択し、接続先にするインスタンスを選択します(このイ
ンスタンスを「元のインスタンス」と呼びます)。
この手順を完了するために必要となる以下の情報を控えておきます。
• 元のインスタンスのインスタンス ID(i-xxxxxxxx)、AMI ID(ami-xxxxxxxx)、およびアベイラ
ビリティーゾーンを書き留めます。
• 詳細ペインの [Block devices] で sda1(ルートボリューム)のエントリを選択し、[EBS ID] フィー
ルドのボリューム ID(vol-xxxxxxxx)を書き留めます。
• [EC2-Classic] 元のインスタンスに Elastic IP アドレスが関連付けられている場合は、詳細ペイン
の [Elastic IP] フィールドに表示される Elastic IP アドレスを書き留めます。
4.
[Actions] を選択して [Instance State] を選択し、[Stop] を選択します。[Stop] が無効になっている
場合は、インスタンスが既に停止しているか、またはルートボリュームがインスタンスストアボ
リュームです。
Warning
インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されます。
したがって、インスタンスストアボリューム上に維持したいデータがある場合は、必ず永
続的ストレージにバックアップしてください。
5.
[Launch Instance] を選択し、起動ウィザードを使用して、以下のオプションで一時インスタンス
を起動します。
• [Choose an AMI] ページで、元のインスタンスを起動するのに使用したのと同じ AMI を選択しま
す。その AMI を使用できない場合は、停止したインスタンスから使用可能な AMI を作成できま
す。詳細については、「Amazon EBS-Backed Linux AMI の作成 (p. 93)」を参照してください。
511
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プライベートキーを紛失した場合の Linux インスタンスへ
の接続
• [Choose an Instance Type] ページで、ウィザードによって自動的に選択されたデフォルトのイ
ンスタンスタイプをそのままにします。
• [Configure Instance Details] ページで、接続するインスタンスと同じアベイラビリティゾーンを
指定します。VPC のインスタンスを起動する場合、このアベイラビリティゾーンのサブネット
を選択します。
• [Tag Instance] ページで、一時インスタンスであることを示すために、インスタンスに
Name=Temporary タグを追加します。
• [Review] ページで、[Launch] を選択します。新しいキーペアを作成し、コンピューター上の安
全な場所にダウンロードして、[Launch Instances] を選択します。
6.
ナビゲーションペインで [Volumes] を選択し、元のインスタンスのルートデバイスボリュームを選
択します(前のステップでそのボリューム ID を書き留めました)。[Actions] を選択し、次に
[Detach Volume] を選択します。ボリュームの状態が available になるまで待ちます([Refresh]
アイコンを選択しなければならない場合があります)。
7.
ボリュームを選択したまま [Actions] を選択し、次に [Attach Volume] を選択します。一時インスタ
ンスのインスタンス ID を選択し、[Device] で指定したデバイス名(/dev/sdf など)を書き留め
て、[Yes, Attach] を選択します。
一時インスタンスに接続します。
一時インスタンスから、そのファイルシステムにアクセスできるように、インスタンスにアタッチ
したボリュームをマウントします。たとえば、デバイス名が /dev/sdf の場合、次のコマンドを
使用してボリュームを /mnt/tempvol としてマウントします。
8.
9.
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 はパーティション分割されていません。ボリュームがパーティション分割さ
れている場合は、次のステップで raw デバイス(/dev/xvdf)の代わりにパーティション
(/dev/xvdf1)をマウントします。
b.
ボリュームをマウントするための一時ディレクトリを作成します。
[ec2-user ~]$ sudo mkdir /mnt/tempvol
c.
以前に特定したデバイス名またはボリューム名を使用して、一時マウントポイントにボリュー
ム(またはパーティション)をマウントします。
512
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プライベートキーを紛失した場合の Linux インスタンスへ
の接続
[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/author
ized_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/author
ized_keys
11. 一時インスタンスから、元のインスタンスに再アタッチできるように、アタッチしたボリュームを
アンマウントします。たとえば、/mnt/tempvol のボリュームをアンマウントするには、次のコ
マンドを使用します。
[ec2-user ~]$ sudo umount /mnt/tempvol
12. Amazon EC2 コンソールから、書き留めたボリューム ID を持つボリュームを選択して、[Actions]
を選択し、[Detach Volume] を選択します。ボリュームの状態が available になるまで待ちます
([Refresh] アイコンを選択しなければならない場合があります)。
13. ボリュームを選択したまま [Actions] を選択し、次に [Attach Volume] を選択します。元のインスタ
ンスのインスタンス ID を選択し、デバイス名 /dev/sda1 を指定して、[Yes, Attach] を選択しま
す。
513
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループ
Warning
sda1 をデバイス名として指定しない場合、元のインスタンスを起動することはできませ
ん。これは、Amazon EC2 では sda1 のルートデバイスボリュームが想定されているため
です。
14. 元のインスタンスを選択し、[Actions] を選択して [Instance State] を選択した後、[Start] を選択し
ます。インスタンスが running 状態になったら、新しいキーペアのプライベートキーファイルを
使用して、そのインスタンスに接続できます。
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 セキュリティ
グループ
Abstract
1 つ以上のインスタンスのトラフィックを制御するファイアウォールとして、セキュリティグループとセキュリティ
グループルールを使用します。
セキュリティグループは、1 つ以上のインスタンスのトラフィックを制御する仮想ファイアウォールと
して機能します。インスタンスを起動するときに、1 つ以上のセキュリティグループとインスタンスを
関連付けます。各セキュリティグループに対してルールを追加し、関連付けられたインスタンスに対す
るトラフィックを許可します。セキュリティグループルールはいつでも変更できます。新しいルール
は、セキュリティグループに関連付けられているインスタンスすべてに自動的に適用されます。インス
タンスに到達できるトラフィックを許可するかどうかの判断では、インスタンスに関連付けられている
すべてのセキュリティグループのすべてのルールが評価されます。
Windows インスタンスへのトラフィックを許可する必要がある場合は、『Microsoft Windows インスタ
ンスの Amazon EC2 ユーザーガイド』の「Windows インスタンスの Amazon EC2 セキュリティグルー
プ」を参照してください。
トピック
• EC2-Classic 用セキュリティグループ (p. 515)
• EC2-VPC 用セキュリティグループ (p. 515)
• セキュリティグループのルール (p. 516)
• デフォルトのセキュリティグループ (p. 518)
• カスタムのセキュリティグループ (p. 518)
• セキュリティグループを作成する (p. 519)
• セキュリティグループについて説明する (p. 520)
• セキュリティグループへのルールの追加 (p. 520)
• ルールの削除(セキュリティグループから) (p. 522)
514
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic 用セキュリティグループ
• セキュリティグループの削除 (p. 522)
• API とコマンドの概要 (p. 522)
お客様の要件がセキュリティグループでは満たされない場合は、セキュリティグループを使用した上
で、どのインスタンスでも、お客様独自のファイアウォールを維持できます。
EC2-Classic 用セキュリティグループ
EC2-Classic を使用している場合は、EC2-Classic 用に作成したセキュリティグループを使用する必要
があります。EC2-Classic でインスタンスを起動する場合は、インスタンスと同じリージョンのセキュ
リティグループを指定する必要があります。EC2-Classic でインスタンスを起動する場合は、VPC 用に
作成したセキュリティグループは指定できません。
EC2-Classic でインスタンスを起動した後でセキュリティグループを変更することはできません。ただ
し、セキュリティグループルールの追加または削除は可能です。これらの変更は、セキュリティグルー
プに関連付けられているすべてのインスタンスに自動的に適用されます。
Note
EC2-Classic では、1 つのインスタンスを最大 500 のセキュリティグループと関連付けること
ができ、また 1 つのセキュリティグループには最大 100 のルールを追加できます。
EC2-VPC 用セキュリティグループ
EC2-VPC を使用している場合は、VPC 用に作成したセキュリティグループを使用する必要がありま
す。VPC でインスタンスを起動する場合は、その VPC 用のセキュリティグループを指定する必要があ
ります。VPC でインスタンスを起動する場合は、EC2-Classic 用に作成したセキュリティグループは指
定できません。
VPC でインスタンスを起動した後、そのセキュリティグループを変更することができます。セキュリ
ティグループはネットワークインターフェイスに関連付けられます。 インスタンスのセキュリティグ
ループの変更は、プライマリネットワークインターフェイス(eth0)に関連付けられるセキュリティグ
ループを変更することになります。 詳細については、Amazon VPC ユーザーガイド の Changing an
Instance's Security Groups を参照してください。あらゆるネットワークインターフェイスに関連付け
られているセキュリティグループも変更できます。 詳細については、「Elastic Network Interface のセ
キュリティグループを変更する (p. 637)」を参照してください。
セキュリティグループルールは変更でき、この変更はセキュリティグループに関連付けられているすべ
てのインスタンスに自動的に適用されます。
Note
EC2-VPC では、1 つのインスタンスを最大 5 つのセキュリティグループと関連付けることが
でき、また 1 つのセキュリティグループには最大 50 のルールを追加できます。
CLI または API アクションに対して、デフォルト以外の VPC 用のセキュリティグループを指定する場
合、セキュリティグループ名ではなくセキュリティグループ ID を使用して、セキュリティグループを
識別する必要があります。
セキュリティグループを識別する EC2-VPC のセキュリティグループには追加の機能がありますが、こ
の機能は EC2-Classic のセキュリティグループではサポートされていません。EC2-VPC のセキュリ
ティグループの詳細については、Amazon VPC ユーザーガイド の「VPC のセキュリティグループ」と
「EC2-Classic と EC2-VPC のセキュリティグループの違い」を参照してください。
515
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループのルール
セキュリティグループのルール
セキュリティグループのルールは、セキュリティグループに関連付けられたインスタンスに到達するこ
とを許可されるインバウンドトラフィックと、外に向かうことを許可されるアウトバウンドトラフィッ
クを制御します。
セキュリティグループのルールの特徴を次に示します。
• デフォルトで、セキュリティグループはすべてのアウトバウンドトラフィックを許可します。
• セキュリティグループのルールは常にパーミッシブです。アクセスを拒否するルールを作成すること
はできません。
• ルールの追加と削除は随時行うことができます。EC2-Classic のアウトバウンドルールは変更できま
せん。Amazon EC2 コンソールを使用する場合、既存のルールを変更することができ、既存のセキュ
リティグループから新しいセキュリティグループにルールをコピーすることもできます。
• ルールを追加または削除すると、トラフィックの接続追跡に応じて短時間が経過した後、変更はセ
キュリティグループに関連付けられたインスタンスに自動的に適用されます。詳細については、「接
続追跡 (p. 517)」を参照してください。
• セキュリティグループはステートフルです。インスタンスからリクエストを送信する場合、そのリク
エストのレスポンストラフィックは、インバウンドセキュリティグループルールにかかわらず、流れ
ることができます。つまり、VPC セキュリティグループの場合、アウトバウンドルールにかかわら
ず、許可されたインバウンドトラフィックは流れることができます。詳細については、「接続追
跡 (p. 517)」を参照してください。
Note
インスタンス (ホスト A) がホスト B へのトラフィックを開始し、TCP、UDP、または ICMP
以外のプロトコルを使用する場合、インスタンスのファイアウォールは、ホスト B からのレ
スポンストラフィックを許可するために、IP アドレスとプロトコル番号の追跡のみを行いま
す。ホスト B が元のリクエストまたはレスポンスの 600 秒以内に別のリクエストでインスタ
ンスへのトラフィックを開始する場合、これはレスポンストラフィックと見なされるため、
インスタンスはインバウンドセキュリティグループルールにかかわらずそれを受け入れま
す。VPC セキュリティグループの場合、セキュリティグループのアウトバウンドルールを変
更して、特定のタイプのアウトバウンドトラフィックのみを許可することで、これを制御で
きます。または、サブネット用にネットワーク ACL を使用できます。ネットワーク ACL は
ステートレスであり、レスポンストラフィックを自動的に許可しません。詳しくは、『Amazon
VPC ユーザーガイド』の「ネットワーク ACL」を参照してください。
ルールごとに、以下の点について指定します。
• 許可するプロトコル (TCP、UDP、ICMP など)
• TCP および UDP、またはカスタムプロトコル: 許可するポートの範囲
• ICMP: ICMP タイプおよびコード
• 1 つのオプション、または送信元(インバウンドルール)または送信先(アウトバウンドルール)の
以下のオプション:
• 個別の IP アドレス(CIDR 表記)。IP アドレスの後には必ず /32 プレフィックスを付けてくださ
い。IP アドレスの後に /0 プレフィックスを付けると、ポートがすべてのユーザーに開放されま
す。たとえば、IP アドレス 203.0.113.1 は 203.0.113.1/32 のように指定します。
• CIDR 表記の IP アドレスの範囲(たとえば、203.0.113.0/24)。
• セキュリティグループの名前(EC2-Classic)または ID (EC2-Classic または EC2-VPC)。これ
により、指定セキュリティグループに関連付けられたインスタンスから、このセキュリティグルー
プに関連付けられたインスタンスへのアクセスが許可されます。(その際、送信元セキュリティグ
ループからこのセキュリティグループにルールが追加されることはありません。)以下のセキュリ
ティグループの 1 つを指定できます:
516
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループのルール
• 現在のセキュリティグループ。
• EC2-Classic: 同じリージョンの EC2-Classic の異なるセキュリティグループ
• EC2-VPC: 同じ VPC の異なるセキュリティグループ
• EC2-Classic: 同じリージョンの別の AWS アカウントのセキュリティグループ(AWS アカウン
ト ID をプレフィックスとして追加。たとえば、111122223333/sg-edcd9784)
ルールの送信元または送信先としてセキュリティグループを指定する場合、ルールはセキュリティグ
ループと関連付けられるすべてのインスタンスに影響します。着信トラフィックは、ソースセキュリ
ティグループに関連付けられたインスタンスのプライベート IP アドレスに基づいて許可されます(パ
ブリック IP アドレスまたは Elastic IP アドレスは考慮されません)。IP アドレスについては、Amazon
EC2 インスタンスの IP アドレッシング (p. 607) を参照してください。
特定のポートに複数のルールがある場合、最も許容度の大きいルールを適用します。たとえば、IP ア
ドレス 203.0.113.1 からの TCP ポート 22(SSH)に対するアクセスを許可するルールがあり、全員
からの TCP ポート 22 に対するアクセスを許可する別のルールがある場合、全員が TCP ポート 22 に
アクセスできます。
複数のセキュリティグループをインスタンスに関連付けると、各セキュリティグループのルールが効率
的に集約され、1 つのルールセットが作成されます。このルールセットを使用して、アクセスを許可す
るかどうかを判断します。
Caution
複数のセキュリティグループを 1 つのインスタンスに割り当てることができるため、インスタ
ンスには数百単位のルールを適用できます。結果として、インスタンスにアクセスするときに
問題が発生する可能性があります。そのため、ルールは可能な限り要約することをお勧めしま
す。
セキュリティグループルールの作成により、パス MTU 検出を正しく機能させる方法の詳細について
は、「パス MTU 検出 (p. 645)」を参照してください。
接続追跡
セキュリティグループは、接続追跡を使用してインスタンスを出入りするトラフィックに関する情報を
追跡します。ルールはトラフィックの接続の状態に基づいて適用され、トラフィックを許可するか拒否
するかが判断されます。これによって、セキュリティグループはステートフルになり、セキュリティグ
ループのアウトバウンドルールにかかわらず、インバウンドトラフィックへの応答がインスタンスから
外に流れることが許されます。逆も同じです。たとえば、自宅のコンピュータからインスタンスへの
ICMP ping コマンドを開始した場合、セキュリティグループのインバウンドルールが ICMP トラフィッ
クを許可している場合は接続に関する情報 (ポート情報など) が追跡されます。ping コマンドに対する
インスタンスからの応答トラフィックは、新しいリクエストではなく確立済みの接続として追跡され、
セキュリティグループのアウトバウンドルールがアウトバウンド ICMP トラフィックを制限している場
合でも、インタンスから外に流れることが許されます。
すべてのトラフィックフローが追跡されるわけではありません。セキュリティグループのルールが、す
べてのトラフィック (0.0.0.0/0) について TCP または UDP フローを許可していて、他の方向で対応す
るルールがある場合、そのトラフィックフローは追跡されません。そのため、応答トラフィックは追跡
情報に基づくのではなく、応答トラフィックを許可するインバウンドまたはアウトバウンドのルールに
基づいて流れることができます。
追跡されている既存のトラフィックフローは、そのフローを有効にするセキュリティグループルールを
削除しても中断されないことがあります。その代わり、ユーザーまたは他のホストによって少なくとも
数分間 (または TCP 接続の場合は最大 5 日間) 停止されると、フローは中断されます。UDP の場合、
このためにフローのリモート側でのアクションを終了する必要があることがあります。追跡されていな
いトラフィックフローは、そのフローを有効にするルールが削除または変更されるとすぐに中断されま
517
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
デフォルトのセキュリティグループ
す。たとえば、インスタンスへのすべてのインバウンド SSH トラフィック (0.0.0.0/0) を許可するルー
ルを削除すると、そのインスタンスへの既存の SSH 接続がすぐに削除されます。
セキュリティグループルールを削除したとき、トラフィックがすぐに中断されるようにする場合は、サ
ブネットのネットワーク ACL を使用できます。ネットワーク ACL はステートレスであるため、応答ト
ラフィックを自動的に許可しません。詳しくは、『Amazon VPC ユーザーガイド』の「ネットワーク
ACL」を参照してください。
デフォルトのセキュリティグループ
AWS アカウントには、EC2-Classic のリージョンごとにデフォルトのセキュリティグループが自動的
に設定されます。VPC を作成する場合、VPC のデフォルトセキュリティグループが自動的に作成され
ます。インスタンスを起動するときに別のセキュリティグループを指定しないと、そのインスタンスは
適切なデフォルトのセキュリティグループに自動的に関連付けられます。
デフォルトのセキュリティグループには default と名前が付けられ、AWS によって ID が割り当てら
れます。デフォルトのセキュリティグループごとの初期設定を次に示します。
• デフォルトのセキュリティグループと関連付けられている他のインスタンスからのインバウンドトラ
フィックのみを許可する
• インスタンスからのすべてのアウトバウンドトラフィックが許可されます
デフォルトのセキュリティグループは、それ自体を、そのインバウンドルール内の送信元セキュリティ
グループとして指定します。これは、デフォルトのセキュリティグループと関連付けられているインス
タンスが、デフォルトのセキュリティグループと関連付けられている他のインスタンスと通信すること
を許可するものです。
デフォルトのセキュリティグループルールは変更できます。たとえば、特定のホストがインスタンスを
管理できるように、SSH 接続を許可するインバウンドルールを追加できます。
デフォルトのセキュリティグループを削除することはできません。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 サーバーま
たはデータベースサーバー)を反映させることができます。Web サーバーまたはデータベースサーバー
のセキュリティグループを作成する手順については、Amazon VPC ユーザーガイド の「Recommended
Security Groups」を参照してください。
Note
EC2-Classic では、アカウントごとに各リージョンに最大 500 個のセキュリティグループを作
成できます。EC2-VPC では、VPC ごとに最大 500 個のセキュリティグループを作成できま
す。EC2-VPC のセキュリティグループ制限に対して、EC2-Classic のセキュリティグループ数
はカウントされません。
セキュリティグループを作成する場合、名前と説明を指定する必要があります。セキュリティグループ
には、255 文字以下の名前と説明を指定できます。また、次の特徴の制限があります。
• EC2-Classic: ASCII 文字
518
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループを作成する
• EC2-VPC: a-z、A-Z、0-9、スペース、およびピリオド(.)_-:/()#,@[]+=&;{}!$*
AWS は各セキュリティグループに sg-xxxxxxxx の形式で一意の ID を割り当てます。作成するセキュリ
ティグループの初期設定を次に示します。
• 着信トラフィックを許可しない
• すべての発信トラフィックを許可する
セキュリティグループを作成したら、関連するインスタンスに到達できる着信トラフィックのタイプを
反映するように着信ルールを変更できます。EC2-VPC では、アウトバウンドルールも変更できます。
同じセキュリティグループのインスタンスが相互に通信できるようにするには、そのためのルールを明
示的に追加する必要があります。次の表は、EC2-Classic のインスタンスの相互通信を許可するため
に、セキュリティグループに追加する必要のあるルールを示します。
インバウンド
送信元
プロトコル
ポート範囲
コメント
セキュリティグループの ID
ICMP
すべて
このセキュリティグループに関連付
けられている他のインスタンスから
のインバウンド ICMP アクセスを許
可する
セキュリティグループの ID
TCP
0 – 65535
このセキュリティグループに関連付
けられている他のインスタンスから
のインバウンド TCP アクセスを許可
する
セキュリティグループの ID
UDP
0 – 65535
このセキュリティグループに関連付
けられている他のインスタンスから
のインバウンド UDP アクセスを許可
する
次の表は、VPC のインスタンスの相互通信を許可するために、セキュリティグループに追加する必要
のあるルールを示します。
インバウンド
送信元
プロトコル
ポート範囲
コメント
セキュリティグループの ID
すべて
すべて
このセキュリティグループに関連付
けられている他のインスタンスから
のインバウンドトラフィックを許可
する
セキュリティグループを作成する
新しいセキュリティグループを作成するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Security Groups] を選択します。
3.
[Create Security Group] を選択します。
519
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループについて説明する
4.
5.
セキュリティグループの名前と説明を指定します。[VPC] の場合、[No VPC] を選択して、EC2-Classic
のセキュリティグループを作成します。その VPC のセキュリティグループを作成するには、VPC
ID を選択します。
ルールの追加を開始するか、[Create] を選択して、セキュリティグループを作成できます(ルール
は後で追加できます)。ルールの追加の詳細については、セキュリティグループへのルールの追
加 (p. 520) を参照してください。
セキュリティグループをコピーするには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[Security Groups] を選択します。
コピーするセキュリティグループを選択します。[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.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Security Groups] を選択します。
フィルタリストから [Network Platforms] を選択し、[EC2-Classic] を選択します。
セキュリティグループを選択します。[Description] タブには一般情報が、[Inbound] タブにはイン
バウンドルールが表示されます。
EC2-VPC のセキュリティグループについて説明するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Security Groups] を選択します。
3.
4.
フィルタリストから [Network Platforms] を選択し、[EC2-VPC] を選択します。
セキュリティグループを選択します。[Description] タブには一般情報が、[Inbound] タブにはイン
バウンドルールが、[Outbound] タブにはアウトバウンドルールが表示されます。
セキュリティグループへのルールの追加
ルールをセキュリティグループに追加すると、セキュリティグループに関連付けられているすべてのイ
ンスタンスに新しいルールが自動的に適用されます。
セキュリティグループにルールを追加するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
520
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
セキュリティグループへのルールの追加
2.
3.
4.
ナビゲーションペインで、[Security Groups] を選択します。
セキュリティグループを選択します。
Web サーバーを許可して、すべての HTTP および HTTPS インバウンドトラフィックを受信しま
す。[Inbound ] タブで、[Edit] を選択します。 ダイアログで、[Add Rule] を選択します。[Type] リ
ストから [HTTP] を選択し、ソースを [Anywhere] のままにしておきます(0.0.0.0/0)。HTTPS
プロトコルに類似のルールを追加します。
5.
Linux インスタンスに接続するには、SSH を許可する必要があります。[Add Rule] を選択し、[Type]
リストから [SSH] を選択します。
[Source] フィールドで、コンピュータのパブリック IP アドレスを CIDR 表記で指定します。たと
えば、IP アドレスが 203.0.113.25 の場合、この単一の IP アドレスを CIDR 表記でリストする
には 203.0.113.25/32 と指定します。会社が特定の範囲からアドレスを割り当てている場合、
範囲全体(203.0.113.0/24など)を指定します。[Source] リストから [My IP] を選択すると、お
使いのコンピュータの IP アドレスが自動的にフィールドに入力されます。ただし、ISP 経由で、
またはファイアウォールの内側から静的な IP アドレスなしで接続している場合は、クライアント
コンピュータで使用されている IP アドレスの範囲を見つける必要があります。
Caution
0.0.0.0/0 を使用すると、すべての IP アドレスから SSH を使用してインスタンスにア
クセスすることが許可されます。これはテスト環境で短時間なら許容できますが、実稼働
環境で行うのは安全ではありません。実稼働環境では、特定の IP アドレスまたは特定の
アドレス範囲にのみ、インスタンスへのアクセスを限定します。
6.
このセキュリティグループに関連付けられているすべてのインスタンス間、または他のセキュリ
ティグループに関連付けたインスタンスとこのセキュリティグループに関連付けられたインスタン
ス間の通信を許可できます。[Add Rule] を選択し、[All ICMP] を選択して、[Source] にセキュリ
ティグループの ID を入力し始めると、セキュリティグループのリストが表示されます。リストか
らセキュリティグループを選択します。TCP と UDP プロトコルの手順を繰り返します。完了した
ら、[Save] を選択します。
521
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ルールの削除(セキュリティグループから)
7.
VPC のセキュリティグループを作成する場合は、アウトバウンドルールも指定できます。例につ
いては、Amazon VPC ユーザーガイドの「Adding and Removing Rules」を参照してください。
ルールの削除(セキュリティグループから)
セキュリティグループからルールを削除すると、その変更内容が自動的にセキュリティグループに関連
付けられているインスタンスに適用されます。
セキュリティグループルールを削除するには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Security Groups] を選択します。
セキュリティグループを選択します。
[Edit] を選択し、削除する各ルールの隣にある [Delete] (クロスアイコン) を選択します。
[Save] を選択します。
セキュリティグループの削除
インスタンスに関連付けられているセキュリティグループを削除することはできません。デフォルトセ
キュリティグループを削除することはできません。他のセキュリティグループのルールによって参照さ
れているセキュリティグループは削除できません。セキュリティグループが独自のいずれかのルールで
参照されている場合は、セキュリティグループを削除する前に、まずルールを削除する必要がありま
す。
セキュリティグループを削除するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[Security Groups] を選択します。
セキュリティグループを選択し、[Delete] を選択します。
4.
[Yes, Delete] を選択します。
API とコマンドの概要
このページで説明しているタスクは、コマンドラインまたは API を使用して実行できます。コマンド
ラインインターフェイスの詳細および利用できる API の一覧については、「Amazon EC2 へのアクセ
ス (p. 3)」を参照してください。
522
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
API とコマンドの概要
セキュリティグループの作成
• create-security-group(AWS CLI)
• ec2-create-group(Amazon EC2 CLI)
• New-EC2SecurityGroup(AWS Tools for Windows PowerShell)
1 つ以上の Ingress ルールをセキュリティグループに追加する
• authorize-security-group-ingress(AWS CLI)
• ec2-authorize(Amazon EC2 CLI)
• Grant-EC2SecurityGroupIngress(AWS Tools for Windows PowerShell)
[EC2-VPC] 1 つ以上の Egress ルールをセキュリティグループに追加する
• authorize-security-group-egress(AWS CLI)
• ec2-authorize(Amazon EC2 CLI)
• Grant-EC2SecurityGroupIngress(AWS Tools for Windows PowerShell)
1 つまたは複数のセキュリティグループについて説明する
• describe-security-groups(AWS CLI)
• ec2-describe-group(Amazon EC2 CLI)
• Get-EC2SecurityGroup(AWS Tools for Windows PowerShell)
[EC2-VPC] インスタンスのセキュリティグループを変更する
• modify-instance-attribute(AWS CLI)
• ec2-modify-instance-attribute(Amazon EC2 CLI)
• Edit-EC2InstanceAttribute(AWS Tools for Windows PowerShell)
セキュリティグループから 1 つ以上の Ingress ルールを削除する
• revoke-security-group-ingress(AWS CLI)
• ec2-revoke(Amazon EC2 CLI)
• Revoke-EC2SecurityGroupIngress(AWS Tools for Windows PowerShell)
[EC2-VPC] 1 つ以上の Egress ルールをセキュリティグループから削除する
• revoke-security-group-egress(AWS CLI)
• ec2-revoke(Amazon EC2 CLI)
• Revoke-EC2SecurityGroupEgress(AWS Tools for Windows PowerShell)
セキュリティグループを削除する
• delete-security-group(AWS CLI)
• ec2-delete-group(Amazon EC2 CLI)
• Remove-EC2SecurityGroup(AWS Tools for Windows PowerShell)
523
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
アクセスの制御
Amazon EC2 のリソースに対するアクセスの制御
Abstract
セキュリティグループを設定し、IAM. を使用して、Amazon EC2 リソースへのアクセスを制御します。
セキュリティ認証情報により、AWS のサービスに対してお客様の身分が証明され、Amazon EC2 リ
ソースなどの AWS リソースを無制限に使用できる許可が与えられます。Amazon EC2 および AWS
Identity and Access Management(IAM)の機能を使用して、その他のユーザー、サービス、およびア
プリケーションがお客様の Amazon EC2 のリソースを使用できるようにします。その際、お客様のセ
キュリティ認証情報は共有されません。他のユーザーが AWS アカウント内のリソースをどのように使
用するかを制御するには IAM を、Amazon EC2 インスタンスへのアクセスを制御するにはセキュリティ
グループを使用できます。Amazon EC2 のリソースの完全使用または制限付き使用のどちらを許可す
るか選択できます。
目次
•
•
•
•
•
•
インスタンスへのネットワークアクセス (p. 524)
Amazon EC2 のアクセス許可属性 (p. 524)
IAM と Amazon EC2 (p. 524)
Amazon EC2 の IAM ポリシー (p. 526)
Amazon EC2 の IAM ロール (p. 570)
Linux インスタンス用の受信トラフィックの認可 (p. 576)
インスタンスへのネットワークアクセス
セキュリティグループは、1 つ以上のインスタンスに到達できるトラフィックを制御するファイアウォー
ルとして機能します。インスタンスを起動するときに、そのインスタンスに 1 つまたは複数のセキュリ
ティグループを割り当てることができます。セキュリティグループのそれぞれに、そのインスタンスへ
のトラフィックを制御するルールを追加できます。セキュリティグループルールはいつでも変更できま
す。新しいルールは、そのセキュリティグループが割り当てられているインスタンスすべてに自動的に
適用されます。
詳細については、「Linux インスタンス用の受信トラフィックの認可 (p. 576)」を参照してください。
Amazon EC2 のアクセス許可属性
お客様の組織には複数の AWS アカウントがある場合があります。Amazon EC2 では、Amazon マシン
イメージ(AMI)および Amazon EBS スナップショットを使用できる追加の AWS アカウントを指定で
きます。このアクセス許可は AWS アカウントレベルでのみ有効です。特定の AWS アカウント内の特
定ユーザーのアクセス許可を制限することはできません。指定した AWS アカウントのすべてのユー
ザーが、AMI またはスナップショットを使用できます。
AMI ごとに LaunchPermission 属性があり、AMI にアクセスできる AWS アカウントを制御します。
詳細については、「AMI を一般公開する (p. 80)」を参照してください。
Amazon EBS スナップショットごとに createVolumePermission 属性があり、スナップショットを
使用できる AWS アカウントを制御します。詳細については、「Amazon EBS スナップショットの共
有 (p. 715)」を参照してください。
IAM と Amazon EC2
IAM を使って以下を行えます。
524
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM と Amazon EC2
• お客様の 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.
2.
3.
4.
AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/
iam/)を開きます。
ナビゲーションペインで、[Groups]、[Create New Group] の順に選択します。
[Group Name] ボックスにグループの名前を入力し、[Next Step] を選択します。
[Attach Policy] ページで、AWS 管理ポリシーを選択します。たとえば、Amazon EC2 では以下の
AWS 管理ポリシーのいずれかが、ニーズを満たす場合があります。
• PowerUserAccess
• ReadOnlyAccess
• AmazonEC2FullAccess
• AmazonEC2ReadOnlyAccess
5.
[Next Step]、[Create Group] の順に選択します。
新しいグループは、[Group Name] の下に表示されます。
IAM ユーザーを作成するには、グループにユーザーを追加し、ユーザーのパスワードを作成し
ます。
1.
ナビゲーションペインで [Users] を選択し、続いて [Create New Users] を選択します。
2.
[1] ボックスにユーザー名を入力し、[Create] を選択します。
3.
[Download Credentials] を選択し、アクセスキーを安全な場所に保存します。アクセスキーは、
AWS CLI、AWS SDK、HTTP API のいずれかを使用してプログラムから AWS にアクセスするた
めに必要です。
525
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
Note
この手順の完了後はシークレットアクセスキーを取得できません。置き場所を忘れた場合
は、新しく作成しなければなりません。
4.
アクセスキーをダウンロードしたら、[Close] を選択します。
[User Name] で、作成したユーザー名を選択します。
5.
6.
7.
[Groups] タブで、[Add User to Groups] を選択します。
先ほど作成したグループを選択し、[Add to Groups] を選択します。
[Security Credentials]、[Manage Password] の順に選択します。
8.
[Assign a custom password] を選択し、パスワードを入力して、確認します。完了したら、[Apply]
を選択します。
ユーザーごとに認証情報(アクセスキーとパスワード)を与えます。これにより、ユーザーは IAM
グループ用に指定したアクセス許可に基づいてサービスを使用できるようになります。
9.
関連トピック
IAM の詳細については、以下を参照してください。
•
•
•
•
Amazon EC2 の IAM ポリシー (p. 526)
Amazon EC2 の IAM ロール (p. 570)
Identity and Access Management (IAM)
IAM ユーザーガイド
Amazon EC2 の IAM ポリシー
Abstract
IAM ユーザーが、どの Amazon EC2 リソースを表示、作成、および変更できるようにするかを制御します。
デフォルトでは、IAM ユーザーには Amazon EC2 リソースを作成または変更、または Amazon EC2
API を使用するタスクを実行する権限がありません。(つまり、Amazon EC2 コンソールまたは CLI
を使用して実行することもできません。)IAM ユーザーがリソースを作成または変更、およびタスクを
実行できるようにするには、IAM ポリシーを作成する必要があります。これによって、必要な特定のリ
ソースおよび API アクションを使用するためのアクセス許可を IAM ユーザーに付与し、その後、ポリ
シーをそのアクセス許可が必要な IAM ユーザーまたはグループにアタッチします。
ポリシーをユーザーまたはユーザーのグループにアタッチする場合、ポリシーによって特定リソースの
特定タスクを実行するユーザーの権限が許可または拒否されます。IAM ポリシーの一般的な情報につい
ては、IAM ユーザーガイド の「Permissions and Policies」を参照してください。カスタム IAM ポリ
シーの管理と作成の詳細については、「IAM ポリシーの管理」を参照してください。
はじめに
IAM ポリシーは、1 つ以上の Amazon EC2 アクションを使用するアクセス許可を付与または拒否する
必要があります。さらに、このアクションで使用できるリソース(すべてのリソースか、場合によって
は特定のリソース)も指定する必要があります。このポリシーには、リソースに適用する条件も含める
ことができます。
Amazon EC2 では、リソースレベルのアクセス許可が部分的にサポートされます。これは、一部の EC2
API アクションでは、ユーザーがそのアクションに使用できるリソースを指定できないことを意味しま
す。代わりに、ユーザーがそのアクションにすべてのリソースを使用することを許可する必要がありま
す。
526
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
タスク
トピック
ポリシーの基本構造について
ポリシー構文 (p. 527)
ポリシーでのアクションの定義
Amazon EC2 のアクション (p. 528)
ポリシーでの特定のリソースの定義
Amazon EC2 用の Amazon リソースネーム (p. 528)
リソースの使用への条件の適用
Amazon EC2 の条件キー (p. 531)
Amazon EC2 での使用可能なリソースレベルのア Amazon EC2 API アクションでサポートされるリ
クセス許可の使用
ソースレベルのアクセス許可 (p. 534)
ポリシーのテスト
ユーザーが必要なアクセス許可を持っているかど
うかを確認する (p. 533)
CLI または SDK のサンプルポリシー
AWS CLI、Amazon EC2 CLI、または AWS SDK
で使用するサンプルポリシー (p. 548)
Amazon EC2 コンソールのサンプルポリシー
Amazon EC2 コンソールで機能するサンプル ポリ
シー (p. 559)
ポリシーの構造
Abstract
Amazon EC2 へのアクセスを制御するための IAM ポリシーの構造について説明します。
次のトピックでは、IAM ポリシーの簡単な構造について説明します。
トピック
• ポリシー構文 (p. 527)
• Amazon EC2 のアクション (p. 528)
• Amazon EC2 用の Amazon リソースネーム (p. 528)
• Amazon EC2 の条件キー (p. 531)
• ユーザーが必要なアクセス許可を持っているかどうかを確認する (p. 533)
ポリシー構文
IAM ポリシーは 1 つ以上のステートメントで構成される JSON ドキュメントです。各ステートメント
は次のように構成されます。
{
"Statement":[{
"Effect":"effect",
"Action":"action",
"Resource":"arn",
"Condition":{
"condition":{
"key":"value"
}
}
}
]
}
527
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
ステートメントはさまざまなエレメントで構成されます。
• [Effect]: effect は、Allow または Deny にすることができます。デフォルトでは、IAM ユーザーはリ
ソースおよび API アクションを使用するアクセス許可がないため、リクエストはすべて拒否されま
す。明示的な許可はデフォルトに優先します。明示的な拒否はすべての許可に優先します。
• [Action]: action は、アクセス許可を付与または拒否する対象とする、特定の API アクションです。
action の指定については、Amazon EC2 のアクション (p. 528) を参照してください。
• [Resource]: アクションによって影響を及ぼされるリソースです。Amazon EC2 API アクションの中
には、アクションによって作成/変更できるリソースをポリシー内で特定できるものもあります。ス
テートメント内でリソースを指定するには、Amazon リソースネーム(ARN)を使用する必要があり
ます。arn 値の指定については、Amazon EC2 用の Amazon リソースネーム (p. 528) を参照してくだ
さい。どの API がどの ARN をサポートするかについては、Amazon EC2 API アクションでサポート
されるリソースレベルのアクセス許可 (p. 534) を参照してください。API アクションが ARN をサポー
トしていない場合は、* ワイルドカードを使用すると、アクションがすべてのリソースに影響するよ
うに指定できます。
• [Condition]: condition はオプションです。ポリシーの発効条件を指定するために使用します。Amazon
EC2 の条件を指定する方法については、Amazon EC2 の条件キー (p. 531) を参照してください。
Amazon EC2 の IAM ポリシーステートメント例については、AWS CLI、Amazon EC2 CLI、または
AWS SDK で使用するサンプルポリシー (p. 548) を参照してください。
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 を使用して指定したリソースに適用されます。
Important
現時点では、すべての API アクションが個々の ARN をサポートしているわけではありません。
今後、Amazon EC2 リソースに対する API アクションおよび ARN のサポートを追加していき
ます。どの Amazon EC2 API アクションでどの ARN を使用できるかについて、また各 ARN
でサポートされる条件キーについては、Amazon EC2 API アクションでサポートされるリソー
スレベルのアクセス許可 (p. 534) を参照してください。
528
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
ARN には以下の一般的な構文があります。
arn:aws:[service]:[region]:[account]:resourceType/resourcePath
service
サービス(例: ec2)。
リージョン
リソースのリージョン(例: us-east-1)。
アカウント
ハイフンなしの AWS アカウント ID(例: 123456789012)。
resourceType
リソースの種類(例: instance)。
resourcePath
リソースを識別するパス。パスにワイルドカードの * が使用できます。
たとえば、以下の要領で ARN を使用して、ステートメント内で特定のインスタンス(i-1a2b3c4d)
を指定することができます。
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1a2b3c4d"
また、特定のアカウントに属するすべてのインスタンスを指定するには、以下の要領で * ワイルドカー
ドを使用します。
"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 が入ります
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 は使用
されません
529
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
リソースタイプ
ARN
インスタンス
arn:aws:ec2:region:account:instance/instance-id
instance-id には i-xxxxxxxx が入ります
インスタンスプロファイル
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-group-name
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 が入り、account は使用されませ
ん
サブネット
arn:aws:ec2:region:account:subnet/subnet-id
subnet-id には subnet-xxxxxxxx が入ります
ボリューム
arn:aws:ec2:region:account:volume/volume-id
volume-id には vol-xxxxxxxx が入ります
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 です。
530
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
Amazon EC2 API アクションの多くが複数のリソースと関連します。たとえば、AttachVolume では
Amazon EBS ボリュームをインスタンスにアタッチするため、IAM ユーザーはボリュームおよびイン
スタンスを使用するアクセス許可が必要です。単一のステートメントに複数のリソースを指定するに
は、以下のようにコンマで ARN を区切ります。
"Resource": ["arn1", "arn2"]
ARN の一般的な情報については、Amazon Web Services General Reference の 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 条件タイ
プを使用して、条件キーが適用されないリソースに対して無視されるようにする必要がありま
す。詳細については、『IAM ユーザーガイド』の「...IfExists 条件」を参照してください。
条件キー
キー/値のペア
評価の種類
ec2:AccepterVpc
"ec2:AccepterVpc":"vpc-arn"
ARN、Null
このとき、vpc-arn はピア VPC の VPC ARN です。
ec2:AvailabilityZone
"ec2:AvailabilityZone":"az-api-name"
az-api-name にはアベイラビリティーゾーン名が入ります
(例: us-west-2a)。
アベイラビリティーゾーンを一覧表示するには、ec2-describe-availability-zones を使用します。
531
文字列、Null
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
条件キー
キー/値のペア
評価の種類
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 にはインスタンスタイプの名前(
t1.micro | m1.small | m1.medium | m1.large |
m1.xlarge | c1.medium | c1.xlarge | m2.xlarge |
m2.2xlarge | m2.4xlarge | hi1.4xlarge | cc1.4xlarge
| cg1.4xlarge | cc2.8xlarge )が入ります
ec2:Owner
"ec2:Owner":"account-id"
文字列、Null
account-id には amazon | aws-marketplace | aws-accountid が入ります
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"
ブール値、Null
AMI の public-flag は true | false です
ec2:Region
"ec2:Region":"region-name"
文字列、Null
region-name にはリージョン名が入ります(例: us-west2)リージョンを一覧表示するには、ec2-describe-regions
を使用します。
ec2:RequesterVpc "ec2:RequesterVpc":"vpc-arn"
このとき、vpc-arn はリクエスタの VPC の VPC ARN です。
532
ARN、Null
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
条件キー
キー/値のペア
評価の種類
ec2:Re"ec2:ResourceTag/tag-key":"tag-value"
sourceTag/tag-key
tag-key と tag-value にはタグとキーのペアが入ります
ec2:RootDeviceType
"ec2:RootDeviceType":"root-device-type-name"
文字列、Null
文字列、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 が入ります
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、
マグネティック Amazon EBS ボリュームの場合は standard、または Provisioned IOPS SSD ボリュームの場合は
io1 です。
ec2:Vpc
"ec2:Vpc":"vpc-arn"
ARN、Null
vpc-arn には VPC ARN が入ります
アクションごとに、どの Amazon EC2 リソースでどの条件キーが使用できるかについては、Amazon
EC2 API アクションでサポートされるリソースレベルのアクセス許可 (p. 534) を参照してください。
Amazon EC2 のポリシーステートメントの例については、AWS CLI、Amazon EC2 CLI、または AWS
SDK で使用するサンプルポリシー (p. 548) を参照してください。
ユーザーが必要なアクセス許可を持っているかどうかを確認する
IAM ポリシーを作成したら、ポリシーを本稼働環境に置く前に、そのポリシーがユーザーに特定の API
アクションおよび必要なリソースを使用するアクセス許可を付与しているかどうかを確認することをお
勧めします。
まずテスト目的の IAM ユーザーを作成し、作成した IAM ポリシーをテストユーザーにアタッチしま
す。次に、テストユーザーとしてリクエストを作成します。
テストしているアクションがリソースを変更する場合、DryRun パラメーターを使用してリクエストを
作成する(または、--auth-dry-run オプションで CLI を実行する)必要があります。この場合、発
信者は認証チェックを行いますが、操作は完了しません。たとえば、実際に終了させることなく、ユー
ザーが特定のインスタンスを終了できるかどうかを確認できます。テストユーザーに必要なアクセス許
可がある場合、リクエストで DryRunOperation が返されます。必要なアクセス許可がない場合は
UnauthorizedOperation が返されます。
533
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
ポリシーが想定したアクセス許可をユーザーに付与していない場合、または過度に許可されている場
合、必要に応じてポリシーを調整し、必要な結果を得るまで再テストできます。
Important
ポリシーの変更が反映され、有効になるには数分間かかります。したがって、ポリシーの更新
をテストするには 5 分かかると見ておいてください。
認証チェックが失敗した場合、リクエストでは診断情報でエンコードされたメッセージが返されます。
DecodeAuthorizationMessage アクションを使用してメッセージをデコードできます。詳細につい
ては、「AWS Security Token Service API リファレンス」の「DecodeAuthorizationMessage」、およ
び「AWS Command Line Interface Reference」の「decode-authorization-message」を参照してくださ
い。
Amazon EC2 API アクションでサポートされるリソースレベル
のアクセス許可
Abstract
現在リソースレベルのアクセス許可をサポートしている Amazon EC2 API アクションについて説明します。
リソースレベルのアクセス許可とは、ユーザーがアクションを実行可能なリソースを指定できることを
意味します。Amazon EC2 では、リソースレベルのアクセス許可が部分的にサポートされます。これ
は、特定の Amazon EC2 アクションでは、満たす必要がある条件、またはユーザーが使用できる特定
のリソースに基づいて、ユーザーがそれらのアクションをいつ使用できるかを制御できることを意味し
ます。たとえば、特定の AMI のみを使用して、特定のタイプのインスタンスだけを起動するアクセス
許可をユーザーに付与できます。
次の表では、現在リソースレベルのアクセス許可をサポートしている Amazon EC2 API アクションと、
サポートされるリソースとその ARN、および各アクションの条件キーについて説明していますARN の
指定時、正確なリソース ID を指定できない(したくない)場合などに、パスに * ワイルドカードを使
用できます。ワイルドカードの使用例については、「AWS CLI、Amazon EC2 CLI、または AWS SDK
で使用するサンプルポリシー (p. 548)」を参照してください。
Important
Amazon EC2 API アクションがこの表に示されていない場合、リソースレベルのアクセス許可
をサポートしていません。Amazon EC2 API アクションでリソースレベルのアクセス許可がサ
ポートされない場合、アクションを使用するアクセス許可をユーザーに付与できますが、ポリ
シーステートメントのリソース要素として * を指定する必要があります。これを行う方法の例
については、「1: 読み取り専用アクセス (p. 548)」を参照してください。サポートされるアク
ション、ARN、および条件キーは、今後さらに追加される予定です。リソースレベルのアクセ
ス許可を現在サポートしていない Amazon EC2 API アクションのリストについては、『Amazon
EC2 API Reference』の「サポートされていないリソースレベルのアクセス許可」を参照して
ください。
534
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
API アクション
リソース
条件キー
AcceptVpcPeeringConnection
VPC ピア接続
ec2:AccepterVpc
arn:aws:ec2:region:account:vpc-peering- ec2:Region
connection/*
ec2:ResourceTag/tag-key
arn:aws:ec2:region:account:vpc-peeringec2:RequesterVpc
connection/vpc-peering-connection-id
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
535
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
セキュリティグループ
ec2:Region
arn:aws:ec2:region:account:securitygroup/*
ec2:ResourceTag/tag-key
ec2:Vpc
arn:aws:ec2:region:account:securitygroup/security-group-id
AuthorizeSecurityGroup- セキュリティグループ
Ingress
arn:aws:ec2:region:account:securitygroup/*
ec2:Region
ec2:ResourceTag/tag-key
ec2:Vpc
arn:aws:ec2:region:account:securitygroup/security-group-id
536
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
API アクション
リソース
条件キー
CreateVpcPeeringConnection
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 で
す。
VPC ピア接続
ec2:AccepterVpc
arn:aws:ec2:region:account:vpc-peering- ec2:Region
connection/*
ec2:RequesterVpc
DeleteCustomerGateway
カスタマーゲートウェイ
ec2:Region
arn:aws:ec2:region:account:customergateway/*
ec2:ResourceTag/tag-key
arn:aws:ec2:region:account:customergateway/cgw-id
DeleteDhcpOptions
DHCP オプションセット
ec2:Region
arn:aws:ec2:region:account:dhcp-options/*
ec2:ResourceTag/tag-key
arn:aws:ec2:region:account:dhcp-options/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:network-acl/* ec2:ResourceTag/tag-key
DeleteNetworkAclEntry
arn:aws:ec2:region:account:networkacl/nacl-id
ec2:Vpc
ネットワーク ACL
ec2:Region
arn:aws:ec2:region:account:network-acl/* ec2:ResourceTag/tag-key
DeleteRoute
arn:aws:ec2:region:account:networkacl/nacl-id
ec2:Vpc
ルートテーブル
ec2:Region
arn:aws:ec2:region:account:route-table/* ec2:ResourceTag/tag-key
arn:aws:ec2:region:account:routetable/route-table-id
537
ec2:Vpc
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
API アクション
リソース
条件キー
DeleteRouteTable
ルートテーブル
ec2:Region
arn:aws:ec2:region:account:route-table/* ec2:ResourceTag/tag-key
DeleteSecurityGroup
arn:aws:ec2:region:account:routetable/route-table-id
ec2:Vpc
セキュリティグループ
ec2:Region
arn:aws:ec2:region:account:securitygroup/security-group-id
ec2:ResourceTag/tag-key
ec2:Vpc
DeleteVolume
ボリューム
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
DeleteVpcPeeringConnection
VPC ピア接続
ec2:AccepterVpc
arn:aws:ec2:region:account:vpc-peering- ec2:Region
connection/*
ec2:ResourceTag/tag-key
arn:aws:ec2:region:account:vpc-peeringec2:RequesterVpc
connection/vpc-peering-connection-id
DetachClassicLinkVpc
インスタンス
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
538
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
539
ec2:Region
ec2:ResourceTag/tag-key
ec2:Tenancy
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
API アクション
リソース
条件キー
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:vpc-peering- ec2:Region
connection/*
ec2:ResourceTag/tag-key
arn:aws:ec2:region:account:vpc-peeringec2:RequesterVpc
connection/vpc-peering-connection-id
RevokeSecurityGroupEgress
セキュリティグループ
ec2:Region
arn:aws:ec2:region:account:securitygroup/*
ec2:ResourceTag/tag-key
ec2:Vpc
arn:aws:ec2:region:account:securitygroup/security-group-id
RevokeSecurityGroupIn- セキュリティグループ
gress
arn:aws:ec2:region:account:securitygroup/*
ec2:Region
ec2:ResourceTag/tag-key
ec2:Vpc
arn:aws:ec2:region:account:securitygroup/security-group-id
540
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:key-pair/keypair-name
ネットワークインターフェイス
ec2:AvailabilityZone
arn:aws:ec2:region:account:network-inter- ec2:Region
face/*
ec2:Subnet
arn:aws:ec2:region:account:network-interec2:ResourceTag/tag-key
face/eni-id
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
ec2:Vpc
arn:aws:ec2:region:account:securitygroup/security-group-id
541
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/sub- ec2:ResourceTag/tag-key
net-id
ec2:Vpc
ボリューム
ec2:AvailabilityZone
arn:aws:ec2:region:account:volume/*
ec2:ParentSnapshot
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
542
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 アクションを使用するために必
要な最小限のリソースを以下の表に示します。
543
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
起動のタイプ
必要なリソース
instance store-backed AMI を使 arn:aws:ec2:region:account:in用した EC2-Classic への起動
stance/*
条件キー
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:security-group/* (または特定のセ
キュリティグループ ID)
ec2:Region
ec2:ResourceTag/tag-key
ec2:Vpc
544
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
起動のタイプ
必要なリソース
条件キー
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
arn:aws:ec2:region:account:security-group/* (または特定のセ
キュリティグループ ID)
ec2:Region
ec2:ResourceTag/tag-key
ec2:Vpc
arn:aws:ec2:region:account:volume/*
ec2:AvailabilityZone
ec2:ParentSnapshot
ec2:Region
ec2:VolumeIops
ec2:VolumeSize
ec2:VolumeType
545
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
起動のタイプ
必要なリソース
instance store-backed AMI を使 arn:aws:ec2:region:account:in用した VPC への起動
stance/*
条件キー
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:security-group/* (または特定のセ
キュリティグループ ID)
ec2:Region
ec2:ResourceTag/tag-key
ec2:Vpc
arn:aws:ec2:region:account:net- ec2:AvailabilityZone
work-interface/* (または特定の
ネットワークインターフェイス ec2:Region
ID)
ec2:Subnet
ec2:ResourceTag/tag-key
ec2:Vpc
arn:aws:ec2:region:account:sub- ec2:AvailabilityZone
net/* (または特定のサブネット
ec2:Region
ID)
ec2:ResourceTag/tag-key
ec2:Vpc
546
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
起動のタイプ
必要なリソース
条件キー
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:security-group/* (または特定のセ
キュリティグループ ID)
ec2:Region
ec2:ResourceTag/tag-key
ec2:Vpc
arn:aws:ec2:region:account:net- ec2:AvailabilityZone
work-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/* (または特定のサブネット
ID)
547
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
起動のタイプ
必要なリソース
条件キー
ec2:AvailabilityZone
ec2:Region
ec2:ResourceTag/tag-key
ec2:Vpc
インスタンスを起動するために必要はないものの、ポリシーでキーペアリソースを指定することをお勧
めします。キーペアなしでインスタンスに接続することはできません。ec2:RunInstances アクショ
ンでのリソースレベルのアクセス権限の使用例については、「4: インスタンスを起動する
(RunInstances) (p. 551)」を参照してください。
Amazon EC2 のリソースレベルのアクセス許可の詳細については、AWS セキュリティブログの投稿
「Demystifying EC2 Resource-Level Permissions」を参照してください。
AWS CLI、Amazon EC2 CLI、または AWS SDK で使用するサ
ンプルポリシー
Abstract
IAM ユーザーの Amazon EC2 に対するアクセス許可を制御するポリシーステートメントの作成について説明しま
す。
以下の例では、Amazon EC2 に対して IAM ユーザーが所有するアクセス許可を制御するために使用で
きるポリシーステートメントを示しています。これらのポリシーは、AWS CLI、Amazon EC2 CLI、ま
たは AWS SDK で行われたリクエスト向けに設計されています。Amazon EC2 コンソールで機能する
ポリシーの例については、「Amazon EC2 コンソールで機能するサンプル ポリシー (p. 559)」を参照し
てください。Amazon VPC 固有の IAM ポリシーの例については、「Amazon VPC リソースへのアクセ
スの制御」を参照してください。
•
•
•
•
•
•
1: 読み取り専用アクセス (p. 548)
2: インスタンスの使用 (p. 549)
3. ボリュームを操作する (p. 550)
4: インスタンスを起動する (RunInstances) (p. 551)
5. ClassicLink を使用する (p. 555)
6. リザーブドインスタンスを使用する (p. 558)
Example 1: 読み取り専用アクセス
次のポリシーでは、名前が Describe で始まるすべての Amazon EC2 API アクションを使用できるア
クセス許可をユーザーに与えます。Resource エレメントにワイルドカードを使用します。これは、
ユーザーが API アクションですべてのリソースを指定できることを示します。また、API アクションが
リソースレベルのアクセス許可をサポートしていない場合も、* ワイルドカードが必要です。どの
Amazon EC2 API アクションでどの ARN を使用できるかについては、Amazon EC2 API アクションで
サポートされるリソースレベルのアクセス許可 (p. 534) を参照してください。
デフォルトで API アクションを使用するアクセス許可が拒否されているため、ユーザーには(別のス
テートメントでアクセス許可が与えられない限り)そのリソースに対してアクションを実行するアクセ
ス許可がありません。
548
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
}
]
}
Example 2: インスタンスの使用
a: すべてのインスタンスを記述、起動、停止、開始、および終了する
次のポリシーでは、Action エレメントで指定された API アクションを使用するアクセス許可をユー
ザーに与えます。Resource エレメントでは * ワイルドカードを使用して、ユーザーが API アクション
ですべてのリソースを指定できることを示します。また、API アクションがリソースレベルのアクセス
許可をサポートしていない場合も、* ワイルドカードが必要です。どの Amazon EC2 API アクションで
どの ARN を使用できるかについては、Amazon EC2 API アクションでサポートされるリソースレベル
のアクセス許可 (p. 534) を参照してください。
ユーザーはデフォルトで API アクションを使用するアクセス許可を拒否されているため、ユーザーに
は(別のステートメントでユーザーにそのアクセス許可を与えない限り)その他の API アクションを
使用するアクセス許可がありません。
{
"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-123abc12 と i-4c3b2a1 インスタンスのみを開
始および停止し、米国東部(バージニア北部リージョン)(us-east-1)内でリソースタグ
"purpose=test" の付いたインスタンスのみを終了する許可をユーザーに与えます。
最初のステートメントでは、Resource エレメントに * ワイルドカードを使用して、ユーザーがそのア
クションにすべてのリソースを指定できることを示しています。この場合、すべてのインスタンスをリ
ストできます。また、API アクションがリソースレベルのアクセス許可をサポートしていない場合も、
* ワイルドカードが必要です(この場合は、ec2:DescribeInstances)。どの Amazon EC2 API ア
クションでどの ARN を使用できるかについては、Amazon EC2 API アクションでサポートされるリ
ソースレベルのアクセス許可 (p. 534) を参照してください。
2 番目のステートメントでは、StopInstances および StartInstances アクションに対してリソー
スレベルのアクセス許可を使用しています。Resource エレメント内で、ARN によって特定のインス
タンスが指定されています。
549
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
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-123abc12",
"arn:aws:ec2:us-east-1:123456789012:instance/i-4c3b2a1"
]
},
{
"Effect": "Allow",
"Action": "ec2:TerminateInstances",
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/purpose": "test"
}
}
}
]
}
Example 3. ボリュームを操作する
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": [
550
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
"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}"
}
}
}
]
}
Example 4: インスタンスを起動する (RunInstances)
RunInstances API アクションでは、1 つ以上のインスタンスを起動します。RunInstances は AMI を
必要とし、インスタンスを作成します。ユーザーは、リクエスト内でキーペアとセキュリティグループ
を指定できます。EC2-VPC 内に起動するにはサブネットが必要であり、起動されるとネットワークイ
ンターフェイスが作成されます。Amazon EBS-Backed AMI から起動すると、ボリュームが作成されま
す。そのため、ユーザーにはこれらの Amazon EC2 リソースを使用するアクセス許可が必要です。発
信者は、インスタンスタイプおよびサブネットなどの RunInstances に対してオプションのパラメー
ターを使用して、インスタンスを設定することもできます。ユーザーがオプションのパラメーターを指
定する必要がある、またはユーザーからパラメーターの特定の値を制限するポリシーステートメントを
作成できます。このセクションの例では、ユーザーが起動できるインスタンスの設定を制御できるさま
ざまな方法について説明します。
デフォルトでは、ユーザーに作成したインスタンスを記述、開始、停止、または終了するアクセス許可
はありません。作成したインスタンスを管理するアクセス許可をユーザーに付与する 1 つの方法として
は、インスタンスごとに特定のタグを作成し、そのタグでインスタンスを管理できるようにステートメ
ントを作成します。詳細については、「2: インスタンスの使用 (p. 549)」を参照してください。
[a. AMI]
次のポリシーでは、インスタンスに関連付けられた特定のタグ「department=dev」のある AMI のみ
を使用して、インスタンスを起動できます。最初のステートメントの Condition エレメントはユー
ザーがこのタグのある AMI を指定している必要があるため、ユーザーがその他の AMI を使用してイン
スタンスを起動することはできません。また、このポリシーはサブネットとネットワークインターフェ
イスリソースへのアクセス許可を与えていないため、ユーザーはサブネットに起動することができませ
ん。ただし、EC2-Classic に起動することはできます。2 番目のステートメントではワイルドカードを
使用してユーザーがインスタンスリソースを作成できるようにしており、ユーザーはキーペア
project_keypair およびセキュリティグループ sg-1a2b3c4d を指定する必要があります。ただし、
ユーザーはキーペアがなくてもインスタンスを起動できます。
551
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
{
"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"
]
}
]
}
また、次のポリシーでは、ユーザーが指定された 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 を使用してインスタンスを起動することはできません。ユーザーは、
インスタンスをサブネットに起動することができます。
552
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
{
"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]
次のポリシーにより、ユーザーは 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/*",
553
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
"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/*",
"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/*",
554
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
"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",
"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 5. ClassicLink を使用する
ClassicLink で VPC を有効にし、EC2-Classic インスタンスと VPC にリンクできます。ClassicLink が
有効な VPC と、VPC にリンクされたすべての EC2-Classic インスタンスを表示することもできます。
ec2:EnableVpcClassicLink、ec2:DisableVpcClassicLink、ec2:AttachClassicLinkVpc、
ec2:DetachClassicLinkVpc の各アクションのリソースレベルのアクセス許可を使用してポリシー
を作成し、ユーザーがそれらのアクションを使用できるかどうかを制御できます。リソースレベルのア
クセス許可は、ec2:Describe* アクションではサポートされません。
a. ClassicLink を使用する完全なアクセス許可
555
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
次のポリシーでは、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": {
"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": {
556
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
"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"
]
}
]
}
d. インスタンスをリンク解除する
次のポリシーでは、インスタンスが「unlink=true」タグを持つ場合にのみ、リンクされた EC2-Classic
インスタンスを 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"
}
557
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
}
},
{
"Effect": "Allow",
"Action": "ec2:DetachClassicLinkVpc",
"Resource": [
"arn:aws:ec2:region:account:vpc/*"
]
}
]
}
Example 6. リザーブドインスタンスを使用する
次のポリシーでは、アカウントでリザーブドインスタンスを表示、変更、購入するアクセス権限をユー
ザーに与えます。
個別のリザーブドインスタンスにリソースレベルのアクセス権限を設定することはできません。このポ
リシーは、ユーザーがアカウントのすべてのリザーブドインスタンスにアクセスできることを意味しま
す。
Resource エレメントは * ワイルドカードを使用して、ユーザーがそのアクションにすべてのリソース
を指定できることを示しています。この場合、アカウントのすべてのリザーブドインスタンスをリスト
して変更できます。ユーザーは、アカウント認証情報を使用してリザーブドインスタンスを購入するこ
ともできます。また、API アクションがリソースレベルのアクセス許可をサポートしていない場合も、
* ワイルドカードが必要です。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:DescribeReservedInstances", "ec2:ModifyReservedInstances",
"ec2:PurchaseReservedInstancesOfferings", "ec2:DescribeAvailabil
ityZones",
"ec2:DescribeReservedInstancesOfferings"
],
"Resource": "*"
}
]
}
ユーザーがアカウントのリザーブドインスタンスを表示し、変更できるようにするが、新しいリザーブ
ドインスタンスを購入できないようにします。
{
""Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:DescribeReservedInstances", "ec2:ModifyReservedInstances",
"ec2:DescribeAvailabilityZones"
],
"Resource": "*"
}
558
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
]
}
Amazon EC2 コンソールで機能するサンプル ポリシー
Abstract
Amazon EC2 コンソールで特定のリソースを表示および操作するアクセス許可を IAM ユーザーに付与する方法に
ついて説明します。
IAM ポリシーを使用して、Amazon EC2 コンソールで特定のリソースを表示、および操作するアクセ
ス許可をユーザーに付与することができます。上記のセクションのサンプルポリシーを使用することは
できますが、これらは AWS CLI、Amazon EC2 CLI、または AWS SDK で作成されたリクエスト向け
に設計されています。コンソールではこの機能を実行するために追加の API アクションを使用するの
で、これらのポリシーは正常に動作しない可能性があります。たとえば、DescribeVolumes API アク
ションのみを使用するアクセス許可を持つユーザーがコンソールでボリュームを表示しようとすると、
エラーが発生します。このセクションでは、コンソールの特定の部分をユーザーが操作できるようにな
るポリシーを説明します。
•
•
•
•
•
•
1: 読み取り専用アクセス (p. 560)
2: EC2 起動ウィザードを使用する (p. 562)
3: ボリュームを操作する (p. 565)
4: セキュリティグループを操作する (p. 566)
5: Elastic IP アドレスの操作 (p. 569)
6: リザーブドインスタンスを使用する (p. 570)
Note
コンソールでタスクを実行するために必要な API アクションを探すには、AWS CloudTrail な
どのサービスを使用できます。詳細については、AWS CloudTrail User Guide を参照してくだ
さい。ポリシーにより特定のリソースを作成または変更するアクセス許可が付与されない場
合、コンソールではエンコードされた診断情報のメッセージが表示されます。AWS STS の
DecodeAuthorizationMessage API アクション、または AWS CLI の
decode-authorization-message コマンドを使用してメッセージをデコードできます。
Amazon EC2 向けのポリシー作成の詳細については、AWS セキュリティブログの投稿「Granting Users
Permission to Work in the Amazon EC2 Console」を参照してください。
559
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
Example 1: 読み取り専用アクセス
ユーザーが Amazon EC2 コンソールですべてのリソースを表示できるようにするには、次の例と同じ
ポリシーを使用します: 1: 読み取り専用アクセス (p. 548)。別のステートメントによりユーザーにアクセ
ス許可が与えられない限り、ユーザーはリソースのアクションを実行したり新しいリソースを作成する
ことができません。
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. 534) を参照
してください。
b. インスタンスと CloudWatch メトリックスを表示する
以下のポリシーは、ユーザーに対して Amazon EC2 コンソールでのインスタンスの表示、[Instances]
ページの [Monitoring] タブでの CloudWatch アラームおよびメトリックスの表示を許可します。Amazon
EC2 コンソールでは、Amazon CloudWatch API がアラームとメトリックスの表示に使用されるため、
cloudwatch:DescribeAlarms および cloudwatch:GetMetricStatistics アクションを使用する
アクセス権限をユーザーに付与する必要があります。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"cloudwatch:DescribeAlarms",
"cloudwatch:GetMetricStatistics"
],
560
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
"Resource": "*"
}
]
}
561
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
Example 2: EC2 起動ウィザードを使用する
Amazon EC2 起動ウィザードは、インスタンスを設定し、起動するためのオプションを提供する一連
の画面です。ユーザーがウィザードのオプションを操作できるように、API アクションを使用するアク
セス許可をポリシーに含める必要があります。ポリシーにそれらのアクションを使用するアクセス許可
が含まれない場合、ウィザードの一部の項目は適切にロードされず、ユーザーは起動を完了できませ
ん。
a. 起動ウィザードへの基本的なアクセスを許可する
起動を正常に完了させるには、ユーザーに ec2:RunInstances API アクションを使用するアクセス許
可を付与し、少なくとも以下の API アクションを使用できるようにする必要があります。
• ec2:DescribeImages: AMI を表示して選択します。
• ec2:DescribeVPCs: 利用可能なネットワークオプション(EC2-Classic と VPC の一覧)を表示し
ます。これは、VPC 内で起動しない場合でも必須です。
• ec2:DescribeSubnets: VPC 内で起動している場合、選択した VPC で利用可能なすべてのサブネッ
トを表示します。
• ec2:DescribeSecurityGroups: ウィザードでセキュリティグループページを表示します。ユー
ザーは既存のセキュリティグループを選択できます。
• ec2:DescribeKeyPairs または ec2:CreateKeyPair: 既存のキーペアを選択する、または新しい
キーペアを作成します。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances", "ec2:DescribeImages",
"ec2:DescribeKeyPairs","ec2:DescribeVpcs", "ec2:DescribeSubnets",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": "*"
}
]
}
ポリシーに次のような API アクションを追加して、ユーザーに追加のオプションを提供できます。
• ec2:DescribeAvailabilityZones: EC2 Classic 内で起動している場合、特定のアベイラビリティ
ゾーンを表示して選択します。
• ec2:DescribeNetworkInterfaces: VPC 内で起動している場合、選択したサブネット内に存在す
るネットワークインターフェイスを表示して選択します。
• ec2:CreateSecurityGroup: 新しいセキュリティグループを作成します。たとえば、ウィザードの
推奨される launch-wizard-x セキュリティグループを作成します。ただし、このアクション単独
では、セキュリティグループが作成されるだけです。ルールは追加または変更されません。インバウ
ンドルールを追加するには、ユーザーに ec2:AuthorizeSecurityGroupIngress API アクション
を使用するアクセス許可を付与する必要があります。VPC セキュリティグループにアウトバウンド
ルールを追加するには、ユーザーに ec2:AuthorizeSecurityGroupEgress API アクションを使
用するアクセス許可を付与する必要があります。既存のルールを変更または削除するには、ユーザー
562
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
に関連する ec2:RevokeSecurityGroup* API アクションを使用するアクセス許可を付与する必要
があります。
• ec2:CreateTags: インスタンスにタグを追加します。起動ウィザードはデフォルトで Name のキー
を含むタグをインスタンスに追加しようとします。このアクションを使用するアクセス許可を持たな
いユーザーには、このタグをインスタンスに適用できなかったという警告が表示されます。ただし、
これが起動の成功に影響を与えることはありません。したがって絶対に必要な場合のみユーザーにこ
のアクションを使用するアクセス許可を付与することをお勧めします。
Important
ユーザーに ec2:CreateTags アクションを使用するアクセス許可を付与するには注意が必
要です。これにより、ec2:ResourceTag 条件キーを使用する能力が限定され、他のリソー
スの使用が制限されます。ユーザーは、リソースのタグを変更してその制限を回避できま
す。
現在、Amazon EC2 Describe* API アクションは、リソースレベルのアクセス許可をサポートしてい
ません。そのため、ユーザーが起動ウィザードで表示できる個人のリソースを制限することはできませ
ん。ただし、ec2:RunInstances API アクションにリソースレベルのアクセス許可を適用して、ユー
ザーがインスタンスの起動に使用できるリソースを制限できます。ユーザーが使用する権限がないオプ
ションを選択すると、起動は失敗します。
b. 特定のインスタンスのタイプ、サブネット、リージョンへのアクセスを制限する
次のポリシーにより、ユーザーは Amazon が所有する AMI を使用して m1.small インスタンスを特定
のサブネット(subnet-1a2b3c4d)でのみ起動することができます。ユーザーは sa-east-1 リージョ
ンでのみ起動できます。ユーザーが異なるリージョンを選択するか、起動ウィザードで異なるインスタ
ンスタイプ、AMI、またはサブネットを選択すると、起動は失敗します。
最初のステートメントでは、上記の例に示したように、起動ウィザードでオプションを表示するアクセ
ス許可がユーザーに付与されます。2 番目のステートメントでは、ec2:RunInstances アクションで
ネットワークインターフェイス、ボリューム、キーペア、セキュリティグループ、サブネットリソース
を使用するアクセス許可が付与されます。これは、ユーザーが VPC でインスタンスを起動するために
必要です。ec2:RunInstances アクションの使用方法の詳細については、「4: インスタンスを起動す
る (RunInstances) (p. 551)」を参照してください。3 番目と 4 番目のステートメントでは、インスタン
スと AMI リソースを使用するアクセス許可がそれぞれ付与されますが、インスタンスが m1.small イ
ンスタンスの場合のみ、および AMI が Amazon によって所有されている場合のみ付与されます。
563
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances", "ec2:DescribeImages",
"ec2:DescribeKeyPairs","ec2:DescribeVpcs", "ec2:DescribeSubnets",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action":"ec2:RunInstances",
"Resource": [
"arn:aws:ec2:sa-east-1:111122223333:network-interface/*",
"arn:aws:ec2:sa-east-1:111122223333:volume/*",
"arn:aws:ec2:sa-east-1:111122223333:key-pair/*",
"arn:aws:ec2:sa-east-1:111122223333:security-group/*",
"arn:aws:ec2:sa-east-1:111122223333:subnet/subnet-1a2b3c4d"
]
},
{
"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"
}
}
}
]
}
564
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/*"
}
]
}
565
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
Example 4: セキュリティグループを操作する
a. セキュリティグループを表示し、ルールを追加/削除する
次のポリシーは、Amazon EC2 コンソールでセキュリティグループを表示し、タグ Department=Test
を含む既存のセキュリティグループに対してインバウンドおよびアウトバウンドのルールを追加および
削除するアクセス許可をユーザーに付与します。
Note
EC2-Classic セキュリティグループのアウトバウンドルールを変更することはできません。セ
キュリティグループの詳細については、Linux インスタンスの Amazon EC2 セキュリティグ
ループ (p. 514) を参照してください。
最初のステートメントの ec2:DescribeTags アクションにより、ユーザーはコンソールでタグを表示
できます。これにより、ユーザーは変更できるセキュリティグループをより簡単に識別できます。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:DescribeSecurityGroups", "ec2:DescribeTags"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupIngress",
"ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupEgress"
],
"Resource": [
"arn:aws:ec2:region:111122223333:security-group/*"
],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Department": "Test"
}
}
}
]
}
b. [Create Security Group] ダイアログボックスを使用する
ユーザーが Amazon EC2 コンソールの [Create Security Group] ダイアログボックスを使用して作業で
きるようにするポリシーを作成できます。このダイアログボックスを使用するには、ユーザーに少なく
とも以下の API アクションを使用するアクセス許可を付与する必要があります。
• ec2:CreateSecurityGroup: 新しいセキュリティグループを作成するには
• ec2:DescribeVpcs: [VPC] リストに既存の VPC のリストを表示します。VPC のセキュリティグ
ループを作成していなくてもこのアクションは必須です。
566
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
これらのアクセス許可で、ユーザーは新しいセキュリティグループを正常に作成できますが、ルールを
追加することはできません。[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 アクションは必須ではありませんが、ユーザーにこのア
クションを使用するアクセス許可が付与されておらず、無効なルールを持つセキュリティグループを
作成しようとすると、ルールのないセキュリティグループが作成され、後でルールを追加することが
必要になります。
現在、ec2:CreateSecurityGroup API アクションは、リソースのレベルのアクセス許可をサポート
していません。ただし、ec2:AuthorizeSecurityGroupIngress および
ec2:AuthorizeSecurityGroupEgress アクションにリソースレベルのアクセス許可を適用してルー
ルを作成する方法を制御できます。
次のポリシーは、[Create Security Group] ダイアログボックスを使用し、特定の VPC (vpc-1a2b3c4d)
に関連付けられたセキュリティグループに対してインバウンドおよびアウトバウンドのルールを作成す
るアクセス許可をユーザーに付与します。 ユーザーは EC2-Classic または別の VPC のセキュリティグ
ループを作成できますが、ルールを追加することはできません。同様に、ユーザーは VPC vpc-1a2b3c4d
に関連付けられていないの既存のセキュリティグループにルールを追加することもできません。ユー
ザーには、コンソールですべてのセキュリティグループを表示するアクセス許可も付与されます。これ
により、ユーザーはインバウンドルールを追加するセキュリティグループをより簡単に識別できるよう
になります。このポリシーは、ユーザーに VPC vpc-1a2b3c4d に関連付けられたセキュリティグルー
プを削除するアクセス許可も付与します。
567
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ポリシー
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:DescribeSecurityGroups", "ec2:CreateSecurityGroup", "ec2:De
scribeVpcs"
],
"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"
}
}
}
]
}
568
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 にのみ適用されます。このアクションは、EC2-Classic でイ
ンスタンスに Elastic IP アドレスを関連付ける場合は必要ありません。
• ec2:AssociateAddress: Elastic IP アドレスをインスタンスまたはネットワークインターフェイス
に関連付けます。
• ec2:DisassociateAddress: Elastic IP アドレスとインスタンスまたはネットワークインターフェ
イスの関連付けを解除します。
569
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ロール
Example 6: リザーブドインスタンスを使用する
以下のポリシーを IAM ユーザーにアタッチすることができます。これにより、アカウントのリザーブ
ドインスタンスの表示と変更、および AWS マネジメントコンソールでの新しいリザーブドインスタン
ス購入のアクセス権限がユーザーに付与されます。
このポリシーにより、ユーザーはアカウントのすべてのリザーブドインスタンスと、オンデマンドイン
スタンスを表示できます。個別のリザーブドインスタンスにリソースレベルのアクセス権限を設定する
ことはできません。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:DescribeReservedInstances", "ec2:ModifyReservedInstances",
"ec2:PurchaseReservedInstancesOfferings", "ec2:DescribeInstances",
"ec2:DescribeAvailabilityZones", "ec2:DescribeReservedInstancesOffer
ings"
],
"Resource": "*"
}
]
}
ec2:DescribeAvailabilityZones アクションは、リザーブドインスタンスを購入できるアベイラ
ビリティーゾーンに関する情報を Amazon EC2 コンソールで表示できるようにするために必要です。
ec2:DescribeInstances アクションは必須ではありませんが、このアクションにより、ユーザーが
アカウントのインスタンスを表示し、正しい仕様に合わせて予約を購入できるようになります。
ec2:DescribeInstances を削除するなど、API アクションを調整してユーザーアクセスを制限でき
ます。ec2:DescribeAvailabilityZones はユーザーが読み取り専用アクセスを持っていることを
意味します。
Amazon EC2 の IAM ロール
Abstract
IAM ロールを作成して、それを EC2 インスタンスに割り当てると、アプリケーションは、セキュリティが確保さ
れた API リクエストを実行することを許可します。
アプリケーションは AWS 認証情報で API リクエストに署名する必要があります。したがって、アプリ
ケーション開発者である場合、EC2 インスタンスで実行するアプリケーションの認証情報を管理する
戦略が必要です。たとえば、インスタンスに AWS 認証情報を安全に配布することができ、他のユー
ザーから保護しながら、インスタンスのアプリケーションを有効にし、リクエストに署名するために認
証情報を使用できます。ただし、特に AWS が代理で作成するスポットインスタンスや Auto Scaling グ
ループのインスタンスなどにおいて、またその他の各インスタンスに認証情報を安全に配布することは
難しい場合があります。 また、AWS 認証情報を循環させる場合、各インスタンスの認証情報を更新で
きる必要もあります。
アプリケーションが使用するセキュリティ認証情報をお客様が管理する必要なく、アプリケーションが
インスタンスから API リクエストを安全に作成できるように、IAM ロールをデザインしました。AWS
認証情報を作成および配布する代わりに、以下の IAM ロールを使用して API リクエストを作成するア
クセス許可を委任できます。
1. IAM ロールを作成する
2. ロールを行うアカウントまたは AWS サービスを定義する
570
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ロール
3. ロールを仮定してからアプリケーションが使用できる API アクションおよびリソースを定義する
4. インスタンスを起動する際にロールを指定する
5. 一時的な認証情報のセットを取得およびそれらを使用するアプリケーションを入手する
たとえば、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. 571)
• IAM ロールを使用してインスタンスを起動するための、IAM ユーザーアクセス許可の付与 (p. 572)
• コンソールを使用して IAM ロールを作成する (p. 573)
• コンソールから IAM ロールを使用してインスタンスを起動する (p. 573)
• AWS CLI を使用して IAM ロールを作成する (p. 574)
• AWS CLI から IAM ロールを使用してインスタンスを起動する (p. 575)
インスタンスメタデータからセキュリティ認証情報を取得する
インスタンスのアプリケーションは、インスタンスメタデータアイテム
iam/security-credentials/role-name のロールから提供されたセキュリティ認証情報を取得しま
す。アプリケーションには、ロールに関連付けられたセキュリティ認証情報によって、ロールに対して
定義したアクションおよびリソースのアクセス許可が付与されます。これらのセキュリティ認証情報は
一時的なものであり、私たちが自動的に循環させます。新しい認証情報は、古い認証情報が失効する少
なくとも 5 分前から有効になるようにします。
Warning
IAM ロールでインスタンスメタデータを使用するサービスを使用する場合は、サービスで HTTP
呼び出しが行われるときに認証情報を公開しないように注意する必要があります。認証情報を
公開できるサービスの種類には、HTTP プロキシ、HTML/CSS 検証サービス、および XML イ
ンクルードをサポートする XML プロセッサーが含まれます。
571
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ロール
以下のコマンドでは、s3access という名前の 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 ポリシーをテストするなど) には、アクセスキー、秘密キー、およびセッショントー
クンを提供する必要があります。詳細については、『IAM ユーザーガイド』の「一時的なセキュリティ
認証情報を使用して AWS リソースへのアクセスをリクエストする」を参照してください。
インスタンスのメタデータの詳細については、「インスタンスメタデータとユーザーデータ (p. 321)」
を参照してください。
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」
を参照してください。
572
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ロール
コンソールを使用して IAM ロールを作成する
ロールでインスタンスを起動するには、事前に IAM ロールを作成する必要があります。
IAM コンソールを使用して IAM ロールを作成するには
1.
2.
3.
4.
5.
AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/
iam/)を開きます。
ナビゲーションペインで [Roles] を選択し、続いて [Create New Role] を選択します。
[Set Role Name] ページで、ロールの名前を入力し、[Next Step] を選択します。
[Select Role Type] ページで、[Amazon EC2 ] の隣にある [Select] を選択します。
[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.
4.
AMI を選択し、インスタンスタイプを選択して、[Next: Configure Instance Details] を選択します。
[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] を選択し、キーペアを選択してインスタンスを起動します。
573
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ロール
7.
アプリケーションで Amazon EC2 API アクションを使用している場合、インスタンスで有効にさ
れている AWS セキュリティ認証情報を取得し、それを使用しリクエストに署名します。これは
AWS SDK によって実行されますのでご注意ください。
$ curl http://169.254.169.254/latest/meta-data/iam/security-creden
tials/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-policy-document
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"
}
}
574
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
IAM ロール
c.
アクセスポリシーを作成し、ec2-role-access-policy.json という名前のテキストファイ
ルに保存します。たとえば、このポリシーは、インスタンスで実行しているアプリケーション
に対し、Amazon S3 の管理権限を与えます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": ["*"]
}
]
}
d.
アクセスポリシーをロールに付与します。
$ aws iam put-role-policy --role-name s3access --policy-name S3-Permis
sions --policy-document file://ec2-role-access-policy.json
e.
s3access-profile という名前のインスタンスプロファイルを作成します。
$ aws iam create-instance-profile --instance-profile-name S3-Permissions
{
"InstanceProfile": {
"InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE",
"Roles": [],
"CreateDate": "2013-12-12T23:53:34.093Z",
"InstanceProfileName": "S3-Permissions",
"Path": "/",
"Arn": "arn:aws:iam::123456789012:instance-profile/S3-Permissions"
}
}
f.
s3access-profile インスタンスプロファイルに s3access ロールを追加します。
$ aws iam add-role-to-instance-profile --instance-profile-name S3-Permis
sions --role-name s3access
これらのコマンドの詳細については、AWS Command Line Interface Reference にある create-role、
put-role-policy および create-instance-profile を参照してください。
AWS CLI から IAM ロールを使用してインスタンスを起動する
IAM ロールを作成した後、インスタンスを起動して、起動中にそのロールをインスタンスに関連付ける
ことができます。
575
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ネットワークアクセス
Important
IAM ロールを作成した後、適切なアクセス許可が反映されるまで数秒ほどかかります。ロール
を使用した最初のインスタンスの起動が失敗した場合は、数秒待ってからもう一度試してくだ
さい。詳細については、IAM ユーザーガイド の「Troubleshooting Working with Roles」を参照
してください。
AWS CLI から IAM ロールを使用してインスタンスを起動するには
1.
インスタンスプロファイルを使用してインスタンスを起動します。以下の例は、インスタンスプロ
ファイルを使用してインスタンスを起動する方法を示しています。
$ aws ec2 run-instances --image-id ami-11aa22bb --iam-instance-profile
Name="S3-Permissions" --key-name my-key-pair --security-groups my-securitygroup --subnet-id subnet-1a2b3c4d
2.
詳細については、AWS Command Line Interface Reference の run-instances を参照してください。
アプリケーションで Amazon EC2 API アクションを使用している場合、インスタンスで有効にさ
れている AWS セキュリティ認証情報を取得し、それを使用しリクエストに署名します。これは
AWS SDK によって実行されますのでご注意ください。
$ curl http://169.254.169.254/latest/meta-data/iam/security-creden
tials/role_name
Linux インスタンス用の受信トラフィックの認可
Abstract
セキュリティグループを作成して、Amazon EC2 インスタンスに到達可能なネットワークトラフィックを制御しま
す。
セキュリティグループを使用すると、どのトラフィックがインスタンスに到達できるかなど、インスタ
ンスへのトラフィックを制御できます。たとえば、ホームネットワークからのコンピュータのみが SSH
を使用してインスタンスにアクセスできるように許可できます。インスタンスがウェブサーバーの場
合、すべての IP アドレスが HTTP 経由でインスタンスにアクセスできるようにすることで、外部ユー
ザーはウェブサーバーのコンテンツを閲覧できるようなります。
インスタンスへのネットワークアクセスを有効にするには、インスタンスへのインバウンドトラフィッ
クを許可する必要があります。受信トラフィック用のポートを開くには、起動時にインスタンスに関連
付けたセキュリティグループにルールを追加します。
インスタンスに接続するには、コンピュータのパブリック IP アドレスからの SSH トラフィックを承認
するルールをセットアップする必要があります。追加の IP アドレス範囲からの SSH トラフィックを許
可するには、承認する必要がある範囲ごとに別のルールを追加します。
Windows インスタンスへのネットワークアクセスを利用可能にする必要がある場合は、『Microsoft
Windows インスタンスの Amazon EC2 ユーザーガイド』の「Windows インスタンス用の受信トラフィッ
クの認可」を参照してください。
開始する前に
たとえば、単一のホストや信頼する特定のネットワークなど、インスタンスへのアクセスを必要とする
ユーザーを決定します。この場合、Amazon は、お客様のローカルシステムのパブリック IP アドレス
576
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ネットワークアクセス
を使用します。サービスを使用して、ローカルコンピュータのパブリック IP アドレスを取得できます。
たとえば、次のサービスが提供されています。http://checkip.amazonaws.com と入力します。IP アド
レスを提供する別のサービスを検索するには、検索フレーズ「what is my IP address」を使用します。
ISP 経由で、またはファイアウォールの内側から静的な IP アドレスなしで接続している場合は、クラ
イアントコンピュータで使用されている IP アドレスの範囲を見つける必要があります。
Caution
0.0.0.0/0 を使用すると、すべての IP アドレスから SSH を使用してインスタンスにアクセ
スすることが許可されます。これはテスト環境で短時間なら許容できますが、実稼働環境で行
うのは安全ではありません。実稼働環境では、特定の IP アドレスまたは特定のアドレス範囲
にのみ、インスタンスへのアクセスを限定します。
セキュリティグループの詳細については、Linux インスタンスの Amazon EC2 セキュリティグルー
プ (p. 514) を参照してください。
Linux インスタンスに対するインバウンド SSH トラフィックの
ルールの追加
セキュリティグループは、関連付けられたインスタンスのファイアウォールとして動作し、インバウン
ドトラフィックとアウトバウンドトラフィックの両方をインスタンスレベルでコントロールします。
SSH を使用して IP アドレスから Linux インスタンスに接続できるようにするためのルールをセキュリ
ティグループに追加します。
コンソールを使用して、インバウンド SSH トラフィック用のルールをセキュリティグループ
に追加するには
1.
2.
3.
4.
5.
Amazon EC2 コンソールのナビゲーションペインで、[Instances] を選択します。インスタンスを
選択し、[Description] タブを確認します。[Security groups] リストに、インスタンスに関連付けら
れたセキュリティグループが表示されます。[view rules] を選択して、インスタンスに対して有効
なルールのリストを表示します。
ナビゲーションペインで、[Security Groups] を選択します。インスタンスに関連付けられているセ
キュリティグループのいずれかを選択します。
詳細ペインの [Inbound] タブで、[Edit] を選択します。ダイアログで [Add Rule] を選択し、[Type]
リストから [SSH] を選択します。
[Source] フィールドで、コンピュータのパブリック IP アドレスを CIDR 表記で指定します。たと
えば、IP アドレスが 203.0.113.25 の場合、この単一の IP アドレスを CIDR 表記でリストする
には 203.0.113.25/32 と指定します。会社が特定の範囲からアドレスを割り当てている場合、
範囲全体(203.0.113.0/24など)を指定します。
IP アドレスを見つける方法については、開始する前に (p. 576) を参照してください。
[Save] を選択します。
コマンドラインを使用してセキュリティグループにルールを追加するには
次のコマンドの 1 つを使用できます。このコマンドは、インスタンスではなく、ローカルシステムで実
行されていることを確認してください。これらのコマンドラインインターフェイスの詳細については、
「Amazon EC2 へのアクセス (p. 3)」を参照してください。
• authorize-security-group-ingress(AWS CLI)
• ec2-authorize(Amazon EC2 CLI)
• Grant-EC2SecurityGroupIngress(AWS Tools for Windows PowerShell)
577
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon VPC
インスタンスへのセキュリティグループの割り当て
インスタンスを起動する際に、インスタンスにセキュリティグループを割り当てることができます。
ルールを追加または削除すると、それらの変更は、そのセキュリティグループを割り当てたすべてのイ
ンスタンスに自動的に適用されます。
EC2-Classic でインスタンスを起動した後でセキュリティグループを変更することはできません。VPC
でインスタンスを起動した後、そのセキュリティグループを変更することができます。詳細について
は、Amazon VPC ユーザーガイド の Changing an Instance's Security Groups を参照してください。
Amazon EC2 と Amazon Virtual Private Cloud
Abstract
EC2 インスタンスを VPC で起動して、インスタンスで追加の機能を利用します。
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. 584)」を参照してください。アカウントで EC2-VPC のみサポートされる場合は、デフォ
ルトの VPC が作成されます。デフォルトの VPC は、設定済みですぐに使用できる VPC です。デフォ
ルトの VPC にすぐにインスタンスを起動できます。詳細については、『Amazon VPC ユーザーガイ
ド』の「デフォルトの VPC とサブネット」を参照してください。アカウントで EC2-Classic および
EC2-VPC がサポートされる場合、どちらのプラットフォームにもインスタンスを起動できます。アカ
ウントがサポートするプラットフォームのタイプにかわらず、必要に応じた独自でデフォルト以外の
VPC を作成および設定をすることができます。
目次
• VPC を使用する利点 (p. 578)
• EC2-Classic と EC2-VPC の違い (p. 579)
• EC2-Classic と EC2-VPC との間でのリソースの共有とアクセス (p. 582)
• VPC でのみ利用可能なインスタンスタイプ (p. 583)
• Amazon VPC ドキュメント (p. 584)
• サポートされているプラットフォーム (p. 584)
• ClassicLink (p. 585)
• EC2-Classic の Linux インスタンスから VPC の Linux インスタンスへの移行 (p. 596)
VPC を使用する利点
EC2-Classic の代わりに VPC でインスタンスを起動すると、次が可能になります。
578
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic と EC2-VPC の違い
• 開始から停止までの間に維持される静的プライベート IP アドレスをインスタンスに割り当てる
• 複数の IP アドレスをインスタンスに割り当てる
• ネットワークインターフェイスを定義し、1 つまたは複数のネットワークインターフェイスをインス
タンスに割り当てる
• 実行中にインスタンスのセキュリティグループメンバーシップを変更する
• インスタンスからのアウトバウンドトラフィックを制御し(egress フィルタリング)、インスタン
スへのインバウンドトラフィックを制御する(ingress フィルタリング)
• ネットワークアクセスコントロールリスト(ACL)の形でインスタンスにアクセス制御の層を追加す
る
• 単一テナントハードウェアでインスタンスを実行する
EC2-Classic と EC2-VPC の違い
次の表は、EC2-Classic で起動したインスタンス、デフォルト VPC で起動したインスタンス、デフォ
ルトではない VPC で起動したインスタンスの違いをまとめたものです。
特徴
EC2-Classic
デフォルト VPC
デフォルトではない VPC
パブリック IP
アドレス
(Amazon の
パブリック IP
アドレスプー
ルより)
インスタンスはパブリック デフォルトのサブネットで インスタンスは、起動時に
IP アドレスを受け取りま
起動されたインスタンス
特に IP アドレスを指定し
す。
は、起動時に特に IP アド ない場合、またはサブネッ
レスを指定しない場合、ま トのパブリック IP アドレ
たはサブネットのパブリッ ス属性を変更しない場合、
ク IP アドレス属性を変更 デフォルトではパブリック
しない場合、デフォルトで IP アドレスを受け取りませ
パブリック IP アドレスを ん。
受け取ります。
プライベート
IP アドレス
インスタンスは、起動する
たびに、EC2-Classic の範
囲に含まれるプライベート
IP アドレスを受け取りま
す。
インスタンスはデフォルト
VPC のアドレス範囲から静
的プライベート IP アドレ
スを受け取ります。
インスタンスは VPC のア
ドレス範囲から静的プライ
ベート IP アドレスを受け
取ります。
複数のプライ 1 つのインスタンスには 1
ベート IP アド つのプライベート IP アド
レス
レスを選択します。複数の
IP アドレスはサポートされ
ません。
複数のプライベート IP ア
ドレスを 1 つのインスタン
スに割り当てることができ
ます。
複数のプライベート IP ア
ドレスを 1 つのインスタン
スに割り当てることができ
ます。
Elastic IP アド 停止すると、EIP とインス 停止しても、EIP とインス 停止しても、EIP とインス
レス
タンスの関連付けが解除さ タンスの関連付けが維持さ タンスの関連付けが維持さ
れます。
れます。
れます。
DNS ホスト名 DNS ホスト名はデフォル DNS ホスト名はデフォル DNS ホスト名はデフォルト
トで有効化されています。 トで有効化されています。 で無効化されています。
セキュリティ
グループ
セキュリティグループは、 セキュリティグループは、 セキュリティグループは、
その他の AWS アカウント VPC のみのセキュリティグ VPC のみのセキュリティグ
に属するセキュリティグ
ループを参照できます。
ループを参照できます。
ループを参照できます。
VPC ごとに最大 100 のセ VPC ごとに最大 100 のセ
リージョンごとに最大 500 キュリティグループを作成 キュリティグループを作成
のセキュリティグループを できます。
できます。
作成できます。
579
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic と EC2-VPC の違い
特徴
EC2-Classic
デフォルト VPC
デフォルトではない VPC
セキュリティ
グループの関
連付け
インスタンスを起動する
際、セキュリティグループ
をいくつでも割り当てるこ
とができます。
最大 5 つのセキュリティグ
ループを 1 つのインスタン
スに割り当てることができ
ます。
最大 5 つのセキュリティグ
ループを 1 つのインスタン
スに割り当てることができ
ます。
実行中のインスタンスのセ
キュリティグループは変更
できません。割り当て済み
のセキュリティグループの
ルールを変更するか、イン
スタンスを新しいインスタ
ンスと置き換える必要があ
ります(置き換えるには、
まずインスタンスから AMI
を作成し、この AMI から、
目的のセキュリティグルー
プを使用して新しいインス
タンスを起動し、元のイン
スタンスから Elastic IP ア
ドレスに関連付けられてい
るものをすべて解除し、新
しいインスタンスに関連付
け、その後、元のインスタ
ンスを終了します)。
セキュリティグループをイ
ンスタンスに割り当てられ
るのは、インスタンスの起
動時と実行中です。
セキュリティグループをイ
ンスタンスに割り当てられ
るのは、インスタンスの起
動時と実行中です。
セキュリティ
グループの
ルール
インバウンドトラフィック インバウンドトラフィック インバウンドトラフィック
のみにルールを追加できま とアウトバウンドトラ
とアウトバウンドトラ
す。
フィックのルールを追加で フィックのルールを追加で
きます。
きます。
最大 100 のルールをセキュ
リティグループに追加でき 最大 50 のルールをセキュ 最大 50 のルールをセキュ
ます。
リティグループに追加でき リティグループに追加でき
ます。
ます。
テナンシー
インスタンスは共有する
共有ハードウェアまたはシ 共有ハードウェアまたはシ
ハードウェアで実行されま ングルテナントハードウェ ングルテナントハードウェ
す。
アでインスタンスを実行で アでインスタンスを実行で
きます。
きます。
インターネッ
トにアクセス
する
インスタンスはインター
ネットにアクセスできま
す。インスタンスは自動的
にパブリック IP アドレス
を受信し、AWS ネット
ワークエッジを通してイン
ターネットに直接アクセス
できます。
デフォルトでは、インスタ
ンスはインターネットにア
クセスできます。インスタ
ンスはデフォルトでパブ
リック IP アドレスを受け
取ります。インターネット
ゲートウェイはデフォルト
の VPC にアタッチされ、
デフォルトのサブネットに
はインターネットゲート
ウェイへのルートがありま
す。
デフォルトでは、インスタ
ンスはインターネットにア
クセスできません。インス
タンスはデフォルトでパブ
リック IP アドレスを受け
取りません。VPC は、作成
方法によってはインター
ネットゲートウェイを持つ
場合があります。
次の図では、各プラットフォームのインスタンスを示します。次の点に注意してください。
580
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic と EC2-VPC の違い
• インスタンス C1、C2、C3、C4 は、EC2-Classic プラットフォーム内にあります。C1 と C2 は 1 つ
のアカウントによって起動され、C3 と C4 はそれとは異なるアカウントによって起動されました。
これらのインスタンスは相互に通信できますが、インターネットに直接アクセスできません。
• インスタンス V1 と V2 は、EC2-VPC プラットフォームの同じ VPC 内の異なるサブネットにありま
す。これらは VPC を所有するアカウントによって起動されました。他のアカウントはこの VPC で
はインスタンスを起動できません。これらのインスタンスは、相互に通信でき、インターネットゲー
トウェイを通して EC2-Classic 内のインスタンスおよびインターネットにアクセスできます。
581
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic と EC2-VPC との間でのリソースの共有とア
クセス
EC2-Classic と EC2-VPC との間でのリソースの共有
とアクセス
AWS アカウントのリソースと機能は、ClassicLink などを通じて、EC2-Classic と EC2-VPC のプラッ
トフォーム間で共有できます。 ClassicLink の詳細については、「ClassicLink (p. 585)」を参照してくだ
さい。
アカウントが EC2-Classic をサポートしている場合、EC2-Classic 用にリソースの設定を行った場合が
あります。 EC2-Classic から VPC に移行する場合は、VPC 内でこれらのリソースを再作成する必要が
あります。 EC2-Classic から VPC への移行に関する詳細については、「EC2-Classic の Linux インス
タンスから VPC の Linux インスタンスへの移行 (p. 596)」を参照してください。
以下のリソースは、EC2-Classic と VPC の間で共有したりアクセスすることができます。
リソース
コメント
AMI
バンドルタスク
EBS ボリューム
Elastic IP アドレス
Elastic IP アドレスを EC2-Classic から EC2-VPC
に移行できます。もともと VPC で使用するため
に割り当てられていた Elastic IP アドレスを EC2Classic に移行することはできません。 詳細につ
いては、「EC2-Classic から EC2-VPC への
Elastic IP アドレスの移行 (p. 621)」を参照してく
ださい。
インスタンス
EC2-Classic インスタンスは、パブリック IP アド
レスを使用して VPC 内のインスタンスと通信で
きます。または、ClassicLink を使用して、プライ
ベート IP アドレス経由の通信を有効にすること
ができます。
インスタンスを EC2-Classic から VPC に移行す
ることはできません。 しかし、アプリケーション
を EC2-Classic のインスタンスから VPC のイン
スタンスに移行することはできます。 詳細につい
ては、「EC2-Classic の Linux インスタンスから
VPC の Linux インスタンスへの移行 (p. 596)」を
参照してください。
キーペア
ロードバランサー
ClassicLink を使用している場合、ロードバラン
サーのあるリンクされた EC2-Classic インスタン
スを VPC に登録することができます。こうして
この VPC はそのインスタンスと同じアベイラビ
リティーゾーンにサブネットがあることになりま
す。
ロードバランサーを EC2-Classic から VPC に移
行することはできません。 EC2-Classic でロード
バランサーがある VPC にインスタンスを登録す
ることはできません。
582
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VPC でのみ利用可能なインスタンスタイプ
リソース
コメント
配置グループ
リザーブドインスタンス
リザーブドインスタンスのネットワークプラット
フォームを EC2-Classic から EC2-VPC に変更で
きます。詳細については、「リザーブドインスタ
ンスの変更 (p. 184)」を参照してください。
セキュリティグループ
リンクされた EC2-Classic インスタンスは、VPC
からのトラフィックを監視するために、ClassicLink を通して VPC のセキュリティクループを使
用することができます。 VPC インスタンスは、
EC2-Classic セキュリティグループを使用できま
せん。
EC2-Classic から VPC にセキュリティグループを
移行することはできません。 EC2-Classic のセ
キュリティグループのルールを VPC のセキュリ
ティグループにコピーすることはできます。 詳細
については、「セキュリティグループを作成す
る (p. 519)」を参照してください。
スナップショット
EC2-Classic と VPC の間で以下のリソースを共有したり、移動することはできません。
• スポットインスタンス
VPC でのみ利用可能なインスタンスタイプ
次のインスタンスタイプのインスタンスは、EC2-Classic でサポートされていないため、VPC で起動す
る必要があります。
• C4
• M4
• T2
アカウントで EC2-Classic がサポートされる場合で、デフォルト以外の VPC を作成していない場合、
次のいずれかを行って VPC 専用インスタンスを起動できます。
• サブネット ID またはネットワークインターフェイス ID をリクエストで指定して、デフォルト以外の
VPC を作成し、VPC 専用インスタンスを起動します。デフォルトの VPC がない場合に、AWS CLI、
Amazon EC2 API、または Amazon EC2 CLI を使用して VPC 専用インスタンスを起動するには、デ
フォルト以外の VPC を作成する必要があります。詳細については、「Virtual Private Cloud(VPC)
の作成 (p. 26)」を参照してください。
• Amazon EC2 コンソールを使用して VPC 専用インスタンスを起動します。Amazon EC2 コンソール
によって、アカウントにデフォルト以外の VPC が作成され、最初のアベイラビリティーゾーン内の
サブネットにインスタンスが起動します。コンソールによって、次の属性を持つ VPC が作成される
ことに注意してください。
• 各アベイラビリティーゾーンにパブリック IP アドレス属性が true に設定されたサブネットが 1
つずつ。これにより、インスタンスがパブリック IP アドレスを受け取ることができるようになり
ます。詳細については、Amazon VPC ユーザーガイド の「VPC の IP アドレス指定」を参照して
ください。
583
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon VPC ドキュメント
• インターネットゲートウェイ、およびインターネットゲートウェイに VPC のトラフィックをルー
ティングするメインルートテーブル。これにより、VPC で起動したインスタンスがインターネッ
ト経由で通信できるようになります。詳細については、Amazon VPC ユーザーガイド のインター
ネットゲートウェイを参照してください。
• VPC のデフォルトのセキュリティグループおよび各サブネットに関連付けられたデフォルトのネッ
トワーク ACL。詳細については、Amazon VPC ユーザーガイド の「VPC のセキュリティ」を参照
してください。
EC2-Classic にその他のリソースがある場合は、それらを EC2-VPC 移行する手順を実行することがで
きます。詳細については、「EC2-Classic の Linux インスタンスから VPC の Linux インスタンスへの
移行 (p. 596)」を参照してください。
Amazon VPC ドキュメント
Amazon VPC の詳細については、次のドキュメントを参照してください。
ガイド
説明
Amazon VPC 入門ガイド
Amazon VPC の実践的入門を提供します。
Amazon VPC ユーザーガイド
Amazon VPC の使用方法に関する詳細を提供しま
す。
Amazon VPC ネットワーク管理者ガイド
ネットワーク管理者がカスタマーゲートウェイを
設定する際に役立ちます。
サポートされているプラットフォーム
Abstract
AWS アカウントによってサポートされるプラットフォームでインスタンスを起動します。
Amazon EC2 は以下のプラットフォームをサポートします。お客様の AWS アカウントでは、インスタ
ンスを両方のプラットフォームで起動できる場合と、EC2-VPC だけで起動できる場合があり、どちら
になるかはリージョンごとに異なります。
プラット
フォーム
導入時期
説明
EC2-Classic Amazon EC2 のオリジナル お客様のインスタンスは他のユーザー様と共有する単一の
リリース
フラットネットワーク内で稼働します。
EC2-VPC
Amazon VPC のオリジナル お客様のインスタンスはご自分の AWS アカウントから論
リリース
理的に独立した仮想プライベートクラウド(VPC)内で稼
働します。
アカウントでどちらのプラットフォームを使用できるのかについて詳しくは、『Amazon VPC ユーザー
ガイド』の「可用性」を参照してください。EC2-Classic と EC2-VPC の相違点の詳細については、
「EC2-Classic と EC2-VPC の違い (p. 579)」を参照してください。
Amazon EC2 コンソールでサポートされるプラットフォーム
Amazon EC2 コンソールを見れば、指定したリージョンでインスタンスを起動可能なプラットフォー
ムや、そのリージョンにデフォルト VPC があるかどうかがわかります。
584
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
使用するリージョンがナビゲーションバーで選択されていることを確認してください。Amazon EC2
コンソールダッシュボード上で、 Account Attributes の下にある Supported Platforms を探します。
そこに値が 2 つ(EC2 と VPC)あれば、どちらのプラットフォームにもインスタンスを起動できます。
値が 1 つ(VPC)なら、EC2-VPC にのみインスタンスを起動できます。
インスタンスを起動できるのが EC2-VPC だけである場合は、デフォルトの VPC が自動的に作成され
ます。これで、お客様がインスタンスを起動するときは、デフォルトの VPC で起動されるようになり
ます。ただし、お客様が非デフォルト VPC を作成してその VPC でインスタンスを起動するよう指定
した場合を除きます。
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
Abstract
ClassicLink を使用して、EC2-Classic インスタンスがプライベート IP を使用して VPC 内のインスタンスと通信で
きるようにします。
ClassicLink は、EC2-Classic インスタンスを同じリージョンにあるアカウント内の VPC にリンクでき
るようにします。これによって、VPC のセキュリティグループを EC2-Classic インスタンスに関連付
けることができ、プライベート IP アドレスを使用して EC2-Classic インスタンスと VPC 内のインス
タンスが通信できるようになります。ClassicLink により、これらのプラットフォーム内のインスタン
ス間で通信を有効にするために、パブリック IP アドレスまたは Elastic IP アドレスを使用する必要が
なくなります。プライベート IP アドレスとパブリック IP アドレスの詳細については、「VPC の IP ア
ドレス指定」を参照してください。
585
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
ClassicLink は、EC2-Classic プラットフォームをサポートするアカウントを持つすべてのユーザーが利
用でき、任意のインスタンスタイプの EC2-Classic インスタンスで使用できます。アカウントでサポー
トされるプラットフォームを調べるには、「サポートされているプラットフォーム (p. 584)」を参照し
てください。VPC を使用するメリットの詳細については、「Amazon EC2 と Amazon Virtual Private
Cloud (p. 578)」を参照してください。VPC へのリソースの移行の詳細については、「EC2-Classic の
Linux インスタンスから VPC の Linux インスタンスへの移行 (p. 596)」を参照してください。
ClassicLink は追加料金なしで使用できます。データ転送とインスタンス時間の使用量に対する標準料
金が適用されます。
トピック
• ClassicLink の基礎 (p. 586)
• ClassicLink の制限事項 (p. 588)
• ClassicLink の使用 (p. 589)
• API と CLI の概要 (p. 593)
• 例: 3 層ウェブアプリケーションの ClassicLink セキュリティグループ設定 (p. 594)
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. 591)」を参照してください。
デフォルトでは、リンクされた EC2-Classic インスタンスから VPC のインスタンスに対応するために
パブリック DNS ホスト名を使用する場合、ホスト名はインスタンスのパブリック IP アドレスに解決
されます。VPC のインスタンスからリンクされた EC2-Classic インスタンスに対応するためにパブリッ
ク DNS ホスト名を使用する場合も同じになります。パブリック DNS ホスト名をプライベート IP アド
レスに解決するには、VPC の ClassicLink DNS サポートを有効にできます。詳細については、
「ClassicLink DNS サポートの有効化 (p. 592)」を参照してください。
インスタンスと VPC の間の ClassicLink 接続が不要になった場合、VPC から EC2-Classic インスタン
スのリンクを解除できます。これにより、EC2-Classic インスタンスから VPC のセキュリティグルー
プの関連付けが解除されます。リンクされた EC2-Classic インスタンスは、停止されたときに自動的に
VPC からリンク解除されます。VPC からすべてのリンクされた EC2-Classic インスタンスのリンクを
解除した後、VPC の ClassicLink を無効にすることができます。
586
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
ClassicLink による VPC 内の他の AWS サービスの使用
リンクされた EC2-Classic インスタンスは、VPC 内の Amazon Redshift、Amazon ElastiCache、Elastic
Load Balancing、および Amazon RDS の各 AWS サービスにアクセスできます。ただし、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.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
[Description] 列のネットワークインターフェイスの説明を確認します。 Amazon Redshift、Amazon
ElastiCache、Amazon RDS で使用されるネットワークインターフェイスには、説明に含まれる
サービスの名前が付けられます。たとえば、Amazon RDS インスタンスにアタッチされるネット
ワークインターフェイスの説明は、RDSNetworkInterface のようになります。
4.
5.
必要なネットワークインターフェイスを選択します。
詳細ペインで、[Primary private IP] フィールドからプライベート IP アドレスを取得します。
ClassicLink の使用の管理
デフォルトでは、IAM ユーザーには ClassicLink を使用するためのアクセス許可がありません。ClassicLink
用の VPC の有効化と無効化、ClassicLink が有効な VPC へのインターフェイスのリンクとリンク解除、
および ClassicLink が有効な VPC とリンクされた EC2-Classic インスタンスの表示の権限をユーザー
に付与する IAM ポリシーを作成できます。Amazon EC2 に対する IAM ポリシーの詳細については、
「Amazon EC2 の IAM ポリシー (p. 526)」を参照してください。
ClassicLink を操作するためのポリシーの詳細については、次の例(5. ClassicLink を使用する (p. 555))
を参照してください。
587
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
ClassicLink のセキュリティグループ
EC2-Classic インスタンスを VPC にリンクしても、EC2-Classic セキュリティグループには影響しま
せん。これらのセキュリティグループは、引き続きインスタンスに出入りするすべてのトラフィックを
管理します。ただし、VPC 内のインスタンスに出入りするトラフィックは例外で、EC2-Classic インス
タンスに関連付けられた VPC セキュリティグループによって管理されます。同じ VPC にリンクされ
た複数の EC2-Classic インスタンスは、同じ VPC セキュリティグループに関連付けられているかどう
かに関係なく、VPC を介して相互に通信できません。EC2-Classic インスタンス間の通信は、それらの
インスタンスに関連付けられた EC2-Classic セキュリティグループによって制御されます。セキュリ
ティグループ設定の例については、例: 3 層ウェブアプリケーションの ClassicLink セキュリティグルー
プ設定 (p. 594)を参照してください。
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 アドレス範囲である場合は、
EC2-Classic インスタンスを VPC にリンクする前にセキュリティへの影響を考慮してくださ
い。たとえば、リンクされた EC2-Classic インスタンスが、VPC の IP アドレス範囲内にある
ソース IP アドレスからサービス拒否(DoS)リクエストによるフラッド攻撃を受けた場合、応
答トラフィックは VPC に送信されます。RFC 1918 に規定されているように、プライベート
IP アドレスの範囲を使用して VPC を作成することを強くお勧めします。
ルートテーブルと VPC でのルーティングに関する詳細については、『Amazon VPC ユーザーガイド』
の「ルートテーブル」を参照してください。
ClassicLink の制限事項
ClassicLink 機能を使用するには、次の制限事項に注意する必要があります。
• EC2-Classic インスタンスは、一度に 1 つの VPC にのみリンクすることができます。
• リンクされた EC2-Classic インスタンスを停止した場合、インスタンスは VPC から自動的にリンク
が解除され、VPC セキュリティグループはインスタンスとの関連付けが失われます。インスタンス
を再起動した後、インスタンスを VPC に再びリンクできます。
• EC2-Classic インスタンスを、別のリージョンにある VPC や別の AWS アカウントの VPC にリンク
することはできません。
588
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
• 専用ハードウェアテナンシー用に設定された 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. 588)」を参照してください。
• VPC の Elastic IP アドレスをリンクされた EC2-Classic インスタンスに関連付けることはできませ
ん。
• 実行中のスポットインスタンスを VPC にリンクできます。 スポットインスタンスリクエストで、リ
クエストが受理されたときにインスタンスを VPC にリンクする必要があることを示すには、Amazon
EC2 コンソールで起動ウィザードを使用する必要があります。
• ClassicLink は VPC からの推移関係をサポートしていません。リンクされた EC2-Classic インスタン
スは、VPN 接続、VPC ピア接続、VPC エンドポイント、または VPC に関連付けられたインターネッ
トゲートウェイにアクセスできません。同様に、VPN 接続、VPC ピア接続、インターネットゲート
ウェイのもう一方の側のリソースは、リンクされた EC2-Classic インスタンスにアクセスできませ
ん。
• ClassicLink を使用して、VPC インスタンスを別の VPC または EC2-Classic リソースにリンクする
ことはできません。VPC 間のプライベート接続を確立するには、VPC ピア接続を使用できます。詳
細については、『Amazon VPC ユーザーガイド』の「VPC ピア接続」を参照してください。
• 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. 590)
• VPC へのインスタンスのリンク (p. 590)
• ClassicLink が有効になった VPC の作成 (p. 590)
• 起動時の EC2-Classic インスタンスの VPC へのリンク (p. 591)
• ClassicLink が有効な VPC とリンクされた EC2-Classic インスタンスの表示 (p. 591)
589
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
• ClassicLink DNS サポートの有効化 (p. 592)
• ClassicLinkDNS サポートを無効にする (p. 592)
• VPC からの EC2-Classic インスタンスのリンク解除 (p. 592)
• VPC に対する ClassicLink の無効化 (p. 593)
ClassicLink 用の VPC の有効化
EC2-Classic インスタンスを VPC にリンクするには、まず ClassicLink 用の VPC を有効にする必要が
あります。VPC のルーティングが EC2-Classic のプライベート IP アドレス範囲と競合する場合、
ClassicLink 用の VPC を有効にすることはできません。詳細については、「ClassicLink のルーティン
グ (p. 588)」を参照してください。
ClassicLink 用に VPC を有効にするには
1.
2.
https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。
画面左枠のナビゲーションペインで、[VPC] を選択します。
3.
4.
VPC を選択し、[Actions]、[Enable ClassicLink] の順に選択します。
確認ダイアログボックスで、[Yes, Enable] を選択します。
VPC へのインスタンスのリンク
ClassicLink 用の VPC を有効にした後、EC2-Classic インスタンスを VPC にリンクすることができま
す。
Note
実行中の EC2-Classic インスタンスのみを VPC にリンクできます。stopped 状態にあるイン
スタンスをリンクすることはできません。
インスタンスを VPC にリンクするには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[インスタンス] を選択します。
実行中の EC2-Classic インスタンスを選択し、[Actions]、[ClassicLink]、[Link to VPC] の順に選択
します。 複数のインスタンスを選択して、同じ VPC にリンクすることができます。
表示されたダイアログボックスで、リストから VPC を選択します。ClassicLink 用に有効になった
VPC のみが表示されます。
インスタンスに関連付ける VPC セキュリティグループを 1 つ以上選択します。終了したら [Link
to VPC] を選択します。
ClassicLink が有効になった VPC の作成
Amazon VPC コンソールの VPC ウィザードを使用することによって、新しい VPC を作成し、すぐに
ClassicLink 用に有効にすることができます。
ClassicLink が有効になった VPC を作成するには
1.
https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。
2.
3.
Amazon VPC ダッシュボードで、[Start VPC Wizard] を選択します。
VPC 設定オプションの 1 つを選択し、[Select] を選択します。
590
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
4.
ウィザードの次のページで、[Enable ClassicLink] の [Yes] を選択します。ウィザードの残りの手順
を完了して、VPC を作成します。VPC ウィザードの使用の詳細については、『Amazon VPC ユー
ザーガイド』の「Amazon VPC のシナリオ」を参照してください。
起動時の EC2-Classic インスタンスの VPC へのリンク
Amazon EC2 コンソールの起動ウィザードを使用して、EC2-Classic インスタンスを起動し、すぐに
ClassicLink が有効な VPC にリンクすることができます。
起動時にインスタンスを VPC にリンクするには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
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. 256)」を参照してください。
ClassicLink が有効な VPC とリンクされた EC2-Classic インスタンスの表示
Amazon VPC コンソールで ClassicLink が有効な VPC をすべて表示し、Amazon EC2 コンソールでリ
ンクされた EC2-Classic インスタンスをすべて表示できます。
ClassicLink が有効な VPC を表示するには
1.
2.
3.
https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。
画面左枠のナビゲーションペインで、[VPC] を選択します。
VPC を選択し、[Summary] タブで、[ClassicLink] フィールドを探します。値 [Enabled] は、VPC
が ClassicLink に対して有効であることを示します。
4.
または、[ClassicLink] 列を探し、各 VPC に表示される値([Enabled] または [Disabled])を確認し
ます。この列が表示されない場合は、[Edit Table Columns」(歯車型のアイコン) をクリックし、
[ClassicLink] 属性を選択してから、[Close] を選択します。
リンクされた EC2-Classic インスタンスを表示するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[インスタンス] を選択します。
3.
EC2-Classic インスタンスを選択し、[Description] タブで、[ClassicLink] フィールドを探します。
インスタンスが VPC にリンクされている場合、このフィールドにはインスタンスのリンク先 VPC
の ID が表示されます。インスタンスが VPC にリンクされていない場合、フィールドには [Unlinked]
と表示されます。
4.
または、インスタンスをフィルタリングして、特定の VPC やセキュリティグループのリンクされ
た EC2-Classic インスタンスのみを表示できます。検索バーで「ClassicLink」と入力し、関連
591
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.
2.
3.
4.
https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。
画面左枠のナビゲーションペインで、[VPC] を選択します。
VPC を選択し、[Actions]、[Edit ClassicLink DNS Support] の順に選択します。
[Yes] を選択して ClassicLink DNS サポートを有効にし、[Save] を選択します。
ClassicLinkDNS サポートを無効にする
VPC の ClassicLink DNS サポートを無効にして、リンクされた EC2-Classic インスタンスと VPC のイ
ンスタンス間で対応された DNS ホスト名がパブリック IP アドレスに解決され、プライベート IP アド
レスに解決されないようにします。
ClassicLink DNS サポートを無効にするには
1.
2.
3.
4.
https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。
画面左枠のナビゲーションペインで、[VPC] を選択します。
VPC を選択し、[Actions]、[Edit ClassicLink DNS Support] の順に選択します。
[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] を選択し、インスタンスを選択します。
592
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
3.
4.
[Actions] リストで、[ClassicLink] を選択し、[Unlink Instance] を選択します。複数のインスタンス
を選択して、同じ VPC からリンクを解除することができます。
確認ダイアログボックスで [Yes] を選択します。
VPC に対する ClassicLink の無効化
EC2-Classic インスタンスと VPC の間の接続が不要になった場合は、VPC の ClassicLink を無効にす
ることができます。最初に、VPC にリンクされたすべての EC2-Classic インスタンスのリンクを解除
します。
VPC の ClassicLink を無効にするには
1.
https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。
2.
3.
4.
画面左枠のナビゲーションペインで、[VPC] を選択します。
VPC を選択し、[Actions]、[Disable ClassicLink] の順に選択します。
確認ダイアログボックスで、[Yes, Disable] を選択します。
API と CLI の概要
このページで説明しているタスクは、コマンドラインまたはクエリ API を使用して実行できます。コ
マンドラインインターフェイスの詳細および利用できる API アクションの一覧については、「Amazon
EC2 へのアクセス (p. 3)」を参照してください。
ClassicLink 用の VPC の有効化
•
•
•
•
enable-vpc-classic-link(AWS CLI)
ec2-enable-vpc-classic-link(Amazon EC2 CLI)
Enable-EC2VpcClassicLink(AWS Tools for Windows PowerShell)
EnableVpcClassicLink(Amazon EC2 クエリ API)
VPC への EC2-Classic インスタンスのリンク(アタッチ)
• attach-classic-link-vpc(AWS CLI)
• ec2-attach-classic-link-vpc(Amazon EC2 CLI)
• Add-EC2ClassicLinkVpc(AWS Tools for Windows PowerShell)
• AttachClassicLinkVpc(Amazon EC2 クエリ API)
VPC からの EC2-Classic インスタンスのリンク解除(デタッチ)
• detach-classic-link-vpc(AWS CLI)
• ec2-detach-classic-link-vpc(Amazon EC2 CLI)
• Dismount-EC2ClassicLinkVpc(AWS Tools for Windows PowerShell)
• DetachClassicLinkVpc(Amazon EC2 クエリ API)
VPC の ClassicLink の無効化
• disable-vpc-classic-link(AWS CLI)
• ec2-disable-vpc-classic-link(Amazon EC2 CLI)
• Disable-EC2VpcClassicLink(AWS Tools for Windows PowerShell)
• DisableVpcClassicLink(Amazon EC2 クエリ API)
593
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ClassicLink
VPC の ClassicLink ステータスの表示
• describe-vpc-classic-link(AWS CLI)
• ec2-describe-vpc-classic-link(Amazon EC2 CLI)
• Get-EC2VpcClassicLink(AWS Tools for Windows PowerShell)
• DescribeVpcClassicLink(Amazon EC2 クエリ API)
リンクされた EC2-Classic インスタンスの表示
• describe-classic-link-instances(AWS CLI)
• ec2-describe-classic-link-instances(Amazon EC2 CLI)
• Get-EC2ClassicLinkInstance(AWS Tools for Windows PowerShell)
• DescribeClassicLinkInstances(Amazon EC2 クエリ 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)。
次の図は、インスタンスのアーキテクチャーとそれらのセキュリティグループ設定を示しています。
594
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)のセキュリティグループルールを以下に示します。
アウトバウンド
送信先
タイプ
ポート範囲
コメント
sg-3c3c3c3c
TCP
6001
ウェブサーバーから VPC のアプリ
ケーションサーバーへの(または sg3c3c3c3c に関連付けられている他の
インスタンスへの)アウトバウンド
トラフィックを許可します。
アプリケーションサーバーのセキュリティグループ(sg-3c3c3c3c)
595
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
アプリケーションサーバーに関連付けられている 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
インスタンスへの移行
Abstract
EC2-Classic から EC2-VPC に移行します。
アカウントを作成した時期、および使用するリージョンによって、AWS アカウントで EC2-Classic と
EC2-VPC の両方がサポートされる可能性があります。詳細について、およびアカウントでサポートさ
れるプラットフォームを確認するには、「サポートされているプラットフォーム (p. 584)」を参照して
ください。VPC を使用するメリットについて、および EC2-Classic と EC2-VPC の違いについては、
「Amazon EC2 と Amazon Virtual Private Cloud (p. 578)」を参照してください。
596
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
AWS アカウントでリソースを作成して使用します。拡張ネットワーキングと T2 インスタンスなど、
VPC でのみ使用できるリソースと機能もあります。いくつかのリソースは EC2-Classic と VPC の間で
共有できますが、ほかのリソースは共有できません。詳細については「EC2-Classic と EC2-VPC との
間でのリソースの共有とアクセス (p. 582)」を参照してください。
アカウントが EC2-Classic をサポートしている場合、EC2-Classic 用にリソースの設定を行った場合が
あります。 EC2-Classic から VPC へ移行する場合には、お使いの VPC でこれらのリソースを再作成
する必要があります。
VPC への移行には 2 つの方法があります。 完全移行する、または時間をかけて少しずつ移行する方法
が利用できます。 選択する方法は EC2-Classic アプリケーションのサイズと複雑さによって異なりま
す。たとえば、静的なウェブサイトを 1 つまたは 2 つのインスタンスで実行しているアプリケーショ
ンの場合、短期間のダウンタイムを許容することができ、よって完全移行ができます。 プロセスを中
断できない多層アプリケーションの場合は、ClassicLink を使用して増分移行を実行できます。これに
よって、アプリケーションが完全に VPC で実行されるようになるまで、機能のコンポーネントを 1 つ
ずつ転送できます。
Windows インスタンスを移行する必要がある場合は、『Microsoft Windows インスタンスの Amazon
EC2 ユーザーガイド』の「EC2-Classic から VPC への Windows インスタンスの移行」を参照してく
ださい。
目次
• VPC への完全移行 (p. 597)
• ClassicLink を使用したVPC への増分移行 (p. 603)
VPC への完全移行
以下のタスクを実行して、EC2-Classic から VPC へアプリケーションを完全移行します。
タスク
• ステップ 1: VPC を作成する (p. 597)
• ステップ 2: セキュリティグループを設定する (p. 598)
• ステップ 3: EC2-Classic インスタンスから AMI を作成する (p. 599)
• ステップ 4: VPC でインスタンスを起動する (p. 600)
• 例: シンプルなウェブのアプリケーションの移行 (p. 601)
ステップ 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 を指
定します。
• 既存の AWS アカウントでは、Amazon VPC コンソールを開き、要件に応じて VPC のコンポーネン
トを設定します。詳細については、「VPC とサブネット」を参照してください。特定のサブネット
597
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
の番号など、VPC に特定の要件がある場合は、このオプションを使用します。インスタンスを起動
するたびにこの VPC を指定します。
Note
T2 インスタンスタイプは、VPC で起動する必要があります。EC2-Classic アカウントに VPC
がなく、Amazon EC2 コンソールで起動ウィザードを使用して T2 インスタンスを起動する場
合は、ウィザードによりデフォルト以外の VPC が作成されます。T2 インスタンスタイプの詳
細については、「T2 インスタンス (p. 136)」を参照してください。T2 インスタンスは、プライ
ベート IP アドレスを使用して EC2-Classic インスタンスと通信できません。このトピックで
説明されている方法を使用して、同じ VPC に既存のインスタンスを移行することを検討しま
す。
ステップ 2: セキュリティグループを設定する
EC2-Classic と VPC で同じセキュリティグループを使用することはできません。ただし、VPC のイン
スタンスで EC2-Classic のインスタンスと同じセキュリティグループのルールを使用したい場合、
Amazon EC2 コンソールを使用して既存の EC2-Classic のセキュリティグループのルールを新しい VPC
のセキュリティグループにコピーすることができます。
Important
同じリージョンの同じ AWS アカウントの新しいセキュリティグループにのみセキュリティグ
ループのルールをコピーできます。新しい AWS アカウントを作成した場合、この方法を使用
して新しいアカウントに既存のセキュリティグループのルールをコピーすることはできませ
ん。新しいセキュリティグループを作成し、独自ルールを追加する必要があります。新しいセ
キュリティグループの作成方法については、「Linux インスタンスの Amazon EC2 セキュリ
ティグループ (p. 514)」を参照してください。
セキュリティグループのルールを新しいセキュリティグループにコピーするには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Security Groups] を選択します。
EC2-Classic インスタンスに関連付けられたセキュリティグループを選択し、[Actions] を選択し
て、[Copy to new] を選択します。
[Create Security Group] ダイアログボックスで、新しいセキュリティグループの名前と説明を指定
します。[VPC] リストから使用している VPC を選択します。
[Inbound] タブには、EC2-Classic セキュリティグループのルールが自動入力されます。必要に応
じてルールを変更できます。[Outbound] タブには、すべてのアウトバウンドトラフィックを許可
するルールが自動的に作成されます。セキュリティグループのルールの変更方法については、
「Linux インスタンスの Amazon EC2 セキュリティグループ (p. 514)」を参照してください。
Note
他のセキュリティグループを参照する EC2-Classic セキュリティグループのルールを定義
した場合、VPC セキュリティグループでそのルールを使用することはできません。同じ
VPC のセキュリティグループを参照するようにルールを変更します。
6.
[Create] を選択します。
598
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
ステップ 3: EC2-Classic インスタンスから AMI を作成する
AMI はインスタンスを起動するためのテンプレートです。既存の EC2-Classic インスタンスに基づいて
独自の AMI を作成し、その AMI を使用して VPC でインスタンスを起動できます。
AMI の作成に使用する方法は、インスタンスのルートデバイスタイプと、インスタンスが実行されるオ
ペレーティングシステムのプラットフォームによって異なります。インスタンスのルートデバイスタイ
プを確認するには、[Instances] ページに移動し、インスタンスを選択して、[Description ] タブの [Root
device type] フィールドの情報を確認します。この値が ebs の場合、インスタンスは EBS-Backed で
す。この値が instance-storeの場合、インスタンスは、Instance Store-Backed です。また、
describe-instances AWS CLI コマンドを使用してルートデバイスタイプを確認することもできます。
次の表は、インスタンスのルートデバイスタイプ、およびソフトウェアプラットフォームに基づいて
AMI を作成するオプションを示します。
Important
インスタンスタイプには、PV と HVM 仮想化の両方をサポートするものもありますが、どちら
か一方のみサポートするものもあります。AMI を使用して現在のインスタンスタイプと異なる
インスタンスタイプを起動する場合、そのインスタンスタイプで AMI が提供する仮想化のタイ
プがサポートされていることを確認します。AMI で PV 仮想化がサポートされ、HVM 仮想化を
サポートするインスタンスタイプを使用する場合、HVM ベースの AMI にソフトウェアを再イ
ンストールする必要がある場合があります。PV および HVM 仮想化に関する詳細については、
「Linux AMI 仮想化タイプ (p. 74)」を参照してください。
インスタンスのルートデ アクション
バイスタイプ
EBS
インスタンスから EBS-backed AMI を作成します。詳細については、
「Amazon EBS-Backed Linux AMI の作成 (p. 93)」を参照してください。
インスタンスストア
AMI ツールを使用してインスタンスから instance store-backed AMI を作成
します。詳細については、「Instance Store-Backed Linux AMI の作
成 (p. 97)」を参照してください。
インスタンスストア
インスタンスデータを EBS ボリュームに転送し、ボリュームのスナップ
ショットを作成して、スナップショットから AMI を作成します。詳細につ
いては、「Instance Store-Backed AMI を Amazon EBS-Backed AMI に変換
する (p. 104)」を参照してください。
Note
この方法では、instance store-backed インスタンスが EBS-backed
インスタンスに変換されます。
(オプション) Amazon EBS ボリュームにデータを保存する
Amazon EBS ボリュームを作成して、物理ハードドライブを使用するようにそのボリュームを使用し
てインスタンスのデータをバックアップおよび保存できます。Amazon EBS ボリュームは同アベイラ
ビリティーゾーンのすべてのインスタンスにアタッチおよびデタッチできます。EC2-Classic のインス
タンスからボリュームをデタッチして、同じアベイラビリティーゾーンの VPC で起動する新しいイン
スタンスにアタッチできます。
Amazon EBS ボリュームの詳細については、次のトピックを参照してください。
599
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
• Amazon EBS ボリューム (p. 665)
• Amazon EBS ボリュームの作成 (p. 672)
• インスタンスへの Amazon EBS ボリュームのアタッチ (p. 676)
Amazon EBS ボリュームのデータをバックアップするには、定期的にボリュームのスナップショット
を作成します。必要な場合は、スナップショットから Amazon EBS ボリュームを復元できます。Amazon
EBS スナップショットの詳細については、次のトピックを参照してください。
• Amazon EBS スナップショット (p. 709)
• Amazon EBS スナップショットの作成 (p. 710)
• スナップショットからの Amazon EBS ボリュームの復元 (p. 674)
ステップ 4: VPC でインスタンスを起動する
AMI を作成した後、VPC でインスタンスを起動できます。インスタンスは、既存の EC2-Classic イン
スタンスと同じデータと構成です。
既存のアカウントで作成した VPC、または新しい VPC のみの AWS アカウントで、インスタンスを起
動できます。
既存の EC2-Classic アカウントを使用する
Amazon EC2 起動ウィザードを使用して、VPC でインスタンスを起動できます。
VPC でインスタンスを起動するには
1.
2.
3.
4.
5.
6.
7.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ダッシュボードで、[Launch Instance] を選択します。
[ Choose an Amazon Machine Image] ページで、[My AMIs] カテゴリを選択し、作成した AMI を選
択します。
[Choose an Instance Type] ページで、インスタンスのタイプを選択し、[Next: Configure Instance
Details] を選択します。
[Configure Instance Details] ページで、[Network] リストから VPC を選択します。[Subnet] リスト
から必要なサブネットを選択します。必要な他の詳細を設定し、[Configure Security Group] ページ
が表示されるまでウィザードの次のページに進みます。
[Select an existing group] を選択し、前に作成したセキュリティグループを選択します。[Review
and Launch] を選択します。
インスタンスの詳細を確認し、[Launch] を選択して、キーペアを指定し、インスタンスを起動しま
す。
ウィザードの各ステップで設定できるパラメータの詳細については、「インスタンスの作成 (p. 255)」
を参照してください。
新しい、VPC のみのアカウントを使用する
新しい AWS アカウントでインスタンスを起動するには、最初に新しいアカウントで作成した AMI を
共有する必要があります。その後、Amazon EC2 起動ウィザードを使用して、デフォルトの VPC でイ
ンスタンスを起動できます。
新しい AWS アカウントと AMI を共有するには
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
AMI で作成したアカウントに切り替えます。
ナビゲーションペインで [AMIs] を選択します。
600
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
4.
5.
[Filter] リストで、[Owned by me] が選択されていることを確認し、AMI を選択します。
[Permissions] タブで、[Edit] を選択します。新しい AWS アカウントのアカウント番号を入力し、
[Add Permission] を選択して、[Save] を選択します。
インスタンスをデフォルトの VPC 内に起動するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
新しい AWS アカウントに切り替えます。
3.
4.
ナビゲーションペインで [AMIs] を選択します。
[Filter] リストで [Private images] を選択します。EC2-Classic アカウントから共有した AMI を選択
し、[Launch] を選択します。
[Choose an Instance Type] ページで、インスタンスのタイプを選択し、[Next: Configure Instance
Details] を選択します。
5.
6.
7.
8.
[Configure Instance Details] ページの [Network] リストでデフォルトの VPC が選択されている必要
があります。必要な他の詳細を設定し、[Configure Security Group] ページが表示されるまでウィ
ザードの次のページに進みます。
[Select an existing group] を選択し、前に作成したセキュリティグループを選択します。[Review
and Launch] を選択します。
インスタンスの詳細を確認し、[Launch] を選択して、キーペアを指定し、インスタンスを起動しま
す。
ウィザードの各ステップで設定できるパラメータの詳細については、「インスタンスの作成 (p. 255)」
を参照してください。
例: シンプルなウェブのアプリケーションの移行
この例では、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) デ
601
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
バイスを介してインターネットアクセスを有効にすることができます。インターネットから提供される
データベースサーバーの定期的な更新やパッチをサポートするように、NAT デバイスを設定できます。
EC2-VPC に Elastic IP アドレスを移行し、ウェブサーバー間のトラフィックの負荷を分散するため、
パブリックサブネットで Elastic Load Balancer を作成します。
VPC にウェブアプリケーションを移行するには、次の手順に従います。
• VPC を作成する: この場合、Amazon VPC コンソールで VPC ウィザードを使用して、VPC と サブ
ネットを作成できます。2 番目のウィザード設定では 1 つのプライベートサブネットと 1 つのパブ
リックサブネットを持つ VPC を作成し、自分のパブリックサブネットの NAT デバイスを起動して、
設定します。 詳細については、「Amazon VPC ユーザーガイド」の「シナリオ 2: パブリックサブ
ネットとプライベートサブネットを持つ VPC」を参照してください。
• インスタンスから AMI を作成する: いずれかのウェブサーバーから AMI を作成し、データベースサー
バーから 2 番目の AMI を作成します。詳細については、「ステップ 3: EC2-Classic インスタンスか
ら AMI を作成する (p. 599)」を参照してください。
• セキュリティグループを設定する: EC2-Classic 環境では、ウェブサーバー用に 1 つのセキュリティ
グループ、データベースサーバー用にもう 1 つのセキュリティグループを設定します。Amazon EC2
コンソールを使用して、VPC の新しいセキュリティグループに、各セキュリティグループのルール
をコピーします。詳細については、「ステップ 2: セキュリティグループを設定する (p. 598)」を参照
してください。
Tip
最初に他のセキュリティグループから参照されるセキュリティグループを作成します。
• 新しい VPC でインスタンスを起動する: パブリックサブネットで代替ウェブサーバーを起動し、プ
ライベートサブネットで代替データベースサーバーを起動します。詳細については、「ステップ 4:
VPC でインスタンスを起動する (p. 600)」を参照してください。
• NAT デバイスを設定する: NAT インスタンスを使用している場合、プライベートサブネットからの
HTTP および HTTPS トラフィックを許可するためのセキュリティグループを作成する必要がありま
す。詳細については、「NAT インスタンス」を参照してください。NAT ゲートウェイを使用してい
る場合は、プライベートサブネットからのトラフィックは自動的に許可されます。
• データベースを設定する: EC2-Classic でデータベースサーバーから AMI を作成したとき、そのイン
スタンスに格納されているすべての設定情報は AMI にコピーされています。新しいデータベース サー
バーに接続し、設定の詳細を更新する必要がある可能性があります。たとえば、EC2-Classic のウェ
602
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
ブサーバーに完全な読み取り、書き込み、変更のアクセス許可を付与するようにデータベースを設定
した場合、代わりに新しいウェブサーバーに同じアクセス許可を付与するように設定ファイルを更新
する必要があります。
• ウェブサーバーを設定する: ウェブサーバーは 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. 621)」を
参照してください。
• 新しいロードバランサーを作成する: インスタンスへのトラフィックの負荷を分散するために引き続
き 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 への増分移行
Abstract
ClassicLink を使用して EC2-Classic から EC2-VPC に移行します。
ClassicLink 機能によって、VPC への増分移行の管理が容易になります。ClassicLink を使用すると、
EC2-Classic インスタンスを同じリージョンのアカウント内の VPC にリンクすることができます。こ
れにより、新しい VPC リソースは、プライベート IP アドレスを使用して、EC2-Classic インスタンス
と通信できます。次に、機能を 1 つずつ VPC に移行できます。このトピックでは、EC2-Classic から
VPC への増分移行を管理するための基本的な手順を説明し、。
ClassicLink の詳細については、「ClassicLink (p. 585)」を参照してください。
トピック
• ステップ 1: 移行シーケンスを準備する (p. 604)
• ステップ 2: VPC を作成する (p. 604)
• ステップ 3: ClassicLink 用に VPC を有効にする (p. 604)
• ステップ 4: EC2-Classic インスタンスから AMI を作成する (p. 604)
• ステップ 5: VPC でインスタンスを起動する (p. 606)
603
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
• ステップ 6: EC2-Classic インスタンスを VPC にリンクする (p. 606)
• ステップ 7: VPC への移行を完了する (p. 606)
ステップ 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. 585)」を参照してください。
ClassicLink 用に VPC を有効にするには
1.
2.
3.
https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。
画面左枠のナビゲーションペインで、[Your VPCs] を選択します。
VPC を選択し、[Actions] リストから [Enable ClassicLink] を選択します。
4.
確認ダイアログボックスで、[Yes, Enable] を選択します。
ステップ 4: EC2-Classic インスタンスから AMI を作成する
AMI はインスタンスを起動するためのテンプレートです。既存の EC2-Classic インスタンスに基づいて
独自の AMI を作成し、その AMI を使用して VPC でインスタンスを起動できます。
AMI の作成に使用する方法は、インスタンスのルートデバイスタイプと、インスタンスが実行されるオ
ペレーティングシステムのプラットフォームによって異なります。インスタンスのルートデバイスタイ
プを確認するには、[Instances] ページに移動し、インスタンスを選択して、[Description ] タブの [Root
device type] フィールドの情報を確認します。この値が ebs の場合、インスタンスは EBS-Backed で
す。この値が instance-storeの場合、インスタンスは、Instance Store-Backed です。また、
describe-instances AWS CLI コマンドを使用してルートデバイスタイプを確認することもできます。
次の表は、インスタンスのルートデバイスタイプ、およびソフトウェアプラットフォームに基づいて
AMI を作成するオプションを示します。
604
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から VPC への移行
Important
インスタンスタイプには、PV と HVM 仮想化の両方をサポートするものもありますが、どちら
か一方のみサポートするものもあります。AMI を使用して現在のインスタンスタイプと異なる
インスタンスタイプを起動する場合、そのインスタンスタイプで AMI が提供する仮想化のタイ
プがサポートされていることを確認します。AMI で PV 仮想化がサポートされ、HVM 仮想化を
サポートするインスタンスタイプを使用する場合、HVM ベースの AMI にソフトウェアを再イ
ンストールする必要がある場合があります。PV および HVM 仮想化に関する詳細については、
「Linux AMI 仮想化タイプ (p. 74)」を参照してください。
インスタンスのルートデ アクション
バイスタイプ
EBS
インスタンスから EBS-backed AMI を作成します。詳細については、
「Amazon EBS-Backed Linux AMI の作成 (p. 93)」を参照してください。
インスタンスストア
AMI ツールを使用してインスタンスから instance store-backed AMI を作成
します。詳細については、「Instance Store-Backed Linux AMI の作
成 (p. 97)」を参照してください。
インスタンスストア
インスタンスデータを EBS ボリュームに転送し、ボリュームのスナップ
ショットを作成して、スナップショットから AMI を作成します。詳細につ
いては、「Instance Store-Backed AMI を Amazon EBS-Backed AMI に変換
する (p. 104)」を参照してください。
Note
この方法では、instance store-backed インスタンスが EBS-backed
インスタンスに変換されます。
(オプション) Amazon EBS ボリュームにデータを保存する
Amazon EBS ボリュームを作成して、物理ハードドライブを使用するようにそのボリュームを使用し
てインスタンスのデータをバックアップおよび保存できます。Amazon EBS ボリュームは同アベイラ
ビリティーゾーンのすべてのインスタンスにアタッチおよびデタッチできます。EC2-Classic のインス
タンスからボリュームをデタッチして、同じアベイラビリティーゾーンの VPC で起動する新しいイン
スタンスにアタッチできます。
Amazon EBS ボリュームの詳細については、次のトピックを参照してください。
• Amazon EBS ボリューム (p. 665)
• Amazon EBS ボリュームの作成 (p. 672)
• インスタンスへの Amazon EBS ボリュームのアタッチ (p. 676)
Amazon EBS ボリュームのデータをバックアップするには、定期的にボリュームのスナップショット
を作成します。必要な場合は、スナップショットから Amazon EBS ボリュームを復元できます。Amazon
EBS スナップショットの詳細については、次のトピックを参照してください。
• Amazon EBS スナップショット (p. 709)
• Amazon EBS スナップショットの作成 (p. 710)
• スナップショットからの Amazon EBS ボリュームの復元 (p. 674)
605
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 を選
択します。
[Choose an Instance Type] ページで、インスタンスのタイプを選択し、[Next: Configure Instance
Details] を選択します。
[Configure Instance Details] ページで、[Network] リストから VPC を選択します。[Subnet] リスト
から必要なサブネットを選択します。必要な他の詳細を設定し、[Configure Security Group] ページ
が表示されるまでウィザードの次のページに進みます。
[Select an existing group] を選択し、前に作成したセキュリティグループを選択します。[Review
and Launch] を選択します。
インスタンスの詳細を確認し、[Launch] を選択して、キーペアを指定し、インスタンスを起動しま
す。
4.
5.
6.
7.
ウィザードの各ステップで設定できるパラメータの詳細については、「インスタンスの作成 (p. 255)」
を参照してください。
インスタンスを起動し、running 状態になったら、必要に応じて、インスタンスに接続してインスタ
ンスを設定できます。
ステップ 6: EC2-Classic インスタンスを VPC にリンクする
インスタンスを設定し、アプリケーションの機能を VPC で利用できるようにした後、ClassicLink を使
用して、新しい VPC のインスタンスと EC2-Classic インスタンスの間のプライベート IP 通信を有効
にすることができます。
インスタンスを VPC にリンクするには
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Instances] を選択します。
EC2-Classic インスタンスを選択し、[Actions]、[ClassicLink]、[Link to VPC] の順に選択します。
Note
インスタンスが running 状態であることを確認します。
4.
5.
ダイアログボックスで、ClassicLink が有効な VPC を選択します(ClassicLink が有効になってい
る VPC のみが表示されます)。
インスタンスに関連付ける VPC のセキュリティグループを 1 つ以上選択します。終了したら [Link
to VPC] を選択します。
ステップ 7: VPC への移行を完了する
アプリケーションのサイズや移行する必要がある機能に応じて、アプリケーションのすべてのコンポー
ネントを EC2-Classic から VPC に移動するまで、ステップ 4 ~ 6 を繰り返します。
606
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの IP アドレッシング
EC2-Classic インスタンスと VPC インスタンスの間で内部コミュニケーションを有効にした後、アプ
リケーションが EC2-Classic プラットフォーム内のサービスではなく、VPC 内の移行されたサービス
を使用するように、アプリケーションを更新する必要があります。そのための詳細な手順は、アプリ
ケーションの設計によって異なります。通常、この作業では、EC2-Classic インスタンスではなく VPC
インスタンスの IP アドレスを指すように送信先 IP アドレスを更新します。EC2-Classic プラットフォー
ムで現在使用している Elastic IP アドレスを EC2-VPC プラットフォームに移行できます。詳細につい
ては、「EC2-Classic から EC2-VPC への Elastic IP アドレスの移行 (p. 621)」を参照してください。
このステップを完了し、アプリケーションが VPC から機能していることをテストしたら、EC2-Classic
インスタンスを終了し、VPC の ClassicLink を無効にすることができます。また、不要になった
EC2-Classic リソースをクリーンアップして、リソースの料金が発生することを回避できます。たとえ
ば、Elastic IP アドレスを解放し、EC2-Classic インスタンスに関連付けられていたボリュームを削除
できます。
Amazon EC2 インスタンスの IP アドレッシング
Abstract
インスタンスが Amazon EC2 または VPC のどちらで起動されたかに応じて、Amazon EC2 がパブリック IP アド
レス、プライベート IP アドレス、および DNS ホスト名をインスタンスに提供する方法を説明します。
インスタンスには、IP アドレスと DNS ホスト名が付与されます。これらは、インスタンスが EC2-Classic
プラットフォームと Virtual Private Cloud(VPC)のどちらで起動されたかに応じて異なることがあり
ます。
EC2-Classic および EC2-VPC プラットフォームの詳細については、「サポートされているプラット
フォーム (p. 584)」を参照してください。Amazon VPC の詳細については、「What is Amazon VPC?」
を参照してください(「Amazon VPC ユーザーガイド」)。
目次
• プライベート IP アドレスと内部 DNS ホスト名 (p. 607)
• パブリック IP アドレスと外部 DNS ホスト名 (p. 608)
• Elastic IP アドレス (p. 609)
• Amazon DNS サーバー (p. 609)
• EC2-Classic と EC2-VPC の IP アドレスの違い (p. 609)
• パブリック IP アドレス、プライベート IP アドレス、Elastic IP アドレスの決定 (p. 610)
• パブリック IP アドレスの割り当て (p. 612)
• 複数のプライベート IP アドレス (p. 613)
プライベート IP アドレスと内部 DNS ホスト名
プライベート IP アドレスは、インターネットから到達できない IP アドレスです。プライベート IP ア
ドレスは、同じネットワーク(EC2-Classic または VPC)内のインスタンス間の通信に使用できます。
プライベート IP アドレスの標準および仕様については、「RFC 1918」を参照してください。
インスタンスが起動されるときに、そのインスタンスのプライベート IP アドレスが DHCP を使用して
割り当てられます。また、各インスタンスには、インスタンスのプライベート IP アドレスに解決され
る内部 DNS ホスト名(ip-10-251-50-35.ec2.internal など)が割り当てられます。内部 DNS ホ
スト名は同じネットワーク内のインスタンス間の通信に使用できます。ただし、インスタンスが含まれ
るネットワークの外部の DNS ホスト名を解決することはできません。
VPC で起動されるインスタンスには、サブネットのアドレス範囲のプライマリプライベート IP アドレ
スが当てられます。詳細については、『Amazon VPC ユーザーガイド』の「サブネットのサイズ設定」
607
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
パブリック IP アドレスと外部 DNS ホスト名
を参照してください。起動時にプライマリプライベート IP アドレスを指定しない場合、サブネットの
範囲内で使用可能な IP アドレスが自動的に選択されます。VPC の各インスタンスには、プライマリプ
ライベート IP アドレスが割り当てられたデフォルトのネットワークインターフェイス(eth0)があり
ます。追加のプライベート IP アドレス(セカンダリプライベート IP アドレス)も指定できます。プラ
イマリプライベート IP アドレスとは異なり、セカンダリプライベート IP アドレスは、別のインスタン
スに割り当て直すことができます。詳細については、「複数のプライベート IP アドレス (p. 613)」を参
照してください。
EC2-Classic で起動されるインスタンスでは、インスタンスが停止または終了したときにプライベート
IP アドレスが解放されます。停止したインスタンスを再開すると、インスタンスには新しいプライベー
ト IP アドレスが送信されます。
VPC で起動されたインスタンスの場合、インスタンスが停止し、再開された場合は、プライベート IP
アドレスとネットワークインターフェイスの関連付けが維持され、インスタンスが終了された場合は解
放されます。
EC2-Classic でカスタムファイアウォール構成を作成した場合、Amazon DNS サーバーのアドレスから
のポート 53(DNS)(エフェメラル範囲の送信先ポート)からのインバウンドトラフィックを許可す
るルールをファイウォールに作成する必要があります。そうしない場合、インスタンスからの内部 DNS
解決に失敗します。ファイアウォールが自動的に DNS クエリレスポンスを自動的に許可しない場合
は、Amazon DNS サーバーの IP アドレスからのトラフィックを許可する必要があります。Amazon
DNS サーバーの IP アドレスを取得するには、インスタンス内から以下のコマンドを使用します。
• Linux
grep nameserver /etc/resolv.conf
パブリック IP アドレスと外部 DNS ホスト名
パブリック IP アドレスには、インターネットから到達できます。インスタンスとインターネット間で
通信するには、パブリック IP アドレスを使用できます。
パブリック IP アドレスを受け取る各インスタンスには、外部 DNS ホスト名
(ec2-67-202-51-223.compute-1.amazonaws.com など)が割り当てられます。外部 DNS ホスト
名を解決すると、インスタンスのパブリック IP アドレス(インスタンスのネットワークの外部の場合)
およびインスタンスのプライベート IP アドレス(インスタンスのネットワーク内からの場合)となり
ます。パブリック IP アドレスは、ネットワークアドレス変換(NAT)によって、プライマリプライベー
ト IP アドレスにマッピングされます。NAT の詳細については、RFC 1631: The IP Network Address
Translator(NAT)を参照してください。
インスタンスを EC2-Classic で起動すると、そのインスタンスにはパブリック IP アドレスが自動的に
割り当てられます。この動作を変更することはできません。VPC でインスタンスを起動するとき、サ
ブネットには、そのサブネットで起動するインスタンスがパブリック IP アドレスを受け取るかどうか
を決定する属性があります。デフォルトでは、デフォルト以外のサブネットで起動するインスタンスに
は、パブリック IP アドレスが自動的に割り当てられません。
VPC のインスタンスでパブリック IP アドレスを受け取るかどうかを制御するには、次の方法を使用し
ます。
• サブネットのパブリック IP アドレス属性を変更する。詳細については、『Amazon VPC ユーザーガ
イド』の「サブネットのパブリック IP アドレス動作の変更」を参照してください。
• 起動時にパブリック IP アドレス機能を有効または無効にする。これにより、サブネットのパブリッ
ク IP アドレス属性がオーバーライドされます。詳細については、「パブリック IP アドレスの割り当
て (p. 612)」を参照してください。
608
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic IP アドレス
パブリック IP アドレスは、Amazon のパブリック IP アドレスプールからインスタンスに割り当てら
れ、お客様の AWS アカウントには関連付けられません。パブリック IP アドレスをインスタンスから
割り当て解除すると、そのパブリック IP アドレスはパブリック IP アドレスプールに戻され、再利用す
ることはできません。
手動でパブリック IP アドレスをインスタンスに関連付けること、また、手動でインスタンスから割り
当て解除することはできません。場合によって、パブリック IP アドレスはインスタンスから解放され
たり、新しいインスタンスに割り当てられたりします。
• インスタンスが停止または終了されると、インスタンスのパブリック IP アドレスは解放されます。
停止していたインスタンスが再起動されると、そのインスタンスには新しいパブリック IP アドレス
が送信されます。
• Elastic IP アドレスをインスタンスに関連付けた場合、または Elastic IP アドレスを VPC 内のインス
タンスのプライマリネットワークインターフェイス(eth0)に関連付けた場合、インスタンスのパブ
リック IP アドレスは解放されます。Elastic IP アドレスをインスタンスから割り当て解除すると、そ
のインスタンスには新しいパブリック IP アドレスが送信されます。
• VPC 内のインスタンスのパブリック IP アドレスが既に解放されている場合には、複数のネットワー
クインターフェイスがインスタンスにアタッチされていると、インスタンスに新しいパブリック IP
アドレスは送信されません。
必要に応じて、インスタンスに関連付けおよびインスタンスから関連付けできる永続的なパブリック
IP アドレスが必要な場合は、Elastic IP アドレスを使用します。独自の Elastic IP アドレスを割り当て
て、それをインスタンスに関連付けることができます。詳細については、「Elastic IP アドレス (p. 619)」
を参照してください。
VPC 内のインスタンスで、Elastic IP アドレスを割り当てると、DNS ホスト名が有効な場合は DNS ホ
スト名を受け取ります。詳細については、「Amazon VPC ユーザーガイド」の「VPC での DNS の使
用」を参照してください。
Note
インスタンスがパブリック NAT IP アドレスを使用して他のインスタンスにアクセスする場合、
アクセス先のインスタンスが同じリージョンにあるかどうかによって、リージョンデータ転送
またはインターネットデータ転送に対して課金されます。
Elastic IP アドレス
Elastic IP アドレスは、アカウントに割り当てることができるパブリック IP アドレスです。必要に応じ
て、インスタンスに関連付けることができます。これは、解放するように選択しない限り、インスタン
スに割り当てられたままです。Elastic IP アドレスとその使用方法の詳細については、「Elastic IP アド
レス (p. 619)」を参照してください。
Amazon DNS サーバー
Amazon は、DNS ホスト名を IP アドレスに解決する DNS サーバーを提供します。EC2-Classic で、
Amazon DNS サーバーは 172.16.0.23 にあります。EC2-VPC で、Amazon DNS サーバーは VPC
ネットワークの範囲に 2 をプラスしたアドレスにあります。詳細については、『Amazon VPC ユーザー
ガイド』の「Amazon DNS サーバー」を参照してください。
EC2-Classic と EC2-VPC の IP アドレスの違い
次の表では、EC2-Classic で起動されたインスタンス、デフォルトサブネットで起動されたインスタン
ス、デフォルト以外のサブネットで起動されたインスタンスの IP アドレスの違いをまとめています。
609
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
パブリック IP アドレス、プライベート IP アドレス、Elastic
IP アドレスの決定
特徴
EC2-Classic
デフォルトのサブネット
デフォルト以外のサブネッ
ト
パブリック インスタンスはパブリック
IP アドレス IP アドレスを受け取りま
(Amazon
す。
のパブリッ
ク IP アドレ
スプールよ
り)
インスタンスは、起動時に
特に IP アドレスを指定し
ない場合、またはサブネッ
トのパブリック IP アドレ
ス属性を変更しない場合、
デフォルトではパブリック
IP アドレスを受け取りま
す。
インスタンスは、起動時に
特に IP アドレスを指定しな
い場合、またはサブネット
のパブリック IP アドレス属
性を変更しない場合、デ
フォルトではパブリック IP
アドレスを受け取りませ
ん。
プライベー インスタンスは、起動する
ト IP アドレ たびに、EC2-Classic の範囲
ス
に含まれるプライベート IP
アドレスを受け取ります。
インスタンスはデフォルト
サブネットのアドレス範囲
から静的プライベート IP
アドレスを受け取ります。
インスタンスはサブネット
のアドレス範囲から静的プ
ライベート IP アドレスを受
け取ります。
複数の IP ア 1 つのインスタンスには 1
ドレス
つのプライベート IP アドレ
スを選択します。複数の IP
アドレスはサポートされま
せん。
複数のプライベート IP ア
ドレスを 1 つのインスタン
スに割り当てることができ
ます。
複数のプライベート IP アド
レスを 1 つのインスタンス
に割り当てることができま
す。
ネットワー
クインター
フェイス
IP アドレスはネットワーク
インターフェイスに関連付
けられます。各インスタン
スには 1 つまたは複数の
ネットワークインターフェ
イスがあります。
IP アドレスはネットワーク
インターフェイスに関連付
けられます。各インスタン
スには 1 つまたは複数の
ネットワークインターフェ
イスがあります。
IP アドレスが 1 つのインス
タンスに関連付けられま
す。ネットワークインター
フェイスはサポートされま
せん。
Elastic IP ア 停止すると、Elastic IP アド 停止しても、Elastic IP ア 停止しても、Elastic IP アド
ドレス
レスとインスタンスの関連 ドレスとインスタンスの関 レスとインスタンスの関連
付けが解除されます。
連付けが維持されます。
付けが維持されます。
DNS ホスト
名
DNS ホスト名はデフォルト DNS ホスト名はデフォル DNS ホスト名は、Amazon
で有効化されています。
トで有効化されています。 VPC コンソールの VPC ウィ
ザードを使用して VPC を作
成していない限り、デフォ
ルトで無効になっていま
す。
パブリック IP アドレス、プライベート IP アドレス、
Elastic IP アドレスの決定
Amazon EC2 コンソールを使用して、インスタンスのプライベート IP アドレス、パブリック IP アド
レス、および Elastic IP アドレスを決定できます。また、インスタンスメタデータを使用して、インス
タンス内からのインスタンスのパブリック IP アドレスとプライベート IP アドレスを判断できます。詳
細については、「インスタンスメタデータとユーザーデータ (p. 321)」を参照してください。
コンソールを使用してインスタンスのプライベート IP アドレスを判断するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[インスタンス] を選択します。
インスタンスを選択します。詳細ペインで、[Private IPs] フィールドからプライベート IP アドレ
スを取得し、[Private DNS] フィールドから内部 DNS ホスト名を取得します。
610
4.
5.
6.
7.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
パブリック IP アドレス、プライベート IP アドレス、Elastic
IP アドレスの決定
(VPC のみ)インスタンスに接続されているネットワークインターフェイスに割り当てられた 1
つ以上のセカンダリプライベート IP アドレスがある場合は、[Secondary private IPs ]フィールドか
らこれらの IP アドレスを取得します。
(VPC のみ)または、ナビゲーションペインで、[Network Interfaces] をクリックし、インスタン
スに関連付けられているネットワークインターフェイスを選択します。
[ Primary private IP] フィールドからプライマリプライベート IP アドレス、および [Private DNS]
フィールドから内部 DNS ホスト名を取得します。
ネットワークインターフェイスにセカンダリプライベート IP アドレスを割り当てている場合は、
[Secondary private IPs] フィールドからこれらの IP アドレスを取得します。
コンソールを使用してインスタンスのパブリック IP アドレスを判断するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[インスタンス] を選択します。
インスタンスを選択します。詳細ペインで、[Public IP] フィールドからパブリック IP アドレスを、
[Public DNS] フィールドから外部 DNS ホスト名を取得します。
Elastic IP アドレスがインスタンスに関連付けられている場合は、Elastic IP アドレスを [Elastic IP]
フィールドから取得します。
4.
Note
Elastic IP アドレスをインスタンスに関連付けた場合は、[Public IP] フィールドにも Elastic
IP アドレスが表示されます。
5.
6.
(VPC のみ)または、ナビゲーションペインで、[Network Interfaces] を選択し、インスタンスに
関連付けられているネットワークインターフェイスを選択します。
[Public IPs] フィールドからパブリック IP アドレスを取得します。アスタリスク(*)は、プライ
マリプライベート IP アドレスにマッピングされているパブリック IP アドレスまたは Elastic IP ア
ドレスを示します。
Note
パブリック IP アドレスは、コンソールのネットワークインターフェイスのプロパティと
して表示されますが、NAT によってプライマリプライベート IP アドレスにマッピングさ
れます。したがって、インスタンスのネットワークインターフェイスのプロパティを、た
とえば ifconfig(Linux)または ipconfig(Windows)を通して調べてみると、パブ
リック IP アドレスは表示されていません。インスタンス内からインスタンスのパブリッ
ク IP アドレスを決定するには、インスタンスのメタデータを使用できます。
インスタンスのメタデータを使用してインスタンスの IP アドレスを判断するには
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
611
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
パブリック IP アドレスの割り当て
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 アドレス
の値です。
パブリック IP アドレスの割り当て
EC2-Classic でインスタンスを起動すると、そのインスタンスにはパブリック IP アドレスがデフォル
トで割り当てられます。この動作を変更することはできません。
VPC では、すべてのサブネットに、そのサブネット内で起動されるインスタンスにパブリック IP アド
レスが割り当てられるかどうかを決定する属性があります。デフォルトでは、デフォルト以外のサブ
ネットではこの属性が false に設定されており、デフォルトのサブネットではこの属性が true に設定さ
れています。VPC でインスタンスを起動する場合、パブリック IP アドレス指定機能を使用してインス
タンスにパブリック IP アドレスを割り当てるかどうかを制御できます。サブネットの IP アドレス指定
属性のデフォルトの動作をオーバーライドできます。パブリック IP アドレスは、Amazon のパブリッ
ク IP アドレスプールから割り当てられ、デバイスインデックス eth0 を持つネットワークインターフェ
イスに割り当てられます。この機能は、インスタンス起動時の特定の条件により異なります。
Important
起動後に、インスタンスからパブリック IP アドレスの割り当てを手動で解除することはでき
ません。ただし、特定の場合に、アドレスが自動的に解放され、その後再利用できなくなりま
す。詳細については、「パブリック IP アドレスと外部 DNS ホスト名 (p. 608)」を参照してくだ
さい。お客様の意志で関連付けしたり関連付けを解除したりできる永続的なパブリック IP ア
ドレスを必要とする場合は、起動してからインスタンスに Elastic IP アドレスを割り当てます。
詳細については、「Elastic IP アドレス (p. 619)」を参照してください。
インスタンス起動時にパブリック 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
パブリック IP アドレスのみ、インデックス eth0 を持つデバイスの単一の新しいネット
ワークインターフェイスに割り当てることができます。[Auto-assign Public IP] リストは、
複数のネットワークインターフェイスを使用して起動する場合、または eth0 に既存のネッ
トワークインターフェイスを選択した場合、使用できません。
612
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
複数のプライベート IP アドレス
5.
ウィザードの後続ページに表示されるステップにしたがって、インスタンスのセットアップを最後
まで実行します。ウィザード設定オプションの詳細については、インスタンスの作成 (p. 255) を参
照してください。最終ページの [Review Instance Launch] で、設定内容を確認します。[Launch] を
選択してキーペアを選択し、インスタンスを起動します。
6.
[Instances] ページで、新しいインスタンスを選択し、そのパブリック IP アドレスを、詳細ペイン
の [Public IP] フィールドで確認します。
パブリック IP アドレス機能は起動時にのみ使用できます。ただし、起動時にパブリック IP アドレスを
インスタンスに割り当てるかどうかにかかわらず、起動後に Elastic IP アドレスをインスタンスに関連
付けることができます。詳細については、「Elastic IP アドレス (p. 619)」を参照してください。 サブ
ネットのパブリック IP の動作を変更することもできます。詳細については、「サブネットのパブリッ
ク IP アドレス動作の変更」を参照してください。
パブリック IP アドレッシング向けの API およびコマンドライ
ンツール
パブリック IP アドレス機能を有効または無効にするには、下の表に示すいずれかのメソッドを使用し
ます。これらのコマンドラインインターフェイスの詳細については、「Amazon EC2 へのアクセ
ス (p. 3)」を参照してください。
メソッド
パラメータ
AWS CLI
run-instances コマンドで --associate-public-ip-address ま
たは --no-associate-public-ip-address オプションを使用
します。
Amazon EC2 CLI
ec2-run-instances コマンドで --associate-public-ip-address
オプションを使用します。
AWS Tools for Windows Power- New-EC2Instance コマンドで -AssociatePublicIp パラメータ
Shell
を使用します。
クエリ API
RunInstances リクエストで NetworkInterface.n.AssociatePublicIpAddress パラメータを使用します。
複数のプライベート IP アドレス
Abstract
VPC 内のインスタンスに複数のプライベート IP アドレスを指定する方法を説明します。
EC2-VPC では、インスタンスに複数のプライベート IP アドレスを指定できます。インスタンスに指定
できるネットワークインターフェイスとプライベート IP アドレスの数は、インスタンスタイプによっ
て異なります。詳細については、「インスタンスタイプあたりの ENI ごとのプライベート IP アドレ
ス (p. 628)」を参照してください。
次のような場合、複数のプライベート IP アドレスを VPC 内のインスタンスに割り当てると便利です。
• 1 つのサーバーで複数の SSL 証明書を使用し、各インターフェイスに各 IP アドレスに割り当てるこ
とで、1 つのサーバーで複数のウェブサイトをホストする。
• 各ネットワークインターフェイス用に複数のプライベート IP アドレスを持つネットワークアプライ
アンス(ファイアウォールやロードバランサーなど)を運用する。
• インスタンスでエラーが発生した場合に、セカンダリプライベート IP アドレスをスタンバイインス
タンスに再割り当てすることによって、内部トラフィックをスタンバイインスタンスにリダイレクト
する。
613
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
複数のプライベート IP アドレス
目次
• 複数の IP アドレスを使用する方法 (p. 614)
• セカンダリプライベート IP アドレスを割り当てる (p. 614)
• セカンダリプライベート IP アドレスを認識するようにインスタンスのオペレーティングシステム
を設定する (p. 616)
• Elastic IP アドレスをセカンダリプライベート IP アドレスに割り当てる (p. 617)
• セカンダリプライベート IP アドレスを表示する (p. 617)
• セカンダリプライベート IP アドレスの割り当てを解除する (p. 618)
複数の IP アドレスを使用する方法
次の一覧は、ネットワークインターフェイスで複数の IP アドレスを使用する方法の説明です。
• セカンダリプライベート IP アドレスをネットワークインターフェイスに割り当てることができます。
ネットワークインターフェイスは、インスタンスにアタッチしたり、インスタンスからデタッチする
ことができます。
• ネットワークインターフェイスの場合、サブネットの CIDR ブロックの範囲に含まれるセカンダリプ
ライベート IP アドレスを選択する必要があります。
• セキュリティグループは、IP アドレスではなく、ネットワークインターフェイスに適用されます。
そのため、IP アドレスは、そのアドレスが指定されているネットワークインターフェイスのセキュ
リティグループの対象です。
• セカンダリプライベート IP アドレスは、実行中または停止したインスタンスにアタッチされた Elastic
ネットワークインターフェイスに、割り当てたり、割り当て解除することができます。
• 1 つのインターフェイスに割り当てられるセカンダリプライベート IP アドレスは、明示的に許可さ
れていれば、別のインターフェイスに割り当て直すことができます。
• コマンドラインツールまたは API を使用して複数のセカンダリプライベート IP アドレスをネット
ワークインターフェイスに割り当てるときに、いずれかのセカンダリプライベート IP アドレスを割
り当てることができない場合、処理全体が失敗します。
• プライマリプライベート IP アドレス、セカンダリプライベート IP アドレス、および関連付けられた
Elastic IP アドレスは、インターフェイスをインスタンスからデタッチしたり、別のインスタンスに
アタッチしても、ネットワークインターフェイスへの割り当ては維持します。
• プライマリネットワークインターフェイスをインスタンスから移動することはできませんが、プライ
マリネットワークインターフェイスのセカンダリプライベート IP アドレスを別のネットワークイン
ターフェイスに再割り当てすることはできます。
• 追加のネットワークインターフェイスは、あるインスタンスから別のインスタンスに移動できます。
次の一覧は、Elastic IP アドレスで複数の IP アドレスを使用する方法の説明です。
• 各プライベート IP アドレスが関連付けられるのは 1 つの Elastic IP アドレスであり、反対に 1 つの
Elastic IP アドレスに関連付けられるのは 1 つの IP アドレスです。
• セカンダリプライベート IP アドレスを別のインターフェイスに再割り当てした場合、セカンダリプ
ライベート IP アドレスと Elastic IP アドレスの関連付けは維持されます。
• セカンダリプライベート IP アドレスとインターフェイスの割り当てを解除すると、関連付けられた
Elastic IP アドレスとセカンダリプライベート IP アドレスとの関連付けは自動的に解除されます。
セカンダリプライベート IP アドレスを割り当てる
セカンダリプライベート IP アドレスは、インスタンスの起動時、またはインスタンスの実行後に、イ
ンスタンスのネットワークインターフェイスに割り当てることができます。このセクションでは、次の
手順を紹介します。
614
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
複数のプライベート IP アドレス
• EC2-VPC のインスタンスを起動するときにセカンダリプライベート IP アドレスを割り当てるに
は (p. 615)
• 起動中にコマンドラインを使用してセカンダリ IP アドレスを割り当てるには (p. 616)
• 既存のインスタンスにセカンダリプライベート IP アドレスを割り当てるには (p. 616)
• コマンドラインを使用して既存のインスタンスにセカンダリプライベート IP を割り当てるには (p. 616)
EC2-VPC のインスタンスを起動するときにセカンダリプライベート IP アドレスを割り当てる
には
1.
2.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
[インスタンスの作成] を選択します。
AMI を選択し、次にインスタンスタイプを選択して、[Next: Configure Instance Details] を選択し
ます。
4.
[Configure Instance Details] ページで、[Network] リストから VPC を選択し、[Subnet] リストから
サブネットを選択します。
[Network Interfaces] セクションで、次の手順を実行し、[Next: Add Storage] を選択します。
5.
a.
[Add Device] を選択して、別のネットワークインターフェイスを追加します。コンソールで
は、インスタンス起動時のネットワークインターフェイスを最大 2 つ指定できます。インスタ
ンスを起動したら、ナビゲーションペインで [Network Interfaces] を選択し、ネットワークイ
ンターフェイスを追加します。アタッチできるネットワークインターフェイスの合計数はイン
スタンスタイプによって異なります。詳細については、「インスタンスタイプあたりの ENI
ごとのプライベート IP アドレス (p. 628)」を参照してください。
Important
2 つ目のネットワークインターフェイスを追加すると、システムは、パブリック IP ア
ドレスを自動割り当てできなくなります。プライマリネットワークインターフェイス
(eth0) に Elastic IP アドレスを割り当てない限り、インスタンスに接続することはで
きません。起動ウィザードを完了した後は、Elastic IP アドレスを割り当てることがで
きます。詳細については、「Elastic IP アドレスの操作 (p. 622)」を参照してください。
b.
c.
各ネットワークインターフェイスについて、1 つのプライマリプライベート IP アドレスと、1
つ以上のセカンダリプライベート IP アドレスを指定できます。ただし、この例では、自動的
に割り当てられた IP アドレスを使用します。
[Secondary IP addresses] の下にある [Add IP] を選択し、サブネットの範囲に含まれるプライ
ベート IP アドレスを入力するか、デフォルトの Auto-assign のままにしてアドレスを自動
的に選択します。
Important
セカンダリプライベート IP アドレスをネットワークインターフェイスに追加した後、
インスタンスに接続して、インスタンス自体でセカンダリプライベート IP アドレス
を設定する必要があります。詳細については、「セカンダリプライベート IP アドレ
スを認識するようにインスタンスのオペレーティングシステムを設定する (p. 616)」
を参照してください。
6.
7.
次の [Add Storage] ページで、AMI によって指定されるボリューム(ルートデバイスボリュームな
ど)以外にインスタンスにアタッチするボリュームを指定し、[Next: Tag Instance] を選択します。
[Tag Instance] ページで、ユーザーフレンドリーな名前などを使ってインスタンスのタグを指定し、
[Next: Configure Security Group] を選択します。
615
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
複数のプライベート IP アドレス
8.
9.
[Configure Security Group] ページで、既存のセキュリティグループを選択するか、新しいグループ
を作成します。[Review and Launch] を選択します。
[Review Instance Launch] ページで、設定内容を確認します。[Launch] を選択して、キーペアを選
択し、インスタンスを起動します。Amazon EC2 を初めて使用する場合、これまでにキーペアを
作成したことがなければ、ウィザードによってキーペアを作成するよう求めるメッセージが表示さ
れます。
起動中にコマンドラインを使用してセカンダリ IP アドレスを割り当てるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• run-instances コマンド(AWS CLI)の --secondary-private-ip-addresses オプション
• ec2-run-instances コマンド(Amazon EC2 CLI)の --secondary-private-ip-address オプショ
ン
既存のインスタンスにセカンダリプライベート IP アドレスを割り当てるには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択し、インスタンスにアタッチされているネッ
トワークインターフェイスを選択します。
[Actions] を選択し、次に [Manage Private IP Addresses] を選択します。
[Manage Private IP Addresses] ダイアログボックスで、次の操作を行います。
a.
b.
c.
d.
[Assign new IP] を選択します。
インスタンスのサブネットの範囲に含まれる特定の IP アドレスを入力するか、フィールドを
空のままにして IP アドレスを自動的に選択することができます。
(省略可能)セカンダリプライベート IP アドレスがすでに別のネットワークインターフェイ
スに割り当てられている場合、[Allow reassignment] を選択して、セカンダリプライベート IP
アドレスを割り当て直すことができます。
[Yes, Update] を選択し、次に [Close] を選択します。
または、インスタンスにセカンダリプライベート IP アドレスを割り当てることもできます。ナビ
ゲーションペインで [Instances] を選択し、インスタンスを選択します。[Actions] を選択し、
[Networking] を選択して、次に [Manage Private IP Addresses] を選択します。上記のステップの
場合と同様に、同じ情報をダイアログで設定することもできます。
コマンドラインを使用して既存のインスタンスにセカンダリプライベート IP を割り当てるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• assign-private-ip-addresses(AWS CLI)
• ec2-assign-private-ip-addresses(Amazon EC2 CLI)
• Register-EC2PrivateIpAddress(AWS Tools for Windows PowerShell)
セカンダリプライベート IP アドレスを認識するようにインスタ
ンスのオペレーティングシステムを設定する
セカンダリプライベート IP アドレスをインスタンスに割り当てたら、セカンダリプライベート IP アド
レスを認識するようにインスタンスのオペレーティングシステムを設定する必要があります。
616
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
複数のプライベート IP アドレス
• Amazon Linux を使用している場合、ec2-net-utils パッケージがこの処理を自動実行します。このパッ
ケージは、インスタンスの実行中にアタッチされる追加のネットワークインターフェイスを設定し、
DHCP リースの更新中にセカンダリ IP アドレスを更新し、関連するルーティングルールを更新しま
す。コマンド sudo service network restart を使用して即座にインターフェースの一覧を更新
し、ip addr li を使用することで最新の一覧を表示することができます。ネットワーク構成を手動
で構成する必要がある場合、ec2-net-utils パッケージを削除できます。詳細については、「ec2-net-utils
を使用したネットワークインターフェイスの設定 (p. 632)」を参照してください。
• 別の Linux ディストリビューションを使用している場合、Linux ディストリビューションのドキュメ
ントを参照してください。追加のネットワークインターフェイスとセカンダリ IP アドレスの設定に
関する情報が記載されています。同じサブネットのインスタンスに複数のインターフェイスがある場
合、非同期のルーティングに対処する方法については、ルーティングルールの使用に関する情報を検
索してください。
Windows インスタンスの設定については、『Microsoft Windows インスタンスの Amazon EC2 ユーザー
ガイド』の「Windows インスタンスのセカンダリプライベート IP アドレスの設定」を参照してくださ
い。
Elastic IP アドレスをセカンダリプライベート IP アドレスに割
り当てる
EC2-VPC で、Elastic IP アドレスをセカンダリプライベート IP アドレスに関連付けるには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Elastic IPs] を選択します。
[Actions] を選択し、次に [Associate Address] を選択します。
[Associate Address] ダイアログボックスの [Network Interface] ドロップダウンリストからネット
ワークインターフェイスを選択し、[Private IP address] リストからセカンダリ IP アドレスを選択
します。
[Associate] を選択します。
コマンドラインを使用して Elastic IP アドレスにセカンダリプライベート IP アドレスを関連付
けるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• associate-address(AWS CLI)
• ec2-associate-address(Amazon EC2 CLI)
• Register-EC2Address(AWS Tools for Windows PowerShell)
セカンダリプライベート IP アドレスを表示する
EC2-VPC のネットワークインターフェイスに割り当てられたプライベート IP アドレスを表示
するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[Network Interfaces] を選択します。
プライベート IP アドレスを表示するネットワークインターフェイスを選択します。
4.
詳細ペインの [Details] タブで、[Primary private IP] フィールドと [Secondary private IPs] フィール
ドに表示されている、ネットワークインターフェイスに割り当てられているプライマリプライベー
ト IP アドレスとセカンダリプライベート IP アドレスを確認します。
617
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
複数のプライベート IP アドレス
インスタンスに割り当てられたプライベート IP アドレスを表示するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
ナビゲーションペインで、[インスタンス] を選択します。
プライベート IP アドレスを表示するインスタンスを選択します。
詳細ペインの [Description] タブで、ネットワークインターフェイス経由でインスタンスに割り当て
られているプライマリプライベート IP アドレスとセカンダリプライベート IP アドレスの [Private
IPs] フィールドと [Secondary Private IPs] フィールドを確認します。
セカンダリプライベート IP アドレスの割り当てを解除する
セカンダリプライベート IP アドレスが不要になった場合、インスタンスやネットワークインターフェ
イスから割り当てを解除することができます。セカンダリプライベート IP アドレスを Elastic ネット
ワークインターフェイスから割り当て解除した場合、Elastic IP アドレス(存在する場合)の関連付け
も解除されます。
インスタンスからセカンダリプライベート IP アドレスの割り当てを解除するには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[インスタンス] を選択します。
インスタンスを選択し、[Actions] を選択して、[Networking] を選択します。次に [Manage Private
IP Addresses] を選択します。
[Manage Private IP Addresses] ダイアログボックスで、割り当て解除するセカンダリプライベート
IP アドレスの横にある [Unassign] を選択します。
[Yes, Update] を選択して、ダイアログボックスを閉じます。
ネットワークインターフェイスからセカンダリプライベート IP アドレスの割り当てを解除する
には
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
ネットワークインターフェースを選択し、[Actions] を選択して、次に [Manage Private IP Addresses]
を選択します。
[Manage Private IP Addresses] ダイアログボックスで、割り当て解除するセカンダリプライベート
IP アドレスの横にある [Unassign] を選択します。
[Yes, Update] を選択し、次に [Close] を選択します。
コマンドラインを使用してセカンダリプライベート IP アドレスの割り当てを解除するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• unassign-private-ip-addresses(AWS CLI)
• ec2-unassign-private-ip-addresses(Amazon EC2 CLI)
• Unregister-EC2PrivateIpAddress(AWS Tools for Windows PowerShell)
618
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic IP アドレス
Elastic IP アドレス
Abstract
Elastic IP アドレスを 1 つのインスタンスから別のインスタンスに迅速に再マッピングして、インスタンスやソフ
トウェアの問題に対応します。
Elastic IP アドレスは、動的なクラウドコンピューティングのために設計された静的 IP アドレスです。
Elastic IP アドレスを使用すると、アドレスをアカウント内の別のインスタンスに迅速に再マップして、
インスタンスやソフトウェアのエラーを隠すことができます。Elastic IP アドレスは AWS アカウント
と関連付けられ(特定のインスタンスとではなく)、アカウントとの関連付けはお客様が明示的に解除
するまで続きます。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. 584)」を参照してください。
トピック
• EC2-Classic の Elastic IP アドレス (p. 619)
• VPC の Elastic IP アドレス (p. 620)
• EC2-Classic と EC2-VPC における Elastic IP アドレスの相違点 (p. 620)
• EC2-Classic から EC2-VPC への Elastic IP アドレスの移行 (p. 621)
• Elastic IP アドレスの操作 (p. 622)
• 電子メールアプリケーションでの逆引き DNS の使用 (p. 626)
• Elastic IP アドレスの制限 (p. 626)
EC2-Classic の Elastic IP アドレス
デフォルトでは、起動時に EC2-Classic の各インスタンスに 2 つの IP アドレスが割り当てられます。
プライベート IP アドレスと、ネットワークアドレス変換(NAT)によりプライベート IP アドレスに
マッピングされるパブリック IP アドレスです。パブリック IP アドレスは EC2-Classic パブリック IP
アドレスプールから割り当てられ、AWS アカウントでなくインスタンスに関連付けられます。インス
タンスから関連付けを解除したパブリック IP アドレスは再利用できません。
動的 DNS を使用して既存の DNS 名を新しいインスタンスのパブリック IP アドレスにマッピングした
場合、その IP アドレスがインターネット内に伝達されるまでに最大 24 時間かかることがあります。
その結果、新しいインスタンスはトラフィックを受信せず、終了したインスタンスがリクエストの受信
を継続することがあります。この問題を解決するには、Elastic IP アドレスを使用します。
Elastic IP アドレスをインスタンスに関連付けた場合、インスタンスの現在のパブリック IP アドレスは
EC2-Classic パブリック IP アドレスプールに解放されます。インスタンスから Elastic IP アドレスの関
連付けを解除すると、数分内に自動的に新しいパブリック IP アドレスがインスタンスに割り当てられ
ます。また、インスタンスを停止した場合も、Elastic IP アドレスの関連付けは解除されます。
Elastic IP アドレスを効率的に使用するために、Elastic IP アドレスに実行中インスタンスが関連付けら
れていない場合には少額の時間単位料金が発生します。詳細については、Amazon EC2 料金表を参照
してください。
619
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
VPC の Elastic IP アドレス
VPC の Elastic IP アドレス
起動時にデフォルト VPC の各インスタンスに 2 つの IP アドレスが割り当てられます。プライベート
IP アドレスと、ネットワークアドレス変換(NAT)によりプライベート IP アドレスにマッピングされ
るパブリック IP アドレスです。パブリック IP アドレスは EC2-VPC パブリック IP アドレスプールか
ら割り当てられ、AWS アカウントでなくインスタンスに関連付けられます。インスタンスから関連付
けを解除したパブリック IP アドレスは再利用できません。
デフォルトではない VPC 内の各インスタンスには、プライベート IP アドレスのみを割り当てます。た
だし、起動時に特別にパブリック IP アドレスをリクエストした場合、またはサブネットのパブリック
IP アドレス属性を変更した場合を除きます。パブリック IP アドレスが割り当てられていない デフォル
トではない VPC 内のインスタンスがインターネット通信できるようにするには、Elastic IP アドレスを
VPC で使用できるように割り当て、そのインスタンスに接続されている Elastic ネットワークインター
フェイス(ENI)にその Elastic IP アドレスを関連付ける必要があります。
起動時に Elastic IP アドレスをデフォルト VPC のインスタンスに関連付けた場合、またはパブリック
IP を割り当てたインスタンスを eth0 ネットワークインターフェイスに割り当てた場合、現在のパブ
リック IP アドレスは EC2-VPC パブリック IP アドレスプールに解放されます。インスタンスから Elastic
IP アドレスの関連付けを解除すると、数分内に自動的に新しいパブリック IP アドレスがインスタンス
に割り当てられます。ただし、2 つ目のネットワークインターフェイスをそのインスタンスに関連付け
た場合、そのインスタンスには自動的に新しいパブリック IP アドレスは割り当てられません。手動で
Elastic IP アドレスをインスタンスに割り当てる必要があります。停止しても、Elastic IP アドレスとイ
ンスタンスの関連付けが維持されます。
Elastic IP アドレスを効率的に使用するため、Elastic IP アドレスが実行中のインスタンスに関連付けら
れていない場合や、停止しているインスタンスやアタッチされていないネットワークインターフェイス
に関連付けられている場合は、時間毎に小額の料金が請求されます。インスタンスを実行しているとき
は、インスタンスに関連付けられた 1 つの Elastic IP アドレスに対して料金は発生しませんが、インス
タンスに関連付けられた追加の Elastic IP アドレスがある場合、その追加分に対しては料金が発生しま
す。詳細については、Amazon EC2 料金表を参照してください。
Elastic IP アドレスと VPC のインスタンスの使用に関する詳細は、Amazon VPC ユーザーガイド の
「Elastic IP アドレス」を参照してください。
EC2-Classic と EC2-VPC における Elastic IP アドレ
スの相違点
次の表は、EC2-Classic の Elastic IP アドレスと EC2-VPC の Elastic IP アドレスの違いをまとめたもの
です。
特徴
EC2-Classic
EC2-VPC
割り当て
Elastic IP アドレスを割り当てた場合は 関連付けた Elastic IP アドレスは、VPC
EC2-Classic で使用しますが、Elastic
内でのみ使用できます。
IP アドレスを EC2-VPC プラットフォー
ムに移行することもできます。詳細に
ついては、「EC2-Classic から EC2VPC への Elastic IP アドレスの移
行 (p. 621)」を参照してください。
620
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EC2-Classic から EC2-VPC への Elastic IP アドレスの移行
特徴
EC2-Classic
EC2-VPC
関連付け
Elastic IP アドレスはインスタンスに関 Elastic IP アドレスは伸縮自在なネット
連付けます。
ワークインターフェイス(ENI)のプロ
パティの 1 つです。Elastic IP アドレス
をインスタンスに割り当てるには、そ
のインスタンスにアタッチされている
ENI を更新します。詳細については、
「Elastic Network Interface
(ENI) (p. 626)」を参照してください。
再関連付け
既に別のインスタンスに関連付けられ
ている Elastic IP アドレスを関連付けよ
うとすると、アドレスは自動的に新し
いインスタンスに関連付けられます。
インスタンスの停
止
インスタンスを停止した場合、Elastic インスタンスを停止した場合、Elastic
IPアドレスの関連付けが解除されます。 IP アドレスのマッピングは維持されま
インスタンスを再開する際に Elastic IP す。
アドレスを再関連付けする必要があり
ます。
複数 IP
インスタンスは単一のプライベート IP インスタンスは複数の IP アドレスをサ
アドレスと対応する Elastic IP アドレス ポートし、それぞれの IP アドレスに対
のみをサポートします。
応する Elastic IP アドレスを設定できま
す。詳細については、「複数のプライ
ベート IP アドレス (p. 613)」を参照して
ください。
アカウントで EC2-VPC のみをサポート
している場合、既に別のインスタンス
に関連付けられている Elastic IP アドレ
スを関連付けようとすると、アドレス
は自動的に新しいインスタンスに関連
付けられます。EC2-Classic で VPC を
使用している場合、既に別のインスタ
ンスに関連付けられている Elastic IP ア
ドレスを関連付けようとすると、再関
連付けを許可している場合にのみ成功
します。
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. 623)」を参照してください。
621
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic IP アドレスの操作
アカウントに設定できる数であれば、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. 626)」を参照してください。
24 時間以内にアカウントに割り当てられた Elastic IP アドレスを移行することはできません。逆引き
DNS レコードに関連付けられている Elastic IP アドレスは移行または復元できません。詳細について
は、「電子メールアプリケーションでの逆引き DNS の使用 (p. 626)」を参照してください。
詳細については、「Elastic IP アドレスの移動 (p. 624)」を参照してください。
Elastic IP アドレスの操作
以下のセクションでは、Elastic IP アドレスの使用方法について説明します。
トピック
• Elastic IP アドレスの割り当て (p. 622)
•
•
•
•
•
Elastic IP アドレスの説明 (p. 623)
Elastic IP アドレスを実行中のインスタンスに関連付ける (p. 623)
Elastic IP アドレスの関連付け解除と別のインスタンスへの再関連付け (p. 623)
Elastic IP アドレスの移動 (p. 624)
Elastic IP アドレスを解放する (p. 625)
Elastic IP アドレスの割り当て
Elastic IP アドレスは、Amazon EC2 コンソールまたはコマンドラインを使用して割り当てることがで
きます。アカウントが EC2-Classic をサポートしている場合、EC2-Classic または EC2-VPC で使用す
るためのアドレスを割り当てることができます。
コンソールを使用して、EC2-VPC で使用する elastic IP アドレス(EIP)を割り当てるには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Elastic IP] を選択します。
[新しいアドレスの割り当て] を選択します。
(EC2-Classic アカウント)[Allocate New Address] ダイアログボックスで、[EIP used in] から
[VPC] を選択し、さらに [Yes, Allocate] を選択します。確認ダイアログボックスを閉じます。
5.
(VPC アカウント)[Yes, Allocate] を選択し、確認ダイアログボックスを閉じます。
コンソールを使用して、EC2-Classic で使用する Elastic IP アドレスを割り当てるには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Elastic IP] を選択します。
3.
4.
[新しいアドレスの割り当て] を選択します。
[EC2] を選択し、[Yes, Allocate] を選択します。確認ダイアログボックスを閉じます。
コマンドラインを使用して Elastic IP アドレスを割り当てるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• allocate-address(AWS CLI)
622
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic IP アドレスの操作
• ec2-allocate-address(Amazon EC2 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)
• ec2-describe-addresses(Amazon EC2 CLI)
• Get-EC2Address(AWS Tools for Windows PowerShell)
Elastic IP アドレスを実行中のインスタンスに関連付ける
Elastic IP アドレスは、Amazon EC2 コンソールまたはコマンドラインを使用してインスタンスに関連
付けることができます。
コンソールを使用して Elastic IP アドレスをインスタンスに関連付けるには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Elastic IPs] を選択します。
Elastic IP アドレスを選び、[Actions] を選択してから [Associate Address] を選択します。
[Associate Address] ダイアログボックスで、[Instance] からインスタンスを選択し、[Associate] を
選択します。
コマンドラインを使用して Elastic IP アドレスを関連付けるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• associate-address(AWS CLI)
• ec2-associate-address(Amazon EC2 CLI)
• Register-EC2Address(AWS Tools for Windows PowerShell)
Elastic IP アドレスの関連付け解除と別のインスタンスへの再関
連付け
Amazon EC2 コンソールまたはコマンドラインを使用して、Elastic IP アドレスの関連付けを解除し、
再度関連付けることができます。
623
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic IP アドレスの操作
コンソールを使用して elastic IP アドレス(EIP)の関連付けを解除して再び関連付けるには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
ナビゲーションペインで [Elastic IPs] を選択します。
Elastic IP アドレスを選び、[Actions] を選択してから [Disassociate Address] を選択します。
確認を求めるメッセージが表示されたら、[Yes, Disassociate] を選択します。
5.
前の手順で関連付けを解除したアドレスを選択します。[Actions] で [Associate Address] を選択し
ます。
[Associate Address] ダイアログボックスで、[Instance] から新しいインスタンスを選択し、[Associate]
を選択します。
6.
コマンドラインを使用して Elastic IP アドレスを別のインスタンスに関連付けるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• disassociate-address(AWS CLI)
• ec2-disassociate-address(Amazon EC2 CLI)
• Unregister-EC2Address(AWS Tools for Windows PowerShell)
コマンドラインを使用して Elastic IP アドレスを関連付けるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• associate-address(AWS CLI)
• ec2-associate-address(Amazon EC2 CLI)
• Register-EC2Address(AWS Tools for Windows PowerShell)
Elastic IP アドレスの移動
現在のところ、Elastic IP アドレスを EC2-VPC に移行または EC2-Classic に復元する際、Amazon
EC2、Query API、AWS SDK、または AWS CLI のみを使用できます。
Elastic IP アドレスを移動または復元するコマンドを実行すると、Elastic IP アドレスの移行プロセスに
は数分かかる場合があります。Elastic IP アドレスがまだ移動中であるか、移動が完了したかを確認す
るには、describe-moving-addresses コマンドを使用します。
Elastic IP アドレスが 5 分以上移動状態の場合、http://aws.amazon.com/premiumsupport/にお問い合わ
せください。
Amazon EC2 クエリ API または AWS CLI を使用して Elastic IP アドレスを移動するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• move-address-to-vpc(AWS CLI)
• MoveAddressToVpc(Amazon EC2 クエリ API)
• Move-EC2AddressToVpc(AWS Tools for Windows PowerShell)
624
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic IP アドレスの操作
Amazon EC2 クエリ API または AWS CLI を使用して Elastic IP アドレスを EC2-Classic に復
元するには、
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• restore-address-to-classic(AWS CLI)
• RestoreAddressToClassic(Amazon EC2 クエリ API)
• Restore-EC2AddressToClassic(AWS Tools for Windows PowerShell)
Amazon EC2 クエリ API または AWS CLI を使用してアドレスの移動ステータスを表示するに
は
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-moving-addresses(AWS CLI)
• DescribeMovingAddresses(Amazon EC2 クエリ API)
• Get-EC2Address(AWS Tools for Windows PowerShell)
EC2-VPC で移行された elastic IP アドレス(EIP)の割り当て ID を取得するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-addresses(AWS CLI)
• DescribeAddresses(Amazon EC2 クエリ API)
• Get-EC2Address(AWS Tools for Windows PowerShell)
Elastic IP アドレスを解放する
Elastic IP アドレスが不要になった場合は、解放することをお勧めします(この Elastic IP アドレスを
インスタンスに関連付けることはできません)。EC2-Classic で使用するために割り当てられているが
インスタンスに関連付けられていない Elastic IP アドレスに対しては料金が発生します。
Amazon EC2 コンソールまたはコマンドラインを使用して、Elastic IP アドレスを解放することができ
ます。
コンソールを使用して Elastic IP アドレスを解放するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Elastic IPs] を選択します。
3.
Elastic IP アドレスを選び、[Actions] を選択してから [Release Addresses] を選択します。プロン
プトが表示されたら、[Yes, Release] を選択します。
コマンドラインを使用して Elastic IP アドレスを解放するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• release-address(AWS CLI)
• ec2-release-address(Amazon EC2 CLI)
• Remove-EC2Address(AWS Tools for Windows PowerShell)
625
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
電子メールアプリケーションでの逆引き DNS の使用
電子メールアプリケーションでの逆引き DNS の使用
インスタンスから第三者に電子メールを送信する場合、1 つ以上の Elastic IP アドレスをプロビジョニ
ングして提供しておくことをお勧めします。 AWS は、ISP およびインターネットアンチスパム組織と
協力して、これらのアドレスから送信された E メールにスパムのフラグが付く可能性を減らしていま
す。
また、E メールの送信に使用される Elastic IP アドレスに静的逆引き DNS レコードを割り当てると、
アンチスパム組織により E メールにスパムのフラグが付くことを避けられることがあります。逆引き
DNS レコードを作成できるようになる前に、その Elastic IP アドレスを参照する、対応するフォワード
DNS レコード(レコードタイプ A)が存在している必要があることにご注意ください。
逆引き DNS レコードが Elastic IP アドレスに関連付けられている場合、その Elastic IP アドレスはアカ
ウントにロックされ、レコードが削除されるまでアカウントから解放することはできません。同様に、
レコードが削除されるまでは、逆引き DNS レコードに関連付けられた Elastic IP アドレスを EC2-VPC
プラットフォームに移行したり、EC2-Classic プラットフォームに復元することもできません。
これらの操作のいずれかを行うには、「Create Case」ページで [EC2 Email] リンクを選択し、「Request
to Remove Email Sending Limitations」ページにアクセスしてください。
Elastic IP アドレスの制限
デフォルトでは、すべての AWS アカウントで 5 つの EIP までに制限されています。これは、パブリッ
ク(IPv4)インターネットアドレスが数に限りのあるパブリックリソースであるためです。インスタン
スに障害が発生した場合にアドレスを他のインスタンスに再マップする機能のために主に Elastic IP ア
ドレスを使用し、他のすべてのノード間通信には DNS ホスト名を使用することを強くお勧めします。
ご利用のアーキテクチャーで追加の Elastic IP アドレスが必要な場合、Amazon EC2 Elastic IP アドレ
スリクエストフォームに記入してください。追加アドレスの必要性を理解できるように、当社はお客様
にユースケースの説明をお願いします。
Elastic Network Interface(ENI)
Abstract
インスタンスに Elastic ネットワークインターフェイスをアタッチすると、プライベート IP アドレス、Elastic IP
アドレス、およびセキュリティグループを指定できます。
Elastic ネットワークインターフェイス(ENI)は、VPC のインスタンスにアタッチできる仮想ネット
ワークインターフェイスです。ENI は、VPC 内で実行中のインスタンスでのみ使用可能です。
ENI には次の属性を含めることができます。
• プライマリプライベート IP アドレス。
• 1 つ以上のセカンダリプライベート IP アドレス。
• プライベート IP アドレスごとに 1 つの Elastic IP アドレス。
• 1 つのパブリック IP アドレス。eth0 の Elastic Network Interface については、インスタンスを起動
したときに自動的に割り当てることができます。ただし既存のネットワークインターフェイスを使用
するのでなく、eth0 の Elastic Network Interface を作成する場合のみです。
• 1 つまたは複数のセキュリティグループ。
• MAC アドレス。
• 送信元/送信先チェックフラグ。
626
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic Network Interface
• 説明。
Elastic Network Interface を作成して、インスタンスへのアタッチ、インスタンスからのデタッチ、別
のインスタンスへのアタッチを行うことができます。Elastic Network Interface をインスタンスにアタッ
チしたり、インスタンスからデタッチして別のインスタンスに再アタッチしたりするときには、Elastic
Network Interface の属性が保持されます。インスタンス間で Elastic Network Interface を移動すると、
ネットワークトラフィックは新しいインスタンスにリダイレクトされます。
VPC の各インスタンスには、VPC の IP アドレス範囲からプライベート IP アドレスが割り当てられ
た、デフォルトの Elastic ネットワークインターフェイス(プライマリネットワークインターフェイス)
があります。プライマリネットワークインターフェイスをインスタンスからデタッチすることはできま
せん。追加の Elastic Network Interface を作成し、アタッチできます。使用できる Elastic Network
Interface の最大数はインスタンスタイプによって異なります。詳細については、「インスタンスタイ
プあたりの ENI ごとのプライベート IP アドレス (p. 628)」を参照してください。
次の作業を行う場合、複数の Elastic Network Interface をインスタンスにアタッチすると便利です。
• 管理用ネットワークを作成する。
• VPC 内でネットワークアプライアンスやセキュリティアプライアンスを使用する。
• 別個のサブネット上のワークロード/ロールを使用するデュアルホーム接続インスタンスを作成する。
• 低予算で可用性の高いソリューションを作成する。
目次
• インスタンスタイプあたりの ENI ごとのプライベート IP アドレス (p. 628)
• 管理用ネットワークの作成 (p. 630)
• VPC 内でネットワークアプライアンスとセキュリティアプライアンスを使用する (p. 630)
• 別個のサブネット上のワークロード/ロールを使用するデュアルホーム接続インスタンスを作成す
る (p. 631)
• 低予算で可用性の高いソリューションを構築する (p. 631)
• ネットワークインターフェイスの IP トラフィックのモニタリング (p. 631)
• Elastic Network Interface の設定に関するベストプラクティス (p. 631)
• ec2-net-utils を使用したネットワークインターフェイスの設定 (p. 632)
• Elastic Network Interface の作成 (p. 633)
• Elastic Network Interface の削除 (p. 633)
• Elastic Network Interface に関する詳細情報の表示 (p. 634)
•
•
•
•
インスタンスの起動時に Elastic Network Interface をアタッチする (p. 635)
停止したインスタンスまたは実行中のインスタンスに Elastic Network Interface をアタッチする (p. 636)
Elastic Network Interface をインスタンスからデタッチする (p. 636)
Elastic Network Interface のセキュリティグループを変更する (p. 637)
• Elastic Network Interface の送信元/送信先チェックを変更する (p. 638)
• Elastic IP アドレスと Elastic Network Interface を関連付ける (p. 638)
• Elastic IP アドレスと Elastic Network Interface の関連付けを解除する (p. 639)
• Elastic Network Interface の終了動作を変更する (p. 639)
• Elastic Network Interface の説明を追加または編集する (p. 640)
• Elastic Network Interface のタグを追加または編集する (p. 641)
627
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスタイプあたりの ENI ごとのプライベート IP
アドレス
インスタンスタイプあたりの ENI ごとのプライベー
ト IP アドレス
インスタンスタイプあたりの Elastic Network Interface(ENI)の最大数、および ENI あたりのプライ
ベート IP アドレスの最大数を次の表に示します。ENI および複数のプライベート IP アドレスは、VPC
で実行されているインスタンスのみに使用できます。詳細については、「複数のプライベート IP アド
レス (p. 613)」を参照してください。
インスタンスタイ
プ
Elastic Network Interface の最大数
インターフェイスあたりの IP アドレス
c1.medium
2
6
c1.xlarge
4
15
c3.large
3
10
c3.xlarge
4
15
c3.2xlarge
4
15
c3.4xlarge
8
30
c3.8xlarge
8
30
c4.large
3
10
c4.xlarge
4
15
c4.2xlarge
4
15
c4.4xlarge
8
30
c4.8xlarge
8
30
cc2.8xlarge
8
30
cg1.4xlarge
8
30
cr1.8xlarge
8
30
d2.xlarge
4
15
d2.2xlarge
4
15
d2.4xlarge
8
30
d2.8xlarge
8
30
g2.2xlarge
4
15
g2.8xlarge
8
30
hi1.4xlarge
8
30
hs1.8xlarge
8
30
i2.xlarge
4
15
i2.2xlarge
4
15
628
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスタイプあたりの ENI ごとのプライベート IP
アドレス
インスタンスタイ
プ
Elastic Network Interface の最大数
インターフェイスあたりの IP アドレス
i2.4xlarge
8
30
i2.8xlarge
8
30
m1.small
2
4
m1.medium
2
6
m1.large
3
10
m1.xlarge
4
15
m2.xlarge
4
15
m2.2xlarge
4
30
m2.4xlarge
8
30
m3.medium
2
6
m3.large
3
10
m3.xlarge
4
15
m3.2xlarge
4
30
m4.large
2
10
m4.xlarge
4
15
m4.2xlarge
4
15
m4.4xlarge
8
30
m4.10xlarge
8
30
r3.large
3
10
r3.xlarge
4
15
r3.2xlarge
4
15
r3.4xlarge
8
30
r3.8xlarge
8
30
t1.micro
2
2
t2.nano
2
2
t2.micro
2
2
t2.small
2
4
t2.medium
3
6
t2.large
3
12
629
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
管理用ネットワークの作成
管理用ネットワークの作成
Elastic Network Interface を使用して管理用ネットワークを作成できます。このシナリオでは、インス
タンスのセカンダリ Elastic Network Interface でパブリック側のトラフィックを処理し、プライマリ
Elastic Network Interface でバックエンドの管理用トラフィックを処理します。プライマリ Elastic
Network Interface はアクセス制御を強化した VPC 内の個別のサブネットに接続されます。パブリック
側のインターフェイス(ロードバランサーの背後に置かれる場合とそうでない場合があります)には、
インターネットからサーバーへのアクセスを許可するセキュリティグループが関連付けられます(たと
えば、0.0.0.0/0 またはロードバランサーからの TCP ポート 80 および 443 を許可します)。プライ
ベート側のインターフェイスには、VPC 内またはインターネットからの許容範囲の IP アドレス、VPC
内のプライベートサブネット、または仮想プライベートゲートウェイからの SSH アクセスのみを許可
するセキュリティグループが関連付けられます
フェイルオーバー機能が確実に動作するように、Elastic Network Interface の受信トラフィックに対し
てセカンダリプライベート IP を使用することをお勧めします。インスタンスに障害が発生した場合は、
インターフェイスまたはセカンダリプライベート IP アドレスあるいはその両方をスタンバイ用のイン
スタンスに移行できます。
VPC内でネットワークアプライアンスとセキュリティ
アプライアンスを使用する
ロードバランサー、ネットワークアドレス変換(NAT)サーバー、プロキシサーバーなど、ネットワー
クアプライアンスやセキュリティアプライアンスの中には、複数の Elastic Network Interface を使用し
た構成が優先されるものがあります。セカンダリ Elastic Network Interface を作成して、これらのタイ
プのアプリケーションを実行する VPC 内のインスタンスにアタッチし、専用のパブリック IP アドレス
とプライベート IP アドレス、セキュリティグループ、および送信元/送信先チェックを使用して追加の
インターフェイスを構成することができます。
630
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
別個のサブネット上のワークロード/ロールを使用するデュ
アルホーム接続インスタンスを作成する
別個のサブネット上のワークロード/ロールを使用す
るデュアルホーム接続インスタンスを作成する
アプリケーションサーバーが存在するミッドティアネットワークに接続するウェブサーバーのそれぞれ
に Elastic Network Interface を置くことができます。アプリケーションサーバーは、データベースサー
バーが存在するバックエンドネットワーク(サブネット)にデュアルホーム接続することもできます。
デュアルホーム接続されたインスタンスを介してネットワークパケットをルーティングする代わりに、
デュアルホーム接続された各インスタンスは、フロントエンドでリクエストを受信して処理し、バック
エンドとの接続を開始し、バックエンドネットワーク上のサーバーにリクエストを送信します。
低予算で可用性の高いソリューションを構築する
特定の機能にサービスを提供しているインスタンスのいずれかが機能しなくなった場合は、その Elastic
Network Interface を同じ役割で構成された交換用またはホットスタンバイ用のインスタンスにアタッチ
することで、サービスを迅速に回復できます。たとえば、データベースインスタンスや NAT インスタ
ンスなどの重要なサービスに対するプライマリまたはセカンダリのネットワークインターフェイスとし
て ENI を使用することができます。そのインスタンスが機能しなくなった場合、ユーザーは(通常は
ユーザーの代わりに実行されるコードで)ENI をホットスタンバイ用のインスタンスにアタッチするこ
とができます。インターフェイスでは、プライベート IP アドレス、Elastic IP アドレス、および MAC
アドレスがそのまま維持されるため、交換用のインスタンスに ENI を接続するとすぐに、ネットワー
クトラフィックはスタンバイ用のインスタンスに流れ始めます。インスタンスに障害が発生してから、
ENI がスタンバイ用のインスタンスにアタッチされるまで、ユーザーは少しの間接続を失った状態にな
りますが、VPC ルートテーブルや DNS サーバーに変更を加える必要はありません。
ネットワークインターフェイスの IP トラフィックの
モニタリング
Elastic Network Interface で VPC フローを有効にして、Elastic Network Interface との間で行き来する
IP トラフィックに関する情報をキャプチャできます。フローログを作成すると、そのデータを Amazon
CloudWatch Logs で表示し、取得できます。
詳細については、Amazon VPC ユーザーガイド の「VPC フローログ」を参照してください。
Elastic Network Interface の設定に関するベストプラ
クティス
• Elastic Network Interface は、インスタンスの実行中、インスタンスの停止中、インスタンスの起動
中にインスタンスにアタッチできます(それぞれ、ホットアタッチ、ウォームアタッチ、コールドア
タッチと呼ばれています)。
• セカンダリ(ethN)Elastic Network Interface は、インスタンスの実行中または停止中にデタッチで
きます。ただし、プライマリ(eth0)インターフェイスをデタッチすることはできません。
• あるサブネットの Elastic Network Interface を同じ VPC 内にある別のサブネットのインスタンスに
アタッチできますが、Elastic Network Interface とインスタンスの両方が同じアベイラビリティーゾー
ン内に存在している必要があります。
• CLI または API からインスタンスを起動する際、プライマリ(eth0)Elastic Network Interface と追
加の Elastic Network Interface の両方に対して、インスタンスにアタッチするネットワークインター
フェイスを指定できます。
• 複数のネットワークインターフェイスを使用して Amazon Linux または Microsoft Windows Server イ
ンスタンスを起動すると、インスタンスのオペレーティングシステム上でインターフェイス、プライ
ベート IP アドレス、およびルートテーブルが自動的に設定されます。
631
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ec2-net-utils を使用したネットワークインターフェイスの
設定
• 追加の Elastic Network Interface をウォームアタッチまたはホットアタッチするとき、場合によって
は、手動で 2 つ目のインターフェイスを起動し、プライベート IP アドレスを設定し、ルートテーブ
ルを適宜変更する必要があります。Amazon Linux または Microsoft Windows Server を実行するイン
スタンスは、ウォームアタッチまたはホットアタッチを自動的に認識し、それらのインスタンス自体
を設定します。
• インスタンスに別の Elastic Network Interface をアタッチする機能は、デュアルホーム接続インスタ
ンスに対するネットワーク帯域幅を増加または倍増するためのものではありません。
• 同じサブネットから複数のネットワークインターフェイスをインスタンスにアタッチすると、非同期
ルーティングなどのネットワーク問題が発生する場合があります。可能であれば、代わりにプライマ
リネットワークインターフェイス上でセカンダリプライベート IP アドレスを使用します。詳細につ
いては、「セカンダリプライベート IP アドレスを割り当てる (p. 614)」を参照してください。
ec2-net-utils を使用したネットワークインターフェイ
スの設定
Amazon Linux AMI には、AWS によって ec2-net-utils という追加のスクリプトが インストールされて
いることがあります。これらのスクリプトはオプションで、Elastic Network Interface(ENI)の設定を
自動化します。これらのスクリプトは Amazon Linux でのみ使用できます。
パッケージをまだインストールしていない場合は、以下のコマンドを使用して Amazon Linux にインス
トールします。インストール済みで、利用可能な更新がある場合は、更新します。
$ yum install ec2-net-utils
ec2-net-utils には、以下のコンポーネントが含まれます。
udev ルール(/etc/udev/rules.d)
実行中のインスタンスにネットワークインターフェイスがアタッチ、デタッチ、または再アタッチ
されたときに、そのネットワークインターフェイスを特定し、ホットプラグスクリプトが実行され
ることを確認します(53-ec2-network-interfaces.rules)。MAC アドレスをデバイス名に
マッピングします(70-persistent-net.rules を生成する
75-persistent-net-generator.rules)。
ホットプラグスクリプト
DHCP での使用に適したインターフェイス設定ファイルを生成します
(/etc/sysconfig/network-scripts/ifcfg-ethN)。また、ルート設定ファイルも生成し
ます(/etc/sysconfig/network-scripts/route-ethN)。
DHCP スクリプト
Elastic Network Interface が新しい DHCP リースを受け取るたびに、このスクリプトがインスタン
スメタデータに対し、Elastic IP アドレスを求めるクエリを実行します。これにより、各 Elastic IP
アドレスごとに、そのアドレスからのアウトバンドトラフィックが正しいネットワークインター
フェイスを使用するよう、ルーティングポリシーデータベースにルールが追加されます。また、各
プライベート IP アドレスを、セカンダリアドレスとして Elastic Network Interface に追加します。
ec2ifup ethN
標準の ifup の機能を拡張します。このスクリプトが設定ファイル ifcfg-ethN および route-ethN
を書き換えた後、ifup を実行します。
ec2ifdown ethN
標準の ifdown の機能が拡張されます。このスクリプトがルーティングポリシーデータベースから
Elastic Network Interface のルールをすべて削除した後、ifdown を実行します。
ec2ifscan
まだ設定されていないネットワークインターフェイスを探して、それらを設定します。
このスクリプトは、ec2-net-utils の初期リリースでは提供されていないことにご留意ください。
632
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic Network Interface の作成
ec2-net-utils によって生成された設定ファイルをリストするには、以下のコマンドを使用します。
$ ls -l /etc/sysconfig/network-scripts/*-eth?
インスタンスごとの自動化を無効にするには、対応する ifcfg-ethN ファイルに EC2SYNC=no を追加
します。たとえば、eth1 インターフェイスの自動化を無効にするには、以下のコマンドを使用します。
$ sed -i -e 's/^EC2SYNC=yes/EC2SYNC=no/' /etc/sysconfig/network-scripts/ifcfgeth1
自動化を完全に無効にするには、以下のコマンドを使用してパッケージを削除します。
$ yum remove ec2-net-utils
Elastic Network Interface の作成
Amazon EC2 コンソールまたはコマンドラインを使用して、Elastic Network Interface を作成できます。
コンソールを使用して Elastic Network Interface を作成するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
[Create Network Interface] を選択します。
[Create Network Interface] ダイアログボックスで、Elastic Network Interface についての次の情報
を入力し、[Yes, Create] を選択します。
a.
b.
c.
d.
[Description] で、記述的な名前を入力します。
[Subnet] で、サブネットを選択します。作成後、Elastic Network Interface を別のサブネット
に移動することはできません。Elastic Network Interface を同じアベイラビリティーゾーンの
インスタンスにアタッチすることはできます。
[Private IP ] で、プライマリプライベート IP アドレスを入力します。IP アドレスを指定しな
い場合、選択されているサブネット内で使用可能な IP アドレスが自動選択されます。
[Security groups] で、1 つまたは複数のセキュリティグループを選択します。
コマンドラインを使用して Elastic Network Interface を作成するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• create-network-interface(AWS CLI)
• ec2-create-network-interface(Amazon EC2 CLI)
• New-EC2NetworkInterface(AWS Tools for Windows PowerShell)
Elastic Network Interface の削除
Elastic Network Interface を削除する前に、その Elastic Network Interface をインスタンスからデタッチ
する必要があります。Elastic Network Interface を削除すると、その Elastic Network Interface に関連付
けられているすべての属性が解放され、別のインスタンスで使用できるように、プライベート IP アド
レスまたは Elastic IP アドレスが解放されます。
633
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic Network Interface に関する詳細情報の表示
Amazon EC2 コンソールまたはコマンドラインを使用して、Elastic Network Interface を削除できます。
コンソールを使用して Elastic Network Interface を削除するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
ナビゲーションペインで、[Network Interfaces] を選択します。
Elastic Network Interface を選択し、[Delete] を選択します。
[Delete Network Interface] ダイアログボックスで、[Yes, Delete] を選択します。
コマンドラインを使用して Elastic Network Interface を削除するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• delete-network-interface(AWS CLI)
• ec2-delete-network-interface(Amazon EC2 CLI)
• Remove-EC2NetworkInterface(AWS Tools for Windows PowerShell)
Elastic Network Interface に関する詳細情報の表示
Amazon EC2 またはコマンドラインを使用して、Elastic Network Interface を記述できます。
コンソールを使用して Elastic Network Interface を記述するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
適切な Elastic Network Interface を選択します。
[Details] タブで詳細を確認します。
コマンドラインを使用して Elastic Network Interface を記述するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-network-interfaces(AWS CLI)
• ec2-describe-network-interfaces(Amazon EC2 CLI)
• Get-EC2NetworkInterface(AWS Tools for Windows PowerShell)
コマンドラインを使用して Elastic Network Interface 属性を記述するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-network-interface-attribute(AWS CLI)
• ec2-describe-network-interface-attribute(Amazon EC2 CLI)
• Get-EC2NetworkInterfaceAttribute(AWS Tools for Windows PowerShell)
634
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
インスタンスの起動時に Elastic Network Interface をアタッ
チする
インスタンスの起動時に Elastic Network Interface を
アタッチする
VPC にインスタンスを起動するとき、追加の Elastic Network Interface をインスタンスにアタッチでき
ます。これを行うには、Amazon EC2 またはコマンドラインを使用します。
Note
Elastic Network Interface をインスタンスにアタッチしたときにエラーが発生した場合、インス
タンスは正しく起動されません。
コンソールを使用してインスタンスの起動時に Elastic Network Interface をアタッチするには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
[インスタンスの作成] を選択します。
AMI およびインスタンスタイプを選択し、[次の手順: インスタンスの詳細の設定] を選択します。
[Configure Instance Details] ページで、[Network] の VPC を選択し、[Subnet] のサブネットを選択
します。
5.
6.
7.
8.
9.
インスタンスにパブリック IP アドレスを割り当てるには、[Auto-assign Public IP] の [Enable] を選
択します (デフォルトのサブネットを選択している場合は [Use subnet setting] オプションをそのま
ま使用できます)。プライマリ Elastic Network Interface(eth0)に既存の Elastic Network Interface
を指定する場合や、次の手順で複数の Elastic Network Interface を指定する場合は、インスタンス
にパブリック IP アドレスを割り当てることはできません。
コンソールの [Network Interfaces] セクションで、インスタンスを起動する際に最大 2 つの Elastic
Network Interface(新規、既存、またはその組み合わせ)を指定することができます。また、すべ
ての新規の Elastic Network Interface について、1 つのプライマリ IP アドレスと、1 つまたは複数
のセカンダリ IP アドレスを入力することができます。終了したら、[Next: Add Storage] を選択し
ます。
インスタンスの起動後に、追加のネットワークインターフェイスを追加できることにご留意くださ
い。アタッチできるネットワークインターフェイスの合計数はインスタンスタイプによって異なり
ます。詳細については、「インスタンスタイプあたりの ENI ごとのプライベート IP アドレ
ス (p. 628)」を参照してください。
次の [Add Storage] ページで、AMI によって指定されるボリューム(ルートデバイスボリュームな
ど)以外にインスタンスにアタッチするボリュームを指定し、[: Tag Instance] を選択します。
[Tag Instance] ページで、ユーザーフレンドリーな名前などを使ってインスタンスのタグを指定し、
[Next: Configure Security Group] を選択します。
[Configure Security Group] ページで、既存のセキュリティグループを選択するか、新しいグループ
を作成します。[Review and Launch] を選択します。
[Review Instance Launch] ページに、プライマリおよび追加ネットワークインターフェイスの詳細
情報が表示されます。設定を確認し、[Launch] を選択して、キーペアを選択し、インスタンスを起
動します。Amazon EC2 を初めて使用する場合、これまでにキーペアを作成したことがなければ、
ウィザードによってキーペアを作成するよう求めるメッセージが表示されます。
コマンドラインを使用してインスタンスの起動時に Elastic Network Interface をアタッチする
には
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• run-instances(AWS CLI)
• ec2-run-instances(Amazon EC2 CLI)
635
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
停止したインスタンスまたは実行中のインスタンスに Elastic
Network Interface をアタッチする
• New-EC2Instance(AWS Tools for Windows PowerShell)
停止したインスタンスまたは実行中のインスタンス
に Elastic Network Interface をアタッチする
Amazon EC2 コンソールの [Instances] ページまたは [Network Interfaces] ページのどちらかから、ある
いはコマンドラインインターフェイスを使用して、VPC 内で停止したインスタンスまたは実行中のイ
ンスタンスに Elastic Network Interface をアタッチできます。
Note
インスタンスのパブリック IP アドレスが解放される場合、複数の Elastic Network Interface が
そのインスタンスにアタッチされていると、インスタンスに新しいパブリック IP アドレスは
送信されません。パブリック IP アドレスの動作の詳細については、「パブリック IP アドレス
と外部 DNS ホスト名 (p. 608)」を参照してください。
インスタンスページを使用して Elastic Network Interface をインスタンスにアタッチするには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[インスタンス] を選択します。
[Actions]、[Networking]、[Attach Network Interface] の順に選択します。
[Attach Network Interface] ダイアログボックスで、Elastic Network Interface を選択し、[Attach] を
選択します。
ネットワークインターフェイスページを使用して Elastic Network Interface をインスタンスに
アタッチするには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
Elastic Network Interface を選択し、[Attach] を選択します。
[Attach Network Interface] ダイアログボックスでインスタンスを選択し、[Attach] を選択します。
コマンドラインを使用してインスタンスの起動時に Elastic Network Interface をアタッチする
には
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• attach-network-interface(AWS CLI)
• ec2-attach-network-interface(Amazon EC2 CLI)
• Add-EC2NetworkInterface(AWS Tools for Windows PowerShell)
Elastic Network Interface をインスタンスからデタッ
チする
セカンダリ Elastic Network Interface は、Amazon EC2 コンソールの [Instances] ページまたは [Network
Interfaces] ページを使用して、またはコマンドラインインターフェイスを使用して、いつでもデタッチ
できます。
636
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic Network Interface のセキュリティグループを変更す
る
インスタンスページを使用して Elastic Network Interface をインスタンスからデタッチするに
は
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
ナビゲーションペインで、[インスタンス] を選択します。
[Actions]、[Networking]、[Detach Network Interface] の順に選択します。
[Detach Network Interface] ダイアログボックスで、Elastic Network Interface を選択し、[Detach]
を選択します。
ネットワークインターフェイスページを使用して Elastic Network Interface をインスタンスか
らデタッチするには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
4.
ナビゲーションペインで、[Network Interfaces] を選択します。
Elastic Network Interface を選択し、[Detach] を選択します。
[Detach Network Interface] ダイアログボックスで [Yes, Detach] を選択します。Elastic Network
Interface をインスタンスからデタッチできなかった場合は、[Force detachment] を選択し、再試行
します。
コマンドラインを使用して Elastic Network Interface をデタッチするには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• detach-network-interface(AWS CLI)
• ec2-detach-network-interface(Amazon EC2 CLI)
• Dismount-EC2NetworkInterface(AWS Tools for Windows PowerShell)
Elastic Network Interface のセキュリティグループを
変更する
Elastic Network Interface に関連付けられているセキュリティグループを変更できます。セキュリティ
グループを作成するとき、Elastic Network Interface のサブネットと同じ VPC を必ず指定します。
Amazon EC2 またはコマンドラインを使用して、Elastic Network Interface のセキュリティグループを
変更することができます。
Note
Elastic Load Balancing などの他のサービスが所有するインターフェイスのセキュリティグルー
プメンバーシップを変更するには、そのサービスのコンソールまたはコマンドラインインター
フェイスを使用します。
コンソールを使用して Elastic Network Interface のセキュリティグループを変更するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインで、[Network Interfaces] を選択します。
Elastic Network Interface を選択し、[Actions] を選択して、[Change Security Groups] を選択しま
す。
4.
[Change Security Groups] ダイアログボックスで、使用するセキュリティグループを選択し、[Save]
を選択します。
637
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic Network Interface の送信元/送信先チェックを変更
する
コマンドラインを使用して Elastic Network Interface のセキュリティグループを変更するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• modify-network-interface-attribute(AWS CLI)
• ec2-modify-network-interface-attribute(Amazon EC2 CLI)
• Edit-EC2NetworkInterfaceAttribute(AWS Tools for Windows PowerShell)
Elastic Network Interface の送信元/送信先チェックを
変更する
[Source/Destination Check] 属性により、送信元/送信先チェックがインスタンスで有効になっているか
どうかが制御されます。この属性を無効にすると、インスタンスで自身にアドレス指定されていない
ネットワークトラフィックを処理することが可能になります。たとえば、ネットワークアドレス変換、
ルーティング、ファイアウォールなどのサービスを実行するインスタンスではこの値を disabled に
設定する必要があります。デフォルト値は enabled です。
Amazon EC2 またはコマンドラインを使用して、送信元/送信先チェックを変更できます。
コンソールを使用して Elastic Network Interface の送信元/送信先チェックを変更するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
Elastic Network Interface を選択し、[Actions] を選択して、[Change Source/Dest Check] を選択し
ます。
ダイアログボックスで [Enabled] (有効にする場合) または [Disabled] (無効にする場合) を選択し
て、[Save] を選択します。
コマンドラインを使用して Elastic Network Interface の送信元/送信先チェックを変更するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• modify-network-interface-attribute(AWS CLI)
• ec2-modify-network-interface-attribute(Amazon EC2 CLI)
• Edit-EC2NetworkInterfaceAttribute(AWS Tools for Windows PowerShell)
Elastic IP アドレスと Elastic Network Interface を関
連付ける
Elastic IP アドレスが与えられている場合、Elastic Network Interface のプライベート IP アドレスの 1
つをそれと関連付けることができます。1 つの Elastic IP アドレスと各プライベート IP アドレスを関連
付けることができます。
Amazon EC2 またはコマンドラインを使用して、Elastic IP アドレスを関連付けることができます。
コンソールを使用して Elastic IP アドレスを関連付けるには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
638
3.
4.
5.
6.
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic IP アドレスと Elastic Network Interface の関連付け
を解除する
Elastic Network Interface を選択し、[Actions] を選択して、[Associate Address] を選択します。
[Associate Elastic IP Address] ダイアログボックスで、[Address] リストから Elastic IP アドレスを
選択します。
[Associate to private IP address] で、Elastic IP アドレスに関連付けるプライベート IP アドレスを
選択します。
[Allow reassociation] を選択して、指定したネットワークインターフェイスに Elastic IP アドレスを
関連付け (現在、別のインスタンスまたはネットワークインターフェイスに関連付けられている場
合)、[Associate Address] を選択します。
コマンドラインを使用して Elastic IP アドレスを関連付けるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• associate-address(AWS CLI)
• ec2-associate-address(Amazon EC2 CLI)
• Register-EC2Address(AWS Tools for Windows PowerShell)
Elastic IP アドレスと Elastic Network Interface の関
連付けを解除する
Elastic Network Interface に Elastic IP アドレスが関連付けられている場合、アドレスの関連付けを解除
し、別の Elastic Network Interface に関連付けるか、解放してアドレスプールに戻すことができます。
Elastic Network Interface は特定のサブネットに固有になるため、これは Elastic Network Interface を利
用し、異なるサブネットまたは VPC のインスタンスに Elastic IP アドレスを関連付ける唯一の方法に
なります。
Amazon EC2 またはコマンドラインを使用して、Elastic IP アドレスの関連付けを解除することができ
ます。
コンソールを使用して Elastic IP アドレスの関連付けを解除するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
Elastic Network Interface を選択し、[Actions] を選択して、[Disassociate Address] を選択します。
[Disassociate IP Address] ダイアログボックスで [Yes, Disassociate] を選択します。
コマンドラインを使用して Elastic IP アドレスを別のインスタンスに関連付けるには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• disassociate-address(AWS CLI)
• ec2-disassociate-address(Amazon EC2 CLI)
• Unregister-EC2Address(AWS Tools for Windows PowerShell)
Elastic Network Interface の終了動作を変更する
Elastic Network Interface がアタッチされているインスタンスが削除されたときに Elastic Network
Interface も自動的に削除するように、インスタンスにアタッチされている Elastic Network Interface の
終了動作を設定できます。
639
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic Network Interface の説明を追加または編集する
Note
デフォルトでは、コンソールによって自動的に作成されインスタンスにアタッチされた Elastic
Network Interface は、インスタンスの終了時に終了するように設定されています。ただし、コ
マンドラインインターフェイスを使用して作成されたネットワークインターフェイスは、イン
スタンスの終了時に終了するように設定されていません。
Amazon EC2 またはコマンドラインを使用して、Elastic Network Interface の終了時の動作を変更する
ことができます。
コンソールを使用して Elastic Network Interface の終了時の動作を変更するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
3.
Elastic Network Interface を選択し、[Actions] を選択して、[Change Termination Behavior] を選択
します。
インスタンスの終了時に Elastic Network Interface を削除する場合は、[Change Termination Behavior]
ダイアログボックスの [Delete on termination] チェックボックスを選択します。
4.
コマンドラインを使用して Elastic Network Interface の終了時の動作を変更するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• modify-network-interface-attribute(AWS CLI)
• ec2-modify-network-interface-attribute(Amazon EC2 CLI)
• Edit-EC2NetworkInterfaceAttribute(AWS Tools for Windows PowerShell)
Elastic Network Interface の説明を追加または編集す
る
Amazon EC2 またはコマンドラインを使用して、Elastic Network Interface の説明を変更することがで
きます。
コンソールを使用して Elastic Network Interface の説明を変更するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
3.
4.
Elastic Network Interface を選択し、[Actions] を選択して、[Change Description] を選択します。
[Change Description] ダイアログボックスで Elastic Network Interface の説明を入力し、[Save] を
選択します。
コマンドラインを使用して Elastic Network Interface の説明を変更するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• modify-network-interface-attribute(AWS CLI)
• ec2-modify-network-interface-attribute(Amazon EC2 CLI)
• Edit-EC2NetworkInterfaceAttribute(AWS Tools for Windows PowerShell)
640
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Elastic Network Interface のタグを追加または編集する
Elastic Network Interface のタグを追加または編集す
る
タグとは、Elastic Network Interface に追加できるメタデータです。 タグはプライベートとして扱われ、
アカウントでのみ表示できます。各タグはキーとオプションの値で構成されます。タグの詳細について
は、Amazon EC2 リソースにタグを付ける (p. 774) を参照してください。
Amazon EC2 またはコマンドラインを使用して、リソースにタグを付けることができます。
コンソールを使用して Elastic Network Interface のタグを追加または編集するには
1.
2.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで、[Network Interfaces] を選択します。
3.
4.
5.
適切な Elastic Network Interface を選択します。
詳細ペインの [Tags] を選択し、[Add/Edit Tags] を選択します。
[Add/Edit Tags] ダイアログボックスで、作成するタグごとに [Create Tag] を選択して、キーとオ
プションの値を入力します。完了したら、[Save ] を選択します。
コマンドラインを使用して Elastic Network Interface のタグを追加または編集するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• create-tags(AWS CLI)
• ec2-create-tags(Amazon EC2 CLI)
• New-EC2Tag(AWS Tools for Windows PowerShell)
プレイスメントグループ
Abstract
密結合ノード間通信には、単一のアベイラビリティーゾーンを使ったインスタンスの論理グループである、プレイ
スメントグループを使用します。
プレイスメントグループは、単一のアベイラビリティーゾーン内のインスタンスを論理的にグループ化
したものです。プレイスメントグループを使用すると、アプリケーションが低レイテンシーの 10 Gbps
ネットワークに参加できるようになります。ネットワークレイテンシーが低い場合、ネットワークス
ループットが高い場合、またはその両方の場合にメリットがあるアプリケーションでは、プレイスメン
トグループの使用をお勧めします。プレイスメントグループで、最も低いレイテンシーと最も高いネッ
トワークパフォーマンス(1 秒あたりパケット数)を実現するためには、拡張ネットワーキングをサ
ポートするインスタンスタイプを選択します。詳細については、「拡張ネットワーキング (p. 648)」を
参照してください。
最初にプレイスメントグループを作成してから、そのプレイスメントグループ内で複数のインスタンス
を起動します。単一の起動リクエストでは、プレイスメントグループ内で必要な数のインスタンスを起
動することと、プレイスメントグループ内のすべてのインスタンスで同じインスタンスタイプを使用す
ることをお勧めします。後でプレイスメントグループにさらにインスタンスを追加しようとした場合、
またはプレイスメントグループ内で複数のインスタンスタイプを起動しようとした場合、容量不足エ
ラーが発生する可能性が高くなります。
プレイスメントグループ内のインスタンスを停止して再起動しても、そのインスタンスは同じプレイス
メントグループ内で実行されます。ただし、インスタンスに対して十分な容量がない場合、起動は失敗
します。
641
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プレイスメントグループの制限
プレイスメントグループ内のインスタンスを起動するときに容量エラーを受け取った場合は、プレイス
メントグループ内のインスタンスを停止して再起動してから、もう一度起動してください。
目次
• プレイスメントグループの制限 (p. 642)
• プレイスメントグループへのインスタンスの起動 (p. 642)
• プレイスメントグループを削除する (p. 644)
プレイスメントグループの制限
プレイスメントグループには次の制限があります。
• プレイスメントグループを、複数のアベイラビリティーゾーンにまたがって設定することはできませ
ん。
• プレイスメントグループ名に指定する名前は、AWS アカウント内で固有である必要があります。
• プレイスメントグループにインスタンスを起動するときに使用できるインスタンスタイプは、次に示
すもののみです。
• 汎用: m4.large | m4.xlarge | m4.2xlarge | m4.4xlarge | m4.10xlarge
• コンピューティングを最適化: c4.large | c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge
| c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | cc2.8xlarge
• メモリを最適化: cr1.8xlarge | r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge
• ストレージを最適化: d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | hi1.4xlarge |
hs1.8xlarge | i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge
• GPU: cg1.4xlarge | g2.2xlarge | g2.8xlarge
• プレイスメントグループで起動できるすべてのインスタンスタイプが、提供される 10 ギガビットの
ネットワーク速度を最大限に利用できるわけではありません。10 ギガビットのネットワーク速度を
サポートするインスタンスタイプの一覧は、「Amazon EC2 インスタンスタイプのマトリックス」
にあります。
• プレイスメントグループ内で複数のインスタンスタイプを起動することはできますが、これにより、
起動に成功するために必要な容量を利用できる可能性が低下します。プレイスメントグループ内です
べてのインスタンスで同じインスタンスタイプを使用することをお勧めします。
• プレイスメントグループをマージすることはできません。代わりに、一方のプレイスメントグループ
でインスタンスを削除してから、他方のプレイスメントグループ内でインスタンスを再作成する必要
があります。
• プレイスメントグループはピア接続された VPC にわたって使用できますが、ピア接続された VPC
のインスタンス間では完全な二分帯域幅が得られません。VPC のピア接続の詳細については、
『Amazon VPC ユーザーガイド』の「VPC Peering」を参照してください。
• 既存のインスタンスをプレイスメントグループに移動することはできません。既存のインスタンスか
ら AMI を作成し、その AMI からプレイスメントグループに新しいインスタンスを起動します
• リザーブドインスタンスは、アベイラビリティーゾーンの EC2 インスタンスに対してキャパシティー
を予約します。キャパシティーの予約はプレイスメントグループ内で同じアベイラビリティーゾーン
に割り当てられたインスタンスで使用できます。ただし、プレイスメントグループに対して明示的に
キャパシティーを予約することはできません。
プレイスメントグループへのインスタンスの起動
プレイスメントグループに起動するインスタンス専用の AMI を作成することをお勧めします。
コンソールを使用してプレイスメントグループにインスタンスを起動するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
642
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プレイスメントグループへのインスタンスの起動
2.
インスタンス用の AMI を作成します。
a.
Amazon EC2 ダッシュボードで、[Launch Instance] をクリックします。ウィザードを完了し
たら、[Launch] をクリックします。
b.
インスタンスに接続します。(詳細については、「Linux インスタンスへの接続 (p. 266)」を参
照してください。
c.
ソフトウェアとアプリケーションをインスタンスにインストールし、データをコピーするか、
追加の Amazon EBS ボリュームをアタッチします。
(オプション)インスタンスタイプが拡張ネットワーキングをサポートしている場合、「VPC
内の Linux インスタンスでの拡張ネットワーキングの有効化 (p. 648)」の手順を実行すること
によって、この機能が有効になっていることを確認します。
ナビゲーションペインで、[Instances] をクリックしてインスタンスを選択し、[Actions] をク
リックして [Image] を選択した後、[Create Image] をクリックします。[Create Image] ダイア
ログボックスで要求された情報を入力し、[Create Image] をクリックします。
d.
e.
f.
3.
(オプション)それ以上使用しない場合、このインスタンスを終了できます。
プレイスメントグループを作成します。
a.
b.
c.
ナビゲーションペインで、[Placement Groups] をクリックします。
[Create Placement Group] をクリックします。
[Create Placement Group] ダイアログボックスで、プレイスメントグループに対して、使用中
の AWS アカウント内で一意の名前を入力し、[Create] をクリックします。
プレイスメントグループのステータスが available であれば、インスタンスをプレイスメン
トグループに起動できます。
4.
インスタンスをプレイスメントグループに起動します。
a.
b.
ナビゲーションペインの [Instances] をクリックします。
[Launch Instance] をクリックします。指示どおりにウィザードを完了し、次の操作を行うよ
うに注意します。
• [Choose an Amazon Machine Image (AMI)] ページで、[My AMIs] タブを選択し、作成した
AMI を選択します。
• [Choose an Instance Type] ページはで、プレイスメントグループ内で起動できるインスタ
ンスタイプを選択します。
• [Configure Instance Details] で、このプレイスメントグループ内で必要になるインスタンス
の総数を入力します。これは、後でプレイスメントグループにインスタンスを追加できない
場合があるためです。
• [Configure Instance Details] ページで、[Placement Group] から、作成したプレイスメント
グループを選択します。このページで [Placement group] リストが表示されない場合は、こ
のオプションは他では利用できないため、プレイスメントグループで起動できるインスタン
スタイプを選択していることを確認してください。
コマンドラインを使用してプレイスメントグループにインスタンスを起動するには
1.
次のコマンドのいずれかを使用して、インスタンス用の AMI を作成します。
• create-image(AWS CLI)
• ec2-create-image(Amazon EC2 CLI)
643
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
プレイスメントグループを削除する
• New-EC2Image(AWS Tools for Windows PowerShell)
2.
次のコマンドのいずれかを使用して、プレイスメントグループを作成します。
• create-placement-group(AWS CLI)
• ec2-create-placement-group(Amazon EC2 CLI)
• New-EC2PlacementGroup(AWS Tools for Windows PowerShell)
3.
次のオプションのいずれかを使用して、プレイスメントグループでインスタンスを起動します。
• --placement と run-instances (AWS CLI)
• --placement-group と ec2-run-instances (Amazon EC2 CLI)
• -PlacementGroup と New-EC2Instance (AWS Tools for Windows PowerShell)
プレイスメントグループを削除する
置き換えが必要になったり、プレイスメントグループが不要になったりした場合は、プレイスメントグ
ループを削除できます。プレイスメントグループを削除する前に、プレイスメントグループに起動した
すべてのインスタンスを終了する必要があります。
コンソールを使用してプレイスメントグループを削除するには
1.
2.
3.
4.
5.
6.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Instances] をクリックします。
プレイスメントグループのすべてのインスタンスを選択して終了します(インスタンスを終了する
前に、そのインスタンスがプレイスメントグループ内にあることを確認できます。そのためには、
詳細ペインで [Placement Group] の値をチェックします)。
ナビゲーションペインで、[Placement Groups] をクリックします。
プレイスメントグループを選択し、[Delete Placement Group] をクリックします。
確認を求めるメッセージが表示されたら、[Yes, Delete] をクリックします。
コマンドラインを使用してプレイスメントグループを削除するには
次のいずれかのコマンドセットを使用できます。これらのコマンドラインインターフェイスの詳細につ
いては、「Amazon EC2 へのアクセス (p. 3)」を参照してください。
• terminate-instances および delete-placement-group(AWS CLI)
• ec2-terminate-instances および ec2-delete-placement-group(Amazon EC2 CLI)
• Stop-EC2Instance および Remove-EC2PlacementGroup(AWS Tools for Windows PowerShell)
EC2 インスタンスの最大ネットワーク送信単位
(MTU)
Abstract
EC2 インスタンスでサポートされている最大 MTU は、インスタンスタイプによって異なります。
644
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ジャンボフレーム(9001 MTU)
ネットワーク接続の最大送信単位(MTU)とは、接続を介して渡すことができる最大許容パケットサ
イズ(バイト単位)です。接続の MTU が大きいほど、より多くのデータを単一のパケットで渡すこと
ができます。イーサネットパケットは、フレーム(送信している実際のデータ)とそれを囲むネット
ワークオーバーヘッド情報で構成されています。
イーサネットフレームの形式はさまざまで、最も一般的な形式は、標準イーサネット v2 フレーム形式
です。これはインターネットのほとんどでサポートされている最大のイーサネットパケットサイズであ
る 1500 MTU をサポートします。インスタンスでサポートされている最大 MTU は、インスタンスタイ
プによって異なります。すべての Amazon EC2 インスタンスタイプで 1500 MTU がサポートされてお
り、現在の多くのインスタンスサイズで 9001 MTU またはジャンボフレームがサポートされています。
目次
• ジャンボフレーム(9001 MTU) (p. 645)
• パス MTU 検出 (p. 645)
• 2 つホスト間のパス MTU の確認 (p. 646)
• Amazon EC2 インスタンス上の MTU の確認および設定 (p. 647)
• トラブルシューティング (p. 648)
ジャンボフレーム(9001 MTU)
ジャンボフレームでは、パケットあたりのペイロードサイズを拡張し、パケットオーバーヘッド以外の
パケットの割合を高めることによって、1500 バイトを超えるデータを送信できます。同じ量の使用可
能なデータを少ないパケットで送信することができます。ただし、特定の AWS リージョン (EC2-Classic)
または 1 つの VPC の外側では、最大パスが 1500 MTU になることがあります。VPN 接続、VPC ピア
接続、インターネットゲートウェイを介して送信されるトラフィックは 1500 MTU に制限されます。
パケットが 1500 バイト以上ある場合は、フラグメント化されます。または、Don't Fragment フラ
グが IP ヘッダーに設定されている場合は削除されます。
ジャンボフレームを、インターネットバウンドトラフィックや VPC を出るトラフィックに使用する場
合には慎重に行ってください。パケットは中間システムによってフラグメント化されるため、このトラ
フィックの速度が低下します。VPC 外に向かうトラフィックの速度を低下させずに VPC 内のジャンボ
フレームを使用するには、ルートごとに MTU サイズを設定するか、または MTU サイズやルートの異
なる複数の Elastic ネットワークインターフェイスを使用します。
プレイスメントグループ内にコロケーションされたインスタンスでは、考えられる最大のネットワーク
スループットの実現するうえでジャンボフレームが役立ちます。この場合は、ジャンボフレームを使用
することが推奨されています。詳細については、「プレイスメントグループ (p. 641)」を参照してくだ
さい。
次のインスタンスは、ジャンボフレームをサポートしています。
• コンピューティングを最適化: C3、C4、CC2
• 汎用: M3、M4、T2
• GPU: CG1、G2
• メモリを最適化: CR1、R3
• ストレージを最適化: D2、HI1、HS1、I2
パス MTU 検出
2 つのデバイス間のパス MTU を判断するために、パス MTU 検出が使用されます。パス MTU は、送信
側ホストと受信側ホスト間のパスでサポートされている最大のパケットサイズです。ホストが受信側ホ
ストの MTU よりも大きなパケット、またはデバイスの MTU よりも大きなパケットをパスに沿って送
信する場合、受信側ホストまたはデバイスは ICMP メッセージ Destination Unreachable:
645
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
2 つホスト間のパス MTU の確認
Fragmentation Needed and Don't Fragment was Set(タイプ 3、コード 4)を返します。こ
れによって、パケットが送信できるようになるまで MTU を調整するように元のホストに指示されま
す。
デフォルトでは、セキュリティグループはインバウンド ICMP トラフィックを許可しません。インスタ
ンスがこのメッセージを受信でき、パケットが削除されないようにするには、[Destination Unreachable]
プロトコルをインスタンスのインバウンドセキュリティグループルールに設定したカスタム ICMP ルー
ルを追加する必要があります。詳細については、Amazon EC2 のセキュリティグループのトピックで、
「セキュリティグループへのルールの追加 (p. 520)」および「API とコマンドの概要 (p. 522)」を参照し
てください。
Important
インスタンスのセキュリティグループを変更してパス MTU 検出を有効にした場合、一部のルー
ターによってジャンボフレームが無視されることがあります。VPC のインターネットゲート
ウェイによって、最大 1500 バイトのパケットだけが転送されます。インターネットトラフィッ
クには、1500 MTU パケットが推奨されています。
2 つホスト間のパス MTU の確認
tracepath コマンドを使用して 2 つのホスト間のパス MTU を確認することができます。このコマンド
は、 Amazon Linux を含む、多くの Linux ディストリビューションでデフォルトで提供されている
iputils パッケージの一部です。
tracepath を使用してパス MTU を確認するには
•
次のコマンドを使用して、Amazon EC2 インスタンスと別のホスト間のパス MTU を確認します。
宛先として DNS 名または IP アドレスを使用できます。この例では、EC2 インスタンスと
amazon.com 間のパス MTU を確認します。
[ec2-user ~]$ tracepath amazon.com
1?: [LOCALHOST]
pmtu 9001
1: ip-172-31-16-1.us-west-1.compute.internal (172.31.16.1)
0.187ms pmtu
1500
1: no reply
2: no reply
3: no reply
4: 100.64.16.241 (100.64.16.241)
0.574ms
5: 72.21.222.221 (72.21.222.221)
84.447ms asymm
21
6: 205.251.229.97 (205.251.229.97)
79.970ms asymm
19
7: 72.21.222.194 (72.21.222.194)
96.546ms asymm
16
8: 72.21.222.239 (72.21.222.239)
79.244ms asymm
15
9: 205.251.225.73 (205.251.225.73)
91.867ms asymm
16
...
31: no reply
Too many hops: pmtu 1500
Resume: pmtu 1500
この例では、パス MTU は 1500 です。
646
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EC2 インスタンス上の MTU の確認および設定
Amazon EC2 インスタンス上の MTU の確認および
設定
一部の AMI では、ジャンボフレームをサポートしているインスタンスについてはジャンボフレームを
使用し、それ以外のインスタンスには標準フレームサイズを使用するように設定されています。VPC
内のネットワークトラフィックにはジャンボフレームを使用し、インターネットトラフィックには標準
フレームを使用したいと思われるかもしれません。いずれにしても、予想したとおりにインスタンスが
動作することを確認することをお勧めします。このセクションの手順に従って、ネットワークインター
フェイスの MTU 設定を確認し、必要に応じてそれらを変更することができます。
Linux インスタンス上の MTU 設定を確認するには
•
インスタンスに Linux オペレーティングシステムが使用されている場合は、ip コマンドで MTU 値
を確認することができます。現在の MTU 値を調べるには、次のコマンドを実行します。
[ec2-user ~]$ ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state
UP mode DEFAULT group default qlen 1000
link/ether 02:90:c0:b7:9e:d1 brd ff:ff:ff:ff:ff:ff
上記の例では、mtu 9001 が出力されていることから、このインスタンスにジャンボフレームが使
用されていることがわかります。
Linux インスタンス上の MTU 値を設定するには
1.
インスタンスに Linux オペレーティングシステムが使用されている場合は、ip コマンドで MTU 値
を設定することができます。目的の MTU 値を設定するには、次のコマンドを実行します。この手
順では、MTU を 1500 に設定しますが、9001 に設定する場合も手順は同じです。
[ec2-user ~]$ sudo ip link set dev eth0 mtu 1500
2.
(オプション)再起動後もネットワーク MTU 設定を維持するには、オペレーティングシステムの
タイプに基づいて、次の設定ファイルを変更します。この手順では、Amazon Linux と Ubuntu に
ついて説明します。その他のディストリビューションについては、特定のドキュメントを参照して
ください。
•
Amazon Linux の場合、次の行を /etc/dhcp/dhclient-eth0.conf ファイルに追加します。
interface "eth0" {
supersede interface-mtu 1500;
}
•
Ubuntu の場合、次の行を /etc/network/interfaces.d/eth0.cfg に追加します。
post-up /sbin/ifconfig eth0 mtu 1500
3.
(オプション)インスタンスを再起動し、MTU 設定が正しいことを確認します。
647
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
トラブルシューティング
トラブルシューティング
ジャンボフレームを使用したときに EC2 インスタンスと Amazon Redshift クラスター間の接続に問題
が発生する場合は、Amazon Redshift Cluster Management Guide の「クエリがハングしたようになる」
を参照してください。
VPC 内の Linux インスタンスでの拡張ネットワー
キングの有効化
Abstract
サポート対象の Linux インスタンスで、拡張ネットワーキング機能を有効化します。
Amazon EC2 には、サポートされているインスタンスタイプ (p. 648)に対してシングルルート I/O 仮想
化(SR-IOV)を使用した拡張ネットワーキング機能が搭載されています。インスタンスで拡張ネット
ワーキング機能を有効化すると、パフォーマンス(秒あたりのパケット数)が拡張され、レイテンシー
が低くなり、お客様の手間が省略されます。
インスタンスで拡張ネットワーキング機能を有効化するには、カーネルの ixgbevf モジュールがイン
ストールされていることと、インスタンスの sriovNetSupport 属性が設定済みであることを確認す
る必要があります。最適なパフォーマンスを得るには、ixgbevf モジュールのバージョン 2.14.2 以上
を使用することをお勧めします。
Important
最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要なモジュールがインストー
ルされており、必要な属性も設定されています。したがって、拡張ネットワーキングがサポー
トされている、Amazon EBS-Backed インスタンスを最新の Amazon Linux HVM AMI を使用し
て起動した場合は、拡張ネットワーキングが既に有効化されています。
目次
• 拡張ネットワーキングをサポートするインスタンス (p. 648)
• 要件 (p. 649)
• 拡張ネットワーキングが有効化されているかどうかのテスト (p. 649)
• Amazon Linux での拡張ネットワーキングの有効化 (p. 652)
• Ubuntu での拡張ネットワーキングの有効化 (p. 654)
• 他の Linux ディストリビューションでの拡張ネットワーキングの有効化 (p. 657)
• 接続性の問題のトラブルシューティング (p. 660)
Windows での手順については、Microsoft Windows インスタンスの Amazon EC2 ユーザーガイド の
VPC 内の Windows インスタンスで拡張ネットワーキングを有効化するに説明があります。
拡張ネットワーキングをサポートするインスタンス
拡張ネットワーキングは、次のインスタンスでサポートされています。
• C3
• C4
• D2
• I2
648
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
要件
• M4
• R3
インスタンスタイプの詳細については、「Amazon EC2 インスタンス」を参照してください。
要件
拡張ネットワーキングを有効にする前に、以下の点を確認してください。
• Linux カーネルバージョン 2.6.32 以上で、HVM AMI からインスタンスを起動します。
• サポートされているインスタンスタイプを使用して、インスタンスを起動します。詳細については、
「拡張ネットワーキングをサポートするインスタンス (p. 648)」を参照してください。
• VPC 内でインスタンスを起動している(インスタンスが EC2-Classic 内で動作している場合、拡張
ネットワーキングを有効にできません)。
• AWS CLI または Amazon EC2 CLI ツールを、選択した任意のコンピュータ(できればローカルのデ
スクトップまたはノート PC)にインストールして設定します。詳細については、「Amazon EC2 へ
のアクセス (p. 3)」を参照してください。Amazon EC2 CLI ツールを選択する場合は、バージョン
1.6.12.0 以降をインストールします。CLI ツールのバージョンを確認するには、ec2-version コマン
ドを使用できます。
• インスタンスに保存しておく必要がある重要なデータがある場合は、スナップショットを作成するこ
とによって、Amazon EBS-backed インスタンスのスナップショットを作成するか、instance
store-backed インスタンスの AMIを作成することによって、ここでデータをバックアップする必要が
あります。カーネルとカーネルモジュールを更新し、sriovNetSupport 属性を有効にすると、互換
性のないインスタンスが作成されたり、オペレーティングシステムにアクセスできなくなる場合があ
ります。最新のバックアップがあれば、このような場合でもデータは保持されます。
拡張ネットワーキングが有効化されているかどうか
のテスト
拡張ネットワーキングが既に有効になっているかどうかをテストするには、ixgbevf モジュールがイ
ンスタンスにインストールされていることと、sriovNetSupport 属性が設定されていることを確認し
ます。インスタンスがこれら 2 つの条件を満たしている場合は、ethtool -i ethn コマンドによって、ネッ
トワークインターフェイスで使用されているモジュールが表示されます。
カーネルモジュール(ixgbevf)
ixgbevf モジュールがインストールされていることと、そのバージョン拡張ネットワーキングと互換
性があることを確認するには、次のように modinfo コマンドを使用します。
[ec2-user ~]$ modinfo ixgbevf
filename:
/lib/modules/3.10.48-55.140.amzn1.x86_64/ker
nel/drivers/amazon/ixgbevf/ixgbevf.ko
version:
2.14.2
license:
GPL
description:
Intel(R) 82599 Virtual Function Driver
author:
Intel Corporation, <[email protected]>
srcversion:
50CBF6F36B99FE70E56C95A
alias:
pci:v00008086d00001515sv*sd*bc*sc*i*
alias:
pci:v00008086d000010EDsv*sd*bc*sc*i*
depends:
intree:
Y
vermagic:
3.10.48-55.140.amzn1.x86_64 SMP mod_unload modversions
649
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
拡張ネットワーキングが有効化されているかどうかのテス
ト
parm:
InterruptThrottleRate:Maximum interrupts per second, per vector,
(956-488281, 0=off, 1=dynamic), default 1 (array of int)
前述の Amazon Linux の場合、ixgbevf モジュールは既にインストールされており、最小推奨バージョ
ン(2.14.2)です。
ubuntu:~$ modinfo ixgbevf
filename:
/lib/modules/3.13.0-29-generic/kernel/drivers/net/ethernet/in
tel/ixgbevf/ixgbevf.ko
version:
2.11.3-k
license:
GPL
description:
Intel(R) 82599 Virtual Function Driver
author:
Intel Corporation, <[email protected]>
srcversion:
0816EA811025C8062A9C269
alias:
pci:v00008086d00001515sv*sd*bc*sc*i*
alias:
pci:v00008086d000010EDsv*sd*bc*sc*i*
depends:
intree:
Y
vermagic:
3.13.0-29-generic SMP mod_unload modversions
signer:
Magrathea: Glacier signing key
sig_key:
66:02:CB:36:F1:31:3B:EA:01:C4:BD:A9:65:67:CF:A7:23:C9:70:D8
sig_hashalgo:
sha512
parm:
debug:Debug level (0=none,...,16=all) (int)
前述の Ubuntu インスタンスでは、モジュールはインストールされていますが、バージョンは 2.11.3-k
であり、推奨されるバージョン 2.14.2 に含まれている最新のバグ修正の一部が含まれていない場合が
あります。この場合、ixgbevf モジュールは機能しますが、最適なエクスペリエンスのために、新し
いバージョンをインスタンスにインストールしてロードすることができます。
インスタンス属性(sriovNetSupport)
インスタンスに拡張ネットワーキング属性が設定されているかどうかを確認するには、次のいずれかの
コマンドを使用します。
• describe-instance-attribute (AWS CLI)
$ aws ec2 describe-instance-attribute --instance-id instance_id --attribute
sriovNetSupport
拡張ネットワーキング属性が設定されていない場合、SriovNetSupport は空です。そうでない場
合、次のように設定されています。
"SriovNetSupport": {
"Value": "simple"
},
• ec2-describe-instance-attribute (Amazon EC2 CLI)
$ ec2-describe-instance-attribute instance_id --sriov
拡張ネットワーキング属性が設定されていない場合、このコマンドに対する出力はありません。そう
でない場合、出力は次のようになります。
650
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
拡張ネットワーキングが有効化されているかどうかのテス
ト
sriovNetSupport instance_id
simple
イメージ属性(sriovNetSupport)
AMI に拡張ネットワーキング属性が既に設定されているかどうかを確認するには、次のいずれかのコマ
ンドを使用します。
• describe-image-attribute (AWS CLI)
$ aws ec2 describe-image-attribute --image-id ami_id --attribute sriovNetSup
port
Note
このコマンドは、所有しているイメージに対してのみ機能します。自分のアカウントに属し
ていないイメージについては、AuthFailure エラーが出力される可能性があります。
拡張ネットワーキング属性が設定されていない場合、SriovNetSupport は空です。そうでない場
合、次のように設定されています。
"SriovNetSupport": {
"Value": "simple"
},
• ec2-describe-image-attribute (Amazon EC2 CLI)
$ ec2-describe-image-attribute ami_id --sriov
Note
このコマンドは、所有しているイメージに対してのみ機能します。自分のアカウントに属し
ていないイメージについては、AuthFailure エラーが出力されます。
拡張ネットワーキング属性が設定されていない場合、このコマンドに対する出力はありません。そう
でない場合、出力は次のようになります。
sriovNetSupport ami_id
simple
ネットワークインターフェイスドライバ
モジュールが特定のインターフェイスで使用されていることを確認するには、確認するインターフェイ
ス名に置き換えて、次のコマンドを使用します。単一のインターフェイス(デフォルト)を使用してい
る場合は、eth0 です。
[ec2-user ~]$ ethtool -i eth0
driver: vif
version:
firmware-version:
651
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon Linux での拡張ネットワーキングの有効化
bus-info: vif-0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
前述の場合、リストされているドライバは ixgbevf であるため、vif モジュールはロードされていま
せん。
[ec2-user ~]$ ethtool -i eth0
driver: ixgbevf
version: 2.14.2
firmware-version: N/A
bus-info: 0000:00:03.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
この場合、ixgbevf モジュールはロードされており、最小推奨バージョンです。このインスタンスで
は、拡張ネットワーキングが適切に設定されています。
Amazon Linux での拡張ネットワーキングの有効化
最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要なモジュールがインストールされ
ており、必要な属性も設定されています。したがって、C3、C4、R3、I2 のいずれかの Amazon
EBS-Backed インスタンスを最新の Amazon Linux HVM AMI を使用して起動した場合は、拡張ネット
ワーキングが既にインスタンスに対して有効になっています。詳細については、「拡張ネットワーキン
グが有効化されているかどうかのテスト (p. 649)」を参照してください。
以前の Amazon Linux AMI を使用してインスタンスを起動し、まだ拡張ネットワーキングが有効になっ
ていない場合、拡張ネットワーキングを有効にするには次の手順を実行します。
拡張ネットワーキングを有効にするには(EBS-backed インスタンス)
1.
2.
インスタンスに接続します。
インスタンスから、次のコマンドを実行して、ixgbevf を含む最新のカーネルとカーネルモジュー
ルでインスタンスを更新します。
[ec2-user ~]$ sudo yum update
3.
ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して
インスタンスを再起動します。reboot-instances (AWS CLI)または ec2-reboot-instances (Amazon
EC2 CLI)。
4.
インスタンスに再接続し、「ixgbevf」の modinfo コマンドを使用して、拡張ネットワーキング
が有効化されているかどうかのテスト (p. 649)ixgbevf モジュールがインストールされ、最小推奨
バージョンであることを確認します。
5.
ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して
インスタンスを停止します。stop-instances (AWS CLI)または ec2-stop-instances (Amazon
EC2 CLI)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続け
るために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
652
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon Linux での拡張ネットワーキングの有効化
Important
instance store-backed インスタンスを使用している場合、インスタンスを停止することは
できません。代わりに、「拡張ネットワーキングを有効にするには(Instance store-backed
インスタンス) (p. 653)」に進みます。
6.
ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキング属性を有効
にします。
Warning
拡張ネットワーキング属性は、いったん有効にすると無効にする方法はありません。
Warning
拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタ
ンスで拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなりま
す。 また、適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定す
ると、インスタンスにアクセスできなくなる場合があります。
• modify-instance-attribute(AWS CLI)
$ aws ec2 modify-instance-attribute --instance-id instance_id --sriov-netsupport simple
• ec2-modify-instance-attribute(Amazon EC2 CLI)
$ ec2-modify-instance-attribute instance_id --sriov simple
7.
(オプション)「Amazon EBS-Backed Linux AMI の作成 (p. 93)」の説明に従って、インスタンス
から AMI を作成します。AMI は、インスタンスから拡張ネットワーキング属性を継承します。こ
のため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別
のインスタンスを起動できます。
8.
ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して
インスタンスを開始します。start-instances (AWS CLI)または ec2-start-instances (Amazon
EC2 CLI)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続け
るために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
インスタンスに接続し、「ixgbevf」の ethtool -i ethn コマンドを使用して、拡張ネットワーキン
グが有効化されているかどうかのテスト (p. 649) モジュールがインストールされ、ネットワークイ
ンターフェイスにロードされていることを確認します。
9.
拡張ネットワーキングを有効にするには(Instance store-backed インスタンス)
インスタンスが instance store–backed インスタンスである場合、前の手順の「Step 1 (p. 652)」から
「Step 4 (p. 652)」までを実行し、「Instance Store-Backed Linux AMI の作成 (p. 97)」の説明に従って
新しい AMI を作成します。AMI を登録するときに、必ず拡張ネットワーキング属性を有効化してくだ
さい。
• register-image (AWS CLI)
653
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Ubuntu での拡張ネットワーキングの有効化
$ aws ec2 register-image --sriov-net-support simple ...
• ec2-register (Amazon EC2 CLI)
$ ec2-register --sriov simple ...
Ubuntu での拡張ネットワーキングの有効化
次の手順では、Ubuntu インスタンスで拡張ネットワーキングを有効にする場合の一般的なステップを
説明します。
Ubuntu で拡張ネットワーキングを有効にするには(EBS-backed インスタンス)
1.
インスタンスに接続します。
2.
パッケージキャッシュおよびパッケージを更新します。
ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y
Important
更新プロセス中に grub をインストールするよう求められた場合は、 /dev/xvdagrub を使用し、現在のバージョンの /boot/grub/menu.lst を保持すること
を選択します。
3.
カーネルが更新されるたびに ixgbevf モジュールが再ビルドされるように、dkms パッケージを
インストールします。
ubuntu:~$ sudo apt-get install -y dkms
4.
Sourceforge(ixgbevfhttp://sourceforge.net/projects/e1000/files/ixgbevf%20stable/.)からインス
タンスにバージョン 2.16.4 の
Note
モジュールのソースをダウンロードします。
旧バージョンの ixgbevf (最小推奨バージョン 2.14.2 も含む) は、Ubuntu のバージョンに
よっては適切にビルドされない場合があります。Ubuntu のインスタンスには、バージョ
ン 2.16.4 の ixgbevf を使用してください。
ubuntu:~$ wget "sourceforge.net/projects/e1000/files/ixgbevf
stable/2.16.4/ixgbevf-2.16.4.tar.gz"
5.
ixgbevf パッケージを解凍します。
ubuntu:~$ tar -xzf ixgbevf-2.16.4.tar.gz
654
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Ubuntu での拡張ネットワーキングの有効化
6.
ixgbevf パッケージを /usr/src/ ディレクトリに移動して、カーネルの更新のたびに dkms が
このパッケージを見つけてビルドできるようにします。
ubuntu:~$ sudo mv ixgbevf-2.16.4 /usr/src/
7.
以下の値を使用し、 の使用しているバージョンに置き換えて、dkmsixgbevf 設定ファイルを作成
します。
a.
ファイルを作成します。
ubuntu:~$ sudo touch /usr/src/ixgbevf-2.16.4/dkms.conf
b.
ファイルを編集し、次の値を追加します。
ubuntu:~$ sudo vim /usr/src/ixgbevf-2.16.4/dkms.conf
PACKAGE_NAME="ixgbevf"
PACKAGE_VERSION="2.16.4"
CLEAN="cd src/; make clean"
MAKE="cd src/; make BUILD_KERNEL=${kernelver}"
BUILT_MODULE_LOCATION[0]="src/"
BUILT_MODULE_NAME[0]="ixgbevf"
DEST_MODULE_LOCATION[0]="/updates"
DEST_MODULE_NAME[0]="ixgbevf"
AUTOINSTALL="yes"
8.
dkms を使用して、インスタンスで ixgbevfモジュールを追加、ビルド、およびインストールしま
す。
a.
dkms にモジュールを追加します。
ubuntu:~$ sudo dkms add -m ixgbevf -v 2.16.4
b.
dkms を使用してモジュールをビルドします。
ubuntu:~$ sudo dkms build -m ixgbevf -v 2.16.4
c.
dkms を使用してモジュールをインストールします。
ubuntu:~$ sudo dkms install -m ixgbevf -v 2.16.4
9.
起動時に正しいモジュールがロードされるように、initramfs を再ビルドします。
ubuntu:~$ sudo update-initramfs -c -k all
10. 「ixgbevf」の modinfo コマンドを使用して、拡張ネットワーキングが有効化されているかどう
かのテスト (p. 649)ixgbevf モジュールがインストールされ、最小推奨バージョンであることを確認
します。
655
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Ubuntu での拡張ネットワーキングの有効化
ubuntu:~$ modinfo ixgbevf
filename:
/lib/modules/3.13.0-74-generic/updates/dkms/ixgbevf.ko
version:
2.16.4
license:
GPL
description:
Intel(R) 10 Gigabit Virtual Function Network Driver
author:
Intel Corporation, <[email protected]>
srcversion:
759A432E3151C8F9F6EA882
alias:
pci:v00008086d00001515sv*sd*bc*sc*i*
alias:
pci:v00008086d000010EDsv*sd*bc*sc*i*
depends:
vermagic:
3.13.0-74-generic SMP mod_unload modversions
parm:
InterruptThrottleRate:Maximum interrupts per second, per
vector, (956-488281, 0=off, 1=dynamic), default 1 (array of int)
11. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して
インスタンスを停止します。stop-instances (AWS CLI)または ec2-stop-instances (Amazon
EC2 CLI)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続け
るために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
Important
instance store-backed インスタンスを使用している場合、インスタンスを停止することは
できません。代わりに、「Ubuntu で拡張ネットワーキングを有効にするには(Instance
store-backed インスタンス) (p. 657)」に進みます。
12. ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有
効化します。このネットワーキング属性は、いったん有効化すると無効化できないことに注意して
ください。
Warning
拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタ
ンスで拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなりま
す。 また、適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定す
ると、インスタンスにアクセスできなくなる場合があります。
• modify-instance-attribute(AWS CLI)
$ aws ec2 modify-instance-attribute --instance-id instance_id --sriov-netsupport simple
• ec2-modify-instance-attribute(Amazon EC2 CLI)
$ ec2-modify-instance-attribute instance_id --sriov simple
13. (オプション)「Amazon EBS-Backed Linux AMI の作成 (p. 93)」の説明に従って、インスタンス
から AMI を作成します。AMI は、インスタンスから拡張ネットワーキング属性を継承します。こ
のため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別
のインスタンスを起動できます。
14. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して
インスタンスを開始します。start-instances (AWS CLI)または ec2-start-instances (Amazon
656
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
他の Linux ディストリビューションでの拡張ネットワーキ
ングの有効化
EC2 CLI)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続け
るために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
15. (オプション)インスタンスに接続し、モジュールがインストールされていることを確認します。
Ubuntu で拡張ネットワーキングを有効にするには(Instance store-backed インスタンス)
インスタンスが instance store–backed インスタンスである場合、前の手順の「Step 1 (p. 654)」から
「Step 10 (p. 655)」までを実行し、「Instance Store-Backed Linux AMI の作成 (p. 97)」の説明に従って
新しい AMI を作成します。AMI を登録するときに、必ず拡張ネットワーキング属性を有効化してくだ
さい。
Warning
拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタンス
で拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなります。 また、
適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定すると、インスタ
ンスにアクセスできなくなる場合があります。
• register-image (AWS CLI)
$ aws ec2 register-image --sriov-net-support simple ...
• ec2-register (Amazon EC2 CLI)
$ ec2-register --sriov simple ...
他の Linux ディストリビューションでの拡張ネット
ワーキングの有効化
次の手順では、Amazon Linux または Ubuntu 以外の Linux ディストリビューションで拡張ネットワー
キングを有効にする場合の一般的なステップを説明します。コマンドの詳細な構文、ファイルの場所、
パッケージやツールのサポートなどの詳細については、使用する Linux ディストリビューションのド
キュメントを参照してください。
Linux で拡張ネットワーキングを有効にするには(EBS-backed インスタンス)
1.
2.
インスタンスに接続します。
Sourceforge(http://sourceforge.net/projects/e1000/files/ixgbevf%20stable/)からインスタンスに
バージョン 2.14.2 の ixgbevf モジュールのソースをダウンロードします。これは拡張ネットワー
キングで推奨される最小バージョンです。
Note
旧バージョンの ixgbevf (最小推奨バージョン 2.14.2 も含む) は、一部の Linux ディスト
リビューション (特定のバージョンの Ubuntu など) では適切にビルドされません。ビルド
エラーが表示された場合は、より新しいバージョンの 2.16.4 などを試してください (2.16.4
では該当バージョンの Ubuntu でのビルドエラーが修復されます)。
3.
インスタンスで ixgbevf モジュールをコンパイルし、インストールします。
657
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
他の Linux ディストリビューションでの拡張ネットワーキ
ングの有効化
ディストリビューションが dkms をサポートしている場合は、システムのカーネルが更新されるた
びに ixgbevf モジュールを再コンパイルするように dkms を設定することを検討してください。
ディストリビューションが dkms をネイティブにサポートしていない場合、Red Hat Enterprise
Linux バリアントの場合は、EPEL リポジトリ(https://fedoraproject.org/wiki/EPEL)で見つけるこ
とができます。または、http://linux.dell.com/dkms/ でこのソフトウェアをダウンロードできます。
dkms の設定については、「Ubuntu で拡張ネットワーキングを有効にするには(EBS-backed イン
スタンス) (p. 654)」の「Step 6 (p. 655)」から「Step 8 (p. 655)」までを参照してください。
Warning
現在のカーネル用に ixgbevf モジュールをコンパイルし、新しいカーネル用のドライバ
を再ビルドしないでカーネルをアップグレードすると、次回再起動したときに、システム
がディストリビューション固有の ixgbevf モジュールに戻る場合があります。ディスト
リビューション固有のバージョンと拡張ネットワーキングに互換性がない場合、システム
にアクセスできなくなる可能性があります。
4.
5.
sudo depmod コマンドを実行して、モジュールの依存関係を更新します。
起動時に新しいモジュールがロードされるように、インスタンスの initramfs を更新します。
6.
システムがデフォルトで予測可能なネットワークインターフェイス名を使用するかどうかを確認し
ます。systemd または udev のバージョン 197 以上を使用するシステムの場合、イーサネットデバ
イスの名前を変更でき、単一ネットワークインターフェイスの名前が eth0 になることは保証され
ません。この動作は、インスタンスに接続する際に問題の原因となる可能性があります。予測可能
なネットワークインターフェイス名の詳細、およびその他の設定オプションを確認するには、http://
www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ を参照してくださ
い。
a.
次のコマンドで RPM ベースのシステムの systemd または udev のバージョンを確認できま
す。
[ec2-user ~]$ rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+'
systemd-208-11.el7_0.2.x86_64
b.
前述の Red Hat 7 の例では、systemd のバージョンは 208 であるため、予測可能なネットワー
クインターフェイス名を無効にする必要があります。
/etc/default/grub の GRUB_CMDLINE_LINUX 行に net.ifnames=0 オプションを追加す
ることによって、予測可能なネットワークインターフェイス名を無効にします。
[ec2-user ~]$ sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.if
names\=0\"/' /etc/default/grub
c.
grub の設定ファイルを再ビルドします。
[ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
7.
ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して
インスタンスを停止します。stop-instances (AWS CLI)または ec2-stop-instances (Amazon
EC2 CLI)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続け
るために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
658
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
他の Linux ディストリビューションでの拡張ネットワーキ
ングの有効化
Important
instance store-backed インスタンスを使用している場合、インスタンスを停止することは
できません。代わりに、「拡張ネットワーキングを有効にするには(Instance store-backed
インスタンス) (p. 659)」に進みます。
8.
ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有
効化します。このネットワーキング属性は、いったん有効化すると無効化できないことに注意して
ください。
Warning
拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタ
ンスで拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなりま
す。 また、適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定す
ると、インスタンスにアクセスできなくなる場合があります。
• modify-instance-attribute(AWS CLI)
$ aws ec2 modify-instance-attribute --instance-id instance_id --sriov-netsupport simple
• ec2-modify-instance-attribute(Amazon EC2 CLI)
$ ec2-modify-instance-attribute instance_id --sriov simple
9.
(オプション)「Amazon EBS-Backed Linux AMI の作成 (p. 93)」の説明に従って、インスタンス
から AMI を作成します。AMI は、インスタンスから拡張ネットワーキング属性を継承します。こ
のため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別
のインスタンスを起動できます。
Important
インスタンスのオペレーティングシステムに
/etc/udev/rules.d/70-persistent-net.rules ファイルが含まれている場合は、そ
のファイルを AMI の作成前に削除する必要があります。このファイルには、元のインスタ
ンスのイーサネットアダプターの MAC アドレスが保存されています。別のインスタンス
がこのファイルを使用して起動した場合、オペレーティングシステムがそのデバイスを検
出できなくなり、eth0 が失敗して、起動に関する問題が発生することがあります。この
ファイルは次の起動サイクルで再び生成され、AMI から起動されるインスタンスごとに独
自のバージョンが作成されます。
10. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して
インスタンスを開始します。start-instances (AWS CLI)または ec2-start-instances (Amazon
EC2 CLI)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続け
るために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。
11. (オプション)インスタンスに接続し、モジュールがインストールされていることを確認します。
拡張ネットワーキングを有効にするには(Instance store-backed インスタンス)
659
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
接続性の問題のトラブルシューティング
インスタンスが instance store–backed インスタンスである場合、前の手順の「Step 1 (p. 657)」から
「Step 5 (p. 658)」までを実行し、「Instance Store-Backed Linux AMI の作成 (p. 97)」の説明に従って
新しい AMI を作成します。AMI を登録するときに、必ず拡張ネットワーキング属性を有効化してくだ
さい。
Warning
拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタンス
で拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなります。 また、
適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定すると、インスタ
ンスにアクセスできなくなる場合があります。
• register-image (AWS CLI)
$ aws ec2 register-image --sriov-net-support simple ...
• ec2-register (Amazon EC2 CLI)
$ ec2-register --sriov simple ...
接続性の問題のトラブルシューティング
拡張ネットワーキングを有効化しているときに接続が失われると、ixgbevf モジュールとカーネルの
互換性が保たれない可能性があります。この場合、インスタンスの Linux ディストリビューションに含
まれる ixgbevf モジュールのバージョンをインストールしてみます。
PV インスタンスまたは AMI で拡張ネットワーキングを有効にすると、お使いのインスタンスに到達で
きなくなります。
660
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
ストレージ
Abstract
Amazon EC2 でサポートされているデータストレージオプションを使用して、ストレージ要件に対応する方法を学
習します。
Amazon EC2 にはインスタンスを格納するための、柔軟で使いやすく、コスト効率の良いデータスト
レージオプションが用意されています。各オプションは独自のパフォーマンスと耐久性を備えていま
す。これらのストレージオプションは、要件に応じて個別に使用することも、組み合わせて使用するこ
ともできます。
このセクションを読むことで、Amazon EC2 がサポートするデータストレージオプションを使用して、
特定の要件に対応する方法を十分に理解できるようになるはずです。たとえば、次のようなストレージ
オプションがあります。
• Amazon Elastic Block Store(Amazon EBS) (p. 663)
• Amazon EC2 インスタンスストア (p. 735)
• Amazon Simple Storage Service(Amazon S3) (p. 746)
各ストレージタイプの関係を下の図に示します。
661
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EBS
Amazon EBS は、実行中のインスタンスにアタッチできる、耐久性を備えたブロックレベルのストレー
ジボリュームを提供します。Amazon EBS は、細かな更新を頻繁に行う必要があるデータを対象とし
た主要ストレージデバイスとして使用できます。たとえば、インスタンスでデータベースを実行すると
きに、Amazon EBS をストレージオプションとして使用することをお勧めします。
EBS ボリュームは、1 つのインスタンスにアタッチできる、未加工、未フォーマットの外部ブロックデ
バイスのように動作します。これらのボリュームは、インスタンスの運用状況から独立した永続性を持
ちます。インスタンスにアタッチした後の EBS ボリュームは、他の物理ハードドライブと同じように
使用できます。前の図に示したように、複数のボリュームをインスタンスにアタッチできます。1 つの
インスタンスから EBS ボリュームをデタッチし、別のインスタンスにアタッチできます。EBS ボリュー
ムは、Amazon EBS 暗号化 機能を使って、暗号化されたボリュームとして作成することもできます。
詳細については、「Amazon EBS Encryption (p. 719)」を参照してください。
データのバックアップコピーを保持するには、EBS ボリュームのスナップショットを作成して Amazon
S3 に保存します。スナップショットから EBS ボリュームを作成して、別のインスタンスにアタッチす
ることもできます。詳細については、「Amazon Elastic Block Store(Amazon EBS) (p. 663)」を参照して
ください。
Amazon EC2 インスタンスストア
多くのインスタンスは、ホストコンピュータに物理的にアタッチされたディスクからストレージにアク
セスできます。このディスクストレージは、インスタンスストアと呼ばれます。インスタンスストア
は、インスタンス用のブロックレベルの一時ストレージを提供します。インスタンスストアボリューム
のデータは、関連するインスタンスの存続中にのみ保持されます。インスタンスを停止または終了する
と、インスタンスストアボリュームのすべてのデータが失われます。詳細については、「Amazon EC2
インスタンスストア (p. 735)」を参照してください。
Amazon S3
Amazon S3 はインターネットデータ用のリポジトリです。Amazon S3 により、低コストで信頼性に優
れたデータストレージインフラストラクチャが実現します。ウェブスケールのコンピューティングをさ
らに簡単に行えるように設計されており、Amazon EC2 内から、またはウェブ上のどこからでも、い
つでも必要な量だけデータを格納および取得できます。たとえば、データとアプリケーションのバック
アップコピーを格納するときに Amazon S3 を使用できます。詳細については、「Amazon Simple
Storage Service(Amazon S3) (p. 746)」を参照してください。
ストレージの追加
662
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EBS
AMI からインスタンスを起動するたびに、そのインスタンス用のルートストレージデバイスが作成され
ます。ルートストレージデバイスには、インスタンスの起動に必要な情報すべてが含まれます。AMI を
作成するとき、またはブロックデバイスマッピングを使用してインスタンスを起動するときに、ルート
デバイスボリュームの他にストレージボリュームを指定できます。詳細については、「ブロックデバイ
スマッピング (p. 752)」を参照してください。
実行中のインスタンスに EBS ボリュームをアタッチすることもできます。詳細については、「インス
タンスへの Amazon EBS ボリュームのアタッチ (p. 676)」を参照してください。
Amazon Elastic Block Store(Amazon EBS)
Abstract
Amazon EC2 インスタンスで使用するためのブロックレベルのストレージボリュームを提供する、Amazon Elastic
Block Store を使用します。
Amazon Elastic Block Store (Amazon EBS) は、EC2 インスタンスで使用するためのブロックレベルの
ストレージボリュームを提供します。EBS ボリュームは、同じアベイラビリティーゾーンにある実行
中のどのインスタンスにもアタッチできる、可用性と信頼性に優れたストレージボリュームです。EC2
インスタンスにアタッチされた EBS ボリュームは、インスタンスの運用状況から、独立した永続性を
保つストレージボリュームとして表示されます。 Amazon EBS の場合は、使用した分のみをお支払い
いただきます。Amazon EBS の価格設定の詳細については、Amazon Elastic Block Store ページの概算
費用のセクションを参照してください。
データが頻繁に変更され、さらに長期永続性がデータに必要な場合に、Amazon EBS の使用をお勧め
します。EBS ボリュームは、ファイルシステムの主要ストレージやデータベースとしての使用に特に
適しています。また、細かい更新が必要なアプリケーションや、ブロックレベルの未初期化のストレー
ジを使用する必要があるアプリケーションにも適しています。Amazon EBS は、データセット全体で
ランダムな読み取り/書き込みが頻繁に発生するデータベーススタイルのアプリケーションで特に役立
ちます。
簡素化されたデータの暗号化を使用するには、EBS ボリュームを暗号化の対象となるボリュームとし
て起動します。Amazon EBS 暗号化 は、EBS ボリュームのために、独自のキー管理インフラストラク
チャの構築、管理、および保護を必要としない、簡単な暗号化ソリューションを提供します。暗号化の
対象となる EBS ボリュームを作成し、サポートされているインスタンスタイプに関連付けると、その
ボリュームに保管されるデータ、そのボリュームとのディスク I/O、そのボリュームから作成されたス
ナップショットは、すべて暗号化されます。暗号化は EC2 インスタンスをホストするサーバーで行わ
れ、EC2 インスタンスから EBS ストレージに転送されるデータが暗号化されます。詳細については、
「Amazon EBS Encryption (p. 719)」を参照してください。
Amazon EBS 暗号化 は、暗号化されたボリュームと、暗号化されたボリュームから作成されるスナッ
プショットを作成するときに AWS Key Management Service(AWS KMS)マスターキーを使用しま
す。暗号化された EBS ボリュームをリージョン内に初めて作成するときは、デフォルトのマスターキー
が自動的に作成されます。AWS Key Management Service を使用して別途作成したカスタマーマスター
キー(CMK)を選択しない限り、このキーが Amazon EBS 暗号化 で使用されます。独自の CMK を作
成すると、アクセスコントロールを作成、使い回し、無効化、定義できるほか、データの保護に使用さ
れる暗号化キーを監査できるなど、より高い柔軟性が得られます。詳細については、『AWS Key
Management Service Developer Guide』を参照してください。
AWS アカウントによって規定される制限内であれば、同一のインスタンスに複数のボリュームをアタッ
チできます。アカウントには、使用できる EBS ボリュームの数と、利用可能なストレージの総量に制
限があります。これらの制限と、制限を緩和するよう要求する方法の詳細については、「Request to
Increase the Amazon EBS Volume Limit」を参照してください。
目次
• Amazon EBS の機能 (p. 664)
663
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
Amazon EBS の機能
• Amazon EBS ボリューム (p. 665)
• Amazon EBS スナップショット (p. 709)
• Amazon EBS 最適化インスタンス (p. 716)
• Amazon EBS Encryption (p. 719)
• Amazon EBS ボリュームのパフォーマンス on Linux インスタンス (p. 722)
Amazon EBS の機能
• 1 GiB から 1 TiB までのサイズの EBS マグネティック ボリュームを作成できます。16 TiB までのサ
イズの 汎用 SSD および Provisioned IOPS SSD ボリュームを作成できます。これらのボリュームは
Amazon EC2 インスタンスにデバイスとしてマウントできます。複数のボリュームを同じインスタ
ンスにマウントできますが、各ボリュームをアタッチできるインスタンスは 1 度に 1 つだけです。
詳細については、「Amazon EBS ボリュームの作成 (p. 672)」を参照してください。
• 汎用 SSD ボリュームを使用すると、お客様のボリュームでは 1 GiB あたり 3 IOPS というベースパ
フォーマンスが実現され、延長された期間について 3,000 IOPS までバーストすることができます。
汎用 SSD ボリュームは、さまざまなユースケース(ブートボリューム、小規模および中規模なデー
タベース、開発環境やテスト環境など)に適しています。汎用 SSD ボリュームは、最大 10,000 IOPS
および 160 MB/秒のスループットをサポートします。詳細については、「汎用 SSD ボリューム (p. 668)」
を参照してください。
• Provisioned IOPS SSD ボリュームでは、特定レベルの I/O パフォーマンスをプロビジョニングでき
ます。Provisioned IOPS SSD ボリュームは、最大 20,000 IOPS と 320 MB/秒のスループットをサ
ポートします。この機能を利用すると、EC2 インスタンスあたり何万単位 の IOPS という規模に拡
張したときも、期待どおりのパフォーマンスを得ることができます。詳細については、「Provisioned
IOPS SSD ボリューム (p. 671)」を参照してください。
• EBS ボリュームの動作は、未初期化のブロックデバイスに似ています。これらのボリュームにファ
イルシステムを構築したり、ブロックデバイスを使用する別の方法(ハードドライブとして使用な
ど)で使用したりできます。ファイルシステムの作成およびボリュームのマウントの詳細について
は、Amazon EBS ボリュームを使用できるようにする (p. 678) を参照してください。
• 暗号化された EBS ボリュームを使用して、規制/監査されたデータとアプリケーションに関連した、
保管されるデータの幅広い暗号化要件に対応することができます。詳細については、「Amazon EBS
Encryption (p. 719)」を参照してください。
• EBS ボリュームの特定の時点におけるスナップショットを作成し、Amazon S3 に保管できます。長
期的な耐久性を実現するために、スナップショットはデータを保護します。また、スナップショット
は、新しい EBS ボリュームの開始点として使用できます。1 つのスナップショットからインスタン
ス化できるボリュームの数に制限はありません。これらのスナップショットは、複数の AWS リー
ジョンにわたってコピーできます。詳細については、「Amazon EBS スナップショット (p. 709)」を
参照してください。
• EBS ボリュームは、特定のアベイラビリティーゾーンで作成され、そのアベイラビリティーゾーン
内のインスタンスにアタッチできます。アベイラビリティーゾーンの外部でボリュームを使用できる
ようにするには、スナップショットを作成し、そのスナップショットをそのリージョン内の新しいボ
リュームに復元できます。スナップショットをその他のリージョンにコピーしてから、そのリージョ
ン内の新しいボリュームに復元できるので、地理的な拡大やデータセンターの移行、災害復旧など、
複数の AWS リージョンをより容易に活用することができます。詳細については、「Amazon EBS ス
ナップショットの作成 (p. 710)」、「スナップショットからの Amazon EBS ボリュームの復
元 (p. 674)」、および「Amazon EBS スナップショットのコピー (p. 712)」を参照してください。
• パブリックデータセットスナップショットの大きなリポジトリを EBS ボリュームに復元し、AWS ク
ラウドベースのアプリケーションにシームレスに統合することができます。詳細については、「パブ
リックデータセットの使用 (p. 763)」を参照してください。
• AWS マネジメントコンソールを介して、帯域幅、スループット、レイテンシー、平均キュー長など
のパフォーマンスメトリックスを使用できます。Amazon CloudWatch のこれらのメトリックスを使
用してボリュームのパフォーマンスをモニタリングすると、アプリケーションに対して十分なパフォー
マンスを提供できているか、無駄なリソースにコストを費やしていないかを確認できます。詳細につ
664
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
いては、「Amazon EBS ボリュームのパフォーマンス on Linux インスタンス (p. 722)」を参照してく
ださい。
Amazon EBS ボリューム
Abstract
Amazon EBS ボリュームは、頻繁に更新されるデータのプライマリストレージ用の 1 つの EC2 インスタンスにア
タッチできるブロックレベルのストレージデバイスとして使用します。
3
Amazon EBS ボリュームは、1 つの EC2 インスタンスにアタッチできる、耐久性に優れたブロックレ
ベルのストレージボリュームです。EBS ボリュームは、インスタンス用のシステムドライブ、データ
ベースアプリケーションのストレージなど、頻繁に更新する必要があるデータのプライマリストレージ
として使用できます。EBS ボリュームは、EC2 インスタンスの運用状況から独立した永続性を持ちま
す。インスタンスにアタッチした後のボリュームは、他の物理ハードドライブと同じように使用できま
す。Amazon EBS には、汎用 SSD、Provisioned IOPS SSD、マグネティック というボリュームタイプ
が用意されています。この 2 つはパフォーマンス特性と料金が異なるため、アプリケーションのニーズ
に応じてストレージのパフォーマンスとコストを調整できます。詳細については、「Amazon EBS ボ
リュームの種類 (p. 667)」を参照してください。
目次
• EBS ボリュームを使用するメリット (p. 665)
• Amazon EBS ボリュームの種類 (p. 667)
• Amazon EBS ボリュームの作成 (p. 672)
• スナップショットからの Amazon EBS ボリュームの復元 (p. 674)
• インスタンスへの Amazon EBS ボリュームのアタッチ (p. 676)
• Amazon EBS ボリュームを使用できるようにする (p. 678)
• ボリューム情報を表示する (p. 681)
• ボリュームのステータスのモニタリング (p. 681)
• インスタンスからの Amazon EBS ボリュームのデタッチ (p. 692)
• Amazon EBS ボリュームの削除 (p. 693)
• Linux で EBS ボリュームのストレージ領域を拡張する (p. 694)
• Linux パーティションを拡張する (p. 698)
EBS ボリュームを使用するメリット
データの可用性
アベイラビリティーゾーン内に EBS ボリュームを作成すると、そのボリュームは同じゾーン内で自動
的にレプリケートされます。これは、1 つのハードウェアコンポーネントの障害が原因でデータが失わ
れることを防ぐためです。作成したボリュームは、同じアベイラビリティーゾーン内の任意の EC2 イ
ンスタンスにアタッチできます。アタッチしたボリュームは、ハードドライブや他の物理デバイスと同
じようなネイティブブロックとして表示されます。この時点で、インスタンスからこのボリュームを
ローカルドライブと同じように操作できます。たとえば、ext3 などのファイルシステムを使って EBS
ボリュームをフォーマットしたり、アプリケーションをインストールしたりできます。
同じアベイラビリティーゾーン内で EBS ボリュームをアタッチできるインスタンスは 1 度につき 1 つ
だけです。ただし、1つのインスタンスに複数のボリュームをアタッチすることはできます。指定した
デバイスに複数のボリュームをアタッチする場合は、ボリュームにまたがってデータをストライプする
ことで I/O とスループットのパフォーマンスを向上させることができます。
665
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
EBS ボリュームのモニタリングデータは無料で取得できます( EBS-backed インスタンスのルートデ
バイスボリュームのデータも含まれます)。詳細については、「CloudWatch によるボリュームのモニ
タリング (p. 681)」を参照してください。
データの永続性
EBS ボリュームは、インスタンスの運用状況に左右されない永続性のあるストレージを提供します。
データが維持される限り、ボリュームの使用料が発生します。
デフォルトでは、実行中のインスタンスにアタッチされている EBS ボリュームは、データはそのまま
の状態で、インスタンスが終了すると自動的にインスタンスからデタッチされます。デタッチされたボ
リュームは新しいインスタンスに再アタッチできるので、迅速な復旧が可能です。EBS-backed インス
タンスを使用している場合は、アタッチしたボリュームに格納されているデータに影響を与えることな
く、インスタンスを停止および再起動できます。ボリュームは停止/起動のサイクルを通じてアタッチ
されたままです。これにより、必要なときに処理リソースとストレージリソースを使用するだけで、ボ
リュームでのデータの処理と格納を永続的に実行できるようになります。データは、ボリュームを明示
的に削除するまでボリュームに保持されます。削除したボリュームは、どのインスタンスにもアタッチ
できなくなります。削除した EBS ボリュームが使用していた物理的なブロックストレージは、別のア
カウントに割り当てられる前に、ゼロで上書きされます。機密データを扱っている場合は、手動による
データの暗号化や、Amazon EBS 暗号化 が有効になっているボリュームへのデータの格納を検討して
ください。詳細については、「Amazon EBS Encryption (p. 719)」を参照してください。
デフォルトでは、インスタンスの起動時に作成およびアタッチされた EBS ボリュームは、インスタン
スの終了時に削除されます。この動作を変更するには、インスタンスの起動時にフラグ
DeleteOnTermination の値を false に変更します。値を変更すると、インスタンスが終了してもボ
リュームが保持されるので、そのボリュームを別のインスタンスにアタッチできます。
データの暗号化
簡素化されたデータの暗号化を使用するには、Amazon EBS 暗号化 機能を使用して、暗号化の対象と
なる EBS ボリュームを作成できます。暗号化された EBS ボリュームを使用して、規制/監査されたデー
タとアプリケーションに関連した、保管されるデータの幅広い暗号化要件に対応することができます。
Amazon EBS 暗号化 では、256 ビットの Advanced Encryption Standard(AES-256)アルゴリズムと、
Amazon に管理されたキーインフラストラクチャが使用されます。暗号化は EC2 インスタンスをホス
トするサーバーで行われ、EC2 インスタンスから EBS ストレージに転送されるデータが暗号化されま
す。詳細については、「Amazon EBS Encryption (p. 719)」を参照してください。
Amazon EBS 暗号化 は、暗号化されたボリュームと、暗号化されたボリュームから作成されるスナッ
プショットを作成するときに AWS Key Management Service(AWS KMS)マスターキーを使用しま
す。暗号化された EBS ボリュームをリージョン内に初めて作成するときは、デフォルトのマスターキー
が自動的に作成されます。AWS Key Management Service を使用して別途作成したカスタマーマスター
キー(CMK)を選択しない限り、このキーが Amazon EBS 暗号化 で使用されます。独自の CMK を作
成すると、アクセスコントロールを作成、使い回し、無効化、定義できるほか、データの保護に使用さ
れる暗号化キーを監査できるなど、より高い柔軟性が得られます。詳細については、『AWS Key
Management Service Developer Guide』を参照してください。
スナップショット
Amazon EBS は、Amazon S3 ボリュームのスナップショット(バックアップ)を作成し、ボリューム
内のデータのコピーを EBS に書き込む機能を備えています。そこで、データは複数のアベイラビリ
ティーゾーンに冗長的に保存されます。スナップショットを作成するために、対象のボリュームが実行
中のインスタンスにアタッチされている必要はありません。ボリュームにデータを書き込み続けなが
ら、そのボリュームのスナップショットを定期的に作成して、新しいボリュームのベースラインとして
使用できます。このスナップショットは、新しい EBS ボリュームを複数作成したり、ボリュームサイ
ズを拡張したり、アベイラビリティーゾーン間でボリュームを移動したりするときに使用できます。暗
号化された EBS ボリュームのスナップショットは自動的に暗号化されます。
スナップショットから新規ボリュームを作成する場合、このボリュームはスナップショット作成時にお
ける元のボリュームの正確なコピーになります。暗号化されたスナップショットから復元された EBS
666
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
ボリュームは、自動的に暗号化されます。オプションで別のボリュームサイズや別のアベイラビリティー
ゾーンを指定することもできます。この機能は、既存のボリュームサイズを拡大したり、重複するボ
リュームを新しいアベイラビリティーゾーンに作成したりする場合に便利です。スナップショットは特
定の AWS アカウントと共有できます。また、一般公開も可能です。スナップショットを作成すると、
Amazon S3 でボリュームの合計サイズに基づいて、料金がかかります。ボリュームのその後のスナッ
プショットについては、ボリュームの元のサイズを超える追加データ分にのみ料金がかかります。
スナップショットは差分バックアップです。つまり、最後にスナップショットを作成した時点から、ボ
リューム上で変更のあるブロックだけが保存されます。たとえば、100 GiB のデータが格納されている
ボリュームがあるとします。最後にスナップショットを作成してから、そのうちの 5 GiB 分のデータし
か変更されていない場合は、その変更された 5 GiB のデータだけが Amazon S3に書き込まれます。ス
ナップショットの保存は差分ベースで行われるものの、最新のスナップショットさえあればボリューム
を復元できるようにスナップショット削除プロセスは設計されています。
ボリュームとスナップショットを分類および管理しやすくするため、任意のメタデータでタグ付けする
ことができます。詳細については、「Amazon EC2 リソースにタグを付ける (p. 774)」を参照してくだ
さい。
Amazon EBS ボリュームの種類
Abstract
汎用 SSD、Provisioned IOPS SSD、または マグネティック の各 EBS ボリュームを使用し、アプリケーションの
ニーズに応じてストレージのパフォーマンスとコストを調整します。
Amazon EBS では以下のボリュームタイプを提供しており、これらはパフォーマンス特性と料金が異
なるため、アプリケーションのニーズに応じてストレージのパフォーマンスとコストを調整できます。
• 汎用 SSD ボリューム (p. 668)
• Provisioned IOPS SSD ボリューム (p. 671)
• マグネティック ボリューム (p. 672)
次の表は、各ボリュームタイプの基本的なユースケースとパフォーマンス特性をまとめたものです。
特徴
汎用 SSD
Provisioned IOPS SSD
マグネティック
各種ユースケース
• システムブートボ
リューム
• 仮想デスクトップ
• 持続的な IOPS パ
フォーマンス、また
はボリュームあたり
10,000 IOPS または
160 MiB/秒以上のス
ループットを必要と
する重要なビジネス
アプリケーション
• • MongoDB
• データに頻繁にアクセ
スしないコールドワー
クロード
• 低いストレージコスト
が重視されるシナリオ
• 小規模から中規模の
データベース
• 開発・テスト環境
• Microsoft SQL
Server
• MySQL
• PostgreSQL
• Oracle
ボリュームサイズ
1 GiB~16 TiB
4 GiB~16 TiB
1 GiB~1 TiB
最大スループット
160 MiB/秒
320 MiB/秒
40 ~ 90 MiB/秒
667
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
特徴
汎用 SSD
Provisioned IOPS SSD
IOPS パフォーマンス
1,000 GiB 未満のボ
最大 20,000 IOPS のプ
リュームで 3,000 IOPS ロビジョニングレベルで
にバーストできる 3
の整合性のとれた実行
IOPS/GiB(最大 10,000
IOPS)のベースライン
パフォーマンス「I/O ク
レジットおよびバースト
パフォーマン
ス (p. 669)」を参照して
ください。
API と CLI のボリューム gp2
名
io1
マグネティック
平均 100 IOPS のパ
フォーマンス、および数
百 IOPS までのバースト
が可能
standard
Note
Linux AMI では、2 TiB (2048 GiB) 以上のブートボリュームには GPT パーティションテーブル
と GRUB 2 が必要です。現在の多くの Linux AMI は MBR パーティションスキームを使用して
おり、最大 2047 GiB のブートボリュームのみをサポートしています。インスタンスが 2 TiB
以上のブートボリュームで起動しない場合、使用中の AMI は、2047 GiB のブートボリューム
サイズに制限されている可能性があります。ブートボリューム以外のボリュームには、Linux
インスタンスでこの制限はありません。
インスタンスの構成、I/O 特性、ワークロードのデマンドなど、 EBS ボリュームのパフォーマンスに
影響を与える可能性がある要因は複数存在します。EBS ボリュームを最大限活用するための詳細につ
いては、「Amazon EBS ボリュームのパフォーマンス on Linux インスタンス (p. 722)」を参照してくだ
さい。
これらのボリュームタイプの料金情報の詳細については、「Amazon EBS の価格」を参照してくださ
い。
汎用 SSD ボリューム
汎用 SSD ボリュームには、さまざまなワークロードに対応できるコスト効率の高いストレージが用意
されています。これらのボリュームでは、レイテンシーは 1 桁台のミリ秒であり、長時間 3,000 IOPS
にバーストでき、 (3,334 GiB で) 最大 10,000 IOPS の 3 IOPS/GiB のベースラインパフォーマンスを提
供します。汎用 SSD ボリュームのサイズは、1 GiB ~ 16 TiB になります。
汎用 SSD ボリュームの場合、170 GiB 以下のボリュームでは 128 MiB/秒のスループット制限範囲があ
ります。170 GiB を上回るボリュームでは、この制限は(214 GiB 以上で)GiB あたり 768 KiB/秒の
レートで最大 160 MiB/秒まで増加します。
668
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
I/O クレジットおよびバーストパフォーマンス
汎用 SSD ボリュームのパフォーマンスはボリュームサイズの影響を受けます。ボリュームサイズによっ
て、ボリュームのベースラインパフォーマンスレベルや I/O クレジットを取得する速さが決まります。
ボリュームサイズが大きいほどベースラインパフォーマンスレベルが高くなり、I/O クレジットの取得
速度も速くなります。I/O クレジットとは、ベースラインパフォーマンスでは不十分な場合、大量の I/O
をバーストする際に 汎用 SSD ボリュームで使用できる帯域幅を表します。ボリュームが I/O に対して
保持しているクレジットが多いほど、ベースラインパフォーマンスレベルを超えたバーストには時間が
かかりますが、より高いパフォーマンスが必要な場合はボリュームのパフォーマンスが向上します。
各ボリュームは、初期 I/O クレジットバランス(5,400,000 I/O クレジット)を受け取ります。これは、
30 分間で 3,000 IOPS という最大バーストパフォーマンスを持続するには十分な数のクレジットです。
この初期クレジットバランスは、ブートボリュームでの高速な初期起動サイクル、および他のアプリ
ケーションでの優れたブートストラップエクスペリエンスを実現するために設計されました。ボリュー
ムは、ボリュームサイズの 1 GiB あたり 3 IOPS というベースラインパフォーマンスレートで、1 秒ご
とに I/O クレジットを取得します。たとえば、100 GiB の 汎用 SSD ボリュームではベースラインパ
フォーマンスは 300 IOPS になります。
ベースラインパフォーマンスの I/O レベルよりも高いレベルがボリュームで必要となる場合は、クレ
ジットバランスの I/O クレジットを使用して、必要なパフォーマンスレベルまでバーストします(最大
レベルは 3,000 IOPS です)。1,000 GiB を超えるボリュームのベースラインパフォーマンスは最大バー
669
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
ストパフォーマンス以上になり、I/O クレジットバランスが消耗することはありません。ボリュームで
使用される I/O クレジットが毎秒取得される I/O クレジットよりも少ない場合、未使用の I/O クレジッ
トは I/O クレジットバランスに追加されます。ボリュームの最大 I/O クレジットバランスは、初期クレ
ジットバランス(5,400,000 I/O クレジット)と同じです。
次の表に、いくつかのボリュームサイズとボリュームに関連するベースラインパフォーマンス(I/O ク
レジットを取得するレート)を示します。また、最大のパフォーマンスレベルである 3,000 IOPS(完
全なクレジットバランスで開始された時点のレベル)でのバースト期間、および空のクレジットバラン
スをボリュームが再補充する際にかかる秒数も示します。
ボリュームサイズ
(GiB)
ベースラインパフォーマ 3,000 IOPS での最大の 空のクレジットバランス
ンス(IOPS)
バースト期間(秒数) を補充する秒数
1
3
1,802
1,800,000
100
300
2,000
18,000
214(最大スループット 642
の最小サイズ)
2,290
8,412
250
750
2,400
7,200
500
1,500
3,600
3,600
750
2,250
7,200
2,400
1,000
3,000
該当なし*
該当なし*
3,334(最大 IOPS の最 10,000
小サイズ)
該当なし*
該当なし*
16,384(16 TiB、最大ボ 10,000
リュームサイズ)
該当なし*
該当なし*
* バーストと I/O クレジットは、バーストパフォーマンスがベースラインパフォーマンスを上回る 1,000
GiB 未満のボリュームのみに関連します。
ボリュームのバースト期間は、ボリュームのサイズ、必要なバースト IOPS、およびバーストが開始さ
れた時点のクレジットバランスによって異なります。これを次の式に示します。
Burst duration
=
(Credit balance)
-----------------------------------(Burst IOPS) - 3(Volume size in GiB)
I/O クレジットバランスが空になったらどうなりますか。
ボリュームがすべての I/O クレジットバランスを使用した場合、I/O デマンドがベースラインレベルを
下回り、未使用のクレジットが I/O クレジットバランスに追加されるまで、ボリュームの最大 IOPS パ
フォーマンスはベースライン IOPS パフォーマンスレベル(ボリュームがクレジットを取得するレー
ト)のままになり、スループットの限界はベースライン IOPS に最大スループットを乗算して 3,000 で
除算した値まで下がります。
(Max throughput) x (Baseline
IOPS)
Throughput limit with empty I/O credit balance
---------
=
--------------------------(3,000)
670
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
たとえば、空のクレジットバランスを持つ 100 GiB のボリュームのベースライン IOPS パフォーマンス
の限界は 300 IOPS、スループットの限界は 12.8 MiB/秒となります(128 MiB/秒 *300/3000)。ボリュー
ムが大きくなると、ベースラインパフォーマンスが高くなり、クレジットバランスがより速く補充され
るようになります。IOPS の測定方法の詳細については、「I/O 特性 (p. 725)」を参照してください。
ボリュームのパフォーマンスがベースラインレベルに頻繁に制限されることが確認される場合は(空の
I/O クレジットバランスが原因です)、より大きな(ベースラインパフォーマンスレベルが高い)汎用
SSD ボリュームの使用を考慮するか、310,000 IOPS を超える持続的な IOPS パフォーマンスが必要と
なるワークロードに適した Provisioned IOPS SSD ボリュームに切り替えることを考慮してください。
Provisioned IOPS SSD ボリューム
Provisioned IOPS SSD ボリュームは、ランダムアクセス I/O スループットにおけるストレージパフォー
マンスと整合性が重要な、I/O 集約型ワークロード(特にデータベースワークロード)のニーズを満た
すように設計されています。ボリューム作成時に IOPS レートを指定します。Amazon EBS は 1 年間
のうちの 99.9%、プロビジョンド IOPS をパフォーマンスの 10% 内で提供します。
Provisioned IOPS SSD ボリュームのサイズは 4 GiB ~ 16 TiB であり、ボリュームあたり最大 20,000
IOPS をプロビジョニングできます。指定されたボリュームサイズに対してサポートできるプロビジョ
ンド IOPS の比率は最大 30 倍です。たとえば、3,000 IOPS のボリュームは、100 GiB 以上である必要
があります。サイズの拡張とパフォーマンスの向上をご希望の場合、複数のボリュームを RAID による
ストライピング構成にすることができます。
Provisioned IOPS SSD ボリュームにはプロビジョニングされる IOPS ごとに 256 KiB、(1,280 IOPS
で)最大 320 MiB/秒のスループット制限範囲があります。
発生する I/O あたりのレイテンシーは、プロビジョニングされる IOPS とワークロードのパターンに
よって異なります。I/O あたりで発生する最善のレイテンシーを得るには、IOPS と GB の比率を 2:1
より大きくしてプロビジョニングすることをお勧めします(たとえば、この場合 2,000 IOPS ボリュー
ムは 1,000 GiB よりも小さくなります)。
Note
2012 年より前に作成された一部の AWS アカウントでは、Provisioned IOPS (io1) ボリューム
をサポートしない us-east-1、us-west-1、または ap-northeast-1 のアベイラビリティーゾーン
にアクセスできることがあります。これらのリージョンの 1 つに Provisioned IOPS ボリュー
ムを作成できない場合(またはブロックデバイスマッピングに io1 ボリュームのあるインスタ
ンスを起動できない場合)は、リージョンの別のアベイラビリティーゾーンを試します。アベ
イラビリティーゾーンが io1 ボリュームをサポートするかどうかは、4 GiB の io1 ボリューム
をそのゾーンに作成することで確認できます。
671
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
マグネティック ボリューム
マグネティック ボリュームは、すべての EBS ボリュームタイプの中でギガバイトあたりのコストが最
も低いものです。マグネティック ボリュームは磁気ドライブを利用し、シーケンシャル読み取りを実
行するワークロード、データアクセス頻度の低いワークロード、およびストレージコストをなるべく安
く抑えたい場合に最適です。これらのボリュームは、平均約 100 IOPS を実現し、バースト能力は最大
約数百 IOPS です。ボリュームのサイズは 1 GiB~1 TiB です。サイズの拡張とパフォーマンスの向上
をご希望の場合は、複数の マグネティック ボリュームを 1 つの RAID 構成内でまとめてストライプ構
成することができます。
マグネティック ボリュームが提供できるものよりも、多くの IOPS や高いパフォーマンスが必要な場
合は、汎用 SSD ボリュームまたは Provisioned IOPS SSD ボリュームの使用をお勧めします。
Amazon EBS ボリュームの作成
Abstract
新しい EBS ボリュームを作成して、同じアベイラビリティゾーン内の任意の EC2 インスタンスにアタッチできま
す。
新しい Amazon EBS ボリュームを作成して、同じアベイラビリティーゾーン内の任意の EC2 インスタ
ンスにアタッチできます。暗号化された EBS ボリュームを作成することを選択できますが、暗号化さ
れたボリュームがアタッチできるのは、選択したインスタンスタイプのみです。詳細については、「サ
ポートされるインスタンスタイプ (p. 720)」を参照してください。
また、ブロックデバイスマッピングを指定すると、インスタンスの起動時に、EBS ボリュームを作成
してアタッチすることもできます。詳細については、インスタンスの作成 (p. 255) および ブロックデバ
イスマッピング (p. 752) を参照してください。以前作成したスナップショットからボリュームを復元で
きます。詳細については、「スナップショットからの Amazon EBS ボリュームの復元 (p. 674)」を参照
してください。
高性能のストレージシナリオ用にボリュームを作成する場合、Provisioned IOPS SSD ボリュームを使
用して、アプリケーションをサポートするために十分な帯域幅を持つインスタンス(EBS 最適化イン
スタンス、10 ギガビットネットワーク接続を備えたインスタンスなど)にアタッチしてください。詳
細については、「Amazon EC2 インスタンスの構成 (p. 723)」を参照してください。
新しい EBS ボリュームは、利用可能になるとすぐに最大のパフォーマンスを発揮し、初期化 (以前は
事前ウォーミングと呼ばれました) を必要としません。ただし、スナップショットから復元されたボ
リュームのストレージブロックは、アクセスするためには事前に初期化する必要があります (Amazon
S3 からプルダウンしてボリュームに書き込みます)。この準備処理には時間がかかるため、初めて各ブ
ロックにアクセスした場合に、I/O 操作のレイテンシーの著しい増加が発生する可能性があります。ほ
とんどのアプリケーションにとって、ボリュームの存続期間全体でこのコストを割り当てることは、許
容範囲内です。一度データにアクセスされると、パフォーマンスは元に戻ります。詳細については、
「Amazon EBS ボリュームの初期化 (p. 727)」を参照してください。
コンソールを使用して EBS ボリュームを作成するには
1.
Amazon EC2 コンソールを開きます。
2.
ナビゲーションバーから、ボリュームを作成するリージョンを選択します。この選択は、リージョ
ン間で共有できるのが一部の Amazon EC2 リソースのみであるため、重要です。詳細については、
「リソースの場所 (p. 766)」を参照してください。
672
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
3.
4.
5.
ナビゲーションペインで [Volumes] をクリックします。
上段のペインの上で、[Create Volume] をクリックします。
[Create Volume] ダイアログボックスの [Volume Type] リストで、[General Purpose SSD]、
[Provisioned IOPS SSD]、または [マグネティック] を選択します。詳細については、「Amazon
EBS ボリュームの種類 (p. 667)」を参照してください。
Note
2012 年より前に作成された一部の AWS アカウントでは、Provisioned IOPS (io1) ボリュー
ムをサポートしない us-east-1、us-west-1、または ap-northeast-1 のアベイラビリティー
ゾーンにアクセスできることがあります。これらのリージョンの 1 つに Provisioned IOPS
ボリュームを作成できない場合(またはブロックデバイスマッピングに io1 ボリュームの
あるインスタンスを起動できない場合)は、リージョンの別のアベイラビリティーゾーン
を試します。アベイラビリティーゾーンが io1 ボリュームをサポートするかどうかは、4
GiB の io1 ボリュームをそのゾーンに作成することで確認できます。
6.
7.
8.
9.
[Size] ボックスで、ボリュームのサイズを GiB 単位で入力します。
Provisioned IOPS SSD ボリュームの場合、[IOPS] ボックスに、ボリュームがサポートできる IOPS
(1 秒あたりの入力/出力オペレーションの数)の最大数を入力します。
[Availability Zone] リストで、ボリュームを作成するアベイラビリティーゾーンを選択します。
(オプション)暗号化ボリュームを作成するには、[Encrypted] ボックスを選択し、ボリュームを
暗号化するときに使用するマスターキーを選択します。アカウントのデフォルトのマスターキーを
選択できます。AWS Key Management Service を使用して作成済みのカスタマーマスターキー
(CMK)を選択することもできます。使用できるキーは [Master Key] ドロップダウンメニューに
表示されます。アクセス権があるキーの完全な ARN を貼り付けることもできます。詳細について
は、『AWS Key Management Service Developer Guide』を参照してください。
673
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
Note
暗号化されたボリュームがアタッチできるのは、選択したインスタンスタイプのみです。
詳細については、「サポートされるインスタンスタイプ (p. 720)」を参照してください。
10. [Yes, Create] をクリックします。
Important
次のいずれかのエラーが表示された場合、現在のボリューム作成はアカウントのデフォル
トのストレージ制限を超えている可能性があります:
Maximum number of active volumes bytes, 20, exceeded.
Maximum number of active gp2 volumes bytes, 20, exceeded.
Maximum number of active io1 volumes bytes, 20, exceeded.
Amazon EBS のデフォルトサービス制限については、「Amazon Web Services General
Reference」の「Amazon Elastic Block Store (Amazon EBS) Limits」を参照してください。
ストレージ制限の増加のリクエストには、「 Amazon EBS ボリューム制限の増加リクエ
スト」を参照してください。
コマンドラインを使用して、EBS ボリュームを作成するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• create-volume(AWS CLI)
• ec2-create-volume(Amazon EC2 CLI)
• New-EC2Volume(AWS Tools for Windows PowerShell)
スナップショットからの Amazon EBS ボリュームの復元
Abstract
Amazon S3 に格納されているスナップショットのデータを使用して、Amazon EBS ボリュームを復元します。
Amazon S3 に格納されたスナップショットから、データが存在する Amazon EBS ボリュームを復元で
きます。ボリュームの復元元となるスナップショットの ID が必要です。また、スナップショットへの
アクセス許可も必要です。スナップショットの詳細については、Amazon EBS スナップショット (p. 709)
を参照してください。
既存の EBS スナップショットを基に作成された新しいボリュームは、バックグラウンドで時間をかけ
て読み込まれます。つまり、スナップショットを基にボリュームを作成した後は、Amazon S3 から
EBS ボリュームにすべてのデータが転送されるのを待たなくても、アタッチしたインスタンスからボ
リュームとそのすべてのデータへのアクセスを開始できます。まだ読み込まれていないデータに対して
インスタンスからのアクセスがあった場合、ボリュームは要求されたデータを Amazon S3 から即座に
ダウンロードして、引き続き残りのデータをバックグラウンドで読み込みます。
暗号化されたスナップショットから復元された EBS ボリュームは、自動的に暗号化されます。暗号化
されたボリュームがアタッチできるのは、選択したインスタンスタイプのみです。詳細については、
「サポートされるインスタンスタイプ (p. 720)」を参照してください。
674
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
新しい EBS ボリュームは、利用可能になるとすぐに最大のパフォーマンスを発揮し、初期化 (以前は
事前ウォーミングと呼ばれました) を必要としません。ただし、スナップショットから復元されたボ
リュームのストレージブロックは、アクセスするためには事前に初期化する必要があります (Amazon
S3 からプルダウンしてボリュームに書き込みます)。この準備処理には時間がかかるため、初めて各ブ
ロックにアクセスした場合に、I/O 操作のレイテンシーの著しい増加が発生する可能性があります。ほ
とんどのアプリケーションにとって、ボリュームの存続期間全体でこのコストを割り当てることは、許
容範囲内です。一度データにアクセスされると、パフォーマンスは元に戻ります。詳細については、
「Amazon EBS ボリュームの初期化 (p. 727)」を参照してください。
コンソールを使用してスナップショットから EBS ボリュームを復元するには
次のように AWS マネジメントコンソール を使って、スナップショットから EBS ボリュームを復元す
ることができます。
1.
2.
Amazon EC2 コンソールを開きます。
ナビゲーションバーから、スナップショットのリージョンを選択します。この選択は、リージョン
間で共有できるのが一部の Amazon EC2 リソースのみであるため、重要です。詳細については、
「リソースの場所 (p. 766)」を参照してください。スナップショットを別のリージョンのボリュー
ムに復元する必要がある場合、スナップショットを新しいリージョンにコピーし、そのリージョン
のボリュームに復元することができます。詳細については、「Amazon EBS スナップショットの
コピー (p. 712)」を参照してください。
3.
4.
ナビゲーションペインで [Volumes] をクリックします。
[Create Volume] をクリックします。
5.
[Create Volume] ダイアログボックスの [Volume Type] リストで、[General Purpose SSD]、
[Provisioned IOPS SSD]、または [マグネティック] を選択します。詳細については、「Amazon
EBS ボリュームの種類 (p. 667)」を参照してください。
Note
2012 年より前に作成された一部の AWS アカウントでは、Provisioned IOPS (io1) ボリュー
ムをサポートしない us-east-1、us-west-1、または ap-northeast-1 のアベイラビリティー
675
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
ゾーンにアクセスできることがあります。これらのリージョンの 1 つに Provisioned IOPS
ボリュームを作成できない場合(またはブロックデバイスマッピングに io1 ボリュームの
あるインスタンスを起動できない場合)は、リージョンの別のアベイラビリティーゾーン
を試します。アベイラビリティーゾーンが io1 ボリュームをサポートするかどうかは、4
GiB の io1 ボリュームをそのゾーンに作成することで確認できます。
6.
[Snapshot] フィールドに、ボリュームの復元元となるスナップショットの ID または説明を入力し、
表示されたオプションリストから選択します。
Note
暗号化されたスナップショットから復元されるボリュームは、Amazon EBS 暗号化 をサ
ポートするインスタンスにのみアタッチすることができます。詳細については、「サポー
トされるインスタンスタイプ (p. 720)」を参照してください。
7.
[Size] ボックスに、ボリュームのサイズ(GiB)を入力するか、またはスナップショットのデフォ
ルトのサイズが適切であるかを確認します。
ボリュームサイズとスナップショット ID の両方を指定した場合は、スナップショットサイズ以上
のサイズにする必要があります。ボリュームの種類とスナップショット ID を選択すると、ボリュー
ムの最小サイズと最大サイズが [Size] リストの横に表示されます。そのスナップショットからの
AWS Marketplace 製品コードはすべて、ボリュームに反映されます。
8. Provisioned IOPS SSD ボリュームの場合、[IOPS] ボックスに、ボリュームがサポートできる IOPS
(1 秒あたりの入力/出力オペレーションの数)の最大数を入力します。
9. [Availability Zone] リストで、ボリュームを作成するアベイラビリティーゾーンを選択します。EBS
ボリュームをアタッチできる EC2 インスタンスは、同じアベイラビリティーゾーンにあるものに
限られます。
10. [Yes, Create] をクリックします。
Important
スナップショットを、そのスナップショットのデフォルトよりも大きなボリュームに復元
する場合、追加容量の利点を活用できるように、ボリュームのファイルシステムを拡張す
る必要があります。詳細については、「Linux で EBS ボリュームのストレージ領域を拡張
する (p. 694)」を参照してください。
コマンドラインを使用して、EBS ボリュームを復元するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• create-volume(AWS CLI)
• ec2-create-volume(Amazon EC2 CLI)
• New-EC2Volume(AWS Tools for Windows PowerShell)
インスタンスへの Amazon EBS ボリュームのアタッチ
Abstract
作成した Amazon EBS ボリュームを、 EC2 インスタンスにアタッチします。
676
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
同じアベイラビリティーゾーンにあるいずれかのインスタンスに、EBS ボリュームをボリュームとし
てアタッチできます。
前提条件
• 使用するデバイス名を決定します。詳細については、「Linux インスタンスでのデバイスの名前付
け (p. 750)」を参照してください。
• インスタンスにアタッチできるボリューム数を決定します。詳細については、「インスタンスボリュー
ム数の制限 (p. 749)」を参照してください。
• ボリュームが暗号化されている場合、Amazon EBS 暗号化 をサポートするインスタンスだけにアタッ
チできます。詳細については、「サポートされるインスタンスタイプ (p. 720)」を参照してください。
• ボリュームに AWS Marketplace 製品コードがある場合は、次のようになります。
• ボリュームは停止されたインスタンスにのみアタッチできます。
• ボリューム上に存在する AWS Marketplace コードをサブスクライブしている必要があります。
• インスタンスの構成(インスタンスタイプ、オペレーティングシステム)は、その特定の AWS
Marketplace コードをサポートするものでなければなりません。たとえば、Windows インスタンス
からのボリュームを Linux インスタンスにアタッチすることはできません。
• AWS Marketplace 製品コードがボリュームからインスタンスにコピーされます。
コンソールを使用して、EBS ボリュームをインスタンスにアタッチするには
1.
2.
3.
4.
5.
Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Volumes] をクリックします。
ボリュームを選択し、[Attach Volume] をクリックします。
[Attach Volume] ダイアログボックスの [Instance] ボックスに、ボリュームをアタッチするインス
タンスの名前または ID の最初の数文字を入力し、表示された候補のリストからインスタンスを選
択します(ボリュームと同じアベイラビリティーゾーンに存在するインスタンスのみ表示されま
す)。
提示されたデバイス名のままにすることも、サポートされる別のデバイス名を入力することもでき
ます。
Important
インスタンスのブロックデバイスドライバは、ボリュームのマウント時に実際のボリュー
ム名を割り当てますが、この割り当てられた名前は、Amazon EC2 が推奨する名前とは異
なる可能性があります。
6.
7.
Attach をクリックします。
インスタンスに接続してボリュームを使用できるようにします。詳細については、「Amazon EBS
ボリュームを使用できるようにする (p. 678)」を参照してください。
コマンドラインを使用して、EBS ボリュームをインスタンスにアタッチするには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• attach-volume(AWS CLI)
• ec2-attach-volume(Amazon EC2 CLI)
• Add-EC2Volume(AWS Tools for Windows PowerShell)
677
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
Amazon EBS ボリュームを使用できるようにする
Abstract
Amazon EBS ボリュームを使用可能にして、他のボリュームと同じようにアクセスできるようにします。
Amazon EBS ボリュームをインスタンスにアタッチすると、それはブロックデバイスとして表示され
ます。任意のファイルシステムでボリュームをフォーマットし、マウントできます。EBS ボリューム
を使用できるようにすると、他のボリュームと同じようにアクセスできます。このファイルシステムに
書き込まれるデータはすべて EBS ボリュームに書き込まれますが、デバイスを使用するアプリケーショ
ンには透過的になります。
EBS ボリュームのスナップショットは、バックアップ目的で作成したり、別のボリュームを作成する
際のベースラインとして使用したりすることもできます。詳細については、「Amazon EBS スナップ
ショット (p. 709)」を参照してください。
Linux でボリュームを使用できるようにする
ボリュームを使用できるようにするには、次の手順を使用します。Windows インスタンスのボリュー
ムに関する手順は、『Microsoft Windows インスタンスの Amazon EC2 ユーザーガイド』の「Windows
でボリュームを使用できるようにする」で参照できます。
Linux で EBS ボリュームを使用できるようにするには
1.
2.
SSH を使用してインスタンスに接続します。詳細については、「ステップ 2: インスタンスに接
続 (p. 33)」を参照してください。
カーネルのブロックデバイスドライバによっては、デバイスが指定した名前とは異なる名前でア
タッチされる可能性があります。たとえば、/dev/sdh というデバイス名を指定した場
合、/dev/xvdh や /dev/hdh のような名前に変更されることがあります。ほとんどの場合、末尾
の文字は変更されません。Red Hat Enterprise Linux(および CentOS などのバリエーション)の
一部バージョンでは、末尾の文字も変更されることがあります(/dev/sda が /dev/xvde などに
なります)。このような場合、各デバイス名の末尾の文字は同じ規則で変更されます。たとえ
ば、/dev/sdb が /dev/xvdf になり、/dev/sdc が /dev/xvdg に変更されます。Amazon Linux
AMI は、そのポイントの起動時に指定した名前で、名前を変更されたデバイスのパスへのシンボ
リックリンクを作成しますが、その他の AMI は動作が異なることがあります。
lsblk コマンドを使用して、使用可能なディスクデバイスとマウントポイント(該当する場合)を
表示し、使用する正しいデバイス名を決定します。
[ec2-user ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf 202:80
0 100G 0 disk
xvda1 202:1
0
8G 0 disk /
lsblk の出力は、フルデバイスパスから /dev/ を削除します。この例では、/dev/xvda1 はルート
デバイスとしてマウントされ(MOUNTPOINT は、Linux ファイルシステム階層のルートである / と
して表示されている点に注意してください)、/dev/xvdf がアタッチされますが、マウントはま
だ実行されていません。
3.
ボリュームにファイルシステムを作成する必要があるかどうかを確認します。新しいボリュームは
未加工のブロックデバイスで、マウントして使用する前に、ボリュームにファイルシステムを作成
する必要があります。スナップショットから復元されたボリュームは、ファイルシステムを備えて
いる可能性が高くなります。既存のファイルシステムの上に新しいファイルシステムを作成する
と、データが上書きされます。特殊な情報(ファイルシステムの種類など)を一覧表示するには、
sudo file -s device コマンドを使用します。
678
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
[ec2-user ~]$ sudo file -s /dev/xvdf
/dev/xvdf: data
前のコマンドの出力にデバイスの data だけが表示された場合、デバイスにはファイルシステムが
存在していないので、ファイルシステムを作成する必要があります。Step 4 (p. 679) に移動できま
す。ファイルシステムを搭載しているデバイスでこのコマンドを実行すると、出力が異なります。
[ec2-user ~]$ sudo file -s /dev/xvda1
/dev/xvda1: Linux rev 1.0 ext4 filesystem data, UUID=1701d228-e1bd-4094a14c-8c64d6819362 (needs journal recovery) (extents) (large files) (huge
files)
前の例では、デバイスに Linux rev 1.0 ext4 filesystem data が含まれているため、この
ボリュームにファイルシステムを作成する必要はありません(出力にファイルシステムデータが表
示される場合、「Step 4 (p. 679)」をスキップできます)。
4.
(条件付き)次のコマンドを使用して、ボリュームに ext4 ファイルシステムを作成します。
device_name をデバイス名(/dev/xvdf など)に置き換えます。アプリケーションの要件また
はオペレーティングシステムの制限に応じて、ext3、XFS など、異なるファイルシステムの種類を
選択できます。
Caution
この手順では、空のボリュームをマウントすることを前提としています。既にデータが含
まれるボリューム(スナップショットから復元したボリュームなど)をマウントする場合
は、ボリュームのマウント前に mkfs を使用しないでください(代わりに、次の手順に移
動します)。ステップ 1 を実行した場合、ボリュームがフォーマットされ、既存のデータ
が削除されます。
[ec2-user ~]$ sudo mkfs -t ext4 device_name
5.
次のコマンドを使用して、ボリュームのマウントポイントディレクトリを作成します。マウントポ
イントとは、ボリュームをマウントした後、ファイルシステムツリー内でボリュームが配置され、
ファイルの読み書きが実行される場所です。mount_point を場所(/data など)に置き換えま
す。
[ec2-user ~]$ sudo mkdir mount_point
6.
次のコマンドを使用して、作成した場所にボリュームをマウントします。
[ec2-user ~]$ sudo mount device_name mount_point
7.
(オプション)システムブート時に常に、この EBS ボリュームをマウントするには、/etc/fstab
ファイルにデバイス用のエントリを追加します。
a.
/etc/fstab ファイルのバックアップコピーを作成すると、編集中に誤って破壊/削除してし
まった場合にこのコピーを使用できます。
[ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
b.
任意のテキストエディタ(nano、vim など)を使って /etc/fstab ファイルを開きます。
679
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
Note
ファイルを root として、または sudo コマンドを使って開く必要があります。
c.
次のフォーマットを使って、ボリュームのファイルの最後に新しい行を追加します。
device_name
mount_point
file_system_type
fs_mntops
fs_freq
fs_passno
この行の最後の 3 つのフィールドは、ファイルシステムのマウントオプション、ファイルシス
テムのダンプ頻度、ブート時に実行されるファイルシステムチェックの順番です。これらの値
がわからない場合、以下の例の値を使用してください(defaults,nofail 0
2))。/etc/fstab エントリの詳細については、fstab マニュアルページを参照してください
(コマンドラインで man fstab と入力します)。たとえば、マウントポイント /data の
/dev/xvdf デバイスに ext4 ファイルシステムをマウントするには、/etc/fstab に次のエン
トリを追加します。
Note
このボリュームをアタッチしないでインスタンスを起動することを目的としている場
合(たとえば、このボリュームが異なるインスタンス間で移動される可能性がある場
合)、nofail マウントオプションを追加し、ボリュームのマウントでエラーが発生
してもインスタンスが起動できるようにしてください。Debian から派生した OS
(Ubuntu など)では、nobootwait マウントオプションも追加する必要があります。
/dev/xvdf
d.
/data
ext4
defaults,nofail
0
2
新しいエントリを /etc/fstab に追加した後、エントリが正しく動作するかを確認する必要
があります。sudo mount -a コマンドを実行すると、/etc/fstab にすべてのファイルシステ
ムがマウントされます。
[ec2-user ~]$ sudo mount -a
前のコマンドを実行してもエラーが発生しない場合、/etc/fstab ファイルに問題はありませ
ん。次回ブート時にファイルシステムは自動的にマウントされます。このコマンドを実行して
エラーが発生した場合、エラーを調べて、/etc/fstab を修正してください。
Warning
/etc/fstab ファイルにエラーがあると、システムがブート不能になる可能性があり
ます。/etc/fstab ファイルにエラーがあるシステムをシャットダウンしないでくだ
さい。
e.
(オプション)/etc/fstab のエラーの修正方法が不明な場合、次のコマンドを使って、いつ
でもバックアップの /etc/fstab ファイルを復元することができます。
[ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab
680
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
8.
新しいボリュームマウントのファイルのアクセス権限をプレビューして、ユーザーとアプリケー
ションがボリュームに書き込みできることを確認します。ファイルのアクセス権限の詳細について
は、Linux Documentation Project の「ファイルセキュリティ」を参照してください。
ボリューム情報を表示する
Abstract
Amazon EBS ボリュームに関する情報(ボリュームのアタッチ先である特定の EC2 インスタンスなど)を一覧表
示します。
AWS マネジメントコンソール に、選択したリージョン内の Amazon EBS ボリュームの詳細情報を一
度に表示することができます。単一ボリュームの詳細(サイズ、ボリュームタイプ、ボリュームが暗号
化されているかどうか、ボリュームを暗号化するために使用したマスターキー、ボリュームがアタッチ
されている特定のインスタンスなど)を表示することもできます。
コンソールを使用して、EBS ボリュームについての情報を表示するには
1.
2.
3.
Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Volumes] をクリックします。
ボリュームの詳細情報を表示するには、そのボリュームを選択します。
コマンドラインを使用して、EBS ボリュームについての情報を表示するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• describe-volumes(AWS CLI)
• ec2-describe-volumes(Amazon EC2 CLI)
• Get-EC2Volume(AWS Tools for Windows PowerShell)
ボリュームのステータスのモニタリング
Abstract
Amazon CloudWatch メトリックスおよびボリュームステータスチェックを使用して、Amazon Elastic Block Store
ボリュームをモニタリングします。
アマゾン ウェブ サービス(AWS)では、CloudWatch メトリックスやボリュームステータスチェック
などのデータが自動的に提供されます。これらのデータを使用して、Amazon Elastic Block Store
(Amazon EBS)ボリュームをモニタリングすることができます。
目次
• CloudWatch によるボリュームのモニタリング (p. 681)
• ステータスチェックによるボリュームのモニタリング (p. 684)
• ボリュームイベントのモニタリング (p. 686)
• 障害のあるボリュームの操作 (p. 688)
• AutoEnableIO ボリューム属性の操作 (p. 690)
CloudWatch によるボリュームのモニタリング
CloudWatch メトリックスは、ボリュームの実行動作を表示または分析したり、それらの実行動作につ
いてのアラームを設定したりするために使用できる統計データです。
681
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
次の表は、Amazon EBS ボリュームで利用可能なモニタリングデータのタイプをまとめたものです。
型
説明
基本
5 分間のデータを無料で自動的に取得できます。このデータには、Amazon EBSbacked インスタンスのルートデバイスボリュームのデータが含まれます。
詳細
Provisioned IOPS SSD ボリュームは、1 分間のメトリックスを CloudWatch に
自動的に送信します。
CloudWatch からデータを取得したときに、Period リクエストパラメータを含めて、返されるデータ
の詳細程度を指定できます。これは、データの収集に使用する期間(5 分間)とは異なります。有効な
データが確実に返されるように、リクエストには収集期間以上の期間を指定することをお勧めします。
データは、Amazon CloudWatch API または Amazon EC2 コンソールのいずれかを使用して取得できま
す。コンソールは Amazon CloudWatch API から未加工データを取得し、そのデータに基づいて一連の
グラフを表示します。必要に応じて、API のデータまたはコンソールのグラフのいずれかを使用できま
す。
Amazon EBS のメトリックス
Amazon CloudWatch GetMetricStatistics API を使用して、次の表にある任意の Amazon EBS ボ
リュームメトリックスを取得できます。類似したメトリックスはグループにまとめてあります。最初の
2 行に挙げたメトリックスは、Amazon EC2 インスタンスのローカルストアにも使用できます。
メトリックス
説明
VolumeReadBytes
指定された期間の I/O 操作に関する情報を提供します。Sum 統計は、期間
内に転送されたバイトの総数をレポートします。Average 統計は、期間中
の各 I/O オペレーションの平均サイズをレポートします。SampleCount 統
計は、期間中の I/O オペレーションの総数をレポートします。Minimum 統
計と Maximum 統計は、このメトリックスには関連しません。データは、ボ
リュームがアクティブな場合にのみ Amazon CloudWatch に報告されます。
ボリュームがアイドル状態の場合は、Amazon CloudWatch にデータは報告
されません。
VolumeWriteBytes
単位: バイト
VolumeReadOps
VolumeWriteOps
指定期間内の I/O 操作の総数。
Note
その期間の 1 秒あたりの I/O 操作回数(IOPS)の平均を算出する
には、その期間の操作回数の合計をその期間の秒数で割ります。
単位: Count
VolumeTotalReadTime
VolumeTotalWriteTime
指定期間内に完了した操作すべての、操作に要した時間(秒)の合計。複
数のリクエストが同時に送信された場合は、この合計が期間の長さを超え
ることがあります。たとえば、期間が 5 分間(300 秒)で、その期間内に
完了した操作の数が 700 あり、1 つの操作に 1 秒かかるとすれば、この値
は 700 秒となります。
単位: Seconds
682
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
メトリックス
説明
VolumeIdleTime
指定期間内に、読み取りと書き込みのどちらの操作も行われなかった時間
(秒)の合計。
単位: Seconds
VolumeQueueLength
指定期間内に完了を待っていた読み取りおよび書き込みの操作リクエスト
の数。
単位: Count
VolumeThroughputPercentage
Provisioned IOPS SSD ボリュームでのみ使用されます。Amazon EBS ボ
リュームにプロビジョニングされた合計 IOPS(1 秒間あたりの I/O 操作回
数)に対する、提供された IOPS の割合(パーセント)。Provisioned IOPS
SSD ボリュームは、1 年の 99.9 パーセントにわたり、プロビジョニングさ
れた IOPS の 10 パーセント以内のパフォーマンスを提供します。
Note
書き込みの間、他に保留中の I/O リクエストが 1 分以内になけれ
ば、メトリックス値は 100% となります。また、お客様が行った操
作によって(たとえば使用率ピーク時にボリュームのスナップショッ
トを作成する、EBS-Optimized インスタンス以外でボリュームを実
行する、そのボリュームのデータに初めてアクセスするなど)EBS
ボリュームの I/O 性能が一時的に低下する場合があります。
単位: パーセント
VolumeConsumedRead- Provisioned IOPS SSD ボリュームでのみ使用されます。指定された期間内
に消費された読み書き操作の合計数(256K キャパシティーユニットに標準
WriteOps
化)。
それぞれ 256K より小さい I/O 操作は、1 消費 IOPS とカウントされます。
256K より大きい I/O 操作は、256K キャパシティーユニットでカウントさ
れます。たとえば、1024K I/O は 4 消費 IOPS としてカウントされます。
単位: Count
Amazon EC2 コンソールのグラフ
ボリュームを作成したら、Amazon EC2 コンソールにアクセスし、ボリュームのモニタリンググラフ
を表示できます。これらのグラフは、EC2 コンソールの Volumes ページでボリュームを選択すると表
示されます。ボリュームの Description タブの隣りに、Monitoring タブが表示されます。次の表は、表
示されるグラフをまとめたものです。右側の欄は、各グラフを作成するために Amazon CloudWatch
API の未加工データメトリックスがどのように使用されるかを示しています。すべてのグラフの期間は
5分です。
グラフ名
未加工メトリックスの使用に関する説明
読み込み帯域幅(KiB/s)
合計(VolumeReadBytes)/期間/1024
書き込み帯域幅(KiB/s)
合計(VolumeWriteBytes)/期間/1024
読み込みスループット(Ops/s)
合計(VolumeReadOps)/期間
書き込みスループット(Ops/s)
合計(VolumeWriteOps)/期間
683
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
グラフ名
未加工メトリックスの使用に関する説明
平均キュー長(ops)
平均(VolumeQueueLength)
% アイドル時間
合計(VolumeIdleTime)/期間 * 100
平均読み込みサイズ(KiB/op)
平均(VolumeReadBytes)/1024
平均書き込みサイズ(KiB/op)
平均(VolumeWriteBytes)/1024
平均読み込み待ち時間(ms/op)
平均(VolumeTotalReadTime)* 1000
平均書き込み待ち時間(ms/op)
平均(VolumeTotalWriteTime)* 1000
平均レイテンシーグラフおよび平均サイズグラフでは、期間中に計算されたオペレーション(読み込み
または書き込みのうち、いずれかグラフに該当する方)の合計数に基づいて平均が計算されます。
AWS マネジメントコンソールの中に、Amazon CloudWatch のコンソールがあります。この Amazon
CloudWatch コンソールでは、すべての AWS リソースメトリックスの検索と一覧表示ができるほか、
問題のトラブルシューティングや傾向の発見のためのグラフ表示や、問題を知らせるアラームの作成と
編集も行うことができ、アラームと AWS のリソースの概要をひと目で確認できるようになっていま
す。詳細は、Amazon CloudWatch 開発者ガイド の「AWS Management Console」を参照してくださ
い。
ステータスチェックによるボリュームのモニタリング
ボリュームステータスチェックを利用すると、Amazon EBS ボリュームのデータの潜在的な不整合を
容易に理解、追跡、および管理できます。これらのチェックは、Amazon EBS ボリュームに障害が発
生しているかどうかを判断するために必要な情報を提供し、潜在的に不整合なボリュームの処理方法を
制御できるように設計されています。
ボリュームステータスチェックは 5 分ごとに自動的に試行され、成功または失敗のステータスを返しま
す。すべてのチェックが成功した場合、ボリュームのステータスは ok です。チェックが失敗した場
合、ボリュームのステータスは impaired です。ステータスが insufficient-data の場合、ボリュー
ムのチェックがまだ実行中である可能性があります。ボリュームステータスチェックの結果を表示し
て、障害のあるボリュームを特定し、必要なアクションを行うことができます。
ボリュームのデータが潜在的に不整合であると Amazon EBS が判断した場合、デフォルトでは、アタッ
チされたすべての EC2 インスタンスからそのボリュームへの I/O が無効になります。これにより、デー
タの破損を防ぐことができます。I/O が無効になると、次のボリュームステータスチェックが失敗し、
ボリュームステータスは impaired になります。さらに、I/O が無効になったこと、およびボリューム
への I/O を有効にすることによってボリュームの障害ステータスを解決できることを伝えるイベントが
表示されます。I/O を有効にするまで、インスタンスによるボリュームの使用を継続させるか、その前
に fsck(Linux)または chkdsk(Windows)などのコマンドを使用して整合性チェックを実行するかを
判断することはできません。
Note
ボリュームステータスはボリュームステータスチェックに基づいており、ボリュームの状態を
反映していません。従って、ボリュームステータスではボリュームが error 状態(たとえば、
I/O を受け付けできない)であることは判りません。
あるボリュームの整合性について心配しているわけではなく、そのボリュームに障害が発生した際にそ
のボリュームをすぐに利用できるようにしたい場合は、デフォルトの動作を上書きして、I/O を自動的
に有効にするようにボリュームを設定することができます。AutoEnableIO ボリューム属性を有効に
した場合、ボリュームステータスチェックは継続して成功します。また、ボリュームに潜在的な障害が
684
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
あると判断されたが、そのボリュームの I/O が自動的に有効になったことを伝えるイベントも表示され
ます。これにより、ボリュームの整合性を確認したり、後でボリュームを交換したりすることが可能に
なります。
I/O パフォーマンスのステータスチェックでは、実際のボリュームパフォーマンスと期待されるボリュー
ムパフォーマンスが比較され、ボリュームのパフォーマンスが期待を下回っている場合は警告が生成さ
れます。個のステータスチェックは、インスタンスにアタッチされた Provisioned IOPS SSD ボリュー
ムにのみ使用でき、汎用 SSD ボリュームと マグネティック ボリュームには有効ではありません。I/O
パフォーマンスのステータスチェックは 1 分に 1 回実行され、CloudWatch はこのデータを 5 分おきに
収集するため、Provisioned IOPS SSD ボリュームをインスタンスにアタッチしてから、このチェック
により I/O パフォーマンスのステータスが報告されるまで最大 5 分かかる可能性があります。
Important
スナップショットから復元された Provisioned IOPS SSD ボリュームを初期化している間は、
ボリュームのパフォーマンスが想定レベルの 50% を下回る場合があります。このため、ボ
リュームの [I/O Performance] ステータスチェックでは warning 状態が表示されます。これは
想定の動作です。初期化中の Provisioned IOPS SSD ボリュームの warning 状態は無視してか
まいません。詳細については、「Amazon EBS ボリュームの初期化 (p. 727)」を参照してくだ
さい。
次の表に、Amazon EBS ボリュームのステータスを示します。
ボリュームのステータス
I/O 有効ステータス
I/O パフォーマンスステータス
(プロビジョンド IOPS ボリュー
ムでのみ使用可能)
ok
Enabled(I/O Enabled または I/O Normal(ボリュームパフォーマ
Auto-Enabled)
ンスは想定どおり)
warning
Enabled(I/O Enabled または I/O Degraded(ボリュームのパ
Auto-Enabled)
フォーマンスが想定を下回ってい
る)
Severely Degraded(ボリューム
のパフォーマンスが想定をかなり
下回っている)
impaired
Enabled(I/O Enabled または I/O Stalled(ボリュームのパフォーマ
Auto-Enabled)
ンスは致命的な影響を受けてい
る)
Disabled(ボリュームがオフラ
インで復旧の保留中、または
Not Available(I/O が無効なた
ユーザーによる I/O の有効化待 め、I/O パフォーマンスを判定不
ち)
能)
insufficient-data
Enabled(I/O Enabled または I/O Insufficient Data
Auto-Enabled)
Insufficient Data
ステータスチェックを表示または操作するには、Amazon EC2 コンソール、API、またはコマンドライ
ンインターフェイスを使用します。
コンソールでステータスチェックを表示するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
685
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
2.
3.
4.
ナビゲーションペインの [Volumes] をクリックします。
[EBS Volumes] ページの [Volume Status] 列に、各ボリュームの動作状況が表示されます。
各ボリュームのステータスを表示するには、ボリュームを選択して、[Status Checks] タブをクリッ
クします。
5.
ステータスチェックが失敗したボリュームがある(ステータスが impaired である)場合は、「障
害のあるボリュームの操作 (p. 688)」を参照してください。
[Events] ペインを使用してインスタンスとボリュームのすべてのイベントを 1 つのペインに表示するこ
ともできます。詳細については、「ボリュームイベントのモニタリング (p. 686)」を参照してください。
コマンドラインを使用してボリュームステータスに関する情報を表示するには
Amazon EBS ボリュームのステータスを表示するには、次のコマンドのいずれかを使用できます。こ
れらのコマンドラインインターフェイスの詳細については、「Amazon EC2 へのアクセス (p. 3)」を
参照してください。
• describe-volume-status(AWS CLI)
• ec2-describe-volume-status(Amazon EC2 CLI)
• Get-EC2VolumeStatus(AWS Tools for Windows PowerShell)
ボリュームイベントのモニタリング
ボリュームのデータが潜在的に不整合であると Amazon EBS によって判断された場合、デフォルトで
は、アタッチされているすべての EC2 インスタンスからそのボリュームへの I/O が無効になります。
これにより、ボリュームステータスチェックが失敗し、障害の原因を示すボリュームステータスイベン
トが作成されます。
データが潜在的に不整合であるボリュームで I/O を自動的に有効にするには、AutoEnableIO ボリュー
ム属性の設定を変更します。この属性の変更の詳細については、「障害のあるボリュームの操作(p.688)」
を参照してください。
各イベントには、イベントが発生した時刻を示す開始時刻と、そのボリュームに対する I/O が無効に
なった時間を示す継続時間が含まれています。ボリュームに対する I/O が有効になると、イベントに終
了時刻が追加されます。
ボリュームステータスイベントには、次の説明のいずれかが含まれています。
686
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
Awaiting Action: Enable IO
ボリュームデータに整合性がない可能性があります。ボリュームに対する I/O は、ユーザーが明示
的に有効にするまで無効になります。I/O を明示的に有効にすると、イベントの説明が IO Enabled
に変更されます。
IO Enabled
このボリュームに対する I/O 操作が明示的に有効にされました。
IO Auto-Enabled
イベントの発生後に、このボリュームで I/O 操作が自動的に有効になりました。データを引き続き
使用する前に、データの整合性を確認することをお勧めします。
Normal
Provisioned IOPS SSD ボリュームのみ。ボリュームのパフォーマンスは想定どおりです。
Degraded
Provisioned IOPS SSD ボリュームのみ。ボリュームのパフォーマンスは想定を下回っています。
Severely Degraded
Provisioned IOPS SSD ボリュームのみ。ボリュームのパフォーマンスは想定をはるかに下回って
います。
Stalled
Provisioned IOPS SSD ボリュームのみ。ボリュームのパフォーマンスは致命的な影響を受けてい
ます。
Amazon EC2 コンソール、API、またはコマンドラインインターフェイスを使用して、ボリュームのイ
ベントを表示できます。
コンソールでボリュームのイベントを表示するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Events] をクリックします。
イベントを含むすべてのインスタンスおよびボリュームがリストされています。ボリュームでフィ
ルタリングして、ボリュームステータスのみを表示できます。特定のタイプのステータスでフィル
タリングすることもできます。
ボリュームを選択して、その特定のイベントを表示します。
687
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
I/O が無効になっているボリュームがある場合は、「障害のあるボリュームの操作 (p. 688)」を参照して
ください。I/O パフォーマンスが通常の状態を下回っているボリュームがある場合、実行したアクショ
ンを原因とする一時的な状態である可能性があります(ピーク使用時にボリュームのスナップショット
を作成した、必要な I/O 帯域幅をサポートできないインスタンスでボリュームを実行した、ボリューム
のデータに初めてアクセスした、など)。
コマンドラインを使用してボリュームのイベントを表示するには
Amazon EBS ボリュームのイベント情報を表示するには、次のコマンドのいずれかを使用できます。
これらのコマンドラインインターフェイスの詳細については、「Amazon EC2 へのアクセス (p. 3)」
を参照してください。
• describe-volume-status(AWS CLI)
• ec2-describe-volume-status(Amazon EC2 CLI)
• Get-EC2VolumeStatus(AWS Tools for Windows PowerShell)
障害のあるボリュームの操作
このセクションでは、ボリュームのデータに整合性がないなどの原因でボリュームに障害がある場合に
使用可能なオプションについて説明します。
オプション
• オプション 1: インスタンスにアタッチされたボリュームで整合性チェックを実行する (p. 688)
• オプション 2: 別のインスタンスを使用してボリュームで整合性チェックを実行する (p. 689)
• オプション 3: 不要なボリュームを削除する (p. 690)
オプション 1: インスタンスにアタッチされたボリュームで整合性チェックを実行する
もっとも単純なオプションは、ボリュームが Amazon EC2 にアタッチされているときに、I/O を有効に
してから、ボリュームでデータの整合性チェックを実行するオプションです。
アタッチされたボリュームで整合性チェックを実行するには
1.
2.
アプリケーションによるボリュームの使用を停止します。
ボリュームの I/O を有効にします。
a.
b.
c.
d.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Volumes] をクリックします。
I/O 操作を有効にするボリュームを選択します。
詳細ペインで、[Enable Volume I/O] をクリックします。
e.
Enable Volume IO で、Yes, Enable をクリックします。
688
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
3.
ボリュームのデータを確認します。
a.
fsck(Linux)または chkdsk(Windows)コマンドを実行します。
b.
(オプション)関連するエラーメッセージがないか、使用可能なアプリケーションログまたは
システムログを確認します。
ボリュームの障害が 20 分以上続く場合は、サポートに連絡してください。[Troubleshoot] を
クリックし、[Troubleshoot Status Checks] ダイアログボックスの [Contact Support] をクリッ
クして、サポートケースを送信します。
c.
コマンドラインインターフェイスを使用してボリュームの I/O を有効にする方法については、「Amazon
EC2 コマンドラインリファレンス」の「ec2-enable-volume-io」を参照してください。API を使用して
ボリュームの I/O を有効にする方法については、「Amazon EC2 API Reference」の「EnableVolumeIO」
を参照してください。
オプション 2: 別のインスタンスを使用してボリュームで整合性チェックを実行する
実動環境外部のボリュームをチェックするには、次の手順に従います。
Important
この手順を実行すると、ボリューム I/O を無効にしたときに停止された書き込み I/O が失われ
る場合があります。
分離されたボリュームで整合性チェックを実行するには
1.
2.
アプリケーションによるボリュームの使用を停止します。
ボリュームをインスタンスからデタッチします。
a.
b.
c.
d.
3.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Volumes] をクリックします。
デタッチするボリュームを選択します。
[Actions]、[Force Detach Volume] の順にクリックします。確認のためのメッセージが表示さ
れます。
ボリュームの I/O を有効にします。
a.
b.
c.
ナビゲーションペインの [Volumes] をクリックします。
前の手順でデタッチしたボリュームを選択します。
詳細ペインで、[Enable Volume I/O] をクリックします。
689
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
d.
[Enable Volume IO] ダイアログボックスで、[Yes, Enable] をクリックします。
4.
ボリュームを別のインスタンスにアタッチします。詳細については、「インスタンスの作成(p.254)」
および「インスタンスへの Amazon EBS ボリュームのアタッチ (p. 676)」を参照してください。
5.
ボリュームのデータを確認します。
a.
fsck(Linux)または chkdsk(Windows)コマンドを実行します。
b.
(オプション)関連するエラーメッセージがないか、使用可能なアプリケーションログまたは
システムログを確認します。
c.
ボリュームの障害が 20 分以上続く場合は、サポートに連絡してください。[Troubleshoot] を
クリックし、トラブルシューティングのダイアログボックスで [Contact Support] をクリック
して、サポートケースを送信します。
コマンドラインインターフェイスを使用してボリュームの I/O を有効にする方法については、「Amazon
EC2 コマンドラインリファレンス」の「ec2-enable-volume-io」を参照してください。API を使用して
ボリュームの I/O を有効にする方法については、「Amazon EC2 API Reference」の「EnableVolumeIO」
を参照してください。
オプション 3: 不要なボリュームを削除する
環境からボリュームを削除するには、単にそれを削除します。ボリュームの削除の詳細については、
「Amazon EBS ボリュームの削除 (p. 693)」を参照してください。
ボリュームのデータをバックアップするスナップショットを最近作成した場合、そのスナップショット
から新しいボリュームを作成できます。スナップショットからのボリュームの作成の詳細については、
「スナップショットからの Amazon EBS ボリュームの復元 (p. 674)」を参照してください。
AutoEnableIO ボリューム属性の操作
ボリュームのデータが潜在的に不整合であると Amazon EBS によって判断された場合、デフォルトで
は、アタッチされているすべての EC2 インスタンスからそのボリュームへの I/O が無効になります。
これにより、ボリュームステータスチェックが失敗し、障害の原因を示すボリュームステータスイベン
トが作成されます。特定のボリュームの整合性が問題でない場合、ボリュームが impaired であると
きにそれを即時に使用可能にするには、I/O を自動的に有効にするようにボリュームを構成して、デフォ
ルト動作をオーバーライドします。AutoEnableIO ボリューム属性を有効にすると、ボリュームとイ
ンスタンス間の I/O が再び自動的に有効になり、ボリュームのステータスチェックに合格します。ま
た、ボリュームが潜在的に不整合な状態であること、ただしそのボリュームの I/O が自動的に有効に
なったことを伝えるイベントも表示されます。このイベントが発生した場合は、ボリュームの整合性を
チェックし、必要に応じて置き換えます。詳細については、「ボリュームイベントのモニタリン
グ (p. 686)」を参照してください。
このセクションでは、Amazon EC2 コンソール、コマンドラインインターフェイス、または API を使
用して、ボリュームの AutoEnableIO 属性を表示および変更する方法について説明します。
コンソールでボリュームの AutoEnableIO 属性を表示するには
1.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
2.
3.
ナビゲーションペインの [Volumes] をクリックします。
ボリュームを選択します。
4.
5.
下部のペインで、[Status Checks] タブをクリックします。
[Status Checks] タブで、[Auto-Enable IO] にボリュームの現在の設定が Enabled または Disabled
と表示されます。
690
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
ボリュームの AutoEnableIO 属性を変更するには
1.
2.
3.
4.
5.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインの [Volumes] をクリックします。
ボリュームを選択します。
[Volumes] ページの一番上で、[Actions] をクリックします。
Change Auto-Enable IO Setting をクリックします。
6.
[Change Auto-Enable IO Setting] ダイアログオックスで [Auto-Enable Volume IO] オプションを選
択して、障害のあるボリュームの I/O を自動的に有効にします。この機能を無効にするには、オプ
ションをオフにします。
7.
[Save] をクリックします。
または、前の手順のステップ 4~6 を実行する代わりに、[Status Checks] タブに移動し、[Edit] をクリッ
クします。
コマンドラインを使ってボリュームの AutoEnableIO 属性を表示または変更するには
Amazon EBS ボリュームの AutoEnableIO 属性を表示するには、次のコマンドのいずれかを使用でき
ます。これらのコマンドラインインターフェイスの詳細については、「Amazon EC2 へのアクセ
ス (p. 3)」を参照してください。
691
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
• describe-volume-attribute(AWS CLI)
• ec2-describe-volume-attribute(Amazon EC2 CLI)
• Get-EC2VolumeAttribute(AWS Tools for Windows PowerShell)
ボリュームの AutoEnableIO 属性を変更するには、次のコマンドのいずれかを使用できます。
• modify-volume-attribute(AWS CLI)
• ec2-modify-volume-attribute(Amazon EC2 CLI)
• Edit-EC2VolumeAttribute(AWS Tools for Windows PowerShell)
インスタンスからの Amazon EBS ボリュームのデタッチ
Abstract
インスタンスから Amazon EBS ボリュームを明示的にデタッチするか、インスタンスを終了します。
インスタンスから Amazon EBS ボリュームをデタッチするには、明示的にデタッチするか、インスタ
ンスを終了します。ただし、ボリュームがアタッチされているインスタンスが実行中である場合は、デ
タッチする前に、(インスタンスから)ボリュームをアンマウントする必要があります。アンマウント
せずにデタッチすると、ボリュームがビジー状態のままになり、そのファイルシステムまたは格納され
ているデータが破損する可能性もあります。
EBS ボリュームがインスタンスのルートデバイスである場合、ボリュームをデタッチする前に、イン
スタンスを停止する必要があります。
AWS Marketplace 製品コードのボリュームがインスタンスからからデタッチされている場合、製品コー
ドはインスタンスには関連付けられません。
Important
ボリュームのアタッチを解除した後でも、ストレージ量が無料利用枠の上限を超えている限
り、料金が発生します。不要な料金の発生を防ぐために、ボリュームを削除する必要がありま
す。詳細については、「Amazon EBS ボリュームの削除 (p. 693)」を参照してください。
この例では、ボリュームをアンマウントし、インスタンスから明示的にデタッチします。この操作は、
インスタンスを終了するときや、ボリュームを別のインスタンスにアタッチするときに便利です。ボ
リュームがインスタンスにアタッチされていないことを確認する方法については、「ボリューム情報を
表示する (p. 681)」を参照してください。
(アンマウントせずに)デタッチしたボリュームを再アタッチすることはできますが、同じマウントポ
イントを取得できないことがあり、デタッチされたときにボリュームへの書き込みが進行中だった場
合、ボリューム上のデータが同期しない可能性があります。
コンソールを使用して、EBS ボリュームをデタッチするには
1.
最初に、次のコマンドを使用して /dev/sdh デバイスをアンマウントします。
[ec2-user ~]$ umount -d /dev/sdh
2.
3.
4.
Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Volumes] をクリックします。
ボリュームを選択し、[Detach Volume] をクリックします。
5.
確認ダイアログボックスで、[Yes, Detach] をクリックします。
692
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
コマンドラインを使用してインスタンスから EBS ボリュームをデタッチするには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• detach-volume(AWS CLI)
• ec2-detach-volume(Amazon EC2 CLI)
• Dismount-EC2Volume(AWS Tools for Windows PowerShell)
トラブルシューティング
ボリュームの状態がデタッチ状態のまま変わらない場合は、[Force Detach] をクリックして、強制的に
アタッチ解除することもできます。デタッチを強制的に行うと、データの損失やファイルシステムの破
損につながる可能性があります。障害が発生したインスタンスからボリュームをアタッチ解除するため
の最後の手段として、またはボリュームを削除するためにデタッチする場合のみ、このオプションを使
用してください。インスタンスは、ファイルシステムキャッシュやファイルシステムメタデータをフ
ラッシュする機会を失います。このオプションを使用する場合は、ファイルシステムのチェックと修復
の手順を手動で実行する必要があります。
数分間で複数回、ボリュームのデタッチを強制実行しても、デタッチ状態のままの場合、Amazon EC2
forum にヘルプの要請を投稿できます。迅速に解決できるようにするため、ボリューム ID と、これま
でに実行した手順を記述してください。
Amazon EBS ボリュームの削除
Abstract
ボリュームが不要になった場合は、Amazon EBS ボリュームを削除します。
Amazon EBS ボリュームが不要になったら、それを削除することができます。削除後、ボリュームに
含まれるデータは消去され、ボリューム自体はどのインスタンスにもアタッチできなくなります。ただ
し、削除前にボリュームのスナップショットを保存できるので、それを使用すれば後でボリュームを再
作成できます。
コンソールを使用して EBS ボリュームを削除するには
1.
2.
3.
Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Volumes] をクリックします。
ボリュームを選択し、[Delete Volume] をクリックします。
4.
確認ダイアログボックスで、[Yes, Delete] をクリックします。
コマンドラインを使用して、EBS ボリュームを削除するには
次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、
Amazon EC2 へのアクセス (p. 3) を参照してください。
• delete-volume(AWS CLI)
• ec2-delete-volume(Amazon EC2 CLI)
• Remove-EC2Volume(AWS Tools for Windows PowerShell)
693
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
Linux で EBS ボリュームのストレージ領域を拡張する
Abstract
ボリュームのデータを失うことなく、既存のボリュームのストレージスペースを拡大します。
ボリュームのデータを失うことなく、既存の EBS ボリュームのストレージスペースを拡大できます。
これを行うには、データを大きいボリュームに移行し、ボリュームのファイルシステムを拡張して新た
に使用可能になったスペースが認識されるようにします。新しいボリュームが正常に動作していること
を確認したら、古いボリュームを削除できます。
タスク
• 拡大したボリュームにデータを移行する (p. 694)
• Linux ファイルシステムを拡張する (p. 696)
• 古いボリュームを削除する (p. 698)
Windows インスタンスのボリュームのストレージ領域を拡大する必要がある場合は、『Microsoft
Windows インスタンスの Amazon EC2 ユーザーガイド』の「ボリュームのストレージ領域を拡張す
る」を参照してください。
大きなボリュームを作成する場合、追加ストレージの料金が課金されます。詳細については、「Amazon
EC2 料金表」ページの「Amazon Elastic Block Store」セクションを参照してください。
拡大したボリュームにデータを移行する
拡大したボリュームにデータを移行するには
1.
2.
3.
4.
https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。
ナビゲーションペインで [Instances] を選択し、拡大するボリュームを持つインスタンスを特定し
ます。
インスタンス ID とアベイラビリティーゾーンをメモしておきます。この情報は、このトピックで
後述する、新しいボリュームのインスタンスへのアタッチ時に使用します。
インスタンスの [Shutdown Behavior] 値が [Terminate] ではなく、[Stop] に設定されていることを
確認します。
a.
b.
c.
インスタンスを選択します。
コンテキストメニュー(右クリック)から [Instance Settings] を選択し、[Change Shutdown
Behavior] を選択します。
[Shutdown behavior] を [Terminate] に設定した場合、[Stop] を選択し、[Apply] を選択します。
[Shutdown Behavior] が既に [Stop] に設定されている場合は、[Cancel] を選択します。
5.
インスタンスを停止します。インスタンスの停止方法の詳細については、「インスタンスの停止と
起動 (p. 280)」を参照してください。
Warning
インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されます。
したがって、インスタンスストアボリューム上に維持したいデータがある場合は、必ず永
続的ストレージにバックアップしてください。
6.
拡張するボリュームのスナップショットを作成します。
a.
ナビゲーションペインで [Volumes] を選択し、拡大するボリュームを特定します。
694
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
b.
c.
7.
コンテキストメニュー(右クリック)で拡大するボリュームを選択し、[Create Snapshot] を
選択します。
[Name] および [Description] フィールドに情報を入力し、[Yes, Create] を選択します。
スナップショットから新しいボリュームを作成します。
a.
ナビゲーションペインで、[Snapshots] を選択します。
b.
先ほど作成したスナップショットのステータスが [completed] に設定されたら、スナップショッ
トを選択し、コンテキストメニュー(右クリック)で [Create Volume] を選択します。
c.
[Create Volume] ダイアログボックスで、目的のボリュームタイプを選択し、新しいボリュー
ムサイズを入力します。また、インスタンスのアベイラビリティーゾーンに合わせて [Availability
Zone] も設定する必要があります。[Yes, Create] を選択します。
Important
インスタンスと一致した [Availability Zone] を設定しなかった場合、新しいボリューム
をインスタンスにアタッチできません。
8.
古いボリュームをデタッチします。
a.
ナビゲーションペインで [Volumes] を選択し、リストから古いボリュームを選択します。
[Attachment Information] 列のデバイス名を書き留めます。
i-xxxxxxxx (instance_name):device_name
b.
c.
9.
コンテキストメニュー(右クリック)から古いボリュームを選択し、[Detach Volume] を選択
します。
[Detach Volume] ダイアログボックスで、[Yes, Force] を選択します。ボリュームのデタッチ
には数分かかることがあります。
新たに拡張したボリュームをアタッチします。
a.
b.
c.
d.
ナビゲーションペインの [Volumes] を選択します。
コンテキストメニュー(右クリック)から新しいボリュームを選択し、[Attach Volume] を選
択します。
[Instance] フィールドにインスタンスの名前または ID を入力し、インスタンスを選択します。
Step 8.a (p. 695) から取得した同じデバイス名を入力して [Yes, Attach] を選択します。ボリュー
ムを、デタッチされたロケーションに正確に再アタッチする必要があることに注意してくださ
い (例: /dev/sda1)。
10. インスタンスを再起動します。
a.
b.
ナビゲーションペインで [Instances] を選択し、再起動するインスタンスを選択します。
コンテキストメニュー(右クリック)のインスタンスの [Instance State] を選択し、[Start] を
選択します。
c.
[Start Instances] ダイアログボックスで、[はい、開始します] を選択します。インスタンスが
起動に失敗し、拡張したボリュームがルートボリュームの場合、元のボリュームと同じデバイ
ス名 (/dev/sda1 など) を使用して、拡張したボリュームをアタッチしていることを確認して
ください。
695
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
Important
停止時にパブリック IP アドレスおよび Elastic IP アドレスを保持するインスタンス
は、VPC で実行中のインスタンスに限られます。インスタンスが EC2-Classic で実行
されている場合は、インスタンスを停止すると EIP アドレスの関連付けが解除される
ため、インスタンスを再起動してから EIP を再度関連付ける必要があります。詳細に
ついては、「Elastic IP アドレス (p. 619)」を参照してください。インスタンスが
EC2-Classic で実行されているが、EIP を使用していない場合は、再起動後に接続す
るために、インスタンスの新しいパブリック DNS 名を取得する必要があります。
インスタンスが起動したら、ファイルシステムのサイズを確認して、拡大したボリュームスペースをイ
ンスタンスが認識しているかどうか表示できます。Linux では、df -h コマンドを使用してファイルシス
テムのサイズを確認します。
[ec2-user ~]$ df -h
Filesystem
/dev/xvda1
tmpfs
Size
7.9G
1.9G
Used Avail Use% Mounted on
943M 6.9G 12% /
0 1.9G
0% /dev/shm
新しく拡張したボリュームがサイズに反映されていない場合、デバイスのファイルシステムを拡張し
て、インスタンスで新しいスペースを使用できるようにする必要があります。詳細については、「Linux
ファイルシステムを拡張する (p. 696)」を参照してください。
Linux ファイルシステムを拡張する
Linux では、ファイルシステム固有のコマンドを使用して、ファイルシステムのサイズを、新しいボ
リュームの拡大したサイズに変更します。このコマンドは、拡張するボリュームがルートボリュームで
ある場合にも機能します。ext2、ext3、および ext4 ファイルシステムの場合、このコマンドは
resize2fs です。XFS ファイルシステムの場合、このコマンドは xfs_growfs です。その他のファイルシ
ステムの場合、ファイルシステムの拡張については、これらのファイルシステムに関する特定のドキュ
メントを参照してください。
使用しているファイルシステムが不明の場合は、file -s コマンドを使用して、デバイスのファイルシス
テムデータをリストできます。次の例は、Linux ext4 ファイルシステムと SGI XFS ファイルシステム
を示しています。
[ec2-user ~]$ sudo file -s /dev/xvd*
/dev/xvda1: Linux rev 1.0 ext4 filesystem data ...
/dev/xvdf: SGI XFS filesystem data ...
Note
拡張するボリュームがパーティション分割されている場合は、ファイルシステムのサイズを変
更する前に、パーティションのサイズを拡大する必要があります。詳細については、「Linux
パーティションを拡張する (p. 698)」を参照してください。
ボリュームのパーティションのサイズ変更が必要かどうかを確認するには
•
インスタンスにアタッチされたブロックデバイスを一覧表示するには、lsblk コマンドを使用しま
す。以下の例は、/dev/xvda、/dev/xvdb、/dev/xvdf という 3 つのボリュームを示していま
す。
696
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
[ec2-user ~]$ lsblk
NAME
MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda
202:0
0 30G 0 disk
xvda1 202:1
0 30G 0 part /
xvdb
202:16
0 30G 0 disk /mnt
xvdf
202:80
0 35G 0 disk
xvdf1 202:81
0
8G 0 part
ルートボリュームである /dev/xvda1 は、/dev/xvda のパーティションです。どちらもサイズが
30 GiB であることに注意してください。この場合、パーティションはデバイスの領域をすべて占
有するので、サイズを変更する必要はありません。
ボリューム /dev/xvdb は、パーティション分割されていないので、サイズを変更する必要はあり
ません。
ただし、/dev/xvdf1 は、35 GiB のデバイスに含まれる 8 GiB のパーティションであり、このボ
リュームには他にパーティションがありません。この場合、ボリュームの残りの領域を使用するに
は、パーティションをサイズ変更する必要があります。詳細については、「Linux パーティション
を拡張する (p. 698)」を参照してください。パーティションのサイズを変更した後、次の手順に従っ
て、パーティションのすべての領域を占有するようにファイルシステムを拡張できます。
Linux ファイルシステムを拡張するには
1.
2.
SSH クライアントを使用して Linux インスタンスにログインします。Linux インスタンスへの接続
の詳細については、「SSH を使用した Linux インスタンスへの接続 (p. 266)」を参照してください。
df -h コマンドを使用して、既存のファイルシステムディスク領域の使用状況をレポートします。
この例では、/dev/xvda1 デバイスは 70 GiB に既に拡張されていますが、ext4 ファイルシステ
ムは単に元の 8 GiB のサイズとして表示されています。また、/dev/xvdf デバイスは 100 GiB に
拡張されていますが、XFS ファイルシステムは単に元の 1 GiB のサイズとして表示されています。
[ec2-user ~]$ df -h
Filesystem
/dev/xvda1
tmpfs
/dev/xvdf
3.
Size
7.9G
1.9G
1014M
Used Avail Use% Mounted on
943M 6.9G 12% /
0 1.9G
0% /dev/shm
33M 982M
4% /mnt
ファイルシステム固有のコマンドを使用して、ファイルシステムのサイズをボリュームの新しいサ
イズに変更します。Linux ext2、ext3、または ext4 ファイルシステムの場合は、次のコマンド
を使用して、拡張するデバイスの名前に置き換えます。
[ec2-user ~]$ sudo resize2fs /dev/xvda1
resize2fs 1.42.3 (14-May-2012)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 5
Performing an on-line resize of /dev/xvda1 to 18350080 (4k) blocks.
The filesystem on /dev/xvda1 is now 18350080 blocks long.
XFS ファイルシステムの場合は、次のコマンドを使用して、ファイルシステムのマウントポイン
トに置き換える必要があります(XFS ファイルシステムのサイズを変更するには、マウントする
必要があります)。
[ec2-user ~]$ sudo xfs_growfs -d /mnt
meta-data=/dev/xvdf
isize=256
=
sectsz=512
697
agcount=4, agsize=65536 blks
attr=2
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
data
=
bsize=4096
=
sunit=0
naming
=version 2
bsize=4096
log
=internal
bsize=4096
=
sectsz=512
realtime =none
extsz=4096
data blocks changed from 262144 to 26214400
blocks=262144, imaxpct=25
swidth=0 blks
ascii-ci=0
blocks=2560, version=2
sunit=0 blks, lazy-count=1
blocks=0, rtextents=0
Note
xfsctl failed: Cannot allocate memory エラーを受け取った場合、インスタンス
の Linux カーネルの更新が必要になることがあります。詳細については、特定のオペレー
ティングシステムのドキュメントを参照してください。
"The filesystem is already nnnnnnn blocks long. Nothing to do!" という
エラーが発生した場合は、「Linux パーティションを拡張する (p. 698)」を参照してくださ
い。
4.
df -h コマンドを使用して、既存のファイルシステムディスク領域の使用状況をレポートします。
この時点で、ext4 ファイルシステムについては 70 GiB、XFS ファイルシステムについては 100
GiB の完全な容量が示されます。
# df -h
Filesystem
/dev/xvda1
tmpfs
/dev/xvdf
Size
69G
1.9G
100G
Used Avail Use% Mounted on
951M
68G
2% /
0 1.9G
0% /dev/shm
45M 100G
1% /mnt
古いボリュームを削除する
インスタンスで新しいボリュームをアタッチし、拡張したら、必要なくなった古いボリュームを削除で
きます。
古いボリュームを削除するには
1.
Amazon EC2 コンソールのナビゲーションペインで [Volumes] を選択し、削除するボリュームを
選択します。
2.
コンテキストメニュー(右クリック)から [Delete Volume] を選択します。
3.
[Delete Volume] ダイアログボックスで、[Yes, Delete] を選択します。
Linux パーティションを拡張する
Abstract
ボリュームのデータを失うことなく、既存のボリュームの Linux パーティションを拡張します。
一部の Amazon EC2 ルートボリュームやスナップショットから復元されたボリュームには、ファイル
システムおよびデータを実際に保持するパーティションが含まれています。ボリュームをコンテナと考
えれば、パーティションはボリューム内のもう 1 つのコンテナであり、データはパーティション上に存
在します。ボリュームのサイズを拡大しても、パーティションは拡大されません。拡大したボリューム
を活用するには、パーティションを新しいサイズに拡張する必要があります。
698
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
Note
スナップショットから復元したすべてのボリュームがパーティション分割されるわけではない
ので、この手順は、お使いのボリュームに適用されないことがあります。ボリュームのファイ
ルシステムのサイズを使用できる最大の容量に変更する必要があります。サイズを変更する必
要があるパーティションがボリューム内にあるかどうか不明な場合は、「ボリュームのパー
ティションのサイズ変更が必要かどうかを確認するには (p. 696)」で詳細を参照してください。
拡張するパーティションがルートパーティションではない場合、単にこのパーティションをアンマウン
トし、インスタンス自体からパーティションのサイズを変更することができます。サイズを変更する必
要のあるパーティションがインスタンスのルートパーティションである場合、実行中のインスタンスの
ルートパーティションをアンマウントすることはできないため、プロセスはより複雑になります。セカ
ンダリインスタンスと呼ばれる別のインスタンスに対して、以下の手順を実行する必要があります。
Important
以下の手順は Amazon Linux に関する説明であり、Amazon Linux でテスト済みです。その他
のツールセットやツールバージョンによるディストリビューションは、異なる動作をする場合
があります。
トピック
• 拡張するために Linux ルートパーティションを準備する (p. 699)
• parted を使用して Linux パーティションを拡張する (p. 700)
• gdisk を使用して Linux パーティションを拡張する (p. 704)
• 拡張したパーティションを元のインスタンスに戻す (p. 708)
拡張するために Linux ルートパーティションを準備する
インスタンスのルートパーティションを拡張するために、次のいくつかのステップを実行する必要があ
ります。拡張する必要があるパーティションがルートパーティションではない場合、この手順を行う必
要はありません。
拡張するために Linux ルートパーティションを準備するには
1.
プライマリインスタンスを実行している場合は停止します。実行中のインスタンスでは、これ以降
の手順を実行できません。詳細については、「インスタンスの停止と起動 (p. 278)」を参照してく
ださい。
2.
ボリュームのスナップショットを取得します。以下の手順では、データが容易に破損または消失す
る可能性があります。新しいスナップショットがある場合、失敗してもいつでもやり直すことがで
き、データは安全に保たれます。詳細については、「Amazon EBS スナップショットの作成 (p. 710)」
を参照してください。
ボリュームがアタッチされたデバイス名を記録します。この値は、インスタンスの詳細ペインの
[Root device] フィールドで確認できます。通常、この値は /dev/sda1 または /dev/xvda です。
3.
4.
ボリュームをプライマリインスタンスからデタッチします。詳細については、「インスタンスから
の Amazon EBS ボリュームのデタッチ (p. 692)」を参照してください。
5.
ボリュームを、同じアベイラビリティーゾーン内の別の(セカンダリ)インスタンスにアタッチし
ます。詳細については、「インスタンスへの Amazon EBS ボリュームのアタッチ (p. 676)」を参照
してください。EBS ボリュームが暗号化されている場合、Amazon EBS 暗号化 をサポートするセ
カンダリインスタンスを使用する必要があります。それ以外の場合、この手順では t2.micro イ
ンスタンスを使用します。詳細については、「サポートされるインスタンスタイプ (p. 720)」を参
照してください。セカンダリ インスタンスを既に持っている場合、それを起動する必要がありま
す。詳細については、「インスタンスの作成 (p. 255)」を参照してください。
699
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
Important
セカンダリインスタンスは、ボリュームのアタッチ時に実行されている必要があります。
複数のルートボリュームがアタッチされている間は、セカンダリインスタンスを再起動し
ないでください。複数のルートボリュームがアタッチされたインスタンスを起動すると、
インスタンスが間違ったボリュームで起動する可能性があります。
6.
SSH を使用してセカンダリインスタンスにログインします。詳細については、「Linux インスタン
スへの接続 (p. 266)」を参照してください。次の手順に進みます。
parted を使用して Linux パーティションを拡張する
parted ユーティリティは、ほとんどの Linux ディストリビューションで使用できるパーティション編集
ツールです。MBR パーティションテーブルと GPT パーティションテーブルの両方を作成し編集するこ
とができます。parted の一部のバージョン(バージョン 2.1 より前)は GPT パーティションテーブル
のサポートが限定的で、parted のそのバージョンを使用してブートボリュームを変更した場合、ブート
時に問題が発生することがあります。parted のバージョンは、parted --version コマンドを使用し
て確認できます。
GPT パーティション形式のデバイスにあるパーティションを拡張する場合は、代わりに gdisk ユーティ
リティを使用してください。ボリュームで使用されているディスクラベルタイプが不明な場合は、sudo
fdisk -l コマンドを使用して確認できます。詳細については、「gdisk を使用して Linux パーティション
を拡張するには (p. 704)」を参照してください。
parted を使用して Linux パーティションを拡張するには
拡張する必要のあるパーティションがルートパーティションである場合は、まず「拡張するために Linux
ルートパーティションを準備するには (p. 699)」の手順を実行してください。
1.
拡張するパーティションを含むデバイスを特定します。lsblk コマンドを使用して、インスタンス
にアタッチされたすべてのデバイスおよびパーティションをリストします。
[ec2-user ~]$ lsblk
NAME
MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf
202:80
0 100G 0 disk
xvdf1 202:81
0
8G 0 part /mnt
xvda1
202:1
0
30G 0 disk /
この例では、xvdf デバイスに 100 GiB の使用可能なストレージがあり、8 GiB のパーティション
が含まれています。
2.
パーティションがマウントされている場合はアンマウントします。lsblk コマンドから MOUNTPOINT
の値を指定して、umount コマンドを実行します。この例では、パーティションの MOUNTPOINT 値
は /mnt です。
[ec2-user ~]$ sudo umount /mnt
3.
4.
ボリュームのスナップショットを取得します(前の手順で取得しなかった場合)。以下の手順で
は、データが容易に破損または消失する可能性があります。新しいスナップショットがある場合、
失敗してもいつでもやり直すことができ、データは安全に保たれます。詳細については、「Amazon
EBS スナップショットの作成 (p. 710)」を参照してください。
デバイス(デバイス上のパーティションではなく)に対して parted コマンドを実行します。/dev/
プレフィックスを、lsblk が出力する名前に必ず追加してください。
700
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
[ec2-user ~]$ sudo parted /dev/xvdf
GNU Parted 2.1
Using /dev/xvdf
Welcome to GNU Parted! Type 'help' to view a list of commands.
5.
parted 測定単位をセクターに変更します。
(parted) unit s
6.
print コマンドを実行して、デバイス上のパーティションをリストします。特定のパーティション
テーブルタイプでは、拡大したボリュームのサイズに合わせてパーティションテーブルを修正する
ように要求される場合があります。既存のパーティションテーブルの修正に関する質問にはすべて
「Ignore」で答えます。新しいテーブルは後で作成します。
(parted) print
a.
次のメッセージが表示された場合は、バックアップ GPT の場所が変更されないように、
「Ignore」と入力します。
Error: The backup GPT table is not at the end of the disk, as it should
be. This might mean that another operating
system believes the disk is smaller. Fix, by moving the backup to the
end (and removing the old backup)?
Fix/Ignore/Cancel? Ignore
b.
次のメッセージが表示された場合は、ドライブ上の容量を維持するために、ここでも「Ignore」
と入力します。
Warning: Not all of the space available to /dev/xvdf appears to be used,
you can fix the GPT to use all of the
space (an extra 46137344 blocks) or continue with the current setting?
Fix/Ignore? Ignore
7.
ディスクの合計サイズ、パーティションテーブルタイプ、パーティションの番号、パーティション
の開始点、フラグ(boot など)について、出力を調べます。gpt パーティションテーブルの場合
は、パーティションの名前に留意します。msdos パーティションテーブルの場合は、Type フィー
ルド(primary または extended)に留意します。これらの値は、この後のステップで使用しま
す。
以下に、gpt パーティションテーブルの例を示します。
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvdf: 209715200s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start
128
2048s
bios_grub
1
4096s
End
4095s
Size
2048s
16777182s
16773087s
701
File system
ext4
Name
Flags
BIOS Boot Partition
Linux
Amazon Elastic Compute Cloud Linux インスタンス用ユー
ザーガイド
EBS ボリューム
以下に、msdos パーティションテーブルの例を示します。
Model: Xen Virtual Block Device (xvd)
Di