俺のアウトプット

調べたこと、試したことを書きます

AWS

AWS Cloud9が東京リージョンでサポートされました

今朝方、AWS Cloud9 でEC2タイプのUbuntu環境を検証していたのですが。。 おもむろにリージョンを選択すると、東京リージョンが選べるではないですか。 今までは東京リージョンのサービスを使う場合、シンガポール等で環境を構築し、そこを経由して東京リー…

ZappaでKappaを表示してみた

このエントリは、AWS #2 Advent Calendar 2018 の23日目です。 Zappaとは Amazon API Gateway と AWS Lambda でWebアプリケーションを簡単に構築、デプロイできるPython用のサーバーレスフレームワークです。 FlaskやDjango、Bottleなど WSGI に対応したフレ…

ブログに3日間書き込みしなかったら催促メールを送る

AWS Lambdaを使って、定期的にブログのトップページをチェック。 3日間書き込みがなかったら、催促メールを送り続ける。 あまり嬉しくないプログラムを作成します。 概要 大まかな流れは以下になります。 CloudWatch Events が定期的にLambda関数を実行 ブロ…

AWS Cloud9上で作成したLambda関数で環境変数を利用する

Lambdaコード内で、設定値を切り替えたい場合があります。 例えば、本番環境と検証環境で接続先を変えたい、などです。 このような場合、環境変数に値を設定して、コード内から環境変数を参照します。 特定の言語に依存せず参照できますし、コードから定数が…

AWS Cloud9上で作成したLambda関数でPython3外部モジュールを利用する

Lambda関数でPythonの外部モジュールを利用する場合、Lambda関数デプロイパッケージに含める必要があります。 ローカルの場合は、zipにまとめてAWS Lambdaへアップロードする必要がありますが、AWS Cloud9上からデプロイする場合(つまりSAM)は簡単です。 Lam…

AWS Cloud9からPython3で作成したLambda関数を実行する

AWS Cloud9上で、Lambda関数を作成して実行します。 大まかな流れは下記になります。 ローカル上にLambda関数を作成 ローカル上のLambda関数を(デバッグ)実行 AWS上にLambda関数をデプロイして実行 ここでいうローカルとは、ブラウザで起動したCloud9環境を…

AWS Cloud9 IDE内でWebアプリケーションを表示する

AWS Cloud9 IDE内で、実行中のWebアプリケーションを表示することができます。 今回は、Flaskを利用して確認します。 FlaskはPythonの軽量なWebアプリケーションフレームワークです。 Python3の構築は下記エントリを参照してください。 Flaskのインストール …

AWS Cloud9でPython3の環境を構築する

EC2環境を作成した直後はPython2系を利用できます。 Python3系を利用するためにはプロジェクト設定を変更する必要があります。 EC2環境の構築は下記エントリを参照してください。 プロジェクト設定 Python用の設定項目を表示します。 メニューバー右側の歯車…

AWS Cloud9とCodeCommitを統合する

AWS Cloud9 内から AWS CodeCommit リポジトリでコード管理を行うことができます。 AWS Cloud9 EC2環境を起動します。 AWS CodeCommitリポジトリは事前に用意しておいてください。 AWS Cloud9 EC2環境の構築は、下記エントリを参照してください。 AWS CodeCo…

AWS Cloud9 EC2環境内のコンポーネントを確認する

環境タイプでEC2を選択した場合、JavaScript、Python、PHP などの一般的なプログラム言語に不可欠なツールがあらかじめパッケージ化されています。 2018年9月時点で、以下のコンポーネントがインストールされています。 コンポーネント バージョン バージョ…

AWS Cloud9 EC2環境を構築する

AWS Cloud9 は、ブラウザのみでどのマシンからでもコードを記述、実行、デバッグできる、クラウドベースの統合開発環境 (IDE) です。 とはいえ、何でもできるわけではありません。 基本はサーバーサイド向けです。 特にサーバーレスアプリケーション(Lambda)…

Bitbucket上のリポジトリをAWS CodeCommit上へ移行する

普段、趣味で書くコードはBitbucketを利用しています。 5ユーザーまでの制限はあるけれど、プライベートリポジトリを無料で利用できるのは嬉しいですね。 bitbucket.org AWS CodeCommit にも無料枠があります。 これは期間限定ではなく常に無料です。 無制限…

AWS CodeCommitリポジトリにSSH接続するための前準備

Code兄弟。 ちょっとずつ試してみたいと思います。 まずはバージョン管理サービスの CodeCommit から。 AWS CodeCommitに対する認証とアクセスコントロール AWS CodeCommitはバージョン管理サービスです。 GitHubやBitbucketと同様に、リポジトリへのアクセ…

AWS認定DevOpsエンジニア-プロフェッショナルに合格しました

本日、AWS認定資格 DevOpsエンジニア-プロフェッショナル に合格しました。 今年の2月にAWS認定資格を取ろうと決心。コツコツと1個ずつ取得していきました。 (資格もアウトプットですね) AWS認定 ソリューションアーキテクト – アソシエイト (03/22) AWS認定…

Elastic BeanstalkのサンプルアプリでBlue/Greenデプロイを試す

