AWS Batch
ユーザーガイド

AWS Batch でのセットアップ

すでにアマゾン ウェブ サービス (AWS) にサインアップしていて、Amazon Elastic Compute Cloud (Amazon EC2) または Amazon Elastic Container Service (Amazon ECS) を使用している場合は、すぐに AWS Batch を使用し始めることができます。AWS Batch はコンピューティング環境で Amazon ECS コンテナインスタンスを使用するため、この 3 つのサービスのセットアッププロセスは非常によく似ています。AWS CLI と AWS Batch をともに使用するには、最新の AWS Batch 機能をサポートしているバージョンの AWS CLI を使用する必要があります。AWS CLI で AWS Batch 機能のサポートが表示されない場合は、最新バージョンにアップグレードする必要があります。詳細については、http://aws.amazon.com/cli/ を参照してください。

注記

AWS Batch では Amazon EC2 のコンポーネントを使用するため、これらの手順の多くで Amazon EC2 コンソールを使用します。

AWS Batch のセットアップを行うには、以下のタスクを完了します。完了済みのステップがあればスキップして、AWS CLI のインストールに進むことができます。

AWS にサインアップする

AWS にサインアップすると、Amazon EC2 および AWS Batch を含むすべてのサービスに対して AWS アカウントが自動的にサインアップされます。料金が発生するのは、実際に使用したサービスの分のみです。

既に AWS アカウントをお持ちの場合は次のタスクに進んでください。AWS アカウントをお持ちでない場合は、次に説明する手順にしたがってアカウントを作成してください。

AWS アカウントを作成するには

  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて確認コードを入力することが求められます。

次のタスクで AWS アカウント番号が必要となるので、メモしておいてください。

IAM ユーザーを作成する

AWS のサービス (Amazon EC2、AWS Batch など) では、サービスにアクセスする際に認証情報を提供する必要があります。このため、サービスのリソースにアクセスする権限があるかどうかがサービスによって判定されます。コンソールを使用するにはパスワードが必要です。AWS アカウントのアクセスキーを作成して、コマンドラインインターフェイスまたは API にアクセスすることができます。ただし、AWS アカウントの認証情報を使って AWS にアクセスすることはお勧めしません。代わりに AWS Identity and Access Management (IAM) を使用することをお勧めします。IAM ユーザーを作成して、管理権限を使ってこのユーザーを IAM グループに追加するか、管理権限を付与します。そして、特別な URL とその IAM ユーザーの認証情報を使用して AWS にアクセスできます。

AWS にサインアップしても、ご自分の IAM ユーザーをまだ作成していない場合は、IAM コンソールを使用して作成できます。

