- 1. IAMについての勉強(ハンズオンはTerraformで)
- 2. Qiitaのスパム狩りをしたらAutoMLに仕事を奪われた件
- 3. AWS初学者が「うっかり課金」されがちなポイントとその対策まとめ
- 4. motoを初めて使うまでの道のり
- 5. 改善されたVPC LambdaでElastiCacheを使う
- 6. Terraform で Laravel の artisan コマンドを起動する ESC タスクスケジューリングを作る
- 7. AWS技術簿 その1 – EC2 –
- 8. AWS CognitoでFacebookログインを実装してみた
- 9. 実務経験無しでAWS SAA受かった話[2019/11時点]
- 10. クラウドも正直あやしい人向けのAWS概要(初心者向け)
- 11. TerraformからAnsibleのplaybookを実行する
- 12. AWS Transfer for SFTP で作ったエンドポイントにsftp すると Connection closedとなる
- 13. AWS認定ソリューションアーキテクト – アソシエイト試験を受験してきた
- 14. 【小ネタ】AWS 認定ソリューションアーキテクト – プロフェッショナル資格試験に向けた知識の整理①
- 15. DynamoDB Localでテーブル作成できなくて少しハマった話
- 16. AWS Cognito ✗ Laravelを使った会員機能構築の話
- 17. 【AWS】EC2インスタンスでswapサイズを増やす手順
- 18. LambdaでSlackにアカウント毎のAWS利用料金を投稿
- 19. APIGatewayのログのタイムスタンプをLambdaで加工してElasticsearch Serviceに送る
- 20. S3ウェブホスティングとS3 + CloudFront構成の料金比較
IAMについての勉強(ハンズオンはTerraformで)
# 目的
– AWSソリューションアーキテクトの勉強を踏まえてUdemyで勉強中
– ただコンソールを触っていてもつまらないので`Terraform`の勉強を含めてハンズオンを実施# 投稿で説明すること
– IAMについての基本的な説明
– IAMとは
– IAMユーザ
– IAMグループ
– IAMロール
– IAMポリシー
– Terraformを使ったハンズオン
– ポリシーの作成
– グループの作成
– ポリシーをアタッチ
– ユーザの作成
– グループに参加させる# IAMの概要
– AWS Identity and Access Managementの略をとってIAM
– AWS利用者認証の設定やアクセスポリシーの設定、ユーザまたはグループに対してアクセス制限を与えたりする
## 全体のイメージ
– IAMユーザにポリシーを適用する場合には1ユーザに紐づいている
– IAMグループは複数のIAMユーザが所属している
– IAMロールはあるAWSサービスが別のAWSサー
Qiitaのスパム狩りをしたらAutoMLに仕事を奪われた件
ある日の真夜中。ぼんやりとQiitaを眺めていたらこんな記事に遭遇した。
知っている人は知っていると思うが、Qiitaではたびたび大量のスパム記事が投稿されている。
深夜24~26時頃に[記事一覧](https://qiita.com/items)を確認してみて欲しい。
スパム記事がわんさか出てくるはず。登録したてのQiitaユーザは不安よな。[^1]
———— @dcm_chida 動きます?[^1]: おそらく小中学生のユーザもいるだろうし
## はじめに
これは[NTTドコモサービスイノベーション部AdventCalendar2019](https://qiita.com/advent-calendar/2019/nt
AWS初学者が「うっかり課金」されがちなポイントとその対策まとめ
#はじめに
はじめまして!!DMM WEBCAMPでメンターをしている@Yuji-Ishibashiと申します。
僭越ながら DMM WEBCAMP Advent Calendar のトップバッターを務めさせて頂きます。みなさんAWS使ってますか?! AWSは便利なサービスがたくさんありますが、利用する上で気になってくるのはやはり**コストの面**ですよね。私はWEBCAMPでのメンター業務の中で、AWSの学習をしている際に、**うっかり課金されてしまった**という受講生の事例を何度か見てきました。今回はそのようなAWS初学者の方をなくしたい!!!と思いまして、気づかずに課金されてしまうポイントとその対策をまとめました。この記事で、AWSの方が課金のことを恐れずにAWSの学習を進めることが出来るようになれば嬉しいです。
#AWS無料枠について
AWSには無料枠が用意されており、その枠の範囲内であれば無料でAWSのリソースを利用することが出来ます。無料枠には3つの種類があり以下のように分類されます。||12ヶ月無料枠|無期限無料枠|トライアル|
|:—|:—–:|:-
motoを初めて使うまでの道のり
# はじめに
こんばんwifimotoを使用してAWSサービスをmockする手順を
自分用の備忘録として
初心者用に書き記したいと思います。今回はEC2をローカル上で作成し、
そのインスタンスIDを取得するというテストを実施していこうと思います。# まずmockって何?
“モックオブジェクト”という言葉は、テストのために本物のオブジェクトをまねる特殊なオブジェクトを表す言葉らしいです。テストやコンパイル用に用意されたダミーのクラスで、実際に処理は行わない。
呼び出しが行われたかどうか、どんな引数で呼び出されたかなどを記録してくれるもの。自分の中では、テストで扱う疑似の環境を用意してくれるものと思っています。
# そしてmotoとは
AWS ServiceをMockしてくれる素晴らしいものです。
AWSサービスを実際に動かすことなく、疑似環境でテストが行えることができます。# 環境
作業するのに必要な環境を整えます。
以下のサイトがわかりやすかったので、そちらを手順にしてみて下さい。– pythonのダウンロード → [こちら](https://www.py
改善されたVPC LambdaでElastiCacheを使う
# 目的
これまで、VPCを使用したLambdaは実行時にENIが作成される場合があって起動に時間がかかっていましたが、2019年9月に東京リージョンのVPC Lambdaの改善がおこなわれました。
今後はElastiCacheのようなサービスもLambdaで使っていきたいと考え簡単なサンプル実装で計測してみたいと思います。# DynamoDB で試す
DynamoDBにアクセスする通常のLambdaとVPC Lambdaを作成して計測してみます。
使用する言語は、先々ネイティブコードでビルドしたいので、[Quarkus](https://quarkus.io/guides/amazon-lambda)でビルドするJava8を使っています。# 構成図
![Advent2019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83475/f0b72848-6807-fb84-b5a3-0673d5372d4d.png)
# 計測結果
| # | Lambda | VPC Lambda |
Terraform で Laravel の artisan コマンドを起動する ESC タスクスケジューリングを作る
ECS タスクスケジューリングを Terraform を使って構築してみます。
Laravel の artisan コマンドを定期的に実行させてみます。
ECS タスクスケジューリングは、 AWS コンソールの以下の画面から作成できます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62103/55d47caf-5cc7-e772-3598-57137eb51c2b.png)
ECS タスクスケジューリング = CloudWatch Events
========
[AWS ドキュメント » Amazon ECS » AWS Fargate 用ユーザーガイド » Amazon ECS タスクのスケジューリング » タスクのスケジューリング (cron)](scheduled_tasks)CloudWatch Events で ECS ターゲットを起動することを、 ECS タスクスケジューリングと呼んでいるようです。
コンソールから作成すると画面のところどころに **CloudW
AWS技術簿 その1 – EC2 –
AWSを勉強するにあたり、身につけた技術や知識を記そうと思い技術簿を作成しました。
初心者が書いてる事もあって、初歩中の初歩的な内容が多々あると思いますが、ご了承ください。
今回はEC2とAMI、それに付随する用語についてまとめます。#EC2とは
EC2とは`Elastic Compute Cloud`の略。
ElasticのEにComputeとCloudのCが二つあるから先頭をくっつけてEC2になった。
AWSクラウドにある仮想サーバーで誰でも使用可能。
後ほど説明するが、AMIがないと起動ができない。#特徴
– 数分で起動が可能な高性能なサーバー
– サーバーの増設や削除、マシン自体のスペック変更もとても簡単
– OS等の種類も豊富で好きなように変更ができる。(LinuxやWindowsなど)
– 1時間、または秒単位での従量課金が発生する#AMIとは
`Amazon Machine Image`の略。
EC2のインスタンスを起動させる際に、必要な情報が全て入っているOSのイメージファイル。#特徴
– AWSの他にもサードパーティからもAMIを提供を行っている
AWS CognitoでFacebookログインを実装してみた
こんにちは、キッド✈️と申します。
東南アジア発のスタートアップスタジオ、[GAOGAO](https://gaogao.asia/)のサーバーサイドエンジニアです。弊社は、株式会社Ancar様のサービス「[Ancar](https://www.ancar.jp/)」の開発をサポートしており、僕も現在関わらせていただいています。
Ancarでは、既存の認証機能を[Cognito](https://aws.amazon.com/jp/cognito/)へ移行することを目指しており、そこで得た知見が、少しばかりではありますが、あるので備忘録としてすことにしました。少しでも皆さんのお役に立てたら嬉しく思います。
# 目次
– Cognito移行の背景
– AWS CognitoでFacebookログインを実装する
– 同じemailのユーザーが二人出来てしまう問題を解決する
– まとめ# Cognito移行の背景
[Ancar](https://www.ancar.jp/)は、中古車の個人間売買サービスです。中古車売買において“安心安全な個人間売買”の実現を目指し、日々サービス開
実務経験無しでAWS SAA受かった話[2019/11時点]
# 経歴
実務ではWPF開発のみでAWS実務経験全く無し。
インフラ系の知識もほとんど無し。
AWSサービスはAlexaスキル作ってた時にDynamoDBやLambdaを使っていた程度です。# きっかけ
受験を決意したのは以下の理由です。– デブサミ等カンファレンスに行くとAWSサービスは当たり前のように出るので危機感。
– AWSサービスの知識があれば強いエンジニアの話がもっと楽しく聞けるのかも。
– 今後AWSを業務で関わる可能性があるかもしれない、でも業務が決まってから学ぶのは遅すぎるのでは。# 勉強方法
教材をおすすめ順に並べておきます。[これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(初心者向け21時間完全コース)](https://www.udemy.com/course/aws-associate/)
————————実務経験無しで受けるならこの講座は必須ではないかと思うくらい充実しています。
使ったことあるのとないのとでは思い出しやすさが違います。特に冗長性の構成を実際に作る
クラウドも正直あやしい人向けのAWS概要(初心者向け)
## ■AWSとは
・Amazon Web Servicesの略
・様々なクラウドコンピューティングサービス(90種類以上)を提供
・ネット通販のAmazonの子会社がAWSを提供
・AWSはもともと本家Amazonのインフラを支えるために作られた
(世界中からのアクセスに耐えるため)
↓
ここまで発展した良いサービスなら商売できそう
→2006年7月に他社へのサービスとして公開↓
>>できた<<
## ■クラウドについて
広義の意味ではサーバを借りること自体を「クラウド」ととらえる見方もありますが、
AWSが属するパブリッククラウドはその中でもかなり限定的です。
![スライド4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540751/669680f7-88c6-f02a-7946-7c7e07df6972.png)
サーバを買うと「オンプレミス」
一台の一部だけ借りると「共用サーバ」:サーバの一部を間借り
一台まるごと借りると「(レンタル)専用サーバ」:物理的なサーバを一台専
TerraformからAnsibleのplaybookを実行する
## はじめに
こんにちは、SREエンジニアの@hayaosatoです。
日々の業務では、インフラができるSREの一環として、Infrastracture As Codeを推進しています。## TerraformとAnsible
今回はインフラの定義からサーバ設定までをシュッと実行してみようと思います。
具体的には、AWSでサーバを作成する際にTerraformでインフラの定義を行なって、その後のサーバのミドルウェアのインストールなどをAnsibleで行います。
また、Terraformでサーバ作成した直後にそのままプロビジョニングとしてAnsibleを実行します。
コードは[こちら](https://github.com/hayaosato/terraform-ansible)。## Terraform
まずは、AWSでEC2インスタンスを作成します。
今回作成するインスタンスはUbuntu18.04の最新AMIから作成しようと思います。
Terraformおよびプロバイダのバージョンは以下の通りです。“`
Terraform v0.12.16
+ provider.a
AWS Transfer for SFTP で作ったエンドポイントにsftp すると Connection closedとなる
# 結論
IAMの信頼関係が間違っている可能性が高いです。
IAMでAWS Transfer for SFTP 用に作ったRoleを確認して信頼されたエンティティがtransfer.amazonaws.comになっていることを確認しましょう。
![Role.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51203/b3f6cb62-eb32-d1ff-9a38-406aaa8f4c7d.png)
EC2でRoleとか作ってしまうとここが違うので権限が割りてられなくてConnection Closedになります。
# 気づいた経緯
## SGとか?
Publicで作っていれば、外部からアクセスできる。SGの設定はない。
(VPCの場合どうなるのかよくわかってないです)## 社内のセキュリティツールが悪さをしている?
EC2インスタンスを立ててそこからsftpしてみたらConnection closedなので関係ない
## SSH鍵がおかしい?
“`
sftp -v -i ~/.
AWS認定ソリューションアーキテクト – アソシエイト試験を受験してきた
# はじめに
去る11月30日に、AWS認定試験の一つであるAWS認定ソリューションアーキテクト – アソシエイトを受験してきました。
n番煎じですが、受験体験記を残しておきます。ちなみに技術系の資格受験はこれが初めてです。試験の概要についてはこちらもご覧ください。
https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/# 私について
– 新卒2年目エンジニア
– 学生時代は高エネルギー天文学を専攻し、当時はAWSはおろかITに関する知識もほぼゼロ
– 入社後に新規サービスのAWS環境構築や、自社サービスのAWS移行などを担当私が入社する少し前からAWS導入の波が来ており、幸運なことに業務でAWSに触れる機会は多くありました。
特に、サービスのAWS移行などを通して一般的なネットワークの知識や、[AWS Well-Architected](https://aws.amazon.com/jp/architecture/well-architected/)で挙げられてい
【小ネタ】AWS 認定ソリューションアーキテクト – プロフェッショナル資格試験に向けた知識の整理①
# 概要
AWS 認定ソリューションアーキテクト – プロフェッショナル資格試験に向けて勉強を始めたのでその小ネタ集です。## 参考
アソシエイト資格の勉強法は以下を参照
[AWS初心者がAWS 認定ソリューションアーキテクト – アソシエイト資格試験に合格した時の勉強法](https://qiita.com/fkooo/items/e5284a4ed3c3466ffd41 “AWS初心者がAWS 認定ソリューションアーキテクト – アソシエイト資格試験に合格した時の勉強法”)
## SSM パラメータストア
* CLI で putparameter/getparameter
* AWS で 用意しているものもある## Amazon Macie
* 機械学習によって AWS 内の機密データを自動的に検出、分類、保護するセキュリティサービスです。
* Macie では、個人情報 (PII) や知的財産などの機密データが認識されます。
* 日本のリージョンではまだ使えない## Athena
* S3上のデータに標準SQL
* スキャンしたデータに対する従量課金
* クエ
DynamoDB Localでテーブル作成できなくて少しハマった話
# 経緯
個人的に、サーバレスでアプリ作りたくて、AWS SAMとDynamoDB Localで試作してた。
以下のページが参考になった。
[aws-sam-cliでLambda,DynamoDBのサーバーレスアプリケーション開発に入門してみる](https://qiita.com/umeneri/items/6fb3f7560f4a878f6dfd)# エラー内容
テーブル定義をjsonで作成して、aws cliでコマンド実行したらエラーで作れない。
“`bash
$ aws dynamodb create-table –cli-input-json file://table/test-table.json –endpoint-url http://127.0.0.1:8000 –region ap-northeast-1An error occurred (ValidationException) when calling the CreateTable operation: No provisioned throughput specified for
AWS Cognito ✗ Laravelを使った会員機能構築の話
# はじめに #
ここ3ヶ月程、某WEBサイトに会員機能+決済機能を追加するお仕事をしてました。
基本的に設計〜リリースまで自分主担当で進めるにあたり、なんか便利な外部サービスないかなと目をつけたのがAWS Coginitoでした。# 導入対象のシステム構成 #
インフラはAWSを使っており、サーバーサイド&フロントはphp×Laravel構成です。# 導入の背景 #
リリースまで3ヶ月、運用を楽にしたい、個人情報周りを自社で持つようなことをしたくないというのを軸にいい感じのサービスないかなーと探しておりました。
AWSでいい感じのマネージドサービスあるんじゃないかと思って見つけたCognito。さっとドキュメント読んだ感じ、ソーシャルIDプロバイダーを介したサインインや多要素認証(MFA)といった機能もあり導入を決めました。# 検証・設計時に苦労したこと #
cognitoで検索すると結構な数の記事が出てきたのですが、どれもAWS Amplifyを使ったモダンな利用方法ばかり。。。自分のようにサーバーサイドで使う例があまり見当たらず、また公式ドキュメントもamplifyを
【AWS】EC2インスタンスでswapサイズを増やす手順
# EC2インスタンスでswapサイズを増やす手順
PostgreSQLを使って処理を回していたらあるときからOOMキラーが発動するようになった。
単純にはインスタンスタイプを上げてメモリを増やせば解決するけど、それだと費用は倍になるし、オーバースペックになる。
ふと思ってswapサイズを見てみたら「0.8GBしかないじゃん!?」となったのでswapサイズを増やすことにした。
なお、今回はパーティションを増やしたくないため拡張で対応しているが、新しくパーティションを切る方法もある。## 事前準備
下記の図のようにswapサイズをデフォルトの0.8GBから30GB拡張する。
![swap拡張.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403042/17ea39b2-9bb6-93c9-3e03-bef8cc9fa4d7.png)
ルートボリュームを30GB拡張、ファイルシステム拡張、LVM拡張、swap拡張、というように下から順にやれば良い。
初期状態のルートボリューム30GBではこのような状態に
LambdaでSlackにアカウント毎のAWS利用料金を投稿
# はじめに
下記、投稿を元にSlackに利用料金を投稿する仕組みを作成したが、AWSアカウントが増えてきてアカウント毎の料金がしりたくなり改修しました。基本的な流れは下記の投稿を参照してください。
わかりやすく書かれているので非常に参考になりました。[LambdaでSlackにAWSの利用料金を投稿する(Node.js)](https://qiita.com/tamura_CD/items/33cceb2eac7f1f2fe221)
# 注意
AWSの料金を取得するCost ExplorerのAPIはバージニア北部リージョンでしか利用できないので、Lambdaはバージニア北部リージョンで作成する必要がある。# Lambdaのコード
2ヵ所は個別に修正してください。
ENDPOINT :Incoming WebhooksのURL
PAYLOADのchannel:送信先のURL“`js
/**
* 指定範囲の料金の集計サービス
*
*/const AWS = require(‘aws-sdk’);
const costexplorer = new AWS.Co
APIGatewayのログのタイムスタンプをLambdaで加工してElasticsearch Serviceに送る
# はじめに
APIGatewayのログをElasticsearch Serviceに送ってKibanaで可視化しようとしたときの手順。
ただ、kibanaで対応しているタイムスタンプの形式がAPIGatewayが出力するタイムスタンプの型と一致していなかった。
そのため、Lambdaでタイムスタンプの形式を変換してKibanaでタイムスタンプとして扱えるようにした。# 構成
APIGatewayのアクセスログは、Kinesisにしか出力できないため、Kinesisを利用している。
![aaa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478113/4dd31a14-db75-a75c-dbd1-8698667d8c6d.png)# 手順
1.Lambdaの作成
2.Kinesis Data Firehoseの作成
3.APIGatewayでアクセスログを出力する設定追加
※Elasticsearch Serviceのドメインは作成済の前提# 1.Lambdaの作成
Lamndaの環境変
S3ウェブホスティングとS3 + CloudFront構成の料金比較
# はじめに
S3単独でウェブホスティングするより、S3 + CloudFront構成の方が安くなるという話を聞いたので、机上で計算して確認しました。
料金は、東京リージョンの2019/11/30現在で計算しています。# S3の料金
ざっくりした費用。
オプションを設定したり、データ量が多くなると単価が変わる。| 種類 | 料金 |
|:————-|—-:|
| ストレージ費用| 0.025USD/GB |※標準ストレージ
| リクエスト費用| 0.00037USD |※リクエスト 1,000 件あたり
| データ転送費用(イン)| 無料 |
| データ転送(アウト)| 0.114USD/GB |※月に1GBまで無料# CloudFrontの料金
| 種類 | 料金 |
|:————-|—-:|
| ストレージ費用| 無料 |
| リクエスト費用| 0.0120USD |※リクエスト 1万件あたり
| データ転送費用(イン)| 無料 |
| データ転送(アウト)| 0.114USD/GB |
| オリジン