Amazon EKS のセットアップ - Amazon EKS

Amazon EKS のセットアップ

AWS リソースには通常、リソースを作成した AWS エンティティへのアクセスを制限するアクセス制限があります。そのため、最初から AWS Command Line Interface で適切なユーザー設定を確立することが重要です。さらに、Amazon EKS クラスターをコマンドラインで効率的に管理するための必須ツールをローカルマシンに装備する必要があります。このトピックは、クラスターのコマンドライン管理の準備に役立ちます。

ステップ 1: AWS CLI の設定

AWS CLI は、Amazon EKS など AWS のサービスを操作するためのコマンドラインツールです。また、ローカルマシンから Amazon EKS クラスターやその他の AWS リソースにアクセスするための IAM ユーザーまたはロールの認証にも使用されます。コマンドラインから AWS のリソースをプロビジョニングするには、コマンドラインで使用する AWS アクセスキー ID とシークレットキーを取得する必要があります。次に、これらの認証情報を AWS CLI で設定する必要があります。AWS CLI をまだインストールしていない場合は、「AWS Command Line Interface ユーザーガイド」の「AWS CLI の最新バージョンをインストールまたは更新する」を参照してください。

アクセスキーを作成するには

  1. AWS Management Console にサインインします。

  2. 右上の AWS ユーザー名を選択し、ナビゲーションメニューを開きます。例えば、[webadmin] を選択します。次に、[セキュリティ認証情報] を選択します。

  3. [アクセスキー] の下で、[アクセスキーの作成] を選択します。

  4. [コマンドラインインターフェイス (CLI)] を選択し、[次へ] を選択します。

  5. [Create access key] (アクセスキーの作成) を選択します。

  6. [.csv ファイルをダウンロード] を選択します。

AWS CLI を設定するには

AWS CLI をインストールしたら、以下の手順に従って設定を行います。詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS CLI を設定する」を参照してください。

  1. ターミナルウィンドウで、以下のコマンドを入力します。

    aws configure

    オプションで、--profile cluster-admin などの名前付きプロファイルを設定できます。AWS CLI で名前付きプロファイルを設定する場合、以降のコマンドでは必ずこのフラグを渡す必要があります。

  2. AWS 認証情報を入力します。例:

    AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: region-code Default output format [None]: json

セキュリティトークンを取得するには

必要に応じて、次のコマンドを実行して AWS CLI の新しいセキュリティトークンを取得します。詳細については、AWS CLI コマンドリファレンスget-session-token を参照してください。

デフォルトでは、トークンは 15 分間有効です。デフォルトのセッションタイムアウトを変更するには、--duration-seconds フラグを渡します。例:

aws sts get-session-token --duration-seconds 3600

このコマンドは、AWS CLI セッションの一時的なセキュリティ認証情報を返します。以下のようなレスポンス出力が表示されます。

{
    "Credentials": {
        "AccessKeyId": "ASIA5FTRU3LOEXAMPLE",
        "SecretAccessKey": "JnKgvwfqUD9mNsPoi9IbxAYEXAMPLE",
        "SessionToken": "VERYLONGSESSIONTOKENSTRING",
        "Expiration": "2023-02-17T03:14:24+00:00"
    }
}

ユーザー ID を確認するには

必要に応じて、次のコマンドを実行して、ターミナルセッションの IAM ユーザー ID (ClusterAdmin など) の AWS 認証情報を確認します。

aws sts get-caller-identity

このコマンドは、AWS CLI に設定されている IAM エンティティの Amazon リソースネーム (ARN) を返します。以下のようなレスポンス出力例が表示されます。

{
    "UserId": "AKIAIOSFODNN7EXAMPLE",
    "Account": "01234567890",
    "Arn": "arn:aws:iam::01234567890:user/ClusterAdmin"
}

ステップ 2: Kubernetes ツールのインストール

Kubernetes クラスターと通信するには、Kubernetes API を操作するツールが必要です。さらに、ローカルマシン上の Kubernetes 環境を管理するためのものなど、他にもいくつかのツールが必要です。

AWS リソースを作成するには

  • Amazon EKS クラスターリソース — AWS を初めて使用する場合は、eksctl をインストールすることをお勧めします。eksctl は、AWS CloudFormation を使用して Amazon EKS クラスターを簡単に作成する Infrastructure as Code (IaC) ユーティリティです。また、サービスアカウントなどの追加の Kubernetes リソースも作成します。eksctl のインストール手順については、eksctl ドキュメントの「インストール」を参照してください。

  • AWS リソース — AWS インフラストラクチャのプロビジョニングとデプロイを自動化することに慣れている場合は、Terraform をインストールすることをお勧めします。Terraformは、HashiCorp によって開発されたオープンソースの Infrastructure as Code (IaC) ツールです。HashiCorp 構成言語 (HCL) や JSON などの高レベルの構成言語を使用してインフラストラクチャを定義およびプロビジョニングできます。Terraform のインストール手順については、Terraform ドキュメントの「Terraform のインストール」を参照してください。

kubectl をインストールするには

kubectl は、Amazon EKS クラスター上の Kubernetes API サーバーとの通信に使用されるオープンソースのコマンドラインツールです。ローカルマシンにまだインストールしていない場合は、次のオプションから選択してください。

  • AWS バージョン — Amazon EKS がサポートする kubectl バージョンをインストールするには、「kubectl のインストールまたは更新」を参照してください。

  • コミュニティバージョンkubectl の最新のコミュニティバージョンをインストールするには、Kubernetes ドキュメントの「Install tools」ページを参照してください。

開発環境をセットアップするには

  • ローカルデプロイツール — Kubernetes を初めて使用する場合は、minikubekind などのローカルデプロイツールをインストールすることを検討してください。これらのツールを使用すると、ローカルマシンで Amazon EKS クラスターを管理できます。

  • パッケージマネージャーHelm は複雑なパッケージのインストールと管理を簡素化する Kubernetes の一般的なパッケージマネージャーです。Helm を使用すると、Amazon EKS クラスターの AWS ロードバランサーコントローラーなどのパッケージを簡単にインストールして管理できます。

次のステップ