# 部署 Playwright MCP Server 到 AWS Fargate (EKS)
本文档提供了将 Playwright MCP Server 部署到 AWS Fargate (EKS) 的完整步骤。
## 目录
1. 构建 Docker 镜像
2. 推送镜像到 AWS ECR
3. 在 EKS 中配置 Fargate 配置文件
4. 部署 MCP Server 到 Fargate
5. 验证和访问服务
## 1. 构建 Docker 镜像
首先,创建 Dockerfile(已提供):
```dockerfile
FROM public.ecr.aws/ubuntu/ubuntu:24.04
RUN apt-get update && \\
apt-get install -y \\
curl \\
gnupg \\
software-properties-common \\
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL <https://deb.nodesource.com/setup_20.x> | bash - && \\
apt-get install -y nodejs && \\
npm install -g npm@latest
# 创建工作目录
RUN npm install -g playwright
RUN npm install -g @playwright/mcp
RUN playwright install-deps
RUN playwright install firefox
WORKDIR /app
# 安装Playwright MCP
RUN npx --yes @playwright/mcp@latest
# 暴露MCP服务器端口
EXPOSE 8932
# 启动命令
CMD ["npx", "@playwright/mcp@latest","--browser","firefox", "--port", "8932", "--host", "0.0.0.0"]
在包含 Dockerfile 的目录中构建镜像:
docker build -t playwright-mcp-server:latest .
aws ecr create-repository --repository-name playwright-mcp-server --region <your-region>
aws ecr get-login-password --region <your-region> | docker login --username AWS --password-stdin <your-account-id>.dkr.ecr.<your-region>.amazonaws.com
docker tag playwright-mcp-server:latest <your-account-id>.dkr.ecr.<your-region>.amazonaws.com/playwright-mcp-server:latest
docker push <your-account-id>.dkr.ecr.<your-region>.amazonaws.com/playwright-mcp-server:latest
创建名为 pod-execution-role-trust-policy.json
的文件:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks-fargate-pods.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
创建角色:
aws iam create-role --role-name EKSFargatePodExecutionRole --assume-role-policy-document file://pod-execution-role-trust-policy.json
aws iam attach-role-policy --role-name EKSFargatePodExecutionRole --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy
aws eks create-fargate-profile \\
--fargate-profile-name mcp-server-profile \\
--cluster-name <your-eks-cluster-name> \\
--pod-execution-role-arn arn:aws:iam::<your-account-id>:role/EKSFargatePodExecutionRole \\
--selectors namespace=mcp-server,labels={app=playwright-mcp}
创建 namespace.yaml
:
apiVersion: v1
kind: Namespace
metadata:
name: mcp-server
应用配置:
kubectl apply -f namespace.yaml
创建 mcp-deployment.yaml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: playwright-mcp
namespace: mcp-server
labels:
app: playwright-mcp
spec:
replicas: 2
selector:
matchLabels:
app: playwright-mcp
template:
metadata:
labels:
app: playwright-mcp
spec:
containers:
- name: playwright-mcp
image: <your-account-id>.dkr.ecr.<your-region>.amazonaws.com/playwright-mcp-server:latest
ports:
- containerPort: 8932
resources:
requests:
memory: "1Gi"
cpu: "0.5"
limits:
memory: "2Gi"
cpu: "1"
---
apiVersion: v1
kind: Service
metadata:
name: playwright-mcp-service
namespace: mcp-server
spec:
selector:
app: playwright-mcp
ports:
- port: 8932
targetPort: 8932
type: LoadBalancer
应用配置:
kubectl apply -f mcp-deployment.yaml
kubectl get pods -n mcp-server
kubectl get services -n mcp-server
kubectl get service playwright-mcp-service -n mcp-serve
记下 EXTERNAL-IP,这是您的 MCP 服务器的访问点。
您可以通过以下 URL 访问 MCP 服务器:
http://<EXTERNAL-IP>:8932
replicas
值来扩展 MCP 服务器实例数量kubectl logs <pod-name> -n mcp-server
通过以上步骤,您已成功将 Playwright MCP Server 部署到 AWS Fargate (EKS)。