Amazon EC2インスタンスにSSHでアクセスする
インスタンスを生成後,SSHでアクセスしてみましょう. Management Consoleでインスタンス一覧を表示し,インスタンスを右クリックします.
すると,インスタンスに対して行える制御一覧が表示されます. Instance Management内のConnectボタンをクリックすると,SSHでの具体的なアクセス方法の詳細が表示されます.
私は普段OSにUbuntuを使っているので,Ubuntuのターミナル上からSSHを行いアクセスしてみることとします. Windowsユーザの方はPuTTYなどを使ってSSHでアクセスすればよいでしょう.しかし,Exampleに書いてあるコマンドをそのままターミナルに入力してもうまく繋がりません.
まず,Ubuntuのターミナル上から,インスタンス作成時にダウンロードしたプライベート鍵(例ではnishio-key.pem)のアクセス権を変更します.例えば,ターミナル上から
chmod 400 nishio-key.pem
とすればよいです.
次に,Exampleにある通り,
ssh -i ダウンロードした秘密鍵のパス root@サーバのアドレス
と入力してみるが,うまくアクセスできませんでした.
エラーメッセージを見ると,どうやらrootユーザでログインするな,ec2-userでログインせよとの事でした.そこで,
ssh -i ダウンロードした秘密鍵のパス ec2-user@サーバアドレス
として再度ログインします.
無事にログインできました.あとはyumでパッケージをインストールするなりして好きにカスタマイズしてください.
コンピュータの性能を表示させたところ,以下のような結果となりました.
高性能なコンピュータを使ってますね.以上でインスタンスの生成は完了です.
しかしながら,実際に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からデータを復旧する方法について紹介します.