AWSのマネジメントコンソール…
AWSでは、実際に手を動かして学ぶワークショップのコンテンツも多数公開されています。
本記事は、それらのうち「アプリケーション移行ワークショップ」を実施した記録です。
このワークショップを通じて、AWSクラウドに移行する方法のうち、以下のものを学ぶことができます。
今回は全5回のうちの第1回として、ワークショップ環境の準備を行います。
このワークショップのドキュメントは、リリース後に更新が行われていますが、本記事執筆時点では日本語版が更新されていないため、英語版を参照します。
環境を作成する際の設定値はワークショップのドキュメント記載の値を指定しており、また、明記しない場合はAWSマネジメントコンソールのデフォルト値を使用しています。
ワークショップのマニュアルはAWSマネジメントコンソールのスクリーンショットを用いて操作が説明されています。
本記事では、AWSマネジメントコンソールの操作や設定値はテキストで記載するにとどめ、かわりに「今何を作っているのか」といった情報などを載せるようにしたいと思います。
今回の作業では、自身のWindows 10のクライアントPCで、AWS CLIの実行や、AWSマネジメントコンソールの操作を行います。
使用するソフトウェアのインストール方法は述べません。
ご参考までにクライアントPCインストール済のソフトウェアは以下のとおりです。
今回クライアントPCで使用するソフトウェア
> git --version git version 2.33.0.windows.2 > aws --version aws-cli/2.3.5 Python/3.8.8 Windows/10 exe/AMD64 prompt/off
マニュアル:https://application-migration-with-aws.workshop.aws/en/intro.html
この章ではAWS CloudFormationを用いて、移行元想定の環境と、移行先のネットワーク部分をAWSへ作成します。
ワークショップで公開されているAWS CloudFormationテンプレートをデプロイし、環境を作成します。
クライアントPCで以下のコマンドを実行します。
AWS CloudFormationテンプレートのデプロイ
## GitHubからワークショップのリソースをcloneする。
> git clone https://github.com/aws-samples/application-migration-with-aws-workshop.git
## AWS CloudFormationテンプレートのあるディレクトリへ移動する。
> cd application-migration-with-aws-workshop/resources/
## AWS CloudFormationテンプレートを、ApplicationMigrationWorkshopというスタック名でデプロイする。
> aws cloudformation deploy --template-file ./cloudformation.yml --stack-name ApplicationMigrationWorkshop `
--region us-west-2 --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND
作成作業自体は以上です。
AWS CloudFormationの出力結果や、作成環境について見ていきます。
使用したAWS CloudFormationテンプレートは作成した環境の情報を出力するように定義されており、 出力された値は今後の手順で使用します。
出力内容については記事の最後に説明することとし、ここでは出力された情報をAWS CLIやAWSマネジメントコンソールで確認します。
クライアントPCから、AWS CLIでAWS CloudFormationのApplicationMigrationWorkshopスタックの出力を確認します。
コマンドは以下のとおりです。
> aws cloudformation describe-stacks --stack-name ApplicationMigrationWorkshop --region us-west-2 --query 'Stacks[*].Outputs'
[
[
{
"OutputKey": "DBServerUsername",
"OutputValue": "ubuntu",
"Description": "Username for database server"
},
{
"OutputKey": "WebServerUsername",
"OutputValue": "ubuntu",
"Description": "Username for webserver"
},
{
...(略)...
AWSマネジメントコンソールで、AWS CloudFormationのApplicationMigrationWorkshopスタックの出力を確認します。
WebブラウザでAWSマネジメントコンソールにアクセスします。
ワークショップのドキュメントに記載されている図に少し補足を加えたものを用意しました。
作成した移行元(ソース)環境は以下のようなイメージです。
「AWS CloudFormationの出力確認」で参照した「WebServerDNSName」の値へWebブラウザでアクセスすると、移行元想定として用意されたECサイトを確認できます。
こちらもワークショップのドキュメントに記載されている図に少し補足を加えたものを用意しました。
作成した移行先(ターゲット)環境は以下のようになっています。
作成したAWSリソースのうち、次回以降の手順で参照するものを簡単に説明します。
| 種類 | 作成されるリソースの名前 | 説明 |
|---|---|---|
| EC2インスタンス | Source-Webserver | 移行元(ソース)のウェブサーバです。 AWS Application Migration Service(AWS MGN)を用いて、移行先環境のAmazon EC2に移行します |
| Source-DBServer | 移行元(ソース)のデータベースサーバです。 AWS Database Migration Service(AWS DMS)を用いて、移行先環境のAmazon RDSに移行します |
|
| VPC | TargetVPC | 移行先(ターゲット)環境のVPCです |
| サブネット | TargetVPC-public-a TargetVPC-public-b |
移行先(ターゲット)環境のパブリックサブネットです。 AWS DMSやAWS MGN、移行後のウェブサーバ(Amazon EC2)、コンテナ用のロードバランサーが使用します |
| TargetVPC-private-a-web TargetVPC-private-b-web |
移行先(ターゲット)環境のプライベートサブネットです。 Amazon Elastic Container Service(Amazon ECS)のタスクが使用します |
|
| TargetVPC-private-a-db TargetVPC-private-b-db |
移行先(ターゲット)環境のプライベートサブネットです。 移行後のデータベース(Amazon RDS)が使用します |
「AWS CloudFormationの出力確認」で確認した、ApplicationMigrationWorkshopスタックの「出力」について簡単に説明します。
| 説明 | |
|---|---|
| AppMigServiceAccessKey | アクセスキーIDです。 移行元(ソース)のウェブサーバへApplication Migration Serviceのレプリケーションエージェントをインストールする際に使用します |
| AppMigServiceSecretAccessKey | シークレットアクセスキーです。 移行元(ソース)のウェブサーバへApplication Migration Serviceのレプリケーションエージェントをインストールする際に使用します |
| CloudEndureUserAccessKey | アクセスキーIDです。 CloudEndure Migrationに設定するものですが、今回はApplication Migration Serviceを用いるため使用しません |
| CloudEndureUserSecretAccessKey | シークレットアクセスキーです。 CloudEndure Migrationに設定するものですが、今回はApplication Migration Serviceを用いるため使用しません |
| DBServerDNSName | 移行元(ソース)のデータベースサーバ(Source-DBServer)のDNS名です。 ログインで用います |
| DBServerUsername | 移行元(ソース)のデータベースサーバ(Source-DBServer)のユーザ名です。 ログインで用います |
| SSHKeyURL | 移行元のデータベースサーバ、および移行元・移行先のウェブサーバのSSH Keyです。 ログインで用います |
| WebServerDNSName | 移行元(ソース)のウェブサーバ(Source-Webserver)のDNS名です。 ログインで用います |
| WebServerUsername | 移行元のウェブサーバ(Source-Webserver)、および移行先のウェブサーバ(Webserver)のユーザ名です。 ログインで用います |