<p>We host Docker containers on AWS infrastructure using AWS EKS.  My reading so far shows that the <code>kubectl</code> command-line tool gives me commands to query and manipulate the EKS cluster.  The <code>aws eks</code> command-line tool also gives me commands to do this.  To my inexperienced eye, they look like they offer the same facilities.</p>

<p>Are there certain situations when it's better to use one or the other?</p>

<p><code>aws eks</code> command is for interacting with AWS EKS proprietary APIs to perform administrative tasks such as creating cluster, updating kubeconfig with correct credentials etc.</p>
<p><code>kubectl</code> is an open source ClI tool which let you interact with kubernetes API server to perform tasks such create pods, deployments etc.</p>
<p>You can not use aws eks command to interact with Kubernetes API Server and perform any kubernetes specific operations because it does not understand kubernetes APIs.<br />
Similarly you can not use kubectl to interact with AWS EKS proprietary APIs because kubectl does not understand it.</p>
