はじめに
PE部の谷です。 現在、AWS 認定SysOpsアドミニストレーター アソシエイト資格取得を目指して勉強しています。 そこで、問題の構成を実際に再現して、理解を深めようと思います。
問題
ある会社が運用するSNSサービスは東京リージョンに約100個のEC2インスタンスがデプロイされている大規模な構成を有しています。 現在、可用性を高めるために複数のリージョンにデプロイする対応を実施しているところです。 その際に同社の秘密鍵管理の規定に応じて、複数のキーペアをリージョンごとに利用するのではなく、東京リージョンの既存キーペアを他リージョンでも再利用することが必要となります。
これらの要件を考慮して、最適なソリューションを選択してください。
答え
AWSマネジメントコンソールからインポートキーペアを利用して、利用するPEMキーを別リージョンに移行することで、既存キーペアを利用できる。
前提知識
ボリューム(EBS)
EC2インスタンスのハードディスクとして使う場所のこと。
スナップショット
ボリューム(EBS)のバックアップのこと。
AMI
スナップショット+インスタンスの構成情報(メタデータ)を記録したEC2インスタンスの元となるテンプレートのこと。
AMI からインスタンスを起動できます。
EBS スナップショットのリージョン間コピー
スナップショットは、1 つの AWS リージョンから別のリージョンへ、または同じリージョンにコピーできます。
この際、キーペアは複製されません。(キーペアはアカウント内共有ではなくリージョン別のため。)
AMIを新しいリージョンにコピーしてEC2インスタンスを作成すると、基本的には新しいリージョンで新規キーペアを作成して使うことになります。
キーペア
パブリックキー(公開鍵)とプライベートキー(秘密鍵)のセット。
公開鍵で暗号化した情報は秘密鍵でのみ復号できる。
AWSの同一リージョン内では共通の公開鍵・秘密鍵を使用できますが、別リージョンのは使用することができません。(別ユーザーのも使えません。)
インポートキーペア
公開鍵を外部からインポートする事により、公開鍵・秘密鍵のセットをリージョンまたぎ・アカウントまたぎで使うことができます。
構築
東京リージョンとバージニア北部リージョンでスナップショットのリージョン間コピーを行ないます。
東京リージョンでEC2からAMIを作成します
Name:test-ami-tokyo
新規キーペア:test-ami.pem
他はデフォルトのままEC2を作成します。
作成したインスタンスを選択し、[アクション] - [イメージとテンプレート] - [イメージを作成]でAMIを作成します。
AMIをバージニア北部リージョンにコピーします
ナビゲーションペインから [イメージ] - [AMI] を選択します。
AMIを選択し、[AMIをコピー]します。
送信先リージョンをバージニア北部にしてコピーします。
インポートキーペアを利用して、PEMキーを別リージョンに移行
東京リージョンで作成したキーペア(test-ami.pem)をバージニア北部リージョンでも利用できるようにインポートします。
バージニア北部リージョンに移動します。
EC2ナビゲーションペインから [ネットワーク & セキュリティ] - [キーペア] を選択します。
キーペアを選択して、アクションから[キーペアをインポート]を押下します。
公開鍵の場合
[キーペアファイル]の閲覧から公開鍵(.pem.pub)ファイルを選択します。
秘密鍵の場合
秘密鍵(.pem)から公開鍵を取得します。
$ ssh-keygen -y -f test-ami.pem
内容をコピーしてテキストボックスに貼り付けます。
バージニア北部リージョンでAMIからインスタンスを起動します
AMIを選択、イメージからインスタンスを起動します。
Name:test-ami-virginia
既存キーペア:test-ami
EC2にSSH接続してみる
東京リージョンで作成したキーペア(test-ami.pem)を使ってtest-ami-virginiaインスタンス(バージニア北部リージョン)にSSH接続できるかやってみます。
$ ssh -i "test-ami.pem" ec2-user@ec2-グローバルIP.compute-1.amazonaws.com
できましたね。