タグ

ブックマーク / dev.classmethod.jp (20)

  • 突貫でおぼえるSPF、DKIM、DMARC | DevelopersIO

    しばたです。 昨年10月にGoogle(Gmail)および米国Yahoo!においてスパム対策の強化がアナウンスされました。 この件に関してつい先日まで他人事でいたのですが、実は全然他人事では済まないことが発覚し突貫で知識を仕入れています。 アナウンスに対する具体的な対応策についてはこちらのZennの記事を見れば全部わかる感じです。 最高ですね。 また、メール送信にAmazon SESを使っている場合はAWSのブログを確認すると良いでしょう。 「これらの記事を読み解けば万事解決!」という感じではあるのですが、私自身が学んだなかで予め知っておくと良さそうに思えた点がいくつかありました。 記事ではその辺を共有するのと、実際にAmazon SESの環境を作って動作確認をしたのでその結果も合わせて共有します。 はじめに覚えておくと良い基礎知識 Zennの記事でも詳細な解説がありますが、個人的に「最

    突貫でおぼえるSPF、DKIM、DMARC | DevelopersIO
  • 10 年間 1 人で 1 つの iOS アプリを保守してきた話 | DevelopersIO

    はじめに 10 年前の今日、2012/02/03 に Just Quick Search という iOS アプリをリリースした。 個人で開発を行い、100% すべての要素を自分で考え作り上げてきた。 今日はこのアプリに関する 10 年間の思い出と技術的な部分についてをアツく語りたいと思う。 アプリ紹介 Just Quick Search は検索補助アプリである。 このアプリを使うと普段 iPhone で行っている 検索 というアクションをほんの少しだけ 速く 実行できるようになる。 以下がキーワード iphone を検索している時の挙動だ。 ip と入力したところで候補に出てきた iphone をタップし、キーボード右下の search をタップすると Safari が立ち上がり Google での検索結果が表示されるというものである。 メインの機能はこれだけだ。 一見ただ検索をしているだ

    10 年間 1 人で 1 つの iOS アプリを保守してきた話 | DevelopersIO
    sugumura
    sugumura 2022/02/03
    改善をし続けてすごい
  • IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた | DevelopersIO

    コンバンハ、千葉(幸)です。 皆さんは、 PassRole と AssumeRole についてきちんと理解ができていますか?どちらも IAM ロールに関するものですね。 私はカラダ(ボディ)の調子がいい時は思い出せるのですが、雨が降っている日や、ちょっと疲れて気を抜いた時にはすぐ分からなくなってしまいます。 ということで、イメージとして脳に刻み付けることによって忘れられなくしてやろうと思いました。 そこで出来上がったのが以下です。 間違えました。以下です。 あ、でもやっぱり忘れづらいのはこちらかもしれませんね。 どうですか?もう忘れられなくなりましたね? 先にまとめ IAM ロールには以下ポリシーを設定できる アイデンティティベースポリシー Permissions boundary 信頼ポリシー AWS リソースに IAM ロールを引き渡す際には PassRole の権限が必要 PassR

    IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた | DevelopersIO
  • 【小ネタ】AWS CLIでAWS Account IDが取れるようになりました! | DevelopersIO

    西澤です。みんな大好きAWS CLIで地味に嬉しいアップデートがあったのでご紹介します。 Release: AWS Command Line Interface 1.10.18 : Release Notes : Amazon Web Services 意外に取りづらかった自分のAWS Account ID これまでAWS Account IDを取得する方法って確立された方法がありませんでした。下記記事のように皆さん工夫していたのが実情かと思います。 【Tips】AWS CLIでAWSアカウントIDを取得する方法 | Developers.IO 意外にわかりづらかった今使用しているプロファイル 特に複数アカウントを切り替えて利用する環境では、今AWS CLIで使っているprofile情報が何なのか非常にわかりづらかったと思います。aws configure listで切り分けをして確認する

    【小ネタ】AWS CLIでAWS Account IDが取れるようになりました! | DevelopersIO
    sugumura
    sugumura 2019/12/16
  • Amazon Linux 2のExtras Library(amazon-linux-extras)を使ってみた | DevelopersIO

    Amazon Linux 2には Extras Library と呼ばれるパッケージ群が存在し、PythonGolang、MariaDB、Ansible などの特定のパッケージをより新しいバージョンで利用することが出来ます。 Extra Packages for Enterprise Linux (EPEL) のような位置づけで、通常はディストリビューション標準のパッケージを利用する一方で、特定のパケージではより新しいバージョンを試せます。 この特別なパッケージは AWS がキュレートし、amazon-linux-extras コマンド経由で管理します。 今回はこの Extras Library を実際に使ってみます。 Extras Library は amazon-linux-extras コマンドで操作 Extras Library は専用プログラム amazon-linux-ext

    Amazon Linux 2のExtras Library(amazon-linux-extras)を使ってみた | DevelopersIO
    sugumura
    sugumura 2019/03/20
  • 【超重要】対応しないと使えなくなるかも?!今、全S3ユーザがチェックすべき署名バージョン2の廃止について | DevelopersIO

    ご機嫌いかがでしょうか、豊崎です。 注意喚起記事です。一部のS3利用者に影響が出ることなので、是非ご確認、および対象の方はご対応いただければと思います。 具体的に何のことかというと、Amazon S3のAWS署名バーション2の廃止についてです。 弊社suzukiがすでに記事を書いていますが、Amazon S3のAWS署名バーション2が2019年6月24日に廃止されます。これは、より安全にAWSおよびS3を利用できるようにするために署名バージョンの変更が行われるためです。 これによって一部のAWSユーザのS3の利用に影響が出ます。 署名バージョン4専用のS3エンドポイントを古いCLIで試してみた AWSの各サービスのAPIを利用する際、AWSが送信元を特定できるようにリクエストに署名が必要です。現在AWSAPIで利用されている署名バーションは「2」と「4」の2種類あり、「4」が推奨されてい

    【超重要】対応しないと使えなくなるかも?!今、全S3ユーザがチェックすべき署名バージョン2の廃止について | DevelopersIO
  • AWS IoTのDevice GatewayにHTTPプロトコルとクライアント認証でメッセージ送信する | DevelopersIO

    また、ルート CA もシマンテックサイトから取得します。 $ curl -o rootCA.pem -s https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem AWS IoTポリシーの設定 AWS IoTの権限管理をするポリシーを作成します。 今回はDevice GatewayへのPublishのみを許可します。 $ cat iot-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "*" ] } ] }

    AWS IoTのDevice GatewayにHTTPプロトコルとクライアント認証でメッセージ送信する | DevelopersIO
    sugumura
    sugumura 2018/10/09
  • CloudFrontのキャッシュ時間(TTL)はどの程度なのか | DevelopersIO

    よく訓練されたアップル信者、都元です。 CloudFrontはContents Delivary Network、所謂CDNですが、ざっくりと言ってしまえば、要するにキャッシュ機能を持ったHTTPリバースプロキシです。CloudFrontでは、元々のコンテンツ提供をするサーバのことをオリジンと呼びます。 CloudFrontでは、オリジンから提供されるコンテンツを、エッジサーバと呼ばれる世界各地に点在するコンテンツ配信専用のサーバ上にキャッシュすることによって、高い転送速度パフォーマンスを発揮しています。しかし、キャッシュというのはオリジン上のコンテンツの更新があった時に、内容が乖離してしまうという問題があります。 通常、CloudFrontは静的コンテンツ *1の配信に利用します。しかし、静的なコンテンツではあるのですが、定期的にファイルの差替えを行う、という可能性が無いわけではありませ

    CloudFrontのキャッシュ時間(TTL)はどの程度なのか | DevelopersIO
  • CloudFrontで「Forward Cookies」を「All」にしている時に注意すべき点 | DevelopersIO

    菅野です。 先日、CloudFront経由でウェブページにアクセスした時に常に「X-Cache: Miss from cloudfront」となるので調査したところ、CloudFrontの「Behavior」の「Forward Cookies」が「All」になっている事が原因でした。 今回はなぜ「All」だとキャッシュが使われなかったのか、CloudFrontにおけるcookieの注意点について書こうと思います。 webページを準備 EC2インスタンスを立ち上げ、apacheとphpをインストールします。 /var/www/html/index.phpを作成し、内容は以下にします。 GoogleAnalyticsもcookieを使うので検証の為に埋めました。 <?php setcookie( "cookie01", "value01" ); // setcookie( "cookie02"

    CloudFrontで「Forward Cookies」を「All」にしている時に注意すべき点 | DevelopersIO
  • もっとELB(Elastic Load Balancing)を活用する | DevelopersIO

    みんな大好きElastic Load Balancing(以下ELB)は利用にあたっては細かい仕様に注意する必要があります。 2014年ELBにお世話になった人もそうでない人も2015年はもっとELBを活用するために、改めてELBの仕様や活用方法を振り返ってみましょう。 ※稿の内容の多くは一度でもELBを使ったことがある方を想定しています。 ELBが得意なところ ELBはコスト効果良く高い可用性と拡張性をもつロードバランサーをサービスとして提供してくれるので、最初に利用するロードバランサーとしても、長く使うロードバランサーとしても優秀です。 ELBを活用するためのドキュメントがAWSから公開されています。未読の方は必ず目を通しておきましょう。 Best Practices in Evaluating Elastic Load Balancing ELBが苦手なところ ELBを利用する上で

    もっとELB(Elastic Load Balancing)を活用する | DevelopersIO
  • CORS(Cross-Origin Resource Sharing)について整理してみた | DevelopersIO

    ブラウザからAmazon S3に直接ファイルをアップロードしたい 先日、Amazon S3にファイルをアップロードするWebアプリを作ろうとして色々調べていたところ、S3にCORSという仕様のクロスドメインアクセスの設定をすることによって、ブラウザから直接S3にアップロードをする方法にたどり着きました。ただ、この方法を使うにあたってはCORSというクロスドメインアクセスの仕様をきちんと理解しておいた方が良さそうでしたので、まずはCORSについて自分なりに整理してみました。 なお、弊社の横田がCORSとS3についての記事を以前書いていますので、S3のCORSサポートに関する概要を知りたい方はそちらをご覧下さい。 CORS(Cross-Origin Resource Sharing)によるクロスドメイン通信の傾向と対策 CORS ブラウザでAjax通信を行う際には、同一生成元ポリシー(Same

  • ELBの挙動とCloudWatchメトリクスの読み方を徹底的に理解する | DevelopersIO

    よく訓練されたアップル信者、都元です。ELBはAWSにおけるWebシステムを構築する場合、ほぼ確実に利用するコンポーネントとして不動の地位を確立しつつあります。 利用方法としては、ELBを作成して配下にWebサーバを配置するだけというお手軽さがあり、非常に利用しやすいのも大きなメリットです。しかし、ELBの詳細な挙動について、しっかり理解できているでしょうか。エントリではいつも利用しているELBについて、ちょっと深く突っ込んでみました。 ELBのロードバランシング戦略 ELBの配下には複数のAZにまたがるようにインスタンスを配置するのが一般的です。(cf. AWSにおける可用性の考え方) ELBを作成すると、DNS名が付与されますが、クライアントがELBにアクセスする際、まずこのホスト名をIPアドレスに変換するDNSの正引きリクエスト(下図中の緑色の矢印)を行います。digコマンドを使っ

    ELBの挙動とCloudWatchメトリクスの読み方を徹底的に理解する | DevelopersIO
  • Amazon CloudFrontとRename Distributionパターンの実装 | DevelopersIO

    Amazon CloudFrontの使いどころ Amazon CloudFrontはオリジンサーバの代わりにコンテンツをキャッシュして配信してくれるサービスです。キャッシュの入っているサーバをエッジサーバと言います。東京リージョン内では、東京と大阪にエッジロケーション(エッジサーバが置いてある場所)があります。全世界で数十拠点あり、1つのオリジンサーバから全世界に配信することができます。オリジンサーバには、S3かWebサーバの載っているEC2インスタンスかAWS管理下かどうかに関係なくドメイン名を指定することができます。 キャッシュを指定する場所 Webサーバがコンテンツをユーザに届ける際、どの程度キャッシュするか指定します。CloudFrontを使う場合、オリジンサーバのキャッシュ時間を引き継ぐか、独自に設定することができます。キャッシュする時間が長ければオリジンサーバへの負荷はもちろん

  • Amazon VPCを使ったミニマム構成のサーバ環境を構築する | DevelopersIO

    よく訓練されたアップル信者、都元です。AWSにおいては、ネットワーク環境をあまり気にせず、数クリックで簡単にサーバを構築できるのは一つのメリットだと言えます。しかし、格的に運用するシステムに関しては、ネットワーク環境をコントロールする需要も出てきます。AWS Virtual Private Cloud (VPC)を使えば、AWS上に仮想ネットワークを定義し、その上に各種サーバを配置することができます。 深く考えずに非VPC環境に構築してしまったAWSサーバ環境は、簡単にはVPC環境に移行することはできません。従って弊社では、小さなシステムであっても、最初からVPC環境にシステムを構築することを推奨しています。「非VPCが許されるのは小学生までだよねー」とボスが申しておりました。かといって、ネットワークの構成をゼロから考えて構築するのもひと苦労であるため、エントリーでは、システムの初期段

    Amazon VPCを使ったミニマム構成のサーバ環境を構築する | DevelopersIO
    sugumura
    sugumura 2014/08/22
  • IAMによるAWS権限管理 – プロジェクトメンバーへの権限付与方針に潜む闇 | DevelopersIO

    よく訓練されたアップル信者、都元です。今日もIAMです。 先日のエントリで、プロジェクトメンバーにはIAMユーザを配布しましょう、というプラクティスを示しました。ではそのIAMユーザの権限はどの程度与えれば良いのでしょうか、というのが今日のテーマ。先に断っておきますと、このエントリーは結論が出ません。非常に難しいです。では、いきましょう。 AWSは「よくあるポリシー」としていくつかのテンプレートを提供してくれています。 Administrator Policy Read Only Access Policy Power User Policy ... 上記の他に、UI上で様々なポリシーテンプレートが利用できるようになっています。これらの権限をいくつか見ていきましょう。 プロジェクトメンバー全員にAdministratorAccess権限を与えると… AdministratorAccessと

    IAMによるAWS権限管理 – プロジェクトメンバーへの権限付与方針に潜む闇 | DevelopersIO
    sugumura
    sugumura 2014/08/08
  • AWS Command Line Tool Python版 | Developers.IO

    軽量コマンドラインツールが出た! 全国うん万人?のAWSデベロッパーの皆さん、ニュースです。AWSから提供されていたコマンドラインツールがPython版になって登場です。すでに12のサービスに対応しています。ただ単にJavaからPythonになったというレベルではありません。超軽量になったのです。今までのコマンドラインツールは、バックグラウンドでJVM(Java VM)が立ち上がっていました。コマンドが呼ばれる度にVMが初期起動するのでCPU使用率が非常に高く、サーバー運用時の定期呼び出しには大きな問題となっていました。仕方なく、RubyPythonのSDKを使ってスクリプトを書くという毎日でした。Java好きな私ですので多少擁護しますと、Java版はRI(Reference Implementation)として、AWSの全てのAPIにアクセスするためのお手として、今後も最初にSDKが

    AWS Command Line Tool Python版 | Developers.IO
    sugumura
    sugumura 2014/08/08
  • IAMによるAWS権限管理運用ベストプラクティス (2) | DevelopersIO

    よく訓練されたアップル信者、都元です。前回(昨日)はAWSのクレデンシャルとプリンシパルを整理し、「開発運用スタッフ」が利用するクレデンシャルについてプラクティスを整理しました。今回はAWS上で稼働する「システム」が利用するクレデンシャルについてのプラクティスを整理しましょう。 システムが利用するクレデンシャル システムが利用するとはどういうことかといいますと、要するに「ユーザがアップロードしたファイルをS3に保存する」だとか「S3バケットに保存されたファイル一覧を取得して表示する」だとか、そういう操作をするシステムを作ることです。このようなシステムでは、APIキーを利用しますね。 AWSAPIキーには、これもまた大きく分けて2種類があります。 long lived credentials (永続キー) short lived session credentials (一時キー) 皆さん

    IAMによるAWS権限管理運用ベストプラクティス (2) | DevelopersIO
  • Amazon EC2再入門 2014年7月版 | DevelopersIO

    ウィスキー、シガー、パイプをこよなく愛する大栗です。 最近EC2関連の重要アップデートが出てきました。嬉しい機能が増えているのですが、昔の知識では使いこなせないので、現時点でのEC2の起動方法について纏めようと思います。 Management ConsoleからEC2を起動します。今回は東京リージョン(ap-northeast-1)でAmazon Linuxを起動する前提です。 記事のアップデートとして Amazon EC2再入門 2015年1月版 を書きました。最新情報はこちらを参照してください。 起動手順 EC2を起動していきましょう。 AMIの選択 AMI(Amazon Machine Image)を選択します。 好きなOSを選択しましょう。注意点はCPUアーキテクチャ、ハイパーバイザ、ルートデバイスです。 ここではAmazon Linux AMI 2014.03.2(HVM) -

    Amazon EC2再入門 2014年7月版 | DevelopersIO
    sugumura
    sugumura 2014/08/08
  • RDBMS in the Cloud: PostgreSQL on AWSを読んでみた | DevelopersIO

    はじめに AWSにはRDSというマネージドなデータベースサービスがあることは皆さんご存知だと思います。そこで提供されているデータベースは、MySQLOracleSQLServerの3種類です。そうです、PostgreSQLが無いのです!ナイナイ詐欺のAWSなので、そのうち出てくると思いますが、今のところはありませんので、自前で構築する必要があります。せっかく構築するなら、オンプレのコピー感覚で使うのではなく、クラウドネイティブに使いたいものです。今回は、そんなPostgreSQLをEC2上で構築するために考えるポイントをまとめたホワイトペーパーをベースに理解を深めたいと思います。 PostgreSQL on Amazon EC2 PostgreSQLは、ACID(Atomicity:原子性, Consistency:一貫性, Isolation:独立性, Durability:永続性)

    RDBMS in the Cloud: PostgreSQL on AWSを読んでみた | DevelopersIO
  • AIR for Android オプションメニューの作成 | DevelopersIO

    AIR for Androidでのオプションメニューの作成について調べたので、サンプルソースと共にご紹介します。 尚、今回のサンプルは、Flex SDK4.5.1、AIR Runtime2.6で動作確認をしたものです。 オプションメニューの表示 初めにオプションメニューを表示させるにはどうすれば良いかを説明します。 サンプルでは、新規FlexモバイルAIRプロジェクトをアプリケーションテンプレート[ ビューベースアプリケーション ](中央)で作成しました。 プロジェクト名は「test_menu」です。 ViewNavigatorApplicationクラスのtest_menu.mxmlは、デフォルトで作成されたままです。 firstViewで、デフォルトで作成されるViewクラス[ views.test_menuHomeView ]が指定されています。 <?xml version="1.0

    AIR for Android オプションメニューの作成 | DevelopersIO
  • 1