tyoshikawa1106のブログ

- Force.com Developer Blog -

『Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門』を読んでみました

『Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門』を読んでみました。Windows PCをつかったAWSの使い方が解説されていました。
f:id:tyoshikawa1106:20160807031851j:plain

書籍の内容

ざっくりですがこんな感じの内容となっています。

1章 クラウドの役割

  • システム基盤と従来インフラの問題点
  • クラウドシステムとは
  • 主要なクラウドサービス
  • クラウドサービスの活用例

2章 AWSの基本とアカウント登録

  • Amazon Web Servicesのサービス
  • AWSクラウドデザインパターン
  • AWSのデータセンター
  • AWSアカウント登録と利用開始
  • AWSの開発ツール

3章 Webサーバーの構築

  • WebのしくみとHTTP通信の基本
  • S3を使ったWebサイトの構築
  • EC2をつかったWebサーバー構築
  • ELBを使った不可分散
  • Elastic IPを使った独自ドメインでのサイト運用
  • Cloud Frontを使ったデータ配信

4章 Webアプリケーションサーバーの構築

  • Webアプリのアーキテクチャーの基本
  • アプリ開発環境の構築
  • MySQLによるデータベースサーバー構築
  • TomcatによるWebアプリケーションサーバー構築

5章 ネットワークの構築

  • ネットワークの基礎技術
  • セキュリティグループによるパケットフィルタリング
  • VPCによる仮想ネットワーク構築

6章 AWSのセキュリティ

  • セキュリティの基礎
  • IAMによるユーザアカウント管理
  • データの暗号化

7章 システム運用

  • システム運用の基礎
  • CloudWatchによる監視
  • CloudFormationによる監視
  • CloudFormationによる構成管理
  • データのバックアップとリストア
  • 課金管理

8章 Dockerコンテナー実行環境の構築

  • Dockerとは
  • Dockerのインストール
  • Dockerイメージの作成
  • Dockerイメージの公開
  • AWSでのDockerコンテナー実行
  • ES2でのDocker実行環境の構築
  • EC2 Container ServiceによるDocker実行環境の構築

試してみたこと

S3の構築

f:id:tyoshikawa1106:20160807004811p:plain

f:id:tyoshikawa1106:20160807010542p:plain

EC2インスタンスの起動

f:id:tyoshikawa1106:20160807010934p:plain

f:id:tyoshikawa1106:20160807011053p:plain

メモ

書籍にはWindowsで説明があったため、設定にTeraTermを利用していました。自分はMacの環境で試したのでTerminalから進めました。TerminalからSSH接続するときの方法は次のリンク先を参考になりました。

手順

1. キーペア(秘密鍵)をダウンロードしておく
2. Terminalを起動。ダウンロードフォルダに移動して下記コマンドを実行

$ mv <秘密鍵名>.pem ~/.ssh/
$ chmod 600 ~/.ssh/<秘密鍵名>.pem
$ ssh -i ~/.ssh/<秘密鍵名>.pem [ユーザ名]@[IPアドレス or DNS名]

※ユーザ名の指定は書籍の手順と同じ
※IPアドレスはパブリックIPアドレスを指定 (EC2の設定で確認可能)

3. 接続の承認
SSH接続を承認するか確認メッセージが表示されるのでyesを入力

Are you sure you want to continue connecting (yes/no)? yes


4. yumのupdate
次のメッセージが表示されます。

Run "sudo yum update" to apply all updates.


メッセージどおりにコマンドを実行します。

$ sudo yum update


5. いろいろ実行されます (yumのupdate)
f:id:tyoshikawa1106:20160807013856p:plain


最後に『完了しました!』をメッセージが表示されました。これでyumのupdateができたみたいです。また自分の環境で試した時、以下のメッセージが表示されました。

$ packet_write_wait: Connection to : Broken pipe


SSH接続が切れたことが原因とのことです。次のリンク先が参考になりました。

Macのsshで「Write failed: Broken pipe」が出た場合の対処法 | 田舎に住みたいエンジニアの日記


今回は設定ファイルを変更せずに再接続し直して次に進めました。


6. httpdのインストール
SSH接続した状態で以下のコマンドを実行します。

$ sudo yum install -y httpd


7. httpdの起動
同じく次のコマンドを実行します。

$ sudo service httpd start


正常に起動できるとOKとメッセージが表示されました。

Starting httpd: [ OK ]


これで起動完了です。パブリックIPアドレスまたはパブリックDNSにアクセスするとApach HTTP Serverの規定画面を表示できました。
f:id:tyoshikawa1106:20160807015648p:plain


8. EC2へのファイルアップロード
TeraTermをつかえば画面から操作できますが、Terminalの場合はコマンドでアップロードします。こちらが参考になりました。


こんな感じです。

$ scp -i <秘密鍵のパス> <送信するファイルのパス> <ユーザ名>@<該当インスタンスのパブリックIPアドレス>:<ファイルを配置するパス>


もう少し詳細。送信するファイルのパスがデスクトップにある場合はパスは「~/Desktop」から始まります。(ちょっとハマりました。)

$ scp -i ~/.ssh/<秘密鍵名>.pem ~/Desktop/<Folder Path>/index.html <username>@<ip adress>:/home/<...>


これでパスの指定はできたと思うのですが、実行すると次のエラーが発生しました。

Warning: Identity file /home/***/.ssh/***.pem not accessible: No such file or directory.
Permission denied (publickey).
lost connection


秘密鍵ファイルが見当たらないというエラーっぽいです。ログインはできているので秘密鍵の設定もできていると思うのですが、ちょっと解決できませんでした。また今度気が向いたらWindowsの方で試してみようと思います。


まだはじめの部分しか読めていませんが、この他セキュリティの話とかJavaをつかったWebアプリの開発環境構築話とか載っているみたいです。