かべぎわブログ

ブログです

AWSと社内LANをハードウェアVPNで接続する

VPCは仮想ネットワークですが、これを社内LANの物理的なネットワークとVPN接続していみたいと思います。

完成予想図

f:id:kabegiwakun:20171028225927p:plain

手順

仮想プライベートゲートウェイを有効にしたVPCを作成する

マネジメントコンソールのVPCから「VPCウィザードの開始」を選択します。
f:id:kabegiwakun:20171028230659p:plain

「プライベートのサブネットのみで、ハードウェアVPNアクセスを持つVPC」を選択します。
f:id:kabegiwakun:20171028231106p:plain

各設定を入力して「次」を選択します。
f:id:kabegiwakun:20171028231510p:plain

カスタマーゲートウェイの設定を行います。
カスタマーゲートウェイIPには社内LANのゲートウェイ(VPNルータ)のグローバルIPアドレスを入力します。
入力したら「VPCの作成」を選択します。
f:id:kabegiwakun:20171028231949p:plain

カスタマーゲートウェイの設定

マネジメントコンソールの「VPC」のサイドバーの「VPN接続」を選択します。

f:id:kabegiwakun:20171028233456p:plain

作成したVPN接続を選択して「設定のダウンロード」をクリックします。
f:id:kabegiwakun:20171028234018p:plain

社内LANのVPNルータのベンダーとプラットフォーム、ソフトウェアを選択して設定ファイルをダウンロードします。

これをVPNルータに読み込ませれば社内LANとAWSが接続できるはずです。
f:id:kabegiwakun:20171028234224p:plain

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

S3バケットを特定するためのURLの書き方まとめ

S3バケットを特定するためのURLの書き方にはいくつか種類があります。
今回はそれをご紹介します。

前提

  • バケット名 - kabegiwa-bucket
  • リージョン - ap-northeast-1(東京リージョン)

①バケット名のみ

もっとも基本的な形式です。
バケット名はグローバルで一意なので基本的にはバケット名だけで特定することが可能です。

http://kabegiwa-bucket.s3.amazonaws.com/

②バケット名+リージョン

バケット名とリージョン名を記載します。
複数のリージョンのバケットを使い分けている場合はこちらのほうがわかりやすいかもしれません。

http://kabegiwa-bucket.s3-ap-northeast-1.amazonaws.com/

③パス形式

バケット名をURLのパスとして指定します。
リージョンを明示してあげる必要があります。

http://s3-ap-northeast-1.amazonaws.com/kabegiwa-bucket/

サーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、Cognitoで構築するスケーラブルなWebサービス

サーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、Cognitoで構築するスケーラブルなWebサービス

プライベートサブネットからNATゲートウェイ経由でインターネットと通信する

セキュリティを考慮して、インスタンスを直接インターネットに接続するのではなく、NATゲートウェイを経由してインターネットと通信させてみます。

NATゲートウェイを経由させることでプライベートサブネット→インターネットの片方向通信を実現することができます。

完成予想図

f:id:kabegiwakun:20171026215523p:plain

手順

前提

VPCと各サブネットはもう作成済みであることを前提で手順を記載します。

NATゲートウェイを作成する

マネジメントコンソールの「VPC]から「NATゲートウェイ」を選択します。
f:id:kabegiwakun:20171026220049p:plain

「Create NAT Gateway」を選択します。
f:id:kabegiwakun:20171026220136p:plain

「Subnet」にパブリックサブネット、「Elastic IP Allocation ID」に任意のElasticIPを指定します。
ElasticIPに空きがない場合はその横の「Create New EIP」から新たにElasticIPを払い出します。
選択が完了したら「Create NAT Gateway」をクリックします。
f:id:kabegiwakun:20171026220610p:plain

NATゲートウェイが作成できました。
このままだとNATゲートウェイがそのままポツンと浮かんでいるだけなのでルートテーブルを編集してプライベートサブネットのデフォルトルートをこのNATゲートウェイゲートウェイに向けてあげます。

プライベートサブネットのルートテーブルの編集

プライベートサブネットのルートテーブルのルートに0.0.0.0/0のターゲットをNATゲートウェイにするルートを追加します。
f:id:kabegiwakun:20171026221508p:plain

これで完了です!

まとめ

NATゲートウェイを経由してインターネットと通信をすることができました。
これでプライベートな環境からでもNATゲートウェイを利用してyum updateなどを利用してサーバのアップデートができるようになりました。

そうしたたまにしかインターネットと通信をしないのであれば利用するときだけNATゲートウェイを稼働させるのが良いかと思います。
24時間動かしているとNATゲートウェイは結構馬鹿にならない料金になります…
また、セキュリティ的にもそのほうが安心です!

AWSエキスパート養成読本[Amazon Web Servicesに最適化されたアーキテクチャを手に入れる! ] (Software Design plus)

AWSエキスパート養成読本[Amazon Web Servicesに最適化されたアーキテクチャを手に入れる! ] (Software Design plus)

  • 作者: 吉田真吾,今井智明,大瀧隆太,松井基勝,冨永善視,藤原吉規,大栗宗
  • 出版社/メーカー: 技術評論社
  • 発売日: 2016/02/26
  • メディア: 大型本
  • この商品を含むブログを見る

AWSでVPCを作成してEC2インスタンスにsshログインするまでの手順

今回はAWSでVPCを新たに作成し、そこに作成したインスタンスにsshでログインするまでをやってみたいと思います。

完成予想図

f:id:kabegiwakun:20171025223314p:plain

手順

VPCを作成する

まずはVPCを作成します。
マネジメントコンソールからVPCを選択します。
f:id:kabegiwakun:20171025223848p:plain

サイドメニューからVPCを選択して、「VPCの作成」ボタンをクリックします。 f:id:kabegiwakun:20171025224218p:plain

作成するVPCの設定を行います。
今回はtest_vpcという名前で10.0.0.0/16の範囲で作成していますが、適当な名前と範囲でかまいません。
完了したら「はい、作成する」を選択します。 f:id:kabegiwakun:20171025224417p:plain

VPCがつくれました!
f:id:kabegiwakun:20171025225119p:plain

作成したVPCを選択して、上部のアクションから「DNSホスト名の編集」をクリックします。
f:id:kabegiwakun:20171026001312p:plain

「はい」を選択して保存します。
f:id:kabegiwakun:20171026001406p:plain

サブネットを作成する

サイドメニューからサブネットを選択して「サブネットの作成」ボタンをクリックします。
f:id:kabegiwakun:20171025225245p:plain

サブネットを作成する対象のVPCを選択して、CIDRブロックを入力します。
名前タグとアベイラビリティーゾーンは任意のものでかまいません。
f:id:kabegiwakun:20171025225440p:plain

