AWS関連のことを調べてみた2020年03月23日

AWS関連のことを調べてみた2020年03月23日
目次

AWSサーバレス環境における必要最低限の監視設定 ( ECS + Fargate 編 )

AWSでちょっとしたプロダクト(MVP)をECS+Fargateが開発したようなケースでアプリケーションを運用開始したときに、とりあえずそこまで手間はかけたくないけど最低限の監視はしたいという場合のために、箇条書き程度ですが、必要設定項目を整理してみました。

もしこういういった観点も必要だよねというのがありましたらご指摘いただけますと幸いです。

# 前提条件

– ECS + Fargate 環境でアプリケーションを運用する環境
– EC2を利用したサーバー運用がないこと
– ECS Serviceに対してAuto Scaling Groupが適用されていること
– アプリケーションの要件的に 24/365監視を専属のインフラチームが対応するほどではないこと
– 夜間にアラートがなったら PagerDuty等のインフラチームのメンバーの電話を鳴らすような仕組みは今回は対象外です
– インフラの監視にはあまりコストはかけたくなく、監視に関するツールはAWS内になるべく閉じたいこと
– [CloudTrail](https://aws.amazon.com/jp/clo

元記事を表示

Fargate 導入概要 メモ

Fargate のメモ

# Fargate

AWS で簡単に Docker コンテナを動かせるサービス。
ただし、独自の概念が多く、慣れる必要がある。

筆者は以前に導入を試みて、挫折した。今日(2020/03/23)試してみたら、ドキュメントが良くなったのか、オンボーディングが良くなったのか、意外とすんなり理解できたので、記録しておく

# なぜ Fargate なのか

前提として

– PV 換算すると 月20万PVほどのアクセスのWebサービスを運用している
– インフラエンジニアが不在なので、あまり煩わしい作業はしたくない
– かといって、 EC2 はプロビジョニングとか面倒だし、ElasticBeanstalk はデプロイに時間かかるし小回りが効かない(経験談)
– とりあえず動けばOKなサービスに適用する(本サービスではなく、LP + アルファな感じ。Next.js利用)

AWS には EKS など魅力的なサービスがあるが、意外と高い。コントロールパネルを動かしているだけで、15000円くらいかかるらしい(と、AWS の方に言われた)

さくっとサービス動かすだけな

元記事を表示

CloudFormationテンプレートを1からしっかり理解しながらECS on Fargateなアプリを自動構築する(中編)

# 前提条件
[前編](https://qiita.com/neruneruo/items/06b073f3846803f415e5)で作ったECSのサービスに対してCodePipelineを使ってCI/CDパイプラインを作るので、前編を理解しておく。

記事中には、備忘のためにリファレンスに書かれていないデフォルト値を整理しておくが、2020年3月時点の情報であり、後でAWSが仕様を変えたとしても追従する予定はないので、挙動が違ったらリファレンスを見直してほしい。あと、今回の構成(ECS on FargateのBlue/Greenデプロイメント)以外の構成以外のデフォルト値まで調査はしていないのであしからず。

# CodeDeployでBlue/Greenデプロイメントのアプリケーションを作る
## アプリケーションの設定
ここはそんなに悩むことはない。以下のような感じで設定しておけばOK。

“`YAML
APPLICATION:
Type: AWS::CodeDeploy::Application
Properties:
Applicatio

元記事を表示

AWS認定ソリューションアーキテクト – アソシエイト 1回落ちて2回目で合格

AWS認定ソリューションアーキテクト – アソシエイト 受験の感想です。

## はじめに

今まで、AWSを使う機会は全く無かったのですが、
転職を機会きっかけにAWSに関わることが増えたため、知識の底上げとして受験することにしました。

実は、半年くらい前に一度受験したのですが、その時は落ちてしまい、再受験の機会を伺っていました。
そんな時、新しいバージョン(SAA-C02)が、2020/3/23から始まるとのことで、急遽受験することにしました。

## 1回目(落ちた)

#### 勉強
みなさまの合格記録を参考に勉強をはじめました。

– [黒本](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88-%E2%80%93-%E3%82

元記事を表示

DjangoアプリをローカルからAWSに上げたらCSSが適用されなくなった話

# 経緯
DjangoやAWSの学習のため、以下の記事を元にローカルでDjangoアプリを作成したあと、githubからAWSにclone。
[Django(Python)でシステム開発できるようになる記事_入門編](https://qiita.com/Saku731/items/ed64190a12a4498b9446)
[【20分でデプロイ】AWS EC2にDjango+PostgreSQL+Nginx環境を構築してササッと公開](https://qiita.com/tachibanayu24/items/b8d73cdfd4cbd42c5b1d)

AWS上で`python3 manage.py runserver`した後、ローカルでは管理画面に適用されていたCSSが適用されていないことに気づく。
スクリーンショット 2020-03-21 10.38.02.png【AWS初心者】×【対策本1冊のみ】×【 平日+休日2日のみ(50時間)】でSAA(ソリューションアーキテクト アソシエイト)を取得する方法

## この記事の構成
▶合格するのに必要なもの3点(無駄を究極にそぎ落としました)
 ①:対策本1冊
 ②:”受けるからには **絶対に** 受かる”という強い意志
 ③:50時間
▶これから始める人へのエール

## ①:対策本

本屋に並んでる対策本全部見て、以下の観点で決めました。
ポイントは**1冊に絞る**こと。複数冊買いたくなりますが、
9割以上重複してるので学習効率が悪いです。

– ページ数が少ない(重要!量より質を大事に)
– 図解が好み(超重要!色とかテイストは集中力に直結)
– 模擬試験の解説が教科書とリンクしている(最重要!!学習効率が爆上がり)

![51XxEhKaqbL._SX350_BO1,204,203,200_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602559/f49656c9-6379-b3b7-11af-e0919474ee98.jpeg)

## ②:”受けるからには **絶対に** 受かる”という強い意志

なんのために試験を受けるか?

なん

元記事を表示

EC2で稼働するECSのタスクにFirelensを適用する

# Firelensとは
– ECSタスクのログ出力を管理する仕組み
– サイドカーとしてFluent Bit、またはFluentdのコンテナをタスクに追加する
– サイドカーのためアプリケーションに変更を加える必要がない
– EC2、Fargateどちらのタスクでも使用可能
– ログの出力先はCloudwatch LogsやKinesis Data Firehoseなどのマネージドサービスはもちろんのこと、PapertrailやDatadogなどのSaaSの製品にも適用できる

# 目標
– ログの出力先をCloudWatch Logsから[Papetrail](https://www.papertrail.com/)に変更する

# 前提
– EC2で稼働するECSタスクを使用する
– Container Instanceで稼働するECS Agentのバージョンは、**1.30以降である必要があります**

# Firelensを使用せずにCloudWatch Logsへ出力する
– これはTask Definitionの設定のみで行えます
– Containerの

元記事を表示

AWS障害は全て通知されると思ってた話

# 結論からいうと
アカウント固有のリソース障害であっても、全ては通知されません。

# 背景
EC2のシステムステータスチェック失敗や、VPNのトンネルステータスがダウン時に、Personal Health Dashboardやメールにて通知されていないことに気づいたので、サポートに問い合わせてみた。

# 問合せ結果
以下、問合せ結果の抜粋です。
>Personal Health DashboardにはAWSアカウント固有のリソースに対するメンテナンス情報や、お客様が影響を受ける可能性のあるAWS大規模障害の情報などが通知されます。
あらかじめ予定されているイベント情報や事前に予兆を検知することのできた障害情報、および広範囲に渡って発生した障害情報などは適宜通知されますが、現時点では個別のリソースにおいて一時的に発生した障害情報などは通知されません。

# 障害に対してどうすべきか
今回のようなEC2やVPNの障害については、Cloudwatchのメトリクスを監視するアラームを作成し、Amazon SNS トピックへの通知、EC2アクション、EC2 AutoScalingアクション

元記事を表示

EC2上でvue+expressの環境構築からAPI通信実装まで

# バックエンド
EC2インスタンス上でexpressを動かし、アプリケーションのbackend環境を構築する。
ここでは例としてアプリケーション`app`を作る

## 環境構築
__AMI:Ubuntu18.04、IP:x.x.x.x の場合__

“`
$ sudo apt-get update
$ sudo apt-get install nodejs
$ sudo apt-get install npm
$ sudo update-alternatives –install /usr/bin/node node /usr/bin/nodejs 10
$ sudo npm install -g express
$ sudo npm install -g express-generator
$ express –view=pug app
$ cd app
$ npm install
$ npm start
> app@0.0.0 start /home/ubuntu/app
> node ./bin/www

“`

__AMI:AmazonLinux2、IP:x.x.

元記事を表示

EC2の起動設定と起動テンプレートの違い

# そもそも起動設定って何?
EC2インスタンスを起動するために、AutoScalingグループで使用される設定です。
よくあるユースケースとしてAutoHealingと呼ばれる、インスタンス障害発生時に障害インスタンスを削除し、新規インスタンスの起動で使用されます。

# 起動テンプレートと何が違うの?
起動テンプレートは起動設定の後継となるサービスとなります。
AWS公式ユーザガイドにも、以下のように記載されております。
>Amazon EC2 の最新機能を確実に使用できるようにするために、起動設定ではなく起動テンプレートを使用することをお勧めします。

起動設定と比較すると設定可能な項目が多いため、詳細なユースケースに対応することが可能です。
また、起動テンプレート単体でEC2起動が可能なので、AMIからの手動展開が楽になります。

# 小ネタ
AWSマネジメントコンソールにて、作成済みのEC2インスタンスをチェックし、アクションから「Create Template From Instance」をクリックすると、自動で起動テンプレートが作成されるのでオススメです。
![0CC3B

元記事を表示

EC2インスタンスでWindowsServerの日本語版を選択する方法

#はじめに
EC2の作成時にWindow Server 2016を入れた際に英語版OSを入れた為に、日本語版で作成してくれという事で丸ッと作り直しになってしまったので備忘録的に残していく。

#日本語版を選択する方法
AWSマネジメントコンソール⇒EC2⇒インスタンス⇒インスタンス作成⇒
検索欄で**Windows server 2016 Japanese**と入力
※Windows japanese等でもOK

AWS使い始めで指定のAMIを探すのに選択欄の「クイックスタート」から探しがちになるが、
選択肢としてはそれほど多くは無く、見つからない場合が多い。
##コミュニティAMIを確認
![EC2②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594936/841828e0-e96e-571b-dd41-2a302d5285a2.png)

**コミュニティAMI**は公式を見てみると・・・

「AMI を作成したら、自分だけがそれを使用できるようにプライベートとして保存したり、AWS アカウント

元記事を表示

AWS Lambdaの例外処理の仕方(同期実行・非同期実行・ストリームベース実行)

### 前置き
本記事は、AWS Lambda(以下、Lambda)のコード内で起きた例外処理の仕方を書きます。つまり、以下で紹介するものは、Lambdaの起動には成功しているという前提なので、起動自体に失敗しているちう人は、別の記事を参照してください。

### 概要
Lambdaに限らず、例外処理というのはプログラムにつきものです。何等かの不具合で例外が発生させる場合や、意図して例外を発生させる場合があります。
**Lambdaでも同じように例外処理をするわけですが、Lambdaはイベントトリガーによって例外処理の仕方を変える必要があります!** Lambdaのイベントトリガーについては、以下のようなものがあります。

[参考]
AWS Black Belt の AWS Lambda Part1
https://d1.awsstatic.com/webinars/jp/pdf/services/20190402_AWSBlackbelt_AWSLambda%20Part1%262.pdf

以下で Pythonプログラムを用いて、簡単例外処理の仕方を紹介したいともいます。

#

元記事を表示

駆け出しエンジニアが知識ゼロから1ヶ月半でAWSのSAA試験に受かった話

1ヶ月半の学習を経て、AWSソリューションアーキテクトアソシエイト試験に合格したので学習方法等を記録しようと思います。
僕のような駆け出しの方でAWS-SAA受けようという方の参考になればと思います。

#前提
– SES
– **実務経験は4.5ヶ月程度(学習開始時は3ヶ月程度)**
– 現在の職場が初現場、初プロジェクト
– 普段はLaravelやReactを触らせてもらってる
– スキル的にはフロント寄り
– **ネットワーク知識はほぼなし**
– **オンプレミスのインフラの知識もほぼなし**
– **もちろんその辺の実務経験もなし**

#受験までの経緯
現在のプロジェクトのメンバーの方でフロント技術を得意としている方がおりまして、普段はその方からReactを教えてもらっています。その方との会話の中で「**ネットワークやインフラの知識も大事だよねー、最近だとクラウドだよねー**」といった感じになり、気づいたら一緒に1ヶ月後の試験を予約していました。

自分としても徐々にフロント周りの知識がついてきていたので、きっかけがあれば他のことも勉強したいなと思っていました。
**勉強始

元記事を表示

GCPのほうのIoTCoreを使ってみる

#はじめに
こんにちは
RHEMS技研荒木です。
無人島に漂流しすぎて寝不足です。島の名前はI/O島にしました。

備忘録がてらIoTCoreを用いたセンサデータの収集についてまとめました。
2020/03/21現在の情報です。1~2ヶ月のうちに情報が古くなると思いますのでご注意ください。

#構成図
![ReikouzoPNG (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269207/2de7fc2b-4c9e-ce41-c2d5-19c71e102e05.png)

センサデータを収集するためのスタンダードな構成だと思います。
CloudFunctionはデータ到達確認のため置いています。 ここでは解説しません。

#IoTCore
これはAWSでいうIoTCoreと似たサービスになります。そりゃそうなんですけど。
大きく違う点はレジストリ単位でトピックが決まっている等点になります。AWSではエンドポイントは固定でトピックはデバイスごとに選択できるのですが、GCPではレジストリに

元記事を表示

参考にならないAWSソリューションアーキテクト・アソシエイト合格までの道のり

# はじめに
思い立って12日、約10時間でAWSソリューションアーキテクト・アソシエイトを取得した日記
バックグラウンドが同じ人はいないので、参考にならないな。。。多分。

### スペック
– 学生時代
– 趣味のプログラミング 10年
– 社会人(下の2つは同時稼働)
– 銀行・証券関連プログラマ 5年
– ゲームプログラマ 5年
– サーバーサイドプログラマ 1年
– インフラエンジニア(サーバー/ネットワーク) 15年
– DBA 10年
などなど
つまり**かなりのオッサン**
– AWS
– 趣味でAlexaスキルを作るためにLambdaとかCloud9とかは
2年くらい前から使っていた
– Alexaスキル公開しているので毎月AWSの無料枠+$100使える
→[Alexa AWSプロモーションクレジットのご紹介](https://developer.amazon.com/ja-JP/alexa/alexa-skills-kit/alex

元記事を表示

AWS Global AcceleratorでLoadbalancerのPublicIPを固定する

### 非機能要件概要
– 外部システムとデータ連携している時、外部システム側がDNS名ではなく、IPを指定した接続のみという非機能要件もあったりします。PublicIPを持つEC2 Instanceでリバースプロキシを作成したり、Network Loadbalancerを使用すればIPを指定した接続という要件は満たせます。しかしながらSSLアクセラレーション機能がなかったり、バックエンドサーバのInboundを0.0.0.0/0にしておく必要があったり、EC2に依存する設定が複数あります。
また、Direct ConnectとVPC endpointを使用して外部システムと同じ閉域網で構築したりもします。
ただし、使用するコンポーネントも多く、外部システムとの作業調整やデータ提供の可用性を高めるためのコストが高くなりがちです。
また、Application LoadbalancerとClassic LoadbalancerにはPublicIPが2つ付きますが、このIPは動的でAWSの任意のタイミングやトラフィック需要によって変動します。そのため、IP変更されたことを検知するためにポー

元記事を表示

新たな言語 “Dark” を実際に触ってみて

# はじめに
先日、私が以前に申請していたDarkのプライベートベータ版に漸く招待されたので、実際に触ってみた感想を述べようと思う。

# 1. Darkとは?
Darkとは、Ellen Chisa、そしてCircleCIの創業者であるPaul Biggarによって設立された会社で開発されている**「偶発的な複雑さ」**を無くし、バックエンドWebサービスを構築するための総合的な**プログラミング言語**であり、**エディタ**であり、**インフラストラクチャ**である。呼称するならば、総合的なソフトウェア開発プラットフォームだろう。Web上にエディタが展開され、そこで全ての開発を行える為、開発ツールやパブリッククラウドと言った多くのテクノロジーを直接触る必要は無い。

また、最大の特徴としては**デプロイレス**だろう。デプロイレスとは、入力したものが即座にデプロイされ、本番環境ですぐに使用できる事である。Darkはインタープリタをクラウドで実行する。関数またはHTTP/イベントハンドラで新しいコードを作成すると、抽象構文ツリーの差分(エディターとサーバーが内部で使用するコードの表現

元記事を表示

AWS RDSにHeidiSQLでSSHトンネル接続を行う

HeidiSQL(ハイジSQL)で AWS RDS に接続するメモです。

# 概要

VPCのサブネットで、RDSをPrivateに置いている場合、踏み台EC2を作成して、SSHトンネル接続を行います。RDSはPrivate で、Webはpublicです。DBに直接にアクセスできないようにしています。

|社内|⇔|パブリック|⇔|プライベート|
|:–|:–|:–|:–|:–|
|PC|22 SSH
3307 仮|踏み台EC2|3306 MySQL

元記事を表示

AWS Identity and Access Management (IAM)

# 概要
* AWSでIAM管理に最低限必要な知識をざっくりと解説
* 対象読者はIAM入門者向けとなっています

# ルートユーザー
* ルートユーザーはemailとパスワードでログインでき、全てのAWSサービスとリソースにアクセスできる
* 日々のタスクをルートユーザですることは推奨されない
* ルートユーザを作成した後は、[個人用のIAMアドミンユーザとグループを作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)することが推奨される
* AWSアカウントのルートユーザーのアクセスキーは作成、更新、無効化、削除できる
* パスワードを変更することもできる
* ルートユーザーの認証情報を持っていれば、誰でも請求情報を含むアカウントの全てのリソースに無制限にアクセスできる
* アクセスキーを作成するときは、アクセスキーIDとシークレットアクセスキーをセットで作成する
* シークレットアクセスキーの表示およびダウンロードは一回のみ
* IAMユーザもルー

元記事を表示

CloudFormationテンプレートを1からしっかり理解しながらECS on Fargateなアプリを自動構築する(前編)

# 前提条件
「CFn?IaC?何それ美味しいの?」な超初心者向け。

とは言え、AWSの機能を使おうって言うんだから、当然[AWS BlackBeltオンラインセミナーのCloudFormation編](https://www.youtube.com/watch?v=HU47ZAM3mtw)くらいは見ていると読みやすいと思う。

あと、CFnは知らなくても同じことをマネジメントコンソールでポチポチできるくらいの理解度は前提。

文中後半で動かしているアプリは、8080ポートで待ち受けるHTTPサーバ。
SpringBootなWebアプリと考えてもらえれば。

記事中には、備忘のためにリファレンスに書かれていないデフォルト値を整理しておくが、2020年3月時点の情報であり、後でAWSが仕様を変えたとしても追従する予定はないので、挙動が違ったらリファレンスを見直してほしい。あと、今回の構成(ECS on FargateのBlue/Greenデプロイメント)以外の構成以外のデフォルト値まで調査はしていないのであしからず。

# 環境を整える
1から理解しながら書くので、力技でいく。
基本の

元記事を表示

OTHERカテゴリの最新記事