使用した環境
・ スイッチロールしないとEC2の構築、接続ができない。
・Linux系はCloudShellで接続。WindwosはFleetManagerで接続。
・構築は、EC2、S3のみ。
・AMI、VPC、セキュリティグループは既存の設定を修正しつつ使用。
CloudShellからLinux系サーバーへ接続ができない
CloudShellに秘密鍵を格納し、以下コマンドで接続を試してもタイムアウトで接続が行えなかった。
ssh -i 秘密鍵のパス 接続するユーザー名@接続先サーバーのグローバルIP
対処方法
Linux系サーバーをCloudShellから操作するためには、
接続するLinux系サーバーのセキュリティグループにCloudShellのグローバルIPアドレスを追加する必要があった。
| 許可するIPアドレス | CloudShellのグローバルIPアドレス |
|---|---|
| 使用するポート | SSH |
RHELからS3へ接続するには、事前に設定が必要
あとから考えてみれば、Linux系の接続は秘密鍵を使用し接続するため、
認証方法は違うけどすっかり忘れてた。
対処方法
RHELは、以下手順にて秘密鍵の認証を通す必要がある。
1. RHELサーバーで指定しているセキュリティグループに、接続元PCのグローバルIPアドレスを追加する。
| 許可するIPアドレス | 接続元PCのグローバルIPアドレス |
|---|---|
| 使用するポート | HTTPS |
2. AWS CLIのインストール先を絶対パスで指定して以下コマンドを実行する。
/usr/local/bin/aws login --remote
オプションで「--remote」を指定すると認証用のURLが表示されるのでOS内で認証しなくてすむ。
指定するパスは以下どちらでも可能
/usr/local/bin/aws:シンボリック先
/usr/local/aws-cli:実態
3. 表示されたURLをコピーし、接続元のPCでwebブラウザのアドレスバーに入力し認証画面から認証を通す。
4. 認証完了後、とても長い文字列をコピーし、RHEL環境に張り付ける。
貼り付け時は、「Art」キー+「V」を押下する。
※Windows(FleetManager)は事前準備せずそのまま接続が行えるため説明は省略する。
検証用ファイルの作成
作成したファイルの更新日時を確認し次処理を行う流れだったため
日時指定してファイル作成するのをめんどくさがり、
ファイル作成→OSの日時を変更→次処理実行の流れで作業を行った。
結果、上記記載したRHELサーバーとS3の認証でエラーが発生しちゃった。
対処方法
ちゃんと日時指定して作成しよ。
環境にあわせて以下コマンドで日時指定をすれば更新日付や、作成日時を指定して作成できる。
touch -t yyyymmddhhmm filename
凡例
| yyyymmddhhmm | 指定する日時 |
|---|---|
| filename | 修正(また作成)するファイル名 |
ファイルは日時指定・作成が同時にできる ディレクトリは先に作成して上記コマンドで日時変更で対応可能。
Set-ItemProperty filename -name lasttime -value yyyy/mm/dd hh:mm
凡例
| yyyy/mm/dd hh:mm | 指定する日時 |
|---|---|
| filename | 修正(また作成)するファイル名 |
※ lasttime は更新日付の指定を表す
まとめ
今回、上記のような初歩的な作業でうまくいかず立ち止まってしまったため、3つ紹介してみた。
初歩的なところで詰まっていることはわかっていても、なにで詰まっているのかわからない時は、上記参考にしていただき現状の切り分けに役立てていただきたい。