サブネットができました!
f:id:kabegiwakun:20171025225846p:plain

インターネットゲートウェイを作成する

インターネットに接続するためにインターネットゲートウェイを作成します。
サイドメニューからインターネットゲートウェイを選択して「インターネットゲートウェイの作成」ボタンをクリックします。
f:id:kabegiwakun:20171025230136p:plain

任意の名前を設定してインターネットゲートウェイを作成します。
f:id:kabegiwakun:20171025230459p:plain

作成したインターネットゲートウェイを選択し、「VPCにアタッチ」ボタンをクリックします。
f:id:kabegiwakun:20171025230717p:plain

アタッチするVPCを選択して、「はい、アタッチする」をクリックします。
f:id:kabegiwakun:20171025230832p:plain

ルートテーブルを作成する

アタッチしたインターネットゲートウェイを利用してインターネットと通信するためにルートテーブルの設定を行います。

サイドメニューからルートテーブルを選択し、「ルートテーブルの作成」ボタンをクリックします。
f:id:kabegiwakun:20171025231318p:plain

ルートテーブルに任意の名前を設定して、ルートテーブルを作成するVPCを選択します。
選択したら「はい、作成する」をクリックします。
f:id:kabegiwakun:20171025231734p:plain

作成したルートテーブルを選択して「ルート」タブを選択、「編集」をクリックします。
f:id:kabegiwakun:20171025232207p:plain

「別のルートを追加」を選択して送信先を0.0.0.0/0、ターゲットを先程作成したインターネットゲートウェイにして、ルートを追加します。
f:id:kabegiwakun:20171025232445p:plain

続いて「サブネットの関連付け」タブを選択して「編集」をクリックします。
f:id:kabegiwakun:20171026002411p:plain

作成したサブネットを選択して「保存」します。
f:id:kabegiwakun:20171026002522p:plain

インスタンスを作成する

マネジメントコンソールからEC2を選択します。
f:id:kabegiwakun:20171025232946p:plain

サイドメニューからインスタンスを選択し、「インスタンスの作成」をクリックします。
f:id:kabegiwakun:20171025233122p:plain

さて、インスタンスを作成していきます。
今回はAmazon Linuxを使っていきたいと思います。
Amazon Linuxの行で「選択」をクリックします。
f:id:kabegiwakun:20171025233309p:plain

任意のインスタンスタイプを選択して、「次の手順:インスタンスの詳細の設定」をクリックします。
f:id:kabegiwakun:20171025233753p:plain

インスタンスの詳細の設定ではネットワーク、サブネットにそれぞれ作成したVPC、サブネットを選択します。
また、自動割り当てパブリックIPを有効化しておきます。最後にこれを利用してインスタンスにsshログインします。
設定完了したら「次の手順:ストレージの追加」をクリックします。
f:id:kabegiwakun:20171025234246p:plain

ストレージを追加します。
とくにこだわりがないならそのまま「次の手順:タグの追加」にすすみます。
f:id:kabegiwakun:20171025234533p:plain

続いてインスタンスにタグをつけます。
これはインスタンスを識別しやすくするためのみなのでこだわりがなければそのまま次にすすみます。
タグを付ける場合は「クリックしてNameタグを追加します」をクリックします。
f:id:kabegiwakun:20171025234816p:plain

新しいセキュリティグループを作成するを選択し、任意のセキュリティグループ名を設定します。
ルールに画像のように任意の場所からのSSH通信を許可するように設定します。
設定したら「確認と作成」をクリックします。
f:id:kabegiwakun:20171025235017p:plain

いままでの設定内容の確認がでます。
問題ないようだったらそのまま「作成」をクリックします。
f:id:kabegiwakun:20171025235247p:plain

作成するインスタンスにログインするためのキーペアを作成します。
既存のキーペアの作成を選択して、任意のキーペア名を設定します。

名前を決定したら「キーペアのダウンロード」をクリックします。
キーが無事ダウンロードできたら「インスタンスの作成」を選択します。
f:id:kabegiwakun:20171025235522p:plain

インスタンスが作成できました。
f:id:kabegiwakun:20171026001620p:plain

インスタンスにSSHログインする

さて、作成したインスタンスにログインしてみます。
赤枠のアドレスをコピーします。
f:id:kabegiwakun:20171026001759p:plain

Teratermなどのコンソールエミュレータを起動して、ホスト名に先程コピーしたアドレスを貼り付けてOKをおします。
f:id:kabegiwakun:20171026001926p:plain

ユーザ名にec2-user、秘密鍵にダウンロードしたキーペアを選択してOKをクリックします。f:id:kabegiwakun:20171026002828p:plain

無事ログインできました!
f:id:kabegiwakun:20171026002918p:plain

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

AWSのアカウントID(番号)を確認する方法

意外と知られていない(忘れがちな)AWSのアカウントIDを確認する方法についてご紹介します。

マネジメントコンソールで確認する

任意のユーザでマネジメントコンソールにログインし、右上の「サポート」から「サポートセンターを選択します。
f:id:kabegiwakun:20171021180931p:plain

画面上部の「Account number」がアカウントIDです。
f:id:kabegiwakun:20171021181444p:plain

AWS CLIで確認する

以下のコマンドを実行します。

aws sts get-caller-identity

Accountの箇所がアカウントIDです。

{
    "Account": "000000000000",
    "Arn": "arn:aws:sts::000000000000:role/EC2policy/i-9999999999999",
    "UserId": "AAAAAAAAAAAAAAAAAAAAA:i-9999999999999"
}

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

CloudFormationで自動割り当てパブリックIPを有効にしてインスタンスを構築する

Amazon Web Services実践入門 (WEB+DB PRESS plus)

Amazon Web Services実践入門 (WEB+DB PRESS plus)

今回はCloudFormationで自動割り当てパブリックIP(パブリックDNS)を有効にしてEC2インスタンスを構築してみたいと思います。

コード

CloudFormation

コードの説明

  • AvailabilityZone - ap-northeast-1aのようにリージョンも含めた記載で書きます。このAZにインスタンスが構築されます。
  • ImageId - インスタンス構築に利用するAMIのIDです。
  • InstanceType - そのまま構築したいインスタンスタイプを指定します。
  • KeyName - 構築したインスタンスにログインするためのキーペア名を指定します。
  • NetworkInterfaces - ENIの設定です。自動割り当てパブリックIPを有効化はENIの項目で設定します。
  • AssociatePublicIpAddress - 自動割り当てパブリックIPの設定です。trueで有効可です。
  • DeviceIndex - 設定を行うENIの番号です。最初にアタッチしたものから0,1,2と連番でふられます。
  • SubnetId - インスタンスを配置するサブネットのIDを指定します。
  • GroupSet - インスタンスにアタッチするセキュリティグループを指定します。複数個指定できます。

