새리전으로 AWS 리소스마이그레이션 2013 년 3 월 Simon Elisha, James Bromberger 및 Peter Stanski ( 본문서의최신버전을보려면 <http://aws.amazon.com/whitepapers> 를참조하십시오.)
목차 요약... 3 소개... 3 AWS 리소스범위... 3 AWS IAM 및보안고려사항... 4 컴퓨팅및네트워킹... 4 Amazon EC2 인스턴스마이그레이션... 4 SSH 키... 5 보안그룹... 6 Amazon 머신이미지... 7 Amazon Elastic Block Store 볼륨... 8 탄력적 IP 주소... 9 Elastic Load Balancing... 10 시작구성및 Auto Scaling 그룹... 10 예약인스턴스고려사항... 11 Amazon 가상프라이빗클라우드마이그레이션... 11 AWS Direct Connect 링크마이그레이션... 12 마이그레이션프로세스에도움이되는 Amazon Route 53 사용... 12 스토리지및 CDN... 14 Amazon Simple Storage Service 버킷마이그레이션... 14 Amazon S3 버킷을사용한가상호스팅... 14 AWS Management Console 을사용하여객체이동... 15 타사도구를사용하여객체이동... 15 API/SDK 를사용한복사... 15 Amazon CloudFront 배포마이그레이션... 15 Amazon Glacier 스토리지마이그레이션... 17 전략 1: 온라인전송... 17 전략 2: 오프라인전송... 17 데이터베이스... 18 Amazon RDS 서비스마이그레이션... 18 데이터베이스보안그룹... 18 데이터베이스인스턴스및데이터... 18 Amazon DynamoDB 마이그레이션... 19 Amazon SimpleDB 마이그레이션... 19 Amazon ElastiCache 마이그레이션... 20 애플리케이션서비스... 20 Amazon Simple Queue Service 대기열마이그레이션... 20 Amazon Simple Notification Service 항목마이그레이션... 21 배포및관리... 21 AWS CloudFormation 을통한마이그레이션... 21 CloudFormer 를사용하여환경캡처... 22 API 함축... 23 고객스크립트및프로그램업데이트... 23 중요고려사항... 23 마무리인사... 23
요약 이문서는기존리소스를새로운 AWS 리전으로마이그레이션하려는숙련된 Amazon Web Services 고객을위해작성되었습니다. 고객은다양한이유로마이그레이션이필요할수있습니다. 특히새로운리전이사용자기반에더가까운경우고객은다양한서비스를지리적으로사용자에게더가까운곳에두고자할수있습니다. 이문서는 단계별 또는 확정적 가이드로계획되지않았으며, 그보다는고객에게새로운리전에필요할수있는다양한서비스를마이그레이션하기위한여러가지옵션과방법을제공합니다. 소개 Amazon Web Services 는현재전세계수많은리전에서운영하면서 190 여개국가에서고객에게서비스하고있습니다. 수많은 AWS 서비스에대해서비스를제공할지리적리전을선택할수있습니다. 리전은개별지리적영역 ( 미국, 유럽, 아시아태평양, 남아메리카등 ) 에분산적으로배치되어있으며복수의가용영역을가지고있습니다. 개별가용영역을사용하면단일위치의오류로부터애플리케이션을한층더보호할수있습니다. 개별 AWS 리전을사용하면특정고객과더가까운곳에서애플리케이션을설계하여지연시간을줄이고처리량을높일수있습니다. AWS 는애플리케이션의내결함성과안정성을향상할수있도록리전이서로격리되도록설계했습니다. AWS 리소스범위 대부분의 AWS 서비스가리전과독립적인방식으로운영되지만, 다음서비스는모든리전에걸쳐운영되며마이그레이션이필요없습니다. AWS Identity and Access Management(IAM) AWS Management Console Amazon CloudWatch 또한 API 엔드포인트를사용하여모든서비스에액세스할수있으므로애플리케이션에따라아키텍처의모든구성요소를새로운리전으로반드시마이그레이션할필요는없습니다. 예를들어, Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를마이그레이션하면서기존 Amazon Simple Storage Service(Amazon S3) 및 Amazon CloudFront 구성을그대로유지할수있습니다. 특정리전별로업데이트된사용가능한 AWS 제품및서비스목록은 AWS 웹사이트 글로벌인프라섹션 1 에서사용할수있습니다. 새리전으로마이그레이션하기전에 AWS 제품및서비스를즉시사용할수있는지확인하는것이좋습니다. 1 http://aws.amazon.com/about-aws/globalinfrastructure/regional-product-services
AWS IAM 및보안고려사항 AWS Identity and Access Management(IAM) 를통해사용자의 AWS 서비스와리소스에대한액세스를안전하게통제할수있습니다. IAM 사용자는특정리전이아닌 AWS 계정범위내에서생성되고관리되므로사용자또는그룹의마이그레이션은필요없습니다. 새로운리전으로마이그레이션할때는 IAM 사용자에대해정의된정책제한사항에주의해야합니다. 예를들어, Amazon 리소스이름 (ARN) 은특정리전으로제한될수있습니다. 자세한내용은 IAM 사용설명서의 IAM 엔터티에대한식별자 2 섹션을참조하십시오. IAM 은고객이특정정책을추가하여사용자가 AWS 리소스에액세스하는방법을제어할수있는핵심보안서비스입니다. 일부정책은액세스시간 ( 시간대차이로인해고려해야할수있음 ), 새로운발원 IP 주소사용, SSL 연결을사용해야하는지여부, 사용자를인증하는방법, 멀티팩터인증 (MFA) 디바이스를사용해야하는지여부등에영향을미칠수있습니다. AWS Identity and Access Management(IAM) 는보안을강화하기때문에리전마이그레이션을수행하기전에보안구성정책, 절차및실행을세심하게검토하는것이좋습니다. 컴퓨팅및네트워킹 Amazon EC2 인스턴스마이그레이션 Amazon EC2 는클라우드에서컴퓨팅파워를자유자재로변경할수있는웹서비스입니다. 개발자가웹규모의컴퓨팅작업을더욱쉽게수행할수있도록설계되었습니다. 인스턴스마이그레이션은데이터와이미지를복사하고보안그룹과 SSH 키가있는지확인한다음새로운인스턴스를다시시작하는작업입니다. 2 http://docs.amazonwebservices.com/iam/latest/userguide/using_identifiers.html#identifiers_arns
SSH 키 Amazon Web Services 는고객이생성한사용자 SSH 프라이빗키를보관하지않습니다. 이퍼블릭키는 Amazon EC2 인스턴스가실행중일때사용할수있습니다 (Linux 운영체제에서는일반적으로이키가해당사용자의 ~/.ssh/authorized_keys 파일에복사됨 ). 그림 1 AWS Management Console 의키쌍 사용자는 API, SDK, 명령줄또는콘솔에서각키의지문을검색할수있습니다. SSH 퍼블릭키는리전별로만저장되며, AWS 는구성된고객 SSH 키를리전간에복사하거나동기화하지않습니다. 리전별로개별 SSH 키를사용할지또는여러리전에동일한 SSH 키를사용할지결정하는것은고객에게달려있습니다. 참고 : 원본리전에서기존 Linux 인스턴스에로그온하여퍼블릭키를얻은다음 (~/.ssh/authorized_keys 에서얻음 ) 이키를대상리전으로가져올수있습니다. Auto Scaling 시작구성및 AWS CloudFormation 템플릿은키쌍이름을사용하는 SSH 키를참조할수있습니다. 이경우사용자는새로운리전에서사용가능한키를사용하도록 Auto Scaling 시작구성또는 AWS CloudFormation 템플릿을업데이트하거나동일한키쌍이름의퍼블릭키를새로운리전에배포해야합니다. 자세한내용은 AWS 보안자격증명정보 3 를참조하십시오. 3 http://docs.amazonwebservices.com/awssecuritycredentials/1.0/aboutawscredentials.html
보안그룹 Amazon EC2 의보안그룹은수신 ( 또는 VPC 의경우수신및송신 ) 트래픽을 Amazon EC2 인스턴스로제한합니다. 보안그룹의각규칙은 CIDR 표기법 IPv4 주소범위 (a.b.c.d/x) 또는보안그룹식별자 (sg-xxxxxxxx) 를사용하여원본 ( 또는 VPC 에서는대상 ) 을참조할수있습니다. 그림 2 AWS Management Console 에서보안그룹구성 각보안그룹은한리전범위내에서만존재할수있습니다. 동일한이름이여러리전에존재할수있지만, 통과가허용되는트래픽에대한정의가다릅니다. 시작되는각인스턴스는보안그룹의구성원이어야합니다. 호스트가 Auto Scaling 시작구성또는 AWS CloudFormation 템플릿의일부로시작되는경우필수보안그룹이있어야합니다 (AWS CloudFormation 템플릿은보안그룹이템플릿의일부로생성되도록정의할수있음 ). 구성된보안그룹을검토하여필요한수준의네트워크액세스제한이설정되어있는지확인해야합니다. 명령줄도구를사용하여기존보안그룹정의의사본을내보내려면다음명령을사용하십시오. ec2-describe-group H - region <sourceregionname> > security_groups.txt 자세한내용은 Amazon EC2 사용설명서의보안그룹섹션 4 을참조하십시오. 4 http://docs.amazonwebservices.com/awsec2/latest/userguide/using-network-security.html
Amazon 머신이미지 Amazon 머신이미지 (AMI) 는 Amazon EC2 환경내에서가상머신 ( 인스턴스 ) 을생성하는데사용되는특수한유형의사전구성된운영체제이미지입니다. 각 AMI 에는 ami-xxxxxxxx 형식의식별자가할당됩니다. 여기서 X 는 16 진수값 (0-9, A-F) 입니다. 그림 3 AWS Management Console 의 AMI 각 AMI 는리전별로고유하며 AMI 를여러리전에걸쳐사용할수없습니다. 하지만 AMI 의동일한콘텐츠를다른리전 ( 예 : Amazon Linux 2012.09 또는 Windows Server 2008 R2) 에서사용할수있으며각리전에는이데이터사본에대한고유의 AMI ID 가있습니다. 실행중인인스턴스에서고유의 AMI 를만들고추가인스턴스를시작하기위한시작점으로이 AMI 를사용할수있습니다. 사용자가만든이 AMI 에는리전내에서고유한 AMI ID 가할당됩니다. AMI ID 는 Auto Scaling 시작구성및 AWS CloudFormation 템플릿내에서사용됩니다. Auto Scaling 또는 AWS CloudFormation 을사용할계획인경우대상리전에있는것과일치하도록 AMI ID 참조를업데이트해야합니다. 리전간 AMI 마이그레이션은 EC2 AMI 복사기능 5 을사용하여지원됩니다. EC2 AMI 복사를사용하면 AWS Management Console, Amazon EC2 CLI 또는 Amazon EC2 API 에서 AMI 를원하는만큼많은리전으로복사할수있습니다. EC2 AMI 복사는 Amazon EBS 지원 AMI 와인스턴스스토어지원 AMI 에사용할수있으며운영체제와무관합니다. AMI 를복사할때마다고유의 AMI ID 가있는새로운 AMI 가생성됩니다. 복사도중이나이후에원본 AMI 에수행한변경사항은 AMI 복사프로세스의일부로새로운 AMI 에전파되지않으며, 원본 AMI 에대한변경사항을복사하려면새로운 AMI 를대상리전으로다시복사해야합니다. 참고 : 원본 AMI 에적용된권한과사용자정의태그는 AMI 복사프로세스의일부로새로운 AMI 에복사되지않습니다. 복사가완료된후권한과사용자정의태그를새로운 AMI 에적용할수있습니다. 5 http://docs.aws.amazon.com/awsec2/latest/userguide/copyingamis.html
Amazon Elastic Block Store 볼륨 Amazon Elastic Block Store(Amazon EBS) 는인스턴스에제공될수있는블록스토리지볼륨입니다. Amazon EBS 볼륨은 NTFS, vfat, ext4, xfs 등과같은특정파일시스템형식으로포맷할수있습니다. Amazon EBS 볼륨은운영체제부트볼륨을포함하거나추가데이터드라이브 (Windows) 또는마운트지점 (Linux) 으로사용할수있습니다. 리전간 Amazon EBS 스냅샷복사기능 6 을사용하여 Amazon EBS 볼륨을마이그레이션할수있습니다. 이방법으로콘솔, API 호출또는명령줄을사용하여 Amazon EBS 볼륨의스냅샷을리전간에복사할수있습니다. 이기능의주요기능은다음과같습니다. AWS Management Console 에는진행중에스냅샷복사진행률이표시되며, 여기서완료비율을확인할수있습니다. 여러스냅샷을선택하고동일한리전에복사하거나스냅샷을여러리전에병렬로복사하여여러스냅샷복사명령을동시에시작할수있습니다. 진행중복사는관련 Amazon EBS 볼륨의성능에영향을미치지않습니다. 콘솔기반인터페이스는푸시기반이므로, 원본리전에로그인하고스냅샷을어디로복사할지를콘솔에알립니다. 반대로 API 와명령줄은풀기반이며대상리전내에서실행해야합니다. 외부도구를사용하거나구성을수행할필요없이전체프로세스가수행됩니다. 고급마이그레이션프로세스 : 마이그레이션할관련 Amazon EBS 볼륨을식별합니다 ( 식별에도움이되는태그지정사용을선택할수있음 ). 애플리케이션실행중에복사할수있는볼륨과중단 ( 애플리케이션종료 ) 이필요한볼륨을식별합니다. Amazon EBS 스냅샷복사는볼륨자체에액세스하지않고기본볼륨의스냅샷에액세스합니다. 따라서전체적으로최신데이터가복사되도록보장하기위해복사프로세스중에애플리케이션을종료해야할수있습니다. 필요한 Amazon EBS 스냅샷을만들고 완료 상태가될때까지기다립니다. 콘솔, API 또는 CLI 를사용하여 Amazon EBS 스냅샷복사를시작합니다. 적절한스냅샷을선택하고 스냅샷에서볼륨생성 기능을사용하여대상리전에새로운 Amazon EBS 볼륨을만듭니다. 6 http://docs.aws.amazon.com/awsec2/latest/userguide/ebs-copy-snapshot.html
볼륨및스냅샷 Amazon EBS 볼륨은현재 1GB 부터최대 1TB 크기일수있으며, 디스크관리도구 (Logical Volume Manager(LVM) 또는 Windows 디스크관리자 ) 와함께사용하여여러블록디바이스간에스팬 / 스트라이프할수있습니다. 여러 Amazon EBS 볼륨을함께스트라이프하여더높은성능의인스턴스를애플리케이션에제공할수있습니다. 특히 RAID 1 스트라이프에서사용되거나 LVM 볼륨그룹에속한여러볼륨이있는경우항상사용하는볼륨은스냅샷촬영에서이익을얻을수있습니다. 프로비저닝된 IOPS 볼륨은 Amazon EBS 성능을향상하는또한가지방법입니다. 이볼륨은 I/O 집중적인워크로드 ( 예 : 데이터베이스 ) 에예측가능하고우수한성능을제공하도록설계되었습니다. Amazon EC2 인스턴스에서 Amazon EBS 볼륨에프로비저닝된 IOPS 를완전히사용하도록일부 Amazon EC2 인스턴스유형을 EBS 최적화 인스턴스로시작할수있습니다. 리전마이그레이션을수행하기전에대상리전의가용영역이이러한인스턴스를지원하는지확인하는것이좋습니다. 자세한내용은 Amazon EC2 사용설명서의 EBS 성능향상 7 을참조하십시오. 탄력적 IP 주소 탄력적 IP 주소는지정된리전의주소풀에서계정에할당됩니다. 따라서탄력적 IP 주소는리전간에마이그레이션할수없습니다. 권장사항은이탄력적 IP 주소를가리키는 DNS 에서 TTL(Time-To-Live) 값을업데이트하고이값을 DNS 캐시만료시허용가능한지연시간에해당하는양, 예를들면 300 초 (5 분 ) 이하로줄이는것입니다. DNS TTL 을감소시키면결과적으로 DNS 요청이증가하고현재 DNS 서비스에대한부하가증가하여 DNS 서비스제공자가부과하는요금에영향이있을수있습니다. DNS 변경은 TTL 수정에대한단계별접근방식을선택하여더욱최적으로수행할수있습니다. 예를들면다음과같습니다. www.example.com( 탄력적 IP 주소를가리킴 ) 의현재 TTL 은 86400(1 일 ) 입니다. www.example.com 의 TTL 을 300 초 (5 분 ) 로수정하고 2 일의시간동안작업을예약합니다. 이기간중 DNS 트래픽증가를모니터링합니다. 예약된작업의시작일에 www.example.com 의 TTL 을더줄이고, 나중에 DNS 인프라의부하에따라선택적으로 TTL 을더줄입니다 ( 예 : 10 초 ). 마지막변경후 10 분이지나면새로운리전의새로운탄력적 IP 주소를가리키도록 A 레코드를업데이트합니다. 잠시후트래픽이적절하게서비스되고있는지확인하고 TTL 을다시 5 분 (300 초 ) 으로증가시킵니다. 작업기간이한번더지난후, TTL 을정상수준으로되돌립니다. 7 http://docs.amazonwebservices.com/awsec2/latest/userguide/ebsperformance.html
Elastic Load Balancing Elastic Load Balancing 은수신되는애플리케이션트래픽을여러 Amazon EC2 인스턴스에자동으로배포합니다. Elastic Load Balancing 은새로운리전으로마이그레이션할수없습니다. 그대신, 서비스그룹내에서원하는가용영역을포괄하는새로운 Amazon EC2 인스턴스세트를포함하여대상리전에서새로운 Elastic Load Balancing 서비스를시작해야합니다. 리전마이그레이션을수행하기전에원본및대상리전가용영역을검토하여일치하는영역수준이있는지확인하는것이좋습니다. 추가가용영역을검색하는시나리오에서는애플리케이션로드밸런싱및확장성을수정해야할수있습니다. 이경우 Auto Scaling 그룹구성에사용되는 CloudWatch 경보및임계값에대한추가평가도필요할수있습니다. 또한기존 Elastic Load Balancing 서비스의관련 SSL 인증서를새로운 Elastic Load Balancing 서비스에추가해야하며, Amazon EC2 인스턴스상태테스트를확인하기위해상태확인조건도추가해야합니다. 시작구성및 Auto Scaling 그룹 Auto Scaling 을사용하면사용자가정의하는조건에따라 Amazon EC2 용량을자동으로확장하거나축소할수있습니다. 다음명령을사용하여현재 Auto Scaling 및시작구성정의를캡처합니다. Auto Scaling 은현재 AWS Management Console 을사용하여구성할수없지만, 다른타사관리도구가이작업을지원합니다. as-describe-auto-scaling-groups H -region <sourceregionname> > autoscale_groups.txt as-describe-launch-configs H -region <sourceregionname> > launch_configs.txt 이렇게추출된 Auto Scaling 그룹과시작구성설정은원본리전에있는 AMI, 보안그룹, SSH 키쌍을참조합니다. 이러한항목을대상리전으로마이그레이션하는방법은위의섹션을참조하십시오. 그런다음대상리전에서새로운 AMI ID 와보안그룹을사용하여새로운 Auto Scaling 그룹과시작구성을만듭니다. Auto Scaling 그룹과시작조건에대한자세한내용은 Auto Scaling 사용설명서의 Auto Scaling 의기본시나리오 8 를참조하십시오. 8 http://docs.amazonwebservices.com/autoscaling/latest/developerguide/us_basicsetup.html
예약인스턴스고려사항 많은고객은 Amazon EC2, Amazon Relational Database Service(Amazon RDS) 및 Amazon ElasticCache 에대한예약인스턴스를대폭할인된요금으로이용합니다. 예약인스턴스 ( 또는예약캐시노드 ) 는 1 년또는 3 년기간동안특정리전에설정된가용영역내의특정인스턴스유형 ( 크기 ) 에할당됩니다. 예약인스턴스는 Light, Medium 및 Heavy 라는세가지사용률수준으로구매할수있습니다. 선결제비용과시간당요금은이러한사용률수준과지리적리전에따라다릅니다. Light 및 Medium 사용률예약인스턴스도인스턴스가실행상태에있는시간동안인스턴스시간별로결제됩니다. 인스턴스가실행중이아닌경우사용요금이없습니다. 인스턴스시간을일부만사용해도전체시간으로결제됩니다. Heavy 사용률예약인스턴스는온디맨드인스턴스를통해최대한의절약을제공하며전체기간중시간당으로결제됩니다 ( 시간중사용여부와상관없이시간당요금이고객에게결제됩니다 ). 예약인스턴스를구매한경우인스턴스를다른리전으로마이그레이션하려면먼저예약인스턴스 Marketplace 에서판매하는것이좋습니다. 판매되는즉시결제가새로운구매자로전환되며고객은예약인스턴스에대해더이상결제되지않습니다. 구매자가기간의나머지부분을계속지불합니다. 온디맨드인스턴스를통해비용을절약하려면예약인스턴스 Marketplace 에서마이그레이션할리전에대해더짧은기간동안예약인스턴스를구매하거나 AWS 에서직접구매할수있습니다. 예약인스턴스 Marketplace 에서는결제를새리전으로쉽게 마이그레이션 할수있습니다. 예약인스턴스를구입및판매하는방법에대해더자세히알아보려면예약인스턴스구입방법및예약인스턴스 Marketplace 9 페이지를참조하십시오. 새리전으로마이그레이션하기전에예약인스턴스구매및판매에앞서서비용영향을세심하게평가하는것이좋습니다. Amazon 가상프라이빗클라우드마이그레이션 Amazon Virtual Private Cloud(Amazon VPC) 를사용하면고객이정의하는가상네트워크에서 AWS 리소스를시작할수있는 Amazon Web Services(AWS) 클라우드의프라이빗격리섹션을프로비저닝할수있습니다. Amazon Virtual Private Cloud(Amazon VPC) 는리전별로존재하지만, 해당리전내의여러가용영역에서사용할수있습니다. 이기능은새로운리전으로이동하거나마이그레이션할수없습니다. 하지만새로운대상리전에서새로운 VPC 를만들수있으며동일한 IP 주소범위를기존 VPC 로사용할수있습니다. 리전마이그레이션중에도라우팅이계속작동하도록사용중인 IP 주소범위를고려해야합니다. 고객게이트웨이에서관리작업을정확하게수행하고중복범위에동시에액세스하지않는한, 새로운리전에서동일한내부 IP 주소범위를사용하여중복 VPC 를만들수도있습니다. 9 http://aws.amazon.com/ec2/reserved-instances/marketplace/
AWS Direct Connect 링크마이그레이션 AWS Direct Connect 는물리적인프라를 AWS 서비스에연결하는서비스입니다. AWS Direct Connect 로케이션시설에서하나이상의광섬유연결이프로비저닝됩니다. 새로운리전에서새로운링크를프로비저닝하려면새로운 AWS Direct Connect 서비스를요청하고테일회로를인프라에프로비저닝해야합니다. AWS DirectConnect 요금은지리적위치에따라다릅니다. 더이상필요하지않을때는언제든지기존연결을종료할수있습니다. AWS 는각지리적리전에서다양한피어링파트너와협력하고있습니다. http://aws.amazon.com/directconnect/partners/ 에서서비스프로비저닝에도움이될수있는업데이트된 AWS Direct Connect Amazon 파트너목록을살펴볼수있습니다. 마이그레이션프로세스에도움이되는 Amazon Route 53 사용 Amazon Route 53 는전세계모든 AWS 리전과엣지로케이션에서사용할수있는가용성높은 DNS 서비스입니다. DNS 는단일전환을통해또는점진적으로트래픽을라우팅하여한위치에서다른위치로안정적으로마이그레이션하는데도움이될수있으므로마이그레이션을관리할때매우효과적일수있습니다. 대상리전에서한애플리케이션의사본에대한새로운 DNS 레코드를추가하여 a) 애플리케이션에대한액세스를테스트할수있으며 b) 새로운사이트 / 리전으로전환할시간을선택할수있습니다. 한접근방식은가중리소스레코드세트기능을사용하는것입니다. 이기능을사용하면고객은동일한 DNS 이름을사용할때각특정주소로라우팅되는트래픽비율을확인할수있습니다. 예를들어모든트래픽을기존리전으로라우팅하고새로운리전으로는아무것도라우팅하지않으려는경우다음구성을사용할수있습니다. www.mysite.com CNAME elbname.sourceregion.com 100 www.mysite.com CNAME elbname.destinationregion.com 0 마이그레이션을수행할때가되면이레코드에대한가중이다음과같이대칭이동합니다. www.mysite.com CNAME elbname.sourceregion.com 0 www.mysite.com CNAME elbname.destinationregion.com 100 그러면모든새로운 DNS 요청이새로운리전으로확인됩니다. 참고 : 일부클라이언트는 DNS 확인을캐시했거나긴 TTL 이있거나 TTL 업데이트가완료되지않은경우기존주소를계속사용할수있습니다.
그림 5 편리한리전마이그레이션을위한 Amazon Route 53 사용 애플리케이션이이중리전작업모델을지원하는한다양한가중을사용하여점진적전환을수행할수도있습니다. 자세한내용은 Amazon Route 53 사용설명서의가중레코드세트생성 10 을참조하십시오. 10 http://docs.amazonwebservices.com/route53/latest/developerguide/weightedresourcerecordsets.html
스토리지및 CDN Amazon Simple Storage Service 버킷마이그레이션 Amazon S3 는언제든지웹상의어디서나용량에관계없이데이터를저장하고검색하는데사용할수있는단순한웹서비스인터페이스를제공합니다. Amazon Simple Storage Service(Amazon S3) 버킷은실제로단일 AWS 리전내에상주합니다. 다른원격리전에서액세스할때액세스는네트워크지연시간의영향을받습니다. 지연시간이발생할수있으므로 Amazon S3 버킷에대한참조와이버킷의지리적배포를세심하게관리해야합니다. Amazon S3 버킷을마이그레이션하려면새로운대상리전에서새로운 Amazon S3 버킷을생성한다음데이터를이버킷에복사합니다. 새로운버킷에는범용고유이름이필요합니다 Amazon S3 버킷이름지정규칙에대한자세한내용은 Amazon S3 사용설명서의버킷제한사항 11 을참조하십시오. Amazon S3 버킷을사용한가상호스팅 Amazon S3 의정적웹사이트호스팅기능을통해웹사이트를호스팅할수있습니다. 자세한내용은 Amazon S3 사용설명서의웹사이트호스팅 12 을참조하십시오. 단순성과사용자친화성을위해고객은 Amazon S3 에호스팅된웹콘텐츠에 DNS CNAME 별칭을사용합니다. 예를들면 http://bucketname.s3.amazonaws.com 과같은 URL 을 http://my.bucketname.com 으로사용합니다. CNAME 별칭을통해구체적인 Amazon S3 URL 엔드포인트는웹브라우저에서추상화됩니다. 자세한내용은 Amazon S3 사용설명서의가상호스팅 13 을참조하십시오. 이전에정적웹사이트로사용된 Amazon S3 버킷을새로운 AWS 리전으로마이그레이션한경우 ( 새로운버킷이름사용 ) DNS 레코드내의 CNAME 별칭 ( 예 : Amazon Route 53) 을기존버킷이름에서새이름으로변경하면동일한사용자친화적이름을사용하여이버킷에계속액세스할수있습니다. 11 http://docs.amazonwebservices.com/amazons3/latest/dev/bucketrestrictions.html 12 http://docs.amazonwebservices.com/amazons3/latest/dev/websitehosting.html 13 http://docs.amazonwebservices.com/amazons3/latest/dev/virtualhosting.html
AWS Management Console 을사용하여객체이동 AWS Management Console 에는 Amazon S3 버킷간에여러객체를복사하거나이동할수있는기능이있습니다. 객체를하나이상수동으로선택하고팝업메뉴에서잘라내기또는복사를선택하여이항목은대상 Amazon S3 버킷으로붙여넣거나이동할수있습니다. 대상버킷은동일한리전또는다른지리적리전에상주할수있습니다. 그림 4 AWS Management Console 을사용하여 Amazon S3 객체에대한권한설정 타사도구를사용하여객체이동 버킷간에 Amazon S3 객체를복사하거나이동하려면다양한타사도구를사용할수있습니다. AWS 기술파트너페이지에서스토리지검색구체화 14 를사용하여 AWS 파트너제품을확인할수있습니다. API/SDK 를사용한복사 Amazon SDK API 를통해버킷간에 Amazon S3 객체를프로그래밍방식으로복사 / 이동할수있습니다. Amazon S3 객체수준작업에대한자세한내용은 Amazon S3 API 참조의객체작업 15 을참조하십시오. 객체복사프로세스의속도를높이려면 PUT 객체 - 복사작업을사용할수있습니다. PUT 객체 - 복사작업은대상버킷으로복사할수있는단일작업에서 GET 을수행한다음 PUT API 호출을수행합니다. 자세한내용은 Amazon S3 API 참조에서 PUT 객체 - 복사 16 를참조하십시오. Amazon CloudFront 배포마이그레이션 Amazon CloudFront 는전세계의수많은 AWS 엣지로케이션에서운영하는콘텐츠전송서비스입니다 ( 현재 35 개 ). AWS CloudFront 는배포라는구성세트로고객데이터를전송합니다. 각배포에는구성된오리진이하나 ( 캐시동작의경우하나이상 ) 있습니다. 각오리진은 Amazon S3 버킷또는웹서버일수있습니다. 여기에는전세계모든 AWS 리전의 Amazon EC2 내에서실행되는웹서버도포함됩니다. 14 https://aws.amazon.com/solution-providers?business_software_id=6&selection=business_software_id&type=isv 15 http://docs.amazonwebservices.com/amazons3/latest/api/restobjectops.html 16 http://docs.amazonwebservices.com/amazons3/latest/api/restobjectcopy.html
콘솔에서오리진을업데이트하려면 1. Amazon EC2 인스턴스또는 Amazon S3 버킷에대한본문서의관련섹션을참조하여오리진서버또는버킷을새리전으로이동합니다. 2. Amazon CloudFront 콘솔에서배포를선택하고 [Distribution Settings] 를클릭합니다. 3. [Origins] 탭을선택합니다. 4. 편집할오리진을선택하고 ( 하나만있을수있음 ) [Edit] 를클릭합니다. 5. 새로운서버또는버킷이름으로 [Origin Domain Name] 을업데이트합니다. [Yes, Edit] 를클릭합니다. 자세한내용은 CloudFront 개발자안내서의 CloudFront 배포나열, 보기및업데이트 17 를참조하십시오. 17 http://docs.amazonwebservices.com/amazoncloudfront/latest/developerguide/howtoupdatedistribution.html
Amazon Glacier 스토리지마이그레이션 Amazon Glacier 는 AWS 딥아카이브스토리지서비스입니다. 이서비스는자주액세스하지않는대용량데이터를처리하기위해설계되었습니다. Amazon Glacier 는현재월별비례배분으로 Amazon Glacier 에있는총스토리지의 5%( 일별약 0.17%) 에대해프리티어데이터검색을제공하며이양을초과하는데이터검색에는추가비용을부과합니다. Amazon Glacier 에저장된데이터는대개매우크며, 온라인전송대신 AWS Import/Export 서비스를사용하여리전간에데이터를전송해야할수있습니다. 전략 1: 온라인전송 이전략을사용하려면각아카이브의크기가 5TB 미만이어야합니다. Amazon Glacier 는최대 40TB 의개별아카이브까지지원하지만, Amazon S3 에는 5TB 의객체크기제한이있습니다. 온라인으로 Amazon Glacier 스토리지를전송하려면 1. Amazon Glacier 에서전체데이터크기를계산하고하루에무료로검색할수있는크기를알아봅니다 ( 크기 * 0.17%). 2. Amazon Glacier 저장소에서이크기와가깝게일치하는아카이브를찾고 Amazon Glacier 에서 Amazon Glacier 스테이징영역으로검색할일정을예약합니다. 3. 이아카이브가사용가능한경우아카이브를임시 Amazon S3 버킷으로복사합니다. 선택적으로 RRS(Reduced redundancy storage) 옵션을사용할수있습니다. 이옵션을사용하는이유는대상리전에대한복사프로세스가 24 시간을초과할수도있기때문입니다. 검색된 Amazon Glacier 객체는스테이징영역에서 24 시간동안만사용할수있습니다. 4. 충분한로컬 (Amazon EBS) 스토리지가있는대상리전에서마이크로인스턴스 ( 비용을낮게유지하기위해 ) 를사용하여객체 ( 아카이브파일 ) 를다운로드합니다. 5. 대상리전에서이파일을 Amazon Glacier 에추가합니다. 6. 원본리전의임시 Amazon S3 버킷및원본리전의 Amazon Glacier 에서 Amazon EBS 볼륨에대한아카이브파일의임시사본을삭제합니다. 전략 2: 오프라인전송 이전략에서는리전간에전송하기위해고객이제공하는스토리지디바이스 ( 이동식디스크 ) 가필요합니다. 이디스크의크기는전송되는아카이브의크기보다크거나같아야합니다.
오프라인으로 Amazon Glacier 스토리지를전송하려면 원본리전의오프라인스토리지 ( 디스크 ) 로데이터아카이브를전송하기위한 AWS Import/Export 작업을예약합니다. 작업세부정보를사용하여내보내기위해전송되는디스크를식별합니다. 내보낸아카이브디스크를수신할때까지기다립니다. 대상리전에서 AWS Import/Export 작업을예약합니다. 작업세부정보를사용하여 AWS Import/Export 서비스를위해전송되는디스크를식별하고대상리전으로전송합니다. Amazon Glacier 리전마이그레이션을수행하기전에대상리전과원본리전이 AWS Import/Export 서비스를지원하는지확인하는것이좋습니다. 데이터베이스 Amazon RDS 서비스마이그레이션 Amazon Relational Database Service(Amazon RDS) 는클라우드에서관계형데이터베이스를쉽게설치, 운영및확장할수있는웹서비스입니다. 본서비스는시간소모적인데이터베이스관리작업을처리하는한편, 비용효율적이고크기를조정할수있는용량을제공하므로, 고객사는애플리케이션과비즈니스에좀더집중할수있습니다. 데이터베이스보안그룹 Amazon RDS 에는 CIDR 표기법 IPv4 네트워크주소또는 Amazon EC2 보안그룹을사용하여데이터베이스서비스에대한액세스를제한하는고유의보안그룹세트가있습니다. Amazon EC2 보안그룹과마찬가지로각 Amazon RDS 보안그룹은이름을가지고있으며한 AWS 리전에하나만있습니다. 데이터베이스인스턴스및데이터 고객은애플리케이션에서데이터정지, 데이터베이스이동및작업다시시작을위해가동중지를예약해야할수있습니다. 종합적인개요는다음과같습니다. 모든트랜잭션을중지하거나스냅샷을찍습니다 ( 하지만이시점후변경이손실되며 Amazon RDS 인스턴스에변경을다시작용해야할수있음 ). 임시 Amazon EC2 인스턴스를사용하여 Amazon RDS 의모든데이터를파일에덤프합니다. MySQL 의경우 mysqldump 도구를사용합니다. 이덤프를압축해야할수있습니다 (bzip 또는 gzip 참조 ). MS SQL 의경우 SQL Server Management Studio 또는 SQL 데이터베이스마이그레이션마법사를사용합니다. 참고 : Amazon RDS 는 Microsoft SQL Server 백업파일복원을지원하지않습니다. Oracle 의경우 Oracle Export/Import 유틸리티또는데이터펌프기능을사용합니다 (http://aws.amazon.com/articles/amazon-rds/4173109646282306 참조 ). CP, FTP 또는 Rsync 와같은표준도구를사용하여이데이터를대상리전의인스턴스에복사합니다.
새로운 Amazon RDS 보안그룹을사용하여대상리전에서새 Amazon RDS 인스턴스를시작합니다. 저장된데이터를가져옵니다. 데이터베이스가활성이고데이터베이스에데이터가있는지확인합니다. 원본리전에서기존 Amazon RDS 인스턴스를삭제합니다. Amazon RDS 데이터베이스서비스로데이터가져오기에대한자세한내용은 Amazon RDS 사용설명서의 DB 인스턴스로데이터가져오기 18 를참조하십시오. Amazon DynamoDB 마이그레이션 Amazon DynamoDB 는완벽하게관리되는 NoSQL 데이터베이스서비스로서원활한확장성과함께빠르고예측가능한성능을제공합니다. DynamoDB 는동일한리전내에서가용영역간에데이터를복제하지만리전간에는기본적으로데이터를복제하지않습니다. 하지만 Amazon Elastic MapReduce(EMR) 를사용하여이기능을수행할수있습니다. 참고 : 참조되는 DynamoDB 테이블은원본리전과대상리전에모두있어야합니다. Amazon EMR 사용에대한자세한내용은 Amazon DynamoDB 사용설명서의 DynamoDB 용 Amazon EMR 19 을참조하십시오. 특정가져오기 / 내보내기지침에대한자세한내용은 Amazon DynamoDB 사용설명서의 EMR Hive 명령 20 을참조하십시오. http://www.cloudally.com/ 에서타사솔루션도사용할수있습니다. 이솔루션은백업 / 복원을자동으로관리할수있으며대체리전으로복원할수있습니다. 타사솔루션을사용할때는마이그레이션수행수삭제되는특별보안 IAM 사용자자격증명만공유하는것이좋습니다. Amazon SimpleDB 마이그레이션 Amazon SimpleDB 는데이터베이스관리작업부담을덜어주는가용성높고유연한비관계형데이터스토리지입니다. 개발자는웹서비스요청을통해데이터항목을저장하고쿼리하며이후나머지부분은 Amazon SimpleDB 가처리합니다. AWS 리전간에 Amazon SimpleDB 데이터를복사하려면한리전의 Amazon SimpleDB 도메인에서데이터를추출하여다른리전의적절한대상에복사하는특정한작업또는스크립트를생성해야합니다. 이작업은 Amazon EC2 인스턴스에호스팅되며고객의목적과전문성에적합한관련 SDK 를사용합니다. 18 http://docs.amazonwebservices.com/amazonrds/latest/userguide/importdata.html 19 http://docs.amazonwebservices.com/elasticmapreduce/latest/developerguide/emrfordynamodb.html 20 http://docs.amazonwebservices.com/elasticmapreduce/latest/developerguide/emr_hive_commands.html
마이그레이션접근방식에는다음이포함됩니다. 새도메인과기존도메인에동시연결을설정하고, 기존도메인에서데이터를쿼리한다음, 데이터를새도메인에입력합니다. 기존도메인에서데이터를추출하고파일 ( 또는파일세트 ) 에저장한다음해당정보를새도메인에입력합니다. API 호출 BatchPutAttribute 를사용하여성능을향상하고수행되는 API 호출수를줄이는것이좋습니다. http://backupsdb.com/ 에서필요에맞는타사솔루션도사용할수있습니다. 타사솔루션을사용할때는마이그레이션수행수삭제되는특별보안 IAM 사용자자격증명만공유하는것이좋습니다. Amazon ElastiCache 마이그레이션 Amazon ElastiCache 는클라우드의인메모리캐시를손쉽게배포, 작동및조정할수있는웹서비스입니다. 현재는안에있는모든키를개별적으로알지못하면 Amazon ElastiCache 를열거할수없습니다. 권장접근방식은새로운 Amazon ElasticCache 클러스터를시작하고이클러스터에서애플리케이션사용을통해자동으로입력을시작하는것입니다. 애플리케이션서비스 Amazon Simple Queue Service 대기열마이그레이션 Amazon Simple Queue Service(Amazon SQS) 는컴퓨터간에주고받는메시지를저장하기위한안정적이고확장가능한호스팅대기열을제공합니다. Amazon SQS 대기열은리전별로존재합니다. 대기열의데이터를마이그레이션하려면원본리전에서대기열을꺼내서대상리전의새대기열에삽입해야합니다. 대기열을마이그레이션할때는메시지를계속해서대략적인순서대로처리해야하는지를알아야합니다. 순서가중요하지않은경우 : 1. 대상리전에서새대기열을생성합니다. 2. 대상리전의새대기열에쓰기위해메시지를대기열에넣는애플리케이션을구성합니다. 3. 대상리전의새대기열에서읽기위해 Amazon SQS 대기열에서메시지를읽는애플리케이션을구성합니다. 4. 기존대기열에서반복적으로읽는스크립트를작성하고새대기열에제출합니다. 5. 원본리전의기존대기열이비어있는경우해당대기열을삭제합니다.
순서가중요한경우 : 대상리전에서새대기열을생성합니다. 대상리전에추가새임시대기열을생성합니다. 대상리전의새대기열에쓰기위해메시지를대기열에넣는애플리케이션을구성합니다. 대상리전의새임시대기열에서읽기위해 SQS 대기열에서메시지를읽는애플리케이션을구성합니다. 기존대기열에서반복적으로읽는스크립트를작성하고새임시대기열에제출합니다. 원본리전의기존대기열이비어있는경우해당대기열을삭제합니다. 임시대기열이비어있는경우새대기열에서읽도록애플리케이션을다시구성하고임시대기열을삭제합니다. Amazon Simple Notification Service 항목마이그레이션 Amazon Simple Notification Service(Amazon SNS) 는클라우드에서알림을쉽게설정, 운영, 전송할수있도록지원하는웹서비스입니다. Amazon SNS 항목은리전별로존재합니다. 이항목은 AWS Management Console 을통해수동으로또는명령줄도구나직접적인 API 호출을사용하여프로그래밍방식으로대상리전에서다시생성할수있습니다. 지정된리전에서현재 Amazon SNS 항목을나열하려면다음명령을사용합니다. sns-list-topics --region <sourceregionname> Amazon Simple Notification Service 명령줄도구에대한자세한내용은 http://aws.amazon.com/developertools/3688 을참조하십시오. 배포및관리 AWS CloudFormation 을통한마이그레이션 개발자와시스템관리자는 AWS CloudFormation 을통해쉽게관련 AWS 리소스모음을생성및관리하고순서에따라예측가능한방식으로프로비저닝하고업데이트할수있습니다. AWS CloudFormation 의샘플템플릿을사용하거나자신의템플릿을생성하여, 애플리케이션실행에필요한 AWS 리소스는물론기타관련종속성또는런타임파라미터에대해기술할수있습니다. 자세한내용은 http://docs.amazonwebservices.com/awscloudformation/latest/userguide/welcome.html 을참조하십시오. 많은고객이단일 AWS 리전내에서개발, 테스트및다중생산환경을생성하기위해 AWS CloudFormation 을사용하지만, 이동일한템플릿을다른리전에재사용할수있습니다. 다른리전에서해당템플릿을약간수정한후사용하여재해복구및리전마이그레이션시나리오를처리할수있습니다.
일반적으로, 아래와같이리전간에다른리전별정보 ( 예 : AMI 의고유 ID) 를대체하기위한매핑선언을변경하여 AWS CloudFormation 템플릿을즉시사용할수있습니다. "Mappings" : { "RegionMap" : { "us-east-1" : { "AMI" : "ami-97ed27fe" }, "us-west-1" : { "AMI" : "ami-59c39c1c" }, "us-west-2" : { "AMI" : "ami-9e901dae" }, "eu-west-1" : { "AMI" : "ami-87cef2f3" }, "ap-southeast-1" : { "AMI" : "ami-c44e0b96" }, "ap-northeast-1" : { "AMI" : "ami-688a3d69" }, "sa-east-1" : { "AMI" : "ami-4e37e853" } } } 매핑선언에대한자세한내용은 AWS CloudFormation 사용설명서의매핑선언을참조하십시오. CloudFormer 를사용하여환경캡처 CloudFormer 는고객이기존 AWS 리소스에서 AWS CloudFormation 템플릿을만들수있는프로토타입도구입니다. 기존프로세스와도구를사용하여애플리케이션리소스를프로비저닝하고구성합니다. AWS 리전내의환경에서이러한리소스가프로비저닝된후 CloudFormer 도구는리소스구성의 스냅샷 을찍습니다. 이러한리소스는 AWS CloudFormation 템플릿에배치되며, AWS CloudFormation 콘솔을통해애플리케이션환경의사본을시작할수있습니다. CloudFormer 도구는템플릿을한층더사용자지정할수있도록 AWS CloudFormation 템플릿의시작점을생성합니다. 예를들면, 다음을수행할수있습니다. 시작시간에스택이구성될수있도록파라미터를추가합니다. 특정환경과지리적리전에맞게템플릿을사용자지정할수있도록매핑을추가합니다. 리소스간의속성데이터흐름을위해정적값을 Ref 및 Fn::GetAtt 함수로대체합니다. 여기서한속성의값은다른리소스의속성값에따라다릅니다. 시작시간에 Amazon EC2 인스턴스에파라미터를전달하기위한 Amazon EC2 인스턴스사용자데이터를입력합니다. Amazon RDS 데이터베이스인스턴스이름과마스터암호를사용자지정합니다. 고객리소스스택을캡처하는 CloudFormer 설정에대한자세한내용은 http://www.youtube.com/watch?v=kipwnvlep8k 를참조하십시오. 참고 : CloudFormer 는현재 VPC 관련구성가져오기를지원하지않습니다.
API 함축 AWS 리전에연결하기위해프로그래밍방식의액세스가필요한경우퍼블릭으로정의한엔드포인트를 API 서비스요청에사용해야합니다. 일부웹서비스에서는리전을지정하지않는일반엔드포인트를사용할수있지만, 이러한일반엔드포인트는실제로서비스의특정리전별엔드포인트로확인됩니다. 현재리전및서비스엔드포인트 URL 의신뢰할수있는목록에대한자세한내용은 http://docs.amazonwebservices.com/general/latest/gr/rande.html 을참조하십시오. 고객스크립트및프로그램업데이트 적절한리전별엔드포인트와통신하도록보장하기위해 AWS API 와상호작용하는자체개발스크립트와프로그램을업데이트해야할수있습니다 ( 직접적으로또는 SDK 나명령줄도구중하나사용하여업데이트 ). 각 SDK 에는액세스되는리전을지정하기위한고유의형식이있습니다. 명령줄도구는일반적으로 region 파라미터를지원합니다. 중요고려사항 AWS 인증서나프라이빗키를디스크에그대로두지마십시오. 명령또는환경변수에비밀정보를입력한경우셸기록파일을지우십시오. 암호를계정에서활성인상태로두지마십시오. 이미지에 authorized_keys 파일의퍼블릭 SSH 키가포함되지않는지확인하십시오. 이경우다른사람이의도적으로사용하지않더라도다른사람의서버에백도어가생깁니다. [--region], [--kernel], [--ramdisk] 등의옵션이선택적이더라도적용가능한경우항상옵션을사용하는것이좋습니다. IP 주소연결이 AMI 와연결되는지확인합니다. 연결되는해당연결을제거하고경우마이그레이션후정확한세부정보로수정합니다. 마무리인사 시스템마이그레이션을수행할때는항상포괄적으로계획하고테스트하는것이좋습니다. 예상치않은결과에대한장애복구프로세스와함께마이그레이션의모든요소를반드시계획해야합니다. AWS 에서는비용효과적으로테스트할수있으며마이그레이션이성공적으로완료될때까지기존시스템인프라를유지할수있으므로이프로세스를더쉽게진행할수있습니다.
문서수정 2012년 11월 최초릴리스 2012년 12월 EBS 스냅샷복사 ( 리전간복사 ) 추가 보류중인 AMI 복사표시 레거시 AMI 복사제거 2013년 1월 S3의 DNS Zone Apex 지원에대한오래된제한사항제거 2013년 3월 AMI 복사기능에대한세부정보추가