「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[開発環境]] --[[Azureの場合>#w3b5f47b]] --[[Amazon EC2]] ---[[AWSの評価環境を入手する]] ---AWS上に素早く環境を構築する *目次 [#j73e88e1] #contents *概要 [#h37db14e] 「[[Azure上に素早く環境を構築する>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%E4%B8%8A%E3%81%AB%E7%B4%A0%E6%97%A9%E3%81%8F%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B]]」のAWS版 *詳細 [#iaf9a2dc] 取り敢えず、AWSの新しいVM Import、~ [[ImportImage>#ee7cc0b1]]を使用してみようかと。 **VHDのImportImage [#ee7cc0b1] -取り敢えず、Azure VMのVHDを使ってAWS VMを起動してみようかと。 -「[[VM起動後の開発環境のセットアップ]]」の手順で作成したものを利用したかったが、 --Windows10は、BYOL が必要。 --また、第 2 世代 VMの設定なども、現時点では、良く解らない。 >との事で、Windows Server + Docker Desktop 程度をテストしてみる。 ***[[AWS CLI]]の設定 [#d65f9cdc] -AWS CLIをインストールする。 -[[専用のIAMユーザ(vmimportuser)を作成>AWS CLI#mee40dca]]する。 --IAMユーザを新規作成し、下記のグループ&ポリシを適用。 --IAMユーザのkeyとsecretを取得する。 -keyとsecret, etc. を[[AWS CLIに設定>AWS CLI#n6b78cfa]] -グループ&ポリシの作成ポイント --管理ポリシでも良いのかも知れないが、権限をミニマムに出来ない。 --[[手順の例>#ge5fcf60]]に以下の様なミニマムなポリシ設定例が載っているが、 { "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" ], "Resource": ["arn:aws:s3:::import-to-ec2-vhdbucket","arn:aws:s3:::import-to-ec2-vhdbucket/*"] }, { "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": "*" } ] } --ただ、上記では、CLIで、以下の操作ができない。 ---ロールの作成 → AdministratorAccess管理ポリシを追加 ***VHDの準備と利用 [#g2d07726] -EC2にインポートしたいVMイメージ(ココではVHD)を用意 --AzureでWindows ServerのVMを作成 --RDP接続を既定のポートで有効しておく。 --アカウント情報はメモしておく。 --起動して接続を確認した後、停止する。 --VHDをダウンロードする。~ ...と思ったが、AzureのOS Discは127GiBから縮小できないようなので、~ 別途、評価版のVHDを入手し、Hyper-V上で初期化し、アップロード用VHDを取得した。~ (127GiBをダウンロードしてアップロードするには、数日間掛かってしまう) -VMイメージ(ココではVHD)をアップロードするためのs3のbucket(import-to-ec2-*)を作成 --import-to-ec2-vhdbucketというs3bucketを作成 ---CLI~ >aws s3api create-bucket --bucket import-to-ec2-vhdbucket --region us-east-2 --create-bucket-configuration LocationConstraint=us-east-2 ------------------------------------------------------------------- | CreateBucket | +----------+------------------------------------------------------+ | Location| http://import-to-ec2-vhdbucket.s3.amazonaws.com/ | +----------+------------------------------------------------------+ ---ポータルからも作成可能。 -VHDのアップロードとAMI(Amazon Machine Image)化、 --VHDをimport-to-ec2-vhdbucketにアップロード ---CLI~ >aws s3 cp C:\...\xxxx.vhd s3://import-to-ec2-vhdbucket upload: ..\..\xxxx.vhd to s3://import-to-ec2-vhdbucket/xxxx.vhd >aws s3 ls s3://import-to-ec2-vhdbucket 2020-xx-xx xx:xx:xx 9692336128 xxxx.vhd ---ポータルからもアップロード可能。 --VM Import [[ロール>AWS IAM#z02d8227]]を設定 ---ロール作成リクエスト用のjson(trust-policy.json)を作成する。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] } ※ 「"sts:Externalid": "vmimport"」をしていしているが、~ 自分で直接「sts assume-role」をしてないので、~ --external-idパラメタのベースが何なのか不明と言う。 ---ロール作成リクエストを投げる。 aws iam create-role --role-name vmimport --assume-role-policy-document file://"C:\...\trust-policy.json" ---(ロールへの)ポリシ設定リクエスト用のjson(role-policy.json)を作成する。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::import-to-ec2-vhdbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::import-to-ec2-vhdbucket/*" ] }, { "Effect": "Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource": "*" } ] } ---(サービスが使用する)(ロールへの)ポリシ設定リクエストを投げる。 aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://"C:\...\role-policy.json" --VHDをAMIに変換する。 ---AMI変換リクエスト用のjson(containers.json)を作成する。 [ { "Description": "Windows 20XX VHD", "Format": "vhd", "UserBucket": { "S3Bucket": "import-to-ec2-vhdbucket", "S3Key": "xxxx.vhd" } } ] ---AMI変換リクエストを投げる。 >aws ec2 import-image --cli-input-json file://"C:\...\containers.json" ---進捗を確認しつつ待つ~ 初回(ImportTaskIdを確認) >aws ec2 describe-import-image-tasks ----------------------------------------------------- | DescribeImportImageTasks | +---------------------------------------------------+ || ImportImageTasks || |+----------------+--------------------------------+| || Description | Windows 20xx VHD || || ImportTaskId | import-ami-xxxxxxxxxxxxxxxxx || || Progress | 19 || || Status | active || || StatusMessage | converting || |+----------------+--------------------------------+| ||| SnapshotDetails ||| ||+----------------------+------------------------+|| ||| Description | First CLI task ||| ||| DiskImageSize | 9692336128.0 ||| ||| Format | VHD ||| ||| Status | active ||| ||+----------------------+------------------------+|| |||| UserBucket |||| |||+------------+--------------------------------+||| |||| S3Bucket | import-to-ec2-vhdbucket |||| |||| S3Key | xxxx.vhd |||| |||+------------+--------------------------------+||| ~ 初回以降(ImportTaskIdを指定) >aws ec2 describe-import-image-tasks --import-task-ids import-ami-xxxxxxxxxxxxxxxxxx ----------------------------------------------------- | DescribeImportImageTasks | +---------------------------------------------------+ || ImportImageTasks || |+----------------+--------------------------------+| || Architecture | x86_64 || || Description | Windows 20xx VHD || || ImageId | ami-xxxxxxxxxxxxxxxxx || || ImportTaskId | import-ami-xxxxxxxxxxxxxxxxxx || || LicenseType | AWS || || Platform | Windows || || Progress | 58 || || Status | active || || StatusMessage | preparing ami || |+----------------+--------------------------------+| ||| SnapshotDetails ||| ||+-----------------+-----------------------------+|| ||| Description | First CLI task ||| ||| DeviceName | /dev/sda1 ||| ||| DiskImageSize | 9692336128.0 ||| ||| Format | VHD ||| ||| SnapshotId | snap-xxxxxxxxxxxxxxxxx ||| ||| Status | completed ||| ||+-----------------+-----------------------------+|| |||| UserBucket |||| |||+------------+--------------------------------+||| |||| S3Bucket | import-to-ec2-vhdbucket |||| |||| S3Key | xxxx.vhd |||| |||+------------+--------------------------------+||| ~ なんだか、VHDの中身を勝手にWindows or Linuxって検知してくれるっぽい。 -VHD → AMI変換完了後、AMIを使用してインスタンスを作成。 --EC2のポータルから、マイAMIを使用して、インスタンスを作成できる。 --なお、ログインの際のユーザ・アカウントは、元のVHDのアカウントを使用可能。 **CloudEndure Migration [#pc302a78] AWSの、高度に自動化されたクラウド移行ソリューションらしい。 ***, etc. [#yf8fa5db] *参考 [#t7d8723b] **手順の例 [#ge5fcf60] **[[Azure上に素早く環境を構築する>開発環境#t293de7c]] [#w3b5f47b] **[[AWSの評価環境を入手する]] [#t3d613fa] **[[VM起動後の開発環境のセットアップ]] [#r45f7425] **その他 [#f54a83a3] ***手順の例 [#ge5fcf60] -[[[AWS CLI]手元の仮想マシンをEC2に移行するときにドハマりした。 | KentaKomai Blog>http://komaken.me/blog/2015/07/23/aws-cli%E6%89%8B%E5%85%83%E3%81%AE%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E3%82%92ec2%E3%81%AB%E7%A7%BB%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E3%83%89%E3%83%8F%E3%83%9E/]] -VM Importでイメージインポートしてみた | Developers.IO~ https://dev.classmethod.jp/articles/vm-import-image-import/ -EC2 instance assume Role to use AWS VM Import – ExploitNetworking~ https://exploitnetworking.com/en/aws-en/ec2-instance-assume-role-to-use-aws-vm-import **Qiita [#m71f96df] ***Qiita [#m71f96df] -ImportImageによるVMインポート~ https://qiita.com/ryo0301/items/e36f7602fbd762e739b2 -AWS CLIでVMwareイメージをインポート~ https://qiita.com/toguma/items/7ae15a7bc469608d3d72 -ウサギでもできるAWSへの~ サーバーマイグレーション~ ~CloudEndureでやってみた~~ https://qiita.com/issie_/items/814e727677148cd0fcd5 **AWS [#p3b44c6e] ***AWS [#p3b44c6e] -よくある質問 - AWS と Microsoft~ https://aws.amazon.com/jp/windows/faq/ ***docs.aws [#nf9e2773] - VM Import/Export --VM Import/Export Requirements~ https://docs.aws.amazon.com/ja_jp/vm-import/latest/userguide/vmie_prereqs.html --Importing a VM as an Image Using VM Import/Export~ https://docs.aws.amazon.com/ja_jp/vm-import/latest/userguide/vmimport-image-import.html **[[Azure上に素早く環境を構築する>開発環境#t293de7c]] [#w3b5f47b] **[[AWSの評価環境を入手する]] [#t3d613fa] **[[VM起動後の開発環境のセットアップ]] [#r45f7425]