{"id":17463,"date":"2025-12-16T11:20:21","date_gmt":"2025-12-16T07:50:21","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=17463"},"modified":"2025-12-16T11:20:21","modified_gmt":"2025-12-16T07:50:21","slug":"migrate-aws-ec2-digitalocean","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/de\/servers\/migrate-aws-ec2-digitalocean\/","title":{"rendered":"Migration einer Live-Anwendung von AWS EC2 zu DigitalOcean \u2013 Ein vollst\u00e4ndiger Leitfaden ohne Ausfallzeiten"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-1\"><span id=\"%da%86%da%af%d9%88%d9%86%d9%87-%db%8c%da%a9-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d8%b2%d9%86%d8%af%d9%87-%d8%b1%d8%a7-%d8%a7%d8%b2-aws-ec2-%d8%a8%d9%87-digitalocean-%d9%85%d9%86%d8%aa\">\u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0631\u0627 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u0645\u061f \u2014 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u06af\u0627\u0645\u200c\u0647\u0627<\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645 \u0648 \u0641\u0646\u06cc \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u0686\u06af\u0648\u0646\u0647 <a href=\"#\" target=\"_blank\" rel=\"noopener\">How to Migrate a Live Application from AWS EC2 to DigitalOcean<\/a> \u0631\u0627 \u0628\u0627 \u06a9\u0645\u062a\u0631\u06cc\u0646 downtime \u0648 \u062d\u0641\u0638 \u0645\u0644\u0627\u062d\u0638\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648 \u0634\u0628\u06a9\u0647 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<ul>\n<li>\u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0648 \u0641\u0647\u0631\u0633\u062a\u200c\u0628\u0631\u062f\u0627\u0631\u06cc \u0645\u0646\u0627\u0628\u0639 (EC2\u060c EBS\u060c RDS\u060c S3\u060c ELB\u060c Security Groups\u060c IAM)<\/li>\n<li>\u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u0647\u062f\u0641 \u062f\u0631 DigitalOcean (Droplet\u060c VPC\u060c Volumes\u060c Spaces\u060c Load Balancer\u060c Managed DB)<\/li>\n<li>\u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 (\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u060c S3 \u2192 Spaces\u060c DB \u2192 Managed DB \u06cc\u0627 replica)<\/li>\n<li>\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 (\u0631\u06cc\u200c\u0627\u0633\u062a\u0648\u0631\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc\u200c\u0634\u062f\u0646\u060c \u06cc\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 App Platform\/Kubernetes)<\/li>\n<li>Cutover \u0628\u0627 \u06a9\u0645\u062a\u0631\u06cc\u0646 downtime (replication\u060c floating IP\u060c DNS TTL)<\/li>\n<li>\u067e\u0627\u06a9\u0633\u0627\u0632\u06cc AWS \u0648 \u0628\u0631\u0631\u0633\u06cc \u0646\u0647\u0627\u06cc\u06cc\u060c \u0648 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-2\"><span id=\"1-%d9%85%d8%b1%d8%ad%d9%84%d9%87-%d8%a7%d9%88%d9%84-%d8%a7%d8%b1%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%d9%88-%d8%a2%d9%85%d8%a7%d8%af%d9%87%d8%b3%d8%a7%d8%b2%db%8c\">1. \u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644 \u2014 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0648 \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc<\/span><\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-2-1\"><span id=\"%d9%81%d9%87%d8%b1%d8%b3%d8%aa%d8%a8%d8%b1%d8%af%d8%a7%d8%b1%db%8c-%d9%85%d9%86%d8%a7%d8%a8%d8%b9\">\u0641\u0647\u0631\u0633\u062a\u200c\u0628\u0631\u062f\u0627\u0631\u06cc \u0645\u0646\u0627\u0628\u0639<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0645\u0644 \u062a\u0645\u0627\u0645 \u0645\u0646\u0627\u0628\u0639 \u0645\u0631\u062a\u0628\u0637 \u0631\u0627 \u062a\u0647\u06cc\u0647 \u06a9\u0646\u06cc\u062f: EC2 instances\u060c EBS volumes \u0648 snapshots\u060c security groups\u060c load balancers\u060c IAM roles\/policies \u0648 \u062f\u06cc\u06af\u0631 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0648\u0627\u0628\u0633\u062a\u0647 \u0645\u0627\u0646\u0646\u062f S3\u060c RDS\u060c ElastiCache \u0648 CloudFront.<\/p>\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0639\u06cc\u06cc\u0646 \u0646\u0648\u0639 \u0627\u067e<\/strong> \u0627\u0644\u0632\u0627\u0645\u06cc \u0627\u0633\u062a: \u0622\u06cc\u0627 \u0627\u067e stateful (\u0645\u062b\u0644\u0627\u064b \u062f\u0627\u0631\u0627\u06cc DB)\u060c stateless (\u0645\u062b\u0644\u0627\u064b frontend)\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06cc\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 GPU\/\u0631\u0646\u062f\u0631\u06cc\u0646\u06af \u062f\u0627\u0631\u062f\u061f<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-2-2\"><span id=\"%d8%aa%d8%b9%db%8c%db%8c%d9%86-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af%db%8c-%d9%88-%d9%84%d9%88%da%a9%db%8c%d8%b4%d9%86\">\u062a\u0639\u06cc\u06cc\u0646 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0648 \u0644\u0648\u06a9\u06cc\u0634\u0646<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u0623\u062e\u06cc\u0631 \u0634\u0628\u06a9\u0647\u060c \u0646\u06cc\u0627\u0632 \u0628\u0647 GPU\u060c \u0628\u06cc\u0634\u06cc\u0646\u0647 IOPS \u0648 \u067e\u0647\u0646\u0627\u06cc \u0628\u0627\u0646\u062f \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.<\/p>\n<p class=\"wp-block-paragraph\"><em>\u0627\u06af\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u067e\u06cc\u0646\u06af \u067e\u0627\u06cc\u06cc\u0646 \u0628\u0631\u0627\u06cc \u062a\u0631\u06cc\u062f \u06cc\u0627 \u06af\u06cc\u0645 \u062f\u0627\u0631\u06cc\u062f\u060c \u0644\u0648\u06a9\u06cc\u0634\u0646 \u0646\u0632\u062f\u06cc\u06a9 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0646\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f. DigitalOcean \u0646\u06cc\u0632 \u0645\u0646\u0627\u0637\u0642 \u0645\u062e\u062a\u0644\u0641\u06cc \u062f\u0627\u0631\u062f\u2014\u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u062f\u0627\u0645 \u062f\u06cc\u062a\u0627\u0633\u0646\u062a\u0631 DO \u0646\u0632\u062f\u06cc\u06a9\u200c\u062a\u0631 \u0627\u0633\u062a.<\/em><\/p>\n<h2 class=\"wp-block-heading\" id=\"h-3\"><span id=\"2-%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d9%85%d8%b9%d9%85%d8%a7%d8%b1%db%8c-%d9%87%d8%af%d9%81-%d8%af%d8%b1-digitalocean\">2. \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u0647\u062f\u0641 \u062f\u0631 DigitalOcean<\/span><\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-3-1\"><span id=\"%d8%a7%d8%ac%d8%b2%d8%a7-%d9%be%db%8c%d8%b4%d9%86%d9%87%d8%a7%d8%af%db%8c\">\u0627\u062c\u0632\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u0639\u0645\u0627\u0631\u06cc \u0634\u0627\u0645\u0644 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<ul>\n<li><strong>Droplet<\/strong> \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 (VPS)<\/li>\n<li><strong>Managed Databases<\/strong> (Postgres \/ MySQL) \u0628\u0631\u0627\u06cc \u062d\u0630\u0641 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc replication \u0648 backups<\/li>\n<li><strong>Spaces<\/strong> (S3-compatible) \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u0627\u0634\u06cc\u0627\u0621 \u0627\u0632 S3<\/li>\n<li><strong>Block Storage Volumes<\/strong> \u0628\u0631\u0627\u06cc \u062f\u06cc\u062a\u0627\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0648 persistence<\/li>\n<li><strong>Load Balancer<\/strong> \u0648 <strong>Floating IP<\/strong> \u0628\u0631\u0627\u06cc cutover \u0628\u062f\u0648\u0646 downtime<\/li>\n<li><strong>VPC<\/strong> \u0628\u0631\u0627\u06cc \u0627\u06cc\u0632\u0648\u0644\u0647 \u06a9\u0631\u062f\u0646 \u0634\u0628\u06a9\u0647 \u0648 firewall \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc<\/li>\n<li>\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 GPU \u0627\u0632 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc GPU \u06cc\u0627 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\" id=\"h-3-2\"><span id=\"%d8%a7%d9%86%d8%aa%d8%ae%d8%a7%d8%a8-%d8%b3%d8%a7%db%8c%d8%b2-%d9%88-%d9%86%d9%88%d8%b9-droplet\">\u0627\u0646\u062a\u062e\u0627\u0628 \u0633\u0627\u06cc\u0632 \u0648 \u0646\u0648\u0639 Droplet<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u067e\u200c\u0647\u0627\u06cc CPU-bound \u0627\u0632 CPU-optimized droplets \u0648 \u0628\u0631\u0627\u06cc \u0627\u067e\u200c\u0647\u0627\u06cc \u062d\u0627\u0641\u0638\u0647\u200c\u0645\u062d\u0648\u0631 \u0627\u0632 droplet\u0647\u0627\u06cc \u0628\u0627 RAM \u0628\u0627\u0644\u0627 \u06cc\u0627 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc Managed \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p class=\"wp-block-paragraph\"><em>\u0628\u0631\u0627\u06cc \u062a\u0631\u06cc\u062f \u06cc\u0627 \u06af\u06cc\u0645\u060c VPS \u0645\u062e\u0635\u0648\u0635 \u0628\u0627 \u067e\u06cc\u0646\u06af \u067e\u0627\u06cc\u06cc\u0646 \u0648 \u0645\u0646\u0627\u0628\u0639 \u0634\u0628\u06a9\u0647 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062f\u0631 \u0644\u0648\u06a9\u06cc\u0634\u0646 \u0645\u0646\u0627\u0633\u0628 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u0634\u0648\u062f.<\/em><\/p>\n<h2 class=\"wp-block-heading\" id=\"h-4\"><span id=\"3-%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%81%d8%a7%db%8c%d9%84-%d9%88-%d8%a7%d8%b4%db%8c%d8%a7%d8%a1-s3-%e2%86%92-spaces-ebs-%e2%86%92-volume\">3. \u0627\u0646\u062a\u0642\u0627\u0644 \u0641\u0627\u06cc\u0644 \u0648 \u0627\u0634\u06cc\u0627\u0621 (S3 \u2192 Spaces \/ EBS \u2192 Volume)<\/span><\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-4-1\"><span id=\"%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%84-s3-%e2%86%92-spaces\">\u0627\u0646\u062a\u0642\u0627\u0644 S3 \u2192 Spaces<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u0627\u0634\u06cc\u0627\u0621 \u0627\u0632 S3 \u0628\u0647 Spaces \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc S3-compatible \u0645\u062b\u0644 <strong>rclone<\/strong> \u06cc\u0627 <strong>s3cmd<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>rclone config\nrclone sync s3:my-bucket spaces:my-space --progress<\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 aws cli export \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0628\u0627 doctl \u06cc\u0627 s3cmd \u0622\u067e\u0644\u0648\u062f \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-4-2\"><span id=\"%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%81%d8%a7%db%8c%d9%84%d9%87%d8%a7%db%8c-%d8%b3%d8%b1%d9%88%d8%b1-ebs-%e2%86%92-droplet\">\u0627\u0646\u062a\u0642\u0627\u0644 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 (EBS \u2192 Droplet)<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062d\u062c\u0645\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0648 \u0645\u062d\u062a\u0648\u0627\u0647\u0627\u06cc \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0627\u0632 <strong>rsync<\/strong> \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>rsync -azP --delete -e \"ssh -i \/path\/to\/key.pem\" ubuntu@ec2-ip:\/var\/www\/ \/home\/ubuntu\/www\/<\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 snapshot\u060c \u0627\u0628\u062a\u062f\u0627 snapshot \u0627\u0632 EBS \u0628\u06af\u06cc\u0631\u06cc\u062f\u060c \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u0631\u0627 \u0641\u0634\u0631\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0628\u0647 Droplet \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-5\"><span id=\"4-%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%be%d8%a7%db%8c%da%af%d8%a7%d9%87-%d8%af%d8%a7%d8%af%d9%87-rds-%e2%86%92-managed-db-%db%8c%d8%a7-self-hosted\">4. \u0627\u0646\u062a\u0642\u0627\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 (RDS \u2192 Managed DB \u06cc\u0627 self-hosted)<\/span><\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-5-1\"><span id=\"%da%af%d8%b2%db%8c%d9%86%d9%87%d9%87%d8%a7-%d8%a8%d8%b1%d8%a7%d8%b3%d8%a7%d8%b3-%d9%86%d9%88%d8%b9-db\">\u06af\u0632\u06cc\u0646\u0647\u200c\u0647\u0627 \u0628\u0631\u0627\u0633\u0627\u0633 \u0646\u0648\u0639 DB<\/span><\/h3>\n<p class=\"wp-block-paragraph\"><strong>MySQL\/MariaDB:<\/strong><\/p>\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc downtime \u06a9\u0645\u060c replica \u062f\u0631 DigitalOcean \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 switchover \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f. \u0627\u06af\u0631 \u0627\u0632 RDS \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f:<\/p>\n<ol>\n<li>\u062f\u0631 DO \u06cc\u06a9 Managed Database \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0627\u0632 RDS \u06cc\u06a9 replica \u062e\u0627\u0631\u062c\u06cc \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0627\u0632 mysqldump \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>mysqldump -u user -p --single-transaction --quick --lock-tables=false dbname &gt; dump.sql\nmysql -h do-managed-host -u user -p dbname &lt; dump.sql<\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\"><strong>PostgreSQL:<\/strong> \u0627\u0632 logical replication (pg_dump\/pg_restore) \u06cc\u0627 streaming replication \u0628\u0631\u0627\u06cc \u0646\u0632\u062f\u06cc\u06a9 \u0628\u0647 \u0635\u0641\u0631 \u0642\u0637\u0639\u06cc \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>pg_dump -Fc -h aws-rds-host -U user dbname &gt; db.dump\npg_restore -d dbname -h do-host -U user db.dump<\/code><\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\" id=\"h-5-2\"><span id=\"%d8%b1%d8%a7%d9%87%da%a9%d8%a7%d8%b1-%d8%a8%d8%af%d9%88%d9%86-downtime-%d9%85%d8%ab%d8%a7%d9%84-mysql\">\u0631\u0627\u0647\u06a9\u0627\u0631 \u0628\u062f\u0648\u0646 downtime (\u0645\u062b\u0627\u0644 MySQL)<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0631\u0648\u0646\u062f \u06a9\u0644\u06cc:<\/p>\n<ol>\n<li>\u062f\u0631 AWS binary logging \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u062f\u0631 DigitalOcean \u06cc\u06a9 \u0633\u0631\u0648\u0631 MySQL replica \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 slave \u0628\u0647 master \u062f\u0631 AWS \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u067e\u0633 \u0627\u0632 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc\u060c \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0628\u0647 replica \u0647\u062f\u0627\u06cc\u062a \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 promote \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n<div class=\"pk-alert pk-alert-info\" role=\"alert\" >\n\u0628\u0631\u0627\u06cc \u062f\u0627\u0634\u062a\u0646 \u06a9\u0645\u062a\u0631\u06cc\u0646 downtime\u060c \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc binlog \u0648 \u062a\u0633\u062a switchover \u062f\u0631 \u0645\u062d\u06cc\u0637 staging \u0631\u0627 \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f.<br \/>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"h-6\"><span id=\"5-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%da%af%d8%b2%db%8c%d9%86%d9%87%d9%87%d8%a7-%d9%88-%d8%af%d8%b3%d8%aa%d9%88%d8%b1%d8%a7\">5. \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u2014 \u06af\u0632\u06cc\u0646\u0647\u200c\u0647\u0627 \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a<\/span><\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-6-1\"><span id=\"%d8%b1%d9%88%d8%b4-1-%da%a9%d8%a7%d9%86%d8%aa%db%8c%d9%86%d8%b1%db%8c%d8%b4%d8%af%d9%86-%d9%88-%d8%b1%d8%ac%db%8c%d8%b3%d8%aa%d8%b1%db%8c\">\u0631\u0648\u0634 1 \u2014 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc\u200c\u0634\u062f\u0646 \u0648 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc\u200c\u0634\u062f\u0646 \u0628\u0627 Docker\/Kubernetes \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u0645\u0647\u0627\u062c\u0631\u062a \u0628\u062f\u0648\u0646 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0628\u0647 AMI \u0627\u0633\u062a. \u0627\u06cc\u0645\u06cc\u062c \u0631\u0627 \u062f\u0631 CI \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0628\u0647 Docker Hub \u06cc\u0627 GitLab Registry \u067e\u0648\u0634 \u06a9\u0646\u06cc\u062f.<\/p>\n<p class=\"wp-block-paragraph\">\u062f\u0631 DO \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 Managed Kubernetes \u06cc\u0627 droplets \u0628\u0627 docker-compose \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker-compose pull\ndocker-compose up -d --remove-orphans<\/code><\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\" id=\"h-6-2\"><span id=\"%d8%b1%d9%88%d8%b4-2-%d8%b1%db%8c%d8%a7%d8%b3%d8%aa%d9%88%d8%b1-%d8%b3%d9%86%d8%aa%db%8c\">\u0631\u0648\u0634 2 \u2014 \u0631\u06cc\u200c\u0627\u0633\u062a\u0648\u0631 \u0633\u0646\u062a\u06cc<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0631\u0648\u0634 \u0633\u0646\u062a\u06cc \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627 \u0631\u0627 \u0646\u0635\u0628\u060c \u06a9\u062f \u0631\u0627 \u0628\u0627 rsync \u0645\u0646\u062a\u0642\u0644 \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0628\u0627 systemd \u06cc\u0627 process manager \u0645\u062b\u0644 PM2 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>npm install --production\npm2 start app.js --name myapp<\/code><\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\" id=\"h-6-3\"><span id=\"%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-app-platform-%d9%88-managed-services\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 App Platform \u0648 Managed Services<\/span><\/h3>\n<p class=\"wp-block-paragraph\">DigitalOcean App Platform \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f CI\/CD\u060c autoscaling \u0648 SSL \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0646\u062f \u0648 \u0628\u0631\u0627\u06cc \u0627\u067e\u200c\u0647\u0627\u06cc \u0648\u0628 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a \u0627\u06af\u0631 \u0646\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0633\u0631\u0648\u0631 \u067e\u0627\u06cc\u06cc\u0646\u200c\u0633\u0637\u062d \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-7\"><span id=\"6-%d8%b4%d8%a8%da%a9%d9%87%d8%8c-%d8%a7%d9%85%d9%86%db%8c%d8%aa-%d9%88-cutover-%d8%a8%d8%af%d9%88%d9%86-downtime\">6. \u0634\u0628\u06a9\u0647\u060c \u0627\u0645\u0646\u06cc\u062a \u0648 Cutover \u0628\u062f\u0648\u0646 Downtime<\/span><\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-7-1\"><span id=\"floating-ip-%d9%88-load-balancer\">Floating IP \u0648 Load Balancer<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc cutover \u0628\u062f\u0648\u0646 downtime \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f Load Balancer \u062f\u0631 DO \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0632 <strong>Floating IP<\/strong> \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 target group \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p class=\"wp-block-paragraph\">\u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc <strong>blue-green<\/strong> \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0634\u0627\u0645\u0644 \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 green \u062f\u0631 DO \u0648 \u0627\u0646\u062a\u0634\u0627\u0631 \u06a9\u0627\u0645\u0644 \u0627\u067e<\/li>\n<li>Health checks<\/li>\n<li>\u062a\u0639\u0648\u06cc\u0636 Floating IP \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 Target Group \u062f\u0631 Load Balancer<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\"><strong>\u06a9\u0627\u0647\u0634 TTL DNS<\/strong> \u0642\u0628\u0644 \u0627\u0632 cutover \u0631\u0627 \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f (\u0645\u062b\u0644\u0627\u064b TTL=300s \u06cc\u0627 \u06a9\u0645\u062a\u0631) \u062a\u0627 propagation \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-7-2\"><span id=\"%d9%81%d8%a7%db%8c%d8%b1%d9%88%d8%a7%d9%84-%d9%88-%d8%a7%d9%85%d9%86%db%8c%d8%aa\">\u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0648 \u0627\u0645\u0646\u06cc\u062a<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0628\u0647 \u062d\u0633\u0627\u0628 DO \u062e\u0648\u062f SSH key \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0648\u0631\u0648\u062f \u067e\u0633\u0648\u0631\u062f\u06cc \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0646\u0645\u0627\u06cc\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Edit \/etc\/ssh\/sshd_config: PermitRootLogin no, PasswordAuthentication no<\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\">\u0627\u0632 UFW \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u0627\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo ufw allow OpenSSH\nsudo ufw allow 80,443\/tcp\nsudo ufw enable<\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\">\u0627\u0632 cloud firewall \u062f\u0631 DO \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0648 \u0642\u0648\u0627\u0639\u062f \u0645\u0634\u0627\u0628\u0647 security groups \u062f\u0631 AWS \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f. \u0646\u0635\u0628 <strong>fail2ban<\/strong> \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 SSL \u0628\u0627 Certbot \u06cc\u0627 certificate \u0645\u062f\u06cc\u0631\u06cc\u062a\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 Load Balancer \u0646\u06cc\u0632 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<div class=\"pk-alert pk-alert-warning\" role=\"alert\" >\n\u0648\u0631\u0648\u062f SSH \u0628\u0627 \u067e\u0633\u0648\u0631\u062f \u0631\u06cc\u0633\u06a9 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0628\u0627\u0644\u0627\u06cc\u06cc \u062f\u0627\u0631\u062f\u061b \u0647\u0645\u06cc\u0634\u0647 \u0627\u0632 SSH Keys \u0648 2FA \u062f\u0631 \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc cloud \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"h-8\"><span id=\"7-%d9%86%da%a9%d8%a7%d8%aa-%d8%b9%d9%85%d9%84%db%8c%d8%a7%d8%aa%db%8c-%d9%88-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa%d9%87%d8%a7\">7. \u0646\u06a9\u0627\u062a \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0648 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627<\/span><\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-8-1\"><span id=\"doctl-%d9%85%d8%ab%d8%a7%d9%84%d9%87%d8%a7\">doctl \u0645\u062b\u0627\u0644\u200c\u0647\u0627<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0646\u0635\u0628 DO CLI \u0648 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>doctl auth init --access-token &lt;TOKEN&gt;<\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\">\u0645\u062b\u0627\u0644 \u0633\u0627\u062e\u062a Droplet:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>doctl compute droplet create my-droplet --size s-2vcpu-4gb --image ubuntu-22-04-x64 --region nyc3 --ssh-keys &lt;KEY_ID&gt; --vpc-uuid &lt;VPC_ID&gt; --wait<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>doctl compute cdn create --origin my-space.nyc3.digitaloceanspaces.com ...<\/code><\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\" id=\"h-8-2\"><span id=\"rsync-%d8%a8%d8%b1%d8%a7%db%8c-sync-incremental\">rsync \u0628\u0631\u0627\u06cc sync incremental<\/span><\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>rsync -azP --delete -e \"ssh -i ~\/.ssh\/do_key\" \/var\/www\/ user@do-ip:\/var\/www\/<\/code><\/pre>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"h-9\"><span id=\"8-%d9%be%d8%b3-%d8%a7%d8%b2-%d9%85%d9%87%d8%a7%d8%ac%d8%b1%d8%aa-%d8%aa%d8%b3%d8%aa-%d9%88-%d8%a8%d9%87%db%8c%d9%86%d9%87%d8%b3%d8%a7%d8%b2%db%8c\">8. \u067e\u0633 \u0627\u0632 \u0645\u0647\u0627\u062c\u0631\u062a \u2014 \u062a\u0633\u062a \u0648 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc<\/span><\/h2>\n<h3 class=\"wp-block-heading\" id=\"h-9-1\"><span id=\"%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d9%88-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af\">\u0628\u0631\u0631\u0633\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af<\/span><\/h3>\n<p class=\"wp-block-paragraph\">\u0628\u0627\u0632\u0631\u0633\u06cc \u0644\u0627\u06af\u200c\u0647\u0627\u060c latency \u0648 throughput \u0628\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u062b\u0644 Prometheus\/Grafana \u06cc\u0627 New Relic \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f. \u062a\u0633\u062a \u0628\u0627\u0631 \u0628\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u062b\u0644 ab \u06cc\u0627 siege \u0648 \u0628\u0631\u0631\u0633\u06cc IOPS \u0648 \u067e\u0647\u0646\u0627\u06cc \u0628\u0627\u0646\u062f \u0634\u0628\u06a9\u0647 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-9-2\"><span id=\"backup-%d9%88-disaster-recovery\">backup \u0648 Disaster Recovery<\/span><\/h3>\n<p class=\"wp-block-paragraph\">Snapshots \u0648 automated backups \u0628\u0631\u0627\u06cc Droplets \u0648 Managed Databases \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u067e\u0644\u0627\u0646 restore \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-10\"><span id=\"9-%d9%86%da%a9%d8%a7%d8%aa-%d9%87%d8%b2%db%8c%d9%86%d9%87-%d9%88-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d9%86%d8%a7%d8%a8%d8%b9\">9. \u0646\u06a9\u0627\u062a \u0647\u0632\u06cc\u0646\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0627\u0628\u0639<\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u0645\u0642\u0627\u06cc\u0633\u0647 \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627 \u0628\u06cc\u0646 AWS (EC2 + EBS + RDS + S3) \u0648 \u062a\u0631\u06a9\u06cc\u0628 DO (Droplets + Volumes + Managed DB + Spaces) \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<p class=\"wp-block-paragraph\"><em>\u0627\u06af\u0631 \u0627\u067e \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u06af\u0633\u062a\u0631\u062f\u0647 \u062f\u0627\u0631\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 CDN \u0648 BGP\/Anycast \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062a\u0623\u062e\u06cc\u0631 \u062c\u0647\u0627\u0646\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u062f.<\/em><\/p>\n<h2 class=\"wp-block-heading\" id=\"h-11\"><span id=\"10-%d9%85%d8%b4%da%a9%d9%84%d8%a7%d8%aa-%d8%b1%d8%a7%db%8c%d8%ac-%d9%88-%d8%b1%d8%a7%d9%87%d8%ad%d9%84%d9%87%d8%a7\">10. \u0645\u0634\u06a9\u0644\u0627\u062a \u0631\u0627\u06cc\u062c \u0648 \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627<\/span><\/h2>\n<ul>\n<li><strong>\u0627\u062e\u062a\u0644\u0627\u0641 \u0646\u0633\u062e\u0647\u200c\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647<\/strong> \u2192 \u062a\u0633\u062a compatibility \u0648 \u0627\u0646\u062c\u0627\u0645 migration \u062f\u0631 staging\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 logical dumps.<\/li>\n<li><strong>\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0648 \u0627\u0646\u062a\u0642\u0627\u0644 \u06a9\u0646\u062f<\/strong> \u2192 \u0641\u0634\u0631\u062f\u0647\u200c\u0633\u0627\u0632\u06cc tar+gzip\u060c resume \u0628\u0627 rsync \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Spaces \u0628\u0631\u0627\u06cc \u062a\u062d\u0648\u06cc\u0644 \u0645\u062d\u062a\u0648\u0627.<\/li>\n<li><strong>SSL \u0648 \u0627\u0631\u0648\u0631\u0647\u0627\u06cc CORS \u067e\u0633 \u0627\u0632 cutover<\/strong> \u2192 \u0628\u0631\u0631\u0633\u06cc certificate chain \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Nginx\/Load Balancer.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-12\"><span id=\"11-%d9%86%d9%85%d9%88%d9%86%d9%87-%da%a9%d8%a7%d9%86%d9%81%db%8c%da%af-nginx-%d8%a8%d8%b1%d8%a7%db%8c-load-balancer-%d9%88-upstream-droplets\">11. \u0646\u0645\u0648\u0646\u0647 \u06a9\u0627\u0646\u0641\u06cc\u06af Nginx \u0628\u0631\u0627\u06cc Load Balancer \u0648 upstream Droplets<\/span><\/h2>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>upstream app {\n    server 10.0.0.5:3000;\n    server 10.0.0.6:3000;\n}\nserver {\n    listen 80;\n    server_name example.com;\n    location \/ {\n        proxy_pass http:\/\/app;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\n}<\/code><\/pre>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"h-13\"><span id=\"12-%d9%86%da%a9%d8%a7%d8%aa-%d8%a7%d9%85%d9%86%db%8c%d8%aa%db%8c-%d9%88-%d8%b1%d8%b9%d8%a7%db%8c%d8%aa-best-practices\">12. \u0646\u06a9\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648 \u0631\u0639\u0627\u06cc\u062a best practices<\/span><\/h2>\n<ul>\n<li>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong>SSH Keys<\/strong> \u0648 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc <strong>2FA<\/strong> \u062f\u0631 \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc cloud<\/li>\n<li>\u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc IAM \u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc API<\/li>\n<li>\u0627\u062c\u0631\u0627\u06cc vulnerability scans \u0648 patch management<\/li>\n<li>\u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc DDoS protection \u0648 WAF \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632<\/li>\n<\/ul>\n<div class=\"pk-alert pk-alert-danger\" role=\"alert\" >\n\u0642\u0628\u0644 \u0627\u0632 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0646\u0647\u0627\u06cc\u06cc AWS\u060c \u0627\u0632 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc\u200c\u0647\u0627 \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0647\u062f\u0641 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0627\u0632 \u062f\u0633\u062a \u0631\u0641\u062a\u0646 \u062f\u0627\u062f\u0647 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f.<br \/>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\"><span id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87%da%af%db%8c%d8%b1%db%8c\">\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0686\u0627\u0644\u0634\u200c\u0628\u0631\u0627\u0646\u06af\u06cc\u0632 \u0627\u0633\u062a \u0627\u0645\u0627 \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0631\u06cc\u0632\u06cc \u0635\u062d\u06cc\u062d\u2014\u0634\u0627\u0645\u0644 inventory \u062f\u0642\u06cc\u0642\u060c replication \u0628\u0631\u0627\u06cc DB\u060c \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Floating IP \u06cc\u0627 Load Balancer \u0628\u0631\u0627\u06cc cutover\u2014\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 downtime \u0631\u0627 \u062d\u062f\u0627\u0642\u0644 \u06a9\u0631\u062f \u0648 \u0627\u0632 \u0645\u0632\u0627\u06cc\u0627\u06cc Droplet\u060c Spaces \u0648 Managed Databases \u0628\u0647\u0631\u0647 \u0628\u0631\u062f.<\/p>\n<p class=\"wp-block-paragraph\">\u062a\u06cc\u0645 \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a \u062a\u0627 \u062f\u0631 \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u0628\u0631\u0627\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0646\u06cc\u0627\u0632\u0645\u0646\u062f GPU\u060c VPS \u0645\u062e\u0635\u0648\u0635 \u062a\u0631\u06cc\u062f \u06cc\u0627 \u06af\u06cc\u0645\u060c CDN \u0648 \u0631\u0627\u0647\u06a9\u0627\u0631\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647\u200c\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u06a9\u0645\u06a9 \u06a9\u0646\u062f.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-faq\"><span id=\"%d8%b3%d8%a4%d8%a7%d9%84%d8%a7%d8%aa-%d9%85%d8%aa%d8%af%d8%a7%d9%88%d9%84\">\u0633\u0624\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/span><\/h2>\n<div id=\"collapsibles-6a03a9c56958a\" class=\"pk-collapsibles\" role=\"tablist\" aria-multiselectable=\"true\">\n<div class=\"pk-collapsible pk-card \">\n\t\t\t<div class=\"pk-card-header\" role=\"tab\" id=\"card-6a03a9c5694eb\">\n\t\t\t\t<h6 class=\"pk-card-title pk-title\">\n\t\t\t\t\t<a data-toggle=\"collapse\" class=\"pk-font-heading\" href=\"#pk-collapse-6a03a9c5694eb\" data-parent=\"#pk-collapsibles-6a03a9c56958a\" aria-controls=\"collapse-6a03a9c5694eb\">\n\t\t\t\t\t\t\u06f1. \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0686\u06cc\u0633\u062a\u061f\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/h6>\n\t\t\t<\/div>\n\n\t\t\t<div id=\"pk-collapse-6a03a9c5694eb\" class=\"pk-collapse\" style=\"display:none;\" role=\"tabpanel\" aria-labelledby=\"card-6a03a9c5694eb\">\n\t\t\t\t<div class=\"pk-card-body\">\n\t\t\t\t\t\n\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc replica \u062f\u0631 DigitalOcean \u0648 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc binlog \u06cc\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 logical replication \u0628\u0631\u0627\u06cc PostgreSQL \u0648 \u0633\u067e\u0633 switchover \u067e\u0633 \u0627\u0632 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0627\u0633\u062a.<br \/>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\n<div class=\"pk-collapsible pk-card \">\n\t\t\t<div class=\"pk-card-header\" role=\"tab\" id=\"card-6a03a9c569517\">\n\t\t\t\t<h6 class=\"pk-card-title pk-title\">\n\t\t\t\t\t<a data-toggle=\"collapse\" class=\"pk-font-heading\" href=\"#pk-collapse-6a03a9c569517\" data-parent=\"#pk-collapsibles-6a03a9c56958a\" aria-controls=\"collapse-6a03a9c569517\">\n\t\t\t\t\t\t\u06f2. \u0686\u06af\u0648\u0646\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0631\u0627 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u0645\u061f\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/h6>\n\t\t\t<\/div>\n\n\t\t\t<div id=\"pk-collapse-6a03a9c569517\" class=\"pk-collapse\" style=\"display:none;\" role=\"tabpanel\" aria-labelledby=\"card-6a03a9c569517\">\n\t\t\t\t<div class=\"pk-card-body\">\n\t\t\t\t\t\n\u0641\u0634\u0631\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u0627 tar+gzip\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 rsync \u0628\u0631\u0627\u06cc resume \u0648 \u0633\u067e\u0633 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u062f\u0631 Spaces \u0628\u0631\u0627\u06cc \u062a\u062d\u0648\u06cc\u0644 \u0633\u0631\u06cc\u0639 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<br \/>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\n<div class=\"pk-collapsible pk-card \">\n\t\t\t<div class=\"pk-card-header\" role=\"tab\" id=\"card-6a03a9c569540\">\n\t\t\t\t<h6 class=\"pk-card-title pk-title\">\n\t\t\t\t\t<a data-toggle=\"collapse\" class=\"pk-font-heading\" href=\"#pk-collapse-6a03a9c569540\" data-parent=\"#pk-collapsibles-6a03a9c56958a\" aria-controls=\"collapse-6a03a9c569540\">\n\t\t\t\t\t\t\u06f3. \u0622\u06cc\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 Managed Database \u062f\u0631 DO \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645\u061f\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/h6>\n\t\t\t<\/div>\n\n\t\t\t<div id=\"pk-collapse-6a03a9c569540\" class=\"pk-collapse\" style=\"display:none;\" role=\"tabpanel\" aria-labelledby=\"card-6a03a9c569540\">\n\t\t\t\t<div class=\"pk-card-body\">\n\t\t\t\t\t\n\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a replication \u0648 backups \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Managed Databases (Postgres\/MySQL) \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a.<br \/>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\n<div class=\"pk-collapsible pk-card \">\n\t\t\t<div class=\"pk-card-header\" role=\"tab\" id=\"card-6a03a9c56956a\">\n\t\t\t\t<h6 class=\"pk-card-title pk-title\">\n\t\t\t\t\t<a data-toggle=\"collapse\" class=\"pk-font-heading\" href=\"#pk-collapse-6a03a9c56956a\" data-parent=\"#pk-collapsibles-6a03a9c56958a\" aria-controls=\"collapse-6a03a9c56956a\">\n\t\t\t\t\t\t\u06f4. \u0686\u06af\u0648\u0646\u0647 cutover \u0628\u0627 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u062a\u0623\u062b\u06cc\u0631 \u0631\u0648\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0645\u061f\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/h6>\n\t\t\t<\/div>\n\n\t\t\t<div id=\"pk-collapse-6a03a9c56956a\" class=\"pk-collapse\" style=\"display:none;\" role=\"tabpanel\" aria-labelledby=\"card-6a03a9c56956a\">\n\t\t\t\t<div class=\"pk-card-body\">\n\t\t\t\t\t\n\u06a9\u0627\u0647\u0634 TTL DNS\u060c \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 green \u062f\u0631 DO\u060c \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Floating IP \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 Target Group \u062f\u0631 Load Balancer \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0645\u0624\u062b\u0631 \u0647\u0633\u062a\u0646\u062f.<br \/>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\n<\/div>\n\t\t\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"\u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0647\u0646\u06af\u0627\u0645 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0686\u06cc\u0633\u062a\u061f\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc replica \u062f\u0631 DigitalOcean \u0648 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc binlog \u06cc\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 logical replication \u0628\u0631\u0627\u06cc PostgreSQL \u0648 \u0633\u067e\u0633 switchover \u067e\u0633 \u0627\u0632 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634 \u0627\u0633\u062a.\"}},{\"@type\":\"Question\",\"name\":\"\u0686\u06af\u0648\u0646\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0631\u0627 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u0645\u061f\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u0641\u0634\u0631\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u0627 tar+gzip\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 rsync \u0628\u0631\u0627\u06cc resume \u0648 \u0633\u067e\u0633 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u062f\u0631 Spaces \u0628\u0631\u0627\u06cc \u062a\u062d\u0648\u06cc\u0644 \u0633\u0631\u06cc\u0639 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.\"}},{\"@type\":\"Question\",\"name\":\"\u0622\u06cc\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 Managed Database \u062f\u0631 DO \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645\u061f\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a replication \u0648 backups \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Managed Databases (Postgres\/MySQL) \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a.\"}},{\"@type\":\"Question\",\"name\":\"\u0686\u06af\u0648\u0646\u0647 cutover \u0628\u0627 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u062a\u0623\u062b\u06cc\u0631 \u0631\u0648\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0645\u061f\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u06a9\u0627\u0647\u0634 TTL DNS\u060c \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 green \u062f\u0631 DO\u060c \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Floating IP \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 Target Group \u062f\u0631 Load Balancer \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0645\u0624\u062b\u0631 \u0647\u0633\u062a\u0646\u062f.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"Ein vollst\u00e4ndiger Leitfaden zur Migration einer laufenden Anwendung von AWS EC2 zu DigitalOcean ohne Serviceunterbrechung und zu minimalen Kosten.","protected":false},"author":8,"featured_media":17465,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"","footnotes":""},"categories":[204,331],"tags":[491,219,401],"class_list":{"0":"post-17463","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-servers","8":"category-hosting","9":"tag-amazon-aws-s3","10":"tag-aws","11":"tag-digitalocean"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u2014 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc \u0633\u0631\u0648\u06cc\u0633 - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"description\" content=\"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/de\/servers\/migrate-aws-ec2-digitalocean\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u2014 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc \u0633\u0631\u0648\u06cc\u0633 - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/de\/servers\/migrate-aws-ec2-digitalocean\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-16T07:50:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2025\/12\/16111954\/migrate-aws-ec2-digitalocean-17463.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1654\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Elahe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elahe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/\"},\"author\":{\"name\":\"Elahe\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/f302f8428a00aaa2cabd5752d9c8fa65\"},\"headline\":\"\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u2014 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc \u0633\u0631\u0648\u06cc\u0633\",\"datePublished\":\"2025-12-16T07:50:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/\"},\"wordCount\":464,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2025\\\/12\\\/16111954\\\/migrate-aws-ec2-digitalocean-17463.webp\",\"keywords\":[\"amazon-aws-s3\",\"AWS\",\"Digitalocean\"],\"articleSection\":[\"\u0633\u0631\u0648\u0631\",\"\u0647\u0627\u0633\u062a\u06cc\u0646\u06af\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/\",\"name\":\"\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u2014 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc \u0633\u0631\u0648\u06cc\u0633 - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2025\\\/12\\\/16111954\\\/migrate-aws-ec2-digitalocean-17463.webp\",\"datePublished\":\"2025-12-16T07:50:21+00:00\",\"description\":\"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2025\\\/12\\\/16111954\\\/migrate-aws-ec2-digitalocean-17463.webp\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2025\\\/12\\\/16111954\\\/migrate-aws-ec2-digitalocean-17463.webp\",\"width\":1654,\"height\":1024,\"caption\":\"\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0634\u0645\u0627 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u06cc\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0631\u0641\u062a.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/servers\\\/migrate-aws-ec2-digitalocean\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0633\u0631\u0648\u0631\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/servers\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u2014 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc \u0633\u0631\u0648\u06cc\u0633\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/f302f8428a00aaa2cabd5752d9c8fa65\",\"name\":\"Elahe\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/de\\\/author\\\/elahe\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Migration einer laufenden Anwendung von AWS EC2 zu DigitalOcean \u2013 Eine vollst\u00e4ndige Anleitung ohne Serviceausfall \u2013 ITPiran-Blog","description":"In diesem Artikel zeigen wir Ihnen Schritt f\u00fcr Schritt, wie Sie eine laufende Anwendung von AWS EC2 zu DigitalOcean migrieren und geben Tipps zur Reduzierung von Ausfallzeiten und zur Verbesserung der Sicherheit.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/de\/servers\/migrate-aws-ec2-digitalocean\/","og_locale":"de_DE","og_type":"article","og_title":"\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u2014 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc \u0633\u0631\u0648\u06cc\u0633 - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.","og_url":"https:\/\/www.itpiran.net\/blog\/de\/servers\/migrate-aws-ec2-digitalocean\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2025-12-16T07:50:21+00:00","og_image":[{"width":1654,"height":1024,"url":"https:\/\/cdn.itpiran.net\/2025\/12\/16111954\/migrate-aws-ec2-digitalocean-17463.webp","type":"image\/webp"}],"author":"Elahe","twitter_card":"summary_large_image","twitter_description":"\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0646\u06a9\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0647\u0634 downtime \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.","twitter_misc":{"Verfasst von":"Elahe","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/"},"author":{"name":"Elahe","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/f302f8428a00aaa2cabd5752d9c8fa65"},"headline":"\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u2014 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc \u0633\u0631\u0648\u06cc\u0633","datePublished":"2025-12-16T07:50:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/"},"wordCount":464,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2025\/12\/16111954\/migrate-aws-ec2-digitalocean-17463.webp","keywords":["amazon-aws-s3","AWS","Digitalocean"],"articleSection":["\u0633\u0631\u0648\u0631","\u0647\u0627\u0633\u062a\u06cc\u0646\u06af"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/","url":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/","name":"Migration einer laufenden Anwendung von AWS EC2 zu DigitalOcean \u2013 Eine vollst\u00e4ndige Anleitung ohne Serviceausfall \u2013 ITPiran-Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2025\/12\/16111954\/migrate-aws-ec2-digitalocean-17463.webp","datePublished":"2025-12-16T07:50:21+00:00","description":"In diesem Artikel zeigen wir Ihnen Schritt f\u00fcr Schritt, wie Sie eine laufende Anwendung von AWS EC2 zu DigitalOcean migrieren und geben Tipps zur Reduzierung von Ausfallzeiten und zur Verbesserung der Sicherheit.","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2025\/12\/16111954\/migrate-aws-ec2-digitalocean-17463.webp","contentUrl":"https:\/\/cdn.itpiran.net\/2025\/12\/16111954\/migrate-aws-ec2-digitalocean-17463.webp","width":1654,"height":1024,"caption":"\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0634\u0645\u0627 \u0646\u062d\u0648\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u06cc\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0631\u0641\u062a."},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/servers\/migrate-aws-ec2-digitalocean\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0633\u0631\u0648\u0631","item":"https:\/\/www.itpiran.net\/blog\/category\/servers\/"},{"@type":"ListItem","position":3,"name":"\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0632\u0646\u062f\u0647 \u0627\u0632 AWS EC2 \u0628\u0647 DigitalOcean \u2014 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644 \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc \u0633\u0631\u0648\u06cc\u0633"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"Iranische Nachrichten und Artikel zum Thema nachhaltiger Handel","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Nachhaltiger iranischer Unternehmensblog","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/f302f8428a00aaa2cabd5752d9c8fa65","name":"Elahe","url":"https:\/\/www.itpiran.net\/blog\/de\/author\/elahe\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/17463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/comments?post=17463"}],"version-history":[{"count":1,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/17463\/revisions"}],"predecessor-version":[{"id":17464,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/17463\/revisions\/17464"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media\/17465"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media?parent=17463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/categories?post=17463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/tags?post=17463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}