AWS認定資格の問題を実際に構築してみる

記事タイトルとURLをコピーする

はじめに

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を作成します。

f:id:swx-tani:20211229181600p:plain

作成したインスタンスを選択し、[アクション] - [イメージとテンプレート] - [イメージを作成]でAMIを作成します。

AMIをバージニア北部リージョンにコピーします

ナビゲーションペインから [イメージ] - [AMI] を選択します。
AMIを選択し、[AMIをコピー]します。
送信先リージョンをバージニア北部にしてコピーします。

f:id:swx-tani:20211229182914p:plain

インポートキーペアを利用して、PEMキーを別リージョンに移行

東京リージョンで作成したキーペア(test-ami.pem)をバージニア北部リージョンでも利用できるようにインポートします。

  1. バージニア北部リージョンに移動します。

  2. EC2ナビゲーションペインから [ネットワーク & セキュリティ] - [キーペア] を選択します。 f:id:swx-tani:20211229184745p:plain

  3. キーペアを選択して、アクションから[キーペアをインポート]を押下します。 f:id:swx-tani:20220119160129p:plain

公開鍵の場合
[キーペアファイル]の閲覧から公開鍵(.pem.pub)ファイルを選択します。

秘密鍵の場合
秘密鍵(.pem)から公開鍵を取得します。

$ ssh-keygen -y -f test-ami.pem

内容をコピーしてテキストボックスに貼り付けます。

バージニア北部リージョンでAMIからインスタンスを起動します

AMIを選択、イメージからインスタンスを起動します。

Name:test-ami-virginia
既存キーペア:test-ami

f:id:swx-tani:20220119160438p:plain   f:id:swx-tani:20220119172257p:plain

EC2にSSH接続してみる

東京リージョンで作成したキーペア(test-ami.pem)を使ってtest-ami-virginiaインスタンス(バージニア北部リージョン)にSSH接続できるかやってみます。

$ ssh -i "test-ami.pem" ec2-user@ec2-グローバルIP.compute-1.amazonaws.com

f:id:swx-tani:20220119164357p:plain

できましたね。