2025/04/29

VPCエンドポイントを使用したプライベート接続

## 前置き
- VPCにIGWはなくてよい
- プライベートサブネットにEC2を配置する
## SSM セッションマネージャーの場合

### インターネットへの経路がないEC2にSessionManagerで接続する場合
**Verify that your instance's security group and VPC allow HTTPS (port 443) outbound traffic to the following Systems Manager endpoints:**
* ssm.us-east-1.amazonaws.com  
* ec2messages.us-east-1.amazonaws.com  
* ssmmessages.us-east-1.amazonaws.com  

**If your VPC does not have internet access, you can use VPC endpoints  to allow outbound traffic from your instance.**

### 設定方法
- EC2にロールを付与する
  - AmazonSSMManagedInstanceCore
- EC2のセキュリティグループ
  - アウトバウントのHTTPSを許可
- VPCエンドポイントのセキュリティグループ
  - インバウンドのHTTPSを許可
  - アウトバウンドなし
- VPCエンドポイントを作成
  - com.amazonaws.ap-northeast-1.ssm
  - com.amazonaws.ap-northeast-1.ssmmessages
  - com.amazonaws.ap-northeast-1.ec2messages
- 接続できるようになるまでしばらく待つ  

 
## CloudWatchメトリクスの場合
### メトリクス送信エラー例
ec2.us-east-1.amazonaws.comにもアクセスしている
```
2024-04-15T23:43:19Z W! {"caller":"ec2tagger/ec2tagger.go:485","msg":"ec2tagger: Unable to describe ec2 tags for initial retrieval","kind":"processor","name":"ec2tagger","pipeline":"metrics/host","error":"RequestError: send request failed\ncaused by: Post \"https://ec2.us-east-1.amazonaws.com/\": dial tcp 209.54.177.244:443: i/o timeout"}
```

### 設定方法
- CloudWatchAgentにmetricsを定義
```
    "metrics": {
        "aggregation_dimensions": [
            [
                "AutoScalingGroupName"
            ]
        ],
        "append_dimensions": {
            "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
            "ImageId": "${aws:ImageId}",
            "InstanceId": "${aws:InstanceId}",
            "InstanceType": "${aws:InstanceType}"
        },
        "metrics_collected": {
            "collectd": {
                "metrics_aggregation_interval": 60
            },
            "disk": {
                "measurement": [
                    "used_percent"
                ],
                "metrics_collection_interval": 60,
                "resources": [
                    "*"
                ]
            },
            "mem": {
                "measurement": [
                    "mem_used_percent"
                ],
                "metrics_collection_interval": 60
            },
            "procstat": [
                {
                "exe": "httpd",
                "measurement": [
                    "pid_count"
                ],
                "metrics_collection_interval": 60
                }
            ],                    
            "statsd": {
                "metrics_aggregation_interval": 60,
                "metrics_collection_interval": 10,
                "service_address": ":8125"
            }
        }
    }
```
- EC2にロールを付与する
  - CloudWatchAgentServerPolicy
- EC2のセキュリティグループ
  - アウトバウントのHTTPSを許可
- VPCエンドポイントのセキュリティグループ
  - インバウンドのHTTPSを許可
  - アウトバウンドなし
- VPCエンドポイントを作成
  - com.amazonaws.ap-northeast-1.monitoring
  - com.amazonaws.ap-northeast-1.ec2  

 
## CloudWatch Logsの場合
### 設定方法
- CloudWatchAgentにlogsを定義
```
    "logs": {
        "logs_collected": {
            "files": {
                "collect_list": [
                    {
                        "file_path": "/var/log/messages",
                        "log_group_class": "STANDARD",
                        "log_group_name": "tmplog-20240416",
                        "log_stream_name": "{instance_id}",
                        "retention_in_days": 7
                    },
                    {
                        "file_path": "/var/log/httpd/access_log",
                        "log_group_class": "STANDARD",
                        "log_group_name": "tmplog-20240416",
                        "log_stream_name": "{instance_id}",
                        "retention_in_days": 7
                    }
                ]
            }
        }
    },
```
- EC2にロールを付与する
  - CloudWatchAgentServerPolicy
- EC2のセキュリティグループ
  - アウトバウントのHTTPSを許可
- VPCエンドポイントのセキュリティグループ
  - インバウンドのHTTPSを許可
  - アウトバウンドなし
- VPCエンドポイントを作成
  - com.amazonaws.ap-northeast-1.logs

0 件のコメント:

コメントを投稿

人気の投稿