10个重要的AWS面试问题 *

Toptal提供了最优秀的AWS开发人员和工程师可以回答的基本问题. 在我们社区的推动下,我们鼓励专家提交问题并提供反馈.

立即聘请一名顶级AWS开发人员
Toptal logo是顶级自由软件开发人员的专属网络吗, designers, finance experts, product managers, 和世界上的项目经理. 顶级公司雇佣Toptal自由职业者来完成他们最重要的项目.

Interview Questions

1.

解释什么是EC2实例元数据. 一个EC2实例如何得到它的IAM访问密钥和密钥?

View answer

EC2实例元数据是可以从EC2实例内部访问的服务, 哪个允许查询或管理关于给定运行实例的数据.

方法检索实例的IAM访问密钥是可能的 我/安全凭证/角色名 metadata category. 这将返回一组临时凭证,EC2实例将自动使用这些凭证与AWS服务进行通信.

2.

什么是SQS死信队列(DLQ),您可以使用它做什么?

View answer

SQS是Amazon的完全托管分布式队列服务. 队列对于处理分布式系统中不同服务或其他组件之间的通信非常有用.

DLQ是无法正确处理的消息的特殊队列. 这些队列专门用于调试和排除应用程序故障.

3.

与CI/CD相关的AWS服务主要有四种, CodePipeline, CodeBuild, and CodeDeploy. Describe each of them.

View answer

AWS CodeCommit本质上是一个托管服务.e. Amazon在幕后为您管理和扩展它,就像s3 -基于git的源代码控制一样.

AWS CodeBuild用于构建, test, 并为部署生成工件(从成功的构建步骤生成的文件). 这也是一个托管服务,可以自动进行配置和扩展.

AWS CodeDeploy自动将应用程序部署到几种类型 compute resources 例如EC2实例或ECS集群.

AWS CodePipeline是一种持续交付服务,支持自动化和集成构建, test, and deploy processes.

申请加入Toptal的发展网络

并享受可靠、稳定、远程 自由AWS开发人员职位

Apply as a Freelancer
4.

EKS、ECS和Fargate之间有什么区别?

View answer

EKS, or 用于Kubernetes的Amazon弹性容器服务是亚马逊的托管Kubernetes服务. 此服务提供托管的 Kubernetes控制平面 这是很容易得到的,我.e. 它们为您运行多个主节点.

ECS, or 弹性货柜服务是亚马逊的容器编排服务. 此服务用于管理集群内的容器及其生命周期.

Fargate 是一种ECS启动类型,允许您在无服务器集群中运行容器. In other words, 它允许您运行容器,而无需管理底层集群基础设施.

5.

假设您已经雇佣了一组DevOps自由职业者来设置您的基础架构. 您创建一个名为“devops”的IAM组,并将团队添加到该组中. 在团队完成基础设施的设置后,他们离开您的项目. 你应该采取什么行动?

View answer

您应该只从开发人员中删除用户帐户,并保留IAM组. It is possible that, in the future, 你会想要雇佣更多的DevOps自由职业者来改变你的基础架构.

保留IAM组将意味着保留基本的策略集, and therefore, 未来的用户可以重用这些策略.

6.

解释下面的CloudFormation模板和它的错误:

Mappings: 
  RegionMap: 
    us-east-1: 
      :“HVM64 ami-0ff8a91507f77f867”
    us-west-1: 
      :“HVM64 ami-0bdb828fd58c52235”
    eu-west-1: 
      :“HVM64 ami - 047 bb4163c506cd98”
    ap-southeast-1: 
      :“HVM64 ami - 08569 b978cc4dfa10”
    ap-northeast-1: 
      :“HVM64 ami-06cd52961ce9f0d85”
Resources: 
  myEC2Instance: 
    类型:“EC2 AWS::::实例”
    Properties: 
      ImageId: !FindInMap [RegionMap, !参考“AWS::Region”,HVM64]
      InstanceType: !Ref InstanceType
View answer

这个CloudFormation模板包含一个 Mappings 节,这对于定义要在模板的其他部分中使用的键值对很有用. In this case, the RegionMap 在每个区域中定义区域名称和虚拟机映像的AMI id之间的映射吗.

In the Resources section, the RegionMap 然后使用正确的 ImageId. However, the InstanceType 属性尝试使用名为 InstanceType, which is missing. 参数对于重用模板很有用, 通过允许在堆栈更新或创建期间自定义这些.

要修复这个模板,可以添加以下部分. 它将允许输入一个实例类型并提供一个默认类型:

Parameters: 
  InstanceType: 
    Type: String
    Default: t2.micro
7.

AWS上目前有哪些类型的负载平衡器? 你如何选择使用哪一个?

View answer

目前,AWS提供了三种类型的托管负载平衡器.

应用程序负载均衡器:此负载均衡器在OSI模型的第7层工作. 它可以用来平衡HTTP和HTTPS应用程序的负载,还可以调用Lambda函数, 在其他几个特性中.

