LoginSignup
1
0

More than 3 years have passed since last update.

AWS Systems Manager、Lambdaを使ってS3のファイルをEC2(Windows)内にダウンロード(同期)してみた。

Posted at

概要図

Lambda ⇒ Systems Manager ⇒ EC2 ⇒(同期コマンド)⇒ S3

▼参考(にさせていただきました!)
https://dev.classmethod.jp/articles/lambda-s3-ec2-windows-sync/

作業ステップ

▼前提
・S3にバケットを作成し、ファイルをアップロード済み

①IAMロールを作成(EC2用)

AmazonEC2RoleforSSM
※上記権限は範囲が広いため、別のポリシーへの移行が推奨されていますので、
 仕事で使用する場合は下記ページをご確認いただければと思います。
 https://dev.classmethod.jp/articles/check-amazonec2roleforssm-policy/

②EC2インスタンス作成(windowsサーバ ※ami-038c59e921e8b9c7d 使いました)

ロールに”①”をアタッチ
⇒SystemsManagerでEC2のオペレーションができるようになる
※SSMエージェントはデフォルトでインストールされていました。

③IAMユーザを作成(EC2用)

AmazonS3FullAccess(S3フルアクセス)

④EC2にRDP(リモートデスクトップ)し、AWS CLIをインストール

私はMSIインストーラでインストールしました。
https://dev.classmethod.jp/articles/first-login-to-ec2-windows/
https://docs.aws.amazon.com/cli/latest/userguide/install-windows.html

⑤EC2にRDP(リモートデスクトップ)し、AWS CLIにアクセスキー・シークレットアクセスキーを設定

”③”で振り出した、アクセスキーシークレットアクセスキーを設定
⇒これにより、AWS CLIで、S3にアクセスできるようになる。

⑥IAMロールを作成(lambda用)

AmazonEC2FullAccess
AmazonSSMFullAccess
※lambdaデフォルトポリシーに上記を追加

⑦lambdaを作成

EC2にS3のファイルを同期するようなコマンドを実行させる。

結果

S3のファイルがEC2に同期されました!
キャプチャ.JPG

はまったポイント

①lambdaからaws cliのコマンドを実行すると、下記のエラーが表示される。

aws : The term 'aws' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path
was included, verify that the path is correct and try again.

まぁ、はまりました(笑)
▼試したこと
①コマンドを管理権限で実行する方法を探す
 ⇒sudo的なのはない、ただファイルを置けばできそうな感じ、、いったん放置
②EC2にadmin権限なしのユーザを作ってログインし、Power Shellでaws cliコマンド実行
 ⇒普通に実行できる。(admin権限周りは関係なさそう)
③EC2にデフォルトでインストールされているSSMエージェントのverを最新にしてみた
 AWSコンソール>AWS System Manager>マネージドインスタンス>Agent auto updateを押下
 ⇒ダメもとでためしただけなんですが、、解決!!!

まさか、これなん、という感じでした。
いやー、無事解決、気持ちよかったです(*'▽')

なるほどポイント

元々、パブリックサブネットでEC2/VPC外lambdaで実行していました。
EC2をプライベートサブネット(NATつき)に移動させても問題ないのか、確認してみました。
⇒Lamdbaからのコマンドが実行されなくなりました。

試していないですが、下記の作業で可能となるようです。
VPCエンドポイントは双方向なんですね。
https://dev.classmethod.jp/articles/tsnote-private-ec2-ssm-vpc-endpoint/

以上です。勉強になりました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0