

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 重新架構為 Linux 容器
<a name="refactor-linux"></a>

透過將 .NET Framework 應用程式移植到 .NET Core 或 .NET 6，您可以在多個平台上執行應用程式、降低授權成本、提高效能並改善可擴展性。

## 使用案例
<a name="refactor-linux-use-case"></a>

此遷移策略適用於下列任何情況：
+ 您有資源和時間可以重構您的應用程式。
+ 您可以解決所有 .NET Framework 相依性。
+ 您有長時間執行的應用程式。

## 優點
<a name="refactor-linux-advantages"></a>

相較於內部部署 .NET 應用程式，此遷移方法提供下列優點：
+ 降低總擁有成本 (TCO)
+ 改善安全性和效能
+ 加速創新
+ 轉換為雲端原生應用程式的優點
+ 開放原始碼

## 缺點
<a name="refactor-linux-disadvantages"></a>
+ 重構的努力和成本

## AWS 服務
<a name="refactor-linux-services"></a>

若要儲存容器映像：
+ [Amazon ECR](https://aws.amazon.com/ecr)

對於協調容器：
+ [Amazon ECS](https://aws.amazon.com/ecs) 或 Amazon ECS 搭配 [AWS Fargate](https://aws.amazon.com/fargate/)
+ [Amazon EKS](https://aws.amazon.com/eks) 或 Amazon EKS 搭配 [Fargate](https://aws.amazon.com/fargate/)

AWS Fargate 是無伺服器、pay-as-you-go的運算引擎，可讓您專注於建置應用程式，而無需管理伺服器。Fargate 與 Amazon ECS 和 Amazon EKS 相容。

## 工具
<a name="refactor-linux-tools"></a>


****  

| **工具** | **用途** | **Resource** | 
| --- | --- | --- | 
| .NET 的移植助理 | 此分析工具會掃描 .NET Framework 應用程式，並產生 .NET Core 相容性評估。評估可協助您更快地將應用程式移植到 Linux。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/modernization-net-applications/refactor-linux.html) | 
| AWS App2Container (A2C) | A2C 是命令列工具，可透過將 .NET 和 Java 應用程式轉換為容器化應用程式來現代化。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/modernization-net-applications/refactor-linux.html) | 

## 部署決策
<a name="refactor-linux-deploy"></a>

您可以從五個部署選項中選擇：
+ 如果您想要完全控制運算環境的組態，包括記憶體和儲存設定，以及控制作業系統修補程式：在 EC2 執行個體上將應用程式部署為 Linux 容器。
+ 如果您希望容器由 Kubernetes 管理並以無伺服器容器的形式執行：使用 Fargate 在 Amazon EKS 上將應用程式部署為 Linux 容器。
+ 如果您希望容器由 Amazon ECS 管理並以無伺服器容器執行：請使用 Fargate 在 Amazon ECS 上將應用程式部署為 Linux 容器。
+ 如果您希望容器由 Kubernetes 管理，但您希望自行管理容器的運算資源：在 Amazon EKS 上將應用程式部署為 Linux 容器。
+ 如果您希望容器由 Amazon ECS 管理，但您希望自行管理容器的運算資源：在 Amazon ECS 上將應用程式部署為 Linux 容器。

 ![Refactoring .NET applications as Linux containers on AWS](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/modernization-net-applications/images/rearchitect-linux.png) 