最初の週.AWS&仮想サーバ


[概要]
1.クラウドとAWSの概要
2.IaaSのEC 2(仮想サーバ)の導入と使用

📌 雲とは何ですか。


クラウドとは、インターネットを通じていつでもどこでも自由にITリソース(コンピューティング、ストレージ、ネットワーク)を利用するサービスです.

[クラウドサービスタイプ]



  • IaaS (Infrastructure as a Service)

  • インターネットを通じてユーザーにITインフラストラクチャを提供するクラウドコンピューティング
  • オペレーティングシステム、データ・ミドルウェア、ランタイム、およびアプリケーションをユーザーが管理する

  • PaaS (Platform as a Service)

  • ハードウェア・アプリケーション・ソフトウェア・プラットフォームをベンダーから提供するクラウドコンピューティング
  • インフラストラクチャの導入と保守は不要

  • SaaS (Software as a Service)

  • クラウドコンピューティング
  • ユーザーにクラウドアプリケーションと基本ITインフラストラクチャ、プラットフォームを提供する
  • ユーザー管理不要

  • Serverless

  • 開発者はサーバを管理する必要はありません
  • クラウドプロバイダがサーバインフラストラクチャの構成、メンテナンス、スケーリングなどのタスクを処理
  • [3つのクラウド実装モデル]


  • パブリッククラウド


    通常、クラウドサービスプロバイダが運営管理し、ユーザーがクラウドリソースを使用するモデル


  • プライベートクラウド(=オープンクラウド)


    ユーザーがエンタープライズ・データ・センター内でクラウド・プラットフォームを構築し、直接使用するモデル
  • こんごううん

    Public CloudとOnPremissともにサービスを提供している機種
  • 📌 AWSクラウドの概要


    Amazon Webサービスは、グローバルに分散したデータセンターで多様なサービスを提供するクラウドプラットフォームです.
    💡 AWS公式サイト:https://aws.amazon.com/ko/
  • Webサービスを使用して、ビジネスおよび開発者が拡張性と細かいアプリケーションを構築できるよう支援
  • 現在、複数のユーザー(企業や個人を含む)が使用しており、多くの大手企業もクラウドコンピューティングのメリットを利用しています.
  • 📌 プレゼンテーション練習EC 2(仮想サーバ)の導入と使用


    💡 AWS EC 2インスタンスを導入し、Webを介してWebに接続し、Webサービスの実装と検証を行います.

    🔍 AWS管理コンソールに接続し、EC 2を配備


  • EC 2サービス→「インスタンスの起動」をクリックします。




  • Amazon Machine Image(AMI)を選択


    💡 雅美って何?
    インスタンスの起動に必要なソフトウェア構成(オペレーティングシステム、アプリケーションサーバ、アプリケーション)を含むテンプレート.
    この練習では、 Amazon Linux 2 AMI : 64bit(x86)を選択します.

  • インスタンスタイプの選択(仕様)


    💡 インスタンスとは?
    アプリケーションを実行できる仮想サーバには、CPU、メモリ、ストレージ、ネットワーク容量など、さまざまな組み合わせがあります.
    この練習では、t2.micro vCPU(1) MEM(1GiB)を選択します.

  • 構成インスタンスの詳細→ほとんどのDefault設定


    インスタンス数(1)、パブリックIPの自動割り当て(有効)

  • ストレージの追加を選択しました


    インスタンスで使用するストレージデバイスをインストールします.

  • タグの追加


    タグを付けると、インスタンス、画像、その他のAmazon EC 2リソースを簡単に管理できます.指定したタグに基づいて、特定のリソースをすばやく識別できます.
    キー:Name&値:FirstServer

  • 安全ユニット構成★★★★


    💡 セキュリティグループとは?
    インスタンス通信のファイアウォールルールセット(許可ルール)を制御します.
  • サーバの違い:インターネット通信で目的地に到着する必要がある→IP情報
  • サーバ内のサービスを区別:必要→Port情報(0から65535)
  • HTTP(80) , SSH(22)

  • スタート


    ダッシュボードに作成されたEC 2が接続されているかどうかを確認できます.本実験では,AWSが提供するSSHを介して接続する方法を学習した.



  • 🔍 EC 2インスタンスにWebサービスをインストールする


    [Linuxの基本コマンドを使用して配備されたEC 2の基本情報を検証]
  • 現在接続されているユーザを特定
  • # 현재 접속한 사용자 확인
    [ec2-user@ip-172-31-46-223 ~]$ whoami
    ec2-user
  • 現在のLinuxバージョン情報の表示
  • # 현재 Linux 버전 정보 확인
    [ec2-user@ip-172-31-46-223 ~]$ cat /etc/system-release
    Amazon Linux release 2 (Karoo)
  • 現在のサーバリソース情報の表示
  • # CPU 확인
    [root@ip-172-31-43-250 ~]# cat /proc/cpuinfo |egrep '(processor|name)'
    processor	: 0
    model name	: Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
    
    # 메모리 확인
    [root@ip-172-31-43-250 ~]# cat /proc/meminfo |grep MemTotal
    MemTotal:        1006900 kB
    
    # 스토리지 확인 : 부트볼륨(EBS) 정보 확인
    [ec2-user@ip-172-31-46-223 ~]$ lsblk
    NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0   8G  0 disk
    └─xvda1ㅇㄹ -ㅗ
    202:1    0   8G  0 part /
    
    [ec2-user@ip-172-31-46-223 ~]$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        482M     0  482M   0% /dev
    tmpfs           492M     0  492M   0% /dev/shm
    tmpfs           492M  460K  492M   1% /run
    tmpfs           492M     0  492M   0% /sys/fs/cgroup
    /dev/xvda1      8.0G  1.4G  6.7G  18% /
    tmpfs            99M     0   99M   0% /run/user/0
    tmpfs            99M     0   99M   0% /run/user/1000
  • 多種類のシステム関連負荷検査ツールをインストール
  • # sudo 는 슈퍼유저의 권한으로 실행
    [ec2-user@ip-172-31-46-223 ~]$ sudo yum -y install dstat htop

  • dstatを使用してシステム負荷を検証する
    例)dstat-t(瞬時)l(平均負荷)m(メモリ)a(cdngy CPUディスクネットワークパッケージングシステム)--出力(出力をcsvファイルとして保存)3(毎秒)
  • [ec2-user@ip-172-31-46-223 ~]$ dstat -tlma 1
    ----system---- ---load-avg--- ------memory-usage----- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
         time     | 1m   5m  15m | used  buff  cach  free|usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
    13-02 06:16:22|   0    0    0| 110M 2088k  384M  487M|  1   0  98   0   0   0| 227k  335k|   0     0 |   0     0 |  38   131
    13-02 06:16:23|   0    0    0| 110M 2088k  384M  487M|  0   0 100   0   0   0|   0     0 |  52B 1412B|   0     0 |  32    59
    # CTRL + C 로 빠져나오기
  • htop CPUメモリなどのシステムリソースをチェック
  • # htop 으로 CPU Memory 등 시스템 자원 확인
    [ec2-user@ip-172-31-46-223 ~]$ htop
    # CTRL + C 로 빠져나오기
  • IP情報確認
  • # 프라이빗 IP 정보 확인
    [ec2-user@ip-172-31-46-223 ~] ip -br -c addr show
    lo               UNKNOWN        127.0.0.1/8 ::1/128
    eth0             UP             172.31.46.223/20 fe80::880:baff:fe0f:2598/64
    
    [ec2-user@ip-172-31-46-223 ~]$ ip a
    
    # 퍼블릭 IP 정보 확인
    [ec2-user@ip-172-31-46-223 ~]$ curl ipinfo.io
  • その他の有用な情報を知る
  • # 서비스 제공 확인(포트 Listen) : SSH(서버 서비스 중, TCP 22 포트 사용)
    # 예시) ss -t(TCP) -l(Listen) -n(숫자로 출력)
    
    [ec2-user@ip-172-31-46-223 ~]$ ss -tl
    State           Recv-Q           Send-Q                      Local Address:Port                       Peer Address:Port
    LISTEN          0                128                               0.0.0.0:ssh                             0.0.0.0:***
    ...
    
    [ec2-user@ip-172-31-46-223 ~]$ ss -tln
    State           Recv-Q           Send-Q                      Local Address:Port                       Peer Address:Port
    LISTEN          0                128                               0.0.0.0:22                              0.0.0.0:***
    ...
    
    # -t(TCP 세션 연결)
    [ec2-user@ip-172-31-46-223 ~]$ ss -ttn
    State        Recv-Q         Send-Q                  Local Address:Port                 Peer Address:Port          
    ESTAB        0              0                       172.31.46.223:22                    13.209.1.57:53559         
    
    # -p(프로세스 정보, 관리자 권한 필요)
    [ec2-user@ip-172-31-46-223 ~]$ sudo ss -ttnp
    State        Recv-Q         Send-Q                  Local Address:Port                 Peer Address:Port          
    ESTAB        0              0                       172.31.46.223:22                    13.209.1.57:53559         
     users:(("sshd",pid=4446,fd=3),("sshd",pid=4044,fd=3))

    🔍 WebブラウザによるEC 2へのパブリックIP接続によるWebサービス接続の検証


    Webサービスとindexをインストールします.htmlファイルの生成
  • rootアカウントに切り替え
  • # 실습의 편리를 위해서 root 계정으로 전환합니다.
    # 실제 현업에서 root(관리자, 수퍼유저)로 사용은 되도록 금합니다. 하지만 실습의 경우이니 편리성을 위해서 관리자로 전환하여 진행합니다.
    [ec2-user@ip172-31-39-148 ~]$ sudo su -
  • ウェブサービスのインストールと実行
  • # Web 서비스를 설치합니다.
    [root@ip-172-31-39-148 ~]# yum install httpd -y
    
    # Web 서비스를 실행합니다.
    [root@ip-172-31-39-148 ~]# systemctl start httpd
  • Webページ構成
  • # 웹 페이지를 구성합니다.
    # 기본 웹 페이지 디렉터리는 /var/www/html 이다.
    # 아래 명령어는 본문 내용을 담아서 index.html 파일을 생성한다
    ## (심화) Apache는 파일에 접근 시에 디렉토리만 지정될 경우에 기본으로 반환하는 파일을 "DirectoryIndex"로 지정하며 보통 'index.html' 포함됨
    [root@ip-172-31-39-148 ~]# echo "<h1>Test Web Server</h1>" > /var/www/html/index.html
  • 検証ファイル生成
  • [root@ip-172-31-39-148 ~]# ls /var/www/html/
    index.html
  • ファイル内容の確認
  • # cat 로 생성된 파일 내용 확인
    [root@ip-172-31-39-148 ~]# cat /var/www/html/index.html
    <h1>Test Web Server</h1>
  • 検証Web接続(curl)
  • # curl(CLI 웹 요청 명령어) 명령어로 웹 접속을 확인합니다. 
    [root@ip-172-31-39-148 ~]# curl localhost
    <h1>Test Web Server</h1>
  • Webサービス行動チェック
  • # 웹 서비스 동작 확인 - TCP 80(HTTP)를 사용
    [root@ip-172-31-39-148 ~]# ss -tl
    State           Recv-Q           Send-Q                      Local Address:Port                       Peer Address:Port
    ...
    LISTEN          0                128                                     *:http                                  *:*
    
    [root@ip-172-31-39-148 ~]# ss -tln
    State           Recv-Q           Send-Q                      Local Address:Port                       Peer Address:Port
    ...
    LISTEN          0                128    
  • Webブラウザを介してEC 2に接続されたパブリックIP認証Webサービス接続