Network Load Balancer:用于极端性能,此负载均衡器工作在OSI模型的第4层. It can, therefore, 负载平衡任何类型的TCP流量,并且可以以低延迟处理大量请求.

Classic Load Balancer:此负载均衡器在OSI模型的第4层或第7层工作. 它现在主要用于在EC2-Classic上运行的遗留应用程序,因为应用程序负载平衡器提供了更多的特性.

8.

解释这些Elastic Beanstalk部署模式:

  • All at once
  • Immutable
  • Rolling
  • 与其他批次一起轧制
View answer

All at once这是最快的模式. In this case, Elastic Beanstalk将简单地停止所有正在运行的实例,然后将新版本部署到这些实例.

Immutable: In this mode, Elastic Beanstalk将创建一个新的Auto Scaling Group,并在那里部署新的实例. Then, 如果部署成功, 它将用新创建的Auto Scaling Group替换旧的Auto Scaling Group.

Rolling:部署期间, Elastic Beanstalk将把新的应用程序版本部署到一些当前运行的实例上, 重复这个过程,直到所有实例都运行相同的版本. Using this mode, 应用程序将低于容量运行, 但是零停机时间,没有额外的成本.

与其他批次一起轧制:在此模式下,Elastic Beanstalk将确保不减少容量. 它首先使用新版本的应用程序启动新实例, 然后才将新版本部署到旧实例.

9.

解释S3一致性模型.

View answer

AWS S3服务提供读写后一致性 PUT这意味着只要一个对象被写入S3 bucket,它就可以被检索.

但是,假设我们尝试检索对象并收到“Not Found”响应. 因为找不到它,我们马上加上去. 只有一小段时间, 我们将无法检索它,因为未找到响应将被缓存. 因此,在这种情况下,S3只是 eventually consistent. 删除或更新现有对象最终也是一致性操作.

10.

解释IAM Policy的作用:

{
  “版本”:“2012-10-17”,
  "Statement": [
    {
      "Action": [
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      “资源”:“在攻击:aws: s3:::公司数据”
    },
    {
      "Action": [
        "ecs:RunTask"
      ],
      "Effect": "Allow",
     "Condition": {
        "ArnEquals": {
          :“ecs:集群攻击:aws: ecs: us-east-1:123456789012:集群/刺激”
        }
      },
      “资源”:“在攻击:aws: ecs: us-east-1:123456789012:任务定义/更新表:*”
    }
  ]
}
View answer

此IAM策略允许任何附加了该策略的IAM身份或AWS资源列出来自该策略的所有对象 company-data bucket.

的任何版本都可以运行 update-tables task definition on the prod ECS cluster.

面试不仅仅是棘手的技术问题, 所以这些只是作为一个指南. 并不是每一个值得雇佣的“A”候选人都能回答所有的问题, 回答所有问题也不能保证成为A级考生. At the end of the day, 招聘仍然是一门艺术,一门科学,需要大量的工作.

Why Toptal

厌倦了面试候选人? 不知道该问什么才能让你得到一份好工作?

让Toptal为你找到最合适的人.

立即聘请一名顶级AWS开发人员

我们的专属AWS开发者网络

想找一份AWS开发人员的工作?

让Toptal为你找到合适的工作.

申请成为AWS开发人员

工作机会从我们的网络

提出面试问题

提交的问题和答案将被审查和编辑, 并可能会或可能不会选择张贴, 由Toptal全权决定, LLC.

*所有字段均为必填项

寻找AWS开发人员?

Looking for AWS Developers? 查看Toptal的AWS开发人员.

David Reay

自由AWS开发人员

United KingdomToptal Member Since June 16, 2022

David是AWS专家, 敏捷和安全专业, 拥有超过14年经验的注册建筑师和工程师. 他专攻系统工程, 解决方案架构, 持续集成, 自动化部署工具, serverless development, and DevOps. David喜欢在快节奏的团队中工作.

Show More

Alex VKO

自由AWS开发人员

CanadaToptal Member Since February 29, 2020

Alex是一位充满激情的技术专家和成功的创业公司高管,拥有9年的工程专业经验. 作为一个有商业头脑的科技宅男, 他喜欢架构和交付满足业务需求的高质量实现. 他曾与银行和抵押机构合作, advised CTOs, 领导软件和数据科学团队, 并持续交付高绩效的客户项目.

Show More

Sam Anthony

自由AWS开发人员

AustraliaToptal Member Since July 20, 2015

Sam在web开发方面有20年的经验,他热衷于创建干净、可维护的代码. 他的主要强项是后端开发、DevOps和云基础设施. Sam有在伦敦与一个公司团队合作的经验,在他的家庭办公室独立工作.

Show More

Toptal Connects the Top 3% 世界各地的自由职业人才.

加入Toptal社区.

Learn more