IDCF의 500엔 클라우드에서 AWS로 옮겨가는 이야기
누군가 이런 기사를 쓰고 있는 줄 알았는데 못 찾아서 쓰기로 했어요.
배경.
나는 지금까지 IDCF 클라우드의 가장 저렴한 1개월 500엔(세금 포함)짜리 물건으로 VM 1개를 만들어 많이 사용했다.
그러나 IDCF 클라우드 개인 사용자는 이미 통지를 받았지만 IDCF 클라우드는 2019년 3월 31일에 개인이 사용할 수 없게 되었다.
법인이나 개인 사업주가 아니면 안 된다.
IDCF에 무슨 일이 있었는지 모르지만 쫓겨난 것도 어쩔 수 없었어요.
이에 따라 지금까지 IDCF 클라우드에서 사용된 VM을 AWS(1년 무상)로 전환하기로 했다.
마이그레이션 단계
다음 순서에 따라 작업을 진행한다.
1. AWS를 이용한 준비
2. IDCF 클라우드에서 VM 이미지 내보내기
3. AWS에서 다양한 준비
4. S3에 이미지 업로드
5. 시작 및 동작 확인
AWS를 사용한 준비
계정 만들기
먼저 AWS 계정을 만듭니다.나는 불평만 하면 금방 나올 것 같아서 절차를 생략했다.
신용카드와 휴대전화는 계좌를 만드는 데 필수적이기 때문에 미리 준비해 두세요.
AWS CLI 사용 준비
AWS CLI를 사용하는 작업이므로 액세스 키가 필요합니다.
계정을 만든 후 AWS에 로그인하고 오른쪽 위에 있는 사용자 이름을 클릭하여 보안 인증 정보를 선택합니다.[액세스 키]를 사용하여 [새 액세스 키 만들기] 버튼을 눌러 [액세스 키 ID] 및 [보안 키]를 가져옵니다.
IAM 같은 거 하자는 사람도 있지만 신경 안 써요.다른 기회에 안전 설정을 강화합시다.
AWS CLI는python 모듈이기 때문에 클라이언트 PC에서 pip을 사용하여 설치합니다.
pytohon을 넣지 않은 어인은'Windows python 설치'같은 것을 적당히 넣기를 원한다.C:\Users\user>pip install awscli
C:\Users\user>aws --version
aws-cli/1.16.111 Python/3.6.6 Windows/10 botocore/1.12.101
참고로 제 고객 환경은 Windows10이지만python은 설치되어 있어서 쉽게 들어갈 수 있습니다.
awscli를 설치한 후 액세스 키 설정을 합니다.
기본 영역은 ap-northeast-1(도쿄)입니다.C:\Users\user>aws configure
AWS Access Key ID [None]: <アクセスキー>
AWS Secret Access Key [None]: <シークレットキー>
Default region name [None]: ap-northeast-1
Default output format [None]:
IDCF 클라우드에서 VM 이미지 내보내기
먼저 내보내기 전에 VM 내에서 불필요한 스팸 파일을 제거하십시오.
나는 가능한 한 5GB 이내로 억제하고 싶다.AWS의 S3 무료 파일은 5GB이기 때문이다.
VM 내 스팸이 제거되면 VM이 중지되며, 공식 웹사이트의 도움말을 참조하여 "템플릿 제작"을 수행합니다.
https://www.faq.idcf.jp/app/answers/detail/a_id/945/kw/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88
이런 느낌을 적고'만들기'버튼을 눌러라.
잠시 후'모형'이 나왔는데 다음 순서에 따라 모형 화면에'내보내기'를 누르면 시간이 지나면 아래에 링크가 있고 OVA 파일에서 다운로드한 링크를 클릭하여 다우존스 통신을 할 수 있다.
https://www.faq.idcf.jp/app/answers/detail/a_id/145/c/22
AWS에서 여러 가지 준비를 했습니다.
이것은 의외로 번거롭다.
기본적으로 다음과 같은 순서에 따라 작업을 진행한다.
https://docs.aws.amazon.com/ja_jp/vm-import/latest/userguide/vmimport-image-import.html
S3 공정의 제작
AWS의 콘솔에서 S3를 선택하고'물통 만들기'를 누릅니다.
'물통 이름'이 S3의 유일한 이름이 아니면 욕을 먹기 때문에 버킷+도메인 이름 등 독특한 이름을 지어줘야 한다.
리우한은 VM이 세운 지역인'아시아태평양(도쿄)'을 선택했다.그 후에 기본적으로 OK가 되고 [제작] 버튼을 누릅니다.
캐릭터 설정
여기서부터 AWS CLI 가 시작됩니다.
프로그램에 따라trust-policy.제이슨을 만들다.
trust-policy.json{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": "vmie.amazonaws.com" },
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals":{
"sts:Externalid": "vmimport"
}
}
}
]
}
다음 명령을 실행하고 캐릭터를 만듭니다.C:\Users\user>aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
{
"Role": {
"Path": "/",
"RoleName": "vmimport",
"RoleId": "xxxxxxxxxxxxxxx",
"Arn": "arn:aws:iam::xxxxxxxxxx:role/vmimport",
"CreateDate": "2019-02-24T12:36:50Z",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "vmie.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:Externalid": "vmimport"
}
}
}
]
}
}
}
그 다음으로 롤-policy.만들다
role-policy.json{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket"
],
"Resource":[
"arn:aws:s3:::<バケット名>",
"arn:aws:s3:::<バケット名>/*"
]
},
{
"Effect":"Allow",
"Action":[
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*"
],
"Resource":"*"
}
]
}
이거 적용해.이 명령의 결과는 특별히 되돌아오지 않는다.C:\Users\user>aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
S3에 이미지 업로드
AWS 화면에서 구현합니다.방금 만든 통 이름을 누르고 '업로드' 단추를 누르면 OVA 파일을 드래그하면 업로드할 수 있습니다.
액세스 라이센스 같은 것도 있지만 기본적으로 기본값으로 사용할 수 있습니다.
AMI로 변환
containers.json 파일을 만듭니다.
containers.json[
{
"Description": "mytest",
"Format": "ova",
"UserBucket": {
"S3Bucket": "<バケット名>",
"S3Key": "<OVAファイル名>"
}
}]
S3으로 향상된 OVA 파일을 EC2에서 사용하는 이미지(AMI)로 변환합니다.C:\Users\user>aws ec2 import-image --description "mytest" --disk-containers file://containers.json
{
"Description": "mytest",
"ImportTaskId": "import-ami-xxxxxxxxxxxxxx",
"Progress": "2",
"SnapshotDetails": [
{
"DiskImageSize": 0.0,
"Format": "OVA",
"UserBucket": {
"S3Bucket": "<バケット名>",
"S3Key": "<OVAファイル名>"
}
}
],
"Status": "active",
"StatusMessage": "pending"
}
전환은 10~20분 정도 걸립니다.다음 명령을 통해 상황을 확인할 수 있다.C:\Users\user>aws ec2 describe-import-image-tasks --import-task-ids <ImportTaskId>
{
"ImportImageTasks": [
{
"Description": "mytest",
"ImportTaskId": "import-ami-xxxxxxxxxxxxxx",
"Progress": "28",
"SnapshotDetails": [
{
"DiskImageSize": 4242946048.0,
"Format": "VMDK",
"Status": "active",
"UserBucket": {
"S3Bucket": "<バケット名>",
"S3Key": "<OVAファイル名>"
}
}
],
"Status": "active",
"StatusMessage": "converting"
}
]
}
Status가commpleted가 될 때까지 인내심을 가지고 기다리세요.다음은complted 상태의 예입니다.C:\Users\user>aws ec2 describe-import-image-tasks --import-task-ids <ImportTaskId>
{
"ImportImageTasks": [
{
"Architecture": "x86_64",
"Description": "mytest",
"ImageId": "ami-xxxxxxxxxxx",
"ImportTaskId": "import-ami-xxxxxxxxxxxxxx",
"LicenseType": "BYOL",
"Platform": "Linux",
"SnapshotDetails": [
{
"DeviceName": "/dev/sda1",
"DiskImageSize": 4242946048.0,
"Format": "VMDK",
"SnapshotId": "snap-xxxxxxxxxxxxx",
"Status": "completed",
"UserBucket": {
"S3Bucket": "<S3バケット名>",
"S3Key": "<OVAファイル名>"
}
}
],
"Status": "completed"
}
]
}
시작 및 작업 확인
VM 시작
EC2에서 인스턴스 만들기 버튼을 누릅니다.대체로 묵인하면 된다.
MyAMI가 만들어낸 따끈따끈한 인상이 있어서 그걸 선택했어요.
물론 무료 프레임워크의 실례 유형을 선택한다.
EBS는 30GB까지 무료이기 때문에 사이즈는 30GB입니다.(IDCF 클라우드의 VM은 15GB이며, 이후에fridsk와resize 2fs를 먼저 하지 않으면 OS가 인식되지 않는다)
보안 그룹의 설정에서 SSH TCP 22의 '원본' 을 ssh 클라이언트만 허용하는 IP로 설정합니다.
'확인 및 제작' 단추를 눌렀을 때 한 쌍의 버튼을 만들어야 하는데, VM 연결에 쓰였던 ssh 키를 사용했기 때문에 의미가 없다.
연결 및 동작 확인
VM이 시작되면 오른쪽에 IPv4 공용 IP가 있으므로 SSH 연결을 사용합니다.
지금까지 IDCF 클라우드의 VM 연결에 사용된 사용자 이름과 ssh 키를 사용하여 로그인합니다.
IDC Frontier 같은 로고는 크지만 AWS의 EC2에서 이동하는 VM입니다.
(루트로 로그인?IDCF 클라우드의 원래 VM 이미지는 이런 규격...)
EC2에 편차가 있는 줄 알았어요.
소문에 의하면 AWS의 EC2가 편차가 있다고 한다.
약간의 편차가 있다고 생각되는 경우,systbench 같은 측정 기준을 이용하여 VM을 몇 번 더 만들면 편차가 있을 수 있습니다.
뒷수습(중요)
분명히 공짜인데도 비용을 내야 한다
스냅샷은 무료가 아니라 유료인 것 같습니다.달갑지 않다.
AMI 및 스냅샷을 제거하려면 다음 절차를 따르십시오.
다음 순서에 따라 작업을 진행한다.
1. AWS를 이용한 준비
2. IDCF 클라우드에서 VM 이미지 내보내기
3. AWS에서 다양한 준비
4. S3에 이미지 업로드
5. 시작 및 동작 확인
AWS를 사용한 준비
계정 만들기
먼저 AWS 계정을 만듭니다.나는 불평만 하면 금방 나올 것 같아서 절차를 생략했다.
신용카드와 휴대전화는 계좌를 만드는 데 필수적이기 때문에 미리 준비해 두세요.
AWS CLI 사용 준비
AWS CLI를 사용하는 작업이므로 액세스 키가 필요합니다.
계정을 만든 후 AWS에 로그인하고 오른쪽 위에 있는 사용자 이름을 클릭하여 보안 인증 정보를 선택합니다.[액세스 키]를 사용하여 [새 액세스 키 만들기] 버튼을 눌러 [액세스 키 ID] 및 [보안 키]를 가져옵니다.
IAM 같은 거 하자는 사람도 있지만 신경 안 써요.다른 기회에 안전 설정을 강화합시다.
AWS CLI는python 모듈이기 때문에 클라이언트 PC에서 pip을 사용하여 설치합니다.
pytohon을 넣지 않은 어인은'Windows python 설치'같은 것을 적당히 넣기를 원한다.
C:\Users\user>pip install awscli
C:\Users\user>aws --version
aws-cli/1.16.111 Python/3.6.6 Windows/10 botocore/1.12.101
참고로 제 고객 환경은 Windows10이지만python은 설치되어 있어서 쉽게 들어갈 수 있습니다.awscli를 설치한 후 액세스 키 설정을 합니다.
기본 영역은 ap-northeast-1(도쿄)입니다.
C:\Users\user>aws configure
AWS Access Key ID [None]: <アクセスキー>
AWS Secret Access Key [None]: <シークレットキー>
Default region name [None]: ap-northeast-1
Default output format [None]:
IDCF 클라우드에서 VM 이미지 내보내기
먼저 내보내기 전에 VM 내에서 불필요한 스팸 파일을 제거하십시오.
나는 가능한 한 5GB 이내로 억제하고 싶다.AWS의 S3 무료 파일은 5GB이기 때문이다.
VM 내 스팸이 제거되면 VM이 중지되며, 공식 웹사이트의 도움말을 참조하여 "템플릿 제작"을 수행합니다.
https://www.faq.idcf.jp/app/answers/detail/a_id/945/kw/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88
이런 느낌을 적고'만들기'버튼을 눌러라.
잠시 후'모형'이 나왔는데 다음 순서에 따라 모형 화면에'내보내기'를 누르면 시간이 지나면 아래에 링크가 있고 OVA 파일에서 다운로드한 링크를 클릭하여 다우존스 통신을 할 수 있다.
https://www.faq.idcf.jp/app/answers/detail/a_id/145/c/22
AWS에서 여러 가지 준비를 했습니다.
이것은 의외로 번거롭다.
기본적으로 다음과 같은 순서에 따라 작업을 진행한다.
https://docs.aws.amazon.com/ja_jp/vm-import/latest/userguide/vmimport-image-import.html
S3 공정의 제작
AWS의 콘솔에서 S3를 선택하고'물통 만들기'를 누릅니다.
'물통 이름'이 S3의 유일한 이름이 아니면 욕을 먹기 때문에 버킷+도메인 이름 등 독특한 이름을 지어줘야 한다.
리우한은 VM이 세운 지역인'아시아태평양(도쿄)'을 선택했다.그 후에 기본적으로 OK가 되고 [제작] 버튼을 누릅니다.
캐릭터 설정
여기서부터 AWS CLI 가 시작됩니다.
프로그램에 따라trust-policy.제이슨을 만들다.
trust-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": "vmie.amazonaws.com" },
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals":{
"sts:Externalid": "vmimport"
}
}
}
]
}
다음 명령을 실행하고 캐릭터를 만듭니다.C:\Users\user>aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
{
"Role": {
"Path": "/",
"RoleName": "vmimport",
"RoleId": "xxxxxxxxxxxxxxx",
"Arn": "arn:aws:iam::xxxxxxxxxx:role/vmimport",
"CreateDate": "2019-02-24T12:36:50Z",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "vmie.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:Externalid": "vmimport"
}
}
}
]
}
}
}
그 다음으로 롤-policy.만들다role-policy.json
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket"
],
"Resource":[
"arn:aws:s3:::<バケット名>",
"arn:aws:s3:::<バケット名>/*"
]
},
{
"Effect":"Allow",
"Action":[
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*"
],
"Resource":"*"
}
]
}
이거 적용해.이 명령의 결과는 특별히 되돌아오지 않는다.C:\Users\user>aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
S3에 이미지 업로드
AWS 화면에서 구현합니다.방금 만든 통 이름을 누르고 '업로드' 단추를 누르면 OVA 파일을 드래그하면 업로드할 수 있습니다.
액세스 라이센스 같은 것도 있지만 기본적으로 기본값으로 사용할 수 있습니다.
AMI로 변환
containers.json 파일을 만듭니다.
containers.json
[
{
"Description": "mytest",
"Format": "ova",
"UserBucket": {
"S3Bucket": "<バケット名>",
"S3Key": "<OVAファイル名>"
}
}]
S3으로 향상된 OVA 파일을 EC2에서 사용하는 이미지(AMI)로 변환합니다.C:\Users\user>aws ec2 import-image --description "mytest" --disk-containers file://containers.json
{
"Description": "mytest",
"ImportTaskId": "import-ami-xxxxxxxxxxxxxx",
"Progress": "2",
"SnapshotDetails": [
{
"DiskImageSize": 0.0,
"Format": "OVA",
"UserBucket": {
"S3Bucket": "<バケット名>",
"S3Key": "<OVAファイル名>"
}
}
],
"Status": "active",
"StatusMessage": "pending"
}
전환은 10~20분 정도 걸립니다.다음 명령을 통해 상황을 확인할 수 있다.C:\Users\user>aws ec2 describe-import-image-tasks --import-task-ids <ImportTaskId>
{
"ImportImageTasks": [
{
"Description": "mytest",
"ImportTaskId": "import-ami-xxxxxxxxxxxxxx",
"Progress": "28",
"SnapshotDetails": [
{
"DiskImageSize": 4242946048.0,
"Format": "VMDK",
"Status": "active",
"UserBucket": {
"S3Bucket": "<バケット名>",
"S3Key": "<OVAファイル名>"
}
}
],
"Status": "active",
"StatusMessage": "converting"
}
]
}
Status가commpleted가 될 때까지 인내심을 가지고 기다리세요.다음은complted 상태의 예입니다.C:\Users\user>aws ec2 describe-import-image-tasks --import-task-ids <ImportTaskId>
{
"ImportImageTasks": [
{
"Architecture": "x86_64",
"Description": "mytest",
"ImageId": "ami-xxxxxxxxxxx",
"ImportTaskId": "import-ami-xxxxxxxxxxxxxx",
"LicenseType": "BYOL",
"Platform": "Linux",
"SnapshotDetails": [
{
"DeviceName": "/dev/sda1",
"DiskImageSize": 4242946048.0,
"Format": "VMDK",
"SnapshotId": "snap-xxxxxxxxxxxxx",
"Status": "completed",
"UserBucket": {
"S3Bucket": "<S3バケット名>",
"S3Key": "<OVAファイル名>"
}
}
],
"Status": "completed"
}
]
}
시작 및 작업 확인
VM 시작
EC2에서 인스턴스 만들기 버튼을 누릅니다.대체로 묵인하면 된다.
MyAMI가 만들어낸 따끈따끈한 인상이 있어서 그걸 선택했어요.
물론 무료 프레임워크의 실례 유형을 선택한다.
EBS는 30GB까지 무료이기 때문에 사이즈는 30GB입니다.(IDCF 클라우드의 VM은 15GB이며, 이후에fridsk와resize 2fs를 먼저 하지 않으면 OS가 인식되지 않는다)
보안 그룹의 설정에서 SSH TCP 22의 '원본' 을 ssh 클라이언트만 허용하는 IP로 설정합니다.
'확인 및 제작' 단추를 눌렀을 때 한 쌍의 버튼을 만들어야 하는데, VM 연결에 쓰였던 ssh 키를 사용했기 때문에 의미가 없다.
연결 및 동작 확인
VM이 시작되면 오른쪽에 IPv4 공용 IP가 있으므로 SSH 연결을 사용합니다.
지금까지 IDCF 클라우드의 VM 연결에 사용된 사용자 이름과 ssh 키를 사용하여 로그인합니다.
IDC Frontier 같은 로고는 크지만 AWS의 EC2에서 이동하는 VM입니다.
(루트로 로그인?IDCF 클라우드의 원래 VM 이미지는 이런 규격...)
EC2에 편차가 있는 줄 알았어요.
소문에 의하면 AWS의 EC2가 편차가 있다고 한다.
약간의 편차가 있다고 생각되는 경우,systbench 같은 측정 기준을 이용하여 VM을 몇 번 더 만들면 편차가 있을 수 있습니다.
뒷수습(중요)
분명히 공짜인데도 비용을 내야 한다
스냅샷은 무료가 아니라 유료인 것 같습니다.달갑지 않다.
AMI 및 스냅샷을 제거하려면 다음 절차를 따르십시오.
마찬가지로 스냅샷에서 마우스 오른쪽 버튼을 클릭하여 제거 를 선택합니다.
이상.
Reference
이 문제에 관하여(IDCF의 500엔 클라우드에서 AWS로 옮겨가는 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yyojiro/items/fcb2c2eb25cd803c4bc8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)