クラウドオーケストレーターで AWS を管理しよう

# 目次
- [AWS Cloud service provider の追加](#aws-cloud-service-provider-の追加)
- [ロールの作成とパーミッションの設定](#ロールの作成とパーミッションの設定)
- [VPC ネットワークリソースの作成](#vpc-ネットワークリソースの作成)
- [起動テンプレートの作成](#起動テンプレートの作成)
- [インスタンスの起動](#インスタンスの起動)

# この記事は

元記事[クラウドオーケストレーターのはじめかた](https://qiita.com/dcm_naoi/items/880799021f43815fc8c9)では[クラウドオーケストレーターのインストール](https://qiita.com/dcm_naoi/items/880799021f43815fc8c9#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)と [Kubernetes のセットアップ](https://qiita.com/dcm_naoi/items/880799021f43815fc8c9#%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97)まで説明しましたが、ここではクラウドオーケストレーターを**マルチクラウドのポータルとして Amazon EC2 を管理するためのセットアップ方法**を紹介します。

# IAM ロールの作成

前提条件として、この[**ドキュメント**](https://www.drupal.org/node/3044215/configuration-aws-cloud)を参考に IAM ロール を作成してください。AWS 上もしくはオンプレでのクラウドオーケストレーターの運用形態によって、以下のようにクレデンシャルの準備が必要です。

- クラウドオーケストレーターAWS （EC2 や EKS、ECS）上で動作させる場合、 IAM ロールをクラウドオーケストレーターのインスタンスにアタッチしてください。
- オンプレミス環境で動作させる場合、IAM パーミッションの権限を持つ**アクセスキー ID**と**シークレットアクセスキー**が必要です。

# AWS Cloud service provider の追加

1. 管理者権限（**Administrator role**）のユーザーでサイトにログインします。

1. **Tour** または **Cloud service provider** のメニューより **Add AWS Cloud service provider** を選択します。

    ![01_addCsp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/bbaea887-c7a7-2feb-d666-08285c97a5be.png)
    ![01_csp_createcsp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/ba4fb56c-b706-bf6b-cf03-682f9bdb77b5.png)

1. 以下の画面より **AWS Cloud** を選択します。
    ![01_CSP_AWScloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/94dd413e-9d86-bab7-3ae8-1a38e32f1d2d.png)

1. **Name** と **Account ID** を入力、**Regions** を選択します。
    ![01_form.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/e017b29a-4067-08a6-f675-7a3a3d3587fb.png)

1. **AWS** のクレデンシャルを指定します。方法として、以下の 4つのオプションがあります。

|オプション|利点|
|:--|:--|
|[IAM ロール](https://qiita.com/dcm_naoi/items/d8f141a262b940ea5432#iam-%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)|**アクセスキーID** と **シークレットアクセスキー**を設定する必要がない。※IAM ロール は Instance Profile ともいいます。クラウドオーケストレーターでは **Instance Profile** と表記しています。|
|[アクセスキー](https://qiita.com/dcm_naoi/items/d8f141a262b940ea5432#%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%AD%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)|**アクセスキーID** と **シークレットアクセスキー**を使用して特定のアカウントの AWS リソースにアクセスできる。|
|[Assume ロール](https://qiita.com/dcm_naoi/items/d8f141a262b940ea5432#assume-%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)|クラウドモジュールが他の IAM ロールを **Assume**し、そのロールで AWS リソースにアクセスできる。|
|[スイッチロール](https://qiita.com/dcm_naoi/items/d8f141a262b940ea5432#%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)|クラウドモジュールが他の IAM ロールを別のアカウントに**スイッチ**し、切り替え先のロールで AWS リソースにアクセスできる。|

### IAM ロールを使用する方法
- **Credentials** のセクションより **Use Instance Profile** にチェックを入れます。
    ![01_csp_createform.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/d0b0ca20-8a34-15f4-af77-2e3a0e2a8ba8.png)

### アクセスキーを使用する方法
- **Use Instance Profile** のチェックを外した状態で、**Access Key ID** と **Secret Access Key** を入力します。
    ![01_form_simpleaccess.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/fb418c8a-9faf-02e2-cf67-80892800c2dc.png)

### Assume ロールを使用する方法
- **Assume Role** セクションの **Use Assume Role** をチェックし、**IAM Role** 名を入力します。
   ![01_form_assumerole.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2321853/42fd4af3-c2a4-47e1-5e04-274f24531061.png)
 
### スイッチロールを使用する方法
- 上記 **C. Assume ロールを使用する方法**に加え、**Use Switch Role** をチェックし、スイッチ先の **Account ID** と **IAM Role** 名を入力します。
     ![01_form_switchrole.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2321853/9a1c22c5-fd92-e8a0-2375-e69ccdfdecb3.png)

最後にフォームを保存し、**AWS Cloud service provider** の作成に成功すると以下のメッセージが表示されます。
    ![01_csp_creatingsucceeded.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/3001607c-ae0c-c1aa-c92f-1bf8e70cbc84.png)

# ロールの作成とパーミッションの設定

1. **Manage** メニューから **People** → **Roles** に移動し **Add Role** ボタンをクリックします。
    ![02_addRoles.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/7468bb55-ccb6-8c6d-42e6-7f6a78f5d1b7.png)

1. **Role** の名前を入力しロールを作成します。
    ![02_addrole.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/93a949aa-ccc1-54b9-7bdd-adcd7f5d3b4f.png)

1. 作成したロールのドロップダウンから **Edit Permission** を選択します。
    ![02_rolecheck.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/9eebd613-a860-7b23-9bc7-f9fa5f14ba45.png)

1. 作成したロールに許可したい権限にチェックを入れ、画面最下にある **Save** ボタンをクリックします。
    ![02_EditRole.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/c6805cf2-08db-bd94-ec1d-89499054da9c.png)

# VPC ネットワークリソースの作成
**AWS Cloud service provider** の作成後に、**Cloud service provider** メニューから **AWS** を選択すると以下の画面が表示されます。
    ![AWS Cloud instances _ Cloud Orchestrator.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/94aeb949-2b52-f574-e37d-2dd568d1043a.png)

以下の順番で各々の VPC 内のネットワークリソースを作成します。

|手順|ステップ|
|:--|:--|
|1|[SSH キーペアの作成](#ssh-キーペアの作成)|
|2|VPC の作成|
|3|Subnet の作成|
|4|Internet Gateway の作成|
|5|[Internet Gateway を VPC にアタッチ](#internet-gateway-を-vpc-にアタッチ)|
|6|[AMI イメージのインポート](#ami-イメージのインポート)|
|7|[Security Groupの設定](#セキュリティグループの設定)|

### SSH キーペアの作成

1. **Key Pairs** のタブより **Add AWS Cloud key pair** をクリックします。
    ![04_keypair_create.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/52a9fb19-8732-58ed-0e4a-185031ebe00b.png)

2. フォームに必要事項を入力し保存するとキーペアが作成されます。
    ![04_keypair_form.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/2c5ef7f2-8b66-f793-63a5-76c23b62eab7.png)

3. 作成に成功するとリストに作成したキーペアが追加されています。
    ![04_keypair_created.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/75ecb484-3107-6b79-68fb-53d4c8ea4703.png)

※キーペアと同様の手順で **VPC**、**Subnet**、**Internet Gateway** の順番でリソースを追加します。Internet Gateway について、以下の手順で VPC に Internet Gateway をアタッチする必要があります。

### Internet Gateway を VPC にアタッチ

1. Internet gateway リストの中の **Operations Links** のドロップダウンから **Attach** を選択します。
    ![04_internetgateway_attach.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/804ec76d-3abe-338b-014c-76a51df96980.png)

2. **Attach** する VPC を選択し、**Attach** ボタンをクリック。
3. **Attach** に成功すると**The Internet Gateway is attached to VPC**のメッセージと共に、Operation linksに**Detach**が表示されます。
    ![04_internetgateway_attached.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/55315288-3e49-e450-1a09-ce37b2fcbd52.png)

### AMI イメージのインポート

1. **Images** タブより **Import AWS Cloud image** を選択します。
    ![04_import_image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/5826af78-9809-1700-ef94-22331399b603.png)

2. フォームに必要事項を入力し **Import** をクリックします。
3. インポートが成功すると表にインポートしたイメージが表示されます。
    ![04_imported_image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/cca2583a-c60c-3df8-b2cb-bb0f0375afbc.png)


### セキュリティグループの設定

1. **Security groups** タブより **Add AWS Cloud security group** を選択します。
    ![04_securitygroup_add.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/a8065c57-8844-676d-4e91-2a5d6b857fbf.png)

2. フォームに必要事項を入力し **Save** ボタンをクリックします。
3. 作成に成功すると表に作成したセキュリティグループをが表示されます。
   ![AWS Cloud security groups _ Cloud Orchestrator.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/1231eb69-115a-1647-5574-c6f14bd5055c.png)

4. リストより作成した セキュリティグループを選択し、**Edit** タブから **Inbound rule** と **Outbound rule** の **IP protocol** と **CIDR IP** を設定し保存します。
   ![04_securitygroup_rulesetting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/c2bd7059-8d1e-49bc-2d24-8a010666d88c.png)

# 起動テンプレートの作成

1. Design → Launch template に移動し、**Add launch template** を選択します。
    ![05_launchtemplate_add.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/6f00f861-1150-172d-8b10-57cb9a6fa1ff.png)

2. フォームに必要事項を入力の上、**Workflow** の **Status** を **Review** に設定し保存します。
    ![05_launchtemplate_form.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/cb4c4c0b-df6f-2c63-8f94-9f8ce3bcdff5.png)
 
# インスタンスの起動

1. リストより作成した起動テンプレートをクリックし、**Approve** を選択します。

   ![05_launchtemplate_created.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/7da5af87-09f8-9963-f45f-30e87e720d83.png)

2. **Approve** に成功したら、**Launch** タプを選択します。※ **Approve** へのステータス変更は管理者権限のあるユーザーが行います。

    ![04_launch_instance.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/f53e8461-45e7-c6dc-3355-c835cbbc36ad.png)

3. **Automatically terminate instance** にチェックを入れ、画面最下にある **Launch** ボタンをクリックします。

4. 起動に成功すると、**The launch template has been launched** のメッセージと共に、インスタンスのリストに起動したインスタンスが表示され、ステータスが **Pending** として表示されます。
    ![05_Instance_Created.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2498263/249ed638-7643-8707-868c-9df95f1df667.png)

以上でクラウドオーケストレーターを使って EC2 インスタンスを起動することができました。

# 終わりに

クラウドオーケストレーターをもっと深く知りたい方のために、関連サイトをリストアップしておきます。

  - [クラウドオーケストレーターのはじめかた](https://qiita.com/dcm_naoi/items/880799021f43815fc8c9)**（元記事）**
  - [クラウドオーケストレーターのホームページ](https://cloud.airgap.host/ja)
  - [クラウドオーケストレーターの YouTube チャンネル](https://www.youtube.com/channel/UCmlm5QPAKn2YsRvoPFpQ7WA)
  - [クラウドオーケストレーターのドキュメント（英語）](https://www.drupal.org/node/3044215)
  - [クラウドオーケストレーターの開発サイト](https://drupal.org/project/cloud)
  - [クラウドオーケストレーターのソースコード](https://git.drupalcode.org/project/cloud)