T3インスタンスの制限数
2018年8月現在、T3インスタンス(オンデマンド)の制限数を調べました。
リージョン | nano | micro | small | medium | large | xlarge | 2xlarge |
---|---|---|---|---|---|---|---|
バージニア北部 | 10 | 10 | 10 | 7 | 5 | 3 | 3 |
オハイオ | 10 | 10 | 6 | 4 | 3 | 2 | 1 |
北カリフォルニア | 5 | 5 | 5 | 3 | 3 | 2 | 2 |
オレゴン | 10 | 10 | 10 | 10 | 5 | 3 | 3 |
ムンバイ | - | - | - | - | - | - | - |
ソウル | - | - | - | - | - | - | - |
シンガポール | 5 | 5 | 5 | 5 | 3 | 1 | 1 |
シドニー | 5 | 5 | 5 | 5 | 3 | 2 | 2 |
東京 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
カナダ | 7 | 7 | 5 | 5 | 5 | 3 | 1 |
フランクフルト | 5 | 5 | 5 | 5 | 3 | 1 | 1 |
アイルランド | 5 | 5 | 5 | 3 | 3 | 3 | 2 |
ロンドン | 5 | 5 | 5 | 5 | 3 | 3 | 1 |
パリ | - | - | - | - | - | - | - |
サンパウロ | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
東京リージョンが少ないですね。。。
制限を超える場合は、上限緩和の申請
をしましょう。
参考
- AWSドキュメント
せっかくだから、俺はこのT3インスタンスを選ぶぜ!
T3インスタンスがリリースされました。
t2.micro
とt3.micro
を比較してみます。
料金は東京リージョン、オンデマンド、Linux/UNIXの条件です。
t2.micro | t3.micro | |
---|---|---|
vCPU | 1 | 2 |
EBS最適化利用 | - | はい |
ネットワークパフォーマンス | 低から中 | Up to 5 Gigabit |
T2/T3 Unlimited | - | デフォルトで有効化 |
1時間あたりに受け取るCPUクレジット | 6 | 12 |
蓄積可能な最大獲得クレジット | 144 | 288 |
初期クレジット | 30 | 0 |
料金(時間) | $0.0152 | $0.0136 |
無料利用枠の対象 | はい | - |
t3の方が1時間あたりに受け取るCPUクレジットが倍になっていますが、初期クレジット(CPUCreditBalance)が0です。
無料利用枠が関係ないのであれば、積極的にt3を利用したいですね。
リザーブドインスタンス
ちょうど自宅での検証用にリザーブドインスタンスが欲しかったので、t3.micro
を購入します。
サービス [EC2] - [リザーブドインスタンス] を選択し、[リザーブドインスタンスの購入]ボタンをクリックします。
- 東京リージョン
- プラットフォーム: Linux/UNIX
- テナンシー: デフォルト(共有)
- 提供クラス: スタンダード
- 期間: 1年間
- お支払い方法: 全前払い
インスタンスタイプ t2.micro
とt3.micro
を比較してみます。(2018年8月現在)
t2.micro
前払い価格: $84.0
t3.micro
前払い価格: $76.0
1年間で見ると、T3の方が 8ドル ほど安くなっています。お得ですね。
「ポチッとな」
無事購入できました。
まとめ
こうして俺は「T3インスタンス」を手に入れた。
参考
- AWS News Blog
- AWSドキュメント
- Developers.IO
シンプルなネットワークとサーバーをCloudFormationで構築する 〜3. サーバー構築〜
前回はセキュリティーグループ、ネットワークACLを設定しました。
今回は、作成したネットワーク上にEC2インスタンスを作成し、Webサーバーを構築します。 Webサーバーはnginxデフォルト状態とします。
サーバー構築用のテンプレート
今回作成したテンプレートは以下になります。
server.template.yaml
AWSTemplateFormatVersion: 2010-09-09 Parameters: ProjectCode: Type: String Description: Enter your project code InstanceType: Type: String Description: WebServer EC2 instance type ConstraintDescription: must be a valid EC2 instance type. Default: t2.micro AllowedValues: - t2.nano - t2.micro - t2.small - t2.medium - t2.large KeyName: Type: AWS::EC2::KeyPair::KeyName Description: Name of an existing EC2 KeyPair to enable SSH access to the instance ConstraintDescription: must be the name of an existing EC2 KeyPair. Mappings: RegionMap: us-east-1: AL2: ami-04681a1dbd79675a5 us-east-2: AL2: ami-0cf31d971a3ca20d6 us-west-1: AL2: ami-0782017a917e973e7 us-west-2: AL2: ami-6cd6f714 ap-northeast-1: AL2: ami-08847abae18baa040 ap-southeast-1: AL2: ami-01da99628f381e50a Resources: WebServerInstance: Type: AWS::EC2::Instance Properties: ImageId: !FindInMap [RegionMap, !Ref "AWS::Region", AL2] InstanceType: !Ref InstanceType KeyName: !Ref KeyName NetworkInterfaces: - GroupSet: - Fn::ImportValue: !Sub ${ProjectCode}-web-sg AssociatePublicIpAddress: true DeviceIndex: 0 DeleteOnTermination: true SubnetId: Fn::ImportValue: !Sub ${ProjectCode}-subnet UserData: !Base64 | #!/bin/bash amazon-linux-extras install nginx1.12 -y systemctl start nginx systemctl enable nginx Tags: - Key: Name Value: !Ref ProjectCode Outputs: WebServerInstance: Description: InstanceId of the newly created EC2 instance Value: !Ref WebServerInstance
パラメータ
パラメータは3つあります。
パラメータ | 説明 |
---|---|
ProjectCode | プロジェクトコードを指定します。 各リソースの名前とテンプレート連携(クロススタック参照)で利用します。 |
InstanceType | インスタンスタイプを指定します。デフォルトはt2.micro です。(テンプレートを短くするため数を減らしています) |
KeyName | EC2 のキーペアの名前を指定します。 |
マッピング
AMIはリージョン単位のサービスです。
各リージョンのAmazon Linux2のAMIをマッピングで用意します。
目的のリージョンがない場合は追加してください。
リソース
ImageId
マッピングから選択リージョンのAMIを取得します。
ImageId: !FindInMap [RegionMap, !Ref "AWS::Region", AL2]
NetworkInterfaces
アタッチされるネットワークインターフェイスを指定します。
組み込み関数Fn::ImportValue
を利用して、作成したサブネットID、セキュリティーグループIDをインポートします。
NetworkInterfaces: - GroupSet: - Fn::ImportValue: !Sub ${ProjectCode}-web-sg AssociatePublicIpAddress: true DeviceIndex: 0 DeleteOnTermination: true SubnetId: Fn::ImportValue: !Sub ${ProjectCode}-subnet
UserData
単純なインストールであれば、ユーザーデータにシェルを書くのが簡単です。 nginxをインストールして起動、自動起動を設定します。
UserData: !Base64 | #!/bin/bash amazon-linux-extras install nginx1.12 -y systemctl start nginx systemctl enable nginx
出力
確認用にEC2インスタンスIDを出力します。
スタックの作成
ではスタックを作成してみましょう。
スタックの名前、パラメータを指定します。ProjectCodeは前回と同じ値を設定してください。
スタック作成完了後に、出力を確認します。
サービス [EC2] - [インスタンス] を選択し、作成したインスタンスのパブリックIP
をブラウザに入力してnginxが起動しているか確認をします。
まとめ
ちょっとした目的でもテンプレートは長くなりがちです。 その場合、テンプレートを目的ごとに分割すると、再利用しやすく、管理がしやすくなります。
参考
シンプルなネットワークとサーバーをCloudFormationで構築する 〜2. セキュリティ設定〜
前回はVPC、サブネット、インターネットゲートウェイ、ルートテーブルを作成して、ネットワークを構築しました。
今回はセキュリティを作成・設定します。
セキュリティーグループとネットワークACL
VPCのファイアウォール機能として、セキュリティーグループ
とネットワークACL
があります。
両者は適用するレベル(単位)が異なります。
インスタンス単位で動作する第1層のセキュリティーグループ、サブネット単位で動作する第2層のネットワークACLです。
セキュリティーグループとネットワークACLの大まかな違いは下記になります。
セキュリティーグループ | ネットワークACL | |
---|---|---|
適用単位 | インスタンス単位 | サブネット単位 |
ルール | 許可 | 許可と拒否 |
ルールロジック | すべてのルールを評価 | 順番にルールを処理 |
作成されたデフォルト値 | インバウンド: すべて拒否 アウトバウンド:すべて許可 |
インバウンド: すべて許可 アウトバウンド:すべて許可 |
特徴 | ステートフル 許可された送信の戻りは自動的に許可 |
ステートレス 許可された送信の戻りもルールチェックされる |
ネットワークACLは、VPC作成時にデフォルトのネットワークACLが作成されます。 インバウンド、アウトバウンドともにすべて許可されているので、拒否ルールが不要であればデフォルトを利用します。
セキュリティ設定用のテンプレート
今回作成したテンプレートは以下になります。
security.template.yaml
AWSTemplateFormatVersion: 2010-09-09 Parameters: ProjectCode: Type: String Description: Enter your project code SSHLocation: Type: String Description: The IP address range that can be used to SSH to the EC2 instances ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. MinLength: 9 MaxLength: 18 Default: 0.0.0.0/0 AllowedPattern: (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(\d{1,2}) Resources: SecurityGroup: Type: AWS::EC2::SecurityGroup Properties: VpcId: Fn::ImportValue: !Sub ${ProjectCode}-vpc GroupDescription: Enable SSH access via port 22, 80 SecurityGroupIngress: - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: !Ref SSHLocation - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 Tags: - Key: Name Value: !Ref ProjectCode NetworkAcl: Type: AWS::EC2::NetworkAcl Properties: VpcId: Fn::ImportValue: !Sub ${ProjectCode}-vpc Tags: - Key: Name Value: !Ref ProjectCode InboundHTTPNetworkAclEntry: Type: AWS::EC2::NetworkAclEntry Properties: NetworkAclId: !Ref NetworkAcl RuleNumber: 100 Protocol: 6 RuleAction: allow Egress: false CidrBlock: 0.0.0.0/0 PortRange: From: 80 To: 80 InboundSSHNetworkAclEntry: Type: AWS::EC2::NetworkAclEntry Properties: NetworkAclId: !Ref NetworkAcl RuleNumber: 101 Protocol: 6 RuleAction: allow Egress: false CidrBlock: 0.0.0.0/0 PortRange: From: 22 To: 22 InboundResponsePortsNetworkAclEntry: Type: AWS::EC2::NetworkAclEntry Properties: NetworkAclId: !Ref NetworkAcl RuleNumber: 102 Protocol: 6 RuleAction: allow Egress: false CidrBlock: 0.0.0.0/0 PortRange: From: 1024 To: 65535 OutBoundHTTPNetworkAclEntry: Type: AWS::EC2::NetworkAclEntry Properties: NetworkAclId: !Ref NetworkAcl RuleNumber: 100 Protocol: 6 RuleAction: allow Egress: true CidrBlock: 0.0.0.0/0 PortRange: From: 80 To: 80 OutBoundHTTPSNetworkAclEntry: Type: AWS::EC2::NetworkAclEntry Properties: NetworkAclId: !Ref NetworkAcl RuleNumber: 101 Protocol: 6 RuleAction: allow Egress: true CidrBlock: 0.0.0.0/0 PortRange: From: 443 To: 443 OutBoundResponsePortsNetworkAclEntry: Type: AWS::EC2::NetworkAclEntry Properties: NetworkAclId: !Ref NetworkAcl RuleNumber: 102 Protocol: 6 RuleAction: allow Egress: true CidrBlock: 0.0.0.0/0 PortRange: From: 1024 To: 65535 SubnetNetworkAclAssociation: Type: AWS::EC2::SubnetNetworkAclAssociation Properties: SubnetId: Fn::ImportValue: !Sub ${ProjectCode}-subnet NetworkAclId: !Ref NetworkAcl Outputs: WebSecurityGroup: Description: Id of the newly created Security Group Value: !Ref SecurityGroup Export: Name: !Sub ${ProjectCode}-web-sg
パラメータ
パラメータは2つあります。
パラメータ | 説明 |
---|---|
ProjectCode | プロジェクトコードを指定します。 各リソースの名前とテンプレート連携(クロススタック参照)で利用します。 |
SSHLocation | SSH接続を許可するIPアドレスです。 デフォルトは制限無しの 0.0.0.0/0 です。 |
リソース
1. セキュリティーグループ
VPC上にセキュリティーグループを作成します。
組み込み関数Fn::ImportValue
を利用して、前回作成したVPC IDをインポートします。
SecurityGroup: Type: AWS::EC2::SecurityGroup Properties: VpcId: Fn::ImportValue: !Sub ${ProjectCode}-vpc GroupDescription: Enable SSH access via port 22, 80 SecurityGroupIngress: - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: !Ref SSHLocation - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0
この時点では、セキュリティグループに属しているインスタンスはありません。
2. ネットワークACL
ネットワークACLを作成し、サブネットに関連付けをします。
組み込み関数Fn::ImportValue
を利用して、前回作成したサブネットIDをインポートします。
NetworkAcl: Type: AWS::EC2::NetworkAcl Properties: VpcId: Fn::ImportValue: !Sub ${ProjectCode}-vpc SubnetNetworkAclAssociation: Type: AWS::EC2::SubnetNetworkAclAssociation Properties: SubnetId: Fn::ImportValue: !Sub ${ProjectCode}-subnet NetworkAclId: !Ref NetworkAcl
ルール設定
ネットワークACLを作成した時点のルールは、インバウンド/アウトバウンドともに、すべて拒否になります。
基本は AWS::EC2::NetworkAclEntry
を使用して、許可ルールを設定します。
インバウンド
ルール番号 | プロトコル | ポート | 送信元IP | 用途 |
---|---|---|---|---|
100 | TCP | 80 | 0.0.0.0/0 | HTTP |
101 | TCP | 22 | 0.0.0.0/0 | SSH |
102 | TCP | 1024-65535 | 0.0.0.0/0 | サーバー側用一時ポート |
アウトバウンド
ルール番号 | プロトコル | ポート | 送信元IP | 用途 |
---|---|---|---|---|
100 | TCP | 80 | 0.0.0.0/0 | HTTP |
101 | TCP | 443 | 0.0.0.0/0 | HTTPS |
102 | TCP | 1024-65535 | 0.0.0.0/0 | クライアント側用一時ポート |
出力
後続のテンプレート用にセキュリティーグループIDをエクスポートします。
パラメータ | 説明 |
---|---|
WebSecurityGroup | セキュリティーグループIDの参照用に、エクスポート名を {プロジェクトコード}-web-sg にします。 |
スタックの作成
ではスタックを作成してみましょう。
スタックの名前、パラメータを指定します。ProjectCodeは前回と同じ値を設定してください。
スタック作成完了後に、出力を確認します。
サービス [ネットワーキング & コンテンツ配信] - [VPC] を選択し、各リソースが作成されていることを確認します。
- ネットワーク ACL
- セキュリティグループ
参考
シンプルなネットワークとサーバーをCloudFormationで構築する 〜1. ネットワーク構築〜
新規にVPCを作成して、Webサーバーを公開するテンプレートを作成します。
今回は、パブリックサブネット内に1つのWebサーバーを立てる、シンプルな構成とします。(APサーバー、DBサーバーは無し)
テンプレートを目的ごとに分けます。
- ネットワーク構築
- セキュリティ設定
- サーバー構築
今回は、ネットワーク構築についてです。
ネットワーク構築用のテンプレート
作成したテンプレートは以下になります。
network.template.yaml
AWSTemplateFormatVersion: 2010-09-09 Parameters: ProjectCode: Type: String Description: Enter your project code VPCCidr: Type: String Description: IP Address range for the VPN connected VPC ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. MinLength: 9 MaxLength: 18 Default: 10.0.0.0/16 AllowedPattern: (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(\d{1,2}) SubnetCidr: Type: String Description: IP Address range for the VPN connected Subnet ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. MinLength: 9 MaxLength: 18 Default: 10.0.1.0/24 AllowedPattern: (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(\d{1,2}) Resources: VPC: Type: AWS::EC2::VPC Properties: CidrBlock: !Ref VPCCidr Tags: - Key: Name Value: !Ref ProjectCode Subnet: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Ref SubnetCidr Tags: - Key: Name Value: !Ref ProjectCode InternetGateway: Type: AWS::EC2::InternetGateway Properties: Tags: - Key: Name Value: !Ref ProjectCode AttachGateway: Type: AWS::EC2::VPCGatewayAttachment Properties: VpcId: !Ref VPC InternetGatewayId: !Ref InternetGateway RouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Ref ProjectCode Route: Type: AWS::EC2::Route DependsOn: AttachGateway Properties: RouteTableId: !Ref RouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref InternetGateway SubnetRouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref Subnet RouteTableId: !Ref RouteTable Outputs: VPC: Description: VPCId of the newly created VPC Value: !Ref VPC Export: Name: !Sub ${ProjectCode}-vpc Subnet: Description: SubnetId of the VPN connected subnet Value: !Ref Subnet Export: Name: !Sub ${ProjectCode}-subnet
パラメータ
パラメータを3つ用意しました。
パラメータ | 説明 |
---|---|
ProjectCode | プロジェクトコードを指定します。 各リソースの名前とテンプレート連携(クロススタック参照)で利用します。 |
VPCCidr | VPC用のCIDRブロックを指定します。 デフォルトは 10.0.0.0/16 です。 |
SubnetCidr | サブネット用のCIDRブロックを指定します。 デフォルトは 10.0.1.0/24 です。 |
リソース
リソースのプロパティは最低限に留めています。オプション項目は公式ドキュメントを参照してください。
1. VPCの作成
選択しているリージョンに、新しいVirtual Private Cloud (VPC) を作成します。 パラメータのVPC CIDRブロックを指定します。
VPC: Type: AWS::EC2::VPC Properties: CidrBlock: !Ref VPCCidr
2. サブネットの作成
作成したVPC内にサブネットを作成します。
パラメータのサブネット CIDRブロックを指定します。
この時、デフォルトのルートテーブルが作成されます。
デフォルトのルートテーブルは、宛先がVPC内のみで、それ以外のパケットは破棄されます。
Subnet: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: !Ref SubnetCidr
3. インターネットゲートウェイの作成と割り当て
VPCがインターネットとやり取りできるように、まずはインターネットゲートウェイを作成し、VPCに割り当てます。
InternetGateway: Type: AWS::EC2::InternetGateway AttachGateway: Type: AWS::EC2::VPCGatewayAttachment Properties: VpcId: !Ref VPC InternetGatewayId: !Ref InternetGateway
4. ルートテーブルの作成と設定、割り当て
インターネットと接続するためには、ルートテーブルに宛先にインターネットゲートウェイを追加する必要があります。 デフォルトのルートテーブルに追加すると他に影響が出る場合があるため、新規にルートテーブルを作成・設定し、サブネットに割り当てます。
RouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Route: Type: AWS::EC2::Route DependsOn: AttachGateway Properties: RouteTableId: !Ref RouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref InternetGateway SubnetRouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref Subnet RouteTableId: !Ref RouteTable
出力
後続のテンプレート用にリソースIDをエクスポートします。
パラメータ | 説明 |
---|---|
VPC | VPC IDの参照用に、エクスポート名を {プロジェクトコード}-vpc にします。 |
Subnet | サブネットIDの参照用に、エクスポート名を {プロジェクトコード}-subnet にします。 |
スタック間の連携については、下記のエントリを参照してください。 oreout.hatenablog.com
スタックの作成
ではスタックを作成してみましょう。
スタックの名前、パラメータを指定します。
スタック作成完了後に、出力を確認します。
サービス [ネットワーキング & コンテンツ配信] - [VPC] を選択し、各リソースが作成されていることを確認します。
- VPC
- サブネット
- ルートテーブル
- インターネットゲートウェイ
参考
サンプルテンプレート(JSON)をCloudFormation DesignerでYAMLに変換する
テンプレートを一から全て作成するのは面倒です。
そのような場合、AWS公式のサンプルテンプレートから目的に近いものをベースに作成すると、手間が省けます。
サンプルテンプレート
サンプルテンプレートは各リージョンごとに用意されています。
今回はAsia Pacific (Tokyo) Regionを選択します。
- サンプルソリューション
- SharePoint® Foundation 2010
- Microsoft Windows Server Active Directory
- Microsoft Windows Server の役割と機能
- 基本的な WordPress (単一インスタンス)
- スケーラブルで耐久性の高い WordPress
- Chef を使用した WordPress のデプロイ
- アプリケーションフレームワーク
- 基本的な LAMP スタック
- スケーラブルで耐久性の高い LAMP スタック
- Ruby on Rails の基本
- スケーラブルで耐久性の高い Ruby on Rails
- サービス
- Auto Scaling関連 (3)
- AWS Config関連 (1)
- Amazon DynamoDB関連 (2)
- Amazon EC2関連 (3)
- Amazon ElastiCache関連 (2)
- AWS Elastic Beanstalk関連 (3)
- Elastic Load Balancing関連 (4)
- AWS Identity and Access Management関連 (1)
- AWS OpsWorks関連 (2)
- Amazon Relational Database Service関連 (4)
- Amazon Redshift関連 (2)
- Amazon Route 53関連 (3)
- Amazon Simple Storage Service関連 (2)
- Amazon Simple Queue Service関連 (2)
- Amazon Virtual Private Cloud関連 (7)
各サンプルの[表示]リンクをクリックすると、JSON形式のテンプレートがブラウザで表示されます。
YAML形式が欲しい場合、CloudFormation Designer
を起動してJSONからYAMLへ変換します。
CloudFormation Designer
各サンプルの[デザイナーで表示]リンクをクリックすると、CloudFormation Designerが起動されます。
【重要】Canvasペイン内のコンポーネントは操作しないでください。操作すると、テンプレート内にMetadata情報が追加されます。
- テンプレートの言語の選択で
YAML
を選択 - 左上の[ファイル]アイコンをクリック
- メニューの[保存]をクリック
ローカルファイル
を選択、ファイル名を入力して[保存]ボタンをクリック- ブラウザによってはダウンロードされずにそのまま表示されます。その場合は、ページをローカルに保存してください。
これをベースに自分だけのテンプレートを作成してください。
断片的な書き方は、テンプレートスニペットが参考になります。
参考
- AWSドキュメント
- AWS Black Belt
Amazon Linux2にExtras Libraryからnginxをインストールする
Amazon Linux2 では、Extras Libraryを使用してメジャーなパッケージ(トピック)をインストールすることができます。
Extras Library
パッケージ(トピック)の種類、バージョンは定期的に更新されるため、amazon-linux-extras
コマンドで確認します。
(2018年8月現在)
$ amazon-linux-extras 0 ansible2 available [ =2.4.2 ] 1 emacs available [ =25.3 ] 2 memcached1.5 available [ =1.5.1 ] 3 nginx1.12 available [ =1.12.2 ] 4 postgresql9.6 available [ =9.6.6 =9.6.8 ] 5 postgresql10 available [ =10 ] 6 python3 available [ =3.6.2 ] 7 redis4.0 available [ =4.0.5 =4.0.10 ] 8 R3.4 available [ =3.4.3 ] 9 rust1 available [ =1.22.1 =1.26.0 =1.26.1 =1.27.2 ] 10 vim available [ =8.0 ] 11 golang1.9 available [ =1.9.2 ] 12 ruby2.4 available [ =2.4.2 =2.4.4 ] 13 nano available [ =2.9.1 ] 14 php7.2 available [ =7.2.0 =7.2.4 =7.2.5 ] 15 lamp-mariadb10.2-php7.2 available [ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5 ] 16 libreoffice available [ =5.0.6.2_15 ] 17 gimp available [ =2.8.22 ] 18 docker=latest enabled [ =17.12.1 =18.03.1 ] 19 mate-desktop1.x available [ =1.19.0 =1.20.0 ] 20 GraphicsMagick1.3 available [ =1.3.29 ] 21 tomcat8.5 available [ =8.5.31 ]
enabled
がインストール済、available
が未インストールの状態です。
初期状態ではphpやruby、Go言語、Python3系はインストールされていないことがわかります。(Python2系はインストールされています)
nginxのインストール
今回はnginxをインストールします。 nginxのバージョンを確認してインストールします。
$ sudo amazon-linux-extras install nginx1.12 -y
インストールされたか確認をします。
ステータスがenabled
になっているか確認をします。
$ amazon-linux-extras | grep nginx 3 nginx1.12=latest enabled [ =1.12.2 ]
nginxのバージョンを確認します。
$ nginx -v
nginx version: nginx/1.12.2
nginxの起動
nginxを起動します。
$ sudo systemctl start nginx
ローカル(EC2)上から確認
$ curl -I localhost HTTP/1.1 200 OK Server: nginx/1.12.2 Date: Tue, 14 Aug 2018 21:04:21 GMT Content-Type: text/html Content-Length: 3520 Last-Modified: Wed, 13 Dec 2017 18:36:55 GMT Connection: keep-alive ETag: "5a317347-dc0" Accept-Ranges: bytes
外部(ブラウザ)から確認
EC2インスタンスのパブリックIPアドレスをブラウザに指定して開きます。
ローカルから確認出来ており、接続出来ない場合はセキュリティーグループとネットワークACLを確認してください。
自動起動
EC2インスタンス起動時にnginxを起動する場合と確認方法は以下になります。
自動起動
$ sudo systemctl enable nginx
確認
$ systemctl is-enabled nginx enabled
参考
- AWSドキュメント
- Developers.IO