繁体   English   中英

ECS日志:Fargate与EC2

[英]ECS logs: Fargate vs EC2

当我通常使用Fargate在ECS中运行任务时,STDOUT会自动重定向到cloudwatch,并且可以轻松找到此应用程序日志。

例如,在C#中进行说明:

Console.WriteLine("log to write to CloudWatch")

当我将ECS与Fargate或Lambda函数一起使用时,该输出将自动重定向到CloudWatch日志

我想使用EC2做同样的事情。

将ECS与EC2结合使用的第一印象是,它不如Fargate自动化。 我对吗?

在查找信息时,我发现以下内容(其他较早的问题或帖子除外):

  • 问题是指AWS博客上的旧帖子,因此可能已过时。

  • AWS页面中,它们描述了一些步骤,您需要在其中安装一些实用程序到EC2

因此,总而言之,当我以与Fargate相同的方式将ECS与EC2一起使用时,有什么方法可以在cloudwatch中看到STDOUT吗?

因此,总而言之,当我以与Fargate相同的方式将ECS与EC2一起使用时,有什么方法可以在cloudwatch中看到STDOUT吗?

如果您的意思是EC2日志记录像Fargate一样容易而无需任何复杂的配置,则为no 您需要为EC2提供一些配置和实用程序,以允许登录到CloudWatch。 在我们启动的任何EC2实例中,ECS实例只是具有默认配置的某些操作系统的虚拟机,在这种情况下,即为Amazon ECS优化的AMI 我们应自行提供的其他服务和配置。

除了上面提供的链接之外,我还找到了这个CloudFormation模板该模板将EC2 Spot Fleet配置为以第二个链接所描述的相同方式登录到CloudWatch。

我认为您不正确。 ECS任务启动中的StdOut日志与Fargate一样容易编写和访问,在EC2下运行。

据我所知,任务定义中只有这个,与Fargate中的相同:

  "containerDefinitions": [
    {
      "dnsSearchDomains": null,
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "my-log-family",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "my-stream-name"
        }
      }
...

启动后,您应该在my-log-family下看到您的日志

如果您尝试将应用程序日志放入CloudWatch,那是另一回事...这通常是使用CloudWatch logs代理完成的,您必须将其安装到容器中,但是以上内容将捕获StdOut。

这就是我做的。

使用块:AWS.Logger.AspNetCore

使用示例:

    static async Task Main(string[] args)
    {
        Logger loggerObj = new Logger();
        ILogger<Program> logger = await loggerObj.CreateLogger("test", "eu-west-1");
        logger.LogInformation("test info");
        logger.LogError("test error");
    }

    public async Task<ILogger<Program>> CreateLogger(string logGroup, string region)
    {
        AWS.Logger.AWSLoggerConfig config = new AWS.Logger.AWSLoggerConfig();
        config.Region = region;
        config.LogStreamNameSuffix = "";
        config.LogGroup = logGroup;

        LoggerFactory logFactory = new LoggerFactory();

        logFactory.AddAWSProvider(config);
        return logFactory.CreateLogger<Program>();

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM