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