注意点

NetworkInterfaceの設定をする際はSecurityGroupIdsの項目は使えません。
こんなかんじのエラーになります。

Network interfaces and an instance-level security groups may not be specified on the same request

GroupSetにアタッチしたいセキュリティグループを指定する必要があります。

まとめ

自動割り当てパブリックIP(パブリックDNS)を有効にしてEC2インスタンスを構築することができました。

マネジメントコンソールをポチポチしていると気が付きませんが、インスタンスの設定なのか、ENIの設定なのか、他の設定なのかといろいろ別れています。
CloudFormationを利用することでAWSのサービスがより深く理解できると思います。

Amazon Web Services実践入門 (WEB+DB PRESS plus)

Amazon Web Services実践入門 (WEB+DB PRESS plus)

AWSで通信料がかかるやりとりまとめ

AWSでどんなときに通信料がかかるかがいまだにおぼえられないのでまとめてみました。

かんたんなまとめ

  • AZ

    • 同一AZ間での通信料は無料
    • 他のAZ間への通信料は$0.01/GB
  • リージョン

    • 他のリージョンへの通信料は$0.09/GB
  • インターネット

    • インターネットからはいってくるトラフィックの通信料は無料
    • インターネットへ出ていくトラフィックの通信料は$0.14/GB

付け加えるならリージョン間の通信はインターネットを利用してグローバルIPアドレス同士の通信になるけども$0.09/GBしか料金がかからないんですね。

かんたんな図

文字にしてもわかりずらいので図をつくってみました。

f:id:kabegiwakun:20171012231231p:plain

まとめ

AWS全体の料金として通信料は微々たるものかと思いますが、しっかりここらへんも意識して設計できるようになりたいですね。

Amazon Web Services負荷試験入門―クラウドの性能の引き出し方がわかる (Software Design plusシリーズ)

Amazon Web Services負荷試験入門―クラウドの性能の引き出し方がわかる (Software Design plusシリーズ)

CloudFormationでインスタンスにElasticIPを関連付けて作成する

今回はAWSのCloudFormationを利用してElasticIPを関連付けた状態でEC2インスタンスを作成してみたいと思います。

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

コード

gistabfebd7c1e9048e60c0ce3cf9eb7228d

各項目の説明

  • Instance - EC2インスタンスの設定
    • AvailabilityZone - ap-northeast-1aのようにリージョンも含めた記載で書きます。このAZにインスタンスが構築されます。
    • ImageId - インスタンス構築に利用するAMIのIDです。今回はAmazonLinuxの最新版を利用します。
    • InstanceType - そのまま構築したいインスタンスタイプを指定します。
    • KeyName - 構築したインスタンスにログインするためのキーペア名を指定します。
    • SecurityGroupIds - アタッチするセキュリティグループを指定します。複数個指定できます。
    • SubnetId - インスタンスを配置するサブネットのIDを指定します。
    • Tags - KeyValueのセットでタグを指定します。複数指定可能です。

     

  • ElasticIP - ElasticIPを払い出す
    • Domain - vpcstandardを指定します。VPCでElasticIPを利用する場合はvpcを、standardはEC2-Classicを利用する際に利用します。

     

  • ElasticIPAssociate - ElasticIPをインスタンスに関連付ける
    • AllocationId - !GetAtt ElasticIP.AllocationIdでElasticIPに割りあてられたIDを取得します。
    • InstanceId - !Ref Instanceで作成したインスタンスのリソースIDを取得します。

まとめ

"AWS::EC2::EIP"でElasticIPを払い出して
AWS::EC2::EIPAssociationで関連付け
!GetAtt ElasticIP.AllocationIdでElasticIPのIDを取得して
InstanceId: !Ref Instanceで作成したインスタンスのResourceIDを取得しています。

インスタンスを構築して、ElasticIPを取得して、付与するという3Stepの作業をすることになるのですこしコードは長くなりますが、やってることひとつひとつは単純ですね。

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

VPCが削除できないときはネットワークインターフェースを確認しよう

AWSで不要になったVPCを削除しようと思ったら以下のようなエラーが出た削除できなくなってちょっとはまったのでまとめます。

Network vpc-XXXXXXX has some mapped public address(es). Please unmap those public address(es) before detaching the gateway. (Service: AmazonEC2; Status Code: 400; Error Code: DependencyViolation; Request ID: XXXXXX-XXXXX-XXXXX-XXXXXXX)

エラーを訳すとパブリックIPアドレスがアタッチされているから削除できないよ。
というだけです。

解決法

1. インターネットゲートウェイをデタッチする

デタッチできない場合は2を実行します。

2. ネットワークインターフェースを削除する

これにパブリックIPが紐付けられている可能性があります。

まとめ

これだけです。
かんたんですね!

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版

AWS CloudFormationでEC2インスタンスを構築する

CloudFormationでEC2インスタンスを作成してみたいと思います。

コード

CloudFormation

各項目の解説

  • AvailabilityZone - ap-northeast-1aのようにリージョンも含めた記載で書きます。このAZにインスタンスが構築されます。
  • ImageId - インスタンス構築に利用するAMIのIDです。今回はAmazonLinuxの最新版を利用します。
  • InstanceType - そのまま構築したいインスタンスタイプを指定します。
  • KeyName - 構築したインスタンスにログインするためのキーペア名を指定します。
  • SecurityGroupIds - アタッチするセキュリティグループを指定します。複数個指定できます。
  • SubnetId - インスタンスを配置するサブネットのIDを指定します。
  • Tags - KeyValueのセットでタグを指定します。複数指定可能です。

まとめ

CloudFormationでインスタンスを作成してみました。
今回はインスタンス一台だけでしたがどんどんインフラのコード化をすすめていきましょう!

Add Comment

SlackとLambdaを連携させる

SlackとLambdaを連携させる 今回はSlackとAWS Lambdaを連携させてChatOps的なことをやってみたいとおもいます。

Slash Commandsの設定

Slackのメニューから[Customize Slack]を選択します。
f:id:kabegiwakun:20171002185539p:plain

メニューからConfigure Appsを選択します
f:id:kabegiwakun:20171002185556p:plain

上部の検索窓にSlash Commandsと入力し、表示されたSlashCommandsを選択します。
f:id:kabegiwakun:20171002185606p:plain

Add Configurationを選択します。
f:id:kabegiwakun:20171002185620p:plain

Choose a Commandの欄に適当に今回コマンドの名前をつけてあげます。
今回は/lambda_testとしました。 名前を入力したらAdd Slash Command Integrationを選択します。 f:id:kabegiwakun:20171002185646p:plain

設定画面が出ますのでOutgoing Dataのtokenの値をコピーしておきます。 f:id:kabegiwakun:20171002185712p:plain

