EC2インスタンスにSSHでアクセスする

インスタンスを生成後,SSHでアクセスしてみましょう.

Management Consoleでインスタンス一覧を表示し,インスタンスを右クリックします.

image22

すると,インスタンスに対して行える制御一覧が表示されます.

Instance Management内のConnectボタンをクリックすると,SSHでの具体的なアクセス方法の詳細が表示されます.

amazon22.png

私は普段OSにUbuntuを使っているので,Ubuntuのターミナル上からSSHを行いアクセスしてみることとします. Windowsユーザの方はPuTTYなどを使ってSSHでアクセスすればよいでしょう. しかし,Exampleに書いてあるコマンドをそのままターミナルに入力してもうまく繋がりません.

まず,Ubuntuのターミナル上から,インスタンス作成時にダウンロードしたプライベート鍵(例ではnishio-key.pem)のアクセス権を変更します. 例えば,ターミナル上から

Chmod 400 nishio-key.pem

とすればよいです.

amazon23.png

次に,Exampleにある通り,

ssh -i ダウンロードした秘密鍵のパス root@サーバのアドレス

と入力してみるが,うまくアクセスできませんでした.

amazon24.png

エラーメッセージを見ると,どうやらrootユーザでログインするな,ec2-userでログインせよとの事でした. そこで,

ssh -i ダウンロードした秘密鍵のパス ec2-user@サーバアドレス

として再度ログインします.

amazon25.png

無事にログインできました. あとはyumでパッケージをインストールするなりして好きにカスタマイズしてください.

コンピュータの性能を表示させたところ,以下のような結果となりました.

amazon44.png

高性能なコンピュータを使ってますね.以上でインスタンスの生成は完了です.

しかしながら,実際にEC2上でシステムを運用するとなると,上記の手順だけでは不十分です.

実は,インスタンスに保存されているデータ(インストールしたソフト等すべて)は,インスタンスをTerminate(終了)してしまうとすべて消えてしまうのです.

例えばAmazon側が不慮の自体でサービスが止まってしまったり,管理者が間違えてTerminateしてしまった場合,大切な情報がすべて失われてしまうことになります.

このような自体を防ぐ方法として,Amazon S3やElastic Block Store(EBS)等を利用し,データのバックアップをとっておく必要があります.

S3は大容量のデータを保存する際に利用します. このS3はEC2とは疎に結合することしかできません. つまり,EC2側から普通のHDDのように簡単にアクセスすることができないわけです. よって,S3上に頻繁にアクセス,更新するデータを置くことは難しいと考えてよいでしょう.

この問題を解決するためには,Elastic Block Store(EBS)と呼ばれるものを利用します. EBSは,いわゆる外付けHDDのような感覚で使えますが, このEBSもインスタンス一つ毎に異なるものを作らなければならず(つまり複数インスタンスから同時にアクセスはできない), さらにアクセス速度がいまいちという欠点もあります.

ともあれ,例えばMySQLのデータをEBSにおいておき,インスタンスのイメージをS3上に取っておくようにしてバックアップするなど, 用途によってEBSとS3の利用を分けるなどしたほうが良いかと思います.

別の章にて,インスタンスのイメージをAmazon S3側にバックアップし, インスタンスが止まった際にS3からデータを復旧する方法について紹介します.