nishio-dens's diary

Railsとかプログラミング関連の備忘録

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からデータを復旧する方法について紹介します.


目次に戻る