AWSの準備

さきほどのTokenを暗号化していきます。 まず、暗号化キーを選択し、キーの作成ボタンをクリックします。 f:id:kabegiwakun:20171002185738p:plain

名前と説明を入力します。(てきとうでいいです) f:id:kabegiwakun:20171002185749p:plain

タグの追加はそのままスキップでいいです f:id:kabegiwakun:20171002185806p:plain

キー管理アクセス許可の定義もスキップでいいです。 f:id:kabegiwakun:20171002185816p:plain

これもスキップ f:id:kabegiwakun:20171002185834p:plain

完了をクリックします f:id:kabegiwakun:20171002185858p:plain

マスターキーが正常に作成されました。 f:id:kabegiwakun:20171002185912p:plain

なんらかの環境でAWSCLIを利用してTokenを先程作成したマスターキーで暗号化します。

ubuntu@ip-192-140-1-19:~/.aws$ aws kms encrypt --key-id alias/lambda_test --plaintext "n11xiIkoPur44DQNVrzJfgXX"
{
    "CiphertextBlob": "AQICAHijAUzXJ9CcGdSW+j148CnwHrnBsiSVYcg8WdgDaweRSgEG7wP/SLIXTrbi/G+lZDUXAAAAdjB0BgkqhkiG9w0BBwagZzBlAgEAMGAGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMqznaOVc4s2O1rm4JAgEQgDNVdtK1IBZeDQW3Dm/p/AwBpixyQTh6ojtFO4AXx0/C2ZXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "KeyId": "arn:aws:kms:ap-northeast-1:XXXXXXXXXXXXX:key/09f77c08-ef8e-4713-a59b-2a74ad83c061"
}

Lambdaの作成

マネジメントコンソールでLambdaを開いて関数の作成を選択します。 f:id:kabegiwakun:20171002185941p:plain

設計図の箇所でslackで検索します。 検索でヒットしたslack-echo-command-pythonを選択します。 f:id:kabegiwakun:20171002185956p:plain

トリガーの設定になりますのでそのまま次へを選択します f:id:kabegiwakun:20171002190007p:plain

基本的な情報欄の名前に適当にこのLambdaの名前をつけてあげます。(今回はlambda_test_slackにしてみました) f:id:kabegiwakun:20171002190030p:plain

環境変数の箇所にAWSCLIで暗号化したTokenを入力します f:id:kabegiwakun:20171002190105p:plain

Lambdaが実行可能なロールを付与して、「次へ」を選択します。 f:id:kabegiwakun:20171002190117p:plain

内容の確認が出ますのでそのまま「関数の作成」を選択します。 f:id:kabegiwakun:20171002190137p:plain

API Gatewayの設定

任意のAPIにリソースを作成します。 f:id:kabegiwakun:20171002190148p:plain

作成したリソースに名前をつけます。
今回はlambda_testとしてみました。
名前を入力したらリソースの作成ボタンをおします。
f:id:kabegiwakun:20171002190207p:plain

先ほど作成したリソースにメソッドを作成します。 f:id:kabegiwakun:20171002190226p:plain

POSTを選択して、チェックマークをクリックします。 f:id:kabegiwakun:20171002190357p:plain

Lambda関数、リージョンは東京リージョンであれば「ap-northeast-1」を選択、Lambda関数の部分にはさきほど作成したLambdaの名前を入力します。 f:id:kabegiwakun:20171002190238p:plain

権限をする旨のメッセージが出ますのでOKを選択します。 f:id:kabegiwakun:20171002190254p:plain

メソッドの設定を行います。 統合リクエストを選択します。 f:id:kabegiwakun:20171002190304p:plain

マッピングを行います。 本文マッピングテンプレートをクリックして設定を開き、テンプレートが定義されていない場合を選択し、マッピングテンプレートの追加をクリックします。 f:id:kabegiwakun:20171002190315p:plain

application/x-www-form-urlencodedと入力してチェックマークをクリックします。 f:id:kabegiwakun:20171002190441p:plain

すると下にテンプレートを作成する欄がでてきますので以下のように入力して保存します。

{ "body": $util.urlDecode($input.json("$")) }

f:id:kabegiwakun:20171002190512p:plain

作成したAPIをデプロイします。 f:id:kabegiwakun:20171002190537p:plain

デプロイするステージは任意のものでかまいません f:id:kabegiwakun:20171002190553p:plain

lambda_testがデプロイされました。
POSTをクリックします。 f:id:kabegiwakun:20171002190605p:plain

slackの設定でこのURLをつかいますので覚えておきます。 f:id:kabegiwakun:20171002190616p:plain

slackの設定

slashcommandsの設定にもどり、URLの欄に先ほど確認したURLをコピーします。 これですべての設定は完了です! f:id:kabegiwakun:20171002190632p:plain

まとめ

サーバレスでslackのBOTをつくることができました。 これをもとにしていろいろなBOTをつくっていきましょう。

AWS ホワイトペーパーを読んだので重要そうなことをまとめるぞ【AWSを用いた故障耐障害性の高いアプリケーションの構築】

AWSのホワイトペーパーの「AWSを用いた故障耐障害性の高いアプリケーションの構築】を読んだので興味深かったこと、重要そうなことをまとめてみます。

元ネタのホワイトペーパーはこちら
https://d36cz9buwru1tt.cloudfront.net/jp/wp/AWS_WP_Fault_Tolerant_JP_v20110517.pdf

故障は関心を集めるべきではない

いままでのオンプレ環境ではサーバの故障は一大事で、データセンターの担当者が迅速に故障したサーバの交換を既存のサービスに影響の出ないように実施する必要があった。
AWS環境で適切なプラットフォームでサービスを構築した場合には、故障は自動的に対処され、特に重要ではないイベントになる

AMI(Amazon Machine Images)

耐障害性の高いアプリケーションを構築する最初のステップは、自社のサービスに特化したAMIライブラリの構築。
AMIを構築すると、故障したインスタンスの交換はとてもかんたんで、そのAMIを使用して代わりのインスタンスを起動するだけで対応できる。

EBS(Elastic Block Store)

EBSは特にデータベース、ファイルシステム、ブロックレベルストレージへの直接アクセスが必要なアプリケーションに適している。
EBSはデータを冗長に保管し、通常のハードドライブよりさらに耐久性を高めている。EBSの年間平均故障率は0.1-0.5%(商用のハードディスクは4%ほど)

Elastic IP

一度取得するとそれを取得したAWSアカウントに関連することになり、特定のインスタンスやインスタンスの寿命には関連しない。
また、ElasticIPアドレスを新しいインスタンスに再度マッピングするだけで代替インスタンスまたはスペアのインスタンスに容易にフェイルオーバーが可能。

