AWS Systems Managerを使用してOCI Computeを管理

# 概要
AWS Systems Managerを使用してOCI上に起動したComputeを管理します。

# 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/b6b897e6-b198-12fe-6ac7-52a8a21bc692.png)

# 設定手順
## アクティベーション
  AWS マネジメントコンソールにログインして、AWS Systems Manager > ハイブリッドアクティベーションを選択してアクティベーションを作成するを押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/2cd1f116-0027-ac93-51de-1f35b1592676.png)

説明とインスタンス名を入力してアクティベーションの作成を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/a03257fc-2be2-3771-5b80-e8b68bec8bc3.png)

アクティベーションのCodeとIDが表示されるのでコピー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/745cb0b0-c77d-ca82-a516-f4688b8181e2.png)

アクティベーション待ちの状態になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/cc97c308-0bf3-fe31-c019-f1629716e572.png)

## SSM Agent導入
以下の公式サイトを参考にSSM Agentをインストールします。
[ハイブリッドおよびマルチクラウド環境 (Linux) に SSM Agent をインストールする](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/sysman-install-managed-linux.html)

``` 
mkdir /tmp/ssm
curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm
sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm
sudo systemctl stop amazon-ssm-agent
sudo -E amazon-ssm-agent -register -code "【activation-code】" -id "【activation-id】" -region "【region】"
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
``` 
SSM Agentの稼働Activeを確認します。
``` 
[user@oci-linux ~]$ sudo systemctl status amazon-ssm-agent
 amazon-ssm-agent.service - amazon-ssm-agent
   Loaded: loaded (/etc/systemd/system/amazon-ssm-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-09-18 13:36:18 GMT; 3s ago
 Main PID: 6733 (amazon-ssm-agen)
    Tasks: 18 (limit: 22532)
   Memory: 29.1M
``` 

## アクティベーション確認
登録済みインスタンスが1になり、アクティベーションが完了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/3f98ff5a-5144-087a-7d79-8b033d1164ac.png)

AWS Systems Manager > Fleet Managerにもオンラインとして表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/54c11378-d981-93ee-b3f1-0d79278f6de4.png)

# 稼働確認
ここでは2つの作業で稼働を確認します。
## Run commandによるリモート実行
OCI Computeに対し簡単なコマンドを発行してOutputを受信します。
AWS マネジメントコンソールからAWS Systems Manager > Run commandでRun commandを押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/98305a6c-415a-5d3f-ca9c-4919a5e68798.png)

コマンド実行画面において以下のように入力
コマンドタイプ：AWS-RunShellScript
コマンド：発行するコマンド
ターゲット：インスタンスを選択
実行ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/021d56ca-29fd-b826-c929-3ea5b7b543d1.png)

進行中
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/117a9e5f-856b-267d-fb1f-b18c317bbb4d.png)

成功しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/a581a307-4645-80f0-3759-060480367dcd.png)
Outputも確認可能です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/cf92b87e-a4e3-c912-1144-daee00c8d1a3.png)


## Session Managerによるリモートアクセス

Session Managerを使用するためにはSystems managerのアドバンストインスタンス層への変更を行います。
管理者権限のあるユーザーからCloudShell等を使用して実行します。
``` 
#Standard tierを確認
[user@***** ~]$ aws ssm get-service-setting --setting-id arn:aws:ssm:ap-northeast-1:【aws-account-id】:servicesetting/ssm/managed-instance/activation-tier
{
    "ServiceSetting": {
        "SettingId": "/ssm/managed-instance/activation-tier",
        "SettingValue": "standard", 
         :
        "Status": "Default"
    }
}
#Advanced tierに変更
[user@***** ~]$ aws ssm update-service-setting --setting-id arn:aws:ssm:ap-northeast-1:【aws-account-id】:servicesetting/ssm/managed-instance/activation-tier --setting-value advanced
#Advanced tierになったことを確認
[user@***** ~]$ aws ssm get-service-setting --setting-id arn:aws:ssm:ap-northeast-1:【aws-account-id】:servicesetting/ssm/managed-instance/activation-tier                          
{
    "ServiceSetting": {
        "SettingId": "/ssm/managed-instance/activation-tier",
        "SettingValue": "advanced",
         :
        "Status": "Customized"
    }
}
``` 
AWSコンソールからOCI Computeにリモートアクセスします。
AWS Systems Manager > Session managerを選択してセッションの開始を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/034252f6-b513-1aee-b90a-be0f58c7825e.png)

インスタンスを選択してStart Sessionを押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/35f2c658-84be-cb3c-b9f2-ace7ccb675cf.png)

対象Computeにログインできました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/5f257e1e-f6e6-d26e-8595-66151601e203.png)


Session Managerを使用しない場合はスタンダードインスタンス層への変更を行います。
管理者権限のあるユーザーからCloudShell等を使用して実行します。
```
#Standard tierに変更
[user@***** ~]$ aws ssm update-service-setting --setting-id arn:aws:ssm:ap-northeast-1:【aws-account-id】:servicesetting/ssm/managed-instance/activation-tier --setting-value standard
#Standard tierになったことを確認
[user@***** ~]$ aws ssm get-service-setting --setting-id arn:aws:ssm:ap-northeast-1:【aws-account-id】:servicesetting/ssm/managed-instance/activation-tier{
    "ServiceSetting": {
        "SettingId": "/ssm/managed-instance/activation-tier",
        "SettingValue": "advanced",
         :
        "Status": "PendingUpdate"
    }
}
[user@***** ~]$ aws ssm get-service-setting --setting-id arn:aws:ssm:ap-northeast-1:【aws-account-id】:servicesetting/ssm/managed-instance/activation-tier
{
    "ServiceSetting": {
        "SettingId": "/ssm/managed-instance/activation-tier",
        "SettingValue": "standard",
         :
        "Status": "Default"
    }
}
```