自分用の管理者ユーザーを作成し、そのユーザーを管理者グループに追加するには (コンソール)

  1. AWS アカウント E メールアドレスとパスワードを使用して https://console.aws.amazon.com/iam/AWS アカウントのルートユーザー として IAM コンソールにサインインします。

    注記

    以下のAdministratorIAMユーザーの使用に関するベストプラクティスに従い、ルートユーザー認証情報を安全な場所に保管しておくことを強くお勧めします。ルートユーザーとしてサインインして、少数のアカウントおよびサービス管理タスクのみを実行します。

  2. ナビゲーションペインで [Users]、[Add user] の順に選択します。

  3. [ユーザー名] に「Administrator」と入力します。

  4. [AWS マネジメントコンソール access (アクセス)] の横にあるチェックボックスをオンにします。[Custom password (カスタムパスワード)] を選択し、その後テキストボックスに新しいパスワードを入力します。

  5. (オプション) AWS では、デフォルトで、新しいユーザーに対して初回のサインイン時に新しいパスワードを作成することが必要です。必要に応じて [User must create a new password at next sign-in (ユーザーは次回のサインイン時に新しいパスワードを作成する必要がある)] のチェックボックスをオフにして、新しいユーザーがサインインしてからパスワードをリセットできるようにできます。

  6. [Next: Permissions (次へ: アクセス許可)] を選択します。

  7. [Set permissions (アクセス許可の設定)] で、[Add user to group (ユーザーをグループに追加)] を選択します。

  8. [Create group] を選択します。

  9. [グループの作成] ダイアログボックスで、[グループ名] に「Administrators」と入力します。

  10. [Filter policies (フィルタポリシー)] を選択し、その後 [AWS managed -job function (AWS 管理ジョブの機能] を選択してテーブルのコンテンツをフィルタリングします。

  11. ポリシーリストで、[AdministratorAccess] のチェックボックスをオンにします。次に、[Create group] を選択します。

    注記

    AdministratorAccess アクセス許可を使用して、AWS Billing and Cost Management コンソールを使用する前に、IAM ユーザーおよびロールの請求へのアクセスをアクティブ化する必要があります。これを行うには、請求コンソールへのアクセスの委任に関するチュートリアルのステップ 1 の手順に従ってください。

  12. グループのリストに戻り、新しいグループのチェックボックスをオンにします。必要に応じて [Refresh] を選択し、リスト内のグループを表示します。

  13. [次へ: タグ] を選択します。

  14. (オプション) タグをキー - 値のペアとしてアタッチして、メタデータをユーザーに追加します。IAM でのタグの使用の詳細については、『IAM ユーザーガイド』の「IAM エンティティのタグ付け」を参照してください。

  15. [Next: Review] を選択して、新しいユーザーに追加するグループメンバーシップのリストを表示します。続行する準備ができたら、[Create user] を選択します。

この同じプロセスを繰り返して新しいグループとユーザーを作成し、AWS アカウントのリソースへのアクセス権をユーザーに付与できます。ポリシーを使用して特定の AWS リソースに対するユーザーのアクセス許可を制限する方法については、「アクセス管理」と「ポリシーの例」を参照してください。

新規の IAM ユーザーとしてサインインするには、AWS コンソールからサインアウトし、次の URL を使用します。このとき、your_aws_account_id はハイフンを除いた AWS アカウント番号です(たとえば AWS アカウント番号が 1234-5678-9012 であれば、AWS アカウント ID は 123456789012 となります)。

https://your_aws_account_id.signin.aws.amazon.com/console/

作成した IAM ユーザー名とパスワードを入力します。サインインすると、ナビゲーションバーに「your_user_name @ your_aws_account_id」が表示されます。

サインページの URL に AWS アカウント ID を含めない場合は、アカウントのエイリアスを作成します。IAM ダッシュボードから [Create Account Alias (アカウントの別名を作成)] を選択し、エイリアス (会社名など) を入力します。アカウントエイリアスを作成した後、サインインするには、次の URL を使用します。

https://your_account_alias.signin.aws.amazon.com/console/

アカウントの IAM ユーザーのサインインリンクを確認するには、IAM コンソールを開き、ダッシュボードの [IAM users sign-in link] の下を確認します。

IAM の詳細については、AWS Identity and Access Management ユーザーガイドを参照してください。

コンピューティング環境およびコンテナインスタンスの IAM ロールの作成

AWS Batch のコンピューティング環境およびコンテナインスタンスでは、ユーザーの代わりに他の AWS API を呼び出すために AWS アカウント認証情報が必要です。これらの認証情報をコンピューティング環境およびコンテナインスタンスに提供するための IAM ロールを作成し、そのロールをコンピューティング環境に関連付ける必要があります。

注記

AWS Batch のコンピューティング環境およびコンテナインスタンスのロールは、コンソールの初回実行時に自動的に作成されます。したがって、AWS Batch コンソールを使用する場合は、次のセクションに進むことができます。代わりに AWS CLI を使用する場合は、最初のコンピューティング環境を作成する前に、「AWS Batch サービス IAM ロール」および「Amazon ECS インスタンスロール」の手順を実行してください。

キーペアの作成

AWS では公開キー暗号化を使用して、お客様のインスタンスのログイン情報の安全性を保護します。AWS Batch のコンピューティング環境コンテナインスタンスなどの Linux インスタンスでは、SSH アクセスにパスワードを使いません。キーペアを使用してインスタンスに安全にログインします。コンピューティング環境の作成時にキーペアの名前を指定し、SSH を使ってログインするときにプライベートキーを指定します。

キーペアをまだ作成していない場合は、Amazon EC2 コンソールを使用して作成できます。複数のリージョンでインスタンスを起動する予定がある場合は、各リージョンでキーペアを作成する必要があります。リージョンの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「リージョンとアベイラビリティーゾーン」を参照してください。

キーペアを作成するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションバーで、キーペアを生成するリージョンを選択します。使用可能なリージョンは場所に関係なく選択できますが、キーペアはリージョンに固有のものです。たとえば、米国西部 (オレゴン) リージョンでインスタンスを起動する予定の場合は、その同じリージョン内のインスタンス用にキーペアを作成する必要があります。

  3. ナビゲーションペインで [キーペア] を選択し、[キーペアの作成] を選択します。

  4. [キーペア作成] ダイアログボックスの [キーペア名] フィールドで、新しいキーペアの名前を入力し、[作成] を選択します。覚えやすい名前 (IAM ユーザー名など) を選び、その後に -key-pair を続け、さらにリージョン名を続けます。たとえば、me-key-pair-uswest2 などです。

  5. ブラウザによって秘密キーファイルが自動的にダウンロードされます。ベースファイル名はキーペアの名前として指定した名前となり、ファイル名の拡張子は .pem となります。プライベートキーファイルを安全な場所に保存します。

    重要

    これは、プライベートキーを保存する唯一のチャンスです。インスタンスと対応するプライベートキーの起動時には、毎回インスタンスに接続するたびに、キーペアの名前を入力する必要があります。

  6. Mac または Linux コンピュータの SSH クライアントを使用して Linux インスタンスに接続する場合は、次のコマンドを使用してプライベートキーファイルの権限を設定すると、お客様以外のユーザーはそれを読み取ることができないようになります。

    $ chmod 400 your_user_name-key-pair-region_name.pem

詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 のキーペア」を参照してください。

キーペアを使用してインスタンスに接続するには

Mac または Linux を実行しているコンピュータから Linux インスタンスに接続するには、-i オプションとプライベートキーへのパスを指定して、SSH クライアントに対する .pem ファイルを指定します。Windows を実行しているコンピュータから Linux インスタンスに接続する場合は、MindTerm または PuTTY のどちらかを使用できます。PuTTY を使用する予定がある場合は、それをインストールしてから、次のプロシージャを使用して .pem ファイルを .ppk ファイルに変換します。

(オプション) PuTTY を使用して Windows から Linux インスタンスに接続するには

  1. http://www.chiark.greenend.org.uk/~sgtatham/putty/ から PuTTY をダウンロードしてインストールします。必ずスイート全体をインストールします。

  2. PuTTYgen を開始します (例: [開始] メニューで [すべてのプログラム] > [PuTTY] > [PuTTYgen] を選択)。

  3. [Type of key to generate] で、[SSH-2 RSA] を選択します。

  4. [Load] を選択します。デフォルトでは、PuTTYgen には拡張子 .ppk を持つファイルだけが表示されます。.pem ファイルの場所を特定するには、すべてのタイプのファイルを表示するオプションを選択します。

  5. 前の手順で作成したプライベートキーファイルを選択してから、[Open] を選択します。[OK] を選択して、確認ダイアログボックスを閉じます。

  6. [Save private key (プライベートキーの保存)] を選択します。PuTTYgen に、パスフレーズなしでキーを保存することに関する警告が表示されます。[Yes] を選択します。

  7. キーペアに使用した名前と同じ名前をキーに指定します。PuTTY は自動的にファイル拡張子 .ppk を加えます。

Virtual Private Cloud の作成

Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内で AWS リソースを起動できます。コンテナインスタンスは、VPC で起動することを強くお勧めします。

デフォルトの VPC がある場合は、このセクションもスキップして、次のタスク「セキュリティグループの作成」に移動できます。デフォルトの VPC があるかどうかを判断するには、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 コンソールでサポートされるプラットフォーム」を参照してください。また、次の手順を使用して、アカウントにデフォルト以外の VPC を作成することもできます。

重要

アカウントがリージョン内で EC2-Classic をサポートしている場合、そのリージョンにはデフォルトの VPC はありません。

デフォルト以外の VPC を作成するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションバーで、VPC のリージョンを選択します。VPC はリージョンに固有であるため、キーペアを作成したリージョンと同じリージョンを選択してください。

  3. VPC ダッシュボードで、[VPC ウィザードの起動] を選択します。

  4. [Step 1: Select a VPC Configuration] ページで、[VPC with a Single Public Subnet] が選択されていることを確認したら、[Select] を選択します。

  5. [Step 2: VPC with a Single Public Subnet] ページで、[VPC name] にわかりやすい VPC 名を入力します。他のデフォルトの設定はそのままにしておき、[Create VPC] を選択します。確認ページで、[OK] を選択します。

Amazon VPC の詳細については、Amazon VPC ユーザーガイドの「Amazon VPC とは」を参照してください。

セキュリティグループの作成

セキュリティグループは、関連付けられたコンピューティング環境コンテナインスタンスのファイアウォールとして動作し、インバウンドトラフィックとアウトバウンドトラフィックの両方をコンテナインスタンスレベルで制御します。SSH を使用して IP アドレスからコンテナインスタンスに接続するためのルールをセキュリティグループに追加できます。さらに、任意の場所からのインバウンドおよびアウトバウンドの HTTP アクセスおよび HTTPS アクセスを可能にするルールを追加できます。タスクで使用するポートを開くためのルールを追加します。

複数のリージョンでコンテナインスタンスを起動する予定がある場合は、各リージョンでセキュリティグループを作成する必要があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「リージョンとアベイラビリティーゾーン」を参照してください。

注記

ローカルコンピュータのパブリック IP アドレスが必要になります。このアドレスはサービスを使って取得できます。たとえば、次のサービスが提供されています。http://checkip.amazonaws.com/ または https://checkip.amazonaws.com/。IP アドレスを提供する別のサービスを検索するには、検索フレーズ「what is my IP address」を使用します。 インターネットサービスプロバイダー (ISP) 経由で、またはファイアウォールの内側から静的な IP アドレスなしで接続する場合は、クライアントコンピュータで使用されている IP アドレスの範囲を見つける必要があります。

最小限の権限でセキュリティグループを作成するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションバーで、セキュリティグループのリージョンを選択します。セキュリティグループはリージョンに固有であるため、キーペアを作成したリージョンと同じリージョンを選択してください。

  3. ナビゲーションペインで [セキュリティグループ] を選択して、[セキュリティグループの作成] を選択します。

  4. 新しいセキュリティグループの名前と説明を入力します。覚えやすい名前 (IAM ユーザー名など) を選び、その後に _SG_ を続け、さらにリージョン名を続けます。たとえば、me_SG_useast1 とします。

  5. [VPC] リストで、デフォルトの VPC が選択されていることを確認します。この VPC には、アスタリスク(*)が示されています。

    注記

    アカウントが EC2-Classic をサポートしている場合は、前のタスクで作成した VPC を選択します。

  6. AWS Batch コンテナインスタンスでは、インバウンドポートが開いている必要はありません。ただし、コンテナインスタンスにログインして Docker コマンドでジョブのコンテナを確認できるように、SSH ルールを追加できます。また、ウェブサーバーを実行するジョブをコンテナインスタンスでホストする場合は、HTTP ルールを追加できます。これらのオプションのセキュリティグループルールを追加するには、以下のステップを実行します。

    [インバウンド] タブで以下のルールを作成し、[作成] を選択します。

    • [Add Rule] を選択します。[タイプ] で [HTTP] を選択します。[ソース] では、[任意の場所] (0.0.0.0/0) を選択します。

    • [Add Rule] を選択します。[タイプ] で [SSH] を選択します。[ソース] では、[カスタム IP] が選択されていることを確認し、コンピュータまたはネットワークのパブリック IP アドレスを CIDR 表記で指定します。CIDR 表記で個々の IP アドレスを指定するには、ルーティングプレフィックスを追加します。/32たとえば、IP アドレスが 203.0.113.25 の場合は、203.0.113.25/32 を指定します。会社が特定の範囲からアドレスを割り当てている場合、範囲全体 (203.0.113.0/24など) を指定します。

      注記

      セキュリティ上の理由で、すべての IP アドレス(0.0.0.0/0)からインスタンスへの SSH アクセスを許可することはお勧めしません。ただし、それがテスト目的で短期間の場合は例外です。

AWS CLI をインストールする

AWS Batch で AWS CLI を使用するには、最新バージョンの AWS CLI をインストールします。AWS CLI のインストールまたは最新バージョンへのアップグレードについては、AWS Command Line Interface ユーザーガイドの「AWS コマンドラインインターフェイスのインストール」を参照してください。