Auto Scalling

Auto Scallingを使用して、メモリリークや品質の劣化がアプリケーションに影響しないことを確認するため、定期的にインスタンスを入れ替えるべき。(インスタンスに失効日を設定し常にフレッシュに保つ)

Elastic Load Balancing

ELBは不具合のあるインスタンスを検出し、不具合が修復されるまでとトラフィックを健全なインスタンスへ自動的にルート変更する。
ELBとAutoScallingは理想的な組み合わせ。ELBとは単一のDNS名を提供し、AutoScallingはリクエストを受けるインスタンスが常に必要な数存在することを保証してくれる。

リージョンと利用可能なゾーン

耐障害性を高めるのに鍵となる要素はアプリケーションを地理的に分散すること。地理的に遠方のデータセンターで同時に実行して、アプリケーションを保護することが可能。

Amazon Sinple Queue Service

SQSは受信メッセージを最高4日間保管している。

Amazon Sinple Storage Service

S3はリージョンの複数の施設にある複数のデバイスに冗長にオブジェクトを保管するため、データセンターが故障した場合でもデータにアクセスできる。
S3はURLでアクセスするため、インターネット接続があるあらゆるコンピューティングリソースからS3を利用できる。

Amazon Reletional Database Service

RDSではデータベースとトランザクションログを自動的にバックアップするため、データベースインスタンスを任意の時点に復旧できる。

結論

従来のハードウェアと同様の方法でAWSを利用するのでは耐障害性、パフォーマンス、コストの大幅な改善は期待できない。
AWSの利点はAWS製品を統合するときに発揮される。
使用した分だけの支払いなのでAWSでは事前投資の必要がなく、実証事件が可能になる。
AWSはパワフルで洗練されたサービス、その経済的な透明性を提供する。耐障害性の高いソフトウェアを構築するという観点では最適なプラットフォームである。

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

  • 作者: 荒木靖宏,大谷晋平,小林正人,酒徳知明,高田智己,瀧澤与一,山本教仁,吉羽龍太郎
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/06/10
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

AWS 認定デベロッパー アソシエイトの勉強法まとめ

AWS認定デベロッパーアソシエイトに合格したので実際に勉強して参考になったものをまとめます。

書籍

Amazon Web Services パターン別構築・運用ガイド

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

アカウントの作成から実際にWordpressなどをインストールしてWebサービスを構築するまでがのっています。
実際にこれを見ながら手を動かしてAWSでどんなことができるのかを理解していきました。

合格対策 AWS認定ソリューションアーキテクト

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

これはソリューションアーキテクトの本ですが、試験範囲がかぶっている箇所がおおいのでデベロッパーの試験にも役に立ちます。

この本一冊でAWSの主要なサービスポイントを網羅的に知ることができます。
これをもとに興味を持ったものや疑問をもったものは実際に自分でAWSを触ってみてより理解を深めていきました。

AWS クラウドサービス活用資料集

AWSでは公式で様々な資料が展開されていますのでそれらを活用します。
デベロッパーの試験で特に役に立ったなと思ったのは以下のスライドです。

AWS Lambda

www.slideshare.net

Amazon S3

www.slideshare.net

Amazon Glacier

www.slideshare.net

Amazon RDS

www.slideshare.net

Amazon DynamoDB(特に重要!)

www.slideshare.net

AWS SDK

www.slideshare.net

AWS CLI

www.slideshare.net

まとめ

これさえやれば大丈夫!
というわけではありませんが参考になればさいわいです。

実際に動かして見る。
そして公式ドキュメントを読む。というのが合格への最短ルートだと思います。

S3のIAM権限で使えるActionをまとめてみた

S3のIAM権限で使えるActionをまとめてみました!

Action 説明
s3:AbortMultipartUpload マルチアップロードを中止する
s3:CreateBucket バケットを作成する
s3:DeleteBucket バケットを削除する
s3:DeleteBucketPolicy バケットポリシーを削除する
s3:DeleteBucketWebsite バケットのWebサイト設定を削除する
s3:DeleteObject 現在のバージョンのオブジェクトを削除する
s3:DeleteObjectVersion 特定のバージョンのオブジェクトを削除する
s3:GetAccelerateConfiguration バケットのTransfer Acceleration設定を取得する
s3:GetBucketAcl バケットのアクセス制御リスト(ACL)を取得する
s3:GetBucketCORS Cross-Origin Resource Sharing (CORS)の設定を取得する
s3:GetBucketLocation バケットの置かれているリージョンを取得する
s3:GetBucketLogging バケットのロギングステータスを取得する
s3:GetBucketNotification バケットの通知設定を取得する
s3:GetBucketPolicy バケットポリシーを取得する
s3:GetBucketRequestPayment バケットのリクエストの支払い設定を取得する
s3:GetBucketTagging バケットに関連付けられたタグを取得する
s3:GetBucketVersioning バケットのバージョニング状態を取得する
s3:GetBucketWebsite バケットに関連付けられたWebサイトの設定を取得する
s3:GetLifecycleConfiguration バケットのライフサイクル設定を取得する
s3:GetObject オブジェクトを取得する
s3:GetObjectAcl オブジェクトのアクセス制御リスト(ACL)を取得する
s3:GetObjectTagging オブジェクトに関連付けられたタグを取得する
s3:GetObjectTorrent オブジェクトのtorrentファイルを取得する
s3:GetObjectVersion オブジェクトのバージョンを取得する
s3:GetObjectVersionAcl オブジェクトの現在のバージョンに関するアクセス制御リスト(ACL)を取得する
s3:GetObjectVersionTagging オブジェクトの現在のバージョンに関するタグを取得する
s3:GetObjectVersionTorrent オブジェクトの現在のバージョンに関するtorrentファイルを取得する
s3:GetReplicationConfiguration レプリケーション設定を取得する
s3:ListAllMyBuckets バケットの一覧を取得する
s3:ListBucket バケットの中身の一覧を取得する
s3:ListBucketMultipartUploads 進行中のマルチパートアップロードの一覧を取得する
s3:ListBucketVersions バケットのオブジェクトのバージョンの一覧を取得する
s3:ListMultipartUploadParts マルチパートアップロードのためにアップロードされた部分の一覧を取得する
s3:PutAccelerateConfiguration バケットのTransfer Accelerationを設定する
s3:PutBucketAcl バケットのアクセス制御リスト(ACL)を設定する
s3:PutBucketCORS バケットのCross-Origin Resource Sharing (CORS)を設定する
s3:PutBucketLogging バケットのロギング機能を設定する
s3:PutBucketNotification バケットの通知機能を設定する
s3:PutBucketPolicy バケットポリシーを設定する
s3:PutBucketRequestPayment バケットのリクエストの支払い設定を設定する
s3:PutBucketTagging バケットのタグを設定する
s3:PutBucketVersioning バケットのバージョニング状態を設定する
s3:PutBucketWebsite バケットのWebサイト設定を設定する
s3:PutLifecycleConfiguration バケットのライフサイクルポリシーを設定する
s3:PutReplicationConfiguration バケットのレプリケーション設定を設定する
s3:PutObject オブジェクトをバケットに追加する
s3:PutObjectAcl オブジェクトのアクセス制御リスト(ACL)を設定する
s3:PutObjectTagging オブジェクトにタグを設定する
s3:PutObjectVersionAcl オブジェクトのバージョンごとのアクセス制御リスト(ACL)を設定する
s3:PutObjectVersionTagging オブジェクトのバージョンごとのタグを設定する
s3:ReplicateDelete レプリケーション設定を削除する
s3:ReplicateObject オブジェクトをレプリケートする
s3:RestoreObject オブジェクトを復元する