Elastic Beanstalkにはデプロイ方式がいくつかあります。 今回は、ダウンタイム無しのURL Swapによる環境の切り替えを試してみます。 AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk from Amazon Web Services Japan サンプルアプリ サンプルア…

CloudFormationテンプレートのDeletionPolicy属性

Resourcesセクション内のリソース定義時に、DeletionPolicy属性を指定すると、リソースの削除方法を制御できます。 DeletionPolicy属性は、リソースのふるまいや関連性を制御するリソース属性の1つです。 リソース属性 CreationPolicy 属性 DeletionPolicy …

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 ム…

せっかくだから、俺はこのT3インスタンスを選ぶぜ!

T3インスタンスがリリースされました。 aws.amazon.com t2.microとt3.microを比較してみます。 料金は東京リージョン、オンデマンド、Linux/UNIXの条件です。 t2.micro t3.micro vCPU 1 2 EBS最適化利用 - はい ネットワークパフォーマンス 低から中 Up to 5…

シンプルなネットワークとサーバーをCloudFormationで構築する 〜3. サーバー構築〜

前回はセキュリティーグループ、ネットワークACLを設定しました。 oreout.hatenablog.com 今回は、作成したネットワーク上にEC2インスタンスを作成し、Webサーバーを構築します。 Webサーバーはnginxデフォルト状態とします。 サーバー構築用のテンプレート …

シンプルなネットワークとサーバーをCloudFormationで構築する 〜2. セキュリティ設定〜

前回はVPC、サブネット、インターネットゲートウェイ、ルートテーブルを作成して、ネットワークを構築しました。 oreout.hatenablog.com 今回はセキュリティを作成・設定します。 セキュリティーグループとネットワークACL VPCのファイアウォール機能として…

シンプルなネットワークとサーバーをCloudFormationで構築する 〜1. ネットワーク構築〜

新規にVPCを作成して、Webサーバーを公開するテンプレートを作成します。 今回は、パブリックサブネット内に1つのWebサーバーを立てる、シンプルな構成とします。(APサーバー、DBサーバーは無し) テンプレートを目的ごとに分けます。 ネットワーク構築 セキ…

サンプルテンプレート(JSON)をCloudFormation DesignerでYAMLに変換する

テンプレートを一から全て作成するのは面倒です。 そのような場合、AWS公式のサンプルテンプレートから目的に近いものをベースに作成すると、手間が省けます。 AWS Black Belt Online Seminar 2016 AWS CloudFormation from Amazon Web Services Japan サン…

Amazon Linux2にExtras Libraryからnginxをインストールする

Amazon Linux2 では、Extras Libraryを使用してメジャーなパッケージ(トピック)をインストールすることができます。 Extras Library パッケージ(トピック)の種類、バージョンは定期的に更新されるため、amazon-linux-extrasコマンドで確認します。 (2018年8…

iperfを利用して東京〜USリージョン間のEC2ネットワークスループットを計測してみた

米国リージョンは、政府用を除くと、下記の4つがあります。(2018年8月現在) us-east-1: 米国東部(バージニア北部) us-east-2: 米国東部 (オハイオ) us-west-1: 米国西部 (北カリフォルニア) us-west-2: 米国西部 (オレゴン) 東京リージョンEC2から各リージ…

リージョン間で同じEC2キーペアを利用する

EC2キーペアはリージョン単位で管理されます。 他リージョンで同じキーペアを利用したい場合、既に利用しているキーペアの公開鍵をインポートします。 EC2キーペアおさらい 20180411 AWS Black Belt Online Seminar Amazon EC2 from Amazon Web Services Jap…

CloudFormationスタック完了時だけメールを受信する

前回のエントリで、スタックイベントをメールで受信できるようになりました。 しかし、全てのイベントを受信するため、大量のメールが届きます。 完了時だけひょっこりメールを受け取りたい!! 最初は、メッセージのフィルタリング機能を使えばできると思っ…

CloudFormationスタックイベントをSNSでメール通知する

スタック作成時に通知オプションを設定すると、スタックイベントの内容を通知することができます。 トピックの作成 マネジメントコンソールから、サービス [アプリケーション統合] - [Simple Notification Service] を選択します。 トピックを選択して、[新…

CloudFormationテンプレートをVisual Studio Codeで保存した時に自動検証する

テンプレートの検証 AWS-CLIのaws cloudformation validate-templateコマンドを使うと、テンプレート内容を検証できます。 ローカル上のテンプレートファイルを検証する場合は、--template-bodyオプションを使い、 aws cloudformation validate-template --t…

CloudFormationクロススタック参照

クロススタック参照を使用すると、スタック間の連携が可能になります。 スタック間の連携、つまりテンプレートが複数必要になります。 参照される側のテンプレート OutputsセクションのExportプロパティで値をエクスポート 参照する側のテンプレート 組み込…

CloudFormationテンプレートの条件関数

組み込み関数の条件関数を利用すると、リソースを柔軟に制御できます。 リソースを制御する大まかな流れは Parametersセクション パラメータを入力 Conditionsセクション 入力値を評価して条件(論理値)を作成 Resourcesセクション 条件によりリソースを作成 …