AWS Recent Announcements(6/1~6/12)
はじめに(定型文)
AWS Step Functions launches an interactive workshop for building and deploying application workflows
Amazon EMR Serverless is now generally available
AWS Elastic Disaster Recovery now supports multiple staging and target accounts
Announcing AWS Cost Allocation Tag API
AWS Mainframe Modernization is now generally available
AWS Health Dashboard streamlines service transparency via Connector for ServiceNow
Amazon Aurora PostgreSQL-compatible edition now supports zero-downtime patching
Amazon Aurora PostgreSQL supports LO module
AWS Recent Announcements(4/30~5/31)
はじめに(定型文)
Amazon RDS now supports Internet Protocol Version 6 (IPv6)
AWS adds new management features for EC2 key pairs
AWS Network Firewall now supports AWS Managed Threat Signatures
Amazon EKS console now supports all standard Kubernetes resources to simplify cluster management
Amazon RDS Performance Insights now allows you to more easily see metrics for any time interval
Amazon EBS Snapshots Archive is now available in additional regions
AWS Serverless Application Model CLI now supports enabling AWS X-Ray tracing
Amazon RDS for PostgreSQL supports cascaded read replicas for up to 30X more read capacity
The New Amazon ElastiCache console is now available
AWS Service Catalog Provisioning constructs for the AWS Cloud Development Kit (AWS CDK) are now available
Amazon Braket Hybrid Jobs now supports embedded circuit simulations, improving the performance of certain hybrid quantum-classical algorithms by over 10X
はじめに(定型文)
Amazon EC2 adds CloudWatch Events support for Amazon Machine Images
Announcing new workflow observability features for AWS Step Functions
AWS Secrets Manager now publishes secrets usage metrics to Amazon CloudWatch
Amazon Athena now supports views in Apache Hive metastores
AWS PrivateLink announces support for IPv6
Amazon VPC Traffic Mirroring now supports sending mirrored traffic to Gateway Load Balancer backed monitoring appliances
Amazon VPC now supports multiple IPv6 CIDR blocks
AWS Control Tower can now use customer provided core accounts
Amazon CloudWatch announces improved console experience
AWS Resilience Hub adds support for Terraform, Amazon ECS, and additional services
Announcing general availability of 1-click public embedding available with Amazon QuickSight
Announcing Multi-Account Support for AWS Transit Gateway Network Manager
Two new storage locations available for AWS DataSync
Amazon EC2 enables customers to protect instances from unintentional stop actions
AWS Systems Manager announces support for port forwarding to remote hosts using Session Manager
Amazon ECS simplifies Capacity Provider integration with Auto Scaling groups
SSMでリモートホストにPortForwardingする
はじめに
下記アップデートにて、SSMのドキュメントでPortForwardingができるようになりました。
リンク先のドキュメントは何も書いてないに等しかったので、調査がてら試してみることにしました。 (尚、コンソールのセッションマネージャーやRunCommandからできたら楽だったのですが、現状はできない模様です)
やりたいこと 今回はローカルPCからプライベートサブネット上のDocumentDBにログインしてみます。
【接続経路】 ローカルPC(WSL2)→EC2(AmazonLinux2)→DocumentDB(Port:27017)
※接続先がDocumentDBなのは今案件で使っていて試しやすかっただけで他意はないです(EC2やRDSでも可能です) ※そのせいでMongo-shellの実行環境を作る必要があって地味にめんどくさかったのは秘密
事前準備
PortForwarding用のEC2インスタンスを作成します。 基本デフォルト(キーペアもSGのインバウンドルールも不要)で問題ないですが、セッションマネージャーで接続ができることが前提なので「AmazonSSMManagedInstanceCore」権限のあるインスタンスプロファイル(IAMロール)をアタッチしてあれば良いです。
また、PortForwardingはSSMエージェントのバージョンが「3.1.1374.0以降」である必要があります。 尚、検証時点(※5/28)のAmazonLinux2のAMIにデフォルトで入っているエージェントは地味にバージョンが足りないので、利用する場合は手動アップデートが必要になります。 (昨日今日に追加された機能なので、そのうち更新されると思います)
※検証時点(※5/28)で起動したインスタンスのSSMエージェントバージョン
# rpm -qa | grep -i ssm amazon-ssm-agent-3.1.1188.0-1.amzn2.x86_64
※バージョンアップ手順はこちら
https://docs.aws.amazon.com/systems-manager/latest/userguide/agent-install-al2.html
※更新後のバージョン
# rpm -qa | grep -i ssm amazon-ssm-agent-3.1.1446.0-1.x86_64
接続コマンド
SSMドキュメント名は「AWS-StartPortForwardingSessionToRemoteHost」です。 詳細はドキュメントの説明(SSMのコンソールから見れます)に譲りますが、パラメータにローカル/リモートのポートと転送先のホスト(今回はDocumentDBのエンドポイント)を設定すれば接続できます。
$ aws ssm start-session --target i-xxxxxxxxxxxx --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters 'portNumber=27017,localPortNumber=27017,host=docdb.cluster-abcdefghij.ap-northeast-1.docdb.amazonaws.com' Starting session with SessionId: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Port 27017 opened for sessionId xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Waiting for connections...
実行後、別画面でlocalhost宛てに接続すれば転送先にログインできます。
$ mongo --host localhost:27017 --username mongo MongoDB shell version v4.4.14 Enter password: connecting to: mongodb://localhost:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("c5988ed1-5497-4e17-9138-16ae18b0b71e") } MongoDB server version: 4.0.0 (※中略) rs0:PRIMARY>
参考
WSL2でMongo-shellを使いたい場合、単にaptではインストールできないようです。 自分は下記サイトを参考にしました。 (DBが必要なわけではないのでmongodb-org-shellのみインストールしました)