EC2のIAM権限で使えるActionをまとめてみた

EC2のIAM権限で使えるActionをかんたんにまとめてみました!

Action 説明
ec2:AcceptReservedInstancesExchangeQuote コンバーティブルリザーブインスタンスの見積もりを受け入れる
ec2:AcceptVpcPeeringConnection VPCピアリング接続要求の受け入れる
ec2:AllocateAddress ElasticIPを割り当てる
ec2:AllocateHosts ハードウェア専有ホスト(Dedicated Host)を割り当てる
ec2:AssignPrivateIpAddresses セカンダリプライベートIPアドレスを割り当てる(EC2,ENIなどに)
ec2:AssociateAddress ElasticIPを関連付ける
ec2:AssociateDhcpOptions DHCPオプションを関連付ける
e2:AssociateIamInstanceProfile IAMインスタンスプロファイルを関連付ける
ec2:AssociateRouteTable ルートテーブルへサブネットを関連付ける
ec2:AttachClassicLinkVpc EC2-ClassicインスタンスをClassicLink対応のVPCにリンクさせる
ec2:AttachInternetGateway インターネットゲートウェイVPCに接続し、インターネットとVPC間の接続を可能にする
ec2:AttachNetworkInterface インスタンスにネットワークインタフェースを接続する
ec2:AttachVolume EBSボリュームを実行中または停止中のインスタンスに接続し、指定したデバイス名でインスタンスに公開する
ec2:AttachVpnGateway 仮想プライベートゲートウェイVPCに接続する
ec2:AuthorizeSecurityGroupEgress セキュリティグループのアウトバウンド設定を追加する
ec2:AuthorizeSecurityGroupIngress セキュリティグループのインバウンド設定を追加する
ec2:BundleInstance AmazonインスタンスストアでバックアップされたWindowsインスタンスをバンドルする
ec2:CancelBundleTask インスタンスストアでバックアップされたWindowsインスタンスのバンドル処理を取り消す
ec2:CancelvversionTask インスタンスまたはボリュームのインポートのアクティブな変換タスクを取り消す
ec2:CancelExportTask アクティブなエクスポートタスクを取り消す
ec2:CancelImportTask インプロセス仮想マシンまたはスナップショットのインポートをキャンセルする
ec2:CancelReservedInstancesListing リザーブインスタンスマーケットプレイスで指定されたリザーブインスタンスの一覧を取り消す
ec2:CancelSpotFleetRequests 指定されたスポットフリート要求をキャンセルする
ec2:CancelSpotInstanceRequests スポットインスタンス要求を取り消す
ec2:ConfirmProductInstance 製品コードがインスタンスに関連付けられているかどうかを判別する
ec2:CopyImage AMIをコピーする
ec2:CopySnapshot EBSのスナップショットをコピーする
ec2:CreateCustomerGateway VPNカスタマーゲートウェイを作成する
ec2:CreateDhcpOptions DHCPオプションを作成する
ec2:CreateFlowLogs VPCフローログを作成する
ec2:CreateFpgaImage デザインチェックポイント(DCP)からAmazon FPGAイメージ(AFI)を作成する
ec2:CreateImage AMIを作成する
ec2:CreateInstanceExportTask インスタンスをS3バケットにエクスポートする
ec2:CreateInternetGateway インターネットゲートウェイを作成する
ec2:CreateKeyPair キーペアを作成する
ec2:CreateNatGateway NATゲートウェイを作成する
ec2:CreateNetworkAcl ネットワークACLを作成する
ec2:CreateNetworkAclEntry ネットワークACLにエントリ(ルール)を作成する
ec2:CreateNetworkInterface サブネットにネットワークインターフェイスを作成する
ec2:CreatePlacementGroup クラスタインスタンスを起動するプレースメントグループを作成する
ec2:CreateReservedInstancesListing リザーブインスタンスマーケットプレイスで販売されるAmazon EC2標準リザーブインスタンスのリストを作成する
ec2:CreateRoute ルートテーブルにルートを作成する
ec2:CreateRouteTable ルートテーブルを作成する
ec2:CreateSecurityGroup セキュリティグループを作成する
ec2:CreateSnapshot EBSボリュームのスナップショットを作成する
ec2:CreateSpotDatafeedSubscription スポットインスタンスのデータフィードを作成する
ec2:CreateSubnet サブネットを作成する
ec2:CreateTags EC2のリソースにタグを作成する
ec2:CreateVolume EBSにボリュームを作成する
ec2:CreateVpc VPCにを作成する
ec2:CreateVpcEndpoint VPCエンドポイントを作成する
ec2:CreateVpcPeeringConnection VPCピアリング接続を作成する
ec2:CreateVpnConnection VPN接続を作成する
ec2:CreateVpnConnectionRoute VPN接続に関連付けられたスタティックルートを作成する
ec2:CreateVpnGateway 仮想プライベートゲートウェイを作成する
ec2:DeleteCustomerGateway カスタマーゲートウェイを削除する
ec2:DeleteDhcpOptions DHCPオプションを削除する
ec2:DeleteFlowLogs VPCフローログを削除する
ec2:DeleteInternetGateway インターネットゲートウェイを削除する
ec2:DeleteKeyPair キーペアを削除する
ec2:DeleteNatGateway NATゲートウェイを削除する
ec2:DeleteNetworkAcl ネットワークACLを削除する
ec2:DeleteNetworkAclEntry ネットワークACLのエントリ(ルール)を削除する
ec2:DeleteNetworkInterface ネットワークインターフェイスを削除する
ec2:DeletePlacementGroup プレイスメントグループを削除する
ec2:DeleteRoute ルートテーブルからルートを削除する
ec2:DeleteRouteTable ルートテーブルを削除する
ec2:DeleteSecurityGroup セキュリティグループを削除する
ec2:DeleteSnapshot スナップショットを削除する
ec2:DeleteSpotDatafeedSubscription スポットインスタンスのデータフィードを削除する
ec2:DeleteSubnet サブネットを削除する
ec2:DeleteTags タグを削除する
ec2:DeleteVolume EBSボリュームを削除する
ec2:DeleteVpc VPCを削除する
ec2:DeleteVpcEndpoints VPCエンドポイントを削除する
ec2:DeleteVpcPeeringConnection VPCピアリング接続を削除する
ec2:DeleteVpnConnection VPN接続を削除する
ec2:DeleteVpnConnectionRoute VPN接続に関連付けられたスタティックルートを削除する
ec2:DeleteVpnGateway 仮想プライベートゲートウェイを削除する
ec2:DeregisterImage AMIの登録を解除する
ec2:DescribeAccountAttributes AWSアカウントの属性を表示する
ec2:DescribeAddresses ElasticIPを表示する
ec2:DescribeAvailabilityZones アベイラビリティゾーン(AZ)を表示する
ec2:DescribeBundleTasks バンドルタスクを表示する
ec2:DescribeClassicLinkInstances ClassicLinkをでVPCにリンクされたEC2-Classicインスタンスを表示する
ec2:DescribeConversionTasks VMインポート/エクスポートの変換タスクを表示する
ec2:DescribeCustomerGateways VPNカスタマーゲートウェイを表示する
ec2:DescribeDhcpOptions DHCPオプションを表示する
ec2:DescribeExportTasks エクスポートタスクを表示する
ec2:DescribeFlowLogs VPCフローログを表示する
ec2:DescribeFpgaImages Amazon FPGAイメージ(AFI)を表示する
ec2:DescribeHostReservationOfferings 購入可能なハードウェア専有ホスト(Dedicated Host)予約を表示する
ec2:DescribeHostReservations 自分のアカウントに関連付けられているハードウェア専有ホスト(Dedicated Host)予約を表示する
ec2:DescribeHosts ハードウェア専有ホスト(Dedicated Host)を表示する
ec2:DescribeIamInstanceProfileAssociation IAMインスタンスプロファイルの関連付けを表示する
ec2:DescribeIdentityIdFormat IAMユーザー、IAMロール、またはルートユーザのIDフォーマット設定を表示する
ec2:DescribeIdFormat IDをフォーマット設定を表示する
ec2:DescribeImageAttribute AMIの属性を表示する
ec2:DescribeImages 利用可能なイメージ(AMI,AKI,ARI)を表示する
ec2:DescribeImportImageTasks インポートされた仮想マシンまたは既に作成されたスナップショットタスクのインポートを表示する
ec2:DescribeImportSnapshotTasks インポートスナップショットのタスクを表示する
ec2:DescribeInstanceAttribute インスタンスの属性を表示する
ec2:DescribeInstances インスタンスを表示する
ec2:DescribeInstanceStatus インスタンスのステータスを表示する
ec2:DescribeInternetGateways インターネットゲートウェイを表示する
ec2:DescribeKeyPairs キーペアを表示する
ec2:DescribeMovingAddresses EC2-VPCプラットフォームに移動している、またはEC2-Classicプラットフォームに復元されているElasticIPを表示する
ec2:DescribeNatGateways NATゲートウェイを表示する
ec2:DescribeNetworkAcls ネットワークACLを表示する
ec2:DescribeNetworkInterfaceAttribute ネットワークインターフェイスの属性を表示する
ec2:DescribeNetworkInterfaces ネットワークインターフェイスを表示する
ec2:DescribePlacementGroups プレイスメントグループを表示する
ec2:DescribePrefixLists プレフィックスリスト名とプレフィックスリストID、およびサービスのIPアドレス範囲を含むプレフィックスリスト形式で使用可能なAWSサービスを表示する
ec2:DescribeRegions 現在利用現在利用可能なリージョンを表示する
ec2:DescribeReservedInstances 購入したリザーブインスタンスを表示する
ec2:DescribeReservedInstancesListings リザーブインスタンスマーケットプレイスにアカウントのリザーブインスタンス一覧を表示する
ec2:DescribeReservedInstancesModifications リザーブインスタンスに加えられた変更を表示する
ec2:DescribeReservedInstancesOfferings 購入可能なリザーブインスタンスを表示する
ec2:DescribeRouteTables ルートテーブルを表示する
ec2:DescribeSecurityGroups セキュリティグループを表示する
ec2:DescribeSnapshotAttribute スナップショットの属性表示する
ec2:DescribeSnapshots スナップショットを表示する
ec2:DescribeSpotDatafeedSubscription スポットインスタンスのデータフィードを表示する
ec2:DescribeSpotFleetInstances スポットフリートの実行インスタンスを表示する
ec2:DescribeSpotFleetRequestHistory スポットフリート要求を指定された時間内に表示する
ec2:DescribeSpotFleetRequests 自分のスポットフリート要求を表示する
ec2:DescribeSpotInstanceRequests アカウントに属するスポットフリート要求を表示する
ec2:DescribeSpotPriceHistory スポット価格の履歴を表示する
ec2:DescribeStaleSecurityGroups セキュリティグループの失効したルールを表示する
ec2:DescribeSubnets サブネットを表示する
ec2:DescribeTags タグを表示する
ec2:DescribeVolumeAttribute EBSのボリュームの属性を表示する
ec2:DescribeVolumes EBSボリュームを表示する
ec2:DescribeVolumesModifications EBSのボリュームの現在の変更ステータスを表示する
ec2:DescribeVolumeStatus ボリュームのステータスを表示する
ec2:DescribeVpcAttribute VPCの属性を表示する
ec2:DescribeVpcClassicLink VPCのClassicLinkのステータスを表示する
ec2:DescribeVpcClassicLinkDnsSupport VPCのClassicLinkDNSのステータスを表示する
ec2:DescribeVpcEndpoints VPCエンドポイントを表示する
ec2:DescribeVpcEndpointServices VPCエンドポイントを利用できるすべてのAWSサービスを表示する
ec2:DescribeVpcPeeringConnections VPCピアリング接続を表示する
ec2:DescribeVpcs VPCを表示する
ec2:DescribeVpnConnections VPN接続を表示する
ec2:DescribeVpnGateways 仮想プライベートゲートウェイを表示する
ec2:DetachClassicLinkVpc リンクされたEC2-ClassicインスタンスVPCからリンク解除(デタッチ)する
ec2:DetachInternetGateway インターネットゲートウェイVPCから切り離し、インターネットとVPC間の接続を無効にする
ec2:DetachNetworkInterface インスタンスからネットワークインターフェイスを切り離す
ec2:DetachVolume インスタンスからEBSボリュームを切り離す
ec2:DetachVpnGateway VPCから仮想プライベートゲートウェイを切り離す
ec2:DisableVgwRoutePropagation 仮想プライベートゲートウェイ(VGW)がVPCの指定されたルートテーブルにルートを伝播しないようにする(Disableにする)
ec2:DisableVpcClassicLink VPCのClassicLinkを無効にする
ec2:DisableVpcClassicLinkDnsSupport VPCのClassicLink DNSサポートを無効にする
ec2:DisassociateAddress ElasticIPを関連付けられているインスタンスまたはネットワークインターフェイスから分離する
ec2:DisassociateIamInstanceProfile IAMインスタンスプロファイルの関連付けを解除する
ec2:DisassociateRouteTable サブネットとルートテーブルの関連付けを解除する
ec2:EnableVgwRoutePropagation 仮想プライベートゲートウェイ(VGW)が、VPCの指定されたルートテーブルにルートを伝播できるようにする(Enableにする)
ec2:EnableVolumeIO I/O操作が無効になっているボリュームに対してI/O操作を有効にする
ec2:EnableVpcClassicLink ClassicLink用のVPCを有効にする
ec2:EnableVpcClassicLinkDnsSupport VPCがClassicLinkのDNSホスト名解決をサポートできるようにする
ec2:GetConsoleOutput 指定されたインスタンスのコンソール出力を取得する
ec2:GetConsoleScreenshot 実行中のインスタンスのJPG形式のスクリーンショットを取得する
ec2:GetHostReservationPurchasePreview ハードウェア専有ホストの設定と一致する設定で予約の購入をプレビューする
ec2:GetPasswordData Windowsを実行しているインスタンスの暗号化された管理者パスワードを取得する
ec2:GetReservedInstancesExchangeQuote 指定されたコンバーチブルリザーブインスタンスの値と期間に関する詳細を取得する
ec2:ImportImage ボリュームのディスクイメージまたはEBSスナップショットをAmazon Machine Image(AMI)にインポートする
ec2:ImportInstance ディスクイメージのメタデータを使用してインポートインスタンスタスクを作成する
ec2:ImportKeyPair サードパーティのツールで作成したRSAキーペアから公開キーをインポートする
ec2:ImportSnapshot ディスクをEBSスナップショットにインポートする
ec2:ImportVolume ディスクイメージのメタデータを使用してインポートボリュームタスクを作成する
ec2:ModifyHosts 専用ホストの自動配置設定を変更する
ec2:ModifyIdentityIdFormat IAMユーザー、IAMロール、またはアカウントのルートユーザーのリソースのID形式を変更する
ec2:ModifyIdFormat リソースのIDフォーマットをリージョンごとに変更する
ec2:ModifyImageAttribute AMIの指定された属性を変更する
ec2:ModifyInstanceAttribute インスタンスの指定された属性を変更する
ec2:ModifyInstancePlacement 停止したインスタンスインスタンス親和性値を設定する
ec2:ModifyNetworkInterfaceAttribute ネットワークインターフェイス属性を変更する
ec2:ModifyReservedInstances リザーブインスタンスアベイラビリティゾーン、インスタンス数、インスタンスタイプ、またはネットワークプラットフォーム(EC2-ClassicまたはEC2-VPC)を変更する
ec2:ModifySnapshotAttribute スナップショットの権限設定を追加または削除する
ec2:ModifySpotFleetRequest スポットフリート要求を変更する
ec2:ModifySubnetAttribute サブネットの属性を変更する
ec2:ModifyVolume ボリュームサイズ、ボリュームタイプ、IOPS容量など、既存のEBSボリュームのいくつかのパラメータを変更する
ec2:ModifyVolumeAttribute EBSボリュームの属性を変更する
ec2:ModifyVpcAttribute VPCをの属性を変更する
ec2:ModifyVpcEndpoint VPCエンドポイントの属性を変更する
ec2:ModifyVpcPeeringConnectionOptions PCピアリング接続の一方の側でVPCピアリング接続オプションを変更する
ec2:MonitorInstances 実行中のインスタンスの詳細な監視を有効にする
ec2:MoveAddressToVpc EC2-ClassicプラットフォームのElasticIPをEC2-VPCプラットフォームに移動する
ec2:PurchaseHostReservation 専用ホストの予約を購入する
ec2:PurchaseReservedInstancesOffering アカウントで使用するリザーブインスタンスを購入する
ec2:PurchaseScheduledInstances 指定されたスケジュールで1つまたは複数のスケジュールされたインスタンスを購入する
ec2:RebootInstances インスタンスを再起動する
ec2:RegisterImage AMIを登録する
ec2:RejectVpcPeeringConnection VPCピアリング接続要求を拒否する
ec2:ReleaseAddress ElasticIPアドレスを解放する
ec2:ReleaseHosts オンデマンドの専用ホストを開放する
ec2:ReplaceIamInstanceProfileAssociation 実行インスタンスのIAMインスタンスプロファイルを置き換える
ec2:ReplaceNetworkAclAssociation サブネットが関連付けられているネットワークACLを変更する
ec2:ReplaceNetworkAclEntry ネットワークACLのエントリ(ルール)を置き換える
ec2:ReplaceRoute VPC内のルートテーブル内の既存のルートを置き換える
ec2:ReplaceRouteTableAssociation VPC内の特定のサブネットに関連付けられたルートテーブルを変更する
ec2:ReportInstanceStatus インスタンスの状態に関するフィードバックを送信する
ec2:RequestSpotFleet スポットフリート要求を作成する
ec2:RequestSpotInstances スポットインスタンス要求を作成する
ec2:ResetImageAttribute AMIの属性をデフォルト値にリセットする
ec2:ResetInstanceAttribute インスタンスの属性をデフォルト値にリセットする
ec2:ResetNetworkInterfaceAttribute ネットワークインターフェイスの属性をリセットする
ec2:ResetSnapshotAttribute スナップショットの権限設定をリセットする
ec2:RestoreAddressToClassic EC2-VPCプラットフォームに移動されたElasticIPアドレスをEC2-Classicプラットフォームに戻す
ec2:RevokeSecurityGroupEgress セキュリティグループのアウトバウンド設定を削除する
ec2:RevokeSecurityGroupIngress セキュリティグループのインバウンド設定を削除する
ec2:RunInstances インスタンスを起動する
ec2:RunScheduledInstances スケジュールされたインスタンスを起動する
ec2:StartInstances EBS-backedインスタンスを開始する
ec2:StopInstances EBS-backedインスタンスを停止する
ec2:TerminateInstances インスタンスを削除する
ec2:UnassignPrivateIpAddresses セカンダリプライベートIPアドレスをネットワークインターフェイスから割り当てを解除する
ec2:UnmonitorInstances インスタンスの詳細な